【操作系统】总结
概论(Operating system)
1.操作系统的定义、特征、功能
操作系统定义:
- 是系统软件,
- 是程序模块集合
- 组织和管理计算机软硬件资源
- 合理组织计算机的工作流程
- 控制程序执行
- 向用户提供服务,使用户能够灵活、方便、有效的使用计算机
- 使整个计算机系统能高效地运行
OS 有5个特征:并发、共享、虚拟、随机性和不确定性
操作系统功能
- 进程和线程管理(CPU管理):完成处理机资源的分配调度等功能;
- 存储管理:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行;
- 设备管理:方便设备使用,提高CPU与I/O设备利用率;
- 信息管理(文件管理):解决软件资源的存储、共享、保密和保护;
- 用户接口(作业管理):提供一个友好的用户访问操作系统的接口。
2. 多道程序系统的特点,并行和并发的区别
多道程序设计:
允许多个程序同时进入内存并运行,
是OS所采用的最基本、最重要的技术,
引入目的是为了提高系统效率。
1)程序的并发(Concurrency)执行:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠。(强调时间段)
2)程序的并行(parallel)执行:一组在逻辑上互相独立的程序或程序段在同一时刻同时执行。(强调同一时刻),只能在多机系统中出现。
在单CPU多道程序系统中,进程被交替执行,
表现出一种并发执行的外部特征,不能实现真正的并行处理,
并且即使在进程间来回切换需要一定的开销,交替执行在处理效率和程序构造上还是带来了重要的好处。
多道批处理系统的特点
优点:
- 资源利用率高:CPU和内存利用率较高;
- 作业吞吐量大:单位时间内完成的工作总量大;
缺点:
- 用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;
- 作业平均周转时间长:短作业的周转时间显著增长;
3.常用OS的特点(批处理OS,分时OS,实时OS)?
分时系统的优点
多路性:多个用户同时工作,共享CPU和其它资源,充分发挥系统效率。
独立性:各用户独立操作,互不干扰,让用户有自己一个人在使用计算机的感觉。
交互性:计算机系统和用户用会话方式工作,系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率;缩短了周转时间。
及时性:计算机系统应该在用户能够忍受的等待时间内对用户的请求予以响应。
实时系统的特点
专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统。
实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。
高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余(如双机系统)。
事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。不同事件的响应优先级不一样
4.指令执行的过程、分类、处理器工作状态及转换?
指令执行的基本过程
两个步骤:取指令->执行指令,称为一个指令周期。
1) 每个指令周期开始时,依据在程序计数器中的指令地址从存储器中取一条指令;
2) 在取指完成后根据指令类别自动将程序计数器的值变成下条指令的地址;
3) 取到的指令放在指令寄存器中;
4) 处理器解释并执行指令所要求的动作。
程序的执行是由不断取指和执行的指令周期组成,仅当关机、出错或有停机相关指令时,程序才停止。
指令的分类
按功能可将指令分为五类:
1)访问存储器指令: 处理器和存储器间数据传送。
2)I/O指令: 处理器和I/O模块间数据传送和命令发送。
3)算术逻辑指令(数据处理指令): 执行数据算术和逻辑操作。
4)控制转移指令: 指定一个新的指令的执行起点。
5)处理器控制指令: 修改处理器状态,改变处理器工作方式。
按使用权限划分,使用多道程序设计技术的计算机指令系统中的指令可分为两类:
特权指令:只能由OS使用的指令,一般引起处理器状态的切换。
处理器通过特殊的机制将处理器状态切换到操作系统运行的特权状态(管态)。
然后将处理权移交给操作系统中的一段特殊代码,这一个过程称为陷入。
非特权指令:OS和一般用户使用。
CPU如何知道当前运行的是操作系统还是一般应用软件?
有赖于处理器状态的标识。
处理器状态及转换
根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态。
多数系统将处理器工作状态划分为管态和目态。
管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、核心态、系统态。
目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态。
有些系统将处理器状态划分核心状态、管理状态和用户程序状态(目标状态)三种。
处理器处于管态时:全部指令(包括特权指令)可以执行;可使用所有资源;并具有改变处理器状态的能力。
处理器处于目态时:只有非特权指令能执行。
目态→管态 唯一途径:中断。
管态→目态 设置PSW(修改程序状态字) 可实现。
5.存储体系和存储保护、地址变换?
存储保护解决方案:依赖于配有特殊硬件的CPU实现存储保护。
界地址寄存器(界限寄存器)
存储键
其他硬件机制:地址转换
地址转换
同时有多个程序在内存,程序在内存的位置不是固定的而是随机的。
虚拟地址(逻辑地址):处理器生成的指令或数据的二进制地址,都从0开始编码,这些地址用硬件和软件结合的方法转换成物理地址;
MMU:内存管理单元,一种特殊硬件,完成转换工作。
6.中断的定义,中断系统的组成和中断的执行过程?
中断的定义
CPU对系统发生的某个事件作出的一种反应。
当计算机在执行期间,系统内或系统外发生异步事件,使得CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序或调度新的进程执行。
异步事件:无一定时序关系或非预期的事件。
中断系统的组成
中断系统是现代计算机系统的核心机制之一,硬件和软件相互配合、相互渗透而使得计算机系统得以充分发挥能力的计算模式。组成:硬件中断装置和软件中断处理程序。
硬件中断装置:提供了中断系统的基本框架,是中断系统的机制部分,负责捕获中断源发出的中断请求,以一定方式响应中断源,然后将处理器控制权交给特定的中断处理程序。
软件中断处理程序:利用中断机制对处理能力的扩展和对多种处理需求的适应,属于中断系统的策略部分,负责辨别中断类型并做出相应的操作。
7.作业控制块、作业的四种状态及描述?
(1)作业控制块JCB(Job Control Block)
JCB是作业说明书的动态描述,是根据作业说明书的内容,由作业建立程序创建的能直接被作业调度程序识别的数据表,包含了作业说明书的内容,还包含了记录作业在运行过程中的各方面信息的相关表项,如作业实际投入时间、使用CPU时间、实际使用外设情况等。
JCB是作业在批处理系统中存在的唯一标志。
(2)作业的四种状态及描述
1.进入状态:作业的输入阶段;典型作业输入方式:SPOOLing系统
2.后备状态:作业的全部信息已输入,由OS存放在外存的某些区域(如输入井)中等待调度运行;OS为每个后备作业建立JCB,并将JCB调入内存,加入后备作业队列中,标志作业建立完成,称为作业注册。
JCB表的数量是一个常数;
外存输入井的大小有限,只有在获得JCB表项和足够输入井空间后,作业才可能创建成功。
作业的建立包括作业输入和JCB建立两个子过程,即进入和后备状态。
3.运行状态:作业进入内存并为之建立进程后到执行结束的状态;此时参与对CPU和其它资源的竞争,但并不一定就立即占用处理机。
就绪状态、执行状态、等待状态
4.完成(退出)状态:作业因错误而终止或完成其全部功能,释放出其所占用的全部资源(包括JCB表项),准备退出系统的作业状况。
8.作业调度算法(FCFS,SJF,HRRN)
HRRN相关算法:
第一步:计算各作业的响应比,10:00时三个作业都已提交,则
R2=1+70/50=2.4 R3=1+60/10=7 R4=1+10/20=1.5
第二步: 10:10重新计算剩余作业2和4的响应比:
R2=1+80/50=2.6 R4=1+20/20= 2
9.系统调用过程
当用户使用操作系统调用时,产生一条相应的指令;
处理机在执行到该指令时发生相应的中断,并发出有关的信号给该处理机构;
该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。
在系统中为控制系统调用服务的机构称为陷入(TRAP)或异常处理机构。
相对应,把由于系统调用引起处理机中断的指令称为陷入或异常指令(或称访管指令)。
在操作系统中,每个系统调用都对应一个事先给定的功能号,例如0、1、2、3等。
陷入指令必须包括:对应系统调用的功能号、传给陷入处理机构和内部处理程序的有关参数(有的指令没有)。
必须为实现系统调用功能的子程序编造入口地址表;
进入系统调用处理前,陷入处理机构还需保存处理机现场;
陷入处理程序把陷入指令包含的功能号与入口地址表有关项对应, 找到有关子程序的入口地址,并执行该程序。
在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行,要先恢复处理机现场,现场被保护在特定的内存区(系统堆栈)或寄存器中。
系统调用的处理过程示意图
10.进程的定义、组成、三种基本状态及其转换?
进程(Process)是具有独立功能的程序关于某个数据集上的一次运行活动,是系统进行资源分配和调度的独立单位,又称任务(Task)。
11.进程互斥和同步的定义、临界区、临界资源、信号量及PV操作的定义及物理意义?
进程的同步:synchronism
指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。
由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,叫进程的互斥,是间接作用引起的。
临界资源:critical resource:一段时间内只允许一个进程使用的资源。如处理器、主存、I/O设备、文件、数据等。也称为互斥资源或共享变量。
临界区(critical section):进程中访问临界资源的一段代码。也可定义为:不允许多个并发进
信号量的定义:
除赋初值外,只能由P,V原语对其操作的整型变量,代表可用资源实体的数量,是判断临界资源是否被占用的标志。
必须置一次且只能置一次初值;
初值不能为负数;
只能执行P、V操作。
用于互斥的信号量的初始化指定一个非负整数值,表示空闲资源总数(又称为“资源信号量”)
当其值>0时,代表可用资源的数量
当其值= 0时,可用资源量正好用完;
当其值<0时,|s| 代表因请求使用该信号量所代表的资源而被阻塞的进程数量,即还欠资源数。
P、V原语是OS中提供的,用于对进程之间相互推进速度进行控制的最基本的操作,它们的操作对象只能是信号量。
进程的执行时间和执行顺序具有不确定性,如不进行控制,会造成数据的不完整性。
P、V原语执行期间不允许中断发生。
实现:屏蔽中断
P的物理意义是:申请一个信号量代表的资源
V的物理意义是:释放一个资源
12.用信号量及PV操作实现进程的同步和互斥?
用信号量和P、V原语实现两进程PA和PB的互斥
互斥信号量Smutex (Mutual Exclusion)的取值范围为(1,0,-1),在每个进程 中将临界区代码置于P(mutex)和V(mutex)原语之间。
Smutex=1表示进程PA和PB都未进入临界区S;
Smutex=0表示有一个进程PA或PB已进入临界区S;
Smutex= -1表示进程PA和PB中,一个已进入临界区S,而另一个进程等待进入临界区。
用P、V原语实现进程互斥分为五步:
定义信号量,必须说明其代表的资源;
设定信号量的初值:S=1;
在临界段进入区执行:P(S);
执行临界区代码;
在临界段退出区执行:V(S) 。
用私用信号量及 P、V原语实现进程同步
私用信号量(Private Semaphore):表示各进程之间发送的消息数,只与制约进程和被制约进程有关,同步时使用。
公用信号量:互斥时使用的信号量。表示一组并发进程可用的公用资源的数量。
互斥也是一种特殊的同步。
用P、V原语实现进程同步分为三步:
- 分析进程间的关系,为各并发进程设置私用信号量;
- 为私用信号量赋初值;
- 利用P、V原语和私用信号量规定各进程的执行顺序。
13.管程的定义及组成
管程:指关于共享资源的数据及在其上操作的一组过程或共享数据结构及其规定的所有操作所构成的软件模块。是由若干过程、变量和其它数据结构形成的集合。它是管理进程间同步的机制,能保证进程互斥地访问共享变量,并且提供了一个方便的阻塞和唤醒进程的机构。
管程可以函数库的形式实现。相比之下,管程比信号量好控制。
管程由四个部分组成:
1.名称2.共享数据说明3.对该数据进行操作的一组过程/函数4.对共享数据的初始化语句
对共享数据的互斥是由管程本身实现的,程序员不必显示的编写程序代码去实现同步。
14.线程的定义和与进程的关系
线程:有时称轻量级进程,是进程中的一个运行实体,是被系统独立调度的基本单位。 - 自己基本上不拥有系统资源,只拥有在运行中必不可少的资源,如:线程状态、寄存器上下文和栈;
- 但它可与同一进程中的其它线程共享进程所拥有的全部资源,它们之间存在着同步和互斥,其控制机制同进程。
- 一个线程可创建和撤消另一个线程,同一进程中的多个线程之间可并发执行。
线程同样具有就绪、阻塞和执行三种基本状态。没有进程中的挂起状态。
线程与进程的对应关系
1.单进程、单线程;2.单进程、多线程;3.多进程、一个进程一个线程;
4.多进程、一个进程多个线程;
15.分区存储管理、页式存储管理、段式存储管理和段页式存储管理的基本原理、地址变换?
分区存储管理基本原理
在操作系统启动时,把内存划分为若干个固定大小的连续分区,每个作业占用一个分区:一片连续的内存区域。
1) 分区大小相等:只适合于多个相同程序的并发执行(处理多个类型相同的对象),用得少。
2) 分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。
页式存储管理的基本原理
1)用户的逻辑地址空间分页:把用户的逻辑地址空间划分成若干个长度相等的页(page),并对其页从0开始进行编号:0,1,2…。
2)等分主存:把主存按页的大小划分成存储块,称为页面(page frame) ,它的大小对特定计算机系统而言是固定的;并给各页面从0开始编号:0,1,…,n 。
3)逻辑地址的表示:每个逻辑地址用一个数对(p,d)来表示,p是页号,d是该虚拟地址在页p内的相对地址,称为页内地址或偏移量。
静态页式管理的地址变换 物理地址=内存块号*块长+页内地址
段式存储管理基本思想
把程序的地址空间按内容或过程(函数)关系分成段,每段有自己的名字;
系统按段分配内存空间,一个进程的各段在内存中可以是不连续的;
程序的虚拟地址用段名和段内地址来描述,是一个二维地址;
指令地址场中的虚拟地址用段号和段内地址来描述。为实现内存分配和地址变换,必须设置段表和段表地址寄存器。
物理内存的管理采用动态分区。需要CPU的硬件支持。
段式管理的地址变换:与页式管理大致相同,见图。
设置段表地址寄存器,用于存储段表起始地址和段表长度
将逻辑地址中的段号与段表长度比较
如段号超过段表长度,则产生越界中断
否则,根据段表起始地址与段号计算该段对应段表项的位置,从中读出段在内存的起始地址
检查段内地址是否大于该段的段长:
如大于,则产生越界中断
否则,将段的起始地址+段内地址=物理地址
为加快地址映射,也可采用快表技术,原理与页式管理同。P191。
段页式存储管理的基本原理
等分主存为页,并从0开始编号;
进程的虚拟地址空间分段,并为每个段赋予一个段名,再把每段分成若干页,并从0开始编号;
逻辑地址:
内存划分:按页式存储管理方案
内存分配:以页为单位进行分配,段在内存中可不连续。
地址转换过程
根据段表地址寄存器查找段表起始地址;
将逻辑地址中的段号s与段表长度L比较,s<=L,根据段号s查找该段的页表的入口地址(第s段),否则越界中断;
将段表项中的页表长度与逻辑地址中的页号p进行比较,如p小于页表长度,则向下运行,否则越界中断;
查找页表,根据页号p得到对应的内存块号p’;
内存块号p’和页内地址d组合得到实际的内存地址。
16.段式与页式存储管理的比较
- 页式和段式管理都提供了内外存统一管理的虚存实现,但分页是出于系统管理的需要,分段是出于用户应用的需要:
1) 一条指令或一个操作数可能会跨越两个页的分界处,而不会跨越两个段的分界处。
2) 页式虚存只交换固定大小的页,需要多次缺页中断才能把所需信息完整地调入内存,而段式虚存每次交换得到是一段有意义的信息。
3) 无法通过页面共享具有完整逻辑功能的子程序或数据块,而段则可以。 - 页大小是系统固定的,而段大小则通常不固定,对需要不断增加或吸收新数据的段十分有利。
17.常用页面置换算法及缺页次数的计算
在一个请求分页系统中,假定系统分配给作业的物理块数为3,并且此作业的页面走向为2、3、2、1、5、2、4、5、3、2、5、2。试用FIFO、OPT和LRU三种算法分别计算出程序访问过程所发生的缺页次数和被替换的页面序列。
解:在本题中,分配给作业的物理块数为3。
(1) 根据所给页面走向,使用FIFO算法时,页面置换情况如下:
走向 2 3 2 1 5 2 4 5 3 2 5 2
块1 2 2 2 5 5 5 3 3 3
块2 3 3 3 2 2 2 5 5
块3 1 1 1 4 4 4 2
缺页 缺 缺 缺 缺 缺 缺 缺 缺 缺
缺页次数为 9
(2) 根据所给页面走向,使用OPT算法时,页面置换情况如下:
走向 2 3 2 1 5 2 4 5 3 2 5 2
块1 2 2 2 2 4 2
块2 3 3 3 3 3
块3 1 5 5 5
缺页 缺 缺 缺 缺 缺 缺
缺页次数为 6,
(3) 根据所给页面走向,使用LRU算法时,页面置换情况如下:
走向 2 3 2 1 5 2 4 5 3 2 5 2
块1 2 2 2 2 2 3 3
块2 3 3 5 5 5 5
块3 1 1 4 4 2
缺页 缺 缺 缺 缺 缺 缺 缺
缺页次数为 7
某段式管理采用如表所示的段表,求下面逻辑地址对应的物理地址,并说明可能会产生哪种中断?
[0,450],[1,50],[2,70],[5,50]。(8分)
段号 段长 内存起始地址 特征位(在/不在内存)
0 600 2000 在
1 40 2800 在
2 100 不在
3 500 3300 在
4 100 4000 在
解:(1)由于第0段的内存始址为2000,段长为600>450,故逻辑地址[0,450]是合法地址。逻辑地址[0,450]对应的物理地址为2000+450=2450。(2分)
(2) 由于第1段的内存始址为2800,段长为40<50,故逻辑地址[1,50]是非法地址。产生越界中断(2分)
(3) 由于第2段不在内存,所以产生缺段中断。(2分)
(4) 由于系统中不存在第5段,所给逻辑地址[5,50]非法,产生越界中断。(2分)
18.文件系统的作用、文件的逻辑结构、物理结构和存取方法
文件系统的功能:
1) 统一管理文件的存储空间,实施存储空间的分配与回收。
2) 实现文件的按名存取,对用户透明:
名字空间 映射到 存储空间
1) 实现文件信息的共享,并提供文件的保护和保密措施;
2) 向用户提供一个方便使用的接口(提供对文件系统操作命令,以及提供对文件的操作命令:信息存取、加工等);
3) 系统维护及向用户提供有关信息:能够调用设备管理程序实现对大容量存储介质的有效管理;
4) 保持文件系统的执行效率:文件系统在操作系统接口中占的比例最大,用户使用操作系统的感觉在很大程度上取决于对文件系统的使用效果;
5) 提供与I/O的统一接口。
文件的逻辑结构与存取方法
文件的逻辑结构(组织)指用户组织、使用文件时可见的结构。是从用户观点出发讨论文件内部的逻辑结构(logical structure)或用户访问模式;它可以独立于在外存上的物理存储。
选取文件逻辑结构时应该遵循的原则或设计要求:
(1)能减少修改文件时的处理工作量——便于修改
(2)能有较快的查找速度——便于检索
(3)能尽量节约存储空间——节省空间
(4)便于用户进行操作——向物理存储转换方便
用户对文件的修改、追加和搜索等操作都涉及文件的存取。
常用的存取方法有:
1.顺序存取法
按文件的逻辑地址进行顺序依次访问文件的各个信息项。
2.随机存取法(直接存取法)
按记录号存取文件的任一记录,或者是根据存取命令把读写指针移到欲读写处来读写。
3.按键存取法
按给定的键值或记录名进行存取,用在复杂文件系统,特别是数据库管理系统中。首先搜索记录的逻辑位置,再将其转换到相应的物理地址后进行存取。
系统程序员常按文件具体在辅存中是如何存放、如何组织来看待的组织形式,称为文件的物理结构。即文件在外存上的存放方法。
19.磁盘空间的管理方法及驱动调度、文件使用相关的操作
空闲空间管理:包括空闲块的组织、分配和回收。
主要有三种空闲块管理方法:
(1)空闲文件目录(空闲块表 )
(2)空闲块链表 成组链接法
(3)位示图法
当多个访盘请求在等待时,采用一定的策略,对这些请求的服务顺序进行调整安排,使寻道时间和延迟时间都尽可能小的访问请求优先得到服务,并降低若干个访问者的总访问时间,增加磁盘单位时间内的操作次数。
旨在降低平均磁盘服务时间,达到公平、高效。
公平:一个I/O请求在有限时间内满足;
高效:减少设备机械运动所带来的时间浪费。
磁盘的驱动调度有移臂调度和旋转调度组成。
文件操作
- 建立文件:实质是建立文件的FCB,并建立必要的存储空间,分配空的FCB
create(文件名,访问权限,(最大长度)) - 打开文件 任何一个文件使用前都要先打开,即把FCB送到内存:
fd=open(文件路径名,打开方式) - 读文件
read(文件名,(文件内位置),要读的长度,内存目的地址) - 写文件:
write(文件名,记录键,内存位置)。 - 关闭文件:
close(文件名)。 - 删除文件:撤销FCB,
delete(文件名)。 - 指针定位:
seek(fd,新指针的位置)
① 由fd查用户打开文件表,找到对应的入口;
② 将用户打开文件表中文件读写指针位置设为新指针的位置,供后继读写命令存取该指针处文件内容。 - 文件连接(LINK) 。
- 复制文件。
20.设备的分类
(1)按设备的功能特性分
- 存储型设备`
- 输入输出型设备(交互型设备)
- 数据通信设备
(2)按设备的信息组织方式分
- 字符设备:以字符为单位组织和处理信息的设备:键盘、终端、打印机;
- 块设备:以字符块为单位组织处理信息的设备:磁盘、磁带。
(3)按设备资源的分配角度分为:独占设备、共享设备和虚拟设备。
- 独占设备: 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如输入机,打印机,磁带等)。对独占设备往往采用静态分配方式。
- 共享设备: 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。如硬盘的使用,在作业执行过程中,需要使用磁盘时,才会把磁盘分配给作业使用,I/O对磁盘的分配实际上就是决定某一时刻为谁服务的问题,即驱动调度问题
-
虚拟设备:在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚拟设备。
目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率。
实例:SPOOLing技术,利用虚拟设备技术:
用硬盘模拟输入输出设备。
(4) 按设备的从属关系分类:
系统设备:在OS生成时就已配置好的各种标准设备:键盘、存储设备等;
用户设备:在系统生成时没有配置,由用户自己安装配置后由OS统一管理的设备。网卡、实时系统中的A/D、D/A转换器。
21.设备分配的数据结构、分配原则、方法
设备分配原则:根据设备特性、用户要求和系统配置情况决定。
(1)总原则:
1) 充分发挥设备的使用效率,尽可能让设备忙;
2) 避免出现由于不合理分配造成死锁;
3) 做到把用户程序和具体物理设备隔离开来。
(2)分配方式:
-
静态分配:在用户作业开始执行之前,由系统一次分配该作业所要求的全部设备、控制器和通道。适于独占设备的分配。
-
动态分配:在进程执行过程中根据执行需要通过系统调用按照事先规定的策略进行设备的分配。一旦用完之后,便立即释放。 有利于提高设备的利用率,但如果分配算法使用不当,则有可能造成死锁。
设备分配策略(对共享设备的动态分配)
(1)先请求先分配:系统按提出I/O请求的先后顺序,将进程发出的I/O请求命令排成队列,其队首指向被请求设备的DCT。
(2)优先级高者分配:进程的优先级高,它的I/O请求也优先予以满足。对于优先级相同的进程来说,则按先请求先分配策略分配。
按进程的优先级组成队列。
22.死锁的定义、发生原因及解决方法
死锁的定义:
一组并发进程彼此等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源,从而造成无休止的等待而不能继续向前推进的状态,称为进程死锁,这一组进程就称为死锁进程。死锁(Deadlock)饥饿(Starvation)
产生死锁的原因:并发进程的资源竞争
- 由于多数资源是互斥地使用,有多个并发进程时系统资源不足;
- 进程推进进度不合理。
产生死锁的四个必要条件:
(1)互斥使用(资源独占)
(2)不可强占(不可剥夺)
(3)请求和保持(部分分配,占有申请)
(4)循环等待
解决死锁的方法
1) 不让死锁发生:
静态策略:设计合适的资源分配算法,不让死锁发生
动态策略:
2) 允许死锁发生,发生后再加以解决。
具体地讲,死锁的排除方法一般可分为四种:预防、避免、检测与解除