《计算机操作系统》课件第2章_第1页
《计算机操作系统》课件第2章_第2页
《计算机操作系统》课件第2章_第3页
《计算机操作系统》课件第2章_第4页
《计算机操作系统》课件第2章_第5页
已阅读5页,还剩53页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.1硬件环境2.2操作系统的逻辑结构2.3用户与操作系统的接口习题2.1.1存储器

存储器是计算机系统中的记忆设备,用来存放程序和数据。目前,构成存储器的存储介质主要采用半导体器件和磁性材料。对于存储器的要求是容量大、速度快、成本低,但是在一个存储器中要求同时兼顾这三方面是比较困难的。为了解决这方面的矛盾,目前在计算机系统中,通常采用多级存储器体系结构,即高速缓冲存储器、主存储器和外存储器,如图2-1所示。CPU能直接访问的存储器称为内存储器,它包括高速缓冲存储器和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器后才能由CPU进行

处理。2.1硬件环境图2-1存储系统的分级结构

1.高速缓冲存储器

它是位于CPU与主存储器之间的一种容量较小但速度很高的存储器。一般来说,CPU的速度远高于主存储器,当CPU直接从主存储器中存取数据时要等待一定的时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据则可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。

Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),一般L1Cache主要集成在CPU内部,而L2Cache集成在主板或是CPU上。

2.主存储器

主存储器简称主存,是计算机系统中的主要存储器,用来存放计算机运行期间的大量程序和数据。一个要执行的程序必须装入主存储器,中央处理器可直接访问主存储器,因而任何程序和数据必须被装入主存储器之后中央处理器才能对它们进行操作。

主存储器以“字节”为单位进行编址,若干字节组成一个“字”。

中央处理器可以按地址读出主存储器中一个字节或一个字的内容,读出的内容可以存放在中央处理器设置的内部寄存器(例如指令寄存器、通用寄存器和各种控制寄存器)中,也可把内部寄存器的内容存储到指定地址的主存空间中。

3.外存储器

外存储器简称外存,它是大容量的辅助存储器。目前主要使用磁盘存储器、磁带存储器和光盘存储器。各种外围设备只能与主存储器交换信息,在辅助存储器中的信息只有被读到主存储器之后,才能供中央处理器访问。大多数计算机系统把辅助存储器作为主存储器的扩展,用来保存大量的程序和数据。磁盘可被随机访问,用来存放常用的信息。磁带主要用于备份,存放不常用的信息以及作为系统间信息交换的媒介。为什么设置辅助存储器呢?主要从以下两个方面考虑:

(1)由于主存储器容量的限制,主存不足以存储所有需要的程序和数据;

(2)主存储器不是一种永久性的存储设备,当电源被切断时主存储器中的信息就会消失。

辅助存储器的优点是容量大且能永久地保存信息,缺点是不能被中央处理器直接访问。如果要使用辅助存储器中的信息,应该先把信息传送到主存储器中,然后,中央处理器才能对信息进行操作。2.1.2处理机的态

在计算机系统中,中央处理器会在系统程序和用户程序之间切换,因此中央处理器有两种工作状态:系统态和用户态。

系统态又称核心态或管态,是操作系统的管理程序执行时机器所处的状态。它具有较高的特权,能执行一切硬件指令,访问所有寄存器和内存储区。用户态又称常态或目态,是用户程序执行时机器所处的状态。这是具有较低特权的执行状态,只能执行规定的指令,访问指定的寄存器和内存储区。

计算机系统都有自己的指令系统,在多道程序设计系统中,指令系统分为“特权指令”与“非特权指令”。特权指令仅能由操作系统使用,如设置时钟、清内存等为特权指令;其他指令为非特权指令,用户只能使用非特权指令。当中央处理器处于管态时可执行包括特权指令在内的一切机器指令,当中央处理器处于目态时则不能执行特权指令。所以,操作系统程序占用中央处理器时,应让中央处理器在管态下工作,而用户程序占用中央处理器时,应让中央处理器在目态下工作。如果中央处理器在目态下工作,但却取到了一条特权指令,此时中央处理器将拒绝执行该指令,并形成一个“非法操作”事件。中断装置识别到该事件后,转交给操作系统去处理,由操作系统通知用户:“程序中有非法指令”,必须修改。当系统启动时,硬件装置将中央处理器的初始状态设为管态,然后装入操作系统程序,如果操作系统选择了用户程序占用处理器,则把管态转换成目态。如果中断装置发现了一个事件,则又将其置为管态,让操作系统去处理出现的事件。所以,总能保证操作系统在管态下工作,操作系统退出执行时,让用户程序在目态执行。2.1.3中断技术

计算机系统由硬件和软件两大部分组成。硬件是软件执行的基础,硬件具有中央处理器与外围设备并行工作的能力,各个外围设备也可同时工作。操作系统利用硬件的这种功能,采用多道程序设计技术,允许多用户并行工作。在硬件的中断装置配合下,操作系统能正确地控制各个程序的执行。

1.中断

中断是计算机系统结构的一个重要组成部分。在中断机制中的硬件部分(中断装置)的作用就是在CPU每执行完一条指令后,判断是否有中断事件发生,如果没有事件发生,CPU继续执行;若有事件发生,中断装置中断原先占用CPU的程序的执行,把被中断程序的断点保存起来,让操作系统的处理服务程序占用CPU对事件进行处理,处理完后,再让被中断的程序继续占用CPU执行下去。

2.中断的类型

从中断事件的性质出发,中断可以分为两大类:

(1)强迫性中断事件:包括硬件故障中断,程序性中断,外部中断和输入输出中断等。

(2)自愿性中断事件:是由正在运行的进程执行一条访管指令用以请求系统调用而引起的中断,这种中断也称为“访管中断”。

3.中断的响应

中央处理器每执行一条指令后,硬件的中断装置立即检查有无中断事件发生,若有中断事件发生,则暂停现行进程的执行,而让操作系统的中断处理程序占用处理器,这一过程称为“中断响应”。

中断响应过程中,中断装置要做以下三项工作:

(1)是否有中断事件发生;

(2)若有中断发生,则保护断点信息;

(3)启动操作系统的中断处理程序工作。

4.中断处理

操作系统的中断处理程序对中断事件进行处理时,大致要做三方面的工作:

1)保护被中断进程的现场信息

处理器的运行现场就是指处理机在执行程序过程中任意一个时刻的状态信息的集合。

处理器运行现场包括的内容有:指令计数器(程序计数器),程序状态寄存器,通用寄存器,特殊控制寄存器。

进入中断处理时首先把被中断程序的断点(当前的指令地址)等保存起来,然后让操作系统的处理程序占用处理器。操作系统在处理事件之前,把被中断程序在处理器的各个寄存器中设置的状态保存起来,在事件处理结束后,选中某个程序占用处理器时再把被保存的该程序的状态恢复到各寄存器中,同时把该程序的返回地址(原断点或新的启动点)装入指令地址计数器中。

2)分析中断原因

根据旧的程序状态字(PSW)的中断码可知发生该中断的具体原因。

3)处理发生的中断事件

请求系统创建相应的处理进程进入就绪队列。

5.中断屏蔽

中断屏蔽技术是在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。

如果当中断装置检查到有中断事件后,便去查看PSW中的中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应。自愿性中断是不能屏蔽的。

6.中断机制在操作系统中的作用

中断机制最大的优点是方便处理随机事件。无论在什么情况下,只要有随机事件发生,操作系统都可以通过中断机制中断当前程序的运行,转而执行处理该事件的服务程序。

因此,中断给操作系统设计带来了很多方便之处:

(1)中断使得实时处理许多紧急事件成为可能。

(2)中断可以实现处理器与外设的并行,提高处理器的执行效率。

(3)中断可以实现多道程序间的切换。

(4)中断还可以让操作系统能够为用户程序提供一系列的系统调用,作为系统服务的支撑平台,简化操作系统和应用程序的开发设计过程。2.2.1结构设计目标

为提高计算机系统资源的利用率和方便用户使用,在计算机系统中必须配备操作系统。

操作系统是一个大型的软件,规模庞大、结构复杂。操作系统必须具有一个清晰、正确的逻辑结构。操作系统的结构设计目标主要考虑正确性、高效性、可维护性、可移植性等要求。

2.2操作系统的逻辑结构

1.正确性

能引起操作系统工作不正确的因素很多,其中最主要的是用户作业的类型以及作业到达系统的时间是随机的。系统中发生的各种事件都是随机的,多个随机到达的作业都要占用中央处理器和使用计算机系统的其他资源,操作系统必须充分估计和把握各种不确定的情况。一个结构良好的操作系统不仅能保证操作系统的正确性而且易于验证其正确性。

2.高效性

操作系统自身的开销,例如占用的主存空间和辅助存储空间、占用的处理器时间等,对计算机系统的效率有很大影响。减少操作系统的开销就能提高计算机系统的效率,尤其对常驻主存储器的核心程序部分更要精心设计。核心程序处于频繁活动状态,是影响计算机系统效率的关键所在,设计核心程序应遵循少而精的原则,使处理既有效又灵活。

3.维护性

一个操作系统交付使用后,有时需对功能进行增加、删除,如发现错误时需要进行修改,为了提高效率要对算法进行调整等。因此,在结构设计时应注意到这些问题,使操作系统容易维护。

4.移植性

所谓移植性,是指能否方便地把操作系统移植到一个新的硬件环境中。为了能方便地移植,在结构设计时,应尽量减少与硬件直接有关的程序量且将其独立封装。这样,在移植时,只需修改这一部分程序,其他部分不必修改。如果能采用国际通用的标准C语言或C++语言编写操作系统程序,那么,只要经过重新编译和设置必要的参数,就可使其适应新的硬件环境。2.2.2层次结构

操作系统是负责管理计算机系统资源的最基本的系统软件,用户是通过调用操作系统的功能来使用计算机的。如何设计和构造这样一个繁琐而又有相当规模的软件呢?通常采用模块分层方法,在硬件基础上分层次构造操作系统的各个部分。

由于操作系统十分庞大,清晰的结构有利于开发和调试。层次结构是一种重要的设计技术,正确性容易得到保证,也提高了可维护性和可移植性。层次结构法的最大特点是把整体问题局部化。一个大型复杂的操作系统被分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加、删减和修改。

从资源管理的观点看,操作系统的功能分成四大部分,即处理器管理、存储管理、文件管理、设备管理。

这四大部分相互配合,协调工作,实现对计算机系统的资源管理和控制程序的执行,为用户提供方便的使用接口和良好的运行环境。按照依赖关系,操作系统的一种层次结构如图2-2所示。图2-2操作系统层次结构处理器管理要对中断事件进行处理,要为各程序合理地分配中央处理器的工作时间。它是操作系统的核心程序,是与硬件直接有关的部分。因而,把它放在最内层。存储管理、设备管理和文件管理依次存放在外层。为避免错综复杂的联系可能造成的差错,可规定各层次的依赖关系,图2-2的层次结构是一种外层依赖内层的关系。层次结构的主要优点是有利于系统的设计和调试,实现各层次的功能时都可利用内层提供的功能,不必知道内层的功能是怎样实现的,而只需知道这些功能可做什么。调试工作可从最内层开始,最内层只使用硬件提供的功能,调试时无需考虑其他任何部分。一旦最内层调试通过,则第二层可在最内层提供的功能上执行,依次类推,直到完成各层功能的调试。若在调试某层的功能时发现错误,可断定错误位于当前层,因为内层的各层次已通过调试了。层次结构的主要困难在于层次的划分和安排,由于每一层只能利用位于它内层提供的功能,因而需要仔细地规划每一层的功能,以保证操作系统工作过程中不出现双向依赖关系。如果存在双向依赖关系,则很可能出现无休止的循环,使系统瘫痪。2.3.1命令接口

按照对作业控制方式的不同,命令接口分为脱机命令接口和联机命令接口。通常在批处理系统中,用户以脱机方式使用计算机;而在分时系统和具有交互能力的系统中,使用联机命令接口。

脱机命令接口又称批处理命令接口,通过作业控制语言(JCL,JobControlLanguage)实现,即由一组作业控制命令(或语句)组成。脱机用户不能直接干预作业的运行。用户上机前必须准备好用作业控制语言书写的作业申请书,包括程序和数据等。用户对作业的控制要求以作业控制说明书的方式提交给系统,系统根据作业说明书来分配作业所需资源并控制作业的执行。2.3用户与操作系统的接口联机命令接口又称交互式命令接口,即利用操作系统提供的操作命令来实现人与计算机之间的信息交流。它由一组操作命令组成,这组命令由操作系统的命令解释程序解释执行。不同的操作系统提供不同的操作命令方式,通常采用命令行接口(CLI,CommandLineInterpreter,命令行解释程序)方式和窗口图形接口(GUI,GraphicalUserInterfaces,图形用户接口)方式。

1.作业控制语言

一个用户作业进入计算机系统后,除作业程序执行时要调用系统功能外,用户往往还要告诉系统控制作业执行的步骤。例如,依次做编译、装配、运行等。系统提供了让用户给出作业执行步骤的手段,即作业控制语言和操作控制命令。

用户可以用作业控制语言写出控制作业执行步骤的“作业说明书”,这是一种非交互式的控制方式;也可以从键盘输入操作控制命令或从“菜单”中选择命令来指出作业的执行步骤,这是一种交互式的控制方式。一般在批处理系统中的脱机工作方式下,系统提供作业控制语言。用户对作业的控制意图要利用作业控制语言书写一份作业操作说明书,包括作业申请表、操作说明书、程序和数据。在上机前,用户向系统提出执行作业的请求,包括作业名、需用CPU时间、最迟完成时间、资源请求及使用何种编译程序等。作业说明书由一条条对作业处理的命令组成,如编辑命令、编译命令、连接命令、运行命令等。操作系统根据作业申请表来分配作业所需的资源并注册该作业,通过作业说明书对作业实施控制。

2.命令行方式

在联机方式下,用户通过命令行完成操作命令的提交。用户通过控制台或终端键入操作命令,向系统提出各种服务请求。用户每输入完一条命令,控制就转入命令解释程序,然后命令解释程序对键入的命令解释执行,完成指定的功能。之后,控制转回到控制台或终端,准备接收用户的下一条命令。如此反复,直到作业执行结束。所谓命令行方式,通常是指以一问一答的方式提交任务,即在操作系统的系统提示符下直接输入操作命令,每输入一条命令执行一个任务,通过命令控制计算机。

早期的操作系统都是以命令行方式与用户交互,用户通过命令行提交任务。典型的具有命令行工作界面的操作系统有DOS、UNIX、NetWare等。

3.窗口图形方式

在命令行方式下,用户与操作系统的交互要求用户记忆命令格式。窗口图形方式是指在系统提供的工作窗口中通过菜单命令或工具按钮完成命令的提交,从而完成与操作系统的交互,这种工作界面的最大特点是用户不必死记命令和语法,只需从窗口中选择操作命令即可。当前流行的Windows系列都是具有窗口图形工作界面的操作系统。窗口系统的图形元素及其状态主要包括以下几种。

1)窗口(window)

窗口是屏幕上的矩形区域。窗口中主要包括的图形元素一般有标题条(titlebar)、边框(border)、窗口角(corner)、系统菜单框(systemmenubox)、最大化/最小化按钮(maximize/minimize)、滚动条(scrollbar)等。

窗口的状态一般包括当前/非当前窗口(active/inactive),最大化/最小化/恢复原大小(restore),窗口的前后遮盖,焦点(focus)。

2)图标(icon)

图标是一个小图像(如32×32pixel或64×64pixel),通常供鼠标指针点击。通过不同的图标可以标识不同的对象,如可执行程序、最小化的窗口等。

鼠标指针(mousepointer):鼠标指针通常对应屏幕上的光标(cursor)。

光标在屏幕上只有一个,在不同屏幕位置(上下文)可以呈现不同形状,可以独立于鼠标来直接操纵光标。鼠标点击主要包括左键/右键/中键(left/right/middlebutton),单击(click)/双击(double-click),拖曳(drag)/拖放(drag-and-drop)。

3)按钮(button)

当用鼠标点击按钮时将执行相应的功能,或提供单项或多项选择。

4)菜单(menu)

菜单是临时窗口,可分为菜单条(menubar)、弹出式菜单、下拉式菜单(上下文相关菜单)。

5)对话框(dialogbox)

对话框也是临时窗口,可以显示提示信息(message)或填写用户设置。系统提供的窗口图形方式一般有以下几个特点:

(1)利用图形元素表示功能,即将各种图形元素显示在屏幕上,用户可以通过操纵图形元素(如菜单、图标)来执行相应的功能。

(2)同屏多窗口与并发进程相对应,即屏幕上同时显示多个窗口;一个进程可以对应一个或多个窗口;窗口动态创建、改变、撤销。

(3)输入方式:可以通过鼠标指针点击(或其他定位设备)或键盘输入,通常是即时交互。

(4)一致的图形元素风格可方便用户学习和使用,如按钮、滚动条等。2.3.2程序接口

在源程序一级,用户使用程序设计语言描述算题任务的逻辑要求,例如,打开一个文件、读文件、写文件及请求主存空间等,这些要求的实现只有通过操作系统的功能程序才能完成。操作系统编制了许多不同功能的子程序,用户程序在执行中可以调用这些子程序。由操作系统提供的这些子程序称为子程序系统功能调用程序,或简称为“系统调用”。程序接口就是由一组系统调用命令组成的,是操作系统提供给程序设计人员的接口,供用户以程序方式进行操作,或通过API(ApplicationProgrammingInterface)函数调用系统提供的例行程序,请求操作系统提供服务。例如在DOS系统中提供中断服务功能,在Windows系统中提供WindowsAPI函数。系统调用是为了用户在程序中调用操作系统而提供的一些子功能。系统调用命令是为扩充机器指令、增强系统功能、方便用户使用而提供的。因此,在一些计算机系统中,把系统调用命令称为广义指令。广义指令与机器指令在性质上是不同的,机器指令是用硬件来实现的,而广义指令则是由操作系统提供的一个或多个子程序模块实现的。

系统调用提供了运行程序和操作系统之间的界面,一个操作系统提供的系统调用越多,系统的功能就越强,用户使用起来就越方便。

系统调用命令按其功能大致分为进程管理和控制、进程通信、外部设备的输入输出服务、文件管理和存储空间的管理等。

(1)进程控制,包括进程创建、进程执行、进程撤销、执行等待和执行优先级控制等。

(2)进程通信,用在进程之间传递消息或信号。

(3)设备管理,用来请求和释放有关设备、以及启动设备操作等。

(4)文件管理,包括打开文件、建立文件、读文件、写文件、关闭文件及删除文件等。

(5)存储管理,包括调查作业占据内存区的大小、获取作业占据内存区的始址等。为了能更清楚说明系统调用的实现,下面给出一个小例子:

在DOS操作系统中,系统调用主要功能包括:

(1)设备管理(如键盘、显示器、打印机、磁盘等的管理)。

(2)文件管理和目录操作。

(3)其他管理(如内存、时间、日期等的管理)。这些子程序给用户编程带来很大方便,用户不必了解有关的设备、电路、接口等方面的问题,只需直接调用即可。调用这些子程序的方法如下:

(1)功能号→AH,将系统功能号送到AH寄存器中。比如:将01送给AH,表示从键盘输入一个字符。

(2)入口参数→指定寄存器。

(3) INTDOS函数调用。用户只需给出以上三方面信息,DOS就可根据所给信息自动转入相关子程序执行。

下面给出一个修改系统日期的实例来进一步描述系统调用:

#include“stdio.h”

#include“dos.h”

main()

{

当程序运行后,用户输入DATE命令显示系统日期时,系统日期改为2008-10-20。

在Linux操作系统中,也同样提供了许多功能,我们将在第3章的实例中给出进程控制的系统调用,供大家参考。

通常情况下,当提到系统调用时,会引起和一般过程调用的混淆,那么系统调用和一般的过程调用存在什么区别呢?下面从以下几点进行简单的比较和说明。

1.系统调用是动态调用,而一般过程调用是静态调用

系统调用是动态调用,程序中不包含被调用代码,优点是:用户程序长度缩短;当操作系统升级时,调用方也不必改变用户程序。

系统调用方式的调用地址和返回地址都是不固定的,系统调用指令中不包含调用地址,只包含功能号,是按功能号(在可执行目标程序中)调用的。在操作系统内部,由系统调用处理程序通过系统调用分支表(操作系统的一个数据结构)将功能号转换为相应的指令地址。

系统调用返回指令中不包括返回地址,通过栈保存和弹出返回地址。系统调用返回地址不固定,因为用户程序在不同的地方调用操作系统。

2.运行的系统状态不同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论