进程的阻塞与唤醒 挂起与激活


进程的阻塞与唤醒:

1. 引起阻塞与唤醒的事件

  1)向系统中请求共享资源失败      当无足够的资源分配时,获取资源的线程会进行阻塞,加入到阻塞队列中;当有资源后,被阻塞的线程会被唤醒,加入到就绪队列中。

  2)等待某种操作完成    

  3)新数据尚未到达     比如生产者消费者模型,只要产品数量为0,那么消费者就会阻塞,得到产品数量大于0,进行唤醒

  4)等待新任务到达

2. 进程阻塞过程

  当要进行阻塞的事件发生时,进程通过调用阻塞原语 block 将自己阻塞,所以,阻塞是一个主动的过程,将自己进行阻塞。 进程控制块的状态由 执行 改为阻塞,并将PCB插入到阻塞队列。

3. 进程唤醒过程

  当要进行唤醒的事件发生时,进程调用唤醒原语 wakeup ,将等待该事件的线程唤醒,唤醒是通过别的进程来进行唤醒的!!将阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的状态由阻塞改为 就绪,然后 将该PCB插入到就绪队列中。

进程的挂起与激活:

  (为什么要有挂起与激活???  与进程的阻塞和唤醒有关系吗??)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM