Introduction

计算机四个部分:

  • 硬件
  • 操作系统
  • 应用程序
  • 用户

操作系统的功能:

  • 管理资源
  • 控制任务执行

操作系统的定义:

  • 广义的操作系统概念范畴:操作系统供应商提供的所有程序、数据
  • 狭义的操作系统概念范畴:从计算机加电运行后一直在内存里跑的那个程序(又称内核,即kernel)

开机启动程序:负责检测硬件,并加载操作系统内核(kernel)

CPU 设备控制器通过通用总线连接,以并发的方式工作

一些细节

  • I/O设备与CPU是可以并行执行的
  • 每个设备控制器负责管理一类设备
  • 每个设备控制器有一个内部缓存
  • CPU将数据从主存移动到设备缓存,或将数据从设备缓存移动到主存
  • I/O操作实际是发生在设备控制器的缓存与设备之间
  • 设备控制器在设备完成I/O操作之后,通过触发一个中断来通知CPU

中断

  • 中断发生时,控制转到中断服务例程(ISR)
  • 中断硬件负责保存被中断指令的地址
  • 一般情况下,正在处理的中断被中断硬件屏蔽
  • 除了硬件设备出发的中断,也可以产生软件中断(严重的程序错误,用户的特别要求,都可能是软中断的产生原因)

中断处理

Polled Interrupt 轮询式中断

硬件中一种特殊的中断,系统中有设备就绪时产生这种中断,CPU接收到中断后需要对每个设备作一次轮询来确定是哪个设备就绪。

Vectored Interrupt 向量式中断

硬件在传送中断信号中,直接包含触发中断的设备信息。
操作系统为向量式中断系统维护一个中断向量表,表中的每个表项指向一个代码段(ISR)

操作系统需要记录发生中断位置(断点)的状态信息,以便在中断处理完成后返回断点位置重新执行。

I/O类型

同步I/O模式

I/O开始之后,直到完成才会返回

异步I/O模式

I/O开始之后,不用等到I/O完成就返回控制

System call

Device-status table

需要硬件中断支持

存储结构

主存

随机存储,有易失性

二级存储

主存的扩展,提供无易失性的的储存

磁盘

磁道,扇区,磁盘控制器

分层储存

缓存

频繁使用的信息,应从慢速设备临时复制到快速设备
Cache size and replacement policy
缓存命中

操作系统架构

多核处理器

多程序

为了效率:

  • 单程序不能有效利用CPU和I/O设备
  • CPU能一直工作
  • 一部分作业在内存中
  • 通过作业调度来运行一个作业
  • 当一个作业需要等待时,系统切换到另一个作业

多任务

分时系统:CPU频繁切换切换作业

  • 响应时间小于1s
  • 每个用户都有进程
  • CPU调度进程
  • 进程从内存内外的交换
  • 虚拟内存技术

操作系统操作

操作系统是由硬件中断驱动的

  • Timer Interrupt 时钟中断
  • Keyboard Interrupt 键盘中断
  • Mouse
  • Disk

应用程序可能存在各种问题:

软件错误 (如除零错,会导致异常 Exception)
请求操作系统服务,导致Trap 陷阱
死循环、进程间互相修改等等

为避免操作系统出现问题,必须做好应用程序与操作系统之间的隔离

双模

User mode(用户态) and kernel mode(核心态)
通过模式位来表示系统是处于用户态,还是内核态

  • 0表示内核态,1表示用户态
    一些指令只能在内核态执行,称为特权指令
    应用程序在请求操作系统服务时,通过系统调用,从用户态切换到内核态,并在操作系统服务完成后,切换回用户态

进程管理

进程需要资源,OS为其分配;进程终止时,OS需要回收为其分配的资源

线程

单线程进程只有一个PC
多线程进程又每个线程有一个PC

通过并发,CPU被多个进程和线程复用

进程管理操作

  • 进程创建与终止
  • 暂停与恢复
  • 同步
  • 通信

内存管理

所有的数据和指令在进程运行前都得在内存里
内存管理决定如何将数据、指令放在合理的内存位置

内存管理操作

  • 记录内存使用情况
  • 决定哪些进程的相关数据适合移入/移出内存
  • 管理内存的分配与回收

外存管理

操作系统提供统一的存储管理界面,文件和存储设备管理

文件系统管理

  • 目录
  • 文件的访问控制

文件管理操作

  • 创建和删除文件、目录
  • 对于文件和目录基本的操作
  • 映射文件到二级存储
  • 备份到无易失性的存储媒体

大存储管理

  • 磁盘需要储存不常用的文件和数据
  • 合适的管理
  • 磁盘I/O是系统的性能瓶颈

磁盘管理操作

  • 空闲空间管理
  • 存储分配
  • 磁盘调度

多任务环境下,保证使用最新的值

多处理器环境下,必须处理Cache一致性问题

I/O设备管理

操作系统的I/O模块的作用:屏蔽设备差异,为用户提供统一的设备使用接口

I/O子系统

  • 缓冲,缓存,spooling
  • 统一的设备驱动接口
  • 特殊设备的驱动设计

安全管理

  • 保护操作系统内核
  • 保护操作系统免受外部网络攻击