Chapter 0 : Introduction¶
📖 阅读信息
阅读时间:8 分钟 | 中文字符:3083
Computer System Firmware¶
计算机系统可以分为四个组成部分:
- 硬件——提供基本的计算资源:CPU、内存、输入/输出设备
- 操作系统:控制和协调硬件在各种应用和用户之间的使用
- 系统程序和应用程序——定义系统资源的使用方式,以解决用户的计算问题:文字处理器、编译器、网页浏览器、数据库系统、视频游戏
- 用户:人、机器、其他计算机
它们之间的关系主要如下图所示:

Operating System Definition¶
- 操作系统是一个充当计算机用户与计算机硬件之间中介的程序,它是资源分配者,管理所有资源,在相互冲突的请求之间进行决策,以实现高效和公平的资源使用;它也是控制程序,控制程序的执行,以防止错误和不当使用计算机
- 操作系统的目标:
- 执行用户程序,并使解决用户问题变得更容易
- 帮助计算机用户以高效的方式利用计算机硬件
- “计算机上始终在运行的那个程序”就是内核(Kernel)。其他的要么是系统程序(随操作系统一起提供),要么是应用程序。
Computer Startup¶
在启动一个计算机时,通常会经过以下两步:
- 引导程序(Bootstrap Program)在开机或重启时加载
- 引导程序通常存储在只读存储器(ROM)或可擦可编程只读存储器(EPROM)中,一般称为固件(Firmware)
- 它初始化系统的各个方面,加载操作系统内核并开始执行
-
计算机系统开始运行
- 一个或多个 CPU,设备控制器通过共有总线连接,实现对共享内存的访问(如下图所示)
- CPU 与设备并发执行,争夺内存周期

- I/O 设备和 CPU 可以并发执行
- 每个设备控制器负责一种特定类型的设备
- 每个设备控制器都有一个本地缓冲区(Local Buffer)
- CPU 将数据从主存储器移动到本地缓冲区,或从本地缓冲区移动到主存储器
- I/O 操作是指从设备到控制器本地缓冲区的数据传输
- 设备控制器通过引发中断(通过系统总线)来通知 CPU 其操作已经完成
I/O Structure¶
在 I/O 开始后,只有当 I/O 完成时,控制权才会返回到用户程序。
- 等待指令会让 CPU 处于空闲状态,直到下一个中断发生
- 等待循环(会导致内存访问竞争)
- 一次最多只能有一个 I/O 请求处于未完成状态,无法同时进行多个 I/O 处理
在 I/O 开始后,控制权会立即返回给用户程序,而无需等待 I/O 完成
- 系统调用(System Call)——请求操作系统允许用户等待 I/O 完成
- 设备状态表(Device-Status Table)包含每个 I/O 设备的条目,显示其类型、地址和状态
- 操作系统通过索引 I/O 设备表来确定设备状态,并可修改表项以包含中断信息
I/O 主要有异步和同步两种方式,如下图所示:

Interrupt Handling¶
如果遇到了中断情况:
- 中断会将控制权转移到中断服务程序,通常是通过中断向量(Interrupt Vector),其中包含所有服务程序的地址
- 中断架构必须保存被中断指令的地址
- 当另一个中断正在处理时,会禁止新的中断进入,以防止丢失中断(Lost Interrupt)
- 陷阱(Trap)是由软件生成的中断,可能是由于错误(Error)或用户请求(User Request)(后者通常称为系统调用,System Call)引发的
- 一个操作系统是由中断驱动的(Interrupt Driven),操作系统通过寄存器(Registers)和程序计数器(Program Counter),来保护 CPU 的状态
- 要判断发生了哪种类型的中断:
- 通过通用例程轮询(Polling)
- 向量化中断系统(Vectored Interrupt System)
- 不同的代码片段决定了针对每种类型的中断应采取什么操作

Direct Memory Access Structure¶
- 用于能够以接近内存速度传输信息的高速 I/O 设备
- 设备控制器将数据块从缓冲存储区直接传输到主存,而无需 CPU 干预
- 每处理一个数据块只会产生一个中断,而不是每处理一个字节就产生一个中断
Operating System Structure¶
操作系统主要采取多程序设计(Multiprogramming),主要是为了提高效率(CPU 利用率)
- 单用户无法时刻让 CPU 和 I/O 设备都处于工作状态
- 多道程序设计将作业(代码和数据)组织起来,保证 CPU 始终有事情可做
- 系统中的部分作业被保存在内存中
- 通过作业调度(Job Scheduling)选择并运行一个作业
- 当一个作业需要等待(比如 I/O 操作)时,操作系统会切换到其它作业
一个多程序设计的操作系统内存分布如下图所示:

分时/多任务(Timesharing / Multitasking)是多道程序设计的逻辑扩展,CPU 在各作业间频繁切换,使得用户可以与正在运行的每个作业交互,实现交互式计算(Interactivity)。
- 响应时间(Response Time)应小于 1 秒
- 每个用户在内存中至少有一个正在执行的程序→进程(Process)
- 如果有多个作业同时准备就绪运行→需要 CPU 调度(CPU Scheduling)
- 如果进程装不下内存,交换(Swapping)可以将它们调进调出以运行
- 虚拟内存(Virtual Memory)允许进程在未完全装入内存的情况下执行
Operating System Operations¶
在操作系统中可能会出现很多问题:
- 中断:由硬件驱动
- 软件错误或请求:产生异常(Exception)或陷阱(Trap)
- 比如除零错误、请求操作系统服务
- 其他进程问题:包括无限循环(Infinite Loop)、进程相互修改(Modifying)或修改操作系统
因此我们需要保护措施,双模式操作(Dual-mode Operation)允许操作系统保护自身及其他系统组件
- 用户模式(User Mode)和内核模式(Kernel Mode)
- 硬件提供模式位(Mode Bit)
- 能够区分系统是在运行用户代码还是内核代码
- 有些指令被指定为特权指令(Privileged),只能在内核模式下执行
- 系统调用会切换到内核模式,调用返回时再设为用户模式
- 定时器用于防止无限循环或进程占用资源
- 在特定时间后设置中断
- 操作系统减少计数器的值
- 当计数器为零时产生中断
- 在调度进程之前设置好,以便操作系统能够重新获得控制权或终止超时的程序

Process Management¶
进程是正在运行的程序。它是系统中工作的基本单位。程序是“静态实体(Passive Entity)”,而进程是“活动实体(Active Entity)”
进程完成任务需要资源,在终止时需要回收任何可重用的资源:
- CPU、内存、I/O、文件
- 初始化数据
单线程进程有一个程序计数器(Program Counter),指明下一条将要执行的指令的位置,进程按顺序执行指令,每次一条,直到执行完成;多线程进程每个线程都拥有自己的程序计数器
通常系统会有许多进程,一些是用户进程,一些是操作系统进程,它们可以通过在不同进程/线程之间复用 CPU 实现并发运行
操作系统在进程管理方面负责以下活动:
- 创建和删除用户进程和系统进程
- 挂起和恢复进程
- 为进程同步提供机制
- 为进程通信提供机制
- 为死锁处理提供机制
Memory Management¶
所有数据在处理之前和之后都必须在内存中,所有指令必须在内存中才能执行,内存管理决定何时哪些内容在内存中,以优化 CPU 利用率和提升计算机对用户的响应速度。
内存管理的具体活动包括:
- 跟踪当前哪些内存区域正在被使用,以及由谁使用
- 决定哪些进程(或其部分)以及数据需要被调入或移出内存
- 按需分配和释放内存空间
Storage Management¶
操作系统为信息存储提供统一、逻辑化的视图:
- 将物理属性抽象为逻辑存储单元——文件
- 每种介质由设备控制(如磁盘驱动器、磁带驱动器)
- 不同设备属性包括:访问速度、容量、数据传输速率、访问方式(顺序或随机)
文件系统管理:
- 文件通常被组织到目录中
- 大多数系统对访问权限进行控制,以决定谁可以访问哪些内容
- 操作系统的相关活动包括:
- 创建和删除文件及目录
- 提供操作文件和目录的基本操作
- 将文件映射到二级存储
- 将文件备份到稳定(非易失性)存储介质
Mass-Storage Management¶
通常,磁盘用于存储无法放入主存的数据,或者需要长期保存的数据,妥善的管理至关重要。整台计算机的运行速度取决于磁盘子系统及其算法。
操作系统的相关活动包括:
- 空闲空间管理
- 存储分配
- 磁盘调度
有些存储不需要很快:
- 第三层存储包括光存储、磁带等
- 这些存储也必须进行管理
- 存储类型包括一次写入、多次读取(WORM)及可读写(RW)
I/O Subsystem¶
操作系统的一个目的就是将硬件设备的特殊性隐藏起来,使用户更容易使用和编程。
I/O 子系统负责:
- I/O 的内存管理,包括缓冲(在数据传输过程中临时存储数据)、缓存(为提高性能将部分数据存储在更快的存储介质中)、假脱机(一个作业的输出与其他作业的输入重叠)
- 通用设备驱动接口
- 针对具体硬件设备的驱动程序
Protection and Security¶
- 防护(Protection):控制进程或用户对操作系统定义资源访问的任何机制
- 安全(Security):防御系统免受内部和外部攻击
- 范围广泛,包括拒绝服务、蠕虫、病毒、身份盗窃、服务盗用等。
- 系统通常首先区分不同用户,以决定谁可以做什么:
- 用户身份(用户 ID,安全 ID):包括用户名和关联编号,每个用户唯一一个
- 用户 ID 随后与该用户的所有文件、进程等资源关联,以确定访问控制
- 组标识符(组 ID):允许定义用户组并进行权限控制,也与各个进程、文件关联
- 权限提升:允许用户切换为具有更多权限的有效 ID
Computing Environments¶
Traditional Computer¶
- 随着时间推移,界限变得模糊
- 办公环境
- 个人电脑连接到网络,终端接入主机或小型计算机,提供批处理和分时服务
- 现在通过门户网站,使联网和远程系统能够访问相同的资源
- 家庭网络
- 过去是单一系统,后来有了调制解调器
- 现在有防火墙并实现了网络化
Client-Server Computing¶
- 愚蠢终端被智能个人电脑取代
- 现在许多系统都是服务器,响应客户端发出的请求
- 计算服务器:为客户端提供一个接口以请求服务(如数据库)
- 文件服务器:为客户端提供存储和检索文件的接口

Peer-to-Peer Computing¶
点对点计算是另一种分布式系统模型,它不区分客户端和服务器:
- 所有节点都被视为对等体
- 每个节点可以作为客户端、服务器或两者同时存在
- 节点必须加入P2P网络
- 可将其服务注册到网络上的中心查找服务
- 也可以通过发现协议广播服务请求并响应其他节点的服务请求
- 典型例子包括 Napster 和 Gnutella
Web-Based Computing¶
- 网络已经变得无处不在
- 个人电脑是最普及的设备
- 越来越多的设备实现联网以允许访问网络
- 出现了新类型的设备,用于在多个相似服务器之间管理网络流量:负载均衡器
- 操作系统的使用也经过了变化,比如 Windows 95(客户端),发展到现在的 Linux 和 Windows XP,这些操作系统既可以作为客户端,也可以作为服务器
💬 评论
评论系统加载中...