《操作系统精髓与设计原理》知识梳理 之进程篇

前言

       在我看来,进程之于处理器犹如细胞之于心脏,进程好比体内的细胞,而操作系统那就如整个生理系统。因此,进程对于操作系统来说至关重要。

Ⅰ. 进程

一组元素组成的实体,进程的两个基本元素是程序代码(program code, 可能被执行相同程序的其他进程共享)和代码相关联的数据集(set of data)。

进程控制块:

标识符

状态

优先级

程序计数器

内存指针

上下文数据

I/O状态信息

记账信息

 

Ⅱ. 进程状态

两状态进程模型

非运行态

运行态

 

进程的创建和终止

导致进程创建的原因:

新的批处理作业

交互登录

操作系统因为提供一项服务而创建

由现有的进程派生

导致进程终止的原因

正常完成

超过时限

无可用内存

越界

保护错误

算术错误

时间超出

I/O失败

无效指令

特权指令

数据误用

操作员或操作系统干涉

父进程终止

父进程请求

 

五状态模型

新建态

就绪态

运行态

阻塞态

退出态

 

被挂起的进程

交换:把内存中某个进程的一部分或全部移到磁盘中

就绪态:进程在内存中并可以执行

阻塞态:进程在内存中并等待一个事件

阻塞/挂起态:进程在外存中并等待一个事件

就绪/挂起态:进程在外存中,但是只要被载入内存就可以执行

 

比较重要的转换:

阻塞-->阻塞/挂起

阻塞/挂起-->就绪/挂起

就绪/挂起-->就绪

就绪-->就绪/挂起

其他几种转换:

新建-->就绪/挂起及新建-->就绪

阻塞/挂起-->阻塞

运行-->就绪/挂起

各种状态-->退出

 

挂起进程特点:

  1. 进程不能立即执行
  2. 进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行
  3. 为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统
  4. 除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移

 

导致进程挂起的原因:

交换

其他OS原因

交互式用户请求

定时

父进程请求

 

Ⅲ. 进程的描述

操作系统的控制结构:

内存表

I/O表

文件表

主进程表

 

进程控制结构

进程映像是程序、数据、栈和属性的集合

包括 用户数据、用户程序、系统栈和进程控制块

进程控制块:

进程标识信息

处理器状态信息

进程控制信息

 

Ⅳ. 进程控制

执行模式:用户态内核态(系统态或控制态)

模式切换

  1. 把程序计数器置成中断处理程序的开始地址
  2. 从用户态切换到内核态,使得中断处理代码可以包含有特权的指令

 

进程创建:

  1. 给新进程分配一个唯一的进程标识符
  2. 给进程分配空间
  3. 初始化进程控制块
  4. 设置正确的连接
  5. 创建或扩充其他数据结构

 

进程切换

进程执行的中断机制

中断:当前指令的外部执行,对异步外部事件的反应,包括时钟中断、I/O中断和内存失效

陷阱:与当前指令的执行相关,处理一个错误或异常条件

系统调用:显示请求,调用操作系统函数

 

进程状态的变化(与模式切换不同)

  1. 保存处理器上下文环境,包括程序计数器和其他寄存器
  2. 更新当前处于运行态进程的进程控制块
  3. 将进程的进程控制块移到相应的队列
  4. 选择另一个进程执行
  5. 更新所选择进程的进程控制块,包括将进程的状态变为运行态
  6. 更新内存管理的数据结构
  7. 恢复处理器在被选择的进程最后一次切换出运行态时的上下文环境

 

Ⅴ. 操作系统的执行

无进程的内核:在所有进程之外执行操作系统内核

在用户进程执行

基于进程的操作系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值