两个进程间互斥运算中P运算和V运算的物理意义是什么?

进程管理

程序顺序执行和并发执行的比较

顺序执行

并行执行

程序顺序执行

间歇执行,多个程序以“走走停停”的方式进行。

该程序已关闭。

该计划失去了它的关闭。

独家资源

* * *享受资源

具备当下的能力。

失去再现性

有直接和简单的约束。

l多通道编程概念及其优势

1.多道程序设计:就是在一台计算机上同时运行两个或多个程序。

2.多道程序设计的特点:多个程序共享系统资源并同时执行。

3.多道程序的优点:提高资源利用率,增加系统吞吐量。

什么是过程,过程和程序的区别和联系

1.工艺介绍:

由于多频道节目的特点,节目具有并行性、限制性和动态性,这使得难以描述和反映系统中的情况。

2.进程:程序在并发环境中的执行过程。

3.过程和程序的主要区别:

1)程序是永久的,过程是暂时的。

2)程序是静态的,过程是动态的。

3)该过程由三部分组成。

程序

数据

过程控制块(描述过程活动的数据结构)

4)流程和程序不是一一对应的。

一个程序可以对应多个进程,即多个进程可以执行同一个程序。

一个进程可以执行一个或几个程序。

4.程序和过程之间的类比

工艺步骤

预先的

歌唱或乐器的乐谱。

性能还是性能

戏剧

履行

菜单

厨师

5.流程特征:动态、并发、调度、异步和结构化。

l过程的基本状态及其变换

1.流程的基本状态:

1)正在运行:进程正在占用CPU;

2)就绪状态:进程具备运行条件,但尚未占用CPU;

3)阻塞状态:进程不能享受CPU,因为它在等待一个事件。

2.流程状态转换:

l过程的组成部分和过程控制块的功能是什么?

1.工艺组成:由程序、数据集、PCB三部分组成。

2.过程控制块的作用:过程控制块是过程组成中最关键的部分。

1)每道工序都有独特的PCB。

2)操作系统根据PCB控制和管理进程。

3)过程的动态性和并发性用PCB表示。

4) PCB是工艺存在的唯一标志。

L PCB组织模式

线性队列、链接表、索引表

L UNIX进程管理命令:

L UNIX进程管理命令:

1.PS-显示流程状态

功能:检查系统中当前的流程状态。

例如

$ ps显示与控制中断相关的进程的基本信息

2.休眠——让进程休眠

函数:暂停进程执行一段时间,其参数单位为秒。

例如

$ sleep 60将等待60秒,然后返回到$提示符。

3.& amp-后台命令字符

功能:添加&;在命令行的末尾。字符,这个命令过程将在后台执行。

例如

$ ls–l/usr & amp;创建一个显示目录命令的进程,该进程在后台执行,即只有在没有前台进程运行时才能运行。

4.等待-等待后台进程结束。

功能:等待后台进程结束。

例如

$ wait 2080等待PID为2080的后台进程终止。

5.终止-终止进程

功能:终止一个进程的执行。

例如(在超级用户模式下)

# kill 678停止PID为678的进程。

6.很好-设置优先级

功能:就是执行一个不同优先级的命令。

例如

普通用户只能降低优先级:

$ nice–n 10cc f 1 . c执行命令cc f1.c时,nice值为30(即20+10)。

超级用户(root)可以提高进程的优先级(即增量值可以是不小于-20的负数)。

# nice -n -10 vi abc执行vi abc(编辑命令)的nice值为10(即20-10)。

l进程的同步和互斥

1.同步:流程之间的关系和完成任务时的直接交互。

2.互斥:独占访问是指对同一物理资源的竞争,相互制约。

什么是关键资源和关键领域?

1.关键资源:一次只允许一个进程使用的资源。

2.关键区域:在每个进程中访问关键资源的程序。

3.互斥进入关键区域的标准:

1)如果多个进程请求进入空闲临界区,一次只允许一个进程进入。

2)在任何时候,关键区域都不能有一个以上的过程。如果一个现有的进程进入它自己的临界区,所有其他试图进入临界区的进程都必须等待。

3)进入临界区的进程要在限定时间内退出,以便其他进程及时进入自己的临界区。

4)如果进程不能进入自己的临界区,就应该放弃CPU,避免进程“忙”。

l旗语

1.信号量定义:

信号量(信号灯)= <信号量值,指向PCB的指针>

2.旗语的物理意义:

大于0:表示当前资源的可用数量。

1)信号的值

小于0:其绝对值表示等待使用资源的进程数。

2)信号量的初始值是一个非负整数变量,代表资源的数量。

3)信号幅度是可变的,但只能通过P和V操作来改变。

操作原语

1.操作原语:

1) P操作一次,S的值减1,即S = S-1(请求分配一个资源);

2)如果S≥0,流程继续执行;

如果s < 0表示没有资源,则进程的状态设置为阻塞状态,对应的PCB连接到信号量队列的末尾,处理器放弃等待(直到另一个进程执行V(S)操作)。

2.V操作原语(荷兰等待)V(S):

1) V操作一次,S的值加到1,即S = S+1(释放一个单位资源);

2)如果s > 0,说明有资源,那么进程继续执行;

如果S≤0,信号量队列上第一个PCB对应的进程被释放(阻塞状态改为就绪状态),执行V操作的进程继续执行。

L个进程间简单同步和互斥的实现

1.P和V原语互斥的一般模型:

将互斥体的初始值设置为1。

2.一个简单的P和V原语操作同步的例子。

供应商和用户使用缓冲器的关系如下:

S1缓冲区为空(0表示非空,1表示空),初始值为s 1 = 0;

S2缓冲区是否满(0表示不满意,1表示满),初始值S2 = 0;

3.生产者-消费者问题(操作系统的典型例子)

互斥互斥信号量,初始值1;满缓冲区的数量,初始值为0;空缓冲区的空数量,初始值为n;

4.应用示例

【例1】假设系统中只有一台打印机,三个用户的所有程序在执行时都会使用打印机输出计算结果。让每个用户程序对应一个进程。问:这三个过程之间的制约因素是什么?使用P和V运算写出这些进程使用打印机的算法。

[解决方案]

因为打印机是关键资源,三个进程只能互斥使用这台打印机。设三个进程分别为PA、PB、PC,互斥量初始值为1。执行过程如下:

【例2】判断下列同步问题的算法是否正确?如有错误,请指出原因并改正。

1)设A和B进程* * *使用一个缓冲区Q,其中A向Q写入信息,B从Q读取信息,算法框图如图。

注意:信号量S的初始值是0。

【解决方法】此算法不正确。因为两个进程* * * A和B使用一个缓冲区Q,如果A先运行,并且有足够的信息,那么缓冲区Q中的信息会在后面被冲走,导致信息丢失,B无法从Q中读取完整的信息,修正方法如下:

a和B进程同步使用缓冲区Q,应该设置两个信号量:

Empty表示缓冲区q为空,初始值为1;Full表示缓冲区Q已满,初始值为0。

算法框图如下:

2)设A和B是两个并发进程,它们* * *共享一个关键资源。其运行临界区的算法框图如图所示。

【解决方法】此算法不正确。因为A和B两个进程并发执行,* * *共享一个关键资源,所以A和B应该互斥使用关键资源,即在某一时刻只允许一个进程进入关键资源,没有时序关系。

修正算法:A和B进程要互斥进入临界区,设置一个信号量互斥体,初始值为1。

【例2】有一台计算机有两个I/O通道,分别连接到一台卡片输入机和一台打印机。卡机将一叠卡片一张一张地输入缓冲器B1,处理后移至缓冲器B2,并在打印机上打印。问:

1)系统要设置多少个流程才能完成这个任务?他们的工作是什么?

2)这些过程之间的相互制约是什么?

3)用P和V运算写出这些进程的同步算法。

[解决方案]

1)系统可以设置三个进程来完成这个任务:Read进程负责从卡片输入机读取卡片信息并输入到缓冲区b 1;Get进程负责从buffer B1中取出信息,进行处理,然后将结果发送给buffer B2;打印进程负责从缓冲区B2获取信息,并在打印机上打印输出。

2)操作流程:

读取过程受获取过程的影响。B1缓冲区充满信息后,读取进程无法读取信息,直到get进程取走所有信息。

Get进程受到Read进程和Print进程的约束:Get进程只能在满的时候从B1缓冲区取信息,Get进程只能在空的时候把处理结果送入B2缓冲区;

打印进程受到Get进程的约束,只有在B2缓冲区满了之后,打印进程才能取出信息进行打印输出。

3)信号量的含义和初始值:

B1满-缓冲区B1已满,初始值为0。

B1空-缓冲区B1为空,初始值为0。

B2 full-缓冲区B2已满,初始值为0。

B2 empty-缓冲区B2为空,初始值为0。

4)操作框图如下:

l处理简单的沟通

分类

低级通信机制

高级通信组织

特性

传输的信息量非常有限。

沟通效率低

方便高效地交换大量信息。

app应用

互斥同步机制

* * *享受记忆

信息传递

管道文件