赞
踩
本节主要内容 1.定义,在计算机发展史上,“进程”是为了解决什么问题而被引入的? 2.组成,每个进程有哪些部分组成? 3.组织方式,系统中各个进程之间是如何被组织起来的? 4.特征,相比于程序,进程有那些特征? 1.进程的定义: 程序就是一个指令序列 引入多道程序技术后,为了方便操作系统管理,完成各程序并发执行,引入进程、进程实体的概念。 系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置) PCB、程序段、数据段三部分构成了进程实体(进程映像) 一般情况下,我们把进程实体简称为进程。 例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB 从不同角度,进程可以有不同的定义,比较传统典型的定义有: 1.进程是程序的一次执行过程 2.进程是一个程序及其数据在处理机上顺序执行时发生的活动 3.进程是具有独立功能的程序在数据集合上运行的过程, 它是系统进行资源分配和调度的一个独立单位 引入进程实体的概念后,可把进程定义为: 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 注:严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。 不过,除非题目专门考察二者区别,否则认为进程实体就是进程。 因此我们也可以说“进程由程序段、数据段、PCB三部分组成” 2.进程的组成 进程(进程实体)由程序段、数据段、PCB三部分组成 1.操作系统通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息。 进程的管理者(操作系统)所需要的数据都在PCB中,而程序本身所需的数据存放在程序段和数据段中 PCB包含四种信息 1.进程描述信息 1.进程标识符PID 当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的ID, 用于区分不同的进程(类似于身份证号) 2.用户标识符UID 2.进程控制和管理信息 1.进程当前状态 2.进程优先级 3.资源分配清单 1.程序段指针 2.数据段指针 3.键盘 4.鼠标 4.处理机相关信息 1.各种寄存器值 当进程切换时,需要把进程当前的运行情况记录下来保存到PCB中, 如:程序计数器的值(PC)表示了当前程序执行到哪一句。 2.程序段存放程序代码 3.数据段存放程序运行时使用、产生的运算数据。 如全局变量、局部变量、宏定义的常量就存放在数据段中 3.进程的组织方式 进程的组成是讨论多个进程之间的组织方式问题 1.连接方式 按照进程状态将PCB分为多个队列 操作系统持有指向各个队列的指针
2.索引方式
根据进程状态的不同,建立几张索引表
操作系统持有指向各个索引表的指针
4.进程的特征
1.动态性:动态性是进程最基本的特征
进程是程序的一次执行过程,是动态地产生、变化和消亡的
2.并发性:内存中有多个进程实体,各个进程可并发执行
3.独立性:进程是资源分配、接受调度的基本单位
进程是能独立运行、独立获得资源、独立接受调度的基本单位
4.异步性:异步性会导致并发程序执行结果的不确定性。详见“进程同步”
各个进程按各自独立的、不可预知的速度向前推进,
操作系统要提供“进程同步机制”来解决异步问题
5.结构性
每个进程会配置一个PCB。结构上看:进程=程序段+数据段+PCB
本节主要内容: 1.进程的状态 1.运行状态 2.就绪状态 3.阻塞状态 4.创建状态 5.终止状态 其中运行状态、就绪状态、阻塞状态是三种基本状态 2.进程状态间的转换 1.就绪态-->运行态 2.运行态-->就绪态 3.运行态-->阻塞态 4.阻塞态-->就绪态 1.进程的状态--三种基本状态 1.运行态(Running) 占有CPU,并行在CPU上运行 注意:单核处理机环境下,每一时刻最多只有一个进程处于运行态。 双核环境下可以同时有两个进程处于运行态。 2.就绪态(Ready) 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行 进程已经拥有除了处理机之外所有需要的资源,一旦获得处理机即可立即进入运行态开始运行。 即:万事俱备,只欠CPU 3.阻塞态(Waiting/Blocked,又称:等待态) 因等待每一事件而暂时不能运行 如:等待操作系统分配打印机、等待读磁盘操作的结果。 CPU是计算机中最昂贵的部件,为了提高CPU的利用率, 需要先将其他进程需要的资源分配到位,才能得到CPU的服务 2.进程的状态--另外两种状态 1.创建态(New,又称:新建态) 进程正在被创建,操作系统位进程分配资源,初始化PCB 2.终止态(Terminated,又称:结束态) 进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB 3.进程状态的转换 运行态-->阻塞态是一种进程自身做出的主动行为 阻塞态-->就绪态是不受进程自身能控制的,是一种被动行为 注意:不能由阻塞态直接转化为运行态,也不能由就绪态直接转换为阻塞态 因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求
本节主要内容 1.基本概念 1.什么是进程控制 2.如何实现进程控制? 用“原语”实现 2.进程控制相关的原语 1.进程的创建 2.进程的终止 3.进程的阻塞 4.进程的唤醒 5.进程的切换 1.进程控制的基本概念 1.什么是进程控制? 进程控制就是要实现进程状态转换 2.如何实现进程控制? 1.进程转化过程
2.使用“原语” 用“原语”实现进程控制 原语的特点是:执行期间不允许中断,只能一气呵成 这种不可被中断的操作即原子操作 原语采用“关中断指令”和“开中断”指令实现 显然,关/开中断的权限非常大,必然是只允许在核心态下执行的特权指令 原语运行在核心态 2.进程控制相关的原语 进程控制会导致进程状态的转换。无论哪个原语,要做到的无非三类事情。 0.找到对应进程的PCB 1.更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB,从PCB恢复运行环境) 1.所有进程控制原语一定都会修改进程状态标志 2.剥夺当前运行进程的CPU使用权必然需要保存其运行环境 3.某进程开始运行前必然要恢复其运行环境 2.将PCB插入合适的队列 3.分配/回收资源 1.进程的创建 1.创建原语 用来实现:无-->创建态-->就绪态 1.申请空白PCB 2.为新进程分配所需资源 3.初始化PCB 4.将PCB插入就绪队列 2.引起进程创建的时间 1.用户登录 分时系统中,用户登录成功,系统会为其建立一个新的进程 2.作业调度 多道批处理系统中,由新的作业放入内存时,会为其建立一个新的进程 3.提供服务 用户向操作系统提出某些去请求时,会建立一个进程处理该请求 4.应用请求 由用户进程主动请求创建一个子进程 2.进程的终止 1.撤消原语 用来实现:就绪态/阻塞态/运行态-->终止态-->无 1.从PCB集合中找到终止进程的PCB 2.若进程正在运行,立即剥夺CPU,将CPU分配给其他进程 3.终止其所有子进程 4.将该进程的所有资源归还给父进程或操作系统 5.删除PCB 2.引起进程终止的事件 1.正常结束 2.异常结束 3.外界干预 3.进程的阻塞 1.阻塞原语 用来实现:运行态-->阻塞态 1.找到要阻塞的进程对应的PCB 2.保护进程运行现场,将PCB状态信息设置为“阻塞态”,暂时停止进程运行 3.将PCB插入相应事件的等待队列 2.引起进程阻塞的事件 1.需要等待系统分配某种资源 2.需要等待相互合作的其他进程完成工作 4.进程的唤醒 1.唤醒原语 用来实现:阻塞态-->就绪态 1.在事件等待队列中找到PCB 2.将PCB从等待队列移除,设置进程为就绪态 3.将PCB插入就绪队列,等待被调度 2.引起进程唤醒的事件 等待的事件发生 阻塞原语和唤醒原语必须成对使用,因何事阻塞就应由何事唤醒 5.进程的切换 1.切换原语 用于实现:一个进程的运行态-->阻塞态/就绪态, 另一个进程的就绪态-->运行态 1.将运行环境信息存入PCB 2.PCB移入相应的队列 3.选择另一个进程执行,并更新其PCB 4.根据PCB恢复新进程所需的运行环境 2.引起进程切换的事件 1.当前进程时间片到 2.有更高优先级的进程到达 3.当期那进程主动阻塞 4.当前进程终止
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。