第 六 章并发进程
- 格式:doc
- 大小:532.00 KB
- 文档页数:74
“操作系统概论”习题解答之并发进程第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),可释放一个等待进入的列车进入行驶。
第六章处理器管理练习题(一)单项选择题1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。
A.并发执行B.顺序执行C.并行执行D.同时执行2.引入多道程序设计技术后,处理器的利用率( )。
A.有所改善B.极大地提高C.降低了D.无变化,仅使程序执行方便3.计算机系统采用多道程序设计技术后,()。
A.缩短了每个程序的执行时间B.系统效率随并行工作道数成比例增长C.提高了系统效率D.使用设备时不会发生冲突4.进程是( )。
A.一个系统软件B.与程序概念等效C.存放在内存中的程序D.执行中的程序5.进程的( )和并发性是两个很重要的属性。
A.动态性 B.静态性C.易用性D.顺序性6.( )是完成操作系统功能的进程。
A.用户进程B.系统进程C.并发进程D.编译进程7.可再入程序必须是纯代码,在执行中( )。
A.可以随意改变B.计算结果相同C.自身不改变D.要求输入相同的数据8.已经获得除( )以外所有运行所需资源的进程处于就绪状态。
A主存储器B.打印机C.CPU D.磁盘空间9.在一个单处理器系统中,处于运行态的进程( )。
A.可以有多个B.不能被打断C.只有一个D.不能请求系统调用10.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。
A.顺序执行B.同时执行C.并行执行D.并发执行11.操作系统根据( )控制和管理进程,它是进程存在的标志。
A.程序状态字B.进程控制块C.中断寄存器D.中断装置12.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。
A.运行队列B.后备队列C.等待队列D.就绪队列13.用户从终端上输入一条命令,即产生了( )。
A.程序性中断事件B.外部中断事件C.输入输出中断事件D.自愿性中断事件14.( )的断点是确定的。
A.硬件故障中断B.自愿性中断C.程序性中断D.外部中断15.自愿性中断事件是由( )引起的。
第6章并发进程一、进程的并发性1.进程的顺序性是指进程在顺序处理器上的执行是严格按序的,即按照程序规定的操作顺序,只有在前一个操作结束后才能开始后继操作。
当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。
2.进程的并发性在多道程序设计的系统中,若干个作业可以同时执行,而每一个作业又需要有多个进程协作完成。
因此,系统中会同时存在着许多进程,在单处理器的情况下,这些进程流地占用处理器,即一个进程的工作没有全部完成之前,另一个进程就可开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。
并发进程相互间可能无关,也可能相互间有交往。
进程并发执行时,执行结果与其执行的相对速度有关,进程的并发执行会破坏“封闭性”和“可再现性”。
1.造成与时间有关的错误的原因是什么?(概念)一个进程运行时,经常会由于自身或外界的原因而被中断,切断点是不固定的。
一个进程被中断后,哪个进程可以运行,被中断的进程什么时候再去占用处理器,这是与进程调度策略。
所以,进程执行的相对速度不能由进程自己来控制,于是,就可能导致并发进程在共享资源时出现错误。
2.进程的执行次序对结果是有影响的,关键是它们涉及到共享变量,若交叉访问了共享变量,导致共享变量的值不同,造成计数值不正确的因素是与进程被打断的时间和能占用处理器的时间有关。
1.我们把并发进程中与共享变量有关的程序段称为临界区。
2.相关临界区是指并发进程中涉及到相同变量的那些临界区。
对若干个并发进程共享某一变量的相关临界区的管理有三个求:1)一次最多一个进程能够进入临界区; 2)任何一个进入临界区的进程必须在有限的时间内退出临界区;3)有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。
3)PV操作PV操作是定义在信号量S的两个操作——P操作和V操作组成。
这两个操作是两个不可中断的过程,它们在屏蔽中信号量的定义是表示资源的实体,1)P、V操作一定仅挨临界区 2)P、V操作一定要成对使用。
第6章并发进程1.并发进程中与共享变量有关的程序段称为( B )A.共享子程序B.临界区C.管理区D.公共数据区2.临界区是指( A )A.与共享变量有关的程序段B.公共数据区C.系统管理区D.临时的工作区3.用PV操作管理互斥使用的资源时,信号量的初值应定义为( B )A.任意整数B.1 C.O D.-14.对具有相关临界区的n个并发进程采用PV操作实现进程互斥时,信号量初值应定义为( B )A. 0B. 1C. nD.n-15.用PV操作来管理可供n个进程共享的资源时,若信号量S的初值定义为m,则信号量S可能出现的最小值为( B )A. n-mB. m-nC. 0D. –m6.进程从等待状态进入就绪状态可能是由于( C )A.现运行进程运行结束B.现运行进程执行了P操作C.现运行进程执行了V操作D.现运行进程时间片用完7.用V操作唤醒一个等待进程时,被唤醒进程的状态应变成( B )A.执行态B.就绪态C.运行态D.收容态8.正在执行的进程由于其时间片用完而被暂停运行,此时其进程应从运行态变为( A )A. 就绪态B. 等待态C. 运行态D. 后备态9.资源的静态分配算法在解决死锁问题中是用于( A )A.防止死锁B.避免死锁C.检测死锁D.解除死锁10.为了避免系统可能出现死锁,分配资源可以采用的算法是( B )A. 静态分配B. 银行家C. 按序分配D. 抢夺式11.系统出现死锁时一定同时保持了四个必要条件,对资源采用按序分配算法后可破坏的条件是( D )A.互斥B.占有且等待C.可抢占资源D.循环等待12.任何两个并发进程之间( D )A.一定存在互斥关系B.一定存在同步关系C.一定彼此独立无关D.可能存在同步或互斥关系13.多个进程间可通过 P 、 V 操作交换信息实现同步和互斥,因此信号量机制是进程间的一种( B )A. 高级通信方式B. 低级通信方式C. 消息缓冲通信方式D. 管道通信方式14.并发进程指的是一组( A )A.各自独立执行的进程B.必须依次执行的进程C.可同时执行的进程D.不能中断的进程15.设某类资源有5个,由3个进程共享,要使系统不会死锁则每个进程最多可申请的资源数是( B )A.1 B.2 C.3 D.416.进程间采用信箱通信方式时, send原语把发送者的信件存放到( A )A. 信箱B.消息缓冲区C.接收者的PCB D.指定的工作区17.产生系统死锁的原因可能是由于( C )A. 进程释放资源B. 一个进程进入死循环C. 多个进程竞争资源出现了循环等待D. 多个进程竞争共享型设备18.进程之间的同步是指进程间在逻辑上的相互( A )A. 制约关系B. 排斥关系C. 调用关系D. 转移关系19.用PV操作管理临界区时把信号量的初值定义为1,现已有一个进程在临界区,但有n个进程在等待进入临界区,这时信号量的值为( C )A.-1 B.1 C.-n D.n20.临界区是指并发进程中访问共享变量的( D )A. 管理信息段B. 信息存储段C. 数据段D. 程序段21.在多进程的并发系统中,不会因竞争下列资源而产生死锁的是( C )A. 打印机B. 磁带机C. 磁盘D. CPU22.并发进程指的是一组( C )A.各自独立执行的进程B.必须依次执行的进程C.可同时执行的进程D.不能中断的进程1.对独占设备往往采用分配方式。
并发程序的概念什么是并发程序并发程序是指能够同时执行多个任务的程序。
传统的程序是按照线性顺序执行的,即每个任务按照预定的顺序一个接一个地执行。
而并发程序允许多个任务在短时间内同时执行,提高了程序的效率和性能。
为什么需要并发程序并发程序在处理大量任务和数据时具有明显的优势。
由于并发程序可以同时执行多个任务,因此可以充分利用计算机的多核处理器和多线程技术,提高程序的运行速度和响应能力。
并发程序还可以更好地利用资源,避免资源的浪费。
并发程序的应用领域并发程序广泛应用于各个领域,特别是需要高性能和高吞吐量的场景。
以下是一些常见的并发程序的应用领域:1. 操作系统操作系统是一个典型的并发程序,它需要同时管理多个任务的执行。
操作系统负责协调和调度各个任务,确保它们能够按照预定的优先级和顺序执行。
并发程序使得操作系统能够高效地处理多个用户的请求和操作。
2. 并行计算并发程序在并行计算领域具有重要作用。
并行计算是指将一个大任务分解成多个子任务,并通过并发执行这些子任务来提高计算速度。
典型的应用包括科学计算、图像处理、数据分析等。
3. 网络通信网络通信中需要处理大量的并发连接和数据传输。
并发程序可以同时处理多个连接请求和数据传输请求,提高网络的吞吐量和响应能力。
常见的应用包括服务器程序、网络游戏、实时通信等。
4. 数据库管理数据库管理系统需要处理大量的并发数据库操作,如查询、更新、删除等。
并发程序可以有效地管理和调度这些数据库操作,提高数据库的性能和并发访问能力。
并发程序的实现方法实现一个高效稳定的并发程序需要采用合适的并发控制和同步机制。
1. 多线程多线程是实现并发程序的常用方式之一。
每个线程独立执行一个任务,通过多线程的调度和协调,可以实现多个任务的并发执行。
多线程程序需要考虑线程安全和共享资源的同步问题,避免出现竞态条件和死锁等问题。
2. 进程池进程池是一种管理和调度多个进程的机制。
进程池可以提前创建好一组进程,并由管理器负责调度任务到空闲的进程中执行。
第一章计算机系统概论1.操作系统类似于计算机硬件和人类用户之间的接口。
答案:T。
2.处理器的一个主要功能是与内存交换数据。
答案:T。
3.一般用户对系统程序无障碍,对应用程序有障碍。
答案:F4.数据寄存器一般是通用的,但可能局限于像浮点数运算这样的特定任务。
T5.程序状态字(PSW)通常包含条件码等状态信息。
条件码是由程序员为操作结果设置的位。
答案:F6.一个单一的指令需要的处理称为执行周期。
答案:F(称为指令周期)7.取到的指令通常被存放在指令寄存器中(IR)。
答案:T8.中断是系统模块暂停处理器正常处理过程所采用的一种机制。
答案:T9.为适应中断产生的情况,必须在指令周期中增加一个额外的读取阶段。
F10.在处理器控制控制例行的中断处理器之前,需要储存的最少信息有程序状态字和当前指令地址。
答案:F11.多中断的一个处理方法是在处理一个中断时禁止再发生中断。
答案:T12.多道程序设计允许处理器使用长时间等待的中断处理的空闲时间。
答案:T13.在两级存取优先级中,命中率定义为对较慢存储器的访问次数与对所有存储器访问次数的比值。
答案:F14.高速缓冲存储器的开发利用了局部性原理,即在处理器与主存储器之间提供一个容量小而快速的存储器。
T15.在高速缓冲存储器的设计中,块大小与高速缓冲存储器和主存储器间的数据交换单位有关。
答案:T16.可编程I/O的一个主要问题是,处理器必须等到I/O模块准备完毕,并且在等待的过程中必须反复不停的检查I/O模块的状态。
答案:T第二章操作系统概述1.操作系统是控制应用程序执行的程序,并充当应用程序和计算机硬件之间的接口。
(对)2.在多用户系统中,操作系统管理那些用作重要目的的资源。
(对)3.操作系统通常在它的专用O/S处理器上并行应用程序。
(错)4.操作系统演化的动力之一就是基本硬件技术的进步。
(对)5. 早期的计算机中没有操作系统,用户直接与硬件打交道。
(对)6 在一个批处理系统,“control is passed to a job”意味着处理器正在取指令和执行用户程序。
一、单项选择题18.并发进程执行的相对速度是( )A.由进程的程序结构决定的B.由进程自己来控制的C.在进程被创建时确定的D.与进程调度策略有关19.并发进程执行时可能会出现“与时间有关的错误”,引起这种错误的原因是( ) A.进程执行的顺序性B.访问了共享变量C.程序的结构D.需要的处理器时间20.进程间采用信箱通信方式时,可调用send原语把信件投放到( )A.发送者信箱B.接受者信箱C.指定的工作区D.指定的PCB16、有关并发进程的阐述中,不正确...的说法是( )A、进程的执行速度不能由进程自己来控制B、进程的执行速度与进程能占用处理器的时间有关C、进程的执行速度与是否出现中断事件有关D、任何两个并发进程之间均存在着相互制约关系17、用V操作唤醒一个等待进程时,被唤醒进程的状态应该是( )A、运行B、就绪C、收容D、执行18、系统出现死锁时一定同时保持了四个必要条件,对资源采用按序分配策略后可破坏其中的( )A、互斥条件B、占有且等待条件C、不可抢占资源条件D、循环等待条件19、有n个进程竞争必须互斥使用的共享资源时,若某进程调用P操作后成为第一个等待使用资源者,则此时信号量的值为( )A、n-1B、0C、1D、-120、有n个进程竞争某共享资源,系统允许每次最多m个进程同时使用该资源,若用PV操作管理时信号量的变化范围为( )A、[m,(m+n)]B、[n,(m+n)]C、[(m-n),m]D、[(m-n),n]18.若进程用信件来传递信息,那么发送信息者的进程名应()A.存放在信件中B.作为send原语的参数C.作为receive原语的参数D.存放在信箱说明中19.不能..防止死锁的资源分配策略是()A.剥夺式分配方式B.按序分配方式C.静态分配方式D.互斥使用分配方式20.系统有某类资源5个,供3个进程共享,为保证系统的安全,应限定每个进程申请的资源数不超过...()A.1个B.2个C.3个D.4个18.进程间采用信箱方式进行通信时,在信件中应指出()A.接收者名B.发送者名C.信件名D.信箱名19.对资源采用按序分配策略可以()A.防止死锁B.避免死锁C.检测死锁D.解除死锁20.用PV操作管理临界区时,若有n个进程在等待进入临界区,则这时的信号量值为()A. nB. lC. 0D. -n16、对于一组有交互的并发进程来说,下列说法正确的是()A、每个进程分别在不同的数据集合上运行B、进程的执行结果与其执行的相对速度无关C、进程间共享某些资源D、各进程都有固定的中断点17、进程并发执行时可能会产生与时间有关的错误。
操作系统的进程调度与并发在计算机科学领域,操作系统起到了管理和控制计算机硬件资源的关键作用。
其中,进程调度和并发是操作系统中两个重要的概念。
进程调度是指操作系统在多个进程之间分配CPU时间片,使得它们能够以合理的顺序执行,从而提高整个系统的吞吐量和响应时间。
而并发则指在同一时间可以执行多个独立的任务,进一步提高系统的效率。
一、进程调度进程调度是操作系统的核心功能之一,它决定了程序的执行顺序和优先级。
进程调度算法的设计影响着系统的性能和资源利用率。
常用的进程调度算法有以下几种:1. 先来先服务(FCFS)调度算法:按照进程到达的顺序进行调度,即先到先服务。
该算法的优点是简单易懂,但当有长作业阻塞短作业等待时,会导致平均等待时间较长。
2. 最短作业优先(SJF)调度算法:选择估计需要的CPU时间最短的作业来先执行。
该算法能够保证平均等待时间最小,但需要准确估计作业的执行时间。
3. 优先级调度算法:为每个进程赋予优先级,并按照优先级的高低进行调度。
该算法可以灵活调整各个进程的优先级,但会导致低优先级进程长时间等待。
4. 时间片轮转调度算法:设置固定的时间片,每个进程按照时间片的大小进行调度。
当一个进程的时间片用完后,会被放入就绪队列的尾部,等待下一轮调度。
该算法公平地分配CPU资源,但可能会导致上下文切换频繁。
二、并发并发是指系统同时处理多个任务的能力。
在操作系统中,实现并发的方式有多种。
1. 多道程序设计:允许多个进程同时驻留在内存中,并在进程之间切换。
通过利用中断机制和进程调度算法,操作系统能够在较短的时间内切换多个进程的执行。
2. 多线程:线程是一个独立的执行流,一个进程可以拥有多个线程。
多线程使得程序能够并行执行多个任务,提高了系统的响应速度和资源利用率。
3. 并行处理:通过利用多个处理器同时执行多个任务,实现真正的并行处理。
多核处理器的出现使得并行处理得到了更好的支持。
三、进程调度与并发的关系进程调度和并发是紧密相关的,两者相互影响、相互促进。
一、实验背景与目的随着计算机技术的发展,多任务处理和多进程并发已经成为操作系统设计中的基本要求。
为了更好地理解进程并发的基本原理和实现方法,我们进行了本次实验。
实验的目的是通过实践操作,加深对进程并发执行的理解,掌握进程创建、同步、互斥等基本概念,并学会使用相关系统调用实现进程的并发控制。
二、实验环境与工具实验环境:Windows 10操作系统,Visual Studio 2019开发环境。
实验工具:C++编程语言,WinAPI系统调用。
三、实验内容与步骤本次实验主要分为以下几个部分:1. 进程创建与并发执行- 使用CreateProcess函数创建多个进程,并观察它们的并发执行情况。
- 使用GetTickCount函数获取每个进程的执行时间,分析并发执行的效果。
2. 进程同步- 使用互斥锁(mutex)实现进程间的同步,确保同一时刻只有一个进程访问共享资源。
- 使用条件变量(condition variable)实现进程间的条件同步,实现生产者-消费者模型。
3. 进程互斥- 使用信号量(semaphore)实现进程间的互斥,避免资源竞争。
- 使用临界区(critical section)保护共享资源,防止多个进程同时访问。
4. 实验分析- 分析实验结果,总结进程并发、同步和互斥的原理和方法。
- 讨论实验中遇到的问题和解决方法。
四、实验代码示例以下是一个简单的实验代码示例,演示了使用互斥锁实现进程同步的过程:```cpp#include <windows.h>#include <iostream>using namespace std;// 全局互斥锁mutex mtx;void processFunction(){unique_lock<mutex> lock(mtx);cout << "Process " << GetCurrentProcessId() << " is running." << endl;lock.unlock();}int main(){// 创建两个进程CreateProcess(NULL, "process.exe", NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);// 主进程继续执行cout << "Main process is running." << endl;return 0;}```五、实验结果与分析1. 进程创建与并发执行通过实验,我们观察到多个进程可以并发执行,并且每个进程的执行时间都会有所不同。
操作系统总复习及相关习题第一章引论名词解释1操作系统操作系统是管理和控制计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
2管态当执行操作系统程序时,处理机所处的状态3目态当执行普通用户程序时,处理机所处的状态。
4多道程序设计在这种设计技术下,内存中能同时存放多道程序,在管理程序的控制下交替的执行。
这些作业共享CPU和系统中的其他资源。
5并发是指两个或多个活动在同一给定的时间间隔中进行。
它是宏观上的概念。
6并行是指两个或多个活动在同一时刻同时执行的情况。
7吞吐量在一段给定的时间内,计算机所能完成的总工作量。
8分时就是对时间的共享。
在分时系统中,分时主要是指若干并发程序对CPU时间的共享。
9实时表示“及时”或“既时”。
10系统调用是用户在程序中能以“函数调用”形式调用的、由操作系统提供的子功能的集合。
每一个子功能称作一条系统调用命令。
它是操作系统对外的接口,是用户级程序取得操作系统服务的唯一途径。
11特权指令指指令系统中这样一些指令,如启动设备指令、设置时钟指令、中断屏蔽指令和清内存指令,这些指令只能由操作系统使用。
12命令解释程序其主要功能是接收用户输入的命令,然后予以解释并且执行。
13脱机I/O是指输入/输出工作不受主机直接控制,而由卫星机专门负责完成I/O,主机专门完成快速计算任务,从而二者可以并行操作。
14联机I/O是指作业的输入、调入内存及结果输出都在cpu直接控制下进行。
15资源共享是指计算机系统中的资源被多个进程所功用。
例如,多个进程同时占用内存,从而对内存共享;它们并发执行时对cpu进行共享;各个进程在执行过程中提出对文件的读写请求,从而对磁盘进行共享等等。
简答题1什么是操作系统?它的主要功能是什么?答:操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
操作系统判断并发执行的公式操作系统判断并发执行的公式为:并发进程数=同时存在的进程数+同时处于阻塞状态的进程数。
这个公式的意思是,一个操作系统需要维护许多不同的进程,并使它们同时运行。
实际运行的进程数量可能会随着各种因素而变化,例如在I/O操作时进程可能会暂时阻塞。
因此,为了准确判断并发执行的进程数,需要将同时存在和阻塞状态中的进程数量加总起来。
除了这个简单的公式之外,实际上还有许多其他因素可能会影响并发执行的进程数量。
例如,不同的处理器架构、缓存大小、内存带宽等等都可能会影响操作系统的并发执行能力。
此外,还有其他因素可能对进程性能产生影响,例如进程调度算法、进程间通信机制、线程数量等等。
因此,要准确判断并发执行的进程数量,需要综合考虑许多不同的因素。
第一章测试1【单选题】(10分)下列选项中,不是操作系统关心的主要问题的是A.高级程序设计语言的编译B.管理计算机中的信息资源C.设计、提供用户程序与计算机及计算机硬件系统的接口D.管理计算机裸机2【单选题】(10分)设计实时操作系统时,首先应该考虑系统的()A.实时性和可靠性B.分配性和可靠性C.可靠性和灵活性D.灵活性和实时性3【单选题】(10分)实时操作系统必须在()内处理来自外部的事件A.被控对象规定时间B.周转时间C.一个机器周期D.时间片4【单选题】(10分)所谓(),是指将一个以上的作业放入内存,并且同时处于运行状态。
这些作业共享处理机的时间和外设及其他资源。
A.多重处理B.实时处理C.多道程序设计D.并行执行5【单选题】(10分)操作系统的基本功能是()A.控制和管理系统内的各种资源B.提供用户界面方便用户使用C.提供功能强大的网络管理工具D.提供方便的可视化编辑程序6【单选题】(10分)现代操作系统的最基本特征是()A.虚拟和不确定B.并发和共享C.共享和虚拟D.并发和不确定7【单选题】(10分)批处理系统的主要缺点是()A.系统吞吐量小B.资源利用率低C.CPU利用率不高D.无交互能力8【单选题】(10分)下列选项中,不属于多道程序设计的基本特征的是()A.制约性B.顺序性C.共享性D.间断性9【单选题】(10分)在分时系统中,时间片一定时,()响应时间越长A.内存越多B.用户数越少C.内存越少D.用户数越多10【单选题】(10分)在分时系统中,为使多个进程能够及时与系统交互,最关键的问题是能在短时间内使所有就绪进程都能运行。
当就绪进程数为100时,为保证响应时间不超过2秒,此时的时间片最大应为()A.10msB.50msC.100msD.20ms第二章测试1【单选题】(10分)一个进程映像是()A.PCB结构与程序和数据的组合B.一个独立的程序C.由协处理器执行的一个程序D.一个独立的程序+数据2【单选题】(10分)在任何时刻,一个进程的状态变化()引起另一个进程的状态变化。
引言:本章第一节首先介绍并发的概念和进程并发执行带来的问题,同时指出并发进程之间的关系(无关的并发进程和相关的并发进程)和判断进程是否相关的Berstein条件。
特别对于相关的并发进程,可用互斥的方法解决进程间的竞争关系;用同步的方法解决进程间的合作关系。
第二节中介绍实现互斥的软件方法和硬件机制。
实现互斥的软件方法有Dekker算法和Pertenson算法,也可通过禁止中断或采用特殊的硬件指令等硬件机制来支持互斥。
第三节介绍用信号量和PV原语来实现进程的互斥和同步。
在这一节中我们还将介绍一些进程同步和互斥的经典问题。
第四节简单介绍管程的概念以及用管程来实现进程的同步和互斥。
最后一节中我们将讨论在并发处理中通常需要解决的两个问题死锁和饥饿,并分析处理死锁的三种常用方法:预防、检测和避免。
本章是操作系统课程的精华,也是学习的最大难点。
4.1 并发的基本原理一、再论进程的并发性1. 顺序程序设计传统的程序设计方法是顺序程序设计,即把一个程序设计成一个顺序执行的程序模块,不同程序也是按序执行的。
程序执行不仅具有内部顺序性,也具有外部顺序性。
首先程序中包含了用来实现某个算法的若干操作,当程序在处理器上执行时,只有前一个操作结束,才能开始后继操作,称为程序内部的顺序性。
如果需要若干不同的程序来完成某个任务,则这些不同程序也将按调用次序严格有序执行,称为程序外部的顺序性。
2. 顺序程序设计的特性(1) 执行的顺序性一个程序在处理器上执行是严格有序的,即每个操作必须在下一个操作开始之前结束。
(2) 环境的封闭性由于程序是一个个顺序执行的,所以每个程序在执行时独占系统的全部资源,不会受到其他程序和外界因素的干扰。
(3) 执行结果的确定性虽然程序执行过程中允许出现中断,但是中断不会引发程序的切换,所以对程序的最终结果没有影响,换言之,程序的执行结果与它的执行速率无关。
(4) 计算过程的可再现性一个程序针对同一个数据集一次执行的结果,在下一次执行时会重现,即重复执行程序会获得相同的执行结果。
描述操作系统多进程并发的机制下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 进程:操作系统中独立运行的程序单位。
2. 并发:多个进程同时执行的能力。
第六章并发进程本章将主要讲述以下六方面的内容:6.1进程的并发性6.2与时间有关的错误6.3临界区与PV操作6.4进程的同步与互斥6.5进程通信6.6死锁6.1进程的并发性1.进程的顺序执行:参见P110页在单道程序设计环境下,系统具有如下特点:(1)资源的独占性:任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。
(2)执行的顺序性:由于内存中每次只有一个程序,因此各个程序是按次序执行的,即做完一个以后,再做下一个。
绝对不可能出现在一个程序运行过程中,又夹杂进另一个程序执行的现象存在。
(3)(结果的)可再现性:只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的。
(4)封闭性(运行结果的无关性):程序运行的结果与程序执行速度无关。
例如:(A+B)×(C+D)2.进程的并发执行:参见P111页(1)并发:指两个以上的程序在计算机系统中运行,一个程序结束之前,另一个已经开始执行,并且次序不是事先确定的。
(可参见110页)(2)并发的重要性:一个程序不能充分利用资源,并发可充分提高计算机各个资源的利用率。
3.相关进程与无关进程(1)相关进程:进程之间在逻辑上具有某种联系。
例如,P0在运行中创建了两个子进程P1、P2,P1产生的输出作为P2的输入,P1、P2是相关进程。
此外,P1、P2与P0之间存在父子关系。
一般来说,属于同一进程族内的所有进程都是相关的。
(2)无关进程:彼此完全独立,逻辑上无任何联系,但不等于互相不起作用,例如:对于两个相互之间没有交往的用户来说,其进程是无关的。
4.进程的相互作用直接作用:进程间相互关系是有意识安排的,不需要通过某种中介而发生相互作用。
例如:进程P1将一个消息传递给另一个进程P2;进程P1的某一步骤S1需要在进程P2的某一步骤S2执行完毕后才能继续等。
这种直接相互作用只发生在相关进程之间。
间接作用:进程间需要某种中介发生联系,是无意识安排的,可以发生在相关进程之间,也可发生在不相关进程之间。
例如:P1申请某一独占型资源R0,若此资源被P2所占用,则P1只好等待,当P2释放R0时,将P1唤醒。
6.2与时间有关的错误参见P111页P1: a:=a+1P2: a:=a-b P3: b:=b+1if a<=0 then while a<=0 do if b<=0 thenelse a:=a+1;elseP1、P2共享a,P2、P3共享b,如果不对a与b的使用加以限制,有可能发生与进程推进速度有关的错误。
显然,这是与时间有关的错误。
比如:在车站卖,还剩下10张票,P1P2R1:=x;R2:=x;10 10R1:=R1-1;R2:=R2-1;X:=R1;x:=R2;第一个售票窗口是P1,第二个售票窗口是P2。
在共享变量的时候如果不加任何控制的时候就会产生与时间有关的错误。
6.3临界区与PV操作参见P114页临界区(互斥区)临界资源(共享资源):系统中某些资源一次只允许一个进程使用,称这样资源为临界资源。
如上例的a、b。
临界区(互斥区):进程中访问临界资源的程序段称临界区。
临界区分散在不同进程中,它们都对同一临界资源进行操作,对临界区的访问必须是互斥的。
例:二人合作存款,执行速度的不同,导致结果不唯一。
[答疑编号10060101:针对该题提问]因为count是一个互斥性使用的变量(有排它性)。
count (变量)若仅读(R),count 不具有排它性。
怎么才能保证各进程间互斥地执行临界区(段)以访问共享变量呢?(即解决了临界区对临界资源的访问,就解决了互斥问题)。
解决互斥区使用问题所遵循的原则:有空让进(当无进程在临界区内时,任何一个有权使用临界资源的进程,可以进入)、无空等待(不允许两个以上的进程同时进入临界区)、有限等待(任何一个进程进入临界区的要求应该在有限时间得到满足)、让权等待多中选一。
为此,Dijkstra于1965年提出临界区设计原则:每次至多只允许一个进程处于临界段之中;如果有多个进程同时要求进入临界区,应在有限时间内使其之一进入;进程只能在临界区中逗留有限时间。
对若干个进程共享一个变量的相关的临界区,为解决临界区的使用问题,有两个前提:任何进程不能停止其它进程;进程之间相对运行速度无规定(随机发生)。
解决方法:①硬件:即当某一进程进入临界区后,屏蔽所有中断,进程退出临界区后,再重新开放所有中断。
由于CPU在进程间的转换是时钟或其它中断所导致的直接结果,所以关中断后,其它进程不可能获得运行的机会,自然也不可能执行其它程序而进入临界区。
缺点:关闭中断为特权指令,给用户使用可能导致严重后果,如忘记开中断了,则使系统无法运行;仅适合单CPU系统,而在多CPU系统中,其它CPU上的进程仍可能进入共享区,而导致竞争状态的出现。
②软件:解决算法(编写程序解决),要由OS协调并发程序的执行,它是并发进程的管理者。
信号量与P、V操作参见P115页OS中实现同步的机构称为同步机制,有多种不同方法实现同步机制。
这里只介绍PV 操作,PV操作不仅可以解决进程的互斥,而且更是实现进程同步的好办法。
(1)信号量的概念信号量是荷兰的计算机科学家Dijkstra65年提出的,也是最早的同步方法。
所谓信号量:是一个仅能由同步原语对其进行操作的整型变量。
Dijkstra将这两个同步原语命名为“ P操作”(收信号),“ V操作”(发信号)。
(2)P,V操作的定义P,V操作是对信号量进行的原语操作。
Dijkstra对这两个原语操作定义如下:P(S):当信号量S大于0时,将S值减1,否则进程等待,直到其它进程对S进行V 操作V(S)。
V(S):将信号量S的值加1。
P,V操作的功能描述见下图:P,V操作可用软件和硬件来执行。
P操作和V操作,它们的执行必须是一个不可被中断的整体。
[注]:物理意义:S > 0时,S为可用资源量;S = 0时,可用资源量正好用完;S < 0时,|S|为等待资源的队列长度,即还欠资源数(在信号量上等待的进程数)。
(3)关于信号量及其P、V操作,有如下几点说明。
①设置的信号量初值,一定是一个非负的整数。
由于P操作会在信号量的当前值上进行减1操作,而V操作会在信号量的当前值上进行加1操作,因此运行过程中,信号量的取值就不再受“非负”所限了。
②定义在信号量上的P操作和V操作,都由两个不可分割的操作组成,所以,信号量上的P、V操作,实际都是原语,常采用关、开中断的办法来具体实现信号量上的P、V 操作。
③从P(S)的定义可以看出,调用它的进程有两个出路。
如果对信号量当前值减1后,信号量值大于等于0,则该进程继续运行下去;否则它就被阻塞,直到有别的进程通过做V (S)来唤醒它。
但是从V(S)的定义可以看出,调用它的进程的状态不会改变。
无论对信号量当前值加1后的结果如何,调用它的进程最终都是继续运行下去。
④注意,如果一个进程在做P操作后被阻塞,其含义是将进程的PCB排入到该信号量的等待队列上。
6.4进程的同步与互斥参见P116页1.进程同步与互斥的概念(1)进程的互斥由于各进程要求共享资源,而有些资源需要互斥的使用,因此各进程间竞争使用这些互斥资源,进程之间的这些关系称进程互斥。
进程的互斥是进程之间所发生的一种间接性相互作用,这种相互作用是进程本身不希望的,也是运行进程感觉不到的,进程互斥可能发生在相关进程之间,也可能发生在不相关进程之间。
(2)进程的同步进程的同步指系统中有些进程需要相互合作,共同完成一项任务。
具体地说,一个进程运行到某一点时,要求另一伙伴进程为其提供消息,为获得消息时,该进程变为等待状态,获得消息后,被唤醒后进入就绪态。
例:A进程:负责从键盘读数据到缓冲区,B进程:负责从缓冲区取数据并且计算。
[答疑编号10060201:针对该题提问]如A已写入缓冲区,在B读以前,缓冲区满,A再写入,数据被覆盖,是不正确的;如B已读出,在A写以前,缓冲区空,B再读,重复读,也是不正确的。
原因:不是因为共同使用缓冲区,而在于访问的速率,为使A、B正确工作,必须按一定速率访问共享的缓冲区,这种要求称为相关进程的同步。
进程同步是进程之间直接的相互作用形式,这种相互作用只发生在相关的进程之间。
例:关门-启动-行驶-停-开门司机P1 售票员P2REPEA T REPEA T启动①关门②正常运行售票到站停③开门④UNTIL FALSE UNTIL FALSE为了安全起见:关车门后才能启动车辆——启动在关门之后;到站停车后才能开车门——开车门在到站停车之后。
在计算机系统中可以将司机和售票员分别看作P1、P2两个进程,当它们并发地向前推进时,计算机系统所接受到的实际上是司机活动与售票员活动的许多交叉中的任意一个交叉,这些交叉有些满足上述要求,有些则不满足,而操作系统必须保证不能发生不满足上述要求的交叉,即:如P2尚未推进到②处时,而P1已推进到①处,则P1应等待直到P2推进到②处为止;如P1尚未推进到③时,P2已到④,则P2应等待直到P1推进到③处为止。
P1在①处发生了等待,则P2执行到②处时应将P1唤醒;P2在④处发生了等待,P1到③处应将P2唤醒。
一组相互合作的并发进程,为了协调其推进速度,有时需要相互等待与相互唤醒,进程之间这种相互制约的关系称作进程同步。
进程同步现象仅发生在相互有逻辑关系的进程之间,这点与进程互斥不同,进程互斥现象发生在任意两个进程之间。
与进程同步相关的另一概念是进程合作,一组进程如果它们单独执行不能正常进行,但并发执行可以正常进行,这种现象称为进程合作。
参与进程合作的进程称为合作进程,如司机与售票员的例子,二者单独执行都不能正常进行,但二者并发可以正常进行,成为合作进程,这种进程合作的现象在操作系统中经常发生。
同步指两个事件的发生有着某种时序上的关系(先,后)。
互斥指资源的使用要排它使用,防止竞争冲突(不同时使用,无先后次序)。
互斥可看作一种特殊同步。
2.用P、V操作实现互斥参见P116页假定把进程A程序中的临界区记为CSa,假定把进程B程序中的临界区记为CSb,如图6-5(a)所示。
则A程序和B程序不能同时执行“CSa和CSb”。
为了保证做到这一点,设置一个初值为1的信号量S,在“CSa和CSb”的进入点处安排对S的P操作,在“CSa和CSb”的退出点处安排对S的V操作。
这样,就能够确保CSa 和CSb互斥地执行。
如图6-5(b)所示。
现在来分析一下为什么这样的安排就能够保证CSa和CSb的互斥执行。
在图6-5(b)的情形下,这样安排P、V操作,可以保证只有一个进程进入它的临界区。
在这种安排下,哪个进程先对信号量S做P操作,就会使S的值由1变成为0,且它就获得了进入临界区的权利。