目录
学习建议:
基本内容:
一.计算机系统的结构:
1.引导程序:
2.中断:
3.硬件系统:
5.中断处理:
二.输入输出结构:
三.存储结构:
四.硬件保护:
2.管态和目态:
3.存储保护:
五、结构设计目标:
六、层次结构:
操作系统的层次结构设计法: 层次结构法的最大特点是把整体问题局部化。一个大型复杂的操作系统被分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加、删减和修改。
七、用户与操作系统的接口:
概念解析:
1.中断:
2.特权指令:
总结:
练习:
学习建议:
本章主要讲述了计算机系统的层次结构,以及硬件环境和操作系统的结构。操作系统既要使计算机系统能高效地工作,又要为用户提供方便的使用接口。所以,在详细研究操作系统之前,必须对计算机系统的结构有一个基本的了解。学习的主要精力应该花在硬件环境和操作系统的结构上。学习中从了解的角度把握这些概念。
基本内容:
一.计算机系统的结构:
计算机是由硬件系统和软件系统两部分组成,其中最内层是硬件系统,外层是使用计算机系统的人,人与硬件系统之间是软件系统。
操作员(人) | |
应用软件 | |
支援软件 | |
系统软件 | 编译系统 |
… … | |
操作系统 | |
硬件系统 |
计算机系统层次结构
任何一个计算机系统都有一个“引导程序”(或者可以称为初启程序)。
1.引导程序:
引导程序首先进行系统初始化的工作,然后把操作系统的核心程序装入主存储器。如果没有用户请求操作系统服务,那么操作系统总是静静地等待某个事件的发生,当有某个事件出现,操作系统的服务程序就会处理它,处理结束后,又等待下一个事件的发生。
2.中断:
中断是计算机系统结构的一个重要部分,每个计算机系统都有自己的中断机制,中断机制包括硬件的中断装置和操作系统的中断处理服务程序。
中断装置由一些特定的寄存器和控制线路组成,中央处理器和外围设备等识别到的事件保存在特定寄存器中,中央处理器每执行完一条指令后,均由中断装置判别是否有事件发生。若无事件发生,中央处理器继续执行指令;若有事件发生,中断装置中断原占用中央处理器的程序执行,而让操作系统的处理事件的服务程序占用中央处理器对出现的事件进行处理,待操作系统对事件处理完成后,再让原来的程序继续占用中央处理器执行。
3.硬件系统:
硬件系统由中央处理器、主存储器、输入输出控制系统以及各种外围设备组成。中央处理器是对信息进行高速运算和控制处理的部件;主存储器用于存放各种程序和数据,它可被中央处理器直接访问;输入输出控制系统控制和管理外围设备与主存储器之间的信息传送。
4.软件系统:
软件系统包括系统软件、支援软件和应用软件三部分。
分类 | 举例 | 功能 | |
软 件 系 统 | 系统软件 | 操作系统 | 实现资源的管理和控制程序的执行 |
编译系统 | 把高级语言(如PASCAL语言、c语言、c++语言等)所写的源程序翻译成计算机可执行的由机器语言(指令)表示的目标程序 | ||
支援软件 | 各种接口软件、软件开发工具等 | 可支持其他软件的开发和维护 | |
应用软件 | 财务管理、人口普查等专用程序 | 按某种特定的需要而编写的专用程序 |
系统软件、支援软件和应用软件并不能截然分开,它们既有分工又有结合,例如,操作系统是一种系统软件,但它支持了编译系统、数据库等的开发,因而也可看作是一种支援软件。有些软件(例如,数据库)在某个系统中是系统软件,而在另一个系统中可能就成为支援软件。
5.中断处理:
首先把被中断程序的断点(当前的指令地址)等保存起来,然后让操作系统的处理程序占用处理器。
操作系统在处理事件之前,把被中断程序在处理器的各寄存器中设置的状态保存起来,在事件处理结束后,选中某个程序占用处理器时再把被保存的该程序的状态恢复到各寄存器中,同时把该程序的返回地址(原断点或新的启动点)装入指令地址计数器中。
二.输入输出结构:
输入输出控制系统功能:完成外围设备与主存储器之间的信息传送。
中央处理器按程序规定的顺序执行指令,当执行到-条"启动外设"("启动I/O")的指令时,就按指令中给定的参数启动指定的设备并把控制移交给输入输出控制系统。由输入输出控制系统控制外围设备与主存储器之间的信息传送,而中央处理器可继续执行程序。这对,中央处理器与外围设备是并行工作的,外围设备独立工作,不需要中央处理器的干预。但由于外围设备是由中央处理器根据程序的要求而启动的,故当外围设备工作结束后,应把工作情况反馈给中央处理器。这种反馈可通过中断完成,当外围设备工作结束后,形成一个"输入输出操作结束"的事件,中断装置识别该事件后就中断占用中央处理器的程序执行,直操作系统的处理程序处理这个"输入输出操作结束"事件(通常也称为I/O中断事件),操作系统进行分析后就可以知道外围设备的工作情况。
设备并行工作
三.存储结构:
主存储器是中央处理器能直接访问的唯一的存储空间,因而任何程序和数据必须被装入到主存储器之后中央处理器才能对它们进行操作。
主存储器是中央处理器能直接访问的惟一的存储空间,因而任何程序和数据必须被装入主存储器之后中央处理器才能对它们进行操作。
主存储器以"字节"为单位进行编址,若干字节组成一个"字"。
中央处理器可以按地址读出主存储器中一个字节或一个字的内容,读出的内容可以存放在中央处理器设置的内部寄存器(例如,指令寄存器、通用寄存器、各种控制寄存器)中;也可把内部寄存器的内容存储到指定地址的主存空间中。
设置辅助存储器的原因:
一方面受主存储器容量的限制,不足以存储所有需要的程序和数据;
另一方面主存储器不是一种永久性的存储设备,当电源被切断时主存储器中的信息就会消失。
辅助存储器的优点:容量大且能永久地保存信息
辅助存储器的弱点:不能被中央处理器直接访问。如果要使用辅助存储器中的信息,应该先把信息传送到主存储器中,然后,中央处理器才能对信息进行操作。
四.硬件保护:
计算机系统中的资源可供多个程序共享,在资源共享的情况下,一个程序的一个错误可能影响到多个程序出错。因此,安全保护相当重要,-般是硬件提供保护手段和保护装置,操作系统配合实现保护。这里我们介绍硬件的部分保护措施,在以后的章节里将看到操作系统是如何与硬件合作达到保护的目的。
1.输入输出保护:
特权指令(链接到概念辨析3)只允许操作系统程序使用,用户程序不能使用特权指令。也就是说,外围设备的启动工作由操作系统统一管理。
加入输入输出保护的外围设备启动流程
由操作系统启动外围设备不仅可保证安全地使用外围设备,正确地传送信息,而且可减少用户为启动外围设备而必须了解外围设备特性及组织启动等工作,大大方便了用户。
2.管态和目态:
中央处理器有两种工作状态:管态和目态。
当中央处理器处于管态时可执行包括特权指令在内的-切机器指令;
当中央处理器处于目态时不允许执行特权指令。
所以,操作系统程序占用中央处理器时,应让中央处理器在管态下工作,而用户程序占用中央处理器时,应让中央处理器在目态下工作。如果中央处理器在目态工作,但却取到了一条特权指令,此时中央处理器将拒绝执行该指令,并形成一个"非法操作"事件。中断装置识别到该事件后,转交给操作系统去处理,由操作系统通知用户:"程序中有非法指令",必须修改。
当系统启动时,硬件置中央处理器的初始状态为管态,然后装入操作系统程序。如果操作系统选择了用户程序占用处理器,则把管态转换成目态。如果中断装置发现了一个事件,则又将其置为管态,让操作系统去处理出现的事件。所以,总能保证操作系统在管态工作,操作系统退出执行时,让用户程序在目态执行。
3.存储保护:
主存储器中往往同时装入了操作系统程序和若干用户程序,为了保证正确操作,我们希望操作系统程序不被破坏,也希望用户程序相互间不干扰。这就必须限定用户程序只能在规定的主存区域内执行,以保护各程序的安全。
每个程序在主存中占一个连续的存储空间,硬件设置两个寄存器:一个称为"基址寄存器",另一个称为"限长寄存器",用来限定用户程序执行时可以访问的主存空间范围。当操作系统选中某个用户程序占用中央处理器时,把该用户程序占用的主存空间的起始地址存入基址寄存器,把占用的主存空间的长度存入限长寄存器。中央处理器在目态厂执行程序时,对每一个访问主存的地址都要进行核对,若关系式
基址寄存器值≤访问地址≤基址寄存器值十限长寄存器值
成立,则允许访问;否则不允许访问。这样就保护了该区域之外的存储信息不受到破坏,一旦程序执行中出错也不会涉及其他程序。
中央处理器在管态下执行程序时,对访问主存的地址不进行核对,以允许操作系统对各个用户程序进行管理和控制。
不允许用户随意修改基址寄存器和限长寄存器的值,只有操作系统才有权改变它们的值。硬件把修改这两个寄存器内容的指令也定义为特权指令,只能在管态时执行,以防止用户程序改变寄存器的内容。
五、结构设计目标:
(一)正确性
能引起操作系统工作不正确的因素很多,其中最主要的是用户作业的类型以及作业到达系统的时间是随机的,系统中发生的各种事件是随机的,多个随机到达的作业都要占用中央处理器和使用计算机系统的其他资源。操作系统必须充分估计和把握各种不确定的情况,一个结构良好的操作系统不仅能保证正确性而且易于验证其正确性。
(二)高效性
操作系统自身的开销,例如,占用的主存空间和辅存空间及占用的处理器时间等对计算机系统的效率有很大影响。减少操作系统的开销就能提高计算机系统的效率,尤其对常驻主存储器的核心程序部分更要精心设计。核心程序处于频繁活动状态,是影响计算机系统效率的关键所在,设计核心程序应遵循少而精的原则,使处理既有效又灵活。
(三)维护性
一个操作系统交付使用后,有时想对功能进行增、删,当发现错误时需要进行修改,为了提高效率要对算法进行调整等。因此,在结构设计时应注意到这些问题,使操作系统容易维护。
(四)移植性
所谓移植性是指能否方便地把操作系统移植到一个新的硬件环境中。为了能方便地移植,在结构设计时,应尽量减少与硬件直接有关的程序量且将其独立封装。这样,在移植时,只要修改这一部分程序,其他部分不必修改。如果能采用国际通用的标准c语言或 c++语言编写操作系统程序,那么,只要经过重新编译和设置必要的参数,就可使其适应新的硬件环境。
六、层次结构:
操作系统是负责管理计算机系统资源的最基本的系统软件,用户是通过调用操作系统的功能来使用计算机的。那么操作系统应该具有那些功能呢?
操作系统的层次结构设计法:
层次结构法的最大特点是把整体问题局部化。一个大型复杂的操作系统被分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加、删减和修改。
五层的程序组成了操作系统的主干部分,其调用关系一般是从外层到内层。
基于这样的五层结构,主要提出的操作系统结构的设计方法有:无序模块法、内核扩充法、层次结构法及管程设计法等。各种设计方法总的目标都要保证操作系统工作的可靠性。 其中,层次结构法的最大特点是把整体问题局部化。一个大型复杂的操作系统被分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加、删减和修改。
从资源管理的观点看,操作系统的功能分成五大部分,即:处理器管理、存储管理、文件管理、设备管理和作业管理。
这五大部分相互配合,协调工作,实现对计算机系统的资源管理和控制程序的执行,为用户提供方便的使用接口和良好的运行环境。按照依赖关系,操作系统的一种层次结构如图2-5所示。
处理器管理要对中断事件进行处理,要为各程序合理地分配中央处理器的工作时间。它是操作系统的核心程序,是与硬件直接有关的部分。因而,把它放在最内层。作业管理是实现作业调度和控制作业执行的部分,它与用户作业密切相关,因而把它放在最外层。存储管理、设备管理和文件管理依次存放在中间层。为避免错综复杂的联系可能造成的差错,可规定各层次的依赖关系,图2-5的层次结构是一种外层依赖内层的关系。
层次结构的主要优点是有利于系统的设计和调试,实现各层次的功能时都可利用较内层提供的功能,不必知道内层的功能是怎样实现的,而只需知道这些功能可做什么。调试工作可从最内层开始,最内层只使用硬件提供的功能,调试时无需考虑其他任何部分。一旦最内层调试通过,则第二层可在最内层提供的功能上执行,依次类推,直到完成各层功能的调试。若在调试某层的功能时发现错误,可断定错误位于当前层,因为较内层的各层次已通过调试了。
层次结构的主要困难在于层次的划分和安排,由于每一层只能利用位于它内层提供的功能,因而需要仔细地规划每一层的功能,以保证操作系统工作过程中不出现双向依赖关系。如果存在双向依赖关系,则很可能出现无休止的循环,使系统瘫痪。
七、用户与操作系统的接口:
操作系统为用户提供两种类型的使用接口,以便用户与操作系统建立联系。一种是操作员级的,这类接口供用户提出如何控制作业执行的要求;另一种是程序员级的,这类接口为用户程序提供服务功能。
(一)操作员接口
一个用户作业进入计算机系统后,用户往往要告诉操作系统控制作业执行的步骤。例如,依次做编译、装配及运行等工作。为此,操作系统提供了让用户(操作员一级的用户)表示作业执行步骤的手段:作业控制语言和操作控制命令。
用户可以用作业控制语言写出控制作业执行步骤的"作业控制说明书",也可从键盘上输入操作控制命令或从"命令菜单"中选择命令指出作业的执行步骤。操作系统根据作业控制说明书能自动地控制作业的执行,有利于作业的成批处理。当用户使用操作控制命令时,用户每输入一条命令,操作系统就按命令要求进行控制,一条命令的控制要求完成后,就通知用户输入下--条命令,直到作业执行结束。
(二)程序员接口
在源程序-级,用户使用程序设计语言描述算题任务的逻辑要求,例如,打开一个文件、读文件、写文件及请求主存空间等。这些要求的实现只有通过操作系统的功能程序才能完成;操作系统编制了许多不同功能的子程序,用户程序在执行中可以调用这些子程序。由操作系统提供的这些子程序系统功能调用"程序,或简称"系统调用"。
这些"系统调用"程序执行时往往要使用"启动I/O"等特权指令,所以,"系统调用"是在管态下执行的程序。由于用户程序是在目态下执行的,那么用户程序怎样调用这些功能程序呢?现代计算机系统硬件都提供一条"访管指令"来实现这个功能。
不同的操作系统提供的系统调用不全相同,但大致分为以下几类:
1.文件操作类
这类系统调用有:打开文件、建立文件、读文件、写文件、关闭文件及删除文件等。
2.资源申请类
用户调用系统功能请求分配主存空间、归还主存空间、分配外围设备及归还外围设备等。
3.控制类
执行中的程序可以请求操作系统中止其执行或返回到程序的某一点再继续执行。统要根据程序中止的原因和用户的要求作出处理,因而这类系统调用有:正常结束、异常结束及返回断点/指定点等。
4.信息维护类
7.访管指令
这是一条可以在目态下执行的指令。当源程序中有需要操作系统服务的要求时,编译程序就会在由源程序转换成的目标程序中安排一�"访管指令"并设置一些参数。当目标程序执行时,中央处理器若取到了"访管指令"就产生一个中断事件,中断装置就会把中央处理器转换成管态并让操作系统处理该中断事件。操作系统分析访管指令中的参数,然后让相应的"系统调用"子程序为用户服务。系统调用功能完成后,操作系统把中央处理器的管态改为目态,并返回到用户程序。
概念解析:
1.中断:
1.中断
中断是计算机系统结构的一个重要部分,每个计算机系统都有自己的中断机制,中断机制包括硬件的中断装置和操作系统的中断处理服务程序。
2.特权指令:
2.特权指令
硬件把"启动I/O"等一类可能影响系统安全的指令定义为特权指令。
总结:
计算机系统由硬件和软件两大部分组成。硬件是软件执行的基础,硬件具有中央处理器与外围设备并行工作的能力,各个外围设备也可同时工作。操作系统利用硬件的这种功能,采用多道程序设计技术,允许多用户并行工作。在硬件的中断装置配合下,操作系统能正确地控制各个程序的执行。
一个要执行的程序必须装入主存储器,中央处理器可直接访问主存储器。各种外围设备只能与主存储器交换信息,在辅助存储器中的信息只有被读到主存储器之后,才能供中央处理器访问。大多数计算机系统把辅助存储器作为主存储器的扩展,用来保存大量的程序和数据。磁盘可被随机访问,用来存放常用的信息;磁带主要用于备份,存放不常用的信息以及作为系统间信息交换的媒介。
为了保证计算机系统能正确工作,中央处理器有两种工作模式:管态和目态。限定用户程序在目态执行,不能使用特权指令。操作系统利用硬件设置的基址寄存器和限长寄存器来限定各程序可访问的主存空间,以免相互干扰而造成错误。
操作系统提供多种服务功能,面向用户提供两类使用接口。一组操作控制命令或作业控制语言供用户提出对作业的控制要求;一组系统功能调用供用户程序请求操作系统服务。
由于操作系统十分庞大,清晰的结构有利于开发和调试。层次结构是一种重要的设计技术,正确性容易得到保证,也提高了可维护性和可移植性。
我们已经知道计算机系统是由硬件系统和软件系统两部分组成,软件系统中的操作系统是直接在硬件系统的基础上工作的,尤其是与输入输出机制紧密联系在一起。操作系统既要使计算机系统能高效地工作,又要为用户提供方便的使用接口。所以,在详细研究操作系统之前,必须对计算机系统的结构有一个基本的了解。
练习:
- .简述计算机系统的层次结构。
- 计算机的层次结构的最内层是硬件系统,最外层是使用计算机系统的人,人与硬件系统之间是软件系统。软件系统包括系统软件、支援软件和应用软件。
- 简述操作系统是如何工作的。
- 当计算机启动后,引导程序将操作系统核心程序装入主存,如果没有用户请求操作系统服务,它就等待某个事件的发生。当有某个事件出现,操作系统的服务程序就对它进行处理,处理结束后,再等待下一个事件发生。
- 在多道程序设计技术的系统中、操作系统怎样才会占领中央处理器?
- 只有当中断装置发现有事件发生时,它才会中断当前占用中央处理器的程序执行,让操作系统的处理服务程序占用中央处理器并执行之。
- 简述计算机系统的中断机制及其作用。
- 中断机制包括硬件的中断装置和操作系统的中断处理服务程序。中断装置由一些特定的寄存器和控制线路组成,中央处理器和外围设备等识别到的事件保存在特定的寄存器中,中央处理器每执行完一条指令,均由中断装置判别是否有事件发生。若无事件发生,cPu继续执行;若有事件发生,则中断装置中断原占有cPu的程序的执行,让操作系统的处理事件服务程序占用cPu,对出现和事件进行处理,事件处理完后,再让原来的程序继续占用CPu执行。
- 计算机系统为什么要配置辅助存储器?
- 由于主存储器容量的限制,不足以存储所有需要存储的程序和数据,并且主存储器不是一种永久性的存储设备,当电源被切断时主存储器中的信息就会消失;而辅助存储器容量大且能永久地保存信息,所以计算机系统都配置辅助存储器。
- 怎样的输入输出结构才能使cPu与外设并行工作?
- 这种结构为:把各种外围设备连接在相应的控制器上,这些设备控制器又通过通道连接在公共的系统总线上。
- 对特权指令的使用有什么限制?
- 只允许操作系统使用特权指令,用户程序不能使用特权指令。
- cPu在管态和目态下工作有何不同?
- 当中央处理器处于管态时,可以执行包括特权指令在内的一切机器指令,而在目态下工作时不允许执行持权指令。
- 计算机系统怎样实现存储保护?
- 一般硬件设置了基址寄存器和限长寄存器。中央处理器在目态下执行系统时,对每个访问主存的地址都进行核对,若能满足:基址寄存器值≤访问地址≤基址寄存器值+限长寄存值,则允许访问;否则不允许访问。并且不允许用户程序随意修改这两个寄存器的值。这就实现了存储保护。
- 简述操作系统的层次结构。
- 操作系统的层次结构以硬件为基础,自内向外依次为:处理器管理、存储管理、设备管理、文件管理和作业管理。
- 操作系统为用户提供哪些接口?。
- 操作系统为用户提供两种类型的使用接口,一是操作员级的、它为用户提供控制作业执行的途径;二是程序员级的,它为用户程序提供服务功能。
- 用户如何使用系统调用?
- 硬件系统一般都提供一条访管指令,它可以在目态下执行。用户要使用系统调用时必须使用访管指令。由操作系统分析访管指令的参数,让相应的系统调用子程序为用户服务。