【操作系统精髓与设计原理】第三章-进程描述和控制

3.1 什么是进程

进程是正在执行的程序。
进程也可以描述为:由一组元素组成的实体。进程的组成元素:程序代码,代码相关联的数据集进程控制块
在这里插入图片描述
标识符:进程唯一ID。
状态:运行,阻塞,就绪。
优先级:相对于其他进程的优先级
程序计数器:即将被执行的下一条指令。
内存地址:包括程序代码和进程相关数据的指针,
上下文数据:进程执行时处理器中寄存器的数据。
I/O状态信息:I/O请求,分配给进程的IO设备,被进程使用的文件列表。
记账信息:处理器时间总和,使用的时钟数总和 时间限制,记账号。
进程控制块内容可以分为如下三部分,在后边章节一一讲到。

在这里插入图片描述
在这里插入图片描述
现在操作系统中,把进程的程序计数器和上下文数据加载到处理器寄存器中,这个进程就可以运行了。

3.2 进程状态

进程执行指令的序列的顺序就是进程轨迹,举例如下:
内存中进程A B C内存中的分派器就是调度器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
整个程序执行顺序:先执行进程A的6条指令,超时后,调度器执行6条调度指令(每调度一次都要执行),接着开始切换到进程B,B执行4条指令后,需要请求IO,处理器停止执行进程B,开始调度C,处理器执行C的6条指令后,返回A进程继续执行。当再次执行B时,还在等待IO,因此处理器直接调度C程序执行。

3.2.1 两状态进程模型

在这里插入图片描述

3.2.2 进程创建和终止

  • 进程创建
    创建一个进程时,操作系统做两件事:需要建立用于管理该进程的数据结构,并且在内存中给它分配空间。引起进程创建的四个原因。
    在这里插入图片描述
  • 进程终止
    在这里插入图片描述

3.2.3 进程五种状态

在这里插入图片描述
新建状态:进程需要的信息在内存的进程表中,但是进程没有在内存中。

3.2.4 被挂起的进程

挂起是出于内存的考虑,内存中没有足够的空间时,可以将内存中的进程换出到磁盘中。
换出:当内存中没有就绪的进程时,需要将内存中阻塞的进程换出到磁盘中“挂起队列”中,暂时保存内存中被阻塞的进程。
挂起是一个IO操作
在这里插入图片描述
在这里插入图片描述
还有一些导致进程挂起的原因:
在这里插入图片描述

3.3 进程描述

操作系统为处理器执行进程而进行调度和分派。操作系统是如何管理进程和资源呢?
操作系统为了管理进程必须掌握每个进程和资源当前的状态。操作系统维护这四张表,内存表IO表文件表进程表,管理结构如下:
在这里插入图片描述
内存表:内存表包括内存和虚拟内存的使用情况,分配给进程的内存和受保护的内存。
IO表:管理计算机的IO设备和通道,如某个进程正在使用IO情况。
文件表:文件是否存在,文件在外存位置等。

  • 进程映像

一个进程至少包括一个或一组程序,程序中有局部变量或全局变量(数据)。并且需要足够的空间来保存内存和数据,还有运行程序时过程调用过程见传递参数需要的栈。还有描述这个进程的属性的集合,整个这些程序,数据,栈和属性集合称为进程映像

3.4 进程控制

3.4.1 两种执行模式(内核态和用户态)

内核的典型功能:进程管理,内存管理,IO管理和中断等。
用户态和内核态切换:处理器状态寄存器(PSR)里边包涵CPL(当前特权级别,0表示内核态,1表示用户态)当中断发生时,处理器清空PSR寄存器中的值(包括CPL值),中断结束后,最后一个指令iret(中断返回)恢复了程序的特权级别。

3.4.2 进程创建

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

3.4.3 进程切换

进程切换就是把处理器控制权交给操作系统。通常如下三种情况,中断陷阱系统调用

3.5操作系统执行

操作系统如何执行呢?有如下三种情况。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值