操作系统课件 第二章 进程线程与作业.ppt
文本预览下载声明
第二章 进程、线程与作业 2.1 多道程序设计 2.1.1 单道程序设计的缺点 2.1.2 多道程序设计的提出 2.1.3 多道程序设计的问题 2.2 进程的引入 2.2.1 进程的概念 2.2.2 进程状态及状态转换 2.2.3 进程控制块(PCB) 2.2.4 进程的组成与上下文 2.2.6 进程的类型与特征 2.2.7 进程间相互联系与相互作用 2.2.8 进程的创建与撤销 2.2.9 进程与程序的联系与差别 2.3 线程与轻进程 2.3.1 线程的引入 2.3.3 线程的结构 2.3.5 线程的实现 2.3.6 线程的应用 2.4 作业 2.等待队列 每个等待事件一个。当进程等待某一事件时,进入与该事件相关的等待队列中;当某事件发生时,与该事件相关的一个或多个进程离开相应的等待队列,进入就绪队列。 3.运行队列 在单CPU系统中只有一个,在多CPU系统中每个CPU各有一个。每个队列中只有一个进程,指向运行队列头部的指针被称作运行指示字。 从OS角度,进程可分为系统进程和用户进程。 1.系统进程 系统进程属于OS的一部分,它们运行OS程序,完成OS的某些功能。一个系统进程所完成的任务一般是相对独立和具体的,且在进程的生存期内不变,因而它们通常对应一个无限循环程序,在系统启动后便一直存在,直到系统关闭。 现代操作系统内设置很多系统进程,完成不同的系统管理功能。系统进程运行于管态,可执行包括特权指令在内的所有机器指令。由于系统进程负担系统管理和维护任务,其优先级通常高于一般用户进程的优先级。 2.用户进程 用户进程运行用户程序,直接为用户服务。 所谓“用户程序”,不一定是用户自己编写的程序,例如,用户在编译一个C程序时,需要运行C语言的编译程序,该程序在目态运行,但并不是用户自己编写的。在操作系统之上运行的所有应用程序都被称为用户进程。 进程的特性 (1)并发性:可与其它进程一道在宏观上同时向前推进。 (2)动态性:进程是执行中的程序。进程的动态性还体现在如下两个方面:首先,进程是动态产生、动态消亡的;其次,在进程的生存期内,其状态处于动态变化之中。 (3)独立性:进程是调度的基本单位,它可以获得处理机并参与并发执行。 (4)交往性:进程在运行过程中可能会与其它进程发生直接或间接的相互作用。 (5)异步性:每个进程都以其相对独立、不可预知的速度向前推进。 (6)结构性:每个进程有一个控制块PCB。 (1)相关进程:在逻辑上具有某种联系的进程称作相关进程。 例如,进程P0在运行过程中创建了子进程P1和P2,进程P1产生的输出作为P2的输入,则P1和P2是相关进程。进程P1和P2与进程P0之间存在父子关系,也是相关进程。一般地,属于同一进程家族内的所有进程都是相关的。 (2)无关进程:在逻辑上没有任何联系的进程称作无关进程。例如,对于两个相互之间没有交往的用户来说,其进程是不相关的。 无关进程间虽没有逻辑关系,但有资源竞争关系,如互斥、死锁、饿死等。 进程间的相互作用:并发进程之间存在的相互制约关系称作进程间的相互作用。 进程间相互作用的方式有两种: (1)直接相互作用:进程之间不需通过中间媒介而发生的相互作用,这种相互作用通常是有意识的。例如,进程P1将一个消息发送给进程P2,进程P1的某一步骤S1需要在进程P2的某一步骤S2执行完毕之后才能继续,等等。 直接相互作用只发生在相关进程之间。 (2)间接相互作用:进程之间需通过某种中间媒介而发生的相互作用,这种相互作用通常是无意识的。例如,进程P1欲使用打印机,该设备当前被另一进程P2所占用,此时P1只好等待,待P2用完并释放该设备时,将P1唤醒。 间接相互作用可能发生在任意进程之间。 用户进程常通过系统调用创建,一般至少包括两个相关的系统调用:创建进程、撤销进程。 这两个命令在不同系统中的实现各异,在UNIX系统中的命令格式如下: 1.进程创建: pid = fork() 创建子进程所完成的工作如下: (1)建立一个PCB,并对其内容进行初始化。 (2)为该进程分配必要的存储空间,并加载所要执行程序。(在UNIX系统中需通过另外一个系统调用execl实现) (3)将PCB送入就绪队列。 2.进程结束: exit(status) 完成使命的进程需终止自己并告知OS。这在UNIX系统中通过exit系统调用实现。 exit命令的执行将进入OS,系统将对进程进行善后处理(收集进程状态信息、通知其父
显示全部