操作系统第6-7章.ppt

上传人:本田雅阁 文档编号:2905421 上传时间:2019-06-03 格式:PPT 页数:70 大小:178.52KB
返回 下载 相关 举报
操作系统第6-7章.ppt_第1页
第1页 / 共70页
操作系统第6-7章.ppt_第2页
第2页 / 共70页
操作系统第6-7章.ppt_第3页
第3页 / 共70页
操作系统第6-7章.ppt_第4页
第4页 / 共70页
操作系统第6-7章.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《操作系统第6-7章.ppt》由会员分享,可在线阅读,更多相关《操作系统第6-7章.ppt(70页珍藏版)》请在三一文库上搜索。

1、计算机操作系统,第一章 操作系统引论 第二章 作业界面管理 第三章 文件管理 第四章 存储管理 第五章 设备管理 第六章 进程及处理机管理 第七章 操作系统结构和程序实现,第六章 进程及处理机管理,第一节 概述 第二节 进程的定义和特征 第三节 进程调度 第四节 进程通信 第五节 死锁,概述,进程与操作系统关系:五大功能之一 操作系统的核心功能及特点 为什么要引入“进程”的概念,进程与O.S关系:五大功能之一,高级(宏)处理机管理:即作业调度,确定系统中哪些作业将获得CPU 低级(微)处理机管理:即进程调度,确定系统中哪个作业的哪个进程将获得CPU,操作系统核心功能,调度进程:决定哪个进程运行

2、、挂起、交换等; 分配内存:哪个进程得到内存; 管理和控制文件系统:检查“许可证”、修改目录、路径等; 处理系统调用:由用户的进程发“请求”,系统根据资源的充分利用,统筹按排; 处理输入输出的请求和工作。,操作系统核心的特点,常驻内存 不是一个顺序程序,是一个“有头无尾”的程序模块装配而成,是一组服务功能的集合. 主要通过表格组合,并发协调进行(系统态,用户态),为什么要引入“进程”的概念,关键是“共享资源”引起的 近代操作系统编程设计的一种新概念 手编-符号-高级语言-进程,线程 顺序执行与并发执行的区别?,顺序执行与并发执行的区别,顺序执行: 并发执行: 程序具有封闭性 程序失去封闭性 独

3、享资源 共享资源(互为存在条件) 可再现性 程序与“计算”不再一一对应 有相互制约,第六章 进程及处理机管理,第一节 概述 第二节 进程的定义和特征 第三节 进程调度 第四节 进程通信 第五节 死锁,进程的定义及特征(1),进程:进程是OS 动态分配和执行的基本单元(构件)。操作系统的五大功能是由许多进程组合完成的。 程序和进程的区别 进程的五个基本特征,进程的定义及特征(2),在任务执行过程中切割成独立的单元,涉及到进程(Process)的组成内容、任务激活(Active)以及线程(Thread)。 线程是近年来由“进程”发展而来,一般定义为程序执行中单个顺序的流控制,比进程优越之处是执行中

4、占有相同的内存空间。在现代操作系统中,进程是分配单元,而线程是执行单元。,进程的五个基本特征,动态性:进程是程序在并发系统内的一次执行,一个进程有一个从产生到消失的生命期; 并发性:正是为了描述程序在并发系统内执行的动态特性才引入了进程,没有并发就没有进程; 独立性:每个进程的程序都是相对独立的顺序程序,可以按照自己的方向和速度独立地向前推进; 制约性:进程之间的相互制约,主要表现在互斥地使用资源和相关进程之间必要的同步和通讯; 结构性:进程 = PCB + 程序 + 数据集合。,程序和进程的区别,程序 进程 静态的指令序列 动态的程序执行过程 一程序可对应 一个进程对应至少有 多个进程 一个

5、程序在工作 永久性软件资源 暂存资源,动态生之过程,第六章 进程及处理机管理,第一节 概述 第二节 进程的定义和特征 第三节 进程调度 第四节 进程通信 第五节 死锁,进程调度,进程描述分三部分 进程的三个基本状态及转换 进程调度算法举例,进程描述分三部分,进程对应的程序:进程的算法描述 数据集合:数据部分,工作区 进程控制表(PCB):是操作系统对CPU进行控制的依据,进程的三个基本状态及转换,等待,准备,执行,完成,提交进入,资源不足,得到资源,时间片到,调度选中进入,等待,准备,执行,完成,提交进入,资源不足,得到资源,时间片到,调度选中进入,活动 阻塞,静止 阻塞,静止 就绪,活动 就

6、绪,进程的状态及转换,页面阻塞 I/O阻塞 盘带阻塞,执行,完成,资源不足,得到资源,时间片到,调度选中进入,队列:高优先级队列:中优先级队列:低优先级,提交进入,进程调度算法举例,先来先服务(FCFS) 优先数法(Priority) 按进程类型(系统/用户;联机/脱机;交互/批量) 按资源要求(时间、占内存大小、多道分配) 动态优先(占CPU及内存时间) 时间片轮转,轮转循环调度(Time Slice),第六章 进程及处理机管理,第一节 概述 第二节 进程的定义和特征 第三节 进程调度 第四节 进程通信 第五节 死锁,进程通信,同步与互斥 临界区的概念 原语的概念,同步,进程进程 时间次序上

7、受到某种限制 相互清楚对方的存在及其作用,交換信息 往往指有几个进程共同完成一个任务 举例:生产者与消費者之间,发送者与接收者之间,写者与读者之间,供者与用者之间,互斥,进程资源进程 竞争到某一物理资源时不允许其它进程工作 相互之间不一定清楚其它进程情况 往往指多个任务多个进程间通讯制约故更广泛 举例:交通十字路口,单轨火車的拨道岔,窄桥相对通行问题等,临界区,一个进程对公共变量(或单位共享资源量)部分的操作,每次只准一个进程进入临界区,进入后不允许其它进程进入。例如,计算机中的打印机是互斥资源,它只能“停停打打”而不能中途去打印另一任务。,临界区管理: 一次只准一个进程进入临界区 本进程结束

8、负责通知下一进程 进程调度,不能阻塞,A进程 B进程 分配表被封锁否? 分配表被封锁否? 对B进程封锁分配表 对A进程封锁分配表 分配资源(例如打印机) 分配工作、结束后释放资源 撤消对B进程封锁 撤消对A进程封锁,等,等,原语,原语本身不是一条机器指令而是由若干条指令组成,因此可理解为机器指令的扩充。在对进程的管理中完成某种特定功能,为进程有效管理提供的若干基本操作。一般在执行中一次完成不能被打断,因此设计的原语不能太长。,(一)加锁/开锁(LOCK/UNLOCK)原语,共享资源,设置一锁位: w = 0 设共享资源可用;w = 1 设共享资源不可用 LOCK(w) L:if w=0 the

9、n w:=1 else go to L: UNLOCK(w) w:=0,锁原语: 优点是实现互斥简单;缺点是效率很低,W = 0 ?,W:=1,N,Y,访问临界区,退出临界区,(二)信号灯(量)(Semaphore)及P-V操作,1. P、V操作是同步原语,即在执行期间有时间制约关系,不可分割 2. 用S信号灯指示一进程工作 3. 信号量 S,Q S是初始值非负的整数变量,不是二元变量(0/1),代表资源数; Q是初始为空的队列,P操作原语(荷兰语的发信号)P(S) :,P操作一次,S1 (一次P操作,请求分配一资源, S := S1) S 0 表示有资源,当前进程可执行 S0 无资源,则当前

10、进程进入Q队列的队尾等待,等另一进程执行V(S)操作后释放资源。此时,|S| 绝对值表示等待资源进程的个数要求,V操作原语(荷兰语的等待)V(S) :,V操作一次,S+1 (释放一单位量资源 S:=S+1) S 0 (有资源,告诉其它进程可以继读) S 0 (等待队列中另一进程释放资源后才能执行),生产者与消费者模型(OS典型例子),S1仓库剩余容量,初始值S10=1 S2仓库中信息量,初始值S20=0 Producer:begin Consumer:begin produce: consume: 生产产品 P(S2); P(S1); 从仓库取出产品 将产品放入仓库内 V(S1); V(S2)

11、 消费产品 告诉消费者有产品 go to consume go to produce end; end;,模拟执行,序号 生产 消费 S1 S2 说明 0 1 0 1 P(S1) 0 产品入库 2 V(S2) 1 告诉消费者 3 P(S2) 0 取走产品 4 V(S1) 1 告诉生产者仑库空 0 1 0 可以反复执行 1,用P、V操作实现互斥模型,设S初始值为1 A进程 : B进程: P(S) P(S) 互斥工作段 互斥工作段 V(S) V(S) ,模拟执行,序号 A B S 说明 0 1 1 P(S) 0 B进入占资源 2 P(S) -1 A进入无资源 3 V(S) 0 B释放资源A解封 4

12、 V(S) 1 A释放资源 0 可反复执行,PV操作原语特点,优点: 克服了LOCKUNLOCK 原语中CPU 忙碌查询、等待现象 不仅能解决进程同步,还能解决互斥问题 缺点: 增加程序复杂性,尤其交换一批信息时效率低 程序不正常退出时,查找做了没有做不方便,(三)消息缓冲通信原语,高级通信原语,用于一组信息发送与读取: Send用于发送消息 发送消息前,在本(甲)进程空间中开一发送区 使用send原语: SEND(A) SEND程序向系统申请一个消息缓冲区,将发送区中消息正文、长度和发送进程名填入 将缓冲区挂到接收进程的消息链链尾 退出SEND程序甲进程继读执行向系统申请一个消息缓冲区,Re

13、ad用于读取 读取消息前,在乙进程空间中开一接收区 使用read原语: READ(B) READ程序向系统申请一个消息缓冲区,将笫一个消息缓冲区中的内容,消息正文、长度和发送者名字,填入接收区 将缓冲区从消息链中摘除,释放缓冲区 退出READ程序,乙进程继读执行,第六章 进程及处理机管理,第一节 概述 第二节 进程的定义和特征 第三节 进程调度 第四节 进程通信 第五节 死锁,死锁,死锁的概念 死锁的有向图表示 产生死锁的必要条件 死锁的处理途径,死锁的概念,死锁是两个或两个以上的进程中的每一个,都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。例如,交通阻塞现

14、象,原因是共享资源(道路)。共享资源的严重缺乏,多个进程对共享资源的竞争,尤其是管理者的调度策略不高明或失误,使它们都处于无止境的等待状态。,死锁的有向图表示,R1,R2,P2,P1,进程P1申请资源R1,进程P1占用资源R2,形成环路则死锁,产生死锁的四个必要条件(1),1.互斥使用:在一段时间内,一个资源只能由一个进程独占使用,若别的进程也要求该资源,则须等待,直至其占用者释放; 2.保持和等待:允许进程在不释放其已分得资源的情况下请求并等待分配新的资源;,产生死锁的四个必要条件(2),3.非剥夺性:进程所获得的资源在未使用完之前,不能被其它进程强行夺走,而只能由其自身释放; 4.循环等待

15、:存在一个等待进程集合,P0正在等待一个P1占用的资源,P1正在等待一个P2占用的资源,Pn正在等待一个由PO占用的资源。,产生死锁的四个必要条件(3),可以通过破坏这四个必要条件中的任何一个来预防死锁的发生。为死锁的预防提供多种途径。,解决死锁问题的基本方法,一是破坏产生死锁的四个必要条件中的一个或多个,使系统绝不会进入死锁状态,这就是死锁的预防; 二是产生死锁的四个必要条件有可能成立,但在资源动态分配的过程中使用某种办法防止系统进人安全和死锁状态,这就是死锁的避免; 三是允许系统产生死锁,然后使用检测算法及时地发现并解除它。,计算机操作系统,第一章 操作系统引论 第二章 作业界面管理 第三

16、章 文件管理 第四章 存储管理 第五章 设备管理 第六章 进程及处理机管理 第七章 操作系统结构和程序实现,第七章 操作系统结构和程序实现,操作系统研制过程: 总体设计:制订设计原则和要求、功能设计和结构设计等方案论证 具体设计:程序框图、库程序和程序设计 调试:分块和分阶段实现 维护:建立或选用专门的维护程序,操作系统的程序概念,程序 = “算法” + 数据 程序是“函数”的集合 操作系统是最大型的系统软件 众多的应用软件是需要在操作系统基础上运行 现代软件需要优良的“包装” 学习“操作系统”的“顶峰”是会编写操作系统,系统结构设计原则,性能完善,系统效率高 系统可靠性高 易于掌握:面对一般

17、用户、系统管理员和程序开发人员 适应性要强:具有可扩充性和可移植性,结构方案,模块结构 层次结构 内核扩充结构 层次化核扩充结构 微内核层次化核扩充结构,模块接口法,用一个模块实现一个简单的功能 模块实现比较容易 模块间相互依赖和“链接”很复杂 实现整个系统的总功能不太容易 调试和修改,牵动面很大,模块接口图,模块,模块2,模块4,模块6,模块7,模块8,模块3,模块5,第五层 第四层 第三层 第二层 第一层 (全序)层次结构图,模块,模块3,模块5,模块0,模块2,模块4,模块6,模块7,模块8,模块9,第三层 第二层 第一层 (半序)层次结构的“局部循环”,模块,模块2,模块5,模块3,模

18、块4,层次结构的设计方法: 自底向上法和自顶向下法,自底向上法,自顶向下法,操作命令,功能模块,功能模块,操作系统功能模块,机器硬件,核扩充法,裸机,操作系统核心(第0层),其他系统软件(第1层),应用软件(第2层),用户,结构方式 系统效率 可靠性 适应性 易懂性 实现难度 模块结构 一般 低 差 易 容易 层次结构 较高 较好 一般 易 较难 内核 扩充结构 较高 较好 易扩充 较难 较难 微内核 扩充结构 高 好 强 难 较难,UNIX版本7+(V6,III)内核源代码举例,1.进程初始化(main.c) 2.陷井(trap指令)、中断、系统调用(sys)及进程管理 3.程序交换、基本设

19、备管理 4.文件、文件目录、文件系统(sys)及管道 5.面向字符的特殊文件 6.数据结构(文件) 7.附录 个模块、源程序行程序代码(其中行汇编指令),UNIX核心的进程初始化过程,0号块:(父进程)main.c、包含系统引导及其它 1号块:管理文件系统 2、3号块:i节点表,管理文件目录及其文件 init getty login /etc/passwd (用户登录名:口令域:用户号:用户组号:用户全名:目录:默认Shell) Shell 命令 执行 生成子进程执行,父进程sleep 执行完 唤醒,DOS系统初始化过程,冷启动:系统加电,进入ROM BIOS 热启动:系统复位操作 对硬设备自

20、检 显示出错或仃机 INT 系统自举 读盘、检测系统 DOS引导记录 IBMBIO.COM初始化 IBMDOS.COM初始化 显示DOS版本信息 执行SYSINT 打开CONFIG.SYS安装 COMMAND.COM AUTOEXEC.BAT 显示日期和时间,出命令提示符,等候用户输入命令,成功,操作系统的分层原则: 1. 按程序的嵌套情况排成有序的层次; 2. 把活动频繁的模块和为很多模块所公用的模块放在最低软件层,存储器管理模块设置在较低软件层; 3. 为获得可移殖性和可适应性而设置的软件层,应分别放在较低的层次和最外层。 4. 在严格的层次结构中,只允许高层调用低层中的软件,决不允许低层

21、调用高层的软件。在高层调用低层的软件时的方法: (1) 高层仅能调用它下一层中的软件; (2) 高层能调用所有低层的软件; (3) 高层能部分地调用低层中的软件。,数据词典(按字母顺序),1. 系统过程(主程序,子程序等) 2. 系统文件和过程(命令及系统调用) 3. 符号及参量定义, 例如 #define . 4. 源代码交叉参考表 5. 压缩及补丁工具,可移植性编程技巧(1),1. *.h头文件(模块) 2. 条件编译 #define UNIX 1 #define TOPS_20 0 #define VAX_VMS 0 #define IBM_UTS 0 . #if UNIX case b

22、 : if (argc) speed = case c : image = TRUE; break #endif /* UNIX */ .,3. UNIX中工具软件 make makefile (编译时间监控软件),/usr/include/*.h /usr/sys/makefile, conf.h, conf.h.all, conf.modul, confinfo, name.c, name.c.all, c.c, l.s, CURversion.c, version.ed, linesw.c, *.lib, unix.sym. /unix,/nunix,/ounix,/vunix,nunix: nlib1 nlib2 nlib3 nlib4 l.o c.no linesw.no name.no ed CURversion.c /dev/null cc -c CURversion.c rm -f /nunix ld -Y 4000 -pbxo /nunix CURversion.o l.o c.no linesw.no name.no #touch nunix #sync,4. 内核模块的增减(尤其是显示模块) 5. 高级语言库函数、操作系统系统调用 6. BBS上交流 7. .,

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

当前位置:首页 > 其他


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