第6unix进程管理.ppt

上传人:本田雅阁 文档编号:2083113 上传时间:2019-02-11 格式:PPT 页数:27 大小:179.01KB
返回 下载 相关 举报
第6unix进程管理.ppt_第1页
第1页 / 共27页
第6unix进程管理.ppt_第2页
第2页 / 共27页
第6unix进程管理.ppt_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第6unix进程管理.ppt》由会员分享,可在线阅读,更多相关《第6unix进程管理.ppt(27页珍藏版)》请在三一文库上搜索。

1、第6章 UNIX进程管理,6.1 UNIX进程简介 6.2 UNIX进程结构 6.3 进程控制 6.4 UNIX进程调度与交换 6.5 进程通信,启动过程: 引导程序开始系统自举,引导在外存硬盘中的操作系统进入内存。 这一过程是一个启动UNIX系统、设置和初始化各种数据结构与表格、建立控制UNIX系统内核运行的控制进程和建立控制终端进程与Shell进程运行的1#进程。 最后,系统在建立了0#进程和1#进程等之后,将出现相应的提示符,以等待用户输入命令来执行和处理用户应用程序。 核心进程称为0#进程,6.1 UNIX进程和存储管理简介,图6.1 UNIX中各进程的关系,终端管理进程与Shell进

2、程是1#进程的子进程,除了0#进程和1#进程之外,其他进程都是由父进程创建的。人们也称1#进程是所有用户进程的祖先。,UNIX操作系统的0#进程在核心态下运行,而1#进程以及由1#进程衍生的其他进程都可在用户态和核心态两种执行模式下执行。 在不同的执行模式下执行时,同一进程使用不同的堆栈和不同的管理数据结构。 在两种不同模式下执行的程序不能互相访问各自的堆栈,它们之间的参数传递往往需要借助通用寄存器等硬件。 两态之间的主要区别是,用户态下的进程能存取它们自己的指令与数据,但不能存取核心指令和数据。然而,核心态下的进程能存取核心和用户地址。另外,某些机器的指令是特权指令,在用户态下执行会引起错误

3、,只能在核心态下执行。,0#进程是UNIX系统中唯一只在核心态下执行的进程。 三种功能:1.初始化时创建1#进程 2.负责调度分配处理器 3.负责进程交换 UNIX进程的核心态和用户态之间的转换靠中断以及硬件设置等方法完成,图6.3 进程控制系统,进程控制系统在逻辑上由四个模块组成: 1.与文件系统的接口部分 2.进程本身的控制部分,包括进程的创建、进程调度和进程的撤消等 3.进程间控制部分,包括进程间的互斥、同步和通信等, 4.存储管理部分。,UNIX System 中引起进程调度的情况有五种: (1) 当前执行进程申请内存等系统资源未得到满足,从而自己调用sleep 过程,放弃处理机进入睡

4、眠状态。 (2) 为了与其他并发进程保持同步,调用了wait或stop过程等,从而主动放弃了处理机而进入睡眠状态。 (3) 当系统发现系统中某进程的优先级已高于当前执行进程的优先级时 (4) 时间片用完,且当前进程的优先级低于其他就绪进程。 (5) 当前进程调用exit,自我终止时。,6.2 UNIX进程结构 6.2.1 进程的概念 进程的静态描述是由三部分组成的,即进程状态控制块PCB(栈段),进程的程序文本(正文)段以及进程的数据段。,进程控制块,分为两部分: 基本控制块:PROC结构 常驻内存,记录进行进程调度时必须使用的一些主要信息. 扩充控制块:USER结构 非常驻内存,可存放在磁盘

5、的对换区中. 所包含内容见书,6.2.4 进程的状态和状态转换 UNIX System 中进程共有9 个状态,它们是: (1) 进程在用户态下的执行态SRUN。 (2) 进程在核心态下的执行态SRUN。 (3) 进程处于就绪态SRUN (4) 进程处于就绪态SRUN,但交换程序已将其换出内存。 (5) 进程正在睡眠,且驻留在内存中的状态SSLEEP。 (6) 进程正在睡眠,已换出内存的状态SSLEEP。 (7) 进程正从核心态返回用户态。 (8) 创建状态 (9) 僵死状态,图6.8 进程状态转换图,图6.9 进程树的形成,6.3 进 程 控 制 6.3.1 UNIX启动及进程树的形成,6.3

6、.2 进程控制 1. 进程的创建 fork的功能是创建一个子进程。调用fork的进程称为父进程。 系统调用fork的语法格式是: pid fork ( ) ; CPU 在父进程中时,pid 值为所创建子进程的进程号,若在子进程中时,pid 的值为零。,系统调用fork通过执行核心程序fork过程完成的功能是: (1) 为子进程在proc结构表中分配一个空项。 (2) 为子进程赋一个唯一的进程标识号pid 。 (3) 复制一个父进程上下文的逻辑副本。 (4) 增加与父进程相关联的有关文件系统的进程引用计数。 (5) 对父进程返回子进程的进程标识号,对子进程返回零。,图6.10 fork流程图,2

7、. 执行一个文件的调用 exec( ) 3.父进程和子进程同步 Wait( ) 4. 进程的终止 系统调用exit(rv)自我终止当前进程,使其进入SZOMB 僵死状态,等待父进程进行善后处理。,图6.11 shell执行过程,6.4 UNIX进程调度与交换 UNIX系统的调度与交换都是进程0 的两个部分。它们分别由 swtch () 过程和sched ()过程实现。事实上,用于交换的sched 过程是把处于外存就绪态的进程换入内存,相当于三级调度中的中级调度(UNIX系统中没有高级调度)。因此,有时也把进程0 称为调度进程。,6.4.1 进程调度 1. 调度原理 UNIX系统的进程调度采用多

8、级反馈轮转调度法(Round Robin with Multiple Feedback)。即系统给进程分一个时间片,当时间片结束时,动态计算该进程的优先级,若有优先级高于当前进程的内存就绪态进程时,系统设置调度标识,在由核心态转换到用户态前由swtch 过程调度优先级高的进程执行,并把被抢先的进程反馈到相应的优先级队列中。一个进程在它结束之前,可能要经过多次反馈循环。 UNIX的进程调度按时间片计算优先级,并按优先级的高低来调度进程,抢占处理机。因此,UNIX系统的进程调度是基于时间片加优先级的。,UNIX的进程调度涉及的主要问题是: (1) 调度的时机。 (2) 调度标志设置。 (3) 调度

9、策略与优先数的计算。 (4) 调度的实现。 下面,分别说明这几个问题。,2. 调度的时机 发生进程调度的时机实质上只有两个: 1.进程自动放弃处理机时自动转入调度进程 2. 在由核心态转入用户态时,系统设置了高优先级就绪进程的强迫调度标识。,3. 调度标识的设置 UNIX System 中有三个关于调度和交换用的调度标识。它们是runrun、runin和runout。 runrun标识是要求处理机调度程序进行调度的标识,由唤醒原语wakeup、setrun及优先级设置过程setpri在发现某进程的优先级高于当前进程的优先级时,设置runrun标识。另外,每隔一秒一次的时钟中断处理中也将检查各就

10、绪态进程的优先级而设置runrun标识。只要设置了该标识,在中断陷阱程序结束之前,系统就会调用swtch 过程调度具有最高优先级的进程执行。,runin 和runout标识是用于就绪进程换入换出内存的。 runin 表示内存无足够空间换入一个外存就绪态进程,设置runin 标识也意味着内存中无适当的进程可以换出。 runout标识与runin 相反,它表示外存交换区中无适当的进程可以调入内存。,4. 调度策略与优先数的计算 在UNIX系统中,优先数越大优先级越低。 优先数: P-pri P-CPU2 PUSER P-nice NZERO PUSER 和NZERO 是称为基本用户优先数的阈值。这

11、两个数是常数,分别为25和20。 P-CPU 为每个进程的最近一次CPU 使用时间。当进程使用CPU时,系统每个时钟周期对该进程的P-CPU 加1 ,最多时该值可达80。另外,系统按每秒钟的时间间隔对P-CPU 执行除以2 的衰减操作。这样,如果系统的时钟周期为16.667ms的话,则系统进行每秒时钟中断处理时,P-CPU 的值将由60变为30。 P-nice是系统允许用户设置的一个进程优先数偏移值。System 中,P-nice可以被设置成0 40间的一个数。但一旦设置之后,除了超级用户可以将其减小之外,普通用户仅能作增加的改变。,6.4.2 交换 交换功能由进程0完成。在系统初始化结束时,进程0 就进入无限循环,先试图从外存交换区换入进程(因为初始化结束时内存总不会是满的),内存不够时再换出进程。如果没有进程要换入换出时,则该进程进入睡眠状态。 系统通过时钟中断定期唤醒进程0 完成交换功能。在进程0 执行之前,时钟中断处理程序计算出每个就绪进程在内存或外存中驻留的时间。,图6.13 sched过程流程图,6.5 进 程 通 信 6.5.1 UNIX的低级通信 UNIX的低级通信主要用来传递进程间的控制信号。实现传递控制信号的方法有两种。 利用睡眠原语sleep 和唤醒原语wakeup实现进程间的同步与互斥。 利用软中断信号实现同一用户的诸进程之间的通信。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1