操作系统第五章 并发性:互斥和同步


e=e-1 s=s-1 n=n+1
n=n-1 e=e+1

生产者 producer: while (true) { /* 生产v*/ semWait(empty); semWait(s); b[in] = v; semSigal(s); semSigal(full); in++; }

消费者 consumer: while (true) { semWait(full); semWait(s); w = b[out]; semSigal(s); semSigal(empty); out++; /* 消费w */ }
需要一个特殊变量(整数型):称为信号量

荷兰 计算机科学家

1 提出“goto有害论”; 2 提出信号量和PV原语(1965); 3 解决了“哲学家聚餐”问题; 4 最短路径算法(SPF)和银行家算法的创造者; 5 第一个Algol 60编译器的设计者和实现者; 6 THE操作系统的设计者和开发者;
死锁

进程之间互有对方必需的资源而不释放 例:R1 P2,R2 P1

饥饿

两个进程轮流访问临界资源,其他进程被无限地拒 绝访问资源,处于饥饿状态

共享合作关系

进程间接知道彼此的存在 进程间通过共享某些资源(如:变量、文件)进行 合作,但不确切知道对方

多个进程可以同时读一个数据项,但是必须互斥写 操作
P2: …… ② L2: printf(n); ③ n=0; ……. Go to L2;

例:
n=5, 共享变量;
①②③:输出6,n=0 ②③①:输出5,n=1
②①③:输出5,n=0
×

OS必须能够跟踪不同的进程,依靠PCB OS必须为每个活跃的进程分配和释放各种资源

处理器时间


存储器


机器指令方法的特点

适用于在单处理器或共享内存的多处理器上的任何数目的进程 非常简单且易于证明
可用于支持多个临界区,可以用自己的变量定义

缺点

忙等待:进程等待进入临界区,仍会继续消耗CPU 时间 可能饥饿:当需要选择等待进程进入时,某些可能被无限拒绝 可能死锁:低优先级的进程占有高优先级的进程所需资源
否会被阻塞

当进程对一个信号量加1后,另一个进程会被唤醒, 两个进程继续并发运行

在向信号量发出信号后,不需要知道是否有另一
个进程正在等待,被解除阻塞的进程数量或者没
有或者是1
信号量的值:资源个数
因信号量阻塞的进程队列
申请分配资源
当前进程放入队列s.queue 阻塞此进程
释放资源
从s.queue中移除该进程P 把进程P插入到就绪队列

临界区:进程访问临界资源的那段程序代码;
互斥:当一个进程在临界区访问临界资源时,其他进程不能进
入临界区。 同步:合作的并发进程需要按先后次序执行



死锁:多个进程等待其他进程的资源,形成循环等待链;
饥饿:一个进程呈可执行状态,被调度器忽视而不能调度执行。

并发的困难

共享全局资源,引发数据安全问题

设一信号量s,初始值为1

缓冲区满,生产者不能再加数据;缓冲区空,消费 者不能再取数据
生产者/消费者问题的无限缓冲区:in 〉out

生产者 producer:

while (true) {
/* 生产数据*/
b[in] = v;
in++; }
消费者 consumer: while (true) { while (in <= out) /*do nothing */; w = b[out]; out++; /* consume item w */ }
处理机上,实现并行执行。

并发的相关问题

进程间的通信
资源共享与竞争
多个进程活动的同步

分配给进程的处理器时间

并发出现的环境

多应用程序:共享处理器时间
结构化应用程序:设计成一组并发进程
操作系统结构:上一点用于操作系统

临界资源:一次仅允许一个进程使用的共享资源; 如:打印机、变量、数组

semWait和semSignal必须成对出现

互斥时,位于同一进程,临界区的前后 同步时,交错出现于两个合作进程内

多个semWait的次序不能颠倒,否则可能导致死锁; 用于同步的semWait应出现在用于互斥的semWait 之前

多个semSignal的次序可以任意

在进程对信号量减1之前无法提前知道该信号量是

多个进程读写共享数据时,必须保持数据一致性

通信合作关系

进程直接知道对方的存在
进程间通过发送消息和接受消息来进行通信,
实现同步和协调各种活动;

传递消息时,进程间未共享资源,则不需互斥,
但可能会死锁或饥饿,通信成为临界资源

必须强制实施互斥:一次只允许一个进程进入临界区 一个在非临界区停止的进程不能干涉其他进程 有限等待:决不允许出现需要访问临界区的进程被无限

putchar(chout);


解决办法:控制访问该变量的代码

规定一次仅允许一个进程进入echo,并只在
echo运行结束后,才对另一个进程可用

如何实施?

竞争条件:发生在多个进程或者线程读写数据时, 最终结果依赖于多个进程的指令执行顺序
P1: …… ① L1: n++ ……. Go to L1;

P1优先级低,进入临界区中断;P2优先级高,抢占CPU,需要访问同一临界资
源,等待;P1 无法再次得到CPU ,资源无法释放,进入死锁。

解决并发进程问题基本原理:

两个或多个进程可以通过简单的信号进行合作,
一个进程可以被迫在某一位置停止,直到它接到
一个特定的信号


复杂的合作需求都可以通过适当的信号结构完成

问题:按照什么顺序从等待队列移出?

先进先出(FIFO):阻塞最久的进程最先从队
列释放

强信号量:采用FIFO 策略的信号量

保证不会导致饥饿

弱信号量:没有规定移出顺序的(略)

对每一个临界资
源设一个信号量
s表示,初始化 为1;

每个进程进入临 界区之前执行
semWait(s),退出
临界区之后执行 semSignal(s);

信号量为实施互斥和进程间合作提供了强大灵 活的工具,但存难点

semWait和semSignal操作可能分布在整个程序中, 很难看出整体效果

因此提出管程(Monitor),一个程序设计语言结 构,可以锁定任何对象,提供与信号量相同的功能,
更易于控制

使用信号的管程

定义:管程由一个或多个过程、一个初始化序列和 局部数据组成的软件模块
文件 I/O设备

OS必须保护每个进程的数据和物理资源 进程的功能和输出结果必须与执行速度无关
实现互斥和同步

竞争关系

进程间相互不知对方存在 竞争:CPU、设备、内存等 影响:进程的结果与其他进程无关;会影响状态; 可能引发的问题:互斥

死锁 饥饿

互斥产生的额外控制问题

OS难对资源进行最优化分配-----死锁
难以定位程序设计错误

一个简单例子
void echo() ---多道程序设计系统中的共享函数
{
chin = getchar(); 全局共享变量
chout = chin;
putchar(chout);
}
P1 ——chin=getchar() 中断 P2——chin= getchar()

缓冲区是有限的---循环存储器
(b)

生产者 producer: while (true) { /* 生产数据*/ semWait(empty); semWait(s); b[in] = v; semSigal(s); semSigal(full); in++; }

消费者 consumer: while (true) { semWait(full); semWait(s); w = b[out]; semSigal(s); semSigal(empty); out++; /* consume item w */ }
chout = chin;
putchar(chout); P1恢复 chout = chin; putchar(chout);
Process P1

Process P2

chin = getchar();

chin = getchar();
chout = chin;

chout = chin; putchar(chout);
阻塞在信 号量lock

对于同步,“一类资源”配一信号量s,初
始值为可用资源数量

如:s表示缓冲区的空闲状态;

问题描述

有一组生产者生产数据,放在缓冲区(同步)

设一信号量empty, 初始值为缓冲区大小

有一组消费者取数据,每次取一项(同步)

设一信号量full,初始值为0
合集下载

智慧树 计算机操作系统 网课章节测试答案

智慧树 计算机操作系统 网课章节测试答案

计算机操作系统在线学堂•得分:8••评语:••名称计算机操作系统•成绩类型百分制•截止时间2022-07-22 23:59•题目数5•总分数10说明第二次见面课课后测验提示:选择题选项顺序为随机排列•第1部分•总题数:51【单选题】 (2分)关于同步和互斥关系,以下叙述错误的是:A.并发进程推进过程中由于共享互斥资源可能形成互斥关系B.互斥表现的是一种竞争关系,互斥进程不能同时使用互斥资源C.并发进程推进过程中围绕共享资源可能形成合作关系D.同步表现的是进程之间的合作关系,同步进程可以同时使用临界资源2【单选题】 (2分)关于临界区和临界资源的说法,错误的是A.并发进程体中关于同一临界资源的临界区称为相关临界区B.临界区指的是进程体中使用临界资源的代码段C.一个进程体中只能有一块临界区D.临界资源指的是并发进程并发推进过程中需要共享但是不能同时共享的资源3【多选题】 (2分)PV操作可用来实现A.并发进程间的互斥B.进程间少量信息的传递C.并发进程间的同步D.进程间大量信息的传递4【判断题】 (2分)为了让用户进程互斥地进入临界区,可以把整个临界区实现成不可中断的过程,即让用户具有屏蔽所有中断的能力。

每当用户程序进入临界区的时候,屏蔽所有中断。

当出了临界区的时候,再开放所有中断A.对B.错5【判断题】 (2分)互斥是指不但不能同时用,谁先用谁后用也有严格约束A.错B.对总分8第1部分12345Copyright © 2003-现在Zhihuishu. All rights reserved.沪ICP备10007183号-5沪公网备31010402003974号电子营业执照计算机操作系统在线学堂•得分:10••评语:••名称计算机操作系统•成绩类型百分制•截止时间2022-07-22 23:59•题目数5•总分数10说明第一次见面课课后测验提示:选择题选项顺序为随机排列•第1部分•总题数:51【单选题】 (2分)以下关于进程的表述错误的是A.进程具有独立性,进程是分配资源和参与CPU调度的独立单位B.进程具有动态性,操作系统为了描述和管理程序动态的执行过程才引入了“进程”C.进程是一个程序的一次动态执行过程,进程由要执行的代码和要处理的数据组成D.进程具有并发性和异步性,每个进程的推进速度都是不可预知的2【单选题】 (2分)下列哪一种进程状态转换是不可能的A.阻塞态→运行态B.就绪态→运行态C.运行态→就绪态D.运行态→阻塞态3【判断题】 (2分)进程是按异步方式运行的,即,它的推进速度是不可预知的A.对B.错4【判断题】 (2分)一个进程由程序代码、数据集和进程控制块TCB组成。

操作系统 概念,问答

操作系统 概念,问答

第一章操作系统概述1操作系统:是管理系统资源,控制程序执行,改善人机界面,提供各种服务,并合理组织计算机工作流程和为用户方便而有效地使用计算机提供良好运行环境的最基本的系统软件。

2操作系统功能:a处理器管理b存储管理c设备管理d文件管理e网络与通信管理f用户接口3操作系统的主要特性:并发性,共享性,异步性并发性:两个或两个以上的活动或时间在同一时间间隔内发生,其实质是对有限的物理资源强行复用,供多用户共享以提高效率并行性:两个或两个以上的活动或事件在同一时刻发生并发性和并行性的关系:并行活动一定是并发的,反之并发活动未必是并行的,并行性是并发性的特例,而并发性是并行性的扩展4多道程序设计基本思想多道程序设计是指允许多个作业同时进入计算机系统的主存并启动交替计算的方法,也就是说,主存中多个相互独立的程序处于开始和结束之间,从宏观上看是并行的,多道程序设计都处于运行过程中,但尚未运行结束;从微观上看是串行的,各道程序轮流占用cpu交替地执行,引入多道程序设计技术,可以提高cpu的利用率,充分发挥计算机硬部件的并行性5内核及其属性内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于核心态,具有访问硬件设备和所有主存空间的权限,是仅有的能够执行特权指令的程序内核的功能:资源抽象,资源分配,资源共享内核的属性:a内核是由中断驱动的b内核是不可抢占的c内核部分程序在屏蔽中断状态下执行d内核可使用特权指令6API,库函数和系统调用第二章处理器管理1特权指令和非特权指令,访管指令,原语特权指令:指仅供内核程序使用的指令,如启动设备,设置时钟,控制中断屏蔽位,清空主存,建立存储键,加载psw等敏感性操作内核能够执行全部指令,应用程序只能使用非特权指令访管指令包括操作码和访管参数两部分,前者表示此指令时访管指令,后者则表示具体的访管要求原语是在管态下执行,完成系统特定功能的过程,其特点是执行过程中不允许被中断。

操作系统同步和互斥

操作系统同步和互斥

操作系统同步和互斥操作系统中的进程之间的关系只有两种:同步与互斥。

下面由店铺为大家整理了操作系统的同步和互斥的相关知识,希望对大家有帮助!操作系统同步和互斥1.进程同步进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。

进程间的直接制约关系来源于他们之间的合作。

比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程B因为读取不到信息而被阻塞。

而当进程A产生信息放入缓冲区时,进程B才会被唤醒。

2.进程互斥进程互斥是进程之间的间接制约关系。

当一个进程进入临界区使用临界资源时,另一个进程必须等待。

只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。

比如进程B需要访问打印机,但此时进程A占有了打印机,进程B会被阻塞,直到进程A释放了打印机资源,进程B才可以继续执行。

扩展:临界资源在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。

但对于某些资源来说,其在同一时间只能被一个进程所占用。

这些一次只能被一个进程所占用的资源就是所谓的临界资源。

典型的临界资源比如物理上的打印机,或是存在硬盘或内存中被多个进程所共享的一些变量和数据等(如果这类资源不被看成临界资源加以保护,那么很有可能造成丢数据的问题)。

对于临界资源的访问,必须是互诉进行。

也就是当临界资源被占用时,另一个申请临界资源的进程会被阻塞,直到其所申请的临界资源被释放。

而进程内访问临界资源的代码被成为临界区。

对于临界区的访问过程分为四个部分:1.进入区:查看临界区是否可访问,如果可以访问,则转到步骤二,否则进程会被阻塞2.临界区:在临界区做操作3.退出区:清除临界区被占用的标志4.剩余区:进程与临界区不相关部分的代码临界资源使用规则:忙则等待、优先等待、空闲让进、让权等待(在临界区的进程,不能在临界区内长时间处于事件等待,必须在一定时间退出临界区)。

互斥与同步

互斥与同步

互斥与同步互斥与同步是计算机科学中两个重要的概念,它们是多线程编程中必须掌握的知识点。

本文将介绍互斥与同步的概念、原理、实现方式以及应用场景。

一、互斥1.1 概念互斥是指在多线程并发执行时,对于共享资源的访问需要保证线程之间的排他性,即在任意时刻只有一个线程能够访问共享资源。

1.2 原理互斥的实现基于锁机制,即在访问共享资源前获取锁,在使用完毕后释放锁。

这样可以保证在任意时刻只有一个线程能够获得锁,从而避免了多个线程同时访问共享资源造成的数据竞争问题。

1.3 实现方式常见的实现方式包括:(1)临界区:将对共享资源的访问限制在一个代码块内,在进入临界区前获取锁,在离开临界区后释放锁。

(2)信号量:通过计数器来控制同时进入临界区的线程数量,当计数器为0时表示当前没有进入临界区的线程,当计数器大于0时表示当前有进入临界区的线程。

(3)互斥量:是一种特殊的信号量,只能被一个线程获取,其他线程需要等待该线程释放互斥量后才能获取。

1.4 应用场景互斥常用于对共享资源的访问控制,例如多个线程同时访问同一个文件、数据库或网络连接等。

二、同步2.1 概念同步是指在多线程并发执行时,保证线程之间的协调和顺序性,使得程序按照预期的顺序执行。

2.2 原理同步的实现基于信号机制,即在某个条件满足时通知其他线程进行操作。

例如,在生产者-消费者模型中,当生产者生产了数据后需要通知消费者进行消费。

2.3 实现方式常见的实现方式包括:(1)条件变量:通过等待和唤醒操作来实现对某个条件的等待和通知。

(2)事件对象:是一种特殊的条件变量,可以通过事件对象来设置和清除事件状态,并在事件状态发生改变时通知其他线程进行操作。

(3)屏障:是一种同步原语,在多个线程到达屏障点时会被阻塞,直到所有线程都到达后才会继续执行。

2.4 应用场景同步常用于对线程之间的协调和顺序性控制,例如在多个线程之间进行任务分配、消息传递等。

三、互斥与同步的关系互斥和同步是两个相互依存的概念。

操作系统学位考试及参考答案

操作系统学位考试及参考答案

一、 名词解释1.并行与串行: 数据在传输过程中,单个数据位依次传输的方法被称为串行,多个数据位是传输则称为并行。

2. 同步与互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。

同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。

3. 设备驱动程序: 为了使管理计算机资源的操作系统能够对特定的硬件资源进行访问和操作,需要为设备提供相应的驱动程序,称为设备驱动程序。

设备驱动程序建立了一个硬件与硬件,或硬件与软件沟通的界面。

4. 程序局部性原理:程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚包括指令和数据两部分。

程序局部性包括程序的时间局部性和程序的空间局部性。

程序的时间局部性是指程序即将用到的信息很可能就是目前正在使用的信息。

程序的空间局部性是指程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

5. 系统调用:由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口,是应用程序同系统之间的接口。

6. 虚拟存储器:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理存储容量大得多,可寻址的“主存储器”。

虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。

7. 假脱机(Spooling ):假脱机技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。

低速设备经通道和设在主机内存的缓冲存储器与高速设备相联,该高速设备通常是辅存。

为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存),在辅存分别开辟一固定区域,叫“输出井”(对输出),或者“输入井”(对输入)。

简单来说就是在内存中形成缓冲区,在高级设备形成输出井和输入井,传递的时候,从低速设备传入缓冲区,再传到高速设备的输入井,再从高速设备的输出井,传到缓冲区,再传到低速设备。

操作系统 题库 判断题

操作系统 题库 判断题

第一章计算机系统概论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”意味着处理器正在取指令和执行用户程序。

进程之间同步和互斥的区别和联系

进程之间同步和互斥的区别和联系
进程之间同步和互斥是操作系统中常见的概念,它们之间有一定的区别和联系。

同步是指多个进程之间的协调,以便它们能够有序地执行。

同步的目的是保证数据的一致性,避免出现数据竞争的情况。

同步可通过共享变量、信号量等方式实现,实现同步的方法包括互斥、条件变量等。

互斥是一种同步机制,用于保护共享资源,防止多个进程同时访问同一资源。

互斥的实现通常是通过临界区实现的,即对于一段代码,只允许一个进程访问,其他进程需要等待。

互斥能够避免多个进程同时写入共享资源,保证了数据的正确性。

同步和互斥的联系在于它们都是为了保证多个进程之间的协调
和数据的正确性。

同步和互斥都是通过对共享资源进行限制来实现的,区别在于同步是为了保证进程的顺序执行,而互斥是为了保证共享资源的安全性。

总的来说,同步和互斥都是操作系统中非常重要的概念,它们的合理运用可以提高操作系统的性能和稳定性。

- 1 -。

操作系统 题库 判断题

第一章计算机系统概论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”意味着处理器正在取指令和执行用户程序。

操作系统第五章的中英文对照

第五章08软一裴晓禹并发性:互斥和同步Concurrency: Mutual Exclusion and Synchronization1并发性的概述:1:操作系统设计中的核心问题是关于进程和线程的管理:The central themes of operating system design are all concerned with themanagement of processes and threads:1:多道程序设计技术。

Multiprogramming2:多处理技术。

Multiprocessing3:分布式处理技术。

Distributed processing2:操作系统的基础是并发性。

Fundamental to operating system design is concurrency3:支持并发进程的基本需求是加强互斥的能力。

The Basic requirement for support of concurrency is the ability to enforce mutual exclusion2:并发出现在以下三种不同的上下文中:1:多个应用程序2:结构化应用程序3:操作系统结构3:并发性原理1:交替。

2:重叠。

3:多道程序设计系统的一个基本特性:进程的相对执行速度不可预测。

4:并发性带来的困难1:全局资源的共享充满了危险。

2:粗奥做系统很难对分配资源进行最优化的管理。

3:定位程序设计错误时非常困难的。

5:一个简单的例子:另一个简单的例子:6:竞争条件:1:定义:竞争条件发生在当多个进程或者线程在读写数据时,其最终的结果依赖于多个进程指令的执行顺序。

2:紊乱状况的解决方案:控制资源共享的通道。

7:进程的交互:进程之间相互之间知道对方是否存在的程度的三种情况: 1:进程之间相互不知道对方。

2:进程简介知道对方。

3:进程直接知道对方。

竞争合作合作8:进程中资源的争用——互斥1:临界区:critical sections部分程序进入共享区域1:一次只允许有一个程序在临界区中。

操作系统精髓与设计原理-第5章 并发性_互斥和同步

第五章并发性:互斥和同步复习题:5.1列出与并发相关的四种设计问题答:进程间的交互,共享资源之间的竞争,多个进程的同步问题,对进程的处理器时间分配问题5.2列出并发的三种上下文答:多个应用程序,结构化应用程序,操作系统结构5.3执行并发进程的最基本要求是什么?答:加强互斥的能力5.4列出进程间的三种互相知道的程度,并简单地给出各自的定义。

答:进程间互相不知道对方:这是一些独立的进程,他们不会一起工作。

进程间间接知道对方:这些进程并不需要知道对方的进程ID号,但他们共享访问某些对象,如一个I/O缓冲区。

进程间直接知道对方:这些进程可以通过进程ID号互相通信,用于合作完成某些活动。

5.5竞争进程和合作进程进程间有什么区别。

答:竞争进程需要同时访问相同的资源,像磁盘,文件或打印机。

合作进程要么共享访问一个共有的资源,像一个内存访问区,要么就与其他进程相互通信,在一些应用程序或活动上进行合作。

5.6列出与竞争进程相关的三种控制问题,并简单地给出各自的定义。

答:互斥:竞争进程仅可以访问一个临界资源(一次仅有一个进程可以访问临界资源),并发机制必须满足一次只有一个进程可以访问临界资源这个规则。

死锁:如果竞争进程需要唯一的访问多于一个资源,并且当一个进程控制着一个进程,且在等待另一个进程,死锁可能发生。

饥饿:一组进程的一个可能会无限期地拒绝进入到一个需要资源,因为其他成员组成垄断这个资源。

5.7列出对互斥的要求。

答:1.必须强制实施互斥:在具有关于相同资源或共享对象的临界区的所有进程中,一次只允许一个进程进入临界区。

2.一个在临界区停止的进程必须不干涉其他进程。

3.绝不允许出现一个需要访问临界区的进程被无限延迟的情况,即不会饿死或饥饿。

4.当没有进程在临界区中时,任何需要进入临界区的进程必须能够立即进入。

5.对相关进程的速度和处理器的数目没有任何要求和限制。

6.一个进程驻留在临界区中的时间是有限的。

5.8在信号量上可以执行什么操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档