四、作业的基本概念
8、作业的定义
是指用户在一次计算过程或一次事务处理的过程中要求计算机系统所做的工作的总称。 通常把一次事务计算中从输入开始到输出结束,用户要求计算机所做的全部工作称为一个作业。
用户的角度:作业就是用户要求计算机完成的一项任务。
计算机系统的角度:作业是一个比程序更广的概念,一个作业可以包含多个程序和多份数据。
9.作业与进程的关系
作业的处理依赖于进程。
计算机处理一个作业:首先操作系统为该作业创建一个根进程;后根据作业需求可能创建相应子进程,后为子进程分配资源并调度子进程完成以完成作业的要求。
本质上看:作业是用户要求计算机完成的一项任务,而进程是计算机为了完成该任务而设置的动态执行体。
资源角度:作业中有作业说明书其中描述了该作业对资源的需求,是静态的。进程对资源的占用是动态分配的。
对应关系看:一个用户进程只能对应一个作业。一个作业的执行由一个以上的进程完成。
10、作业的转态及其转换
其中:(1)提交态:作业由输入设备进入外存储器的过程。
(2)后备态:一个作业全部信息已经进入输入井等待调度运行,并且系统已经为该作业建立一个JCB。
(3)运行态:后备态的作业被作业调度选中被送入内存中,并分配资源而建立一组与该作业对应的进程,进入运行态。
(4)完成态:作业终止,但其占用资源未完全被系统回收的状态。
五、进程的描述与上下文
进程控制块(PCB)是进程存在的唯一标志。
11、进程控制块
PCB的作用:
①标志进程的存亡;②操作系统是根据PCB来对并发执行的进程进行管理和控制的。
PCB中的信息:
①进程标识符。 每个进程的唯一标识符,也称为进程的内部名。
②进程的当前状态。 处于就绪状态时才能被调度执行。
③进程相应的程序和数据地址。 用于将PCB和程序和数据联系起来。
④进程资源清单。 列出进程拥有的资源记录,不包括处理机。
⑤进程优先级。 通常是一个表示使用CPU优先级的整数。
⑥CPU现场保护区。 出现某种原因不能占用CPU时,需要保存状态信息以便再次获得CPU时恢复状态。
⑦进程同步和通信机制。 用于实现进程之间的互斥、同步和通信所需的信号量、信箱或消息队列的指针等。
⑧进程所在队列的PCB的连接字。 指出该进程所在队列中下一个进程PCB的首地址。
⑨其他信息。
12、进程上下文
概念:进程实体和支持进程运行的环境的合称。
当系统调度新进程占有处理机时,新老进程随之发生上下文切换。
进程上下文构成:PCB、与该进程有关的各种寄存器值、正文段(指令代码集)、数据段、堆栈值。
通常,已执行的指令数据在相关寄存器和堆栈中的内容称为上文,正在执行的指令和数据在寄存器和堆栈中的内容称为正文,待执行的称为下文。
进程上下文切换:
将CPU从一个进程切换到另一个进程,需要保存前一个的状态恢复下一个的状态就叫上下文切换。
三个步骤:状态保存、选取新进程、状态恢复。
六、进程的控制
进程控制一般由操作系统内核中的相应程序来完成。
13、进程控制机构
操作系统的内核
就是指一些常驻内存的、与硬件密切相关的、被实施以特殊保护的用于提高操作系统运行效率的安装在软件层的一些模块。
包括中断处理程序、常用设备的驱动程序、进程调度程序、存储器管理程序以及一些被许多模块所共用的基本操作。
内核中与进程控制紧密相关的机构
①进程管理
②原语操作:系统态下某些具有特定功能的程序段称为原语。
14、进程控制原语
进程创建原语
就是创建一个新的进程,通过原语实现。一个进程可以通过原语创建新进程,成为他的子进程。可构成家族关系。类似树的结构。
操作步骤如下:
①向系统申请一个空闲PCB;②为新进程分配各种资源;③初始化新PCB中的内容;④将新进程的PCB插入到就绪队列。
进程撤销原语
也称为进程删除,通常是进程的父进程调用了进程撤销原语来撤销以便释放资源。撤销原因通常有①正常完成任务正常撤销;②出现故障错误被迫撤销。
两种撤销策略:①只撤销指定进程②撤销指定进程及其子孙进程。
对于第二种撤销策略的实现过程:
①从系统PCB表中检索出要撤销进程的PCB,并读出该进程的状态。
②若处于执行态,则终止。
③检查其是否有子孙进程,若有,则递归的终止所有子孙。防止变得不可控。
④递归地回收被撤销进程的资源。
⑤递归释放PCB。
⑥如果重新调度标志为真,则转到进程调度程序。
进程阻塞原语
将调用该原语的进程由执行态变为阻塞态。
步骤如下:
①停止调用者进程自身的执行
②保存调用者CPU现场信息
③设置调用者进程自己的状态为阻塞状态
④把PCB插入到相应事件的等待队列
⑤转到进程调度程序
进程唤醒原语
将一个被唤醒进程的状态由阻塞变为就绪态,注:进程阻塞原语一般由进程自己调度将自己变为阻塞态,而唤醒,一般由另一个进程来调用。
步骤:
①找出被唤醒进程的内部表示
②把它从阻塞队列中移出
③设置状态为就绪
④插入就绪队列
⑤若被唤醒进程优先级比当前进程高,则设置调度标志转进调度程序。