信号量实现比较简单,内容比较重要,可以实现多个进程之间的同步;
启动磁盘读以后睡眠,等待磁盘读完由磁盘中断将其唤醒,也是一种同步
进程睡眠实现
1.将自己阻塞;
2.将自己加入阻塞队列中;
3.调用schedule;
进程唤醒机制
1.所有的进程全部被唤醒;
2.让通过schedule()
函数使优先级高的进程执行;
3.高优先级进程使bh->b_lock = 1
;
课后问题
1.这个世界上最隐蔽的队列张什么样子?
2.这个队列是怎么唤醒的?
3.while (lock)
,为什么要使用while?
答:使用while
实现信号量的唤醒,可以使优先级高的进程先开始执行;