首页 理论教育 操作系统特征与服务:五大要点

操作系统特征与服务:五大要点

时间:2023-10-17 理论教育 版权反馈
【摘要】:操作系统作为一类系统软件也有其基本特征,即并发性、共享性、异步性和抽象性。虽然各个操作系统所提供的服务并不完全相同,但仍有以下相同之处。系统中各类资源都由操作系统统一管理,如CPU调度、内存分配、文件存储等都有专门的分配程序,而其他的资源有更为通用的申请和释放程序。它一般位于操作系统核心的最高层。

操作系统特征与服务:五大要点

1.操作系统的特征

世间一切事物都有个性,一类事物又有共性。操作系统作为一类系统软件也有其基本特征,即并发性、共享性、异步性和抽象性。

(1)并发性

并发性是指两个或多个活动在同一给定的时间间隔中进行。这是一个宏观上的概念。大家知道,在操作系统的统一管理下,系统内存中有许多道程序。在单CPU的环境下,任何时刻(微观上)最多只能有一道程序真正在CPU上执行;而从一段时间上看(宏观上),这些程序交替地运行,都向前推进了,即得到执行了。为此,操作系统必须具备控制和管理各种并发活动的能力,建立活动实体,并且分配必要的资源。

(2)共享性

共享性是指计算机系统中的资源被多个任务所共用。例如,多个计算任务同时占用内存,从而对内存进行共享;它们并发执行时对CPU进行共享;各个程序在执行过程中会提出对文件的读写请求,从而对磁盘、系统中的设备以及数据等进行共享。

不同用户会在同一操作系统上工作,这样,操作系统的模块就是共享的资源。为保证用户环境的一致性,被共享的程序必须是纯码(pure code),也称为可再入代码(reentry code)。所谓纯码是指在执行过程中,本身不做任何变化的代码,通常是由指令和常数组成的。由于纯码共享是安全的,所以,在操作系统和系统软件的设计中普遍采用纯码编制程序。

(3)异步性

在多道程序环境下,各程序的执行过程有着“走走停停”的特点。每道程序要完成自己的操作,但又要与其他程序共享系统中的资源。这样,程序什么时候得以执行、在执行过程中是否被其他操作打断(如I/O中断)、向前推进的速度是快还是慢等都是不可预知的,由程序执行时的现场所决定。另外,同一程序在相同的初始数据下,无论何时运行都应获得同样的结果。这就是操作系统的异步性。

(4)抽象性

抽象性是把复杂事情简单化的有效方式。好的抽象可以把一个难以管理的繁杂任务划分为两个可管理的部分:一个是有关抽象的定义和实现,另一个是利用这些抽象解决问题。操作系统管理系统中所有的硬件和软件资源,在实施过程中对它们进行高度抽象化,如CPU到进程的抽象、物理内存到地址空间(虚拟内存)的抽象以及磁盘到文件的抽象等。程序员可以方便地利用操作系统提供的系统调用对文件进行读、写、增、删等操作,而不必考虑它们的类型、存放在何处、如何进行I/O等细节。

2.操作系统提供的服务和方式

操作系统为用户程序运行提供环境,同时也为程序和用户提供众多服务。虽然各个操作系统所提供的服务并不完全相同,但仍有以下相同之处。

(1)服务项目

①程序执行。用户需要执行程序时,系统必须先把它们装入内存;当程序正常完成或发生意外事故而无法运行下去时,必须终止程序的执行。

②I/O操作。正在运行的程序往往需要进行输入和输出,包括文件读写和I/O驱动。专用设备需要专门的程序(如倒带驱动、CRT的清屏幕等)。

③文件系统管理。需要为用户的程序和数据建立文件后,才能把它们保存在系统中,以后可以按名称对它们进行读写操作;当不需要这些程序和数据时,可以按文件名将其删除。

④出错检测。操作系统需要经常了解可能出现的错误。错误来源是多方面的,可能在CPU和内存硬件中(如内存出错或掉电),也可能在I/O设备上(如磁带机的奇偶错、软盘划盘或打印机脱纸),还可能由于用户程序有错(如算术溢出、地址异常或占用CPU时间过长)。操作系统对每类错误都要检测到,并采取相应措施,保证计算的一致性。(www.xing528.com)

通信。在很多情况下,一个进程要和另一个进程交换信息。进程间交换信息的方式主要有两种:同一台计算机上的进程可以通过共享内存实现,而通过计算机网络连在一起的不同机器上的进程要利用消息传送技术。

⑥资源分配。多个用户或者多道作业同时运行时,各自都必须分得相应的资源。系统中各类资源都由操作系统统一管理,如CPU调度、内存分配、文件存储等都有专门的分配程序,而其他的资源(如I/O设备)有更为通用的申请和释放程序。

⑦统计。系统管理员往往需要了解各个用户对系统资源的使用情况,如使用什么类型的资源、使用的数量等,以便了解系统状况、优化系统性能,或者只是简单地对系统使用情况进行统计等。操作系统要随时统计系统资源的使用情况。

⑧保护。在多用户计算机系统中,文件主能对所创建的文件进行控制使用,并且设置其他用户对它的存取权限。此外,当多个不相关进程同时执行时,一个进程不得干扰另外一个进程。在多道程序运行环境中,对各种资源的需求经常发生冲突,为此,操作系统必须做调节和合理的调度。

从用户角度来看,系统安全问题也是非常重要的。只有合法的用户(通过密码验证)才能进入系统,存取被授权使用的资源。网络用户也必须通过身份验证才能登录上网。

(2)服务方式

操作系统对外提供的服务可以通过不同的方式实现,其中两种基本的服务方式就是系统调用和系统程序。这也是操作系统提供给用户的两种接口

①系统调用

如上所述,系统调用是操作系统提供的、与用户程序之间的接口,也就是操作系统提供给程序员的接口。它一般位于操作系统核心的最高层。当CPU执行到用户程序中的系统调用[如使用read()从文件中读取数据]时,处理机的状态就从用户态变为内核态,从而进入操作系统内部,执行它的有关代码,实现操作系统对外的服务。当系统调用完成后,控制返回到用户程序。

虽然系统调用表面上类似于过程调用,都由程序代码构成,使用方式相同——调用时传送参数,但两者有实质性的差别:过程调用只能在用户态下运行,不能进入内核态;而系统调用可以实现从用户态到内核态的转变。

不同操作系统所提供的系统调用的数量和类型是不一样的,但基本概念是类似的。系统调用通常是作为汇编语言指令来使用的,往往在程序员所用的各种手册中列出。但是,有些系统中直接用高级程序设计语言(如C,C++和Perl语言)来编制系统调用。在这种情况下,系统调用就以函数调用的形式出现,且一般都遵循POSIX国际标准,如在UNIX、BSD、Linux、MINIX等现代操作系统中都提供用C语言编制的系统调用。当然,在细节上它们还有些差异。系统调用可大致分为5个类别:进程控制、文件管理、设备管理、信息维护和通信。

②系统程序

现代计算机系统中都有系统程序包,其中含有系统提供的大量程序。它们解决具有共性的问题,并为程序的开发和执行提供更方便的环境。尽管系统程序很重要,也很有用,但它们确实不是操作系统的组成部分。一些系统程序只是简化了用户与系统调用的接口,而另一些要复杂得多。系统程序要获得操作系统的服务也要通过系统调用这个接口。

系统程序可以分为6大类:文件管理、状态信息、文件修改、程序设计语言的支持、程序装入和执行、通信。

很多操作系统都提供解决共性问题或执行公共操作的程序,通常称作系统实用程序或应用程序,如Web浏览器、字处理程序、文本格式化程序、电子表格数据库系统、绘图和统计分析软件包、游戏等。

对操作系统来说,最重要的系统程序就是命令解释程序。它的主要功能是接收用户输入的命令,然后予以解释并且执行。在UNIX系统中,通常将命令解释程序称作shell。虽然shell不是操作系统的组成部分,但它体现许多操作系统的特性,并且很好地说明如何使用系统调用。shell也是终端用户与操作系统之间的一种界面(另一种界面是图形用户界面)。实现命令的常见方式有内置方式(命令代码就在shell内部)和外置方式(命令以单独的文件形式存放在磁盘上)两种。

大多数用户看待操作系统是说它的命令如何,而不是说它的实际的系统调用怎样。从这种意义上讲,系统程序是对系统调用的功能集成和应用简化。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈