13 [修改]第三章 并发进程(3.3信号量及其操作)
- 格式:pdf
- 大小:1.67 MB
- 文档页数:58
“操作系统概论”习题解答之并发进程第7章习题解答1.什么叫并发进程?答:在多道程序设计系统中,作为单个作业可以同时执行,而每一个作业又需要有多个进程的协作来完成。
因此,系统会同时存在着许多进程,在单处理器的情况下,这些进程轮流的占用处理器,即一个进程的工作没有全部完成之前,另一个进程就开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。
2.临界区是怎样定义?对临界区的管理应符合哪些要求?答:并发进程中与共享变量有关的程序段称为“临界区”。
对若干个并发进程共享某一变量的相关临界区得管理有三点要求:①一次至多一个进程能够进入临界区,当有进程在临界区执行时,其他想进入临界区执行的进程必须等待。
②不能让一个进程无限制的在临界区执行,即任何一个进入临界区的进程必须有限的时间内退出临界区。
③不能强迫一个进程无限期等待键入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。
3.采用PV操作作为同步机构时,假定与某共享变量相关的信号量S的值可在[-1,l]之间,问S的初值是哪个值?当S=-1,S=0,S=l时它们各自的物理含义是什么?答:S的初值是 1.S=-l,表示有一个进程在等待进入临界区执行。
S=0,表示已有一个进程在临界区执行,这时若有进程想进入临界区则必须等待。
S=l,表示无进程在临界区执行,若有进程想进入临界区则可以立即进入。
4.A、B两个火车站之间是单轨连接的,现有许多列车同时到A站,须经A再到达B站,列车出B站后又可分路行驶(如图7-2)为保证行车安全,请你当调度时,你将如何调度列车?请你用PV操作为工具设计一个能实现你的调度方案的自动调度系统。
答:当A、B两站之间无列车停驶时,可让到达A站的一列车进人A、B站之间行驶。
当A石站之间有列车在行驶时,则到达A站者必须在站外等待。
当有列车到达B站后,让等在A站外的一列车进入。
用一个信号量S来控制到达A站的列车能否进入单轨道行驶,S的初始值为l.列车到达A站后,先执行P(S),若无列车在A、B站之间行驶,则执行P(S)后立即进人单轨道行驶,到达B站后,执行V(S),可释放一个等待进入的列车进入行驶。
操作系统第3章习题带答案第三章⼀、问答题1、⽤户级线程与内核级线程的区别是什么?2、PCB中包含哪些信息?进程状态属于哪类信息?3、什么是操作系统的内核?4、简述时间⽚轮转调度算法的基本思想。
5、某系统采⽤时间⽚轮转调度算法的处理机调度算法,某个时刻根据⽤户要求创建了⼀个进程P,进程P在其存在过程中依次经历了:进程调度选中了进程P 占⽤处理机运⾏,进程P运⾏中提出资源申请,要求增加内存使⽤量,没有得到;进程等待⼀段时间后得到内存;进程调度再次选中了进程P占⽤处理机运⾏;进程P的时间⽚到;⼀段时间后,进程P再次占⽤处理机;有紧急进程Q进⼊,系统停⽌进程P的运⾏,将处理机分配进程Q;进程Q运⾏完,进程调度再次选中了进程P占⽤处理机运⾏;进程P运⾏完。
请分析进程P在其整个⽣命过程中的状态变化。
进程调度选中了进程P占⽤处理机运⾏(就绪→运⾏),进程P运⾏中提出资源申请,要求增加内存使⽤量,没有得到(运⾏→阻塞);进程等待⼀段时间后得到内存(阻塞→就绪);进程调度再次选中了进程P占⽤处理机运⾏(就绪→运⾏);进程P的时间⽚到(运⾏→就绪);⼀段时间后,进程P再次占⽤处理机(就绪→运⾏);有紧急进程Q进⼊,系统停⽌进程P的运⾏,将处理机分配进程Q(运⾏→就绪);进程Q运⾏完,进程调度再次选中了进程P占⽤处理机运⾏(就绪→运⾏);进程P运⾏完。
请分析进程P在其整个⽣命过程中的状态变化。
6、试⽐较进程与程序的异同。
7、引起创建进程的事件通常有哪些?简述进程的创建过程。
8、简述进程的阻塞过程。
911、简述操作系统的三级调度。
12、为什么要了解进程间的家族关系?因为⽗进程和⼦进程之间是⾪属关系,⼦进程可以继承使⽤⽗进程的资源;如果⽗进程被撤销,还应撤销其所有的⼦孙进程。
13、什么是进程?。
14、试⽐较进程和线程的区别。
15、简述进程的基本状态,画出其状态转换图。
⼆、计算题1、若程序Pa,Pb和Pc单独执⾏时间分别Ta,Tb和Tc,Ta=1⼩时,Tb=1.5⼩时,Tc=2⼩时,其中处理机⼯作时间分别为Ta=10分钟,Tb=15分钟,Tc=35分钟。
操作系统(三)——信号量、死锁1、信号量信号量机制:概念:其实就是⼀个变量,可以⽤⼀个信号量来表⽰系统中某种资源的数量、⽤户进程通过使⽤操作系统提供的⼀对原语来对信号量进⾏操作,从⽽⽅便的实现了进程互斥。
这⾥的⼀对原语是指wait(S)和signal(S),也简写为P(S)和V(S),即申请和释放资源。
P、V操作必须成对出现。
整数型信号量:⽤⼀个整数作为信号量,数值表⽰某种资源数。
对信号量的操作只有三种:初始化、P操作、V操作。
不满⾜让权等待原则。
记录型信号量:S.value表⽰某种资源数,S.L指向等待该资源的队列。
P操作中,先S.value++,之后可能执⾏block阻塞原语。
V操作中,先S.value--,之后可能执⾏wakeup唤醒原语。
可以⽤记录型信号量实现系统资源的申请和释放,申请S.value--,然后如果S.value<0说明资源分配完了,就阻塞;释放S.value++,然后如果S.value<=0说明还有进程在等待队列中等待,就唤醒。
记录型信号量可以实现进程互斥、进程同步。
实现进程互斥:划定临界区。
设置互斥信号量mytex,初值为1。
在临界区之前执⾏P(mutex),在临界区之后执⾏V(mutex)。
实现进程同步:分析那些地⽅是必须保证⼀前⼀后执⾏的两个操作。
设置同步信号量S,初始值为0。
在“前操作”之后执⾏V(S)。
在“后操作”之前执⾏P(S)。
实现前驱关系:每⼀对前驱关系都是⼀个进程同步问题。
为每⼀对前驱关系设置⼀个同步变量,初始值为0。
在“前操作”之后执⾏V操作。
在“后操作”之前执⾏P操作。
⽣产者消费者问题:⽣产者每次⽣产⼀个产品放⼊缓冲区,消费者每次从缓冲区取出⼀个产品使⽤。
缓冲区满⽣产者必须等待(同步关系1),缓冲区空消费者必须等待(同步关系2)。
缓冲区是临界资源,必须被互斥访问(互斥关系)。
问题中的P、V操作:⽣产者每次P⼀个缓冲区,V⼀个产品。
消费者每次V⼀个缓冲区,P⼀个产品。
第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块JCB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU 繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
信号量的作用与使用方法信号量是操作系统中一种重要的同步机制,用于控制对共享资源的访问。
它是由信号量的值来表示资源的可用数量,通过对信号量进行操作来实现资源的互斥访问和同步操作。
信号量的作用和使用方法对于理解操作系统的并发控制和同步机制有着重要的意义。
一、信号量的作用1. 控制共享资源的访问:当多个进程需要访问共享资源时,通过信号量可以控制对资源的互斥访问,从而避免进程之间发生冲突,保证数据的一致性和完整性。
2. 进程间的同步操作:通过信号量可以实现多个进程之间的同步操作,例如进程等待某个事件发生,等待某个资源可用,或者通知其他进程某个事件已经发生等。
3. 防止死锁的发生:通过恰当地设置信号量的初值和合理地对其进行操作,可以有效地避免进程间的死锁情况的发生,提高系统的可靠性和稳定性。
4. 实现生产者-消费者问题:信号量可以很好地实现生产者-消费者问题,保证生产者和消费者之间的协调和同步。
二、信号量的使用方法1. 初始化信号量:在使用信号量之前,需要对信号量进行初始化,设置其初值。
可以使用系统提供的函数进行初始化,一般情况下将信号量初值设为资源的可用数量。
2. 调用P操作(等待操作):当进程需要访问资源时,首先需要调用P操作对信号量进行减1操作,表示资源的数量减少一个。
如果此时资源不可用,则阻塞当前进程,直到资源可用。
3. 调用V操作(发信号操作):当进程使用完资源后,需要调用V操作对信号量进行加1操作,表示资源的数量增加一个。
如果有其他进程在等待资源,V操作可以释放资源,唤醒等待的进程。
4. 处理信号量对进程访问资源的控制和同步,保证了系统的安全性和稳定性。
通过以上的作用和使用方法,可以看出信号量在操作系统中的重要性和必要性。
在实际的软件开发过程中,合理地应用信号量可以解决多进程并发访问共享资源的问题,保证系统的正确性和高效性。
同时也需要注意使用信号量的时机和方式,避免出现死锁等问题。
通过深入理解信号量的作用和使用方法,可以更好地掌握操作系统的同步机制和并发控制,提高软件开发的质量和效率。
操作系统并发的名词解释操作系统是计算机的核心软件之一,负责管理和协调计算机硬件和软件资源。
在多任务环境下,操作系统必须处理并发的任务,以提高计算机的效率和性能。
并发是指在同一时间间隔内,多个事件、任务或进程同时执行的能力。
在操作系统中,有一些与并发相关的重要概念和术语,本文将对其进行解释。
1. 进程(Process)进程是计算机中运行的程序的实例。
每个进程都有自己的内存空间和资源,可以独立运行,并且可以与其他进程进行通信。
操作系统通过分配时间片来实现多个进程的并发执行,每个进程占用一定的CPU时间,然后切换到下一个进程。
2. 线程(Thread)线程是进程中的一个执行单元。
一个进程可以包含多个线程,它们共享进程的资源,如内存空间和打开的文件。
线程可以独立执行,通过操作系统的调度机制来实现并发。
多线程的好处在于可以更有效地利用计算机的CPU资源,提高程序的响应速度。
3. 上下文切换(Context Switching)上下文切换是指操作系统从一个正在执行的进程或线程切换到另一个进程或线程的过程。
在切换过程中,操作系统需要保存当前进程或线程的上下文信息,并加载需要执行的进程或线程的上下文信息。
上下文切换是实现并发的基本机制,但它也带来了一定的开销,因为保存和加载上下文信息需要时间和计算资源。
4. 同步(Synchronization)同步是多个进程或线程之间协调和共享资源的一种机制。
在并发环境中,多个进程或线程可能同时访问和修改共享资源,而没有适当的同步机制可能导致数据不一致和竞态条件等问题。
常见的同步机制包括互斥锁、信号量和条件变量等,它们可以确保临界区的互斥访问和协调进程或线程之间的顺序。
5. 互斥锁(Mutex)互斥锁是一种常用的同步机制,用于防止多个线程同时访问共享资源。
当一个线程获取了互斥锁后,其他线程必须等待锁的释放才能访问该资源。
互斥锁保证了对共享资源的互斥访问,防止了数据竞争和不一致性。