操作系统课件_04-1进程及进程管理.ppt

操作系统课件_04-1进程及进程管理

* * #includestdio.h #include sys/types.h #include unistd.h #include sys/wait.h #include stdlib.h int main(void) { pid_t p1; while((p1=fork())==-1); if(p10) { wait(0); //父进程等待子进程终止 putchar(A); } else { putchar(B); exit(0); } } 源程序编译连接并多次运行后的结果都是子 进程先输出B父进程后输出A,说明父进程等 待子进程的同步关系成立。 五. 进程唤醒 1. 进程唤醒原语的形式: 当处于等待状态的进程所期待的事件来到时,由发现者进程使用唤醒原语叫唤醒它。 wakeup(chan) 入口参数chan:进程等待的原因 2. 进程唤醒原语的功能: 当进程等待的事件发生时,唤醒等待该事件的所有进程或等待该事件的首进程。 * 调用进程唤醒操作一般在中断处理、进程通信等过程中。 例如,打印机完成中断处理程序, 在完成了打印完成的操作后,就去检查等待打印机的队列,若不为空,则调用进程唤醒操作,唤醒一个(或多个)等待打印机的进程。 算法:wakeup 输入:chan:等待的事件(阻塞 原因) 输出:

文档评论(0)

1亿VIP精品文档

相关文档