操作系统原理chap03.ppt

上传人:sccc 文档编号:6106399 上传时间:2023-09-24 格式:PPT 页数:130 大小:658.55KB
返回 下载 相关 举报
操作系统原理chap03.ppt_第1页
第1页 / 共130页
操作系统原理chap03.ppt_第2页
第2页 / 共130页
操作系统原理chap03.ppt_第3页
第3页 / 共130页
操作系统原理chap03.ppt_第4页
第4页 / 共130页
操作系统原理chap03.ppt_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《操作系统原理chap03.ppt》由会员分享,可在线阅读,更多相关《操作系统原理chap03.ppt(130页珍藏版)》请在三一办公上搜索。

1、第三章 用户接口与作业管理,用户与操作系统的接口批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流交互式系统作业管理系统调用:用户程序提出服务请求的手段,基本思想,实现方法操作系统安装与启动,1.作业级接口,操作系统为用户对作业运行全过程控制提供的功能(1)联机接口(交互式)(2)脱机接口,一、用户与操作系统的接口,作业级接口程序级接口,系统为用户在程序一级提供有关服务而设置由一组系统调用命令组成负责管理和控制运行的程序并在这些程序与系统控制的资源和提供的服务间实现交互作用用汇编语言:在程序中直接用系统调用命令用高级语言:可在编程时使用过程调用语句,2.程序级接口,二、批处理系统作

2、业处理,1.作业的基本概念(1)作业 用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称(2)作业步 一个作业可划分成若干部分,称为一个作业步 典型的作业控制过程:“编译”、“连接装配”、“运行”(3)作业流,(4)典型的作业步,1.作业的基本概念(续1),2.批处理作业控制语言与作业说明书,(1)作业控制语言用户用于描述批处理作业处理过程控制意图的一种特殊程序书写作业说明书的语言称为作业控制语言(JCL)(2)作业控制语言的类别 包括:I/O命令、编译命令、操作命令以及条件命令等,(3)作业说明书,表达用户对作业的控制意图内容:作业的基本描述作业控制描述资源要求描述,

3、2.批处理作业控制语言与作业说明书(续),3.作业控制块与作业表,(1)作业控制块(JCB:Job Control Block)作业控制块是批处理作业存在的标志保存有系统对于作业进行管理所需要的全部信息位于磁盘区域中,(2)作业控制块的内容,作业控制块中所包含的信息数量及内容因系统而异较简单的系统较复杂的系统,3.作业控制块与作业表(续1),作业标知用户名称用户帐号调度信息资源需求作业状态作业类别输入井地址输出井地址进入系统时间开始处理时间作业完成时间作业退出时间资源使用情况,作业控制块JCB,3.作业控制块与作业表(续2),(3)作业控制块的建立,当作业开始由输入设备向磁盘的输入井传输时 系

4、统输入程序为其建立一个作业控制块 进行初始化 初始化的大部分信息取自作业说明书,3.作业控制块与作业表(续3),(4)作业控制块的使用,需要访问作业控制块的程序系统输入程序作业调度程序作业控制程序系统输出程序等,3.作业控制块与作业表(续4),(5)作业控制块的撤消,作业完成后,其作业控制块由系统输出程序撤消作业控制块被撤消后其作业也不复存在,3.作业控制块与作业表(续5),(6)作业表,每个作业有个作业控制块所有作业JCB构成一个作业表作业表存放在外存固定区域中,长度是固定限制了系统所能同时容纳的作业数量 系统输入程序、作业调度程序、系统输出程序都需要访问作业表 因而存在互斥问题,作业表,3

5、.作业控制块与作业表(续6),4.批处理作业的状态及转换,一个作业从进入系统到运行结束经历四个不同的状态:“进入”“后备”“运行”“完成”,作业和进程的状态转换图,4.批处理作业的状态及转换(续1),(1)运行状态的作业,三种状态:就绪状态执行状态阻塞状态,4.批处理作业的状态及转换(续2),5.作业的建立,一个作业建立过程的两个子过程:作业的输入JCB的建立 作业控制块JCB和作业:一一对应关系,(1)作业的输入,将作业程序、数据和作业说明书从输入设备(例如键盘)输入到外存,并形成初始信息,作业输入方式联机输入方式脱机输入方式SPOOLing系统,5.作业的建立(续1),联机输入方式,用户和

6、系统通过交互会话来输入作业外围设备直接和主机连接,脱机输入方式 为了解决单台设备联机输入时的CPU浪费问题,5.作业的建立(续2),(2)JCB的建立,在系统把作业信息输入到输入井之后根据作业说明书和有关作业信息在外存的位置等建立作业控制表JCBJCB包含对作业进行管理所必须的信息JCB表的数量是一个常数外存输入井的大小有限 只有在获得JCB表项和足够输入井空间后作业才可能创建成功,5.作业的建立(续3),6.批处理作业的调度,主要功能:审查系统能否满足用户作业的资源要求 只要通过调用相应的资源管理程序的有关部分 审核其表中是否能满足作业说明书中的要求即可按照一定的算法从输入井中的后备作业中选

7、取作业 调度的关键在选择恰当的算法,(1)调度算法评价,调度实质上是一个策略问题设定的目标往往是相互冲突的 目标:单位时间内运行尽可能多的作业使处理机尽可能保持“忙碌”使各种I/O设备得以充分利用对所有的作业都是公平合理的,6.批处理作业的调度(续1),要设计一个理想的调度算法是一件十分困难的事在实际系统中,调度算法往往折衷考虑设计调度算法时应考虑的因素:调度算法应与系统设计目标保持一致注意系统资源均衡使用保证提交的作业在截止时间内完成设法缩短作业平均周转时间大多数操作系统都采用比较简单的调度算法,6.批处理作业的调度(续2),作业平均周转时间假定某一作业进入“输入井”的时间为Si,它被选中执

8、行,得到计算结果的时间为Ei 它的周转时间为Ti Ei Si 则作业平均周转时间为:T()n为被测定作业流中的作业数,(2)调度算法性能的衡量,6.批处理作业的调度(续3),平均带权周转时间 W()ri 为某作业i的实际执行时间,T:衡量不同调度算法对同一个作业流的性能 W:同一调度算法对不同作业流的性能衡量,6.批处理作业的调度(续4),(3)系统进行作业调度的决策因素,作业到达时间预先为作业确定的优先级系统可测定的其他因素:作业所需的CPU时间C存储要求M打印输出的行数L其他的资源要求,6.批处理作业的调度(续5),(4)常见的批处理作业调度算法,先来先服务算法(FCFS:First Co

9、me First Serve)最短作业优先算法(SJF:Shortest Job First)最高响应比优先算法(HRN:Highest Response Ratio Next)响应比R=作业周转时间/作业处理时间=(作业处理时间+作业等待时间)/作业处理时间=1+(作业等待时间/作业处理时间),6.批处理作业的调度(续6),基于优先数调度算法(HPF:Highest Priority First)(a)由用户规定优先数(外部优先数)用户提交作业时,根据急迫程度规定适当的优先数 作业调度程序根据JCB优先数决定进入内存的次序(b)由系统计算优先数(内部优先数)例:可按如下公式计算作业的优先数:

10、优先数=用户规定优先数 作业处理时间+作业等待时间 输出量,6.批处理作业的调度(续7),均衡调度算法(分类排队算法)基本思想:根据系统运行情况和作业属性将作业分类轮流从不同的作业类中挑选作业目标:力求均衡地利用各种系统资源,发挥资源使用效率力求使用户满意,6.批处理作业的调度(续8),例1:将待处理作业分成如下队列:队列1:计算量大的作业 队列2:I/O量大的作业 队列3:计算量与I/O量均衡的作业调度时,在三个队列中各取一些作业在内存中的作业有的使用处理机有的使用外部设备使得系统的各种资源能得到充分利用,6.批处理作业的调度(续9),例2:将待处理作业分成如下三个队列:队列1:长作业 队列

11、2:中等长度作业 队列3:短作业调度时取队列1一作业,队列2一作业,队列3一作业长作业用户和短作业用户均比较满意,6.批处理作业的调度(续10),(5)作业调度算法应用例子1,假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间 应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间,6.批处理作业的调度(续11),先来先服务调度算法计算结果,6.批处理作业的调度(续12),最短作业优先作业算法计算结果,6.批处理作业的调度(续13),最高响应比优先作业算法计算结果,6.批处理作业的调度(续14),在两道环境下有四个作业已知

12、它们进入系统的时间、估计运行时间系统采用短作业优先作业调度算法,作业被调度运行后不再退出当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序请给出这四个作业的执行时间序列,并计算出平均周转时间及带权平均周转时间,(6)作业调度算法应用例子2,6.批处理作业的调度(续15),两道批处理系统中最短作业优先作业算法计算结果,6.批处理作业的调度(续16),四个作业的执行时间序列为:JOB1:10:0010:05,10:4011:05JOB2:10:0510:25JOB3:10:2510:30JOB4:10:3010:40,两道批处理系统中最短作业优先作业算法计算结果(续1),6.批处理作业

13、的调度(续17),10:00,JOB1进入,只有一作业,JOB1被调入执行10:05,JOB2到达,最多允许两作业同时进入 所以JOB2也被调入内存中有两作业,哪一个执行?题目规定当一新作业运行后,可按作业运行时间长短调整执行次序即基于优先数可抢占式调度策略优先数是根据作业估计运行时间大小来决定的由于JOB2运行时间(20分)比JOB1少(到10:05,JOB1还需25分钟)所以JOB2运行,而JOB1等待,两道批处理系统中最短作业优先作业算法分析过程,6.批处理作业的调度(续18),10:10,JOB3到达输入井,内存已有两作业 JOB3不能马上进入内存;10:20,JOB4也不能进入内存1

14、0:25,JOB2运行结束,退出,内存中剩下JOB1 输入井中有两作业JOB3和JOB4,如何调度?作业调度算法:最短作业优先因此JOB3进入内存比较JOB1和JOB3运行时间JOB3运行时间短,故JOB3运行同样,JOB3退出后,下一个是JOB4JOB4结束后,JOB1才能继续运行,两道批处理系统中最短作业优先作业算法分析过程(续1),6.批处理作业的调度(续19),(7)多道程序对平均周转时间的影响,作业流在多道环境下运行平均周转时间、带权平均周转时间 比单道环境下都有明显改善不是任意作业组合都能改善调度性能 有时甚至可能变坏,6.批处理作业的调度(续20),例:四个各需两小时作业同时投入

15、运行,I/O等待时间均占25%,即占CPU时间各为1.5小时根据计算公式,CPU的空转率为0采用简单轮转法调度,每小时各作业分别占用25%的CPU时间,算得该作业组合的平均周转时间约为6小时,而平均带权周转时间约为3但是,若以单道程序方式运行:平均周转时间T=(2+4+6+8)/4=5小时平均带权周转时间W=(1+2+3+4)/4=2.5,6.批处理作业的调度(续21),7作业调度与进程调度,作业能否占用处理器?什么时间能够占用处理器?由进程调度来决定进程的初始状态为就绪状态进程调度选择当前可占用 CPU处理进程,当它让出处理器时,进程调度就再选另一作业的进程作业调度与进程调度相互配合,实现作

16、业的并行,作业调度与进程调度的例子,某系统采用不能移动已在内存中作业的可变分区方案管理内存 供用户使用的内存空间为100K,系统配有4台磁带机 一批作业如下图:作业 进入时间 估计 内存需要 磁带机需要 运行时间JOB1 10:00 25分钟 15K 2台JOB2 10:20 30分钟 60K 1台JOB3 10:30 10分钟 50K 3台JOB4 10:35 20分钟 10K 2台JOB5 10:40 15分钟 30K 2台,7作业调度与进程调度(续1),作业调度与进程调度的例子(续1),该系统采用多道程序设计技术,对磁带机采用静态分配,忽略设备工作时间和系统进行调度所共花的时间,请分别给

17、出采用“先来先服务调度算法”和“短作业优先算法”选中作业执行的次序以及它们的平均周转时间。若允许移动已在主存储器中的作业,则作业被选中的次序又是怎样的呢?它们的平均周转时间又如何?小结:作业调度前提:并行道数、资源满足 进程调度,7作业调度与进程调度(续2),8.批处理作业的控制,当作业为执行态时,作业调度程序为其建立一作业控制进程,由该进程控制作业运行作业控制进程:主要负责控制作业的运行,具体解释执行作业说明书的每一个作业步,并创建子进程来完成相应步骤一个作业步的处理:(1)建立子进程(2)为其申请资源(3)访问该作业的JCB(4)释放占有资源(5)撤消子进程等作业控制程序只有一个 对应每一

18、处于执行状态的作业有一作业控制进程,9.作业退出,把输出结果送到输出设备上(启动缓输出进程完成)回收各种资源,10.SPOOLing系统工作原理,全称:Simultaneous Peripheral Operations On-Line含义:同时的外围设备联机操作(假脱机技术)包括:输入程序模块输出程序模块作业调度程序,作业和进程的状态转换图,10.SPOOLing系统工作原理(续1),10.SPOOLing系统工作原理(续2),作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓,称为输入井)中,称为预输入作业运行后,使用数据时,从输入井中取出作业执行不必直接启动外设输出数据,只需将

19、这些数据写入输出井中作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出实现了对作业输入、组织调度和输出的统一管理使外设在CPU直接控制下,与CPU并行工作(称为假脱机),SPOOLing系统,10.SPOOLing系统工作原理(续3),三、交互式系统的作业管理,1.概述(1)命令接口 在操作系统与计算机用户之间提供易于理解的双向通信机制基本任务:解释命令,传送命令以便执行接受系统信息,提交给用户(以响应语言的形式),交互式命令的接口复杂 含功能结构,可能问题的处理,如各种约定、前端处理、命令日志、命令注解、宏命令及命令组等交互式控制灵活方便,可以随时进行各种处理,排除问题,方便调试;系统

20、利用率低接口包括:一组联机命令,终端处理程序,命令解释程序,1.概述(续1),(2)终端处理程序,交互式命令接口:用户同操作系统的通信通过一个输入/输出装置来实现I/O装置一般是显示终端 输入通过键盘:在有的系统中,可通过指示装置(例如鼠标)输入 系统输入呈现在显示屏幕上,一次显示若干正文行 某些系统中,提供图形显示功能不管哪种I/O方式,这个终端装置是由一个终端处理程序管理和控制,1.概述(续2),终端处理程序提供的输入输出方式对整个用户命令接口有重大影响也确定了用户与其应用程序之间的通信方式终端处理程序必须作为用户接口的一个组成部分来考虑 即,直接影响命令接口的一些问题须由终端处理程序解决

21、,1.概述(续3),(3)直接影响命令接口的一些问题,(a)回送显示(Echoing)通常,每从键盘打入一个字符,终端处理程序回送响应的字符到显示屏上 有时用户要求其显示一个不同的字符或不显示(例如,用户键入口令时)对于通过远程通信线路访问的终端,可能需要抑制这种回送 回送显示委托给远程终端来实现,1.概述(续4),(b)提前打入(Type ahead)假定输入字符在一程序准备处理它们之前打入,则由“提前打入进程”把它们保存在缓冲区中 缓冲区容量是有限,当其存满后,再有输入时,或者漏掉,或者将破坏缓冲区原有的内容(c)字符变换 有些情况下,需要对打入的字符进行代码变换 如,把小写字母转换成大写

22、字母,或者反之(d)行缓冲 打入的字符在送到程序前,由终端接口保存,直到整个命令行打入为止 为用户提供了校验、编辑,甚至取消命令的机会,(3)直接影响命令接口的一些问题(续1),1.概述(续5),(e)中断字符(Break Characters)多数交互式命令接口可以接受一些称为中断字符的特殊字符,并立即采取相应的行动 如,在许多系统中,同时打入CTRLC字符键,立即终止当前程序执行,并使命令处理程序重新初始化,(3)直接影响命令接口的一些问题(续2),1.概述(续6),2.命令解释程序,命令解释程序有两种处理方法:(a)由终端命令解释程序直接处理 在没有创建子进程功能的系统中 终端命令通常由

23、对应的命令解释程序处理 在这样系统中,仅有一个进程对应一个终端用户(b)由子进程代为处理在具有创建子进程功能的系统中,对于较为单纯的命令,如列目录,拷贝文件等,命令解释程序本身便能完成,此时由命令解释程序直接处理对较复杂命令,如对于C源程序进行编译,命令解释程序本身不能处理,此时创建一个子进程,并由该子进程运行C编译程序,3.命令接口的结构,命令接口由命令处理器来实现命令处理器的实现方式:(a)作为OS的一个部分 如,OS/MVT或VAX/VMS(b)作为OS的一个独特模块,能方便地修改或替换 如,RT-11或CP/M(c)作为一易于被替换的普通程序 如,UNIX操作系统(d)在某些系统中,可

24、能用专门设计的命令接口替代标准的命令接口 如,多用户UNIX,用户可有不同命令接口,4命令语言,命令语言规定由OS执行的一系列操作在一般的命令语言中,用户通过打入称为命令行的一行指令来规定每一个动作每一命令行以命令开始,它标识所要执行的操作大多数命令是用运行一个程序来执行所请求的操作 多数命令行中要给出一些参数,每一命令语句实际上是带有参数的一个过程调用,一个命令语言通常提供下列几组命令:(1)系统访问命令登录命令,如,login等撤离命令,如,logout等(2)文件管理命令(3)编辑、编译和执行命令(4)询问命令(5)操作员专用命令,4.命令语言(续1),4.命令语言(续2),命令行:规定

25、由操作系统执行的一系列操作,命令行:一行可有一个或多个命令,每次一行,包含一个或多个命令。shell给出提示符时可输入,以回车键提交。如:“ls-a-l”列出当前目录文件列表;gunzip mp1.tar.gz;tar-xvf mp1.tar;rm-r-f mp1.tar为解压缩后再展开。命令格式:一个命令可有命令参数,格式包括选项/开关(option/switch)或参数(argument)。如UNIX系统:cp-r doc/tmpargv0,argv1,.(含子目录的文件复制:/tmp为目标地址),4.命令语言(续3),命令分类:内部命令和外部命令内部命令:直接由shell本身完成,功能简

26、单、使用频繁;如:DOS的copy命令。外部命令:运行相应的可执行文件,在使用时加载。如:DOS的xcopy命令命令简化:利用参数替换可简化命令输入,通配符(?,*)用于匹配一组文件名如:UNIX的cp命令:当前目录上有两个1.tar和2.tar时,cp*.tar/tmp等同于cp 1.tar/tmp;cp 2.tar/tmp,命令的附加功能 命令的附加功能用以扩大命令的功能性、选择性、适应性。包括:(1)参数与变量 位置变量 关键字变量(2)命令通配符(3)重定向(4)管道与过滤器,4.命令语言(续4),批处理命令:针对脱机用户操作和大量顺序操作功能而设计 批处理命令可以是专门的命令,也可是

27、系统的基本命令;还有有关的语法结构,循环、分支、转移、判别等,构成一套特殊的命令语言,5命令文件,5命令文件(续),提前写出命令并存入文件,称之为命令文件命令文件提供了一种把一系列命令组装成文件的方法,然后用文件名作为命令名执行另外一系列命令特点:(1)接受参数、变量,宏变量替换(2)允许嵌套形式调用其他命令文件(3)允许参数来自终端的命令文件本身(4)允许执行显示到终端、存入文件或送入打印机(5)允许命令加入注释(6)出错时允许用户干预(7)可把输入传给程序,可有循环、分支、转移等,时间片轮转:在OS控制下,采用“时间片轮转”方法使每个终端作业都能在一个“时间片”内去占用处理器当时间片用完后

28、,让出处理器给另一个终端作业这样,保证从终端用户输入命令到计算机系统给出应答 只是几秒钟的时间,使端用户感到满意,6.交互式系统实例分时系统,分时系统中的用户控制作业的执行大致有四个阶段:终端的连接用户登录控制作业执行用户退出,6.交互式系统实例分时系统(续1),(1)终端的连接,必须使终端设备与计算机系统在线路上接通近程终端是直接与计算机系统连接的,当终端设备加电后,终端就与计算机系统在线路上接通了远程终端通过租用专线或交换线接到计算机系统,在终端加电后用户还需通过电话拨号进行呼叫,直到接通当终端与计算机系统在线路上接通后,计算机系统会在终端上显示信息告诉用户,6.交互式系统实例分时系统(续

29、2),(2)用户登录,用户必须向系统登录用户首先输入“登录”命令(LOGON)命令 系统会向询问用户名、作业名、口令和资源需求等 经过识别用户、核对口令,系统在终端上显示“已登录”和进入系统的时间等信息若口令不对或资源暂时不能满足时,则系统在终端上显示“登录不成功”并给出登录失败的原因用户的登录过程可看作是对终端作业的作业调度,6.交互式系统实例分时系统(续3),(3)控制作业执行,登录成功的终端用户可从终端上输入作业的程序和数据使用系统提供的命令语言或会话语句控制作业执行每输入一命令或一会话语句后,由系统解释执行且在终端上显示执行成功或问题由用户决定下一步命令或会话直到作业完成,6.交互式系

30、统实例分时系统(续4),(4)用户退出,用户输入“退出”命令(LOGOFF 命令)请求退出系统系统接收命令后就收回该用户所占的资源让其退出同时在终端上显示“退出时间”或“使用系统时间,6.交互式系统实例分时系统(续5),7.图形用户接口GUI,在命令行方式下,用户与操作系统的交互要求用户记忆命令格式。在图形用户接口方式下,用户可利用鼠标对屏幕上的图标进行操作,完成与操作系统的交互,从而减少记忆内容,方便用户使用。它的技术基础是高分辩显示器和鼠标,(1)窗口系统(window system)的特点(2)窗口系统的图形元素及其状态(3)窗口管理器(window manager)(4)例子,7.图形

31、用户接口GUI(续1),(1)窗口系统(window system)的特点,利用图形元素表示功能:将各种图形元素显示在屏幕上,用户可以通过操纵图形元素(如菜单、图标)来执行相应的功能同屏多窗口与并发进程相对应:屏幕上同时显示多个窗口;一个进程可以对应一个或多个窗口;窗口动态创建、改变、撤销输入方式:鼠标指针点击(或其他定位设备)和键盘输入;通常是即时交互一致的图形元素风格可方便用户学习和使用:如按钮、滚动条优点:操作直观(不必记命令行参数),可与多个进程交互,便于进行多媒体处理简而言之:交互的并发性好、传递信息量大,7.图形用户接口GUI(续2),(2)窗口系统的图形元素及其状态,窗口(win

32、dow):屏幕上的矩形区域(可以通过掩模mask来显示任意形状)包括:标题条(title bar)、边框(border)、窗口角(corner)、系统菜单框(system menu box)、最大化/最小化按钮(maximize/minimize)、滚动条(scroll bar)等状态:当前/非当前窗口(active/inactive)接受输入,最大化/最小化/恢复原大小(restore),窗口的前后遮盖Z轴,焦点(focus)接受键盘输入(而非鼠标)桌面(desktop)和墙纸(wallpaper)图标(icon):一个小图象(如32x32或64x64 pixel),通常供鼠标指针点击。通过

33、不同的图标可以标识不同的对象。如:可执行程序、最小化的窗口、文件动画图标,7.图形用户接口GUI(续3),鼠标指针(mouse pointer):鼠标指针通常对应屏幕上的光标(cursor)光标在屏幕上只有一个,在不同屏幕位置(上下文)可以呈现不同形状,可以独立于鼠标来直接操纵光标鼠标点击:左键/右键/中键(left/right/middle button),单击(click)/双击(double-click),拖曳(drag)/拖放(drag-and-drop)按钮(button):鼠标点击或按回车键/空格键时执行相应功能,如 menu button;提供单项或多项选择,如radiobutt

34、on和checkbutton;当前按钮及其切换菜单(menu):临时窗口,菜单条(menu bar)、弹出式菜单、下拉式菜单(上下文相关菜单)对话框(dialog box):临时窗口,显示提示信息(message)或填写用户设置,7.图形用户接口GUI(续4),(3)窗口管理器(window manager):形成统一的使用风格,处理窗口的普遍特性,如:窗口的大小、位置(窗口的标题条、边框、控制菜单框)窗口中由应用程序管理的部分称为客户区(client area)协调各窗口间的相互关系,如:窗口之间的前后遮盖关系,桌面,7.图形用户接口GUI(续5),(4)例子:MS Windows,特点MS

35、 Windows结构基本概念消息处理:两种方法,7.图形用户接口GUI(续6),特点,是OS 的一部分,提供默认的窗口风格(如菜单、对话框)除Windows2000外,窗口应用程序只能在控制台(本地)执行,7.图形用户接口GUI(续7),MS Windows结构:可分成三个部分,OS系统服务(KERNEL):内存管理、程序加载(包括DLL)、任务调度、文件管理用户接口(USER):窗口和消息管理,以及菜单、控制、对话框、定时器等图形设备接口(GDI,Graphic Device Interface):管理显示器,为USER与应用程序提供与硬件设备独立的接口,7.图形用户接口GUI(续8),基本

36、概念,消息(message):消息作为窗口的输入,如用户操作、其他窗口或系统发出的请求或通知窗口过程(window procedure):消息由各窗口自己的窗口过程来作处理窗口过程的调用参数:接收窗口句柄(可以在多个窗口共用一个窗口过程时加以区分)、消息ID(消息的类型)、消息参数(16+32位或32+32位值,整数或指针)还可以取得消息的发生时间和屏幕坐标,7.图形用户接口GUI(续9),消息处理:两种方法,排队消息:放到进程(线程)的FIFO消息队列里。如应用程序发送的消息,系统的鼠标、键盘、定时器、窗口绘制和退出等。排队消息所用的API:发送消息到消息队列PostMessage;从消息队

37、列读取消息GetMessage,PeekMessage;分发一个消息到相应窗口DispatchMessage;非排队消息:直接发送到指定窗口的窗口过程。非排队消息所用的API:SendMessage,直到接收方窗口过程处理完才返回接收方正处于GetMessage,而接受并处理SendMessage送来的消息之后,仍处于GetMessage。为防止死锁,一般要:if(InSendMessage()ReplyMessage(TRUE);,7.图形用户接口GUI(续10),消息循环:不断移出消息,并加以处理。用户不作处理的消息,应传给默认窗口过程加以处理:DefWindowProc()WM_PAIN

38、T消息:通知窗口客户区中的某部分(region)已被改变,应用程序应该对其重新绘制。总是被排在线程消息队列的最后,并且多个WM_PAINT消息中的region会自动被合并为一个,7.图形用户接口GUI(续11),四.系统调用,1.系统调用简介系统调用,是用户在程序中调用操作系统所提供的一些子功能这是特殊的过程调用,由特殊的机器指令实现这个指令还将系统转入管态系统调用程序是一个低级过程,只能由汇编语言直接访问系统调用是操作系统提供给编程人员的唯一接口利用系统调用,动态请求和释放系统资源完成与硬件相关的工作以及控制程序的执行等,每个操作系统都提供几百种系统调用,包括:外存文件与目录的读写,各种I/

39、O设备的使用,在程序中启动另一个程序,查询和统计系统资源使用情况等等实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的每种机器的机器指令集中都有一条系统调用指令(访管指令),1.系统调用简介(续1),汇编程序例子:打印5个字符 方法1:调用DOS功能 MOVE A,PARA1 MOVE B,PARA2 INT 21H,系统调用的例子-1,1.系统调用简介(续2),方法2:用OUT语句直接打印 L1:MOVE A,I IN ADDR1,B OR B,BS JNC L1 OUT ADDR2,A RET,系统调用的例子-2,1.系统调用简介(续3),I/O设备的硬件接口

40、一般由四种寄存器(地址,数据,状态,控制)或其子集组成任一程序中若要使用I/O设备来输出数据或接受输入必须通过对这四种寄存器读写的I/O机器指令进行,1.系统调用简介(续4),汇编程序例子2:读写硬盘文件内容 MOVE DX,OFFSETBUFF MOVE CX,BYTE MOVE BX,HANDLE MOVE AH,3FH INT 21H,系统调用的例子-3,1.系统调用简介(续5),磁盘读写的例子:更复杂原因:A、磁盘的控制和状态接口寄存器比打印机的复杂的多,而且还有地址接口寄存器 B、通常一个外存存储介质上可以存放多个文件,随着文件的建立、删除和拷贝在不停地变化,每个文件的长度随着其内容

41、的变化而不停地变化,系统调用的例子-4,1.系统调用简介(续6),高级语言例子:打印5个字符 char buff4=“abcde”;for(i=4;i=0;i-)print(buffi);高级语言例子:读硬盘文件f1的第10到20个字节 seek(fd,10,0);read(fd,buff,11);,系统调用的例子-5,1.系统调用简介(续7),(1)源程序段,1.系统调用简介(续8),1.系统调用简介(续9),凡是与硬件相关、与应用无关的工作,都通过操作系统程序来完成,1.系统调用简介(续10),2.系统调用的处理过程,为了保证OS不被用户程序破坏 不允许用户程序访问OS的系统程序和数据 那

42、么,怎样得到系统服务的呢?需要有一个类似于硬件中断处理的处理机构当用户使用操作系统调用时,产生一条相应的指令处理机在执行到该指令时发生相应的中断,并发出有关的信号给该处理机构该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能,2.系统调用的处理过程(续1),在系统中为控制系统调用服务的机构称为陷入(TRAP)或异常处理机构相对应,把由于系统调用引起处理机中断的指令称为陷入或异常指令(或称访管指令)在操作系统中,每个系统调用都对应一个事先给定的功能号,例如0、1、2、3等在陷入指令中必须包括对应系统调用的功能号而且,在有些陷入指令中,还带有传给陷入处理机构和内部

43、处理程序的有关参数,必须为实现系统调用功能的子程序编造入口地址表每个入口地址与相应的系统程序名对应陷入处理程序把陷入指令包含功能号与入口地址表有关项对应,系统调用功能号驱动有关子程序执行在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行保护现场:在进入系统调用处理之前,陷入处理机构还需保存处理机现场在系统调用处理结束之后,要恢复处理机现场,现场被保护在特定的内存区或寄存器中,2.系统调用的处理过程(续2),用户程序 陷入处理机构 系统子程序,系统调用的处理过程,系统调用处理过程,read(fd,buffer,nbytes),参数传递过程问题,怎样实现用户程序和系统程序间的参数传递?

44、常用的实现方法:由陷入指令自带参数:陷入指令的长度有限的,且还要携带系统调用功能号,只能自带有限的参数通过有关通用寄存器来传递参数:这些寄存器应是系统程序和用户程序都能访问,由于寄存器长度较短,从法传递较多的参数大多在内存中开辟专用堆栈区来传递参数,3.系统调用的分类,将系统的功能分为两部分:系统自身所需要的作为服务提供给用户的OS的系统调用:进程控制类系统调用文件操作类系统调用进程通信类系统调用设备管理类系统调用信息维护类系统调用,进程管理,文件管理,目录管理,其他,系统调用方式(INT)与程序中一般的调用方式的相同点:改变指令流程重复执行和公用改变指令流程后需要返回原处,4.系统调用与一般

45、过程调用的比较,系统调用方式(INT)与程序中一般的调用方式的不同点:,运行在不同的系统状态 一般过程调用,其调用程序和被调用程序都运行在相同状态:核心态或用户态系统调用:调用程序在用户态,被调用程序在系统态状态的转换一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程运行系统调用时,调用和被调用过程在不同系统状态,不允许由调用过程直接转向被调用过程通过软中断机制先由用户态转换为核心态在OS核心分析后,转向相应的系统调用处理子程序,4.系统调用与一般过程调用的比较(续1),返回问题一般过程调用在被调用过程执行完后,回调用过程抢占式调度的系统中,被调用过程执行完后,系统将对所有要求

46、运行的进程进行优先级分析。如果调用进程仍有最高优先级,则返回到调用进程执行 否则,引起重新调度,让优先级最高的进程优先执行。此时,系统把调用进程放入就绪队列嵌套或递归调用对系统调用,一般不允许在同一个进程中发生嵌套或递归(不同进程可以重入同一个系统调用),4.系统调用与一般过程调用的比较(续3),进入方式不同,CALL指令的内部实现过程返回地址压栈(即该CALL指令所在的地址)将该CALL指令中所含的地址(即被调用代码所在地址)送入PCRET指令的内部实现过程从栈顶弹出返回地址送入程序计数器PC,利用int或trap指令进行系统调用;利用call 或 jmp 指令进入普通的过程调用,4.系统调

47、用与一般过程调用的比较(续4),系统调用是动态调用,而CALL调用方式是静态调用a.同一程序中不包含被调用代码 系统调用是动态调用,程序中不包含被调用代码,好处:(1)用户程序长度缩短(2)当OS升级时,调用方不必改变,4.系统调用与一般过程调用的比较(续5),b.系统调用方式的调用地址和返回地址都是不固定的 系统调用指令中不包含调用地址,只包含功能号 是按功能号(在可执行目标程序中)调用的在操作系统内部 由系统调用处理程序通过系统调用分支表(OS的一个数据结构)将功能号转换为相应的指令地址,4.系统调用与一般过程调用的比较(续6),4.系统调用与一般过程调用的比较(续7),系统调用返回指令中

48、不包括返回地址,通过栈保存和弹出返回地址系统调用返回地址不固定,因为用户程序在不同的地方调用OS CALL调用方式是静态调用,被调用代码与调用代码在同一程序之内。CALL调用方式,其调用地址是固定的,包含在调用语句中;返回地址是不固定的(同一子程序可能被不同处多次调用),在程序执行过程中通过栈的实现来保存和弹出返回地址,4.系统调用与一般过程调用的比较(续8),c.安全接口INT指令和IRET指令的执行过程中 要处理程序状态字PSW INT指令中要保存用户程序的老PSW 并根据中断向量表设置新PSW IRET指令中要在返回用户程序前恢复用户程序的老PSW,4.系统调用与一般过程调用的比较(续9

49、),安全接口(续1)目的:目态、管态的管理系统态与用户态的转换 由系统在INT指令与IRET指令内部自动完成 没有用一条单独的专门指令好处:有效地防止在系统态下执行用户程序,4.系统调用与一般过程调用的比较(续10),5.Win32 应用程序接口,在Windows中,定义了一系列程序(应用程序接口Win32 API),提供OS服务这个接口(部分)支持Win95 以后的Windows版本Win32 API调用的种类非常多,以千计算在Windows中不可能分辨出哪些是系统调用(被内核执行),哪些是用户空间的库调用事实上,一个Windows版本中的系统调用也许在另一个Windows版本中会在用户空间

50、执行由于图形子系统在内核中运行(在某些Windows版本中),它们也是系统调用,否则是库调用,操作系统怎样开始运行怎样形成系统操作环境怎样从程序的顺序执行转换到支持程序的并发执行,五.操作系统的安装与启动,操作系统的引导有两种方式:独立引导(bootup)辅助下装(download),1.操作系统的引导和装入,(1)独立引导方式大多数系统采用OS核心文件存储在系统本身的存储设备中由系统自己将OS核心程序读入内存并运行最后建立一个操作环境,1.操作系统的引导和装入(续1),独立引导方式步骤,(1)系统加电,执行系统初启程序(2)执行初启程序,对系统硬件和配置进行自检,保证系统没有硬件错误(3)从

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号