操作系统
考前复习版
计算机系统概述
操作系统的功能
是计算机系统资源的管理者(处理机管理、存储器管理、⽂件管理、设备管理)
是⽤户和计算机硬件系统之间的接⼝(命令接⼝、程序接⼝)
实现了对计算机资源的扩充(裸机、扩充机器、虚拟机)
操作系统的结构 (分层法、模块化、宏内核、微内核、外核)
微内核的定义和优缺点
✅
微内核架构是指将内核中最基本的功能保留在内核,⽐如地址空
间、进程通信、基本的调度等等,⽽操作系统的其他功能模块,⽐
如⽂件系统、驱动程序等等与⽤户应⽤程序⼀起运⾏于⽤户空间。
优点:安全可靠。因为驱动等的错误只会导致相应的进程死掉,不
会导致整个系统都崩溃。可移植性⾼。因为内核的设计复杂性低。
扩展性和灵活性。因为许多功能从内核中分离出来,当要修改某些
功能或增加新功能时,⽆须改动内核代码。
缺点:性能差。需要频繁地在核⼼态和⽤户态之间切换。⽽宏内核
架构因为主要功能模块作为⼀个整体运⾏在核⼼态,各管理模块之
间共享信息,有⽆可⽐拟的性能优势。
定义微内核结构的四个⽅⾯
⾜够⼩的内核
基于客户/服务器模式
应⽤“机制与策略分离”原理
采⽤⾯向对象技术
操作系统的发展历程 (单道批、多道批、分时、实时、⽹络和分布式)
分时的定义
⼀台主机上同时连接多台终端,多个⽤户可以
通过各⾃的终端同时交互地使⽤计算机,共享
主机资源。采⽤时间⽚轮转的⽅式,每个⽤户
都感觉⾃⼰独占了计算机资源。
多道的意义
资源利⽤率⾼、系统吞吐量⼤
和中断以及通道技术的关系
多道程序并发执⾏是指有的程序正在CPU上执⾏,⽽另外
⼀些程序正在I/O设备上进⾏传输,即通过CPU操作与通过
外设传输在时间上的重叠必须有中断和通道技术的⽀持。
中断是硬件中引⼊的技术,是指在输⼊输出结束时,或硬
件发⽣某种故障时,由相应的硬件向CPU发出信号,这时
CPU⽴即停下⼯作转向处理中断,处理完再继续原来的⼯
作。通道是⼀种控制⼀台或多台外部设备的硬件机构,⼀
旦被启动就独⽴于CPU⼯作,因⽽可以做到输⼊输出与
CPU⼯作并⾏。早期的CPU与通道的联络⽅法是由CPU向
通道发出询问指令来了解通道⼯作是否完成,直到通道⼯
作结束为⽌,不能做到CPU与I/O设备并⾏。
概念辨析
并⾏和并发的区别
并⾏是指两个或多个事件在同⼀时刻发⽣;并发是指两个或多个
事件在同⼀时间间隔发⽣。在多道程序环境下,并发是指在⼀段
时间内,宏观上有多个程序同时运⾏,如果是多处理器,那么这
些并发的程序可以被分配到多个处理器上,实现并⾏执⾏;但在
单处理器系统中每个时刻只能有⼀道程序执⾏,所以微观上只能
分时地交替执⾏。
库函数与系统调⽤
库函数是语⾔或应⽤程序的⼀部分,可以运⾏在⽤户空间。系统调⽤是
操作系统的⼀部分,是内核为⽤户提供的程序接⼝,运⾏在内核空间。
许多库函数会使⽤系统调⽤来实现功能。未使⽤系统调⽤的库函数的执
⾏效率通常更⾼,因为系统调⽤需要上下⽂及状态的切换。
特权指令和⾮特权指令
特权指令即有特殊权限的指令,如果使⽤不当会导致整个系统崩
溃,如清内存、置时钟、分配系统资源、修改⽤户访问权限等。
为保证系统安全,这类指令只能⽤于操作系统或其它系统软件,
不直接提供给⽤户使⽤,所以必须在核⼼态执⾏。
⽤户态下只能使⽤⾮特权指令,若使⽤特权指令将产⽣中断以阻
⽌⽤户使⽤。从⽤户态转换为核⼼态唯⼀途径是中断或异常。
访管指令与访管中断
访管指令是可以在⽤户态下执⾏的指令。
⽤户态下,因要求操作系统提供服务⽽有意识地
使⽤访管指令,从⽽产⽣⼀个中断事件,将操作
系统转换为核⼼态,这个中断称为访管中断。
访管中断由访管指令产⽣,程序员使⽤访管指令
向操作系统请求服务。
处理机管理
为什么进⾏处理机调度
❓
为了合理地处理计算机的软、硬件资源。若没有处理机调度,则意味着
要等到当前运⾏的进程执⾏完毕后,下⼀个进程才能执⾏,⽽在实际情
况中,进程时常需要等待⼀些外部设备的输⼊,⽽外部设备的速度与处
理机相⽐是⾮常缓慢的,所以让处理机总是等待外部设备,则对处理机
的资源是极⼤的浪费。但引⼊处理机调度之后,可以在运⾏进程等待外
部设备时,把处理机调度给其他进程,从⽽提⾼处理机的利⽤率。
PCB包含的信息
PID进程标识符
资源分配清单
进程状态信息和进程优先级
处理机状态信息
没有⽤户程序和⽤户资源
考过的知识点
📒
处理机调度的分类
✅
⾼中低、⻓中短、作业内存进程
调度算法
❤
短作业优先
先来先服务
实时操作系统 优先级调度
分时操作系统
时间⽚轮转
⾼响应⽐优先
多级反馈队列
实时调度和分时间⽚轮转调度
✅
实时调度算法是在实时操作系统中采⽤的调度算法,按调
度⽅式可以分为⾮抢占式和抢占式。时间⽚轮转调度是指
每个进程依次执⾏⼀个时间⽚,若进程在⼀个时间⽚内没
有执⾏完成,则重新插⼊就绪队列末尾的算法,它可以应
⽤在分时操作系统中。
上下⽂切换
✅
上下⽂是指某⼀时刻CPU寄存器和程序计数器的内容。切换CPU到另⼀个进
程需要保存当前进程状态并恢复另⼀个进程的状态,这个任务称为上下⽂切
换。上下⽂切换对系统来说意味着消耗⼤量的CPU时间。
流程如下:
挂起⼀个进程,保存CPU上下⽂,包括程序计数器和其它寄存器;
更新旧进程的PCB信息;把进程的PCB移⼊相应的队列,如就绪、阻塞等;
选择另⼀个进程执⾏,并更新其PCB;跳转到新进程PCB中的程序计数器所
指向的位置执⾏;
恢复处理机上下⽂。
创建进程和线程各⾃需要的资源
✅
创建和销毁⼀个线程不需要额外申请和释放资源,
因为它们共⽤⼀个进程的资源和状态,⽽⾃⼰本身
只有⼀点必不可少、能保证独⽴运⾏的资源。
创建⼀个进程需要分配内存、⽂件、I/O设备、
CPU时间等,这些资源体现在PCB中,来⾃操作
系统或⽗进程。
引⼊进程是为了更好地使多道程序并发执⾏,提⾼
资源利⽤率,系统吞吐量。
引⼊线程是为了减少程序并发执⾏的时空开销。
为什么对于CPU调度来说,区分I/O限
制的程序和CPU限制的程序很重要
✅
I/O限制的程序有在运⾏I/O操作前只运⾏很少数量
的计算操作的性质。这种程序⼀般来说不会使⽤很
多的CPU。另⼀⽅⾯,CPU限制的程序利⽤整个
的时间⽚,且不做任何阻碍I/O操作的⼯作。因
此,通过给I/O限制的程序优先权、允许在CPU限
制的程序之前运⾏,可以很好的利⽤计算机资源。
为什么会产⽣死锁
❓
(必要条件)
死锁与饥饿
✅
死锁是指多道程序系统中,⼀组进程中的每⼀个进程都⽆限期等待
该组进程中的另⼀个进程所占有且永远不会释放的资源。可以认为
是两个线程或进程在请求对⽅占有的资源。饥饿是指⼀个线程在⽆
限期地等待另外两个或多个线程相互传递使⽤并且不会释放的资
源。⼆者都是由于竞争资源引起的。当饥饿到⼀定程度的进程即使
完成也不再具有实际意义时称该进程饿死。
进⼊饥饿状态的进程可以只有⼀个,但因循环等待条件⽽进⼊死锁
状态的进程必须⼤于等于两个。进⼊饥饿状态的进程可以是⼀个就
绪进程,⽽处于死锁状态的进程必定是阻塞进程。
怎么解决死锁
预防 破坏4个必要条件之⼀即可 ⽐如:资源有序分配
避免 银⾏家算法⼯作原理
主要思想是避免系统进⼊不安全状态。在每次进⾏资源分配
时,它⾸先检查系统是否有⾜够的资源满⾜要求,若有则先
进⾏试分配,并对分配后的新状态进⾏安全性检查。若新状
态安全,则正式分配上述资源,否则拒绝分配。这样就可以
保证系统始终处于安全状态,避免死锁。
把操作系统视为银⾏家,操作系统管理的资源相对于银⾏家
管理的资⾦,进程向操作系统请求分配资源相当于⽤户向银
⾏家贷款。操作系统按照银⾏家制定的规则为进程分配资
源。进程运⾏之前先声明对各种资源的最⼤需求量,当进程
在执⾏中继续申请资源时,先测试该进程已占⽤的资源数与
本次申请的资源数之和是否超过该进程声明的最⼤需求量。
若超过则拒绝分配,若未超过则再测试系统现存的资源能否
满⾜该进程尚需的最⼤资源量,不满⾜则要推迟分配。
检测与解除
4个必要条件
互斥条件
不剥夺条件
请求并保持条件
循环等待条件
进程间通信的⽅式
共享存储
信息传递
管道通信
✅
是进程间的⼀种通信⽅式。管道是指⽤于连接⼀个读进程
和⼀个写进程以实现它们之间的通信的⼀个共享⽂件,⼜
名pipe⽂件。
为协调双⽅的通信,管道机制必须有以下三⽅⾯的协调能
⼒:互斥、同步和确定对⽅的存在。实际上管道是⼀个固
定⼤⼩的缓冲区。缓冲区只允许⼀边写,另⼀边读⼊。但
是在共享存储中,某进程若要访问共享存储空间,则必须
没有其他进程在共享存储空间进⾏写操作。
概念辨析:通道
通道是专⻔处理I/O的处理机,是⼀种
通过执⾏通道程序管理I/O操作的控制
器,它使得主机的CPU和内存与I/O操
作之间达到更⾼的并⾏程度。由于它
的任务是管理实现输⼊/输出操作,提
供⼀种传送通道,所以称作通道。
信号量
设计⼤题
❤
消费者⽣产者问题
读者写者问题
哲学家进餐问题
理发师问题
管程
是⼀种进程同步⼯具。管程的特性保证了进程互斥,⽆须程序员
⾃⼰实现互斥,从⽽降低了死锁发⽣的可能性。同时管程提供了
条件变量,可以让程序员灵活地实现进程同步。
代表共享资源的数据结构以及由对该共享数据结构实施操作的⼀
组过程所组成的资源管理程序叫管程。它定义了⼀个数据结构和
能为并发进程所执⾏的⼀组操作。管程把对共享资源的操作封装
起来,管程内的数据结构只能被管程内的过程所访问。每次只允
许⼀个进程进⼊管程,从⽽实现进程互斥。
概念辨析
进程和程序的区别与联系
为什么引⼊进程
❓
临界资源和临界区
实现临界区互斥的⽅法
软件
单标志法
双标志法先检查
双标志法后检查
⽪特森算法
硬件
中断屏蔽⽅法
硬件指令⽅法
⼀次仅允许⼀个进程使⽤的资源称
为临界资源;在每个进程中,访问
临界资源的那段代码称为临界区。
上下⽂切换与模式切换
⼆者是不同的,模式切换时,CPU逻辑上可能还
在执⾏同⼀进程,⽐如进程因中断或异常处理机
进⼊核⼼态运⾏,执⾏完后⼜回到⽤户态刚被中
断的进程运⾏,⽽上下⽂切换实质上是指处理机
从⼀个进程的运⾏转到另⼀个进程上运⾏。
模式切换包括⽤户态转核⼼态和核⼼态转⽤户态
两种,⽽上下⽂切换只能发⽣在内核态。
切换与调度
调度是决定资源分配给哪个进程的⾏为,是⼀
种决策⾏为。切换是指实际分配的⾏为,是执
⾏⾏为。⼀般来说,先有资源的调度,再有进
程的切换。
不同的进程之间的关系 同步与互斥
同步是指为完成某种任务⽽建⽴的两个或多个进
程,这些进程因为需要在某些位置上协调它们的⼯
作次序⽽等待、传递信息所产⽣的协作关系。(说
制约关系也可)
互斥是指当⼀个进程进⼊临界区使⽤临界资源时,
另⼀个进程必须等待,当占⽤临界资源的进程退出
临界区后,另⼀进程才允许去访问此临界资源,是
⼀种竞争关系。
内存管理
为什么要进⾏内存管理
❓
在单道系统阶段,⼀个系统在⼀个时间段内只执⾏⼀个程
序,内存的分配极其简单,仅分配给当前运⾏的进程。引
⼊多道程序后,进程之间共享的不仅仅是处理机,还有主
存储器。此时若不对内存进⾏管理,则容易导致内存数据
的混乱,以⾄于影响进程的并发执⾏。所以为了更好地⽀
持多道程序的并发执⾏,必须进⾏内存管理。主要包括内
存分配与回收、内存保护、地址映射和内存扩充。
考过的知识点
📒
⻚式管理和段式管理的区别与联系
✅
联系:在内存中都是不连续的、都有地址变换机构完成地址映射。
区别:
⽬的⽅⾯:分⻚仅是系统管理上的需要,是为了实现离散分配⽅式,
以提⾼内存的利⽤率,⽽不是⽤户的需要;⽽段是信息的逻辑单位,
它含有⼀组意义相对完整的信息,为了满⾜⽤户的需要。
⻓度⽅⾯:⻚的⼤⼩固定且由系统决定,由系统把逻辑地址划分为⻚
号和⻚内地址两部分,由机器硬件实现;⽽段的⻓度不固定,决定于
⽤户编写的程序,通常由编译程序编译时根据信息的性质划分。
地址空间⽅⾯:分⻚的程序地址空间是⼀维的,是单⼀的线性地址空
间,程序员⽤⼀个记忆符表示⼀个地址;⽽分段的程序地址空间是⼆
维的,程序员标识⼀个地址时,需给出段名和段内地址。
碎⽚⽅⾯:分⻚管理有内部碎⽚,⽆外部碎⽚;⽽分段管理有外部碎
⽚,⽆内部碎⽚。
段⻚式内存管理的基本⽅法
✅
分⻚存储管理能有效地提⾼内存利⽤率,⽽分段存储管理能反映
程序的逻辑结构并有利于段的共享和保护。两种存储管理⽅法结
合起来,便形成了段⻚式存储管理⽅式。
作业的地址空间被分成若⼲逻辑段,然后将每个段分成若⼲⼤⼩
固定的⻚。对内存空间的管理仍和分⻚存储管理⼀样,对内存的
分配以存储块为单位。段⻚式管理为每⼀个装⼊内存的作业建⽴
⼀张段表,对每⼀个段建⽴⼀张⻚表;段表的⻓度由作业分段的
个数决定,段表中的每⼀个表⽬指出本段⻚表的始址和⻓度;⻚
表的⻓度则由对应段所划分的⻚⾯数所决定,⻚表中的每⼀个表
⽬指出本段的逻辑⻚号与内存物理块号之间的对应关系。
地址重定位和动态地址重定位
✅
当装⼊程序将可执⾏代码装⼊内存时,必须通过地址转换将
逻辑地址转换成物理地址,这个过程叫做地址重定位。
程序在内存中若发⽣移动,则需要采⽤动态的装⼊⽅式。装
⼊程序把装⼊模块装⼊内存后,并不⽴即把装⼊模块中的相
对地址转换为绝对地址,⽽是把这种地址转换推迟到程序真
正要执⾏时才进⾏。
动态重定位的特点:需要重定位寄存器的⽀持;可将程序分
配到不连续的存储区;在程序运⾏之前可以只装⼊部分代码
即可投⼊运⾏;程序运⾏期间,根据需要,动态申请分配内
存;便于程序段的共享。
逻辑地址转物理地址
❤
⻚⾯置换算法
❤
最佳置换算法OPT
最⻓时间内不再被访问,⽆法实
现,但可以⽤来评价其他算法 不是未来访问次数最少
先进先出算法FIFO 基于队列实现 可能会出现belady异常
最近最久未使⽤算法LRU 需要寄存器和栈道硬件⽀持 不会出现belady现象
时钟置换算法CLOCK
⼜叫最近未⽤算法NRU
改进型
0-0未被访问且未被修改
0-1未被访问但已被修改
1-0已被访问但未被修改
1-1已被访问且已被修改
驻留集和⼯作集
✅
驻留集管理和⻚替换策略
✅
驻留集管理关⼼的问题是给每个活动进程分配多
少个⻚框以及计划置换的⻚集是局限于那些缺⻚
中断的进程还是所有⻚框都在内存中的进程。
⻚替换策略关⼼的问题是在计划置换的⻚集中选
择换出哪⼀⻚。
驻留集是请求分⻚存储管理中给进程分配的内
存块的集合。⼯作集是在某段时间间隔⾥,进
程实际访问的⻚⾯集合。
为了防⽌抖动现象的发⽣,通常驻留集⼤于⼯
作集,通过⼯作集来调整驻留集,可以提⾼内
存利⽤率。
分⻚系统何时出现缺⻚以及如何处理
✅
当需要访问的⻚⾯不在内存时会出现缺⻚中断。
此时应将缺⻚的进程阻塞(调⻚完成再唤醒),若内
存中有空闲块,则分配⼀个块,将要调⼊的⻚装⼊该
块,并修改⻚表中的相应⻚的⻚表项。若此时内存中
⽆空闲块,则要淘汰某⻚,选择⼀⻚换出,若被淘汰
⻚在内存期间被修改过,则要将其写回外存。
主存利⽤率不⾼的表现及解决办法
✅
表现:内存中存在⼤量的、分散的、难以利⽤的碎⽚;暂时或⻓期
不能运⾏的程序和数据占据了⼤量内存空间;当作业较⼤时,内存
只能装⼊少量作业,当它们被阻塞时,会使CPU空闲,降低内存的
利⽤率;内存中存在⼤量重复的拷⻉。
解决办法:改连续分配为离散分配,减少内存碎⽚;增加对换机
制,将那些暂时不⽤的程序和数据换出到外存;采⽤虚拟存储技
术,将更多的作业装⼊内存或引⼊动态装⼊和链接机制,尽量避免
装⼊本次运⾏不⽤的程序;引⼊存储器共享机制,减少重复拷⻉。
其它核⼼问题
动态分区分配算法
⾸次适应算法
邻近适应算法 ⼜叫循环⾸次适应算法
最佳适应算法
分配⼀次后排序⼀次
通常性能很差,产⽣最多的外部碎⽚
最坏适应算法 分配⼀次后排序⼀次
为什么要引⼊虚拟内存
❓
多道程序的并发执⾏不仅使进程之间共享了处理器,⽽
且同时共享了主存。然⽽随着对处理器需求的增⻓,若
同时运⾏的进程太多,则需要很多的内存,当⼀个程序
没有内存空间可⽤时,甚⾄⽆法运⾏。所以在物理扩展
内存相对有限的条件下,应尝试在逻辑上扩充内存。
虚拟内存性能影响因素
❓
缺⻚率(缺⻚率⾼则为抖动)是影响虚拟存储器性能的
主要因素,缺⻚率⼜受到⻚⾯⼤⼩、分配给进程的物理
块数、⻚⾯置换算法以及程序的编制⽅法的影响。
根据局部性原理,⻚⾯⼤则缺⻚率较低,尽管这样减少
了⻚表⻓度,同时会使⻚内碎⽚增⼤。
分配的物理块数越多,缺⻚率越低,但超过了某个数
量,也只能是浪费内存空间。
LRU或者CLOCK算法可以使未来有可能访问的⻚⾯尽
量保存在内存,从⽽提⾼⻚⾯访问速度。
编写程序的局部化程度越⾼,执⾏时的缺⻚率越低,如
果采⽤按⾏存储则尽量按⾏访问。
⻚式管理的每个⻚表项的⼤⼩如何界定
⻚表项的作⽤是找到该⻚在内存中的位置。
以32位逻辑地址空间、字节编址单位、⼀
⻚4KB为例,地址空间内含有2的32次⽅除
以4KB也就是1M⻚,需要log1M也就是20
位才能保证表示范围能容纳所有的⻚⾯,⼜
因为以字节作为编址单位,即⻚表项的⼤⼩
要⼤于等于20/8也就是3B,这时可以选择
更⼤的⻚表项让⼀个⻚⾯能够正好容下整数
个⻚表项,以⽅便存储,⽐如4B。
多级⻚表解决了什么问题⼜会带来什么问题
解决的问题
当逻辑地址空间过⼤时,⻚表的
⻓度会⼤⼤增加的问题。
带来的问题
⼀次访盘需要多次访问内存甚⾄磁
盘,会⼤⼤增加⼀次访存的时间。
覆盖技术与虚拟存储技术本质不同在于什么
交换技术与虚拟存储技术中使⽤
的调⼊/调出技术的异同
交换技术就是把暂时不⽤的某个程序及数据从内
存移到外存中,以便腾出必要的内存空间,或把
指定的程序或数据从外存读到内存中的⼀种内存
扩充技术。
⼆者的主要相同点是,都要在内存与外存之间交
换信息。主要区别是,交换技术的调⼊/调出整
个进程,因此⼀个进程的⼤⼩要受内存容量⼤⼩
的限制;⽽虚存中使⽤的调⼊/调出技术在内存
和外存之间来回传递的是⻚⾯或分段,⽽不是整
个进程,从⽽使得进程的地址映射具有更⼤的灵
活性,且允许进程的⼤⼩⽐可⽤的内存空间⼤。
最本质的不同在于覆盖程序段的最⼤⻓度要
受内存容量⼤⼩的限制,⽽虚拟存储器中程
序的最⼤⻓度不受内存容量的限制,只受计
算机地址结构的限制。另外,覆盖技术中的
覆盖段由程序员设计,且要求覆盖段中的每
个覆盖具有相对独⽴性,不存在直接联系或
相互交叉访问,⽽虚拟存储技术对⽤户的程
序段没有这种要求。
⽂件管理
⽂件的逻辑结构
⽆结构⽂件/流式⽂件
有结构⽂件/记录式⽂件
顺序⽂件
索引⽂件
索引顺序⽂件
直接⽂件或散列⽂件
⽂件的物理结构
连续分配
需要访问磁盘1次
顺序存取时速度快,⽂件定⻓时可根据⽂
件起始地址及记录⻓度进⾏随机访问。
⽂件存储要求连续的存储空间,会产⽣碎
⽚,不利于⽂件的动态扩充。
链接分配
需要访问磁盘n次
可解决外存的碎⽚问题,提⾼外存空间
的利⽤率,动态增⻓⽐较⽅便
只能按照⽂件的指针链顺序访问,查找
效率低,指针信息存放消耗外存空间
索引分配
m级需访问磁盘m+1次
可以随机访问,⽂件易于增删
索引表增加存储空间的开销,索引表的
查找策略对⽂件系统的效率影响较⼤
混合索引分配
⽂件的打开过程
检索⽬录:在检索到指定⽂件后,就将其磁盘inode复制
到活动inode表中;
把参数node所给出的打开⽅式与活动inode中在创建⽂件
时所记录对⽂件访问权限⽐较:合法的话则打开成功;
打卡合法时,为⽂件分配⽤户打卡⽂件表表项和系统打卡
⽂件表表项,并为后者设置初值,通过指针建⽴表项与活
动inode之间的联系,再把⽂件描述符fd返回给调⽤者。
⽬录管理的要求
1、实现按名存取。(最基本的功能)
2、提⾼对⽬录的检索速度,从⽽提⾼对⽂件的存取速度。
3、为了⽅便⽤户共享⽂件,还需提供⽤于控制访问⽂件的信息。
4、允许不同⽤户对不同⽂件采⽤相同的名字,以便⽤户按⾃⼰的习惯给⽂件命名。
⽂件系统的功能
对于⽤户⽽⾔,⽂件系统最主要的功能是实现对⽂
件的基本操作,让⽤户可以按名存储和查找⽂件,
组织成合适的结构,并应当具有基本的⽂件共享和
⽂件保护功能。
对操作系统本身⽽⾔,⽂件系统还需要管理与磁盘
的信息交换,完成⽂件逻辑结构和物理结构上的交
换,组织⽂件在磁盘上的存放,采取好的⽂件排放
顺序和磁盘调度⽅法以提升整个系统的性能。
输⼊输出管理
什么是设备独⽴性
设备独⽴性是指⽤户在编程序时使⽤的设备
与实际设备⽆关。⼀个程序应独⽴于分配给
它的某类设备的具体设备,即在⽤户程序中
只指明I/O使⽤的设备类型即可。
优点:⽅便⽤户编程;使程序运⾏不受具体
机器环境的限制;便于程序移植。
磁盘调度算法
❤
先来先服务
最短寻找时间优先
扫描算法(电梯调度算法)
循环扫描算法
I/O管理的功能
状态跟踪:实时掌握外部设备的状态。
设备存取:实现对设备的存取。
设备分配:在多⽤户环境下,负责设备分配与回收。
设备控制:包括设备驱动、完成和故障的中断处理。
设备分配的策略 过程
如何提⾼分配的成功率
增加设备的独⽴性
考虑多通路情况
分配设备:⾸先根据I/O请求中的物理设备名查找系统设备表
SDT,从中找到该设备的DCT,再根据DCT中的设备状态字
段判断设备是否在忙,如果空闲且安全则分配给进程,否则
将其PCB挂到设备队列上。
分配控制器:系统把设备分配给请求I/O的进程之后,再到
DCT中找出与该设备连接的控制器的COCT,根据COCT中
的状态字段判断控制器是否在忙,如果空闲则分配给进程,
否则将其PCB挂到该控制器的等待队列上。
分配通道:控制器分配完成后,在该COCT中找出与该控制
器连接的通道的CHCT,根据CHCT中的状态字段判断通道是
否在忙,如果空闲则分配给进程,否则将其PCB挂到该通道
的等待队列上。
只有以上三者都分配成功了,设备分配才算成功。
提⾼磁盘I/O速度的⽅法
提前读:在读磁盘当前块之前,把下⼀磁盘块也读⼊内存缓冲区。
延迟写:仅在缓冲区⾸部设置延迟写标志,然后释放此缓冲区并将
其链⼊空闲缓冲区链表的尾部,当其他进程申请到此缓冲区时,才
真正把缓冲区信息写⼊磁盘块。
虚拟盘:⽤内存空间去仿真磁盘,常⽤于存放临时⽂件。
I/O控制⽅式
程序直接控制/可编程I/O
中断驱动控制
DMA控制⽅式
通道控制
磁盘与磁带
磁带和磁盘是磁存储器的类型。两者都称为⾮易失性存储,⽤于存储数
据。 磁带包含⽤于存储数据的薄塑料带。它是⼀种顺序存取存储器。所
以数据读/写速度较慢。它主要⽤于数据备份。 磁盘包含由⾦属或塑料制
成的圆盘。磁盘的两⾯通常⽤于存储数据。磁盘涂有磁性氧化物。磁盘被
分成多个称为磁道的同⼼圆,磁道被分成存储数据的扇区。
spooling技术
为了缓和CPU的⾼速性与I/O设备低速性之间的⽭盾,引
⼊了脱机输⼊/输出技术,它是操作系统中采⽤的⼀项将
独占设备改造成共享设备的技术。需要使⽤磁盘空间(输
⼊井和输出井)和内存空间(输⼊/输出缓冲区)。