第11章操作系统结构与设计剖析

上传人:今*** 文档编号:107980633 上传时间:2019-10-22 格式:PPT 页数:60 大小:277KB
返回 下载 相关 举报
第11章操作系统结构与设计剖析_第1页
第1页 / 共60页
第11章操作系统结构与设计剖析_第2页
第2页 / 共60页
第11章操作系统结构与设计剖析_第3页
第3页 / 共60页
第11章操作系统结构与设计剖析_第4页
第4页 / 共60页
第11章操作系统结构与设计剖析_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《第11章操作系统结构与设计剖析》由会员分享,可在线阅读,更多相关《第11章操作系统结构与设计剖析(60页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理 Principles of Operating System,计算机操作系统,2,第11章 操作系统结构与设计,11.1 操作系统结构 11.2 用户接口设计 11.3 系统设计与实现 11.4 操作系统性能,计算机操作系统,3,11.1 操作系统结构,1.整体式结构 2.分层式结构 3.微内核结构,计算机操作系统,4,1.整体式结构,这是一种大杂烩,整个操作系统是一堆过程的集合,每个过程都可以任意调用其他过程。 从信息隐藏的观点看,它没有任何隐藏每个过程对其他过程都是可见的。 这种系统中提供机器的两种运行模式:用户态和核心态。 所有过程可大致分为三层: 最高层是主程序,它引用所

2、需的服务过程; 中间层是一组服务过程,它们执行系统调用; 底层是一组公用过程,用来支持各服务过程。,计算机操作系统,5,2.分层式结构,系统看作是一系列的层,每一层执行操作系统所需要的功能的相关子集,它依赖于下一个较低层,较低层执行更为原始的功能,并隐藏这些功能的细节。它还要给相邻的较高层提供服务。可以通过定义层使得改变一层时不需要改变其他层,把一个问题分解成几个更易于处理的子问题。,计算机操作系统,6,THE系统,是第一个按这种方式构造的操作系统,1968年由E.W.Dijkstra和他的学生们建造,该系统共有6层:,计算机操作系统,7,0层,负责处理机的分配,当发生中断或定时器到时时进行进

3、程切换,从而提供了基本的多道程序环境。,计算机操作系统,8,1层,第1层执行内存和磁鼓的管理,用来为进程分配内存空间和磁鼓上的空间。在内存用完时则在磁鼓上分配512K字的空间用作交换。 在这层上,进程不用考虑它是在磁鼓上还是在内存中运行,能保证一旦某一页面需要访问时,它必定在内存中。,计算机操作系统,9,2层,第2层处理每个进程和操作员控制台之间的通信。 在这层上,每个进程都有自己的操作员控制台。,计算机操作系统,10,3层,第3层进行输入输出管理,管理I/O设备,对信息流缓冲。 在这层上,每个进程和I/O设备打交道时不必考虑其物理的细节。,计算机操作系统,11,4层,第4层是用户程序层,用户

4、程序不必考虑进程、内存、控制台或I/O设备等细节。,5层,第5层是系统操作员进程。,计算机操作系统,12,MULTICS系统中的分层结构,这种分层的概念后来体现在MULTICS系统中,但它不是层,而是一系列同心环,且内层环比外层环有更多的权利。 当外环中的过程想调用内环过程时,它必须利用对等的系统调用。 这种环机制的优点是易于扩充用户子系统。例如,教师可编写一个程序在n层环中运行,用来对学生写的程序进行测试和打分,而学生的程序运行在n1层环上,所以学生无法改变他们的分数,计算机操作系统,13,UNIX 系统V的层次结构,计算机操作系统,14,分层中的问题,每层都处理相当多的功能,一层中的主要变

5、化可能会产生巨大的影响,跟踪相邻层(上一层或下一层)中的代码有很多困难。 其结果是,通过增加或减少一些功能,在基本操作系统上很难实现一个专用版本,并且由于在相邻层之间有很多交互,因而很难保证安全性。,计算机操作系统,15,3.微内核,随着UNIX操作系统的扩充,内核变得大且难以管理。在20世纪80年代中期,卡耐基梅隆大学的研究人员开发了一个称为Mach的操作系统,该系统采用微内核(Microkernel)方法来模块化内核。 这种方法将所有非基本部分从内核中移走,并将它们当作系统级程序和用户级程序来实现。 用这种方法构建操作系统,结果是更小的内核。,计算机操作系统,16,微内核结构,尽管什么应该

6、在微内核中、什么应该在微内核外,不同的设计有不同的分界线,但是共同的特点是许多传统上属于操作系统一部分的功能现在都是外部子系统,包括设备驱动程序、文件系统、虚存管理程序和安全服务等,它们可以与内核交互,也可以相互交互。,计算机操作系统,17,计算机操作系统,18,从图中可以看出,微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。 在微内核外部的操作系统部件被当作服务器进程实现,它们可以借助于通过微内核传递消息来实现相互之间的交互。 微内核起着信息交换的作用: 验证信息、 在部件间传递信息并授权访问硬件。 执行包含功能,除非允许交换,否则它阻止信息传递。,计算机操作系统,19,微内核优点

7、,微内核结构可以很方便地扩充操作系统。 所有新服务被增加到用户空间中,因而并不需要修改内核。 当内核确实需要修改时,所做的改变也会很小,因为微内核本身很小。 这样操作系统很容易从一种硬件平台移植到另一种平台设计。 由于绝大多数服务是作为用户进程而不是作为内核进程来运行的,因此微内核也就提供了更好的安全性和可靠性。如果一个服务失败,那么操作系统的其他部分并不受影响,计算机操作系统,20,11.2 操作系统用户接口,1.命令接口 2.程序接口 3.图形用户接口,计算机操作系统,21,1.命令接口,在操作系统与计算机用户之间提供易于理解的双向通信机制 基本任务: 解释命令,传送命令以便执行 接受系统

8、信息,提交给用户(以响应语言的形式) 基本分类 脱机命令接口 联机命令接口,计算机操作系统,22,脱机命令接口,随着批处理操作系统的出现,出现了控制作业运行的作业控制语言(JCL,Job Control Language)。 用户用作业控制语言预先写好作业说明书,将作业说明书和作业程序数据一起提交给计算机,操作系统按作业说明书的控制语句来执行作业,以达到按照用户意图控制作业运行的目的。 在作业执行过程中,批处理系统缺少用户与操作系统之间交互的能力。 用户一旦向系统提交一道作业后,就无法再对该作业的执行过程进行控制。故用户和系统间基本上处于一种脱机的状态。 这种通信语言功能较强,除含有能够实现系

9、统实用程序(如编译器,装配器)和用户自编程序的执行功能外,还包括控制转移语句,具有可编程的能力,如条件转移语句,当编译器运行出错时,绕过运行装配器而直接结束作业。,计算机操作系统,23,一般而言,JCL包含两种类型的语句: 一类是作业及其申请资源的说明语句 一类是实现作业控制和具体操作功能的执行性语句。反映如下几个方面的要求: (1)作业标识、作业说明及调度要求的参数 (2)对资源申请(主存、外设、CPU) (3)程序和数据的控制功能 (4)调试功能 (5)控制转移功能 (6)作业撤销等,计算机操作系统,24,联机命令接口,联机命令接口又称为交互式命令接口,它由一组键盘操作命令组成。 用户通过

10、控制台或终端键入操作命令,向系统提出各种服务要求。 用户每输入完一条命令,控制权就转入操作系统的命令解释程序,然后命令解释程序对键入的命令解释执行,完成指定的功能。 之后,控制权又转回到控制台或终端,此时用户又可以键入下一条命令。,计算机操作系统,25,联机命令接口,在微机操作系统中,通常把键盘命令分为内部命令和外部命令两大类。 (1)内部命令,这类命令的特点是完成命令功能的程序短小,使用频繁。它们在操作系统初始启动时被引导至内存且常驻内存。 (2)外部命令,完成这类命令功能的程序较长,各自独立地作为一个文件驻留在磁盘上,当需要它们时,从磁盘上调入内存运行。,计算机操作系统,26,命令解释程序

11、,来负责解释执行用户当前发出的命令。 在UNIX操作系统实现中,命令解释程序属于操作系统之外的系统软件层,它运行于用户态下,作为一个进程来运行。 UNIX的1号进程会为每个终端建一个进程运行shell命令解释程序,该程序不断地读取它所控制的终端发来的命令。,计算机操作系统,27,命令解释程序,当用户在终端上输入一条命令时,命令解释程序要做的工作如下: (1)判断命令的合法性 (2)识别命令并执行处理命令的程序(可能向操作系统发出系统调用),继续读取下一条命令。 (3)如果不认识的命令关键字,则在约定目录下查找与命令关键字同名的执行文件,创建子进程执行“执行文件”程序,等待子进程结束后继续读取下

12、一条命令。,计算机操作系统,28,终端命令,终端命令的一般形式如下: Command arg1 arg2 argn 其中,Command是命令关键字,arg1,arg2,argn是执行该命令的参数。,计算机操作系统,29,终端命令,终端命令一般都是串行执行的,即用户键入的一条命令处理完后,系统发出新的提示符,用户继续键入下一条命令。 若执行一条命令需要较长的处理时间而用户不需等待它的结果,就可以在该命令的末尾加上一个“开关”(UNIX是在末尾加“&”),将这条命令作为后台命令处理。 用户可以接着键入下一条命令,系统可同时对前后两条命令做并行处理。,计算机操作系统,30,终端命令,当然,命令解释

13、程序也可以从文件中读取用户先前键入的命令。控制转移语句包含循环语句、条件转移语句等。这一类语句由命令解释程序直接处理,这类语句一般不在交互式输入命令时使用,而是在用户编写命令语言的程序时使用。 系统为用户提供了大量的实用程序,这些实用程序都是可以通过键入对应的终端命令而运行的。因为当用户键入命令解释程序不认识的命令关键字时,命令解释程序不是报错,而是去寻找与命令关键字同名的文件。 所以,如果要运行某个实用程序,只要键入那个实用程序的执行文件名即可。,计算机操作系统,31,2.程序接口,程序接口是操作系统专门为用户程序设置的,也是用户程序取得操作系统服务的唯一途径。 程序接口通常是由各种类型的系

14、统调用所组成的。,计算机操作系统,32,系统调用,系统调用提供了用户程序和操作系统之间的接口,应用程序通过系统调用实现其与操作系统的通信,并可取得它的服务。 系统调用不仅可供所有的应用程序使用,而且也可共操作系统自身的其他部分,尤其是命令处理程序使用。,计算机操作系统,33,系统调用,所谓系统调用就是用户在程序中调用操作系统所提供的一些子程序。具体讲,系统调用就是通过系统调用命令中断现行程序,而转去执行相应的子程序,以完成特定的系统功能。完成后,控制又返回到系统调用命令的逻辑后继指令,被中断的程序将继续执行下去。,计算机操作系统,34,系统调用,实际上,系统调用命令不仅可以供用户程序使用,还可

15、以供系统程序使用,以此实现各类系统功能。 对于每个操作系统而言,其所提供的系统调用命令条数、格式以及所执行的功能等都不尽相同,即使是同一个操作系统,其不同版本所提供的系统调用命令条数也会有所增减。 通常,一个操作系统提供的系统调用命令有几十个乃至上百条之多,它们各自有一个唯一的编号或助记符。,计算机操作系统,35,系统调用分类,(1)设备管理。该类系统调用完成设备的请求或释放、以及设备启动等功能。 (2)文件管理。该类系统调用完成文件的读、写、创建及删除等功能。 (3)进程控制。该类系统调用完成进程的创建、撤销、阻塞及唤醒等功能。 (4)进程通信。该类系统调用完成进程之间的消息传递或信号传递等

16、功能。 (5)内存管理。该类系统调用完成内存的分配、回收以及获取作业占用内存区大小及起始地址等功能。,计算机操作系统,36,系统调用,由特殊的机器指令实现 将系统转入管态 系统调用程序是一个低级过程 系统调用是操作系统提供给编程人员的唯一接口 利用系统调用,动态请求和释放系统资源 完成与硬件相关的工作以及控制程序的执行等,计算机操作系统,37,系统调用执行过程,计算机操作系统,38,( 1)通过软中断(或异常)使系统切换到核心模式,这需要硬件提供相应的支持。一旦CPU进入核心态,就可以按特权方式运行。 (2)程序计数器和处理机状态存入当前进程的堆栈中。 (3)将系统调用号存入核心堆栈中。 (4)执行汇编代码来保存通用寄存器的内容。 (5)调用相应的操作系统例程来完成系统调用。 (6)返回用户方式。,计算机操作系统,39,系统调用与一般过程调用的比较,运行在不同的系统状态 一般过程调用,其调用程序和被调用程序都运行在相同状态:核心态或用户态 系统调用:调用程序在用户态,被调用程序在系统态 状态的转换 一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程 运行

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号