大工21春《操作系统概论》复习资料六
《操作系统概论》辅导资料六主题:第2章 进程管理(第3—4节)学习时间:2020年5月4日--5月10日
“不忘初心、牢记使命”主题理论学习:我们党要始终成为时代先锋、民族脊梁,始终成为马克思主义执政党,自身必须始终过硬。全党要更加自觉地坚定党性原则,勇于直面问题,敢于刮骨疗毒,消除一切损害党的先进性和纯洁性的因素,清除一切侵蚀党的健康肌体的病毒,不断增强党的政治领导力、思想引领力、群众组织力、社会号召力,确保我们党永葆旺盛生命力和强大战斗力。
摘选自《决胜全面建成小康社会,夺取新时代中国特色社会主义伟大胜利》内容:
第2章进程管理
这周我们将学习课件第2章中的3-4节,下面整理出的理念框架供同学们学习。
本篇的基本要求:
1.了解进程的创建与撤销
2. 了解进程的控制
3.掌握进程互斥与同步
重点掌握内容:
1. 进程互斥与同步2.3进程控制
进程控制的主要任务是创建进程、撤消进程以及实现进程的状态转换。进程控制一般由操作系统内核完成。操作系统内核通过原语来实现进程控制。
原语是由若干机器指令构成的用来完成特定功能的一段程序,它们在核心态下执行,且具有原子性。所谓原子性指:程序不允许被中断,即程序中的所有操作要么全做,要么全不做。使用原语的原因是:如果不使用原语,就会造成进程状态的不确定性,不能达到进程控制的目的。
原语的一种实现方法是:以系统调用方式提供原语接口,采用屏蔽中断方式来保证操作的原子性。尽管原语和一般系统调用具有相同的调用方式,但要注意它们之间存在下述区别:原语由内核实现,一般系统调用可以由系统进程或系统服务程序实现;原语不能被中断,一般系统调用允许被中断;原语一般供系统进程或系统服务进程使用,一般系统调用可以被运行在用户态下的进程调用
为基本的组织概念,整个计算机系统是所有进程集合的活动。系统为了管理进程的活动,必须为每个进程设立一个进程控制块(PCB)来记录各个进程的状态以及进程映像中的一些数据,进程控制块也是进程存在的标志,是操作系统的重要数据基。通常PCB中包含的信息量很多,PCB所占的空间很大。
1.进程的创建与撤消
/
在需要时,一个进程可以创建一个新进程,被创建的进程称为子进程,创建者进程称为父进程。在计算机系统中,除了系统“祖先”进程外,其他进程都由父进程创建,而“祖先”进程在系统初始化时由操作系统创建。例如,在UNIX系统中,系统初始化时由操作系统创建的1号进程是所有用户进程的祖先;当用户登录时,1号进程为每个登录用户创建一个终端进程,这些终端进程又进一步创建子进程,于是进程之间形成了一种家族关系。
引起创建进程的事件
(1)提交批处理作业
(2)用户登录
(3)提供服务
(4)应用请求
进程撤消--引起进程撤消的事件
(1)正常结束
(2)异常结束
(3)外界干预2 进程的阻塞与唤醒
进程阻塞:指进程让出处理器,转而等待一个事件。
进程唤醒:指当它等待的事件发生或完成时,进程由阻塞状态转变为就绪状态。
3 进程的挂起与激活
挂起:指暂时将一个进程从内存换出到外存
激活:指解除挂起状态,将进程重新换回内存2.4 进程的互斥与同 步
在操作系统中引入进程,是为了使程序能够并发执行,从而提高系统资源的利用率和改善系统性能。
但由于进程具有的异步性特征,也会造成系统混乱,导致进程的运行结果不一致,尤其是在它们争用临界资源以及在相互合作完成同一任务时更是如此。
所以必须采用相应的方法对并发诸进程的执行顺序或访问临界资源的顺序进行协调,使进程的执行结果具有可再现性。
1.进程之间的制约关系
(1)间接相互制约关系
指同处于一个系统中的诸进程,由于共享资源而产生的相互制约关系。例如,有两个并发执行的进程P1和P2,如果在进程P1提出打印请求时,系统已将唯一的打印机分配给了进程P2,则进程P1只能阻塞等待,直到P2进程释放了打印机,P1进程才被唤醒。像打印机这种在一段时间内只能由一个进程使用的资源称为临界资源。并发诸进程对临界资源的共享导致进程之间出现了间接相互制约关系。间接相互制约关系的存在使得并发诸进程不能同时访问临界资源,只有其他进程没有占用临界资源时,当前进程才能访问,即进程访问临界资源必须以互斥方式进行。
(2)直接相互制约关系
指并发诸进程因相互合作完成同一任务而产生的相互制约关系。例如,为了提高运行效率,系统为一个应用程序分别建立了输入进程PI、计算进程PC和输出进程PO。PI通过缓冲区A向PC提供数据,PO从缓冲区B中接收PC的计算结果并输出。若缓冲区A空,则PC因不能获得输入数据只能将自己阻塞起来等待,当PI将数据输进缓冲区A后,再将PC唤醒进行计算;与之类似,若缓冲区B空,则PO因不能获得输出数据只能将自己阻塞起来等待,当PC将数据输进缓冲区B后,再将PO唤醒进行输出。相互合作进程之间存在的直接相互制约关系导致了必须采用进程同步方法,对诸进程的执行顺序进行协调,使进程的运行结果具有可再现性。
进程同步与进程互斥关系
进程同步:就是对并发诸进程的执行顺序进行协调,使进程的执行结果具有可再现性;
进程互斥:则指并发诸进程必须以互斥方式访问临界资源。
进程互斥关系实际上是一种特殊的进程同步关系,即对诸进程访问临界资源的次序进行协调。并发诸进程之间若不进行同步,将出现严重后果。2. 临界区
对临界资源,无论是硬件临界资源,还是软件临界资源,并发诸进程必须以互斥方式进行访问。若将访问临界资源的那段代码称为临界区,显然,只要能保证诸进程以互斥方式进入自己的临界区,就能实现并发诸进程对临界资源的互斥访问。
在进入临界区之前进行检查的那段代码可以称为“进入区”,而将临界资源正在被访问的标志恢复为临界资源未被访问的标志那段代码可以称为“退出区”。
/进程访问临界区应遵循以下原则:
(1)空闲让进
当无进程位于临界区时,表明临界资源处于空闲状态,此时应允许一个申请进入临界区的进程立即进入临界区,以有效利用临界资源。
(2)忙则等待
当已有进程位于临界区时,表明临界资源正在被访问,此时其他试图进入临界区的进程必须等待,以保证对临界资源进行互斥访问。
(3)有限等待
对申请访问临界资源的进程,应保证它能在有限的时间内进入自己的临界区,以避免陷入“死等”状态。
(4)让权等待
当进程不能进入自己的临界区时,应立即释放处理器,让自己阻塞起来等待,以避免陷入“忙等”。3.信号量机制
在操作系统中,信号量代表了一类物理资源,它是相应物理资源的抽象。具体实现时,信号量被定义成具有某种类型的变量,通常的类型有整型类型和结构体类型。具有整型类型的信号量称为整型信号量;具有结构体类型的信号量称为结构型信号量或记录型信号量。信号量除了初始化以外,在其他情况下其值只能由P和V两个原语操作才能改变。P操作和V操作又称为wait操作和signal操作。
(1) 整型信号量
将信号量定义为一个整型变量。若信号量是S,则P操作原语和V操作原语可以分别描述如下:
int S;
P(S):while( S<=0 );
S = S - 1;
V(S):S = S + 1;
整型信号量机制中的P操作,只要信号量S小于等于0;就会不断循环测试,因此,该机制没有遵循“让权等待”原则,而使进程处于“忙等”状态。针对这种情况,人们对整型信号量机制进行了扩充,增加了一个阻塞进程队列,从而出现了结构型信号量。
(2)结构型信号量
结构型信号量又称为记录型信号量。该信号量被定义成具有两个分量的结构体型数据结构。结构型信号量中的一个分量是一个整型变量,代表相应资源当前空闲的数量;另一个分量是一个队列指针,指向因等待对应资源而阻塞的进程队列。
结构型信号量描述为:
typedef struct {
int value;
struct pcb * L;
// L指向因等待相应资源而阻塞的进程队列,pcb为 PCB对应的结构体类型
}semaphore;
semaphore S;若S.value的初值为1,则表示只有一个临界资源,一段时间内只允许一个进程对该资源进行访问。这种情况下的结构型信号量又称为互斥信号量。
P(S)原语操作可以用以下函数描述:
void P( semaphore &S )
{S.value = S.value - 1;
if( S.value < 0 )block( S.L );// block是阻塞原语
}
P(S)操作的物理含义是:执行一次P(S)操作相当于申请一个资源;若S.value大于0,则S.value减1表示该资源当前空闲的数量减少了1个;若S.value减1后小于0,则立即调用阻塞原语block将本进程阻塞起来,并插入到S.L指针指向的阻塞进程队列中,这时因等待该资源而阻塞的进程又多了一个。结构型信号量机制采用了“让权等待”策略。
V(S) 原语操作的功能通过函数如下:
void V( semaphore &S )
{S.value = S.value + 1;
if( S.value <= 0 ) wakeup( S.L ); / wakeup是唤醒原语
}
V(S)操作的物理含义是:执行一次V(S)操作相当于释放一个资源,于是执行S.value加1操作;若S.value加1后的值仍然小于或等于0,表明仍有处于阻塞状态的进程在等待这类资源,于是调用唤醒原语wakeup将阻塞队列(S.L)的第一个等待进程唤醒,并移入就绪队列。4. 使用信号量实现进程互斥
为临界资源设置一个互斥信号量(即value初值为1的结构型信号量)mutex,然后将各进程的临界区置在P(mutex)和V(mutex)之间。程序模型如下:
semaphoremutex;
mutex.value = 1;
cobegin
//伪代码cobegin和coend表示夹在它们之间的进程可以并发执行
process Pi( ) // i=1,2,…,n
{……
P(mutex);
临界区;
V(mutex);
……
}
coend5 经典互斥与同步问题
生产者和消费者问题
系统中有一个生产者和一个消费者,它们共用一个缓冲区。
生产者:一个制造/释放上述资源的进程。
消费者:一个使用系统资源的进程。
生产者和消费者关系问题:生产者与消费者之间的同步关系问题。
信号量的作用:资源计数器和同步进程的工具。
程序结构如下图所示:
/8.阅读者和写入者问题
问题描述:有一个数据文件,可以被多个进程共享;各进程共享数据文件的方式不同;有的进程只是从文件中读取信息,这类进程称为“读者进程”;有的进程或写信息到文件中,或又读又写,这些进程统称为“写者进程”;为了不使文件内容混乱,要求各进程在使用文件时必须遵守以下规定:
(1)允许多个读者进程同时读文件。
(2)不允许写者进程与其他进程同时访问文件。
算法如下:
/
重要考点
一、选择题
1、进程是由()组成的。
A、程序+数据+进程控制块
B、程序+数据+标识符
C、数据+进程控制块
D、数据+标识符+进程控制块
答案:A
解析:概念题,了解就可以2、在一单处理机系统中,若有四个用户进程,在某一时刻非死锁状态,处于阻塞状态的用户进程最多有()个。
A、1
B、2
C、3
D、4
答案:C
解析:由于只有占有处理机进程才能处于运行态,所以在一个单处理机中,非管态的某一时刻,系统中处于就绪态或阻塞态的进程可能有多个,但处于运行态的进程最多只有一个,也有可能是0个(系统死锁),这样处于就绪态的进程数只能是进程总数减l,不可能出现全部处于就绪态而无运行态进程的情况。3、正在运行的进程因提出的服务请求未被操作系统立即满足或者所需数据尚未到达等原因,只能把()状态转变为等待状态。
A、父进程
B、子进程
C、进程本身
D、其他进程
答案:C
解析:进程的基本状态有就绪、运行和阻塞3种。阻塞态是指一个进程由于某种原因不具备运行条件时所处的状态,这时它必须等待,引起等待的条件一旦消失,进程便具备了运行的条件,阻塞态转变为就绪态;就绪态是指一个进程具备了运行的条件,但由于没有占有处理机而不能运行时所处的状态,一旦处于就绪态的进程轮到该进程占有处理机的时间片或处理机空闲,其状态就转变为运行态,投入运行;运行态是指一个进程正占用着处理机时所处的状态,这时,处理机正在执行该进程的程序。运行过程中,进程会因时间片己到等非资源请求原因退出运行态转变为就绪态,因资源请求原因而不具备运行条件时,该进程的状态就要转变为阻塞态。4、用户可以通过()创建或者终止一个进程。
A、函数调用
B、宏指令
C、系统调用
D、阻塞调用
答案:C
解析:概念题,了解就可以5、在操作系统中进程是一个具有一定独立功能程序在某个数据集合上的一次()。
A、并发活动
B、运行活动
C、单独操作
D、关联操作
答案:B
解析:进程是动态的,其概念为进程是一个具有一定独立功能程序在某个数据集合上的一次运行活动。
南开答案可以联系QQ 761296021
页:
[1]