第一部分:导论
- 操作系统(os)可视为资源分配器
- 控制程序(control program)管理用户程序的执行
- 事件发生通常通过硬件或者软件的中断来通知,硬件可以随时通过系统总线发送信号到CPU以触发中断,软件通过执行特别操作既系统调用(监督程序调用),以触发中断
trap是由apps发来进入os的(error或者request),而interrupt是由hardware来进入os,cpu中断引脚中断cpu
- 中断是隔一段时间操作一次,确保操作系统动力永远充足
- interrupt自下而上
- error或者request创造exception或者trap到内核,由内核处理
- Duel-mode(双系统),操作系统不可能被进程修改,系统允许os保护自身以及其他系统部件,不允许进程随意中断
1. Duel-mode分为user mode以及kernel mode,后者在硬件kernel下运行,可以执行特权指令以及非特权指令,前者则只能执行非特权指令
1.2.3 I/O结构:所有的I/O服务都要通过os
1.4 操作系统的结构:任何一个操作系统都是分时的
- 一般来说,单个程序不能让cpu和I/O设备始终工作,单个用户通常具有多个运行能力,多道程序设计通过安排作业(编码与数据)使得cpu总有一个执行任务,从而提高cpu利用率
- 系统的总作业的一个子集保存在内核中(内存的作业集为作业池的作业集的一个子集),操作系统可以选择执行一个作业,当这个作业需要等待时,cpu就会切换到另一个作业上
- 分时系统(time sharing)是多道程序设计的自然延申,对于分时系统cpu还是切换作业来完成任务,但是它切的快,频率高。
1. 分时系统要求计算机是可交互的,响应时间短,通常小于1s(实际上I/O系统受限于人类速度)
2. 每个用户至少有一个进程在内存,加载到内存并执行的程序,为进程 - 作业调度:多个作业准备同时运行
-
- 如果进程不能进入内存,那么可以交换来使他们移入活着移出来运行
- 虚拟内存是实现合理响应时间的更为常用的一种方法,优点:用户可执行比物理内存更大的程序,形成逻辑内存与真实的物理内存分割
1.5 操作系统的执行:操作系统的正确设计必须保证错误系统(或者恶意程序)不会造成其他程序的错误执行
1.5.1 双重模式与多重模式的执行
- 计算机通过模式位来表示当前模式:内核(0),用户(1)
- 特权指令:可能会引起损害的机器指令(如果想要在user mode下执行,硬件会认为该指令违法,并以trap形式通知操作系统)
- 系统调用可以在user下请求os完成一些特权指令,一般由trap指令,由专用的syscall指令完成系统调用
1.5.2 定时器(timer):维持控制cpu,防止用户程序陷入死循环或者不调用系统服务并且不将控制返回操作系统
- 在调度过程之前设置以重新获得控制或者终止超出分配时间的程序
- 计数器为0时,就会产生中断
- timer可以防止用户程序运行过长
1.6 进程管理