zoukankan      html  css  js  c++  java
  • 什么是进程阻塞

    ①什么是进程阻塞

    正在运行的进程由于提出系统服务请求(如I/O操作),但因为某种原因未得到操作系统的立即响应,或者需要从其他合作进程获得的数据尚未到达等原因,该进程只能调用阻塞原语把自己阻塞,等待相应的事件出现后才被唤醒。

    ②阻塞状态

    正在进行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,我们把这种暂停状态叫阻塞进程阻塞,有时也成为等待状态或封锁状态。通常这种处于阻塞状态的进程也排成一个队列。有的系统则根据阻塞原因的不同而处于阻塞状态进程排成多个队列。

    ③进程阻塞的典型事件

    进程阻塞的典型事件有:生产者/消费者问题,理发店问题
     

    生产者/消费者问题

    生产者/消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem)通常可描述为有一个或多个生产者产生某种类型的数据(记录、字符),并放置在缓冲区中,有一个消费者从缓冲区中取数据,每次取一项;系统保证避免对缓冲区的重复操作,也就是说,在任何时候只有一个代理(生产者或消费者)可以访问缓冲区。生产者的是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据,否则会造成阻塞。

     

    进程阻塞理发店问题

    如果理发店中顾客数已满,新来的就不能再进入。顾客一旦进入理发店,可以坐在沙发上等待,如果沙发已座满就站着。当一位理发师空闲时,在沙发上坐的时间最久的顾客得到服务,并且,如果还有顾客站着,进入理发店站的时间最久的顾客就可以坐在沙发上。当一位顾客理发结束后,任何理发师都可以接受付款,但由于只有一台收银机,因此一次只能有一位顾客付款。理发店人满后的这种状态就是进程阻塞状态。
     
     
     
     
     
     
  • 相关阅读:
    Flash P2P 对象复制详解[转]
    解决flashbuilder控制台无输出一例
    评论:工程师们,不要想一辈子靠技术混饭吃[转]
    flashdevelop使用svn
    actionscript中this和super的指向问题
    使用Apparat框架优化你的Flash[转]
    robotlegs【转】
    Flash Player和Adobe AIR内部的垃圾回收机制[转]
    away3d4.0 基础demo一则
    使用JDBC进行批处理
  • 原文地址:https://www.cnblogs.com/baxianhua/p/9284973.html
Copyright © 2011-2022 走看看