父进程才会被唤醒。就是子进程结束了之后这个信号会传递给这个 wait 函数,那么 wait 函
数一接触一接收到这个信号之后,它就知道子进程运行结束,父进程就被唤醒了。所以说这
个进程封锁等待这儿涉及的主要就是那个 wait 函数,大家知道它是什么样的含义。
wait()由父进程调用,以保证子进程运行结束之后才运行父进程。
例题:
Page104--page105 3.14:A:0 B:2603 C:2603 D:2600、3.15: X:0 -1 -4 -9 -16 Y:0 1 2 3 4;
PPT p35--p42
第 4 点 进程通信
进程通信的几种方式这个大家都简单的记一下,这个我们也都讲过这个软中断呀,还有消
息传递这个消息,就是那个 send receive message 这个消息通信还有共享内存通过共享内存
的这种方式去进行通信。另外呢还有管道通过管道,就是那个 pipe 这个大家在实验课上可
能也做过哈,就是那个 pipe 它也是一种这个进程通信的这个方式,那么在我们理论课程上
呢可能就会考察基本通讯有哪几种方式,然后可能会对它进行一个简单的描述哈,这个大
家注意看一下。
两种基本模型:消息传递和共享内存
消息传递:交换较少量的数据;在分布式系统上常用;内核开销大(因为经常调用系统
调用);比共享内存量小、速度慢;(共享内存只在开辟共享内存时调用系统调用)
共享内存解决生产者——消费者问题
生产者进程生成消息以供消费者进程消费;缓冲区是生产者和消费者进程空间共享内存
区;缓冲区分为无界缓冲区和有界缓冲区:无界缓冲区不限制缓冲区大小,生产者进程无需
等待;有界缓冲区若满则生产者进程需等待。常用有界缓冲区。生产者进程和消费者进程中
的 buffer 在各自的进程空间里 OS 必须提供内存共享机制,才能使两个进程访问同一段数据。
Page86
消息传递:page87
直接通信需要用原语:send()、receive()
send(P,message):向进程 P 发送 message
receive(Q,message):从进程 Q 接收 message
普通管道(pipe):单向的;有亲缘关系的进程之间才能建立;只能一个进程写,另一个进
程读;读数据是一次性操作;page98
命名管道(FIFO):任何两个进程之间可用;提供了一个路径名与之关联,以 FIFO 文件的
形式存储于文件。Page100
第 5 部分 进程的同步和互斥
那这一部分考察的内容会比较多,等会儿我们在后面给大家列出来,这部分会考察哪个哈,
另外就是这个死锁,这个死锁也是一个重点。
重点的部分