优先级为27的任务进入就绪状态,如何确定任务的优先级设置或编程

格式:DOC ? 页数:8页 ? 上传日期: 16:26:04 ? 浏览次数:46 ? ? 1500积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

本篇摘自计算机操作系统课程复***文档感谢文档的整理者,感谢操作系统老师感谢发我文档的静姐,如有侵权之处请联系删除。

1、OS定义、基本特征、四大组成部分
操作系统OS:操作系统是一组能有效组织和管理计算机硬件和软件资源合理地对各类作业进行调度,以及方便用户使用的程序集合(1.2.3-3)
四夶组成:处理机管理、存储器管理、设备管理、文件管理(1.4)
2、三种基本类型的OS
批处理,分时系统实时系统
并行性:两个或多个时间茬同事发生(多CPU)
倘若计算机系统中有多个处理机,这些可以并发执行的程序便可被分配到多个处理机上实现并行操作
并发性:两个或哆个时间在同一时间间隔内发生(单CPU)
每个时刻有且仅有一道城促执行,故微观上这些程序只能是分时交替执行
共享:共享资源又称资源複用是指系统中的资源可供内存中多个并发执行的进程共同使用
互斥共享方式:如打印机、磁带机
同事访问方式:允许在一段时间内由哆个进程“同时”对它进行访问
虚拟:“空分复用”“时分复用”,将一条物理信道变为若干条逻辑信道使原来只能供一对用户通话的粅理信道,变为能供多个用户同时通话的逻辑信道
异步:使进程的执行通常都不可能是“一气呵成”而是“停停走走”的方式运行
4、多噵程序? (1.2.3)
用户提交的作业先存放在外存上并排成一个队列,成为“后备队列”然后由作业调度程序按一定算法,从后备队列中选擇若干个作业调入内存使它们共享CPU和系统中的资源。(在一个作业的IO间隙时CPU是空闲的,这时利用CPU的空闲时间去做另一个作业多道程序交替运行,使CPU在忙碌状态)
5、进程的定义、进程的基本状态及转换原因
进程:(1)进程是程序的一次执行
(2)进程是一个程序及其数据茬处理机上顺序执行时所发生的活动
(3)进程是具有独立功能的程序在一个数据集合上运行的过程他是系统进行资源分 配和调度的一个獨立单位
*进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程的三个基本状态:(1)就绪(ready)

6、阻塞、唤醒、挂起、激活 (2.3.4/2.3.5)
引发阻塞和唤醒的事件:
(1)向系统请求共享资源失败:
一进程请求使用打印机由于打印机已被分配给写的进程,则无可洅分配可用的打印机则请求者进程被阻塞,(其他进程释放打印机时请求进程被唤醒)
(2)等待某种操作完成:
进程启动了某I/O设备,洳果只有在I/O设备完成了制定的I/O操作任务后才能执行则该进程在启动了I/O设备后便自动进入阻塞状态去等待,(I/O操作完成后再由中断处理程序将该进程唤醒)
(3)新数据尚未到达:
有两个进程,A进程用于输入数据B进程对数据进行加工,假如A正在输入还未完成则B将被阻塞(A输入完毕后便去唤醒B)
(4)等待新任务的到达
常见于网络环境下的OS,比如在网络环境中的发送进程其任务是发送数据包,若已有数据包已全部发送完毕无心的数据包发送,则进程被自己阻塞(仅当有新的数据包到达时,将进程唤醒)
进程阻塞的过程:调用block阻塞原语將自己阻塞(**自己阻塞自己)
进程唤醒的过程:调用wakeup唤醒原语将等待该事件的进程唤醒
**有阻塞,就一定有唤醒否则将永远处在阻塞状態,没有机会继续运行
进程的挂起:用suspend原语将处在阻塞的进程挂起
(1)检查被挂起的进程的状态若处于活动就绪状态,则改为静止阻塞僦绪状态(处 在活动阻塞状态改为静止阻塞状态)
(2)为了方便用户或父进程考察该进程的运行情况,把该进程的PCB复制到制定的内 存区域
(3)若被挂起的进程正在执行则转向调度程序重进调度
进程的激活:用active原语
(1)将进程从外存调入内存,检查现行状态(静止就绪–>活动就绪静止阻塞–>活动阻塞)
(2)抢占调度策略:每当有禁止就绪进程被激活进入就绪队列时,检查是否要重新调度(比较优先级洳果被激活进程优先级低,不用重新调度否则,立即剥夺当前进程的运行把处理机分配给刚刚激活的进程)
PCB:进程控制块,为了使参與并发执行的没个程序(含数据)都能独立运行描述进程的基本情况和活动过程,进而控制和管理进程
TCB:线程控制块进程是拥有资源嘚资本单位,线程已不是可执行的实体(进程、线程的比较)
JCB:作业控制块保存系统对作业进行管理和调度所不要的全部信息,每当一個作业进入系统时由“作业注册”程序为改作业建立一个作业控制块JCB再根据作业类型将它放到相应的作业后备队中等待调度。作业运行期间系统按照JCB中的信息和作业说明书队作业进行控制。当作业执行结束进入完成状态系统负责收回分配给他的资源,撤销该作业控制塊
FCB:文件控制块,有三类信息基本信息(文件名,文件物理位置文件逻辑结构,文件物理结构)存取控制信息(存取权限),只鼡信息(建立日期上一次修改日期,当前使用信息)
8、处理机管理的功能和任务 1.4.1
功能:(1)创建和撤销进程(2)对诸进程的运行进行协調(3)实现进程之间的信息交换(4)按照一定算法把处理机分配给进程
任务:(1)进程控制:为作业创建进程、撤销(终止)已结束的进程以及控制进程在运行过程中的状态转换
(2)进程同步:进程互斥方式,对临界资源进行访问时应采用互斥的方式
进程同步方式:在相互合作去完成共同任务的诸进程间由同步机制对他们的执行次序进行协调
(3)进程通信:由源进程利用发送命令直接将消息message挂到目标进程的消息队列上,以后由目标进程利用接收命令从其队列中取消息
作业调度:(磁盘)作业调度的基本任务是从后备队列按照一定的算法選择出若干个作业为它们分配运行所需要的资源,在这些作业调入内存后分别为它们建立进程,使它们都成为可能处理机的就绪进程并将它们插入就绪队列
进程调度:(内存)进程调度的任务是从进程的就绪队列中按照一定算法选出一个进程将处理机分配给他,并为怹设置运行现场使其投入执行
(1)引起创建进程的事件:
用户登录:当分时系统中,用户在终端键入登录命令后若登录成功,系统将為该用户建立一个进程并把它插入就绪队列中
作业调度:在躲到程序系统中,当作业调度程序按一定算法调度到某个作业时便将它们裝入内存,为它们创建进程并把它们插入就绪队列中
提供服务:例如,用户程序进程要求进行文件打印操作系统将为它们创建一个打茚进程,这样不仅可使打印进程与该用户进程并发执行而且还便于计算为完成打印任务所需要花费的事件。
应用请求:由用户进程自己創建新的进程以便使新的进程以同创建者进程并发的形式完成特定任务
2、为新的进程分配其运行所需的资源
4、如果进程就绪队列能够接納新锦成,便将新进程插入就绪队列
(1)引起进程终止的事件:
正常结束:进程已经完成准备退出运行
异常结束:比如,越界错、保护錯、非法指令、特权指令错、运行超时、等待超时、I/O故障、算数运算错
外界干预:操作员或操作系统干预(例如:发生了死锁)、父程序請求(子进程完成了父进程要求的任务父进程可以提出请求结束该子进程)、因父进程终止
1、根据终止进程标识符,从PCB集合中检索出该進程的PCB从中读出该进程的状态
2、若被终止进程正处在执行状态,应立即终止该进程的执行并置调度标志为真,用于只是该进程被终止後应重新进行调度
3、若该进程有子孙进程还应将其所有子孙进程终止,以防它们成为不可控的进程
4、将被终止的进程所拥有的全部资源戓者归还给其父进程或归还系统
5、将被终止的进程PCB从缩在队列(或链表)中移出,等待其他程序来搜集信息
进程在并发时(1)间断性:甴于在并发时共享系统资源以及为完成同一项任务而相互合 致使在这些并发执行的程序之间形成了相互制约的关系,时程序具有“执行-暫停-执行” 这种间断性的活动规律
(3)失去封闭性:例如当处理机已被分配给某个进程运行时,其他程序必须等待 可能会更改该进程所需的资源
(4)不可再现性:由于失去了封闭性,其计算结果必将与并发程序的执行速度有关 从未使程序的执行失去可再现性
一个最主偠原因是要把用户程序和系统程序区分开,以利于程序的共享和保护显然,这也是以增加系统复杂度和系统开销为代价的
13、处理机调度層次(作业调度、内存调度、进程调度)3.2/3.3
高级调度:长程调度、作业调度
低级调度:短程调度、进程调度
FCFS先来先服务调度算法:按照作业箌达的先后次序来尽心调度
SJF短作业有限的调度算法:作业越短其优先级越高,时间长短由作业所要求的运行时间来衡量
HRRN高响应比优先调喥算法:优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间
可以看出:(1)如果作业等待时间相同则要求服务的时間越短,其优先权愈高有利于短作业(2)当要求服务的时间相同,作业的优先权取决于等待时间先来先服务(3)对于场作业的优先级,可以随等待时间的增加而提高等待时间足够长时,也可以过得处理机
15、进程调度算法(轮转RR、优先级、多队列调度算法) 3.3
轮转法:将所有的就绪进程排成一个就绪队列并可设置每隔一段时间间隔产生一次中断,激活系统中的进程调度程序完成调度,将CPU分配给队首的進程令其执行。当该进程的时间片耗尽或运行完毕时系统再次将CPU分配给新的队首进程。由此可保证就绪队列中的所有进程在一个确萣的时间段内,都能获得一次CPU执行
切换时机:(1)若一个时间片尚未用完,正在执行的进程便已经完成就立即激活调度程序,就将它從就绪队列中删除再调度就绪队列中队首的运行,并启动一个新的时间片(2)在一个时间片用完时计时器中断数理程序被激活,如进程尚未完成调度程序将把它送往就绪队列队尾
(1)非抢占式优先级调度算法:
一旦把处理机分配给就绪队列优先级最高的进程后,该进程会一直执行下取直至完成,或者因为该进程发生了某事件放弃处理机时系统才将处理机
(2)抢占式优先级调度算法:
把处理机分配給优先级最高的进程,使之执行执行期间出现了比他优先级高的进程,调度程序会把处理机分配给信道的优先级最高的进程
将系统中的進程就绪队列从一个拆分为若干个将不同类型或性质的?分配在不同的就绪队列,不同的就绪队列采用不同的调度算法一个就绪队列Φ的进程可设置不同的优先级。
16、实时调度算法(抢占、非抢占)(最早截止时间有限) 3.4.3
非抢占轮转式调度算法:由一台计算机控制若干個相同的对象为每个被控对象建立一个实时任务,并将它们排成一个轮转队列调度程序每次选择队列中的第一个任务投入运行。当该任务完成后便将它挂到轮转队列的末尾等待,调度程序再选择下一个队首任务运行(用于不太严格的实时控制系统)
非抢占式优先调喥算法:(同上)
基于时钟中断的抢占式优先级调度算法:当某实时任务到达后,如果他的优先级高于当前任务并不立即抢占当前任务嘚处理机,而是等到时钟中断发生时调度程序才剥夺当前任务的执行,将处理机分配给信道的高优先级任务
立即抢占的优先级调度算法:一旦出现外部中断,只要当前任务未处在临界区便立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务
EDF最早截止时间優先算法:根据任务的截止时间确定任务的优先级,任务截止的时间越早其优先级越高(同样有抢占和非抢占两种,和上面的原理一样)
类型:(1)共享存储器系统(2)管道通信技术(3)消息传递系统(4)客户机-服务器系统
直接消息传递系统实例:
(1)消息缓冲队列通信機制中的数据结构
PCB有关通信的数据项:
发送进程在利用发送原语发送消息钱应先在自己的内存空间设置一发送去a,把待发送的消息正文、发送进程标识符、消息长度等信息填入其中然后调用发送原语,把消息发送给目标(接收)程序发送原语首先根据发送区中所设置嘚消息长度a.size来申请一缓冲区i,接着把发送区a中的信息复制到缓冲区i中为了能将i挂在接收进程的消息队列mq上,应先获得接收进程的内部标識符j然后将i挂在j.mq上。由于该队列属于临界资源故在执行insert操作的前后都要执行wait和signal操作。
接收进程调用原语receive(b),从自己的消息缓冲区队列mq中摘丅第一个消息缓冲区i,并将其中数据的复制到以b为首地址的制定消息接收区
在一定时间只能为一个进程访问的资源
临界区:每个进程中访問临界资源的那段代码成为临界区
保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问:
每个进程进去临界区之湔应先对欲访问的临界资源进行检查,看它是否正在被访问
如此刻临界资源未被访问,进程便可进入临界区对该资源进行访问并设置它正在被访问的标志;如果此刻临界资源正在被某进程访问,则本进程不能进入临界区
因此,必须在进去临界区之前加一段进入区代碼用来进行检查临界资源,在临界区后加一段退出去代码用于将领街区正被访问的标会恢复为未被访问标志。
同步机制应遵循的规则:
(3)有限等待:对要求访问临界资源的进程应保证在有限时间内能进入自己的临界区,以免进入死等待
(4)让权等待:当进程不能进叺自己的临界区时应立即释放处理机,以免进程陷入“忙等”状态
PV操作:整型信号量S表示资源数目与一般整型数量不同,除初始化之外仅能通过两个标准的原子操作wait(S)和signal(S)来访问。
这两个操作在执行时不可中断其他进程不可同时对该信号进行修改
在整型信号量机制中的wait操作,只要是信号量S<=0就会不断测试,因此并未遵循“让权等待”的准则而是使进程处于“忙等”状态。记录信号量机制则是一种不存茬“忙等”现象的进程同步机制信号量机制中,有一个用于代表资源数目的整型变量value和一个进程链表指针list用于链接的所有等待进程。
信号弹S说明:S>0 可用资源
S<0 S的绝对值表示被阻塞资源个数
P操作:信号量减1判断是否阻塞
v操作:信号量加1,判断是否唤醒
利用信号量实现进程互斥
1、设mutex为互斥信号量值为1,取值范围(-1,0,1)mutex=1时表示两个进程皆未进入临界区;当mutex=0时,表示有一个进程进入临界区运行另一个必须等待;当mutex=-1时,表示有一个进程正在领街区运行另外一个进程因等待而阻塞在信号量队列中,需要被当前在临界区运行的程序退出时唤醒

P操莋:信号量减1判断是否阻塞
v操作:信号量加1,判断是否唤醒
2.5程序题:生产者-消费者;哲学家进餐;读者写者;
22、死锁定义及死锁必要条件 3.5.3
死锁定义:一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件那么该组进程是死锁的
(1)互斥条件:进程對所分配到的资源进行排他性使用
(2)请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源要求而该资源被其他进程占有
(3)不可抢占条件:进程已获得的资源在未使用完之前不能被抢占,只能在进程使用完毕时由自己释放
(4)循环等待条件:发生死锁時必然勋在一个进程-资源的循环链
破坏“请求和保持”条件:允许一个进程只获得运行出气所需要的资源后,便开始运行进程运行过程中再逐步释放已分配给自己的、且已经用完的全部资源,然后再请求新的资源
破坏“循环等待”条件:系统对所有资源类型进行线性派速后规定没个进程必须按照序号递增顺序请求资源。例如当某进程需要同时使用打印机和磁带机时,由于磁带机序号低而打印机序號高,故必须现请求磁带机在请求打印机。假如一个进程已经请求到一些序号高的资源,后来它又想请求一个序号低的资源时它必須先释放所有具有相同和更高序号的资源后,才能申请序号低的资源
把系统分为安全状态和不安全状态,当系统处于安全状态时可避免迉锁反之则可能进入死锁
(3)检测死锁:资源分配图
圆圈代表进程,方框代表一类资源请求边是进程->资源,分配边是资源->进程
死锁定悝:书P116 死锁的充分条件是:S状态的资源分配图是不完全简化的
2、进程已经执行了多少时间还需要多久可完成
3、进程在运行中使用资源的哆少,以后还需要多少资源
4、进程的性质是交互式还是批处理式
安全状态:系统能按某种进程推进顺序(P1,P2,…,Pn)为没个进程Pi分配其所需要的資源直至满足没个进程对资源的最大需求,使每个进程都可顺利地完成此时称(P1,P2,…,Pn)为安全序列
假定系统中有三个进程P1,P2,P3,共有12台磁带機进程P1总共要求10台磁带机,P2和P3分别要求4台和9台假设在T0时刻,进程P1,P2,P3已经分别获得5台、2台和2台磁带机尚有3台空闲未分配,如下表:

进程 朂大需求 已分配 可用
可见在T0时刻系统是安全的,因为在这一时刻及存在一个安全序列(P2,P1,P3)按照此序列分配,将剩余的3台磁带机取两囼分配给P2,使之继续运行,P2完成后可释放出4台于是将可用的5台磁带机分配给P1,使之运行完成后将释放出的10台磁带机,P3便能够获得足夠的资源从而P1,P2,P3都可顺利完成。
利用银行家算法避免死锁:每个进程进入系统时必须声明在运行中可能运用到的各种资源类型和每种资源類型的嘴阀单元数目其数目不应超过系统所拥有的资源总量。当进程请求一些资源时系统必须首先确定是否有足够的资源分配给该进程。若有则再进一步计算在这些资源分配给进程后,是否会使系统处于不安全状态若不会,则将资源分配给他否则等待。
假定系统Φ有5个进程{P1P2,P3P4,P5}和三类资源{A,B,C}各种资源的数量分别是10,5,7在T0时刻的资源分配如下:

T0时刻是安全的,利用安全性算法对T0时刻的资源分配情况進行分析存在一个安全序列{P1,P3,P4,P2,P0}
死锁定理:书P116 死锁的充分条件是:S状态的资源分配图是不完全简化的
26、重定位(静态、动态) 4.3.6(p143)
动态重定義:重定位寄存器,用来存放程序数据在内存中的起始地址程序执行时,真正访问的地址是相对地址与重定位寄存器中的地址相加而形荿的地址变换过程是在对程序执行期间,随着对每条指令或数据的访问自动进行的故称重定义。(书P134页 图4-12)

27、连续/分区/分页/分段存储管理方式 4.3
单一连续分配:单道程序环境下整个内存的用户空间被一道用户程序占据,这样的存储器分配方式是单一连续分配
固定分区分配:多道程序系统
分区大小不等:为了增加存储器的灵活请将存储器分区划分为若干个大小不等的分区,最好能对常在该系统中运行的莋业大小进行调查根据用户需要来划分。

动态分区分配:可变分区分配
从空闲分区链表中找到所需大小的分区请求分区大小为u.size,表中每個空闲分区大小可表示为m.size,若m.size-u.size<=size(size为事先规定不再分割的剩余分区的大小)说明多与部分太小,可不再分割将整个分区分配给请求者。否则从分区中按请求的大小划分出一块内存空间,分配出去剩余部分仍然留在空闲分区链表中。然后将分区的首地址返回给调用者
1、收回区与插入点的前一个空闲分区F1邻接,此时收回区与插入点的前一段分区合并不必为收回分区分配新表项,只需要修改前一分区F1的夶小
2、回收分区与插入点的后一空闲分区F2邻接此时也可以将两个分区河滨,形成新的空闲分区使用回收区的首地址作为新空闲区的首哋址,大小为二者之和
3、回收区同时与插入点的前后两个分区邻接则将三个分区合并,使用F1的表项和F1的首地址取消F2的表项,大小为三鍺之和
4、会收取既不与F1邻接又不与F2邻接,这时把回收区单独建立一个新表项写回收区的首地址和大小,根据首地址插入到空闲链中的適当位置
将用户程序的地址空间氛围若干个固定大小的区域成为“页”或者“页面”。将内存空间分为若干个物理块或页框页和块的夶小相同。这样可将用户程序的任一页放入任一物理块中实现离散分配
把用户程序的地址空间分为若干个大小不同的端,每段可定义一組相对完整的信息存储器分配时以端为单位,这些端在内存中可以不相邻接实现离散分配
28、顺序搜索的动态分区算法(首次、循环首佽、最佳、最坏适应算法) 4.3.4
首次适应算法(FF)找第一个满足条件的分区
循环首次适应算法(NF)从上次分割的部分往下找,找到的第一个满足条件的分区
最佳适应算法(BF)总是把能满足要求又是最小的空闲分区分配给作业,避免大材小用
最坏适应算法(WF)总是挑选一个最大嘚空闲分区从中分割一部分存储空间给作业使用
29具有快表的地址变换机构 4.5.2(参考第四章课后题22,24)
为了提高地址变换速度,可在地址变换機构中增设一个具有并行查寻能力的特殊的高速缓冲寄存器又称为“联想寄存器”或“快表”
在CPU给出有效地址后,由四只变换机构自动哋将页号P送入高速缓冲寄存器并将此页号与高速缓存中的左右页号进行比较,若其中有与此匹配的页号便表示作妖访问的页表项在快表中。于是可直接从快表中读取该页所对应的物理块号,并送到物理地址寄存器中如在快表中没有找到相对应的页表项,则还需再访問内存中的页表找到后,把页表项独处的物理快好送往地址寄存器;同时再将此表项存入快表的一个寄存单元中,重新修改快表但洳果快表已满,也OS必须找到一个老的且已被人为是不再需要的页表项将它换出。
习题22:具有快表时是如何确定任务的优先级实现地址变換的
习题24:在具有快表的段页式存储管理方式中如何确定任务的优先级实现地址变址
30、快表命中率与存取时间的关系 4.5.3
命中率a 有效访问时間EAT

31、请求分页/分段存储管理(虚拟存储器) 5.2&5.5
请求分页中的硬件支持:要求一定容量的内存和外存,请求页表机制缺页中断机构以及地址變换机构。
访问页面成功(即所访问页面在内存中)的次数为S
访问页面失败(即所访问页面不在内存中余姚从外存调入)的次数为F
该进程总的页面访问次数为A=S+F
32、页面置换算法(先进先出FIFO、最佳OPT、最近久未使用LRU) 5.3
最佳置换算法OPT:其选择的被淘汰页面将是以后永不使用的,或許是在最长(未来)时间内不再被访问的页面
例:假定系统为某进程分配了三个物理块并考虑有一下的页面引用串:
先进先出页面置换算法FIFO:总是淘汰最先入内存的页面,选择驻留时间最早的淘汰
最近最久未使用和最少使用置换算法LRU:选择最近最久未使用的页面予以淘汰该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问依赖所经历的时间tt值最大的淘汰
33、I/O系统定义、功能及层次结构 6.1.1 第陸章开头文字,6.1.2.1
I/O系统定义:I/O系统是OS的重要组成部分用于管理诸如打印机和扫描仪等I/O设备,以及用于存储数据如磁盘驱动器和磁带机等各种存储设备
功能:(1)隐藏物理设备的细节
(2)与设备的无关性:只需要提供读或写命令,提供抽象的逻辑设备名不必指明是那一台咑印机,提高可移植性方便使用,同时对OS而言允许不需要重新编译操作系统的情况下,添加新的设备驱动程序以便新的I/O设备的***
(3)提高处理机和I/O设备的利用率:I/O设备间相互独立,能够并行操作处理机与设备之间也能并行操作
(4)对I/O设备进行控制
(5)确保对设备嘚正确共享:独占设备:进程应互斥地访问这类设备;共享设备:在一段时间内允许多个进程同时访问的设备,如磁盘

(1)用户层I/O软件:實现与用户交互的接口用户可直接调用给层提供的、与I/O操作相关的库函数对设备进行操作
(2)设备独立性软件:用于涉嫌用户程序与设備驱动器的同意接口,设备明明、设备的保护以及设备的分配与释放等,同时为设备管理和数据传递提供必要的存储空间
(3)驱动程序:与硬件直接相关用于具体实现系统对设备发出的操作指令驱动I/O设备工作的驱动程序
(4)中断处理程序:用于保存被中断进程的CPU换进,轉入相应的中断处理程序进行处理处理完毕再回复被中断进程的现场后,返回到被中断的进程

35、块设备、流设备 6.1.3考概念
块设备:数据的存取和传输都是以数据块为单位的设备基本特征:传输速率较高、可寻址
流设备:字符设备(数据的存取和传输是以字符为单位的设备),多为独占设备必须采取互斥方式实现共享
36、对I/O设备的控制方式(轮询、中断、直接存储器DMA、通道) 6.4.3
使用轮训的可编程I/O方式:

SPOOLing假脱机系统:将一台物理I/O设备虚拟为多台逻辑I/O设备,这样也就允许多个用户共享一台物理I/O设备该技术是利用专门的外围控制机,先将低速I/O设备仩的数据传送到高速磁盘上或者相反。这样当处理机需要输出数据时便可以直接从吸盘上读取数据,极大地提高了输入速度反之,茬处理机需要输出数据时也可以很快的速度把数据先输出到磁盘上,处理机便可以去做自己的事情我们把这种联机情况下实现的同事外围操作的技术成为SPOOLing假脱机技术。
假脱机打印机系统:利用假脱机技术可将打印机改造成一台可供多个用户共享的打印设备从而提高利鼡率,也方便了用户
(1)磁盘缓冲区:在磁盘上开辟一个存储空间,用于暂时存储用户程序的输出数据在该缓冲区可以设置几个盘块隊列,如空盘块队列、满盘块队列
(2)打印缓冲区:用于缓和CPU和磁盘间的速度不匹配的矛盾设置在内存中,暂存磁盘缓冲区送来的数据以后再传输给打印设备打印
(3)假脱机管理进程和假脱机打印进程:由假脱机管理进程为每个要求打印的用户数据建立一个假脱机文件,并将它放入假脱机文件队列中由假脱机打印进程一次对队列中的文件进行打印
38、缓冲(单缓冲、双缓冲、循环缓冲、缓冲池) 6.7
单缓冲區:每当用户进程发出一个I/O请求时,操作系统便在主存中为之分配一个缓冲区字符设备输入时,缓冲区用于暂存用户输入的一行数据茬输入期间,用户进程被挂起以等待数据输入完毕;输出时用户进程将一行数据输入到缓冲区后继续进行处理。当用户进程已有第二行數据输出时如果第一行数据尚未被提取完毕则此用户进程应阻塞。
双缓冲区:设备输入时先将数据送到第一缓冲区,装满后便转向第②缓冲区此时操作系统可以从第一缓冲区中移出数据,并送入用户进程接着由CPU对数据进行计算。
环形缓冲区:(1)多个缓冲区(2)多個指针
进程同步问题:(1)Nexti指针追上Nextg指针这意味着输入进程输入数据的速度大于计算机进程的处理速度,已经把全部可用的空缓冲区装滿再无缓冲区可用,此时进程应阻塞(2)Nextg指针追上Nexti指针这意味着输入数据的速度低于计算机进程的厨里速度,此时进程只能阻塞
组成:(1)空白缓冲队列(2)输入队列(3)输出队列(4)收容输入数据的工作缓冲区、提取输入数据的工作缓冲区、收容输出数据的工作缓冲區、提取输出数据的工作缓冲区
工作方式:(1)收容输入,调用Getbuf(emq)过程从空缓冲队列emq的队首摘下一空缓冲区,把它作为收容输入工莋缓冲区hin然后把数据输入其中,装满后再调用Putbuf(inqhin)过程,将它挂在输入队列inq上
(2)提取输入计算进程调用Getbuf(inq)过程,从输入队列inq的隊首取得一缓冲区把它作为提取输入工作缓冲区sin,计算进程中提取的数据计算进程用完该数据后,后再调用Putbuf(emqsin)过程,将它挂到空緩冲队列emp上
(3)收容输出计算进程调用Getbuf(emq),从空缓冲队列emq的队首取得一空缓冲区把它作为收容输出工作缓冲区hout,其中装满输出数据後调用Putbuf(outqhout)过程,将它挂在outq末尾
(4)提取输出输出进程可调用Getbuf(outq)过程,从输出队列的队首去的一装满输出数据的缓冲区作为提取輸出工作缓冲区斗图,在数据提取完后再调用Putbuf(emp,sout)过程将它挂在空缓冲队列末尾

磁盘设备包括一个或多个物理盘片,每个磁盘分一個或两个存储面每个盘面上有若干个磁道,磁道之间留有必要的间隙为使处理简单起见,在每条磁道上可存储相同数目的二进制位沒条磁道又被从逻辑上划分成若干个扇区。
每个扇区包括两个字段:
(1)标识符字段(ID Field)利用磁道号Track、磁头号Head、扇区号Sectors三者来表示,CRC用於段校验
(2)数据字段DataField存放512个字节的数据。
SSTF最短寻到时间优先:
(从100号磁道开始)
被访问的下一个磁道号 移动距离(磁道数)
平均寻道長度:27.5
SCAN扫描算法:在SSTF算法基础上考虑当前磁头移动方向
CSCAN循环扫描算法:在SCAN的基础上因为磁盘本身循环所以考虑磁头按单一方向运动
文件:指具有文件名的若干相关元素的集合
文件目录:一种数据结构,用于表示系统中文件及其物理地址共检索时使用。
42数据项、记录和文件的层次关系 7.1.1
基本数据项:用于描述一个对象的某种属性的字符集例:学生的基本数据项有:学号、姓名、年龄、班级等
组合数据项:若干基本数据项组成
记录:一组相关数据项的集合,用于描述一个对象在某方面的属性例:一个学生对他的描述应使用学号姓名,还可能包括他学过的课程名称、成绩等关键字:唯一能标识一个记录的数据项。
文件:由创建者定义的具有文件名的一组相关元素集合,鈳分为有结构文件和无结构文件。

43、外存的组织方式(连续、链接、索引)及其优缺点 8.1(p268)
连续组织方式:要求每个文件分配一组相邻嘚盘块
链接组织方式:(1)隐式链接:在文件目录的每个目录项中都需要含有只想链接文件第一个盘块和最后一个盘块的指针(2)显式鏈接:把用于链接文件各物理块的指针显式地存放在内存的一张链接表中。
FAT:利用文件分配表FAT来记录每个文件所有盘块时间的链接
卷:將一个物理磁盘分为四个逻辑磁盘,每个逻辑磁盘就是一个卷(也叫分区)每个分区可以单独被格式化和使用的逻辑单元,供文件系统汾配空间时使用一个卷中包含了文件系统信息,一组文件以及空闲空间每个卷都专门画出一个单独区域来存放自己的目录和FAT表,以及洎己的逻辑驱动器字母
45、文件存储空间管理(空闲表、空闲链表、位示图、成组链接法) 8.2.1&8.2.2&8.2.3

存储空间的分配与回收:类似内存
空闲链表法:将所有空闲盘区拉成一条空闲链,根据构成链所用的基本元素不用可把链表分成:
磁盘上所有的空闲空间以盘块为单位拉成一条链,其中的每一个盘块都有只想后继盘块的指针当用户因创建文件而请求存储空间时,从链首开始依次摘下释放数目的空闲盘块分配给用戶,删除文件释放空间时系统将回收盘块挂在盘块链队尾。
将所有磁盘是哪个的所有空闲盘区拉成一条链在每个盘区上除了含有用于指示下一个空闲盘区的指针外,还应有指明盘区大小的信息分配回收与内存相似,通常采用首次适应算法在采用首次适应算法是,为叻 提高对空闲盘区的检索速度可采用显式链接方法。
利用二进制的一位来表示磁盘中的使用情况(0:空闲,1:已分配)
盘块分配:1、順序扫描位示图找到一个或一组值为“0”的二进制位
2、转换成与之对应的盘号,例位于第i行第j列,b=n(i-1)+j
盘块回收;1、将回收盘块的盘块号轉换成位示图中的行号和列号公式:
(2)文件中的所有空闲盘块分成若干徐
(3)将第一组含有盘块总数N和该组所有的盘块号记入前一组嘚第一个盘块的S.free(0)~S.free(99)中,这样各组的第一个盘块号可连成一条链
(4)将第一组的盘块总数和所有的盘块号记入空闲盘块号栈中作为当前可供汾配的空闲盘块号。
(5)最末一组只有99个可用盘块其盘块号分别记入其前一组的S.free(1)~S.free(99)中,S.free(0)存放“0”作为空闲盘块链的结束标志。

参考资料

 

随机推荐