操作系统进程编写

只有一个盘子,盘子里只能放一个水果.父亲只往里放苹果,母亲只往里放橘子,儿子只吃苹果,女儿只吃橘子,请写出这个进程

解:在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下:

int S=1;

int Sa=0;

int So=0;

main()

{

cobegin

father(); /*父亲进程*/

son(); /*儿子进程*/

daughter(); /*女儿进程*/

coend

}

father()

{

while(1)

{

P(S);

将水果放入盘中;

if(放入的是桔子)V(So);

else V(Sa);

}

}

son()

{

while(1)

{

P(So);

从盘中取出桔子;

V(S);

吃桔子;

}

}

daughter()

{

while(1)

{

P(Sa);

从盘中取出苹果;

V(S);

吃苹果;

}

}

思考题:

四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:

(1)应定义的信号量及初值: 。

(2)在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:

A() B() C() D()

{ { { {

[1]; [3]; [5]; [7];

read F; read F; read F; read F;

[2]; [4]; [6]; [8];

} } } }

思考题解答:

(1)定义二个信号量S1、S2,初值均为1,即:S1=1,S2=1。其中进程A和C使用信号量S1,进程B和D使用信号量S2。

(2)从[1]到[8]分别为:P(S1) V(S1) P(S2) V(S2) P(S1) V(S1) P(S2) V(S2)
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-12
没看懂。

操作系统创建一个新进程的主要步骤是什么?
主要步骤分为4步:1、申请空白PCB(过程控制块)。2、为新工序分配资源。3、初始化PCB。4、将新进程插入就绪队列。其次分为两个进程:1、动态 动态是过程最基本的特征。它可以通过创建生成,通过调度执行,由于缺少资源而挂起,以及由于取消而死亡,程序只是一组有序的指令,一个静态的实体。2、并发性...

Windows核心编程(二)进程
在Windows操作系统中,进程作为资源拥有和管理的最小单位,是程序执行的基础。与Linux系统相比,Windows进程的定义和管理有其独特之处。进程中的线程作为CPU调度的基本单位,与Linux系统中进程和线程的界限更为分明。在Windows API中,进程和线程的管理函数并不相同,且线程是内核对象,由Windows系统负责管理。

操作系统--进程管理
1.进程时资源分配和拥有的基本单位;线程自己不拥有资源,但可以访问所属进程所拥有的资源。 2.在没有引入线程的操作系统中进程是调度的基本单位;引入线程后,线程是调度的基本单位。 3.进程切换开销较大;线程切换开销很小。 4.进程的地址空间之间互相独立;同一进程的各线程间共享进程的地址...

【操作系统】参考图中代码,给出问题程序源码的运行结果并分析运行结果...
运行结果:进程创建及分析:\/*执行while((p1=fork() )==-1);后,父进程创建了第一个子进程,子进程复制了父进程的资源,成为独立于父进程的一个进程,并且第一个子进程的fork()返回值为0,父进程的fork()返回值为刚创建的子进程号4。*\/ \/*执行while((p2=fork() )==-1);后,子进程再创...

什么是进程?操作系统中为什么要引入进程
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在操作系统中引入进程,是为了实现多个程序的并发执行。传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。这是因为并发执行的程序(即进程)是“停停...

windows系统上创建一个进程用了什么系统调用
当某个应用程序调用一个创建进程的函数比如CreateProcess或者用户执行某一个程序(其实windows下用户执行一般普通程序是由explorer.exe调用CreateProcess来完成),操作系统把这个过程分成以下步骤来完成: 1.打开将要在该进程中执行的映像文件。 2.创建Windows执行体进程对象。 3.创建初始线程(栈、堆执行环...

系统进程的进程举例
(系统服务)Explorer.exeWindows资源管理器internat.exe托盘区的拼音图标附加进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):mstask.exe允许程序在指定时间运行。(系统服务)regsvc.exe允许远程注册表操作。(系统服务)winmgmt.exe提供系统管理信息(系统服务)。inetinfo.exe通过 Internet ...

基本的系统进程有哪些?进程文件,名称,描述.
分类: 电脑\/网络 >> 操作系统\/系统故障 解析:进程文件: [system process] or [system process]进程名称: Windows内存处理系统进程 描述: Windows页面内存管理进程,拥有0级优先。是否为系统进程: 是 alg.exe 进程文件: alg or alg.exe 进程名称: 应用层网关服务 描述: 这是一个应用层网关服务用于...

一般操作系统中有什么进程啊???必须有的进程
svchost.exe 包含很多系统服务svchost.exeSPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)explorer.exe 资源管理器internat.exe 托盘区的拼音图标附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):mstask.exe 允许程序在指定时间运行。(系统服务)regsvc.exe 允许远程注册表操作。

用java实现一个模拟操作系统内核运行的程序。(1)进程控制:其中包括进程...
在编写Java程序时,有时候需要在Java程序中执行另外一个程序。 1、启动程序Java提供了两种方法用来启动其它程序: (1)使用Runtime的exec()方法 (2)使用ProcessBuilder的start()方法 不管在哪种操作系统下,程序具有基本类似的一些属性。一个程序启动后就程序操作系统的一个进程,进程在执行的时候有自己的环境变量、有自己...

相似回答