收藏 分享(赏)

第二章线程 进程 作业.ppt

上传人:gnk289057 文档编号:9359479 上传时间:2019-08-03 格式:PPT 页数:74 大小:816.50KB
下载 相关 举报
第二章线程 进程 作业.ppt_第1页
第1页 / 共74页
第二章线程 进程 作业.ppt_第2页
第2页 / 共74页
第二章线程 进程 作业.ppt_第3页
第3页 / 共74页
第二章线程 进程 作业.ppt_第4页
第4页 / 共74页
第二章线程 进程 作业.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、第二章线程 进程 作业,2.1 多道程序设计 2.2 进程的引入 2.3线程 2.4作业,2.1 多道程序设计,2.1.1 单道程序设计的缺点 2.1.2 多道程序设计的提出 2.1.3 多道程序设计的问题,Multi-programming,2.1.1 单道程序设计的缺点,处理机利用率低 设备利用率低 内存利用率低,运行程序A,CPU,设备1,运行程序A,t,t1,t2,t5,t6,设备2,2.1.2 多道程序设计的提出,CPU,设备1,程序A,t,t1,t2,t5,t6,设备2,程序B,提高处理机、设备、内存等各种资源的利用率,从而提高系统效率。,程序A,t3,t4,2.1.2 多道程序设

2、计的提出(Cont.),增加同时运行程序的道数可以提高资源利用率,从而提高系统效率,但道数应与系统资源数量相当。 道数过少,系统资源利用率低。 道数过多,系统开销增大,程序响应速度下降。,2.1.3 多道程序设计的问题,处理机资源的管理 程序个数处理机个数(如何分配?) 存储资源的管理 内存分配与去配 外存分配与去配 设备资源管理 分配去配 IO控制,2.2 进程的引入,2.2.1 进程的概念 2.2.2 进程状态及状态转换 2.2.3 进程控制块 2.2.4 进程的组成 2.2.5 进程的表记 2.2.6 进程的队列 2.2.7 进程的类型,2.2.8 进程的特性 2.2.9 进程间相互关系

3、 2.2.10 进程间相互作用 2.2.11 进程的创建与撤销 2.2.12 进程与程序间的联系与差别,多道系统中的程序:推进,暂停,推进,暂停,. 暂停:保存现场(断点,寄存器) 推进:恢复现场 暂停原因:(1) 自身原因:等待资源,启动IO(3) 剥夺CPU-给其它程序运行机会,2.2 进程的引入(Cont.),定义1:可参与并发执行的程序称为进程。 定义2:进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。定义强调两个方面:(1)动态:执行中的程序(2)并发:多个程序同时执行,2.2.1 进程的概念,2.2.2 进程状态及状态转换,2.2.2.1 进程状态(基本状态) 运行态(

4、RUN): 占有CPU正进行 就绪态(READY): 等待处理机资源 等待态(WAIT): 等待某一事件发生 2.2.2.2 状态转换 就绪运行:获得处理机 运行就绪:剥夺处理机 运行等待:申请资源未得到,启动IO 等待就绪:得到资源,IO中断,就绪,等待,运行,获得处理机,剥夺处理机,等待事件,事件发生,2.2.2.2 进程状态转换图,Keep in Mind,2.2.3 进程控制块(PCB),进程存在的标志,其中保存系统管理进程所需的全部信息 PCB内容:(不同系统不尽相同) 进程标识(id) 家族联系 进程状态 地址信息 现场信息 打开文件 调度参数 消息指针 所属用户 队列指针,2.2

5、.4 进程的组成,进程控制块(process control block) 建立进程建立PCB 撤销PCB撤销进程 程序 代码(code) 数据(data) 堆栈(stack+heap),2.2.5 进程的表记,PCB,程序,PCB,代码,数据 + 堆栈,表记1,表记2,系统空间,用户空间,2.2.6 进程的队列,PCB,PCB,PCB,head,1. 就绪队列:系统一个 2. 等待队列:每个等待事件一个 3. 运行指示字:每个处理机一个,2.2.7 进程的类型,系统进程 运行操作系统程序,完成系统管理(服务)功能. 例如:UNIX #0 - sched, #1 - init 用户进程 运行用

6、户(应用)程序,为用户服务。 例如:UNIX vi, shell,2.2.8 进程的特性,并发性:可以与其它进程一道向前推进; 动态性:动态产生、消亡,生存期内状态动态变化; 独立性:一个进程是可以调度的基本单位; 交往性:同时运行的进程可能发生相互作用; 异步性:进程以各自独立,不可预知的速度向前推进; 结构性:每个进程有一个PCB。,2.2.9 进程间相互关系,相关进程 同一家族的进程 可以共享文件,需要相互通讯, 父进程可以监视子进程,子进程完成父进程交给的任务。 无关进程 没有逻辑关系、同时执行的进程。 有资源竞争关系,互斥、死锁、饿死。,2.2.10 进程间相互作用,1. 直接相互作

7、用:发生在相关进程之间,2. 间接相互作用:发生在任何进程之间,R,P2,P1,sync,send,receive,P1:,P2:,hold,wait,2.2.11 进程的创建与撤销,进程的创建 UNIX:pid=fork(),exec(prog,args) 建立PCB,分配内存,加载程序,入就绪链 进程的撤销 UNIX:exit() vs. kill 去配资源,撤销PCB,通知父进程 除初始进程外,其它进程由(父)进程创建,并形成进程家族。,例如,在 UNIX 系统中通过系统调用fork可创建新进程,新进程由原来进程的地址空间的复制组成,这种机制利于父进程与子进程方便进行通信.两个进程都继续

8、执行位于系统调用fork之后的指令,但新进程返回值为0;而父进程返回值为子进程的进程标识符.,# include void main ( int argc, char * argv ) int pid;pid=fork ( );if ( pid 0) printf ( stderr, “ fork failed” );exit (-1 ); else if ( pid =0 ) execl (“/ bin /1s” , “ 1s” , null);else wait (null);print (“child complete”);exit (0); ,通常在系统调用Fork 之后,一个进程会使

9、用系统调用execl ,以用新程序来占据原进程的内存空间.windows NT操作系统支持两种方式:父进程地址空间可以被复制,或者父进程可以提供程序名让操作系统把它装入新进程的地址空间.,2.2.12 进程与程序的联系和差别,进程与程序的联系 进程包括一个程序; 进程存在的目的就是执行这个程序; 进程与程序的差别 进程是动态的,程序是静态的; 进程有生存期,程序可长期保存; 一进程只执行一个程序,一程序可对应多个进程,2.3 线程(Thread),线程定义:进程中一个相对独立的执行流。 引入原因:进程上下文切换速度慢。(寄存器,进程地址空间) 线程切换:地址空间不变(同一进程)。(light

10、weighted) 名词解释:heavy weighted process: 重进程light weighted process: 轻进程,2.3.1 线程结构,静态数据,程序代码,栈,栈,寄存器,寄存器,线程1:,线程2:,进程,动 态 堆,内存,2.3.1 线程结构,Task:,2.3.2 线程特点,线程特点 上下文切换(context switch)速度快; 地址空间不变(地址映射寄存器不变, 快表不变) 系统开销(overhead)小; 通讯方便。 线程与轻进程(Light weighted process) 一般线程与轻进程通用; 在Solaris系统中线程与轻进程不同。,2.3.3

11、 系统线程与用户线程,用户级别线程 用Lib实现多线程创建和调度 系统只见一个线程 同一进程中的多个线程不能并行 一个线程进入系统受阻,其它线程不能运行。 系统级别线程 操作系统创建和调度 系统可见所有线程 同一进程中的多个线程可以并行 一个线程进入系统受阻,其它线程可以运行,2.3.4 Solaris线程,CPU,task1,task2,task3,kernel,User level thread,Lightweightprocess,Kernelthread,2.3.4 Solaris线程,User level thread: 由Lib程序支持(创建调度) Light weighted p

12、rocess(LWP): 由Lib程序支持 每个task至少一个LWP 用戶级别线程与LWP可以多对多 只有与LWP相联系的用户线程向前推进 Kernel level thread: 由kernel 支持 每个核心线程与唯一一个LWP对应 核心线程可与CPU多对多,可对一,2.3.5 Windows 2000/XP的CPU调度,Main Feature: Thread level scheduling; Real time + foreground + background; real time: no deadline scheduling; foreground: GUI window b

13、ackground: non-interactive Preemptive + dynamic priority + RR + Feed back; Symmetric Multi-Processor(SMP) support;,优先级别,16个实时优先级(16-31) 一些内核线程 应用程序提升为实时优先级需要有权限 不是真正意义上的实时调度 15个可变线程优先级(1-15) 基本优先级 vs. 当前优先级 可动态提升 运行完一个quantum之后自动下降 1个系统线程优先级(0),优先级提升,优先级提升 IO操作完成 事件等待结束 前台进程中的线程完成一个等待操作 由于窗口活动而唤醒GUI

14、线程 就绪超过一定时限,未获得处理机 优先级提升不会超过15,抢占CPU,抢先情形 被唤醒线程优先级高于运行进程优先级; 某线程的优先级动态变化 被抢先线程 回到相应就绪队列 时间配额 实时线程:重新分配完整时间配额 其它线程:保持剩余配额,时间配额(quantum),配额长度:6-36 时钟中断(15ms发生一次)减3,2-12次时钟中断(30ms-180ms)配额用完 配额用完后进入就绪队列,优先级下降,SMP上的线程调度,线程与CPU的亲合关系 每个进程线程有一个处理器亲合掩码,缺省为所有处理器的集合 线程继承其进程的亲合掩码 进程和线程可以修改SetProcessAffinityMas

15、k, SetThreadAffinityMask;,SMP上的线程调度,线程的理想处理器(Ideal processor) 首选处理器: 第二处理器:(在内核线程控制块中) 基于进程控制块索引值在线程创建时随机确定,分散各个线程选择。线程可修改SetThreadIdealProcessor,就绪线程的处理器选择,有空闲处理器 首选处理器 第二处理器 当前执行处理器(正执行调度代码) 由高到低顺序找空闲的处理器 无空闲处理器,考虑抢先 首选处理器 第二处理器 可运行编号最大处理器 不能抢先进入相应的就绪队列,处理器对就绪线程的选择,空闲处理器调度 线程上次在此CPU上运行(二级缓冲利用) 线程的

16、理想处理器是该CPU 处于就绪状态时间超过2个quantum 优先级别大于等于24,2.3.6 Java线程,线程类: class Worker1 extends Thread public void run() System.out.println(“I am a worker thread”); ,2.3.6 Java线程,public class First public static void main(String args )Worker1 runner = new Worker1();runner.start();System.out.println(“I am the main

17、 thread”); ,Java 线程管理API,suspend(): 挂起当前运行线程 sleep(): 当前运行线程等待指定时间 resume(): 唤醒指定挂起线程 stop(): 终止一个线程,Java线程状态,New: new() Runnable: start(), resume() Blocked: suspend() Dead: stop(),Java线程状态转换,Java doesnt distinguish runnable and running,JAVA Thread与JVM,Java thread is supported by JVM JVM is built on

18、 top of host OS How java thread is mapped to the OS thread is decided by a particular implementation of JVM Windows NT JVM: 1 to 1 model; Solaris JVM: m to n,3.4 作业管理,作业及其分类 作业与作业步 批处理作业与交互式作业 批处理作业管理 作业控制语言与作业说明书 批处理作业状态及转换 批处理作业的调度 批处理作业的控制 交互式作业管理 交互式命令语言与命令解释程序 终端用户的建立与撤销 终端用户的登录与注销,作业及其分类,作业(jo

19、b) 用户要求计算机系统为其完成的信息处理任务的集合 作业步(job step) 作业处理过程中一个相对独立的步骤,作业步之间具有一定逻辑关系: (1) 顺序 (2) 并发,批处理作业的管理,作业控制语言与作业说明书 作业控制语言(Job Control Language) 用户提交批作业时用于书写作业说明书的语言 JCL 操作系统与用户之间界面形式之一 操作系统相关(不统一) GCOS-8 的JCL 约60个语句,常用1020个 格式 1列 8列 16列 73列 80列 语句名 选择项(参数) 注释,1. SNUMB语句 1列 8列 16列 73列 80列 $ SNUMB 作业标识, 紧急级

20、别 2. IDENT语句 1列 8列 16列 73列 80列 $ IDENT 帐号, 用户标识3. USERID语句 1列 8列 16列 73列 80列 $ USERID 系统目录$口令,4. ENDJOB语句 1列 8列 16列 73列 80列 $ ENDJOB5. OPTION语句 1列 8列 16列 73列 80列 $ OPTION FOR77,GONOGONOLOAD 6. FOR77 语句 1列 8列 16列 73列 80列 $ FOR77 ASCII, FORM,NLNO,.,7. EXECUTE语句 1列 8列 16列 73列 80列 $ EXECUTE8. PROGRAM语句

21、1列 8列 16列 73列 80列 $ PROGRAM 9. SELECT语句 1列 8列 16列 73列 80列 $ SELECT 文件名$口令,10. PRMFL语句 1列 8列 16列 73列 80列 $ PRMFL Code, Access, Mode, 文件名 (访问指定文件,Code=S*,C*,H*; Access=R/W; Mode=S/R) 11. LIMITS语句 1列 8列 16列 73列 80列 $ LIMITS TIME,SIZE,MAXOUTPUT12. LABEL语句 1列 8列 16列 73列 80列 $ LABEL,13. GOTO语句 1列 8列 16列 7

22、3列 80列 $ GOTO LABEL14. IF语句 1列 8列 16列 73列 80列 $ IF 条件,LABEL (只能向前转移,不可构成循环),作业说明书:JCL语句的序列 例1:编译,装配,运行 1列 8列 16列 73列 80列 $ SNUMB JOB1,40 $ IDENT 123,USER1 $ OPTION FOR77 $ FOR77$ EXECUTE $ LIMITS 20,64k,0,1000 $ ENDJOB,FORTRAN77源程序,例2:只编译 1列 8列 16列 73列 80列 $ SNUMB JOB2,30 $ IDENT 234,USER2 $ USERID

23、CATA2$PASSWORD2 $ OPTION FOR77,NOLOAD $ FOR77 $ PRMFL S*, R, S, SorrceFilename $ PRMFL C*, W, R, CodeFilename $ ENDJOB,例3:只装配 1列 8列 16列 73列 80列 $ SNUMB JOB3,30 $ IDENT 345,USER3 $ USERID CATA3$PASSWORD3 $ OPTION FOR77,NOGO $ SELECT ObjectFile1 $ SELECT ObjectFile2 $ EXECUTE $ LIMITS 30,128k,1000 $ P

24、RMFL H*, W, R, ExecutableFilename $ ENDJOB,例4:只执行 1列 8列 16列 73列 80列 $ SNUMB JOB4,10 $ IDENT 456,USER4 $ USERID CATA4$PASSWORD4 $ PROGRAM $ LIMITS 20,100k,1500 $ PRMFL H*, W, R, ExecutableFilename $ ENDJOB,批作业状态及状态转换,主机,输入井,输出井,输出机,输入机,作业,结果,SPOOLing输入,作业调度(1),作业调度(2),SPOOLing输出,退出,作业控制块(Job Control

25、Block): JCB: 作业存在的标志,其中保存系统对作业进行管理所需要的全部信息 JCB由SPOOLing输入建立,SPOOLing输出撤销,作业调度(1,2)使用 作业表 JCB表,保存在盘上,2.4.3 作业控制块与作业表,JCB内容 作业标识 用户标识 用户帐号 调度参数 资源需求 作业状态 输入井地址 输出井地址 进入时间 开始处理时间 结束时间 资源使用情况,2.4.4 批处理作业的调度,考虑因素 系统效率 单位时间内处理尽量多的作业 资源利用率 各种资源充分利用 用户满意程度 长短作业用户都能接受 度量标准 作业平均周转时间(average turnaround time) 所

26、有作业周转时间作业道数 作业平均等待时间(average waiting time) 所有作业等待时间作业道数,批处理作业调度算法,先到先服务(FCFS) 优点:“公平” 缺点:低效 短作业优先(SJF-Shortest Job First) 优点:平均周转时间最短 缺点:长作业可能“饿死” 最高响应比优先(HRN-Highest Response Ratio Next) 响应比 = 等待时间/处理时间 效果 同时到达作业,短者优先 长作业随等待时间增加响应比提高,批处理作业调度算法,最高优先数算法(HPF) 优先数确定 用户规定优先数 系统计算优先数 高优先数高收费 分类排队算法 例1: C

27、PU bounded (1) IO bounded (1) CPU and IO balanced (1) 例2: long job (1) medium job (2) short job (4),批处理作业调度程序,批处理作业调度程序(1) 按调度算法选择后备作业 作业由“后备”到“执行”状态的转换 为作业创建作业控制进程 批处理作业调度程序(2) 输出作业结果 作业由“完成”到“退出”状态的转换,批处理作业调度程序(1),内存已有N道作业,输入井中有“后备”作业,在JCB表中选一“后备”作业,状态改为“执行”,为其创建作业控制进程,等待,等待,T,F,F,T,批处理作业调度程序(2),有

28、终止的作业控制进程,取一终止的作业控制进程撤销该作业控制进程,作业状态改为“完成”,作业调度(1)因内存有N道作业而等待,有等待“完成”的SPOOLing输出进程,等待,唤醒,唤醒一个,F,T,T,F,T,F,7.2.5 批处理作业的控制,读入作业内容 释放输入井空间,顺取作业控制语句,分析,是结束语句,执行该作业步骤 (可能建立子进程),申请输出井空间输出作业报告,作业调度(2)等待,唤醒,自我终止,F,T,T,F,2.3 交互式作业的管理,交互终端命令与命令解释程序 交互终端命令 $命令名称 选择项 参数 命令解释程序 part of the operating system shell,

29、 user mode program on top of OS kernel 终端用户的创建与撤消 创建用户 撤销用户 终端用户的注册与注销 登录 注销,命令解释程序,提示符$,读入终端命令,分析,Logout,内部命令,处理,建立子进程,后台命令,等子进程结束,输出子进程号,记帐,T,F,T,F,F,T,终端用户的建立与撤销,用户登记文件(UNIX: /etc/PASSWD),创建分时用户:用户名,口令,帐号,资金(1) 创建用户目录;(2) 填写PASSWD文件 撤销分时用户:用户名,口令(1) 撤消所有文件和目录;(2) 结帐;(3)清用户登记文件。,终端用户的登录与注销,1. Logo

30、n (login)username: Zhangpassword: *核对用户名和口令$ 2. Logoff (logout)(1) 显式注销$ logoff系统记帐(2) 隐式注销eg. 5分钟未输入命令 (GCOS-8),例子: 设T0时刻系统中有五道待处理的作业,具体描述如下:作业标识: J1 J2 J3 J4 J5 进入时间: t0-50 t0-40 t0-35 t0-20 t0-10需要时间: 30 90 50 20 20设内存中可同时容纳两道作业,处理机调度采用RR算法(时间片长度=50ms), 对于如下作业调度算法分别求各作业完成时间和平均周转时间(忽略IO时间及系统开销).(1) FCFS (2) SJF,(1) FCFS,平均周转时间=(110+220+195+220+270)/5=203(分),J5 J4 J3 J2 J1,t0,T,40,60,140,200,260,平均周转时间=(110+80+175+220+270)/5=171(分),(2) SJF,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报