第二章 操作系统结构A - 图文

更新时间:2023-09-29 03:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章操作系统结构

(一)教学目的与要求

通过本章的学习,让学生掌握操作系统的组成部件以及它为用户和应用程序所提供的各种功能,掌握操作系统四种结构以及他们的特征和优缺点;理解操作系统设计的目标、机制和策略以及实现方法,了解操作系统服务、系统调用和系统程序。(二)基本内容

1.操作系统的部件:进程管理的内容;内存管理的内容;文件管理的内容;I/O系统管理的内容;二级存储管理的内容(主存和辅存);网络;保护系统概念;命令解释系统(Shell、字符方式命令解释系统、图形方式命令解释系统)2.操作系统服务:什么是操作系统服务;操作系统服务的内容

3.系统调用:系统调用的作用;程序和操作系统之间的参数传递(寄存器、参数表、栈)

4.操作系统结构:简单结构;层次结构;微内核结构;虚拟机结构(三)重、难点重点:1. 系统调用2. 操作系统结构难点:操作系统结构

1/38

2.1 作业的基本概念2.2 作业的建立

2.3 命令控制界面接口2.4 系统调用

2/38

2.1 作业的基本概念

2.1.1 作业的定义

作业是操作系统中一个常见的概念。关于什么是作业,有两个方面的解释。一个是从用户角度看作业,另一个是从系统的角度来看作业。从用户的角度,可以从逻辑上抽象地(并非精确地)描述作业的定义,而从系统的角度,则可以定义出作业的组织形式。

一般编制一个应用程序大致要经过图2.1中所描述的几步。即由概念或构思出发经过功能设计、结构设计以及详细设计过程之后,再编制程序和进行编辑输入、编译链接和反复调试之后再形成执行代码,并被执行,然后输出执行结果和建立相应的文档等。

3/38

图2.1 一般编程过程

4/38

在图2.1中,直到编辑为止的各步都可认为是可由人工独立完成的(尽管也有许多支撑软件存在),但从编辑输入开始的以下各步却是在用户的要求控制下由计算机完成。

在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。作业由不同的顺序相连的作业步组成。作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。一般来说,每一个作业步产生下一个作业步的输入文件。

5/38

从系统的角度看,作业则是一个比程序更广的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是抢占内存的基本单位。也就是说,批处理系统以作业为单位把程序和数据调入内存以便执行。

需要说明的是,作业的概念一般用于早期批处理系统和现在的大型机、巨型机系统中,对于广为流行的微机和工作站系统,人们一般不太使用作业的概念。

6/38

2.1.2 作业组织

如上所述,作业由三部分组成,即程序、数据和作业说明书。一个作业可以包含多个程序和多个数据集,但必须至少包含一个程序。否则将不成为作业。作业中包含的程序和数据完成用户所要求的业务处理工作。作业说明书则体现用户的控制意图。由作业说明书在系统中生成一个称为作业控制块(job control block,JCB)的表格。该表格登记该作业所要求的资源情况、预计执行时间和执行优先级等。从而,操作系统通过该表了解到作业要求,并分配资源和控制作业中程序和数据的编译、链接、装入和执行等。

7/38

作业说明书主要包含三方面内容,即作业的基本描述、作业控制描述和资源要求描述。作业基本描述包括用户名、作业名、使用的编程语言名、允许的最大处理时间等。而作业控制描述则大致包括作业在执行过程中的控制方式。资源要求描述包括要求内存大小、外设种类和台数、处理机优先级、所需处理时间、所需库函数或实用程序等。作业说明书的主要内容如图2.2 所示。

一般来说,作业说明书方式主要用在批处理系统中,且各计算机厂家都对自己的系统定义有各自的作业说明书的格式和内容。

另外,在微机系统和工作站系统中,人们常用批处理文件或shell程序方式编写作业说明书。

8/38

图2.2 作业说明书的主要内容

9/38

2.2 作业的建立

严格地说,在分时系统中,从系统角度来看甚至没有作业的概念。因此,这里主要介绍批处理系统的作业建立过程。建立一个作业必须把该作业所包含的全部程序和数据输入到计算机的外部辅助存储设备上(简称为外存或辅存),而且,还要由作业注册程序在系统中为该作业申请建立起一个相应的作业控制块。作业控制块和作业之间具有一一对应关系。当一个作业的全部程序和数据输入到外存且在系统中建立了相应的作业控制块之后,就说一个作业已经建立起来了。

一个作业的建立过程包括两个子过程,一个是作业的输入,另一个是作业控制块的建立。

10/38

在系统中为控制系统调用服务的机构称为陷阱(trap)处理机构。与此相对应,把由于系统调用引起处理机中断的指令称为陷阱指令(或称访管指令)。在操作系统中,每个系统调用都对应一个事先给定的功能号,例如0,1,2,3等。在陷阱指令中必须包括对应系统调用的功能号。而且,在有些陷阱指令中,还带有传递给陷阱处理机构和内部处理程序的有关参数。

为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口地址都与相应的系统子程序名对应起来。然后,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。

31/38

由于在系统调用处理结束之后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理之前,陷阱处理机构还需保存处理机现场。再者,在系统调用处理结束之后,陷阱处理机构还要恢复处理机现场。在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。系统调用的处理过程如图2.5所示。

32/38

图2.5 系统调用的处理过程

33/38

有关系统调用的另一个问题是参数传递问题。不同的系统调用需要传递给系统子程序以不同的参数。而且,系统调用的执行结果也要以参数形式返回给用户程序。那么,怎样实现用户程序和系统程序之间的参数传递呢?下面介绍几种常用的实现方法。一种是由陷阱指令自带参数。一般来说,一条陷阱指令的长度总是有限的,而且,该指令还要携带一个系统调用的功能号,从而,陷阱指令只能自带极有限的几个参数进入系统内部。另一种办法是通过使用有关通用寄存器来传递参数。显然,这些寄存器应是系统程序和用户程序都能访问的。不过,由于寄存器长度也是较短的。从而无法传递较多的参数。因此,在系统调用较多的系统中,大多在内存中开辟专用堆栈区来传递参数。

34/38

另外,在系统发生访管中断或陷阱中断时,为了不让用户程序不直接访问系统程序,反映处理机硬件状态的处理机状态字PSW中的相应位要从用户执行模式转换为系统执行模式。这一转换在发生访管中断时由硬件自动实现。一般把处理机在用户程序中执行称为用户态,而把处理机在系统程序中执行称为系统态。

35/38

本文来源:https://www.bwwdw.com/article/w4id.html

Top