1、2023年年1月月23日星期一日星期一14时时18分分36秒秒计算机操作系统计算机操作系统2.12.12.12.22.22.22.2.2.3 3 32.4 2.4 2.4 2.52.52.52023年年1月月23日星期一日星期一14时时18分分36秒秒计算机操作系统计算机操作系统一、进程(一、进程(Process)一个具有一定独立功能的可并发执行一个具有一定独立功能的可并发执行的程序,在一个数据集合上的运行过程。的程序,在一个数据集合上的运行过程。二、二、6个特征个特征 1、动态性:、动态性:是一次运行过程,有生命是一次运行过程,有生命周期;周期;2、并发性:、并发性:可并发执行;可并发执行;
2、3、独立性:、独立性:作为一个独立单位运行;作为一个独立单位运行;4、制约性:、制约性:进程间由于对资源的争用进程间由于对资源的争用而相互制约;而相互制约;5、异步性:、异步性:进程按照各自不可预知的速度进程按照各自不可预知的速度向前推进;向前推进;6、结构特征:、结构特征:进程进程=程序程序+数据数据+PCB;2023年年1月月23日星期一日星期一14时时18分分36秒秒计算机操作系统计算机操作系统1、进程是程序的执行,是、进程是程序的执行,是的概念,有的概念,有生命周期;生命周期;程序是一组指令的有序集合,是程序是一组指令的有序集合,是的的永久存在;永久存在;2、进程组成:进程、进程组成:
3、进程=程序程序+数据数据+PCB;3、进程可并发执行;、进程可并发执行;4、进程可作为一个独立的单位运行,同、进程可作为一个独立的单位运行,同时也是系统中独立获得资源和独立调度的时也是系统中独立获得资源和独立调度的基本单位;凡未建立进程的程序,都不能基本单位;凡未建立进程的程序,都不能作为一个独立的单位运行;作为一个独立的单位运行;5、一个程序可、一个程序可多个进程;多个进程;6、一个进程可、一个进程可多个程序。主程序多个程序。主程序进程执行时可调用其它程序,共同组成进程执行时可调用其它程序,共同组成一次一次“活动活动”2023年年1月月23日星期一日星期一14时时18分分37秒秒计算机操作系
4、统计算机操作系统 (Process Control Block)是用以记是用以记录与进程相关信息的主存区,是进程存在的录与进程相关信息的主存区,是进程存在的唯一标志。唯一标志。进程本身:外标识、内进程本身:外标识、内部标识部标识;家族信息:父进程、子进程信息;家族信息:父进程、子进程信息;中断现场保留区;中断现场保留区;状态、优先级、入主存状态、优先级、入主存及已执行时间及已执行时间;程序、数据的外存程序、数据的外存/内存内存地址;地址;进程同步和通信机制:消息队列、信进程同步和通信机制:消息队列、信号量资源清单(除号量资源清单(除CPU之外);链接指针;之外);链接指针;6Process C
5、ontrol Block7一、两状态进程模型一、两状态进程模型 Process may be in one of two states Running Not-running8Not-Running Process in a Queue2023年年1月月23日星期一日星期一14时时18分分37秒秒计算机操作系统计算机操作系统二二、三、三态模型态模型 三三、五态模型五态模型 (New):刚被创建,尚未进:刚被创建,尚未进入就绪队列时的状态;入就绪队列时的状态;(Terminated):进程正常:进程正常/异异常结束,移出就绪队列,但尚未撤销时常结束,移出就绪队列,但尚未撤销时的状态。的状态。10
6、A Five-State Model Running Ready Blocked New Exit11Five-State Process Model12Process States13Using Two Queues14Multiple Blocked Queues15 四、七态模型(被挂起的进程)四、七态模型(被挂起的进程)Suspended Processes1、什么是挂起?、什么是挂起?Blocked state becomes suspend state when swapped to disk2、为什么要挂起进程?、为什么要挂起进程?3、挂起进程的状态、挂起进程的状态 Blocke
7、d/SuspendReadySuspend164、挂起的原因、挂起的原因Reasons for Process Suspension1 1、交换、交换2 2、其他、其他osos原因原因3 3、交互式用户请求、交互式用户请求4 4、定时、定时5 5、父进程请求、父进程请求17One Suspend State18Two Suspend States19五、进程的创建五、进程的创建1 1、新的批处理作业、新的批处理作业2 2、交互登录、交互登录3 3、操作系统因为提供一项服务而创建、操作系统因为提供一项服务而创建4 4、由现有的进程派生、由现有的进程派生2023年年1月月23日星期一日星期一14时
8、时18分分37秒秒计算机操作系统计算机操作系统 操作系统根据请求,调用进程操作系统根据请求,调用进程创建原语创建原语Create(),完成进程创建。完成进程创建。进程创建的主要步骤:进程创建的主要步骤:5、创建或扩充其他数据结构、创建或扩充其他数据结构21六、进程终止的原因六、进程终止的原因1 1、正常完成、正常完成2 2、超过时限、超过时限3 3、无可用内存、无可用内存4 4、越界、越界5 5、保护错误、保护错误6 6、算术错误、算术错误7、时间超出、时间超出228 8、I/OI/O失败失败9 9、无效指令、无效指令1010、特权指令、特权指令1111、数据错误、数据错误1212、操作员或者
9、操作系统干涉、操作员或者操作系统干涉13、父进程终止、父进程终止14、父进程请求、父进程请求2023年年1月月23日星期一日星期一14时时18分分38秒秒计算机操作系统计算机操作系统1、根据终止进程标识符、根据终止进程标识符n,找找PCB;2、若该进程正在执行,终止,设调、若该进程正在执行,终止,设调度标志为真;度标志为真;3、撤消其所有子孙;、撤消其所有子孙;4、回收所有资源,归还父进程或系、回收所有资源,归还父进程或系统;统;5、将、将PCB移出原所在队列;移出原所在队列;2023年年1月月23日星期一日星期一14时时18分分38秒秒计算机操作系统计算机操作系统252.2.1操作系统的控制
10、结构操作系统的控制结构2023年年1月月23日星期一日星期一14时时18分分38秒秒计算机操作系统计算机操作系统进程的静态组成的统称,包进程的静态组成的统称,包括进程的程序块、数据块、系统括进程的程序块、数据块、系统/用户栈和进程控制块。用户栈和进程控制块。2023年年1月月23日星期一日星期一14时时18分分38秒秒计算机操作系统计算机操作系统进程物理实体和支持进程运行的环进程物理实体和支持进程运行的环境合称为进程上下文。境合称为进程上下文。1、用户级上下文:进程的用户地、用户级上下文:进程的用户地址空间,包括用户正文段、用户数据址空间,包括用户正文段、用户数据段和用户栈段和用户栈 2、寄存
11、器级上下文:程序计数器、寄存器级上下文:程序计数器PC、程序状态字寄存器、程序状态字寄存器PSW、栈指、栈指针、通用寄存器值等针、通用寄存器值等 3、系统级上下文:进程的系统地、系统级上下文:进程的系统地址空间,包括进程控制块、内存管理址空间,包括进程控制块、内存管理信息、系统栈等信息、系统栈等 4、正文段:程序段经过编译后形、正文段:程序段经过编译后形成的机器指令代码集成的机器指令代码集什么是程序状态字PSW 计算机中有一个程序状态寄存器,它是计算机中有一个程序状态寄存器,它是用来控制指令执行顺序并保留和指示与程序用来控制指令执行顺序并保留和指示与程序有关部分的系统状态的。每个程序都有一个有
12、关部分的系统状态的。每个程序都有一个程序状态字来刻画本程序的执行状态,只有程序状态字来刻画本程序的执行状态,只有把程序的程序状态字送到了计算机的程序状把程序的程序状态字送到了计算机的程序状态寄存器,该程序才能得到运行。态寄存器,该程序才能得到运行。基本内容包括:(基本内容包括:(1)程序的基本状态,如)程序的基本状态,如指令地址,条件码(包括溢出位、进位标志指令地址,条件码(包括溢出位、进位标志等)(等)(2)中断码)中断码,保存程序执行时当前发生保存程序执行时当前发生的中断事件;(的中断事件;(3)中断屏蔽位,指示程序)中断屏蔽位,指示程序执行中发生中断事件时,要不要响应中断事执行中发生中断
13、事件时,要不要响应中断事件。件。30Pentium II EFLAGS Register2023年年1月月23日星期一日星期一14时时18分分38秒秒计算机操作系统计算机操作系统将有相同状态的进程将有相同状态的进程PCB用链用链接指针链成队列;接指针链成队列;索引方式索引方式索引方式索引方式索引方式索引方式PCB2PCB32023年年1月月23日星期一日星期一14时时18分分38秒秒计算机操作系统计算机操作系统PCB1PCB2PCB3PCB4PCB5PCB6PCB72.3进程控制 2.3.1执行模式执行模式 用户模式:User mode Less-privileged mode User pr
14、ograms typically execute in this mode 系统模式:System mode control mode,or kernel mode More-privileged mode Kernel of the operating system 为什么要设置不同的模式?处理器如何知道它在什么模式下执行?psr 如何改变模式?举例:Linux中的psr,cpl2.3.2模式切换模式切换 一、定义 当中断发生时,暂时中断正在执行的用户当中断发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去进程,把进程从用户状态切换到内核状态,去执行操作系统例行程序以获得
15、服务,这就是一执行操作系统例行程序以获得服务,这就是一次模式切换。次模式切换。二、模式切换的步骤 1、把程序计数器置成中断处理器的开始地址 2、把处理器模式从用户模式切换到内核模式3、保存被中断的进程上下文。包括所有中断处理可能改变的信息和恢复中断程序所需要的信息。即保存处理器状态信息(程序计数器,其他处理器寄存器和栈信息)大多数操作系统中,中断的发大多数操作系统中,中断的发生并不是必须伴随着进程切换。所生并不是必须伴随着进程切换。所以只需要保存处理器状态信息。以只需要保存处理器状态信息。2.3.3进程切换进程切换一、什么是进程切换?进程由于某种原因阻塞或者停止运行,此时进程保存上下文信息并让
16、出处理器,处理器调度其他进程执行,称为进程切换。进程切换必须在核心态而不是用户态下发生。二、何时切换进程(什么事件触发进程的切换?)系统中断:1、中断:时钟中断 I/O中断 内存失效 2、陷阱:系统调用:调用操作系统函数三、进程切换的步骤1、保存处理器上下文2、更新当前处于运行态的PCB3、把进程的PCB移到相应的队列4、选择另一个进程执行5、更新所选择进程的PCB6、更新内存管理的数据结构7、恢复处理器在被选择的进程最近一次切换出运行态时的上下文。2.3.4进程切换与模式切换的区别进程切换与模式切换的区别 (1)模式切换可以不改变正处于运行态的进程状态,即不一定引起进程状态的变化,在大多数操
17、作系统中,模式切换不一定引起进程切换。(2)进程切换涉及到进程状态的变化,比模式切换需要做更多的工作。2.3.5操作系统的执行1、无进程的内核 操作系统恢复被中断进程的上下文 完成保存进程环境的功能。切换进程2、在用户进程中执行、在用户进程中执行在较小的PC机,工作站的操作系统,在用户进程的上下文中执行所有操作系统软件 中断、陷阱或系统调用时,只需要进中断、陷阱或系统调用时,只需要进行模式切换不需要执行进程切换。行模式切换不需要执行进程切换。优点:不用牺牲两次进程切换为代价。优点:不用牺牲两次进程切换为代价。如要发生进程切换,控制权转交给进如要发生进程切换,控制权转交给进程切换例程。这个例程可
18、能在当前进程切换例程。这个例程可能在当前进程中执行,也可能不在当前进程中执程中执行,也可能不在当前进程中执行。逻辑上看做所有进程之外的环境行。逻辑上看做所有进程之外的环境中执行。中执行。3、基于进程的操作系统、基于进程的操作系统操作系统作为一组系统进程来实现操作系统作为一组系统进程来实现1)模块化操作系统)模块化操作系统2)操作系统函数可简单地用独立的进程实现)操作系统函数可简单地用独立的进程实现3)在多处理器或多机环境中十分有用。)在多处理器或多机环境中十分有用。2.4UNIX SVR4进程管理大部分操作系统在用户进程环境中执行大部分操作系统在用户进程环境中执行用户模式用户模式 用户进程用户
19、进程 用户代码用户代码 如用户程序和实用程序如用户程序和实用程序内核模式内核模式 系统进程系统进程 操作系统代码操作系统代码 如内存空间分配和进程交如内存空间分配和进程交换换中断,异常,系统调用中断,异常,系统调用2.4.1进程状态进程状态2.4.2进程描述 UNIX进程映像 用户级上下文 寄存器上下文 系统级上下文2.4.3进程控制 Unix fork()Unix fork()创建子进程:创建子进程:1.1.为新进程在进程表中分配一个空表项。为新进程在进程表中分配一个空表项。2.2.为子进程分配一个唯一的进程标识号为子进程分配一个唯一的进程标识号.3.3.做一个父进程的上下文副本。做一个父进
20、程的上下文副本。4.4.增加父进程拥有的所有文件的计数,增加父进程拥有的所有文件的计数,以表示有另一个进程也拥有这些文件。以表示有另一个进程也拥有这些文件。5.5.把子进程置为就绪状态。把子进程置为就绪状态。6.6.对父进程返回子进程的进程号,对子对父进程返回子进程的进程号,对子进程返回进程返回0 0。所有这些操作都是在父进程的内核所有这些操作都是在父进程的内核模式下完成,当内核完成这些功能后,模式下完成,当内核完成这些功能后,可以进行下面三种操作之一:可以进行下面三种操作之一:1.保留在父进程中,返回用户模式下父保留在父进程中,返回用户模式下父进程的进程的fork调用处。调用处。2.控制转交
21、给子进程,子进程开始执行控制转交给子进程,子进程开始执行代码,执行点与父进程相同。代码,执行点与父进程相同。3.控制转交给另一进程,父进程和子进控制转交给另一进程,父进程和子进程都置于就绪状态。程都置于就绪状态。进程的缺陷 只能在一个时间干一件事情,如果想只能在一个时间干一件事情,如果想同时干两件或者多件事情,进程就不同时干两件或者多件事情,进程就不够用了。够用了。举例:看电影举例:看电影 进程如果阻塞,例如等待输入,这个进程如果阻塞,例如等待输入,这个进程就将挂起,即使有部分工作不依进程就将挂起,即使有部分工作不依赖与输入数据,也无法推进。赖与输入数据,也无法推进。引入线程引入线程2023年
22、年1月月23日星期一日星期一14时时18分分39秒秒计算机操作系统计算机操作系统1 1如果系统中有如果系统中有N N个进程,运行的进程个进程,运行的进程最多几个,最少几个;就绪进程最多最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,几个最少几个;等待进程最多几个,最少几个?最少几个?2.2.有没有这样的状态转换,为什么?有没有这样的状态转换,为什么?等待等待运行;运行;就绪就绪等待等待3.3.一个状态转换的发生,是否一定导致一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能。另一个转换发生,列出所有的可能。4.4.举举3 3个日常生活中类似进程的例子个日常生活中类似进程的例子【思考题思考题】