操作系统自学(五)进程

在这里插入图片描述

进程

定义:程序段,数据段,PCB但部分组成了进程实体。一般情况下,我们把进程实体就简称为进程
PCB是进程存在的唯一标志!
从不同的角度看 进程有不同的定义
1.进程是程序的一次执行过程
2.进程是一个程序以及其数据在处理机上顺序执行所发生的活动
3.进程是具有独立功能的程序在数据集合上的运行的过程,他是系统进行资源分配和调度的一个独立单位
注意动态性

严格来说进程实体和进程并不一样,进程实体是静态的,进车仓是动态的
但是除非题目严格考察二者区别 否则我们就可以说进程有程序段,数据段,PCB三部分组成

PCB

操作系统通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息
在这里插入图片描述

数据段

程序运行使用,产生的运算数据 如全局变量,局部变量等就存放在数据段中

进程的组织

在一个系统中通常有成百上千个PCB,为了对他们能够加以有效的管理,应该用适当的方式把这些PCB组织起来
注意进程的组成讨论是一个进程内部有哪些部分构成的问题,二进程的组织讨论的是多个进程之间的组织方式问题
在这里插入图片描述

进程的特征

动态性 进程是程序的一个执行过程,是动态的产生,变化,消亡的
并发性 内存中有多个进程实体,各进程可并发进行
独立性 进程可以独立运行,独立获得资源,独立接收调度的基本单位
异步性 各进程按各自独立的,不可预知的速度向前推进,操作系统更要提供“进程同步机制”来解决这个问题
可能导致并发程序的不确定性 之后会进行专门介绍
**结构性 ** 每个进程都会配置PCB 结构上看 进程有PCB 程序段,数据段组成

进程的状态

从上边我们得知进程是程序的一次执行,在这个执行过程中,有事进程正被CPU处理,有时有需要等待CPU的服务,课件进程的状态是由各种变化的,为了方便对各个进程的管理,操作系统需要将进程合理的划分几种状态
运行态 就绪态 阻塞态
在这里插入图片描述
除了上边三种状态其实还有两种
创建态 终止态

各种状态之间的转换

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

进程控制

在这里插入图片描述
进程控制:实现进程状态之间的转换

使用原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成
这种不可中断的操作叫做原子操作
原语采用**“关中断指令”“开中断指令”实现
原语也是运行在
核心态**

开关中断指令权限非常大,必然是只允许在核心态下执行的** **
1.更新PCB中的信息
2.将PCB插入合适的队列
3.分配/回收资源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建原语
实现一个进程从转化到创建态再到就绪态
撤销原语
实现一个进程从 就绪态/阻塞态/运行态转化到终止态再到

阻塞原语 唤醒原语成对使用

切换原语
运行态转换到阻塞态/就绪态转换到运行态

进程通信

在这里插入图片描述
进程之间的信息交换和传传,进程拥有的内存地址空间相互独立
进程是分配系统资源的单位
为了保证安全,一个进程不能直接访问另一个进程的地址空间
但是为了进程之间的信息交换,操作系统提供了一些方法
共享存储 消息传递 管道通信

共享存储

两个进程对共享空间的访问必须是互斥的(互斥访问通过操作系统提供的工具实现)
操作系统只负责提供共享空间的互斥工具(P,V操作)

举一个不恰当的例子
假如两个毒贩在交易,他们地点约在了一家酒吧的厕所隔间里
只能等毒贩A进去放下毒资
然后A出来毒贩B再进去拿走毒资 留下毒品
这样就可以理解成他们完成了进程的通信

基于数据结构

在共享空间里只能放一个长度为10的数组,这种共享方式速度慢,限制多,是一种低级的通信方式

基于存储区

在内存中划出一块共享存储区 ,数据的形式,存放的位置都有进程控制,而不是操作系统,相比之下这种方式更快,高级通信方式

管道通信

1.管道只能采用半双工通信,某一时间段只能单向的传输,如果想要实现双向同时通信,需要设置两个管道
2.各进程之间要互斥的访问管道
3.数据以字符流的形式写入管道,当管道写满的时候,写进程的write()系统调用将被阻塞,等待读进程将数据取走,
当读进程把数据全部取走之后,管道边控,此时读进程的read()系统调用将被阻塞。

4.如果没有写满 不允许读,如果没有读空,就不允许写
5.数据一旦被读出,就从管道中被抛弃,这就意味着读进程最多只能有一个,否则可能会有读错数据的情况

消息传递

进程间的数据交换以格式化的消息为单位。进程通过操作系统的发送消息/接收消息这两个原语进行数据交换
直接通信方式消息直接挂在接收进程的消息缓冲队列上
间接通信方式消息先发送到中间实体找那个,因此也叫“信箱通信方式”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值