进程的状态
- 运行态(Running):占有CPU,并在CPU上运行
- 就绪态(Ready):已经具备运行条件,但没有空闲CPU,暂时不能运行
- 阻塞态(Waiting):因等待某一事件而暂时不能运行
- 创建态(New):进程正在被创建,操作系统为进程分配资源、初始化PCB
- 终止态(Terminated):进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB
进程的转换
![在这里插入图片描述](https://img-blog.csdnimg.cn/5ef390142b464113b87943250a644994.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16)
进程控制
-
功能:实现各种进程之间的转换 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9c97189ecd9746f390f03abcf331d0d1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16) -
进程控制是通过原语实现的。原语的特点是执行期间不允许中断,只能一气呵成。这种不可被中断的操作就是原子操作。 -
原语采用"关中断指令"和"开中断指令"实现 -
![在这里插入图片描述](https://img-blog.csdnimg.cn/f558b9585cdb4018aef671a7bbd74595.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16) -
关/开中断指令的权限非常大,必然只允许在核心态下执行的特权指令,在中间的也原语运行在核心态 -
原语的功能: 1、更新PCB中的信息(修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境) 2、将PCB插入合适的队列 3、分配/回收资源 -
进程的创建 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8f59bdc9138e4113b2a0c9d75400c756.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16) -
进程的终止 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8321aba735fc47fcbaf3343ea6f783a0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16) -
进程的阻塞和唤醒 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7b1a456bdb704fa5837264bcb4a57869.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16) -
进程的切换 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7176bd61dda04be1a714161e3d680d0c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZqU5aOB5bCP5p-l,size_20,color_FFFFFF,t_70,g_se,x_16)
进程通信
- 进程之间的信息交换
- 各个进程的内存地址空间相互独立
- 为了保证安全,一个进程不能直接访问另一个进程的地址空间
- 进程通信的方法
*共享存储:两个进程对共享空间进行访问,且必须是互斥的。 *消息传递:进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的"发送消息/接收消息"两个原语进行数据交换 *管道通信:管道通信采用半双工通信,一个进程写,一个进程读。如果要实现双向同时通信,则设置两个管道即可。当进程将数据写入管道时,另一个进程是读不到数据的,只有当管道被写满时,才可读数据。当数据被读出,数据就会被抛弃了
|