操作系统第1章-第4章(华中科技大学版).ppt

上传人:小飞机 文档编号:6049817 上传时间:2023-09-18 格式:PPT 页数:227 大小:1.08MB
返回 下载 相关 举报
操作系统第1章-第4章(华中科技大学版).ppt_第1页
第1页 / 共227页
操作系统第1章-第4章(华中科技大学版).ppt_第2页
第2页 / 共227页
操作系统第1章-第4章(华中科技大学版).ppt_第3页
第3页 / 共227页
操作系统第1章-第4章(华中科技大学版).ppt_第4页
第4页 / 共227页
操作系统第1章-第4章(华中科技大学版).ppt_第5页
第5页 / 共227页
点击查看更多>>
资源描述

《操作系统第1章-第4章(华中科技大学版).ppt》由会员分享,可在线阅读,更多相关《操作系统第1章-第4章(华中科技大学版).ppt(227页珍藏版)》请在三一办公上搜索。

1、操作系统原理,操作系统是如何工作的?,为什么要学习操作系统?,2,操作系统的重要性,地位:操作系统是现代计算机、软件的基础收获:通过学习操作系统的,我们可以:掌握底层、大型软件的构造,及实现方法,3,掌握并行处理的思想 只有一个CPU在工作 如何使计算机同时完成多项任务呢?,程序间合作的方法 如:多个独立的程序,合作完成一项复杂任务 如何正确地保证它们有序地执行呢?,死锁的处理 一些复杂的系统常常会死机。死机的原因有那些,和程序间的合作有关吗?,为以后进行软件系统的开发,打好基础,4,了解操作系统的基本原理、概念 掌握操作系统的实现技术 通过实例的分析,培养解决问题的能力,如何学习操作系统,提

2、问:没有操作系统,计算机能否运行?计算机中为什么要配备操作系统?,配备操作系统的目的,管理各种软、硬件资源,提高资源的利用率方便用户使用计算机,(2)原理 并发处理:让一个CPU与所有的设备同时工作,二、操作系统,1.早期的操作系统(1)目标 提高CPU的利用率,将一个物理上的单处理机 改造成逻辑上的多处理机。为多个用户服务,(3)采用的软件技术 多道程序设计技术:多个程序在内存执行,2.当今的操作系统及发展(1)多样化(2)注重用户操作界面的友好(3)多处理机的并行处理(4)嵌入式操作系统(5)微软的观点,制定资源的分配策略及实施技术 解决程序之间的相互制约、及合作 引入虚拟机的概念,1.2

3、 操作系统的形成和发展,(1)受应用 需求 的推动(2)受硬件结构、软件技术的制约和推动,从时间上,可分为三个阶段:形成、完善、发展,从硬件载体上,可分为三个主要的分支:多用户操作系统(大、中、小型计算机、服务器,研究的主体)单用户操作系统(个人计算机)嵌入式操作系统(无完整的计算机),9,手工操 作阶段(无管理软件),多处理机、多核 系统,单用户操作系统网络操作系统分布式操作系统,嵌入式操作系统,操作系统形成和发展的各个阶段,三.多道程序设计技术,10,1、一个程序在内存的运行(单道程序设计),中央处理机外部设备,原因?,空闲,解决方法:在内存中,存放多个可运行的用户程序,11,2、多个程序

4、在内存的运行(多道程序设计),空闲?,12,(1)什么是多道程序设计技术 在主存中同时存放几道相互独立的程序;在管理程序控制之下,相互穿插地运行;当某道程序不能继续运行时(如等待外部设备传输数据):便将另一道程序投入运行。,13,(2)多道运行的特征 多道 宏观上并行 微观上串行执行系统采用多道程序设计技术后,就形成了操作系统。,14,操作系统形成,批处理,手工操 作阶段,联机批处理,脱机批处理,执行 系统,实时系统,问题:只有一个CPU,在内存中运行的每一个程序 如何才能得到CPU、并保持对其的占有的呢?,15,1.什么是多道成批处理 所有的作业输入外存;根据资源条件、及调度原则 选择一批作

5、业进入内存 进入内存的作业按某种次序交替运行 当前运行的程序,只要不自动放弃CPU 就一直运行下去。即:CPU不能被强行剥夺,第一种:系统不干涉程序的执行四.多道成批处理、及批量操作系统,16,2.批量操作系统 采用多道、成批处理的操作系统,称为批量操作系统。也称为批处理系统。它是操作系统的一种基本类型。,作业运行的方式 系统把用户提交的作业送入计算机外存;在适当的时机,由系统的作业调度程序在外存选择一批作业,装入内存进行多道运行。,特点:脱机操作(即:用户只需将程序提交给系统)合理搭配作业 多道运行,17,优点:资源利用率高、系统吞吐量大 缺点:(1)用户作业的周转时间长,或对用户的响应时间

6、慢;(2)用户无法与程序交互,使用不方便,解决?第二种:由系统控制内存中各个程序的执行,18,五.分时技术与分时操作系统 1.分时技术 产生的原因:用户希望 能与程序交互、有较快的响应时间快、甚至独占计算机,分时技术:把处理机的时间划分成很短的时间片(如几百毫秒),轮流分配给各个联机的作业使用,如果某个作业在分配的时间片用完后,计算仍未完成,就暂时中断执行,等待下一轮,19,作业i 作业i+1 作业n 作业i,提问:与批处理相比,CPU的效率有没有降低?,即:CPU的占用是可剥夺的。,20,3.分时操作系统的特点 多路调制性(一台主机与多个用户终端设备相连接)独占性 交互性,作业运行的方式 一

7、台计算机与多个终端设备连接 用户以联机的方式使用计算机 因此,也称为交互式系统。,21,六实时操作系统 什么是实时?,说明:实时处理,也可由分时操作系统 提供的实时处理功能来实现。(实时用户优先使用CPU),1.实时操作系统的定义 对外部输入的信息 能够在很短的、规定时间内处理完毕 并作出反应的一种专用操作系统,22,2.实时处理的类型(1)实时控制(必须物理实时)如生产过程控制、作战指挥等。(2)实时信息处理(可以逻辑实时)如订票系统、情报检索等。,3.实时操作系统的特点 及时响应 高可靠性和安全性 系统的整体性强,23,批处理,手工操 作阶段,联机批处理,脱机批处理,执行 系统,操作系统形

8、成,实时系统,多处理机、多核 系统,单用户操作系统网络操作系统分布式操作系统,嵌入式操作系统,操作系统的进一步发展,24,并行的方式:流水线(一条指令分解为多个步骤)向量机(一条指令同时在多个运算器上执行),七 多运算器的单处理机系统,CPU,特点:一条指令在多个运算器上执行目的:提高计算速度,适用性:适应面较窄,主要为专用,25,特点:CPU可分可合 分开:相当于多台主机 合作:提高计算速度(执行并行程序)多核?,八多处理机系统,26,网络操作系统除具备一般操作系统的功能外,还要增加一个网络通信模块。该模块由以下内容组成:通信接口中断处理程序;通信控制程序;各级网络协议软件,十网络操作系统,

9、5.网络OS扩充的功能(1)节点间文件的复制、远程打印、电子邮件(2)联合文件系统(3)程序的远程执行(如通过Telnet进行远程登),6.不足之处(1)节点间相互独立(2)节点对用户不透明(CORBA有改进)(3)要有一个集中管理的控制节点,28,操作系统是一个大型的程序系统 负责计算机的全部软、硬件资源的管理 即:资源的调度和分配 控制和协调并发的活动 实现信息的存取和保护,问题:操作系统是如何对资源进行管理的呢?,为用户使用计算机提供接口 使用户获得一个良好的工作环境,1.3 操作系统的概念,29,三、操作系统的资源管理功能,1.4 OS的特性及应解决的问题,一、特性并发 共享 不确定性

10、,二、应解决的基本问题、提出资源分配的策略要考虑:利用率、公平、资源的特性,、协调并发活动的关系 原因:并发活动也存在直接、间接的制约 多个独立的程序,进行合作的要求,、保证数据的一致性保证系统及用户的程序、数据不被破坏 避免与时间有关的错误,、实现数据的存取控制,操作系统的组织结构可从三个方面来描述(1)系统的结构:系统功能的分组、及如何交互(2)接口:是用户、及用户程序使用系统的手段(3)运行时的结构:定义了系统运行过程中 存在的实体类型、及调用方式,2.2 操作系统的组织结构,一、系统的结构化组织 操作系统是一组软件模块的集合。为了满足系统的正确性、可维护性和性能的要求 其功能模块,通常

11、可采用多种方法来进行组织,缺点:结构不清晰,难于理解 难以维护、及验证正确性(因数据的交叉引用),1.一体化结构 操作系统的所有功能模块和数据结构,放在一个逻辑模块中,任何子模块都不提供外部接口,优点:通信开销小,系统效率高;安全性好,应用:OS问世后被许多系统采用 典型的代表是 UNIX系统,如:AT&T system、BSD UNIX,UNIX核心的结构,优点:系统能作为抽象数据类型 或 对象的方法来实现,2.模块结构(采用面向对象技术)操作系统的功能,通过逻辑独立的模块来划分 而且相关模块间,具有良好定义的接口,缺点:存在潜在的性能退化,应用:还没有主要的商用操作系统采用此结构,特例:一

12、种试验性质的操作系统:Choices 通过快速原型法,进行操作系统的设计实验,优点:便于 系统的扩充、移植,形成不同策略的操作系统,3.可扩展内核结构 以一个公共的基本功能集合(核心)为基础 可实现各特定操作系统的一种模块化组织结构,缺点:模块间的通信开销大,降低了系统效率,应用:Mach 操作系统(卡内基-梅隆大学开发)Windows NT,主要支持:微内核操作系统,操作系统由内核和核外的多个服务(器)进程组成 内核提供最基本的功能 其他功能由服务器进程完成(采用面向对象的原则),Windows NT 的客户机服务器结构,.层次结构 操作系统由若干逻辑层组成。每一层都依赖于该层以下各层提供的

13、功能。,优点:易于扩充、可靠性增强、相当于多层虚拟机,问题:难于确定功能的划分、各层的内容和调用顺序问题:系统过于庞大,存在大量冗余,应用:在一些操作系统中只是作为设计的一种指导性原则(尽可能),经典案例:Dijkstr的THE系统,意义:通过它探索了怎样 构造一个能证明其正确性的,操作系统的方法,结论:由于分层结构的限制过于严格还没有一个现代操作系统完全按此方法构造,.3 基本的硬件结构,U 指 令 流 水,V 指 令 流 水,一、微机CPU的结构及指令的执行,关键问题:预取指令的命中率,二、微机存储器的结构,速度快成本高容量小,CASH与内存的分组数据交换,CPU,0,1,31,块号,CA

14、CHE,内 存,0,31,1,m,m+1,m+31,块号,问题:在CPU上执行的有各种程序,它们执行时的权利是相等的吗?,三、处理机状态及特权指令 1.为什么要设置处理机的状态,原因:系统中有两类程序:管理程序 用户程序 管理系统资源提出使用资源的申请 控制程序运行 被控制,实现:区分处理机的当前工作状态。,目的:为操作系统建立一个保护环境 对用户程序的执行加以限制,2.什么是处理机的状态 是用来表明处理机,当前正在执行哪一类程序的一种标志。,3.处理机状态的分类(1)管态(Supervisor mode,或系统态)操作系统的程序执行时,处理机所处的状态 在此状态下运行的程序:可执行全部指令(

15、包括一组所谓的特权指令)可使用系统的全部资源(包括整个存储区),说明:有的系统又将系统态进一步细分为:核态:操作系统的内核执行时,处理机所处 的状态。在此状态下:可执行全部的指令(包括特权指令)使用全部的系统资源。,管态:操作系统的管理程序执行时所处的状态。在此状态下:仅可使用系统的部分资源 不能执行特权指令。,(2)用户态(User mode)用户程序执行时,机器所处的状态。在此态下:禁止使用特权指令、及修改机器状态 不能直接使用资源 只允许访问程序自己的存储区,某个事件 发生时:(如I/O结束、电源掉电、定点加溢出等)系统中止现行程序的运行;引出处理该事件的程序,对该事件进行处理;处理完毕

16、后返回断点继续执行。,一、中断的概念,1.4 中断技术,所谓中断是指:,可以认为:现代操作系统的一切机制,都是由中断来激活的,二、中断的类型 按中断信号的来源可分为(1)外中断(中断)由处理机外部事件引起的中断称为外中断,简称为中断。包括输入输出中断、外中断。,(2)内中断(俘获)由处理机内部事件引起的中断称为内中断,又称为俘获(或陷阱、陷入:Trap)。包括:访管中断、程序性中断、机器故障中断等,三、中断进入,要解决的问题:(1)如何判别中断是否发生,及是哪一种中断?(2)如何保证中断处理完后返回断点继续执行?(3)如何得到该中断处理程序的地址?,另一种方式:外部设备也可通过总线来传递中断码

17、,7 6 5 4 3 2 1 0,中断码:,00010000,外部设备,.外中断触发器,问题2:如何保证中断处理完后,返回断点继续执行?,.保护现场和恢复现场(1)现场 指在中断的那一时刻,能确保当前运行程序继续运行的有关信息。主要包括三类:后继指令的主存地址 程序运行时所处的状态 当前指令的执行情况 各种通用寄存器中的内容,(2)保护现场 当中断发生时,必须立即把当前运行程序的现场信息保存在主存中,称之为保护现场。,问题:除通用寄存器外,其余的现场信息又是放在什么地方呢?,(3)恢复现场 被中断的程序重新运行之前,把该程序的现场信息,从主存送至原有的现场环境中。称为恢复现场。,.程序状态字(

18、PSW)(1)什么是程序状态字程序状态字是反映程序执行时,当前机器状态(在指令一级)的一组代码。,主要内容包括:后继指令的内存地址 当前指令执行情况 机器处于何种状态 程序执行时应屏蔽的中断(为什么?)寻址方法、编址、保护键,(2)程序状态字的实例 IBM 370 机 运行程序的PSW放在程序状态字寄存器中,PC 机(DOS)CS及IP 指令地址 lag 标志寄存器,PDP 11系列机 PC 指令计数器 PS 处理器状态寄存器(见P38图2.10),问题3:如何得到中断处理程序的地址?,.中断向量 中断向量:存放在内存中的,某类中断处理程序的入口地址、及处理器状态字的内容 中断向量表:用于存放

19、各类中断向量的一组连续的主存单元。通常在内存的低地址端。为什么?,(1)什么是中断响应 中断响应是指:当中央处理机发现已有中断请求时,中止现行程序的执行,并自动引出中断处理程序的过程。,.中断响应,(2)中断响应过程的图示,(1),(2),(3)中断响应的实质 交换指令地址及处理机的状态信息,达到:保留程序断点及处理机有关信息 自动转入相应的中断处理程序执行 思考:中断响应的功能,能否由由软件来完成?,6.中断进入及处理的全过程,*,k,k+1,当前执行程序,*L,L,PS,PC,*k+1,中 断 处 理 程 序,3级中断,k+1,1,L,k+1,中 断 触 发 器,四.软件完成的中断处理功能

20、 当硬件完成了中断进入过程后,由相应的中断处理程序得到CPU的控制权,进入了由软件实现的中断处理过程。,例:UNIX的时钟中断处理时钟中断处理,是UNIX中最具代表性的中断处理程序。其完成的功能如下:1、重新启动时钟 当时钟中断发生后,有些处理机要求由软件指令重新启动时钟(重新计时)。从而在适当的时间间隔后,能再次中断处理机。,2、系统内部定时(内部闹钟)有些系统操作,如设备驱动,要求延时调用核心的一些函数,则可用到系统内部定时。如用户敲回车键会产生一个键盘中断。但也可以使终端处于原始方式:核心在固定的时间间隔后,自动读键盘输入的内容,而不必等待用户敲回车键。(如从键盘输入大量的数据),3、统

21、计程序执行的频度 用程序统计直方图来描述:某个程序执行时,该程序的各个部分在内存中被访问的频度 4、计算进程的优先数 用于调整进程优先数的有关参数 计算某些进程的优先数(每秒钟),UNIX的中断处理过程 1、中断的总控程序 当出现中断后,系统转到中断的总控程序统一进行处理。完成的工作是:保护现场为中断处理程序,产生并传递参数通过中断向量,调用相应的中断处理程序,2、中断处理程序 进行中断服务,完成后返回到总控程序,3、总控程序:对中断前的处理机状态进行判别。(1)若中断(或陷入)前在核态下运行:恢复现场,返回断点,(2)若中断(或陷入)前在用户态下运行,且 重调度标志未设:恢复现场,返回断点

22、重调度标志已设:转进程调度程序,66,3.1 用户工作环境,一、用户环境 有了操作系统后,用户是通过操作系统来使用计算机。即:操作系统必须为每个用户提供一个使用计算机的工作环境(称为用户环境)。,问题:不同的用户环境,是如何产生的呢?,67,二、系统生成 系统生成现在也称为安装。通常是指:为了满足物理设备的约束和对系统功能的需求,通过组装一批模块,产生一个清晰的、使用方便的操作系统的过程。,根据自己的经验思考:通过安装可完成什么工作?哪些软件要安装?,68,三、系统初启 系统初启又称为系统引导。其任务是:将操作系统的必要部分,装入内存并执行 系统引导的过程:可分为三个阶段来实现,69,(1)初

23、始引导 也称为自举。即:操作系统把自己装入内存(DOS如何实现的?),(2)核心初始化 建立系统的数据结构,执行系统的常驻程序等,(3)系统初始化 执行命令处理程序,使系统处于命令接受状态,70,.操作系统的用户界面,一、操作系统的用户界面 1.什么是操作系统的用户界面 操作系统的用户界面(或称接口),是操作系统提供的,用户与计算机打交道的外部机制。即:可实现的功能,及使用的方式。用户借助这种机制,来控制计算机系统。,71,2.用户界面的形式(1)操作命令(命令接口)用户使用操作命令,来组织上机的工作流程、控制程序的运行,(2)系统功能调用(程序接口)用户程序在其运行过程中,使用系统功能调用,

24、来请求操作系统的服务,72,用户界面的实例 DOS:键盘命令(命令接口)、系统功能调用,Windows:图形用户界面(命令接口)、系统功能调用,unix(及linux):键盘命令、图形用户界面(命令接口)系统功能调用,73,二、操作命令 根据上机方式的不同,操作命令可分为二种类型(目前有三种方式):作业控制语言:用于脱机操作。如:批处理操作系统,键盘命令:用于交互式操作。如:分时操作系统、个人计算机操作系统 图形用户界面:是键盘命令的另一种表现形式,74,1.作业控制语言 在批处理或脱机操作的方式下 由于用户不能使用终端 故不能直接参与上机的过程。系统提供作业控制语言(JCL)让用户 预先制定

25、自己上机操作的完整过程。,75,(1)什么是作业控制语言 是一种命令语言。其内容包括:对作业进行处理的操作命令 对资源的请求命令 对上机过程进行组织、控制的语句,76,(2)批处理系统中作业的组成 作业申请,内容包括:作业名 需用CPU时间 最迟完成时间 资源请求(如:主存、外设)等 操作说明书 用作业控制语言编写的命令程序。内容包括:,77,操作命令 如:编译、连接、运行等 干预控制语句 如:判别、选择、循环等 执行程序与数据,(3)上机的环境 批处理系统 分时系统的后台操作,78,2.键盘命令 在交互式系统中,为联机用户(交互用户)提供的操作命令。由用户自己,通过键盘输入这些命令,组织上机

26、的过程,控制和干预程序的运行。因此,称为键盘命令,(1)用户上机的过程先注册一个帐号,成为系统的合法用户 上机的过程是:,79,(a)登录(Login)通过输入用户名和口令。用于:验证用户的合法性、建立用户所需要的环境,(b)通信用户与计算机之间的交互操作。用于:申请资源、控制上机过程、运行程序等。,(c)注销(Logout)退出系统。目的:终止系统的记帐 保护用户免受他人的侵害,3、与用户进行交互的处理程序 DOD:COMMANFD.COM(称为命令处理程序)UNIX:shell(通常称为外壳程序)WINDOWS:桌面管理程序,81,SCO OpenServer 的操作、启动(服务器)开机:

27、,、用户注册(接上面、或开终端)Login:输入注册名(帐号)Password:输入口令(重复一次)$,1)单用户(用于系统维护):输入root的口令,2)多用户(提供上机服务):按Ctrl+D Login:,82,、操作命令 1)命令格式 命令名 选择项参数参数 例:用长格式 显示根目录下、子目录 user 的内容$ls-l/user,83,2)联机帮助(显示命令参考手册)格式:man 选择项 section title sction:分类 title:标题(待了解项)例1:了解命令date的使用。$man date,例2:显示系统中的所有命令。$ls/binmore 或 ls/bin/de

28、v/lp,84,4、用户的注销$按Ctrl+D Login:,5、由多用户转为单用户环境 权限:root用户 目的:进行系统维护 shutdown-gn su/*n为一整数,表示延迟的时间(分钟),85,6、关闭整个系统 权限:root用户 1)为用户保留准备时间 shutdown-gn 2)不保留准备时间 etc/haltsys,86,三.图形化用户界面 1.什么是图形化的用户界面 图形化界面是一种更友好的用户交互界面 它将菜单驱动、图符驱动、面向对象技术等集成在一起。形成一个图文并茂的操作环境。与用户进行交互的处理程序:屏幕管理程序 User,87,它涉及到二个方面:(1)操作系统提供实现

29、各种功能的系统子例程(2)执行方式 在程序中使用访管指令 通过访管中断(软中断)实现对系统例程的调用(简称为系统调用),四、系统功能调用 1.程序中如何使用OS供的服务?,88,89,2.访管指令的汇编语言形式 一般形式:svc n svc:访管指令的操作码记忆符 n:地址码(功能号),UNIX:trap n 用户程序中使用 emt n PDP 11 中系统程序使用,DOS:n AH int 21H,(1)在汇编语言中:显式调用。如DOS中:功能号 寄存器 ah int 21,3.调用方式,(3)在C语言中:既可隐式调用、又可显式调用 Unix中每个系统调用都有一个C的函数形式 如:trap

30、3 read(),(2)在一般高级语言中:隐式调用。如:read(),(4)有些系统允许嵌入系统调用的汇编形式,91,4.什么是系统功能调用系统功能调用是用户在程序一级请求操作系统服务的一种手段它不是硬件指令,而是带有功能号的“访管指令”其功能由操作系统中的一段程序来完成(与硬件指令的区别)并由访管(软)中断转入(与子程序调用的区别),6.子例程的连接方式(1)常规的例程库 子例程静态连接(嵌入)到主程序的执行程序中 问题:没有实现共享,浪费内存,5.访管中断 执行访管指令时发生的中断,称为访管中断 表示当前运行程序对操作系统的某种服务请求 思考:为什么要用中断来转入呢?,(2)系统功能调用

31、在运行程序执行系统功能调用时,通过中断的方式,转入内存的子例程执行。局限性:系统功能调用的子例程必须全部常驻内存 若子例程的数量很庞大,且调用频度不均衡,则仍然会降低内存的利用率;因此,只适用于少量的系统常用子例程,(3)动态连接(动态连接库或运行时间库)在应用程序装入、或执行调用时,才与子例程进行链接。如Windows中,应用程序与外部函数的连接(包括设备驱动程序),(a)在应用程序连接(Link)时:为每一个外部函数都建立一个引用人口号 以及该外部函数的调用链表 记录其在应用程序中各个调用点的位置,(b)在应用程序装入后:搜索所有外部函数的调用链表 对其中的每一个外部函数 搜索外部函数(D

32、LL中的引出函数)模块表 判别该函数是否已装入内存,若已装入:将其在模块表中的引用数加1 否则:装入该函数,将引用数置为1 将该外部函数的入口地址 填写到其调用链表的每一个节点上,96,7.系统功能调用的实现,一、系统调用的分类 UNIX系统中,系统调用大致可分为进程管理、文件系统的应用(含设备)和系统状态的设置三类。,1.有关进程管理的系统调用 fork 创建一个子进程 exit 进程终止 exec 执行用户程序 wait 等待子进程终止,3.4 UNIX的系统调用,sleep 进程睡眠Wakeup 进程唤醒nice 设置进程的优先数,2.与文件有关的系统调用 open 打开文件 close

33、 关闭文件 read 读文件 write 写文件 lseek 修改读写指针 link 连接文件(取别名)unlink 取消连接(及删除文件)mount 安装子文件系统 unmount 拆卸子文件系统.,3.与系统状态有关的系统调用 getuid 取用户号 setuid 设置用户号 getgid 取用户组号 setgid 设置用户组号 time 取日历时间 stime 设置日历时间 times 取进程执行时间,2、trap 指令 trap的机器指令,用八进制表示为:104400 104477 前4位为指令码,后2位为系统调用功能号(最多64种),二、系统调用的数据结构和实现 UNIX中,系统调用

34、是由自陷指令trap来实现的。它是 PDP 11 的4种软中断机制之一。,1、trap 向量 trap属于俘获类型,中断向量地址为034、036单元 PS值为:340+6(6为俘获类型号,用于系统调用),3、系统调用入口参数表 描述了每个系统调用的入口地址、和传递参数的个数。定义为:struct sysent int count;/*参数的个数*/int(*call)();/*执行程序人口地址*/sysent;系统初始化后,系统调用表如下:,int sysent 0,nosys()u.u_error=100;是一个非法的系统调用(没有用到)该系统调用,将返回一个系统调用失败的错误码。,更详细的

35、细节见:P59:图3.5,4、系统调用的实现过程,6、系统调用执行的实例(read),(1)C语言形式 char buffer int nbytes files=open(.)read(files,buffer,nbytes),(2)生成的部分汇编代码(id=3)/*设置命令的操作数,为reab的功能号3(files=r0)/*寄存器r0,专用于程序间传递第0个参数 sys id/*目标代码为:104403(即104400+3,见P58)buffer/*系统调用的第1个参数 nbytes/*系统调用的第2个参数,(a)中断响应:将当前进程的PC、PS的压入核心栈 中断向量:(034)=PC、(

36、036)=340+6=PS 转入俘获总控程序(入口地址为trap),(b)俘获总控程序执行:保护现场(包括:寄存器r0=u.u_aror0)由俘获类型:dev=6,转入系统调用分支程序,(3)sys 指令的执行过程,(c)系统调用分支程序执行:取系统调用功能号(即:sys 指令的操作数 3)从system3,得到read的入口地址、参数个数,根据read的参数个数 2:将断点后2个参数复制到当前进程的user区保存单元 u.u_arg0、u.u_arg1 将PC的值加4,使断点后移4个字节(2个指令字),(d)read子例程执行:完成读操作后,实际传输数=u.u_aror0 作为返回值,(f)

37、俘获总控程序执行:恢复现场,返回新断点自继续执行(或调度其他进程),将user区中,u.u_aro0的值,复制到 r0 寄存器(作为传递给子程序参数),然后转read子例程,108,3.5 UNIX的命令程序设计语言shell 特点:可将程序设计元素、与多个独立的UNIX执行程序(或命令)组成一个shell过程,存放在一个文件中(通常称为命令处理文件)。通过该文件,集成为一个逻辑整体(应用系统)shell过程中,可包括的程序设计元素主要有:,109,1.变量包括:字符串变量 输入变量:用read从键盘读入其内容 shell过程的位置参数:$0,$1,$9 环境变量(用于获得环境信息),包括:用

38、户注册名及主目录(用户的根目录)名、检索存放信件的文件路径、检查信件的时间间隔、.等等,110,2.特殊符号 通配符:、?符号列表、起始符-终止符!.输入输出重定向符:、管道:后台命令符:&,111,多条命令执行结果的逻辑值(可检测)命令1&命令2 命令1|命令2 成组的执行命令 命令列表 每条命令都在同一shell下执行(命令列表)每条命令都在新的shell下执行,112,3.控制结构 if 命令表1 then 命令表2 else 命令表3,case语句 while语句 until语句 for 变量取值表 do 命令表 done,循环退出或短路:break、continue 退出命令程序:e

39、xit,113,4.算术表达式 5.函数的定义和执行 6.特殊命令:trap 命令表信号表(016)/*按收到的信号,执行相应的命令 wait n/*等待进程标识为n的进程(执行程序)终止,114,7.后台命令(不使用终端)的执行方式 例:$ls-l user f1&Unix:52$cc most1.c f2&Unix:76$vi most2.c,115,采用了多道程序设计技术后,我们希望了解:(1)为了提高效率 在内存的多个程序是如何执行的(2)多个程序的并发执行会带来什么问题(3)为了避免这类问题 对内存并发执行程序应如何进行管理(4)如何实现对程序的制约 以及程序间的相互合作,116,计

40、算:由CPU 对一有限的数据集合所施行的一组操作。,一、程序的顺序执行 1.什么是程序的顺序执行 若一个计算的若干操作必须按照 严格的先后次序执行 则这类计算过程就是程序的顺序执行过程 程序的顺序执行,也称为顺序程序设计,4.1 并发活动进程的引入,117,2.单道系统中一批作业的执行过程 设:每个作业仅运行一个程序(一个计算)每个程序的执行过程均为:首先输入程序和数据 然后进行计算 最后打印计算结果,形式化的表示为:I:输入操作 C:计算操作 P:输出操作,118,即:严格地说,程序的顺序执行是指:不仅一个计算内的各个操作是顺序执行的 而且多个计算之间的执行也是顺序的 不满足上述的任何一条

41、就不是程序的顺序执行(称为并发执行),那么在单道环境下,一批作业的所有操作 会形成一个什么样的执行序列呢?,119,3.顺序程序的特点(1)顺序性 处理机的操作,严格按程序所规定的顺序执行(传统的程序都具有此特点),(2)封闭性 程序的执行,不受外界因素的影响。为什么?,(3)可再现性(由封闭性保证)即:初始条件相同,得到的结果就相同,(3)也称为与时间无关性 即:程序执行的结果 只与初始条件有关,而与执行的速度无关(结果唯一、可预期的),120,1.什么是程序的并发执行 多个程序(或程序段),同时在系统中运行 若它们执行的起始时间段有重叠的部分(一个的执行尚未结束,另一个的执行已开始)则称这

42、几个程序段是并发执行的,例:三个并发执行的程序段,多个程序段的并发执行,应如何来表示呢?,二、程序的并发执行,121,问题:从并发的形式化描述中,能看出程序的执行次序吗?,2.并发执行的表示(1)用并发语句表示 cobegin S1;S2;Sn coend,并发执行的一般性含义:指多个程序、或程序段的执行,没有任何次序的限制,(2)用次序图表示,探讨的问题:在一个实际的并发环境中,多个程序段的并发执行 是否完全没有次序的限制?会不会带来意外的问题呢?,122,思考:它们的并发执行,会得到什么样的结果呢?打印出的n值?n的终值?,四、与时间有关的错误 例:两个程序共享一个初值为 0 的公共变量

43、n 程序A执行时:完成 n 加 1 的操作 程序B执行时:先打印n的值,再将n置为0,与时间有关的错误是指:多个程序并发执行时,可能会有多个不同的结果。除一个结果正确外,其余的都认为是错误的。称其为与时间有关的错误。,123,程序A的n:=n+1,与程序B的两语句之间的执行次序:,之前 1 0,之后 0 1,中间 0 0,打印的结果:n的终值:,程序A n:=n+1,程序B print(n)n:=0,将上述错误称为与时间有关的错误。,什么问题?,124,(1)失去程序的封闭性和可再现性 如果程序A的执行,可以改变程序B的环境(即程序B失去了封闭性),五、并发程序的特点,思考:如果程序B本身是封

44、闭的呢?,则:程序B的运行结果 就与二个程序之间,执行的相对速度有关(即失去了可再现性),125,编译1C编译程序 编译2.编译n,(2)程序与计算不再一一对应 一个程序可以对应多个计算。如:,(3)程序的并发执行也存在着相互制约 直接的相互制约:由程序的逻辑决定 间接的相互制约:由共享资源而引起,归纳:产生了新的问题,有待解决,六、并发程序执行中应解决的问题(1)由于失去了可再现性,而带来 与时间有关的错误(与占有CPU的次序有关)(2)由于程序与计算不再一一对应 资源分配给谁?,因此,操作系统必须解决:(1)如何描述每个程序,在内存的执行过程?(何时占有CPU、何时没有,怎么表示)(2)资

45、源分配的对象是什么?已获得的资源记录在何处?,127,4.2 进程的概念,一.进程定义 程序并发执行时,占有CPU的活动规律为:执行 暂停 执行,因此必须用一个数据结构,描述程序执行时的 活动规律、以及对资源的使用情况 将其描述的对象称为:Processing,1.什么是Processing(进程)所谓进程,就是一个程序在给定活动空间和初始环境下,在一个处理机上的执行过程,128,(1)运行状态(running)该进程已获得运行所必需的一切资源 它的程序正在处理机上执行,二.进程的状态、及状态变迁 1.进程的基本状态,思考:没有运行的进程 根据其原因,能否再作进一步的区分呢?,129,(3)等

46、待状态(wait)进程正等待着某一事件的发生 即使将CPU的控制权给它,也无法执行 问题:各种状态是如何进行转换的呢?,(2)就绪状态(ready)进程已获得除CPU之外,运行所必需的一切资源 一旦得到CPU的控制权,立即可以执行,130,2.进程状态的变迁 进程的状态,是随着进程自身的推进和外界条件的变化,而发生变化的。,运 行,等 待,就 绪,服务请求/等待一个 事件的发生,服务完成/事件已发生,进程调度,时间片到,131,三.进程的描述 多个进程并发执行时,就产生了动态的特征 由于进程对资源的不断占有和释放 从而造成了一个不断变化的外部环境而且,进程间还存在相互制约,因此对每个进程,必须

47、至少用一个数据结构 对其运行的过程进行描述,132,1.进程控制块 描述一个进程的数据结构,称为进程控制块(Process Control Block PCB),它描述了进程:当前所处的状态 对资源的使用情况 以及与其他进程的关系,用途:操作系统是通过PCB 而感知到进程的存在 并对进程进行控制,133,3.PCB的主要内容,进程标识符进程当前状态当前队列指针总链队列指针程序开始地址进程优先级CPU现场保护区通信信息家族联系占有资源清单,(1)进程标识符:进程符号名、或内部 id号(2)进程当前状态:本进程目前处于何种状态(运行、就绪、等待)(3)当前队列指针next:同一状态的 下一个进程的

48、 PCB 地址,134,(4)总链队列指针all_q_next:用于将系统中,所有的进程的连为一个整体(5)程序开始地址:该进程的程序将从此地址开始执行。(6)进程优先级:反映了进程要求CPU的紧迫程度(7)CPU现场保护区:当进程由于某种原因释放处理机时,CPU现场信息被保存在pcb的该区域中,135,(8)通信信息:进程间进行通信时,所记录的有关信息。(9)家族联系:进程与家族的联系,通常为 指向父进程的指针(10)占有资源清单,为了对系统中的所有的进程进行管理 系统中还需要哪些其他的数据结构呢?,136,其他的就绪队列,其他的等待队列,137,Unix系统中的进程(映像),一.进程控制的

49、概念 1.什么是进程控制 指由一组系统功能调用子例程,对系统中的全部进程实施有效管理,并负责其状态的改变 完成的功能包括进程的:无 有 消亡 Unix中的进程树,4.3 进程控制,创建,撤消,139,调度,唤醒,等待,由于这些子例程在执行时不能被中断(至少在逻辑上),因此被称之为原语,140,二.进程创建 1.进程创建原语的一般形式 create(name,priority,start_addr)进程的创建,通常会涉及到3个主要的参数 name:新进程的符号名(或进程标识符)priority:进程的优先级 start_addr:程序的开始地址,2.常用的进程控制原语 创建原语、撤消原语、阻塞原

50、语、唤醒原语等,141,2.进程创建原语的一般功能 建立新进程的PCB结构 创建一个具有指定标识符的进程:,(1)从PCB池分配一个空PCB结构,(2)填写PCB的内容(如:状态为就绪、.),(3)将PCB插入就绪队列调用者:作业调度程序、终端进程、执行程序(父进程),Unix的进程创建,142,三.进程撤消 当进程完成任务后,可使用进程撤消原语来 自己终止自己 1.进程撤消原语的形式 exit()或 kill(),2.进程撤消原语的功能 撤消当前运行的进程。具体为:释放该进程所占用的所有资源 从总链队列中摘除pcb结构,归还到pcb池 转进程调度程序,143,3.进程撤消原语的算法描述算法

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号