网站建设模板免费下载,制作网站公司图片,上海网站建设网页制作邢台,建设银行员工网站题目#xff1a;
1.有8个程序段#xff0c;他们之间的前驱关系如下#xff0c;试用信号量实现这些程序段之间的同步 2.简述进程同步机制的基本原则。
答#xff1a;在多道程序环境下#xff0c;当程序并发执行时#xff0c;由于资源共享和进程合作#xff0c;使同处于…题目
1.有8个程序段他们之间的前驱关系如下试用信号量实现这些程序段之间的同步 2.简述进程同步机制的基本原则。
答在多道程序环境下当程序并发执行时由于资源共享和进程合作使同处于一个系统中的进程之间可能存在着以下两种形式的制约关系1间接相互制约关系同处于一个系统中的进程通常都共享着某种资源。2直接相互制约关系这种制约主要源于进程间的合作。所以使用系统中的临界资源时诸进程应采取互斥方式实现对资源的共享。为实现进程互斥的进入自己的临界区可用软件方法但更多的是在系统中设置专门的同步机制来协调各进程间的运行。 所有的同步机制都应遵循以下四条准则 1空闲让进因为当无进程处于临界区时表明临界资源处于空闲状态应允许一个请求进入临界区的进程立即进入自己的临界区以有效地利用临界资源。 2忙则等待因为当已有进程进入临界区时表明临界资源正在被访问因而其它试图进入临界区的进程必须等待以保证对临界资源的互斥访问。 3有限等待因为对要求访问的临界资源的进程应保证在有限时间内能进入自己的临界区以免陷入“死等”状态。 4让权等待因为当进程不能进入自己的临界区时应立即释放处理机以免进程陷入“忙等”状态。
3.如何保证诸进程互斥地访问临界资源 4.记录型信号量的实现
答记录型信号量是不存在“忙等”现象的进程同步机制。除了需要一个用于代表资源数目的整型变量value外再增加一个进程链表L用于链接所有等待该资源的进程记录型信号量是由于釆用了记录型的数据结构得名。记录型信号量可描述为
typedef struct{int value;struct process *L;
} semaphore;相应的wait(S)和signal(S)的操作如下
void wait (semaphore S) { //相当于申请资源S.value--;if(S.value0) {add this process to S.L;block(S.L);}
}wait操作S.value–表示进程请求一个该类资源当S.value0时表示该类资源已分配完毕因此进程应调用block原语进行自我阻塞放弃处理机并插入到该类资源的等待队列S.L中可见该机制遵循了“让权等待”的准则。
void signal (semaphore S) { //相当于释放资源S.value;if(S.value0){remove a process P from S.L;wakeup(P);}
}signal操作表示进程释放一个资源使系统中可供分配的该类资源数增1故S.value。若加1后仍是S.value0则表示在S.L中仍有等待该资源的进程被阻塞故还应调用wakeup 原语将S.L中的第一个等待进程唤醒。
5.DNA型信号量的实现