第一章:操作系统概论
资源管理
资源复用:解决资源数量不足
- 空分复用共享:资源可以从“空间”上分割成更小的单位供进程使用。
- 时分复用共享:资源可以从“时间”上分割成更小的单位供进程使用。进程可在该单位内独占使用该整个物理资源。
- 时分独占式:一般是一旦分配得到,直到暂时不用或使用完一个周期,其它程序才可以使用。
- 时分共享式:一个程序分配到使用一个资源一个周期后,系统也可能会剥夺其使用权,重新分配,让其它程序使用。
资源虚拟:解决资源数量不足,提高服务水平和能力
- 定义:是对资源进行转化、模拟或整合,把物理上的一个资源变成逻辑上的多个对应物(假象)的一类技术,也可以多个物理资源虚拟为一个逻辑资源(假象)。
- 本质:操作系统采用适当方法(编很多程序),完成资源共享的一系列问题,让用户无缝共享资源。
资源抽象:面向系统复杂性,解决易用性
- 资源抽象用于处理系统的复杂性,重点解决资源的易用性。
- 资源抽象指通过创建软件来屏蔽硬件资源物理特性和接口细节,简化对硬件资源的操作、控制和使用的一类技术。
- 单级资源抽象与多级资源抽象。
组合使用抽象和虚化技术
- 对于一类资源,操作系统往往同时实施抽象和虚化技术。
操作系统中最基础的抽象
-
进程抽象:是对已进入主存正在运行的程序在处理器上操作的状态集的抽象 。
-
进程:并发和并行操作的基础。
-
进程与线程的区别
-
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
-
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
-
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
-
调度和切换:线程上下文切换比进程上下文切换要快得多
-
-
-
虚存抽象:是对物理主存的抽象,进程可获得一个硕大的连续地址空间来存放可执行程序和数据,可使用虚拟地址来引用物理主存单元。
-
文件抽象:是对磁盘之类存储设备的抽象 。
操作系统特征
- 并发性**:**指两个或两个以上的事件或活动在同一时间间隔内发生
- 并行性:指两个或两个以上的事件或活动在同一时刻发生
- 并行性是并发性的特例,而并发性是并行性的扩展。
- 共享性:共享指操作系统中的资源可被多个并发执行的进程所使用 。
- 异步性:进程何时执行?何时暂停?怎样的速度向前推进?都是异步(随机)的。
- 操作系统的基本特征:并发和共享。
多道程序设计
-
概念:允许多个程序同时进行一个计算机系统的主存储器并启动进行计算的方法。
-
优点:
- 提高了各种利用率。
- 改进了系统吞吐率。
- 充分发挥了系统并行性。
-
缺点:作业周转时间延长。
-
例如:
-
例题:
某个计算机系统中有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始运行,程序B后开始运行。程序A的运行轨迹是:计算50ms,打印100ms,再计算50ms,打印100ms,结束。程序B的运行轨迹为:计算50ms,再输入80ms,再计算100ms,结束。试说明:
(1)两道程序运行时,CPU是否有空闲等待?若有,在哪个时间段等待,为什么?
(2)程序A、B是否有等待CPU的情况?若有,指出发生等待的时刻。
三种基本操作系统类型
- 批处理操作系统
- 分时操作系统
- 实时操作系统
系统调用
访管指令:由于系统调用而引起的处理器中断的机器指令。属于非特权指令。
访管指令是一条可以在目态下执行的指令,用户程序中凡是要调用操作系统功能时就安排一条访管指令。当处理器执行到访管指令时就产生一个中断事件(自愿中断),暂停用户程序的执行,而让操作系统来为用户服务。
第二章:处理器管理
处理器状态
CPU两种状态:
- 内核态(Kernel Mode):运行操作系统程序
- 用户态(User Mode):运行用户程序
指令划分:
- 特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O 内存清零 修改程序状态字 设置时钟 允许/禁止终端 停机
- 非特权指令:用户程序可以使用的指令。 举例:控制转移 算数运算 取数指令 访管指令(使用户程序从用户态陷入内核态)
原语:一般是指由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。
处理器状态及其转换
- **用户态—>内核态:**唯一途径是通过中断、异常、陷入机制(访管指令)
- **内核态—>用户态:**设置程序状态字PSW
用户栈和核心栈
- 用户栈是用户空间中的一块区域,用于保存用户进程的子程序间相互调用的参数、返回值以及局部变量等信息。
- 核心栈是内存中属于操作系统空间的一块区域,作用:1. 保护中断现场。2. 保存操作系统程序间相互调用的参数、返回值、返回点、以及程序的局部变量。
程序状态字:
- 状态标志:使得一条指令的执行结果影响之后指令执行。例如溢出标识符:OF、符号标识符:SF……
- 控制标志:包括DF、VM、TF、IF(中断允许)等。
- 系统标志:与进程管理有关,分别为IOPL(I/O特权级别标志)、NT(嵌套任务标志)、RF(恢复标志),用于保护模式。
##### 中断技术
中断源分类:
-
外中断:又称中断或异步中断,是来自处理器之外的中断信号。包括时钟、键盘中断等。外中断又分为:可屏蔽中断和不可屏蔽中断。中断有优先级,处理高级中断时会屏蔽低级中断。
-
内中断:又称为异常或同步中断,是来自处理器内部的中断信号,通常是由于程序在执行过程中,发现与当前指令相关联的、不正常或错误的事件。
内中断可被细分为:
- 访管中断:执行系统调用而引起。
- 硬件故障中断:如电源失效、奇偶校验错误、总线超时等。
- 程序性异常:如非法操作、地址越界、除数为0等等。
中断响应:
- 发现中断源。
- 保护现场。
- 转向中断/异常事件处理程序执行。
- 恢复现场。
中断处理原则:
- 硬件故障中断:一般需人工干预。中断程序所能做的:保护现场、停止设备工作、以及处理器运行、向操作员报告故障信息,并对故障所造成的破坏进行估计和恢复。
- 程序性中断:原封不动地转交给应用程序自行处理。
- I/O中断。
- 访管中断。
- 时钟中断。
中断优先级和多重中断
Linux中断以及相关概念。
进程及其实现
进程定义:具有独立功能的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位。
进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。
属性:
进程状态和转换
-
三态模型
-
五态模型
-
七态模型
进程组成要素:控制块、程序块、数据块、核心栈。
进程控制块:进程存在的唯一标识。包含:
1)标识信息:唯一的标识一个进程。
2)现场信息
3)控制信息:控制信息用于管理和调度进程。
进程上下文:
- 用户级上下文:由程序块、数据块、共享内存区、用户栈组成,它们占用进程的虚存空间。对换至磁盘的分段页面仍然是用用户级上下文切换。
- 寄存器级上下文:由处理器状态寄存器、指令计数器、栈指针、通用寄存器等组成。当进程不处于运行态时,处理器状态信息保存在寄存器上下文中。
- 系统级上下文:由进程控制块、内存管理信息、核心栈等操作系统管理进程所需要的信息组成。
处理器状态转换:
- 用户空间中,处于进程上下文,应用进程在用户态下运行,使用用户栈。
- 内核空间中,处于进程上下文,内核代表进程在内核态下运行,使用核心态。
- 内核空间中,处于中断上下文,与任何进程无关,中断服务例程在核心态下处理特定中断。
- 内核空间中,内核线程运行于内核态。
线程及其实现
线程实现
- 内核级线程
- 用户级线程
- 混合式线程
- 线程调度
进程是资源分配的最小单位,线程是CPU调度的最小单位
处理器调度
- 高级调度:它用于确定把后备队列上的哪些作业调入内存,并为之建立进程,分配其所需的资源,然后将它挂在就绪队列上。
- 中级调度:引入中级调度的主要目的是为了提高内存的利用率和系统的吞吐量。内存中不能有太多的进程,把进程从内存移到外存,当内存有足够空间时,再将合适的进程换入内存,等待进程调度。中级调度实际上就是存储器管理中的对调功能。
- 低级调度:完成调度和分派的功能。低级调度的类型:剥夺式与非剥夺式(运行后不在让出处理器)。
调度:实现调度策略,决定哪个进程使用CPU
低级调度的算法:
(1)、先来先服务(FCFS)
(2)、最短作业优先(SJF):会出现饥饿现象,平均周转时间好
(3)、最短剩余时间优先(SRTF)
(4)、最高响应比优先(HRRF):响应比:1+作业等待时间/作业处理时间。
(5)、优先级调度算法
(6)、轮转调度算法
(7)、多级反馈队列调度算法