操作系统-进程管理

进程的状态
在这里插入图片描述
进程的三种状态
1 ) 运行态(该时刻进程实际占用 CPU) 。
2) 就绪态(可运行,但因为其他进程
正在运行而暂时停止)。
3) 阻塞态(除非某种外部事件发生,
否则进程不能运行).

在操作系统发现进程不能继续运行下去时,发生转换 1 。

转换2和3是由进程调度程序引起的 . 进程调度程序是操作系统的一部分,进程甚至感觉不到调度程
序的存在。系统认为一个运行进程占用处理器的时间已经过长,决定让其他进程使用CPU时间时,会发
生转换2。在系统已经让所有其他进程享有了它们应有的公平待遇而重新轮到第一个进程再次占用CPU
运行时,会发生转换3 。 调度程序的主要工作就是决定应当运行哪个进程、何时运行及它应该运行多长
时间。

当进程等待的一个外部事件发生时(如一些输入到达),则发生转换4。如果此时没有其他进程运行,
则立即触发转换3, 该进程便开始运行。否
则该进程将处干就绪态,等待 CPU空闲井
且轮到它运行。

操作系统的最底层是调度程序,在它上面有许多
进程。所有关于中断处理、启动进程和停止进程的具体细节都隐藏在调度程序中。

每个进程有三种状态,操作系统通过调度程序,有序的控制当前运行的程序

进程的实现
为了实现进程换型,操作系统维护若一张表格(一个结构数组),即进程表 (process table) 。每个进
程占用一个进程表项。(有些作者称这些表项为进程控制块。)该表项包含了进程状态的重要信息,包括
程序计数器、堆栈指针、内存分配状况、所打开文件的状态、账号和调度倌息,以及其他在进程由运行
态转换到就绪态或阻塞态时必须保存的信息,从而保证该进程随后能再次启动 , 就像从未被中断过一样。

第一列中的字段与进程管理有关。其他两列分别与
存储管理和文件管理有关。应该注意到进程表中的字段是与系统密切相关的
在这里插入图片描述
在了解进程表后,就可以对在单个(或每一个 ) CPU上如何维持多个顺序进程的错觉做更多的阐述。
与每一I/0类关联的是一个称作 中断向量 ( i nterrupt vector) 的位置(靠近内存底部的固定区域) 。 它包
含中断服务程序的入口地址。假设当一个磁盘中断发生时,用户进程3正在运行,则中断硬件将程序计
数器、程序状态字、有时还有一个或多个寄存器压入堆栈,计算机随即跳转到中断向量所指示的地址。
这些是硬件完成的所有操作,然后软件,特别是中断服务例程就接管一切剩余的工作 。

中断之后操作系统的操作步骤
1.硬件压人堆栈程序计数器等 .
2 . 硬件从中断向量装人新的程序计数器.
3. 汇编语言过程保存寄存器值 .
4 . 汇编语言过程设置新的堆栈 .
5.C中断服务例程运行 (典型地读和缓冲输入 ).
6. 调度程序决定下一个将运行的进程 。
7 . C过程返回至汇编代码 .
8. 汇编语言过程开始运行新的当前进程 .

一个进程在执行过程中可能被中断数于次,但关键是每次中断后`被中断的进程都返回到与中断发
生前完全相同的状态 。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值