两个进程在进行互斥操作中的P操作和V操作的物理意义是什么?

如题所述

第1个回答  2006-10-09
进程管理

l 程序顺序执行与并发执行比较

顺序执行
并发执行

程序顺序执行
间断执行,多个程序各自在“走走停停”种进行

程序具有封闭性
程序失去封闭性

独享资源
共享资源

具有可在现性
失去可再现性

有直接和简接的相互制约

l 多道程序设计概念及其优点

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

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

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

l 什么是进程,进程与程序的区别和关系

1. 进程的引入:

由于多道程序的特点,程序具有了并行、制约和动态的特征,就使得原来程序的概念已难以刻划和反映系统中的情况了。

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

3. 进程与程序的主要区别:

1) 程序是永存的,进程是暂时的

2) 程序是静态的观念,进程是动态的观念

3) 进程由三部分组成

程序

数据

进程控制块(描述进程活动情况的数据结构)

4) 进程和程序不是一一对应的

Ø 一个程序可对应多个进程即多个进程可执行同一程序

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

4. 程序与进程的类比

程 序
进 程

唱歌的曲谱或音乐乐器的乐谱
演出或演奏

剧本
演出

菜谱
烹调

5. 进程特征:动态性、并发性、调度性、异步性、结构性

l 进程的基本状态及其转换

1. 进程基本状态:

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

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

3) 阻塞态(Blocked):进程由于等待某一事件不能享用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--使进程睡眠

功能:使进程暂停执行一段时间,其参数单位是秒。

例如

$ sleep 60 将等待60秒后,才重新回到$提示符

3. &--后台命令符

功能:命令行末尾加上&字符,此命令进程将在后台执行。

例如

$ ls –l/usr& 创建一个显示目录命令进程,它在后台执行,即没有前台进程运行时它才得以运行

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

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

例如

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

5. kill--终止进程

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

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

# kill 678 停止PID为678的进程运行

6. nice--设置优先级

功能:是以不同的优先级执行一条命令

例如

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

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

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

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

l 进程的同步与互斥

1. 同步:是进程间共同完成一项任务时直接发生相互作用的关系。

2. 互斥:排它性访问即竞争同一个物理资源而相互制约。

l 什么是临界资源、临界区?

1. 临界资源:一次仅允许一个进程使用的资源。

2. 临界区:在每个进程中访问临界资源的那段程序。

3. 互斥进入临界区的准则:

1) 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

2) 任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。

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

4) 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

l 信号量

1. 信号量定义:

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

2. 信号量的物理意义:

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

1) 信号量的值

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

2) 信号量初值为非负的整数变量,代表资源数。

3) 信号量值可变,但仅能由P、V操作来改变。

l P,V操作原语

1. P操作原语P(S) :

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原语实现互斥的一般模型:

设互斥信号量mutex初值为1

2. 用P、V原语操作实现简单同步的例子

供者和用者对缓冲区的使用关系如下图:

S1缓冲区是否空(0表示不空,1表示空),初值S1=0;

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

3. 生产者---消费者问题(OS典型例子)

mutex互斥信号量,初值为1;full满缓冲区数,初值为0;empty空缓冲区数,初值为N;

4. 应用举例

[例1] 设系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?使用P、V操作写出这些进程使用打印机的算法。

[解]

由于打印机是一种临界资源,故三个进程只能互斥使用这台打印机。设三个进程分别为PA、PB和PC,互斥信号量mutex初值为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二进程应互斥进入临界区,设定一信号量mutex,初值为1。

[例2] 设有一台计算机,有两个I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上印出,问:

1) 系统要设几个进程来完成这个任务?各自的工作是什么?

2) 这些进程间有什么样的相互制约关系?

3) 用P、V操作写出这些进程的同步算法。

[解]

1) 系统可设三个进程来完成该任务:Read进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;Get进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;Print进程负责从缓冲区B2中取出信息,并在打印机上打印输出。

2) 操作过程:

? Read进程受Get进程的影响,B1缓冲区中放满信息后Read进程要等待get进程将其中信息全部取走后才能读入信息;

? Get进程受Read进程和Print进程的约束:B1缓冲区中信息放满后,Get进程才可从中取走信息,且B2缓冲区信息被取空后Get进程才能将加工结果送入其中;

? Print进程受Get进程的约束,B2缓冲区中信息放满后Print进程方可取出信息进行打印输出。

3) 信号量的含义及初值:

? B1full——缓冲区B1满,初值为0

? B1empty——缓冲区B1空,初值为0

? B2full——缓冲区B2满,初值为0

? B2empty——缓冲区B2空,初值为0

4) 操作框图如下:

l 进程简单通信

分类
低级通信机构
高级通信机构

特点
传递信息量非常有限
通信的效率低
方便高效地交换大量信息

应用
互斥和同步机构
共享存储器
消息传递
管道文件

参考资料:http://www.ahtvu.ah.cn/jxc1/zhykch/5103/kc2.htm

第2个回答  2012-06-14
P:申请资源,即系统资源减1;
V:释放资源,即系统资源加1;

两个进程在进行互斥操作中的P操作和V操作的物理意义是什么?
1. 同步:是进程间共同完成一项任务时直接发生相互作用的关系。 2. 互斥:排它性访问即竞争同一个物理资源而相互制约。 l 什么是临界资源、临界区? 1. 临界资源:一次仅允许一个进程使用的资源。 2. 临界区:在每个进程中访问临界资源的那段程序。 3. 互斥进入临界区的准则: 1) 如果有若干进程要求进入空闲的临...

计算机操作系统中P操作的物理含义什么
②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信

计算机操作系统中P操作的物理含义什么?
PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信

对于p、v 操作的理解
p、v 操作是基于结构型信号量的进程互斥,同步的通用原子操作 如果只是单纯的用一个整型信号量来解决进程互斥,同步问题,那么如果信号量小于0,则会一直循环占用 cpu 资源,出现“忙等”现象,利用结构型信号量,可用将进程阻塞并放入队列,解放 cpu 资源,提高 cpu 利用率 因为信号量表示可用资源的数量...

为什么在操作系统中引入信号量及P、V操作?
P和V操作确保了在对信号量进行操作时不会被其他进程中断,从而保证了操作的原子性。这些操作通常用于实现进程的互斥,确保临界区只能被一个进程访问。此外,它们也可用于实现进程同步,确保多个进程按照特定的顺序执行,以及进程间通信,允许进程间交换信息。P和V操作的实现通常涉及公共内存和系统调用。虽然...

p.v.PV操作的含义
PV操作是进程间通信的一种基本机制,它由两个核心操作原语——P操作和V操作组成。P操作(P(S))的具体步骤如下:尝试减小信号量S的值,即S = S - 1。如果S的值大于或等于0,进程继续执行;否则,该进程进入等待状态,排队等待。V操作(V(S))则负责增加信号量的值,即S = S + 1。执行过程...

在操作系统中,P操作和V操作各自的动作是如何定义的?
V操作顺序执行下述两个动作:①S值加1,即S=S+1;②如果S>0,则该进程继续运行;如果S≤0,则释放信号量队列上的第一个PCB(即信号量指量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。1.PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的...

为什么在操作系统中引入信号量及P、V操作?
在操作系统理论中有一个非常重要的概念叫做P,V原语。在我们研究进程间的互斥的时候经常会引入这个概念,将P,V操作方法与加锁的方法相比较,来解决进程间的互斥问题。实际上,他的应用范围很广,他不但可以解决进程管理当中的互斥问题,而且我们还可以利用此方法解决进程同步与进程通信的问题。[一]P,V...

pv操作系统PV原理
V操作: 增加信号量,当信号量大于等于0时,唤醒等待的进程,使其继续执行。例如,步行者过桥后,信号量加1,唤醒骑车者继续前行。PV原则:互斥信号量(如Sn)的P和V操作在单个进程中执行,确保资源的独占性。同步信号量(如S1, S2)在不同进程间交替出现,如顾客和收银员。P操作是使用资源,V操作是...

为什么互斥信号量要成对出现?
互斥信号量要成对出现:如两个进程都反过来操作,先互斥了,但是没有得到临界资源。当一个进程1运行时,使用资源,进行P操作,即对信号量值减1,也就是资源数少了1个。这时信号量值为0。系统中规定当信号量值为0时,必须等待,直到信号量值不为零才能继续操作。这时如果进程2想要运行,那么也必须...

相似回答