信息量机制
1:进程互斥
2:进程同步
3:前驱
信号量是一个变量,用于记录资源的数量。
在进程访问临界区这个过程中,有三大管家:
一个是处理机管家,为进程服务,使得进程能够进行;
一个是wait原语和signal原语,简称pv操作,他俩是一对管家,当进程想要使用资源时,wait原语申请资源,用于为进程申请资源和释放资源,同时进行关开中断操作和对信号量操作;
一个是block原语,当wait原语管家为进程申请不到资源时,他会带进程排队去,进入阻塞队列。
一·进程互斥
进程访问临界区这一操作只能一个进程访问,别的进程想要访问,必须要等里面的进程访问完之后,才能访问,也就是说一山不容二虎,访问的时候,只能一个一个来。
也就是说完成一件事,必须单独一个进程去进行。
为了保护进程在完成的时候,不被打扰中断其工作,wait和signal管家发挥作用,在获得资源之前,wait管家发挥作用,关闭中断,并且向系统申请资源,在完成工作之后,signal原语发挥作用,开启中断,并且释放资源。
二·进程同步
意思是完成某一件事,需要两个进程共同完成,且两个进程有先后顺序,不能插队,并且当前一个进程的工作完成之后,后面的进程必须跟上去,不可以让其余的进程工作。
当进程并发执行的时候,由于进程具有异步性,会使得不老实,不知道哪个进程会进去工作,工作的步骤随意变换。
所以为了使进程能够按照我们规划的步骤来进行工作,不得已为进程使用pv操作。
若A进程需要先执行两段代码,B进程在A进程执行完两端代码之后,执行自己的的两段代码。
则A进程在执行完两段代码之后,需要执行v操作,使用signal管家,释放资源,开启中断,使得进程可以被切换,切换到B进程,防止继续执行A进程剩余的代码。同时设置同步信号量,初始值为0,执行v操作,使信号量代表的资源+1,释放一个资源。
A进程执行两端代码之前,为了保证A进程两端代码可以优先执行,不可以执行任何pv操作。
B进程在执行自己的代码之前,需要执行p操作,向系统申请资源,关闭中断,同时使信号量减一,申请一个资源。
执行p操作一方面是为了阻止B进程优先执行代码,也是为了A进程执行完之后,B进程能够立刻跟上去。关闭中断,防止B进程被切换。
信息量机制问题
最新推荐文章于 2023-05-28 16:11:26 发布