(一)操作系统概念
操作系统定义
- 操作系统是
- 管理计算机硬件的程序,作为用户和硬件的中间层。
- 计算机系统由四个部件组成:
- 硬件(hardware)、操作系统 、 应用程序(application programs) 、 用户(users) 。
- 硬件包括
- 中央处理器(central processing unit) 、 存储器(memory) 和 输入输出(I/O)设备 。操作系统控制并协调多个用户的多道程序。
- 计算机视角:
- 操作系统类似一个 资源管理器(resource allocator) ,它扮演了硬件资源管理者的角色。另一个略微有所不同的角度是,操作系统是一个控制程序,这个 控制程序(control program) 管理用户程序的执行以防止错误的发生和对计算机不合法的使用。
操作系统组织
- 引导程序是
- 用于计算机启动的初始化程序,被存储在存储器或固件
- 中断(interrupt)
- 硬件或软件的中断用来触发一个事件的发生。
- 有三种触发方式:
- 应用程序发生意料之外的错误,向内核发送异常触发中断。
- 硬件可能在任何时候通过向CPU发送一个信号来触发中断,该信号由总线传递。
- 应用程序通过系统调用(system call) 触发中断。
- 三种中断的比较:
中断 源头 响应方式 处理机制 中断 外设 异步 系统调用 异常 程序意外 同步 杀死或重启意外程序 系统调用 程序请求 同或异 等待和持续
- 计算机程序必须执行于
- 主存(RAM)。主存是CPU能直接访问的唯一大容量存储器,由DRAM半导体实现。
- 主存是
- 易失(valatile) 存储,当电源断开,存储内容会丢失。二级存储作为主存的扩展,通常是磁盘。
- 启动I/O操作步骤:
- 设备驱动 设置 设备控制器 内部对应的寄存器
- 设备控制器 检查其内部寄存器并确定要执行的行为
- 设备控制器 启动数据传输,数据从设备发送给 本地缓存
- 当数据传输结束,设备控制器 通过触发中断通知 设备驱动
- 设备驱动 将控制权交还给操作系统;如果 I/O 操作是读行为,则携带(读取的数据)或者(指向数据的指针);如果 I/O 操作是其他行为,则返回(状态信息)。
- 大量数据移动通常使用
- 直接存储器访问(direct memory access,DMA)。在为I/O设备设置缓冲区,指针,计数器后,设备控制器将整块数据直接从它的缓冲区发送到主存(或相反方向),而不经CPU。传输一块数据只会触发一次CPU中断。
计算机系统体系与结构
- 多处理器系统(multiprocessor system) 的优点和类型
- 也被称作 并行系统(parallel system) 或 轻耦合系统(lightly coupled system)
- 优点
- 增加吞吐量(turoughput)
- 性价比高
- 相比多个单处理器系统,多处理器系统可共享外围设备,大存储器和电源。
- 增加可靠性(reliability)
- 其中一个处理器出现故障只会减缓系统而不会导致系统终止。根据 存活硬件 均衡提供服务 的能力 被称为故障弱化(graceful degradation)。有些系统具有容错能力(fault tolerant),当任何一个单件出错,系统能够继续运行。
- 类型
- 非对称多处理器
- 每个处理器负责不同的工作,如控制系统或获取信息
- 对称多处理器
- 处理器间不存在从属关系,都可处理所有作业。- 多道程序(multiprogramming)
- 内存中同时可存放多道程序。通过安排作业(编码与数据)使得 CPU 总有一个执行作业,从而提高 CPU 利用率。
- 分时(time sharing)是
- 多道程序操作系统的延伸,可同时为多个用户服务的操作系统,把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。
- 在分时系统中,操作系统必须保证响应时间,这一点有时通过进程在主存和硬盘之间的 交换(swapping) 完成。一个更普遍的方式是 虚拟内存(virtual memory) ,它使用户可以运行远大于 物理内存(physical memory) 的程序。
- 多道程序与分时的区别:
- 分时操作系统是给不同用户提供程序的使用,而多道程序系统则是不同程序间的穿插运行。
- 作业池(jobs pool)
- 一个被装入主存并执行的程序被称作 进程(process) 。分时和多道程序需要主存中同时保持多个作业,因为主存通常不足以同时容纳这些作业,所以它们在执行前被存放在硬盘的 作业池(job pool) 中,它容纳了所有等待分配主存的进程。
- 作业调度(job scheduling)
- 如果多个作业因为主存空间不足而无法同时装载,那么系统要在作业间进行 作业调度(job scheduling) 。
- 多道程序(multiprogramming)
操作系统运行
- 现代操作系统均由中断驱动(interrupt driven)
- 异常(exception)(trap)
- 操作模式(modes)
- 两个模式:(mode bit)
- 用户模式
- 内核/管理/系统/特权模式
- 在系统启动时,硬件系统处于内核模式。之后操作系统被加载并且在用户模式中执行用户应用。当一个陷阱或者中断发生,硬件将从用户模式切换到内核模式。
- 两个模式:(mode bit)
- 定时器(timer)
- 操作系统将控制权交还给用户前 启动定时器,一旦定时器触发中断,控制权将自动交还给操作系统。操作系统会将该中断视作一个致命的错误(fatal error)或者给这个程序更多的执行时间。
进程管理
- 程序与进程的比较
- 程序是被动的实体,进程是主动的实体
- 程序是一堆静态的代码,或有序的指令- 进程的生命周期:
- 创建,运行,调度,等待,撤销。
- 进程要完成任务需要如下资源:
- CPU,存储器,文件和 I/O 设备。一个单线程的进程有一个 程序计数器(program counter) 指定下一条要执行的指令,多线程的进程有多个程序计数器。
- 进程是系统中的工作单元。通过在单 CPU 的复用,所有的进程都有机会并行执行。
- 操作系统需要为进程提供以下服务
- 创建或删除用户或系统进程
- 挂起或继续进程
- 提供进程同步机制
- 提供进程通讯机制
- 提供死锁处理机制
- 进程的生命周期: