操作系统-第二章(2.1.3-2.1.4进程控制与进程通信)

1.进程控制

概念:对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态的转换等等功能。(简单理解:进程控制就是实现进程状态的转换

如何实现进程的控制?

答:用原语实现。

什么是原语?

答:原语是一种特殊的程序,他的执行具有原子性,运行必须是一气呵成,不中断(后面围绕这个展开)。

 

如果不是一起呵成,就会使上面的所处状态与队列状态不匹配。—导致操作系统中的某些关键数据结构信息不统一的情况,这会影响操作系统进行别的管理工作。

如何实现原语的“原子性”?

答:用关中断指令和开中断指令。

注意:正常情况下CPU每执行完一条指令就会例行检查是否有中断信号需要处理,如果有,则会暂停当前的。

这两个指令是特权指令,必须运行在内核态。

->创建原语和引起进程创建的事件。

 

作业:是指放在外层还没有投入内层的。

 ->撤销原语以及引起终止的事件。

 ->进程的阻塞和唤醒

阻塞和唤醒原语必须成对出现

 ->切换原语以及引起进程切换的事件。

当寄存器要改变状态时,将原先执行的指令存储到寄存器中,然后执行当前的指令,当当前的指令执行完之后,在根据PCB恢复原先的寄存器,再执行最开的的指令。

总览

2.进程通信(IPC)

进程通信是指两个进程直接产生数据交互。 

但是进程是配备系统中资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。一个进程不能直接访问另一个进程的地址空间。

故采取下面三种方式,达到进程之间的通信。

->共享存储

过程:

  1. 先将P写数据进入共享存储区
  2. 再是Q进程读共享存储区的数据。

共享又分为:

  • 基于数据结构的共享(灵活性差,速度慢)
  • 基于存储区的共享(灵活性好,速度快)

 基于数据结构的共享:比如共享空间里只能放一个长度为10的数组。这种共享方式速度慢、限制多,是一种低级通信的方式(如下图)。

基于存储区的共享:操作系统在内存中划出一块共享存储区,数据的形式,存放位置都由通信进程控制,而不是操作系统。这种共享方式速度很快,是一种高级通信方式。

->消息传递

概念:进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换。

消息传递分为两类

直接通信方式:消息发送进程要指明接收进程的ID。

间接通信方式:通过“信箱”作为中间实体进行消息传递

 可以多个进程往同一个信箱send信息,也可以多个进程从同一个信箱中receive信息。

->管道通信

总览

 注:管道没有写满,只要不为空就可以读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值