运动网站建设主题,门户网站开发软件,广东seo网站推广,牧羊人wordpress博客现代操作系统采用多道程序设计机制#xff0c;多个进程可以并发执行#xff0c;CPU在进程之间来回切换#xff0c;共享某些资源#xff0c;提高了资源的利用率#xff0c;但这也使得处理并发执行的多个进程之间的冲突和相互制约关系成为了一道难题。如果对并发进程的调度不…现代操作系统采用多道程序设计机制多个进程可以并发执行CPU在进程之间来回切换共享某些资源提高了资源的利用率但这也使得处理并发执行的多个进程之间的冲突和相互制约关系成为了一道难题。如果对并发进程的调度不当则可能会出现运行结果与切换时间有关的情况令结果不可再现影响系统的效率和正确性严重时还会使系统直接崩溃。 多进程的系统中避免不了进程间的相互关系。进程间的关系主要有两种同步与互斥。 一、同步 同步关系也成为直接制约关系。指系统中多个进程中发生的事件存在某种时序关系需要相互合作共同完成一项任务。这些线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。 一个很典型的例子就是公共汽车上司机和售票员直接的关系如下所示 再例如输入进程A通过单缓冲向进程B提供数据。当该缓冲区空时进程B不能获得所需数据而阻塞一旦进程A将数据送入缓冲区进程B被唤醒。反之当缓冲区满时进程A被阻塞仅当进程B取走缓冲数据时才唤醒进程A。 二、互斥 互斥关系也称为间接制约关系。由于各进程要求共享资源而有些资源需要互斥使用因此各进程间竞争使用这些资源进程的这种关系为进程的互斥。 一个很典型的例子就是系统的不同的进程同时要求使用打印机如下图所示。 三、同步和互斥的特点比较 四、临界资源和临界区 1临界资源 一次只能被一个进程所占用的资源就是所谓的临界资源。比如打印机。 2临界区 访问临界资源的那段代码称为临界区。多个进程的临界区成为相关临界区。 为了保证临界资源的正确使用可以把临界资源的访问过程分成四个部分 ①进入区。为了进入临界区使用临界资源在进入区要检查可否进入临界区如果可以进入临界区则应设置正在访问临界区的标志以阻止其他进程同时进入临界区。 ②临界区。进程中访问临界资源的那段代码又称临界段。 ③退出区。将正在访问临界区的标志清除。 ④剩余区。代码中的其余部分。 使用临界区时必须遵守的规则 ①空闲让进临界资源空闲时一定要让进程进入不发生“互斥礼让”行为。 ②忙则等待临界资源正在使用时外面的进程等待。 ③有限等待进程等待进入临界区的时间是有限的不会发生“饿死”的情况。 ④让权等待进程等待进入临界区是应该放弃CPU的使用。 参考资料 http://www.eygle.com/digest/2004/12/osprocess_lock_latchs_emaphores.html http://c.biancheng.net/cpp/html/2596.html http://blog.jobbole.com/86709/ http://www.cnblogs.com/CareySon/archive/2012/04/14/Process-SynAndmutex.html