两个进程间互斥运算中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应用
互斥同步机制
* * *享受记忆
信息传递
管道文件