计算机操作系统学习之进程的状态和转换、进程控制和进程通信

一.进程的状态

  • 运行态:占有CPU,并在CPU上运行
  • 就绪态:已经具备了运行的条件,一旦获得处理机,即可立即进入运行态
  • 阻塞态:因等待某一事件而暂时不能运行
  • 创建态:进程正在被创建,操作系统为进程分配资源,初始化PCB
  • 终止态:进程正在从系统中撤销,系统正在回收资源,撤销PCB

二.进程状态的转换

在这里插入图片描述

  • 就绪态—>运行态:进程被调度
  • 运行态—>就绪态:时间片到,或者CPU被其他优先级更高的进程抢占
  • 运行态—>阻塞态:等待资源分配或等待某事件发生(主动行为)
  • 阻塞态—>运行态:等待的资源到位或等待的事件发生(被动行为)
  • 创建态—>就绪态:系统完成创建进程的相关工作
  • 运行态—>终止态:进程运行结束或运行过程中遇到了不可修复的错误

三.进程控制

  • 用原语实现进程控制,原语的特点是一气呵成不中断
  • 原语采用关中断开中断指令实现,这两个指令都是特权指令,要在核心态下执行。

在这里插入图片描述

四.进程控制相关的原语

无论哪个进程控制原语,要做的无非三类事情:

  • 1.更新PCD中的信息
    (1)一定会修改进程状态标志
    (2)剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    (3)某进程开始运行前必然要恢复其运行环境

  • 2.将PCB插入合适的队列

  • 3.分配/回收资源

创建原语
在这里插入图片描述

撤销原语
在这里插入图片描述
阻塞和唤醒原语

  • 阻塞原语和唤醒原语必须成对使用

在这里插入图片描述
进程切换原语

在这里插入图片描述

五.进程通信

1.概念

  • 进程是分配系统资源的单位,因此各进程拥有的内存地址空间相互独立
  • 而为了保证安全,一个进程不能直接访问另一个进程的地址空间
  • 但是进程之间的信息交换又是必须进行的,而为了保证进程间的安全通信,操作系统提供了一些方法:共享存储,消息传递,管道通信

2.共享存储

即设置一个共享空间来进行信息交换

在这里插入图片描述

  • 两个进程对共享空间的访问必须是互斥的,某一时间段内只能有一个进程访问该共享空间
  • 基于数据结构的共享:
    该共享空间只能存放某一特定数据结构的数据,比如只能存放长度为10的数组。这种共享方式速度慢,限制多,是一种低级通信方式。
  • 基于存储区的共享:
    在内存种画出一块共享存储区,数据的形式,存放位置都有进程决定,而不是操作系统。这种共享方式速度快,限制少,是一种高级通信方式。

3.管道通信

在这里插入图片描述

  • “管道”就是一个连接读写进程的共享文件,其实就是在内存中开辟的一个大小固定的缓存区
  • 管道只能采用半双工通信(同一时间段内只能实现单向传输),如果要实现双向传输,需要设置两个管道
  • 各进程依然要互斥的访问管道
  • 数据以字符流的形式写入管道,当管道写满时,写进程的write()系统调用被阻塞,等待读进程将数据取走。当读进程将数据全部取走以后,管道变空,此时读进程的read()系统调用被阻塞。
  • 如果没写满,就不允许读。如果没取空,就不允许写。
  • 数据一旦被读出,就从管道中抛弃,这就意味着读进程只能有一个,否则可能会有数据读错的情况。

4.消息传递

  • 进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的发送/接收消息两个原语实现信息交换。

在这里插入图片描述

  • 直接通信方式:消息直接挂到接收进程消息缓存队列
    进程一通过发送原语将消息挂到进程二的消息缓存队列上去,进程二通过接收原语依次读取消息缓存队列上的消息。
    在这里插入图片描述

  • 间接通信方式:消息要先发送到中间实体(信箱)中
    进程一先通过发送原语将消息发送到信箱中去,进程二再通过接收原语从信箱中取走消息
    在这里插入图片描述

六.小结

  • 进程控制通过原语实现
  • 剥夺运行进程的CPU时,一定要保存当前的运行环境
  • 某个进程开始运行前一定要恢复其运行环境
  • PCB要根据此时的状态放入合适的队列
  • 进程通信时一定保证信息交换的正确性,一般要求进程互斥的访问共享空间或管道。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值