进程同步中的临界资源访问问题?

进程同步中的临界资源访问问题?

书上说:在利用管程(monitor)实现进程同步时,必须设置两个同步操作原语wait和signal.在某进程通过管程请求临界资源而未能满足时,管程便调用wait使该进程等待,并将它排在等待队列上,仅当另一个进程访问完并释放之后,管程又调用signal,唤醒等待队列中的队首进程.


是否所有的阻塞进程都插入到系统统一的等待队列?
如果是,那系统不是每个时间片都要检测队列中所有的线程,看是否有可被激活的线程?
我个人理解不是,好像阻塞的线程是插入到另一个临界资源的等待队列中(比如I/O等待队列)      
当有一个进程在管程里释放一个资源时,系统优先在已经申请资源且正在等待的进程中选择一个让它进入管程并获得有关资源。