第02章计算机操作系统进程管理讲述.ppt
文本预览下载声明
新课导入 在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。操作系统所具有的四大特征也都是基于进程而形成的,并可从进程的观点来研究操作系统。显然,在操作系统中,进程是一个极其重要的概念。因此,在这章中我们来学习进程。 求解:已知一个求值公式 (A×A+3B)/(B+5A) 若A和B已经赋值,试画出该公式求解的前驱图 What is a process? One program which has an independent function works on certain data set dynamically and allocate resources dynamically 一个具有一定独立功能的程序对某个数据集合上的一次动态执行过程和资源分配过程 编译程序上的两个进程 问题:如果系统中有N个进程, 运行进程最多几个,最少几个? 就绪进程最多几个,最少几个? 等待进程最多几个,最少几个? 问题:如果操作系统里面存在多个进程,一个转换发生,是否另一个转换一定发生?找出所有的可能。 解答: ? 就绪—运行: 不一定(系统中仅一个进程) 转换条件:被调度程序选中 ? 运行—就绪: 一定(讨论就绪队列的长度) 转换条件:时间片到时,或有更高优先级 的进程出现 ? 运行—等待: 不一定(考虑死锁) 转换条件:等待某事件发生 ? 等待—就绪: 不一定 转换条件:考虑就绪队列的长度 PCB的两个关键问题: (1)进程控制块的系统开销 PCB的总数问题?考虑到进程可能会创建子进程的情况。 (2)进程控制块的内存驻留方式 PCB全部装入内存?还是部分装入? PCB数据量太大,包含信息太多,因此有的系统只把必须的一些信息(CPU控制信息,进程描述信息,控制信息)放置在内存,其他的信息放置在外存。 2.2 进程控制 为了提供对PCB (和OS其它数据)的保护,通常将处理机的执行状态分为系统态和用户 态两种:系统态:又称作特权方式,内核方式, 管理方式,控制方式.用户态:通常用户程序运 行在用户态.有利于系统程序和用户程序的区分,但是牺牲了系统开销。为什么说牺牲了系统开销? 创建原语流图 创建原语 void Create(n,S0,P0,M0,R0,acc) { i = getinternalname(n); id (i) = n; priority(i) = P0; cpupstate(i) = S0; mainstore(i) = M0; resources(i) = R0; status(i) = “readys”; sdata(i) = RL; parent(i) =* progeny(i) = NULL; insert(progeny (*), i); set accounting data insert (RL, i ); } 图 撤消原语流图 图 唤醒原语 小结 操作系统的顺序进程和并发进程的各自特点 (1) 顺序性 1) 间断性 (2) 封闭性 2) 失去封闭性 (3) 可再现性 3) 不可再现性 进程基本概念 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位 进程的三个基本状态及转换 1) 就绪(Ready)状态 2) 执行状态 3) 阻塞状态 进程控制 并发引起的操作系统的改变 操作系统必须记住各种活跃的进程 必须为每个进程分配和释放各种资源 保护每个进程的数据和物理资源 进程的结果必须与执行速度无关 例1:两个进程对同一变量count访问和修改, P1: count+=1; P2: count-=1; 若count = 5。 P1: R1 = count; R1 = R1+1; count = R1; P2: R2 = count; R2 = R2 - 1 ; count = R2; 若顺序执行P1、P2,则count = 5。 若并发执行,则count=4?6? 并行语句记号 可以用语句 cobegin S1;S2;… ;Sn ; coend 来表示语句S1,S2,…,Sn可以并发执行。 Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句用cobegin和coend括起来表示这n个语句是可以
显示全部