今天,接着上一篇文章的介绍,还是来说说操作系统中最重要的进程概念。

在许多系统中,为了系统和用户观察和分析进程的需要,还引入了挂起操作。不论这个进程是处于执行状态、就绪状态,它都会停止所有操作。而与挂起操作相对应的,就是激活操作。

互斥是什么意思_互斥_互斥锁和自旋锁的区别

引入挂起操作有几点重要的原因:终端用户的需要,暂停程序的运行,方便用户研究观察和修改。父进程请求,用于考察修改或协调子进程。负荷调节的需要,减轻系统工作压力,暂停不重要的进程。操作系统的需要,检查运行的资源使用情况。

有挂起操作暂停进程,自然就有激活操作激活进程。然后检查现行状态,还有比较优先级,是将其改为就绪还是阻塞,或者让处理器对其执行。当然,进程的异步性导致的系统内部的混乱,仍然没有得到解决,所以,建立了进程同步机制。

互斥锁和自旋锁的区别_互斥是什么意思_互斥

进程同步,由于进程执行时的资源共享和进程合作。使得一个系统中存在间接相互制约和直接相互制约,两种形式的制约关系。前者通过系统内的共享资源,后者则主要是进程间的合作。

此处划重点!!!

临界资源,一次仅允许一个进程使用,进程之间采用互斥方式。然后,小编来介绍一下著名的生产者和消费者问题。一群生产者进程在生产产品,再将这些产品提供给消费者进程去消费。两者中间设置具有多个缓冲区的缓冲池,使得两者之间能够并发执行。生产者不能将产品放入装满的缓冲区,消费者不能从空缓冲区取走产品,形成两者的同步关系。

互斥_互斥是什么意思_互斥锁和自旋锁的区别

临界区,多个进程互斥的对临界资源访问,每个进程中访问临界资源的代码称为临界区。而每个进程都要先检查要访问的临界资源,判断是否已被访问,若资源空闲,则进入临界区对资源进行访问,并设置资源正被访问的标志。当然,同步机制也是有相应的规则的。

(1) 空闲让进,顾名思义,空闲资源允许请求进入临界区的进程利用资源。

(2) 忙则等待,已有资源进入临界区时,其余进程则需要等待,保证临界资源的互斥访问。

(3) 有限等待,对请求访问的进程,应保证它们在有限时间内进入,避免“死等”。

(4) 让权等待,当进程由于种种原因,无法进入自己的临界区时,需释放处理机。

互斥是什么意思_互斥_互斥锁和自旋锁的区别

以上就是关于进程同步机制的一些概念了,那我们该如何实现呢。有一种进程同步工具——信号量机制,小编在这就简单介绍几种。

整型信号量,用一个表示资源数量的整型S,中间又通过wait(S)和(S)操作进行访问。

记录型信号量,由于整型信号量并未遵守“让权等待”准则。记录型信号量机制则完全相反,不过又会出现多个进程同时访问一个临界资源,为此还增加了一个进程链表指针list,用于链接上述的所有等待进程。

互斥是什么意思_互斥_互斥锁和自旋锁的区别

AND型信号量,前面讲的都是多个进程共享一个资源。但是某些时候,需要一个进程同时获得两个以上的资源。为了避免死锁,往往在进程的运行过程中,一次性将所需全部资源给它,缺少一个,别的资源也不给它,使用完成后一起释放。

那么,今天关于进程的介绍就到这里了,希望大家多多支持,关注我,点个赞呗。

互斥_互斥是什么意思_互斥锁和自旋锁的区别

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666