计算机操作系统(第三版 清华大学出版社)
1.1 操作系统的定义
操作系统是控制和管理计算机的软、硬件资源,合理组织计算机的工作流程,以方便用户使用的程序集合。
1.2.3 多道程序设计技术
20世纪60年代中期产生。为了将多个程序同时放入内存,使它们共享系统中的资源。
特点:
(1)多道,即计算机内存中同时存放多道相互独立的程序;
(2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中;
(3)微观上串行,是指在单处理机环境下,内存中的多道程序轮流占用CPU,交替执行。
1.3 操作系统的特征
并发和共享是操作系统中两个最基本的特征。
(1)并发性
操作系统的并发性具体体现在用户程序与用户程序之间的并发执行以及用户程序和操作系统程序之间的并发执行。
操作系统必须具备管理各种并发活动的能力,建立监控并发活动的实体,分配必要的资源。
(2)共享性
共享是指计算机中的各种资源供其在其上运行的程序的共同享用。分为互斥共享方式和共同访问方式。
其一资源的共享以程序的并发执行为条件,其二只有操作系统提供了对资源共享的可能,才能使程序得以并发执行。
(3)虚拟性
在操作系统中,虚拟是指通过某种技术手段把一个物理实体变成多个逻辑上的对应物。
操作系统的虚拟性主要是通过分时使用的方法实现。且所有逻辑设备的工作量之和必然等于实际物理设备的工作量。
(4)不确定性
操作系统的运行在一个不确定的环境中进行,人们不能对目前所运行的程序的行为做出判断。但这种不确定性是允许的。
1.5 单道和多道批处理
1、单道批处理
系统对作业的处理是成批进行的,内存中始终只保持一个作业。
主要特征:
(1)自动性;磁带上的一批作业能自动地逐一执行,无须人工干预。
(2)顺序性;磁带上的作业进入内存的顺序和各道作业的完成顺序完全相同,即先调入先完成。
(3)单道性;内存中一直只有一个作业,一个作业完成并退出内存之后,另一个作业才可进入内存。
2、多道批处理
用户提交的作业会先存放在外存上并排列成一个队列,然后由作业调度程序按一定的算法从队列中选择若干个作业调入内存,再由系统为之建立进程,在进程调度下若干个进程交替执行。
相较于单道批处理的优点:
①CPU的利用率得到提高;
②提高了内存和输入输出设备的利用率;
③增加了系统的吞吐量。
主要特征:
(1)多道性;内存中间同时驻留多道作业,使它们并发执行,提高了资源的利用率。
(2)无序性;作业进入内存的顺序与各道作业的完成顺序无严格的对应关系。
(3)调度性;从作业提交到完成有两次调度,作业调度和进程调度。
3、批处理操作系统的优缺点
优点:
①资源利用率高;
②系统吞吐量大。系统吞吐量为单位时间内所完成得到总工作量
缺点:
①平均周转时间长;要排队,要依次处理。周转时间指作业进入系统到完场并退出系统为止的时间。
②无交互能力;对于修改和调试程序极为不便。
2.1.3 程序的并发条件有计算题
Bernstein条件,主要考虑程序在并发执行时保证其“可再现性”。还出现在73页进行临界区的判断。条件内容如下:
W(Pi)为写集,Pi执行时因变量集合,等号左边的变量集合;
R(Pi)为读集,Pi执行时自变量集合,等号右边的变量集合;
公式为:R(P₁)∩W(P₂)∪R(P₂)∩W(P₁)∪W(P₁)∩W(P₂)={}
公式为:读1写2 ∪ 读2写1 ∪ 写1写2=集合
{}为空则能够并发执行,否则不能并发执行。
例如题目如下:
假如有以下程序段
S1: a=6+x;
B=y-3
S2: c=5+a;
请利用Bernstein条件证明,S1和S2能否并发执行。
(利用公式R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={})
解答:
R(S1)∩W(S2)∪R(S2)∩W(S1)∪W(S1)∩W(S2)={a},故不能。
2.1.4 进程的概念(可并发执行的程序在一个数据集合上的执行过程。)
进程与程序的关系:
进程的性质:活动性(动态变化的)与并发性(多道程序执行过程并发执行)
进程与程序的区别:
(1)进程的动态性与程序的静态性
进程是程序的执行过程。进程有一定的生命期,而程序是一组有序指令的集合。
(2)进程的并发性与程序的顺序性
进程是一个能独立调度并能真实地描述和其他进程并发执行的单位,而通常程序中的语句是顺序执行的。
(3)进程的暂时性和程序的永久性
程序执行完,进程就被撤销,而程序是一个实体,将会永久存在。
(4)结构特征
进程=程序+数据+进程控制块。
(5)进程与程序密切相关
一个进程可以涉及多个程序的执行过程,一个程序也可以对应多个进程。
2.2.1 进程的基本状态
(1)运行状态:进程正在处理机上运行;
(2)就绪状态:进程已经获得所有资源,获得处理机可运行;
(3)阻塞状态:进程等待输入输出或因同步事件而暂停运行;
2.2.2 进程的挂起状态
什么叫挂起?在内存空间紧张时,将进程从内存移出到外存;
什么叫激活?在内存空间宽裕时,将进程从外存移入到内存;
引入挂起状态基于
一、内外存对换的需要
二、用户调试程序的需要
三、实时系统中调节负载的需要
2.2.3 进程控制块(PCB)——体会一下
描述进程的特性、状态、调度信息、及资源占有情况等的数据结构叫做PCB。
由程序、数据、栈和PCB组成的进程叫进程映像。
作用:让一个在多道程序环境下无法独立运行的程序成为一个能够独立运行的基本单位。成为能与其它进程并发操作的进程。
2.3.1 操作系统内核
(1)处理机执行状态-核心态(系统态):能执行一切指令,访问所有寄存器和内存的所在区域。特高权限能执行一切指令。
(2)处理机执行状态-用户态:只能执行规定指令,访问规定的寄存器和内存的所在区域。特权较低只能执行规定指令。
(3)原语:原语是由若干条指令构成,用于完成一定功能的过程。执行时不可被中断。
(4)内核:由原语实现,是计算机硬件上扩充的第一层软件。一般包含时钟管理、中断处理和原语操作三种基本功能。
2.4.1 线程的概念、
线程的引入
减少程序并发执行时所付出的时间和空间开销,使操作系统具有更好的并发性。多线程程序具有响应度高、资源共享和经济的优点。
对比进程的引入
使多个程序并发执行,改善资源利用率,提高系统吞吐量。
3.1 进程的同步与互斥
(1)进程互斥:多个进程之间不能同时使用同一资源(资源共享排他性);
(2)进程同步:多个进程发生的时间存在某种时序关系,他们需要按规定时序执行,以共同完成一项任务;
(3)进程通信:多进程之间需要传递一定的消息。
3.1.2 临界资源与临界区
在某个时间段内只允许一个进程使用的资源被称为临界资源,每个进程访问临界资源的那段程序称为临界区。
临界区进入准则:
1、空闲让进;2、忙则等待;3、有限等待;4、让权等待。
3.1.5 信号量与PV操作有计算题
目的:解决进程同步问题;
例如作业:
进程之间的关系如下图所示,试用P、V操作描述他们之间的同步
p(1){s1,v12,v13,v14};
p(2){p12,s2,v25};
p(3){p13,s3}
p(4){p14,s4}
p(5){p25,s5}
4.1.1 调度类型
(1)高级调度(作业调度),控制多道程序的道数,决定程序是否被允许进入系统中处理。
(2)中级调度(对换程序),能够提高内存的利用率和系统的吞吐量。
(3)低级调度(进程调度),决定就绪队列中那个进程获得处理机,然后由分配程序执行把处理机分配给该进程的操作。
4.1.2 进程调度方式
1、补课剥夺方式
被抢占方式。采用这种方式,一旦把处理机分配给某个进程将会一直执行下去直至运行完毕或因某种原因不能运行。
优点是:实现简单,系统开销小;缺点是:难以满足有紧急任务的进程要求。比较适用于批处理操作系统。
2、可剥夺方式
抢占方式。采用这种方式,允许一个进程按照某种原则抢占其他进程占有的处理机。
4.1.4 调度的性能准则
响应时间,周转时间,优先权,截止时间,系统吞吐量,处理机利用率,各类资源的平衡利用,公平。
4.2 进程调度算法有计算题
(1)FCFS(先来先服务调度算法);
(2)SJF(短作业优先调度算法);
(3)RR(时间片轮转调度算法);
4.3 死锁有计算题(银行家算法)
定义:一组竞争系统资源或相互通信的进程相互的“永久阻塞”,若无外力作用,该组进程将永远不能继续执行。
产生原因:1、资源不足;
2、进程的推进次序非法。
产生的必要条件:
(1)互斥条件,进程对所分配的资源进行排他性使用。
(2)请求和保持,进程提出新的资源请求,但不释放已占有的资源。
(3)不可剥夺条件,已占有的资源需等该进程使用完毕后自己释放。
(4)环路条件;存在一个进程和资源的环形链。
四个连在一起构成了死锁的充分必要条件。
预防:
(1)互斥,作为资源的固有属性不被禁止。
(2)请求和保持,使用资源预先静态分配法。
(3)不可剥夺,A进程占有资源1,请求占有资源2时被拒绝,系统要求其释放资源1,等再次执行时重新申请资源1,或者,A进程请求B进程的资源,系统要求B进程释放资源给A进程。
(4)环路;采用有序分配的策略,调整资源类型的顺序。
避免:避免死锁就是动态地决定是否允许进程当前的资源分配请求。
5.1.1 重定位
1、静态重定位
就是在程序执行之前进行重定位。
具有无序硬件支持的优点,但是程序重定位之后不能再在内存中移动而且要求程序的存储空间是连续的,不能把程序放在若干个不连续的存储区域内。
2、动态重定位
是指程序在执行过程中进行地址重定位(是在每次访问每个地址单元前再进行地址变换),需要硬件重定位寄存器的支持。
优点:目标模块装入内存时可以再次搬迁;一个程序是由若干个相对独立的目标模块组成的。
5.2.3 可变分区
是指在进程装入内存时,把可用的内存空间“切出”一个连续的区域分配给进程,以适应进程大小的需要。
5.3页式存储有计算题p147⑦⑧
5.4 段式存储有计算题p148⑨
6.1 虚拟存储器
定义:具有(请求调入)和(置换)功能,能从(逻辑)上对(内存容量)进行扩充的一种(存储器系统);
(1)局部性原理(表现在空间和时间局部性):
a.顺序执行指令和分支过程调用指令在所有程序指令中占小部分;
b.过程调用深度不超过5,其指令的引用在很少的几个进程中;
c.程序在执行循环指令时被限制在小的内存区域中;
d.程序对数据结构的处理集中在小范围内。
(2)虚拟存储器的特征:
a.离散性(进程不连续装入内存不同区域);
b.多次性(一个进程多次装入内存);
c.对换性(在进程运行时对部分数据和程序换进换出);
d.虚拟性(从逻辑上扩充内存容量)
请求页式存储管理的页面置换算法有计算题p154
(1)OPT(最佳置换算法):往后看,选择置换后面那些不再使用或最长时间内不再使用的页,若多个存储块均符合,则选择置换最近最久未使用的页;
(2)FIFO(先进先出置换算法):总是先淘汰最先进入(即在内存中朱莉事件最久)的页予以淘汰;
(3)LRU(最近最久未使用置换算法):往前看,将最近最久未使用的页淘汰。另外淘汰次数指的是置换次数,缺页次数指的是操作过的存储块。
7.2 I/O控制方式(看下)
(1)程序直接控制方式:由用户进程直接控制CPU与外设之间的信息传送。
(2)中断控制方式:目的是减少前者CPU的等待时间,提高系统并行工作的程度。要求CPU和设备控制器之间有相应的中断请求线,设备控制器的控制/状态寄存器中有相应的中断允许位。表现上设备输入数据时无需CPU干预,CPU和设备可以并行工作,当输完一个数据时,CPU才花费很短时间来进行中断处理。
(3)DMA(直接存储器访问)控制方式:特点是数据传输基本单位从字节升为数据块,数据在内存和设备之间直接传送。仅当传送开始和结束时需要CPU干预。
(4)通道控制方式:在DMA的基础上,将数据块提升到数据组。
7.4 磁盘管理(磁盘的访问)可能有计算题p189
寻道时间:磁头定位磁道的时间,用Ts表示;
旋转时间:扇区到达磁头的时间,用Tr表示;
排队延迟时间:将设备分配给进程以及共享I/O的等待时间;
传输时间:用Tt表示,Tt=b/rN;(b表示要访问的字节数、r表示旋转速度、N为一个磁道中的字节数);
磁盘访问时间:T=Ts+1/2r+b/rN;(寻道时间+平均旋转时间+传输时间);
Rpm指的是硬盘一分钟旋转的次数。
7.4.2 磁盘调度有计算题p189
(1)FCFS先来先服务:根据进程访问磁盘的先后顺序进行调度;
(2)SSTF最短寻道时间优先:尽可能使寻道距离最短;
(3)SCAN扫描算法:电梯调度,从里到外再到里双向移动/ \;
(4)C-SCAN循环扫描算法:从里到外单向移动/ /;