操作系统(一)—— 操作系统概论

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Alexshi5/article/details/87804909

一、操作系统的概念

1、计算机系统

        计算机系统是一种可以按照用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。广义的计算机系统包含机械式系统和电子式系统两类。

        计算机系统包括硬件系统和软件系统。硬件系统是计算机系统赖以工作的实体。软件系统保证计算机系统按用户指定的要求协调工作。计算机系统的资源包括两大类:硬件资源和软件资源。其中,计算机硬件系统包括中央处理器(CPU)、内存处理器(主存)、外存储器(磁盘、磁带等)以及各种类型的输入输出设备(键盘、鼠标、显示器,打印机等)。

        任何一个程序在计算机系统中执行前,必须要得到计算机系统的内存空间后才能被装入内存, 这些程序的执行需要依靠中央处理器。程序在执行的过程中需要调用公共服务子程序和共享文件,还要使用各种计算机的外部设备,用以完成信息的输入和输出。

        简单来说,集中了资源管理功能和控制程序执行功能的一种软件,被称为操作系统。

2、操作系统的定义

        操作系统是计算机系统中的一个系统软件,它能够有效的组织和管理计算机系统中的硬件及软件资源,合理的组织计算机制工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,并使整个计算机系统能够高效地的运行。

        操作系统的任务之一是组织和管理计算机系统中的硬件及软件资源。在操作系统内部,为了掌握整个计算机系统的硬件和软件资源,设计了各种不同类型的表格或数据结构,将所有的硬件资源和软件资源一一加以登记,资源的名称、类型、数量、用途、完好状态以及目前使用状态等所有信息,均在有关数据结构中保存,并动态地、实时地不断更新着这些数据。记录数据的目的是让操作系统根据用户对各种资源的需求情况、资源的当前分配和使用情况以及有关的资源调度策略,对资源进行有效的组织和管理。这里的“有效”是指,操作系统在管理计算机系统的资源时要考虑到系统运行的效率和资源的利用率,要尽可能提高中央处理器的利用率,以此来减少对内存及硬盘空间的浪费。

        操作系统的另一项重要任务,是向用户提供各种服务功能。一方面,向程序开发人员提供高效的接口;一方面,向使用计算机系统的用户提供接口,使得用户能够灵活、方便、有效地的使用计算机。这里的“方便”是指操作系统的人机界面要考虑到用户使用界面和程序编程接口两个方面的易用性、易学性和易操作性 。

3、操作系统的特征

(1) 并发性

        并发性是指在计算机系统中同时存在着若干个运行着的程序。从宏观上看,这些程序在同时向前推进。从微观上看,在单处理器的环境下,这些同时运行着的程序是交替在处理器上运行的。在多处理器系统的环境中,多个程序的并发特征,不仅在宏观上是并发的,而且在微观上,程序也是并发执行的。

        计算机程序的并发性主要体现在两个方面:用户程序和用户程序之间的并发执行;用户程序和操作系统程序之间的并发执行。

        关于并发性和并行性。并行性是指两个或多个事件在同一时刻发生,这是一个具有微观意义的概念。而并发性是指两个或多个事件在同一时间时隔内发生,它是一个比较宏观的概念。在单处理器系统中,多个程序的并发执行不具有任何的并行性,因为它们在微观上确实是顺序执行的,没有任何两条指令是并行执行的。

(2) 共享性

        共享性是指操作系统程序与多个用户程序共享系统中的各种资源。资源共享主要针对以下几种资源:

① 中央处理器(CPU)。

        操作系统必须采取恰当的调度策略,对多个并发程序分配处理器资源。

② 内存储器。

        任何一个程序必须首先调入内存之后才能执行。

③ 外存储器。

        它主要用于保存各种程序和数据,这些程序和数据一般以文件的形式保存在外存储器上。这些外存储器都是为所有的程序和数据共享的,操作系统要确证在外存储器中所有程序和数据的完整性和正确性。

④ 外部设备。

        在计算机系统中,对资源的共享有两种形式:互斥共享和同时共享。

① 互斥共享

        系统中的资源在一段特定的时间内只能由某一个用户程序使用,当这个资源正在被使用的时候,其他请求该资源的程序必须等待,并且在这个资源被使用完了以后才由操作系统根据一定的策略再选择一个用户程序占有该资源。通常把这样的资源称之为临界资源。

② 同时共享

        系统中还有一类资源,它们在同一时间内可以被多个程序同时访问,这种访问是指宏观上的同时,微观上可能还是交替进行的),而且它们交替访问这个资源的顺序对访问结果没有什么影响。比如说硬盘就是同时共享的资源。

(3) 随机性

        操作系统的运行是在一种随机的环境下运行的。操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何事先的假定。

4、研究操作系统的观点

(1) 软件的观点

        从软件的观点来看,操作系统是一种大于的软件系统,它是多种功能程序的集合。作为一种大于的软件系统,它有软件的外在特性和内在特性。

        操作系统的软件外在特性是指,操作系统是一种软件,它的外部表面形式,即它的操作命令定义集和它的界面,完全确定了操作系统这个软件的使用方式。

        操作系统的软件内在特性是指,操作系统既然是一种软件,它就具有一般软件的结构特点,但它又不是一般的应用软件,它具有一般应用软件所不具有的特殊结构。比如操作系统中同硬件交互的软件是如何组成的,每个组成部分的功能作用和各部分之间的关系等,都需要研究。

(2) 资源管理的观点

        操作系统就是负责登记谁在使用什么样子的资源,系统中还有哪些空闲资源,当前响应了谁对资源的请求等。操作系统要提供一些机制去协调程序间的竞争与同步,提供机制对资源进行合理使用,施加保护,以及采取虚拟技术对资源进行扩充等。

(3) 进程的观点

        采用进程的观点,则把操作系统看作多个可以同时独立运行的程序和一个对这些程序进行协调的核心所组成。进程可以看作是运行中的程序,每一个进程都完成特定的任务。我们可以把进程分为系统进程和用户进程两大类,而操作系统则控制和协调这些程序的运行。

        采用进程的观点,侧重于分析系统各部分的并行工作,研究处理各项管理任务的分割以及这些管理任务相互之间的关系。进程在共享资源时所产生的竞争问题,通过进程之间的通信来解决。

(4) 虚拟器的观点

       虚拟器的观点是从系统功能分解的角度出发,考虑操作系统的结构。这种观点将操作系统的结构分成若干个层次,每一个层次完成特定的功能,从而构成一个虚拟器,并为上一层次提供支持,构成它的运行环境。

(5) 服务提供者的观点

        操作系统提供了一系列的功能和便利的工作环境为用户服务,所以可以把操作系统看作是服务提供者。从用户的角度,站在操作系统之外来观察操作系统,则可以认为该服务提供者为用户提供了比裸机功能更强、服务质量更高、更方便灵活的虚拟机器。

5、操作系统的功能

(1) 进程管理

        进程管理的实质是对中央处理器进行管理,所以进程管理又被称为处理器管理。为了提高处理器的利用率,现代操作系统都采用了多道程序技术。如果一个程序因等待某一条件不能运行下去时,就要把处理器的占用权转交给另一个可运行程序。或者,出现了一个比当前运行的程序更重要的可运行程序时,后者应能抢占处理器。

        进程管理主要包括进程控制、进程同步、进程间通信和进程调度等几个方面的内容。其中,进程控制主要处理进程的创建、状态转换、进程撤销以及相关的进程资源的分配与回收;进程同步主要处理进程之间的关系,包括进程的同步与互斥;进程间通信主要处理相互协作进程之间信息的交换问题;而进程调度则是按照一定的算法从就绪队列中挑选一个进程在处理器中执行它。

(2) 存储管理

        存储管理是管理计算机中的内存资源。存储管理有三个方面的任务。首先,当多个程序共享有限的内存资源时,要考虑如何为多个程序分配有限的内存空间,比如对于已经退出运行的进程所占据的内存空间,操作系统要进行回收重新使用;其次,存储在内存中的多个程序和数据应该彼此隔离、互不侵扰,比如程序越界或程序具有恶意,操作系统要防止它们危害其他用户或操作系统;再次,解决内存扩充的问题,即将内存和外存结合起来管理,为用户提供一个比实际内存大得多的虚拟存储器。

        在虚拟存储技术中,操作系统通常将地址空间划分为4KB大小的页面,并且以页面为单位进行存储空间的调度。在使用中,操作只把正在使用的页面保持在内存中或把即将使用的页面调入内存中,而将不用的页面调换到外存上,用户感受不到实际内存对使用空间的限制。当然,系统要实现这一机制,必须提供请求页面调入的功能和页面置换的功能。

(3) 文件管理

        文件管理的任务是有效地的支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护的问题,让用户可以方便、安全的访问文件。

① 文件存储空间的管理

        文件系统的一个很重要的功能就是为每个文件分配一定的外存空间,并且尽可能提高外存空间的利用率和文件访问的效能。文件系统设置专门的数据结构纪录文件存储空间的使用情况,为了提高空间利用率,存储空间的分配通常采用离散分配方式,以512B或者几KB的块为基本单位进行分配。

② 目录管理

        目录管理的任务是给出组织文件的方法,它为每个文件建立目录项,并对众多的目录项加以有效的组织,以便为用户提供方便的按名存取。

③ 文件系统的安全性

        安全性包括文件的读写权限管理以及存取控制,用以防止未经核准的用户存取文件,防止越权访问文件,防止使用不正确的方式访问文件。

(4) 设备管理

        设备管理是指计算机系统中除了处理器和内存以外的所有输入、输出设备的管理。由操作系统的设备管理功能负责外部设备的分配、启动和故障处理,用户不必详细了解设备及接口的技术细节,就可以方便地通过操作系统提供的设备管理手段,对设备进行操作。

        在操作系统中,为了提高设备的使用效率和整个系统的运行速度,需要采用一系列的技术,包括中断技术、通道技术、虚拟设备技术和缓冲技术等,尽可能的发挥设备和主机的并行工作能力。此外,设备管理应为用户提供一个良好的界面,使用用户不必涉及具体设备的物理特性,即可方便灵活的使用这些设备。

(5) 用户接口

        操作系统还应该向用户提供使用它自己的手段,这就是用户与计算机系统之间的接口。接口管理的任务是为用户提供一个使用系统的良好环境,使用用户能够有效地组织自己的工作流程,并使整个系统能够高效地运行。

二、操作系统的体系结构

1、Windows操作系统的体系结构

        Windows体系结构是分层的模块系统,主要层次有硬件抽象层HAL、内核、执行体和大量的子系统集合。前面三个都运行在保护模式下,而各子系统都在用户模式下运行。子系统又可分为环境子系统和保护子系统两类,其中环境子系统仿真不同的操作系统,保护子系统提供安全功能。

(1) 内核

        内核执行Windows操作系统中最基本的操作,主要提供下列功能:线程调度、陷入处理和异常调度、中断处理和调度、多处理器同步、供执行体使用的基本内核对象。Windows操作系统的内核始终运行在核心态,代码短小紧凑,可移植性比较好。

(2) 硬件抽象层HAL

        HAL是一个可加载的核心态模块HAL.dll,它为运行在Windows操作系统上的硬件平台提供低级接口,HAL隐藏各种与硬件有关的细节,例如I/O接口、中断控制器以及多处理器通信机制等任何体系结构专用的和依赖于计算机平台的函数。

(3) 执行体

        Windows的执行体是NTOSKRNL.EXE的上层(内核是其下层),执行体从用户态导出并且可以调用函数,这些函数的接口在NTDLL.DLL中,通过Win32API可以对它们进行访问。

(4) 系统进程和系统线程

        系统进程是一种特殊类型的、只运行在核心态的“系统线程”的宿主。系统线程具有一般用户态线程的所有属性和描述表,不同点在于它们仅运行在内核态,执行加载于系统空间中的代码。另外,系统线程没有用户进程地址空间,因此必须从系统内存堆中分配动态存储区。系统线程只能从内核态调用。

2、UNIX操作系统的体系结构

        UNIX操作系统的最里层是硬件;紧邻最里层的是操作系统内核,包括进程管理、存储器管理、设备管理和文件管理四个资源管理功能;往外一层是系统调用接口,即操作系统与用户的接口Shell以及编译程序等;最外层是应用程序。

(1) 内核层

        内核层是操作系统管理和控制中心,常驻内存。它有两个方面的接口,一方面是内核与硬件的接口,它通常由一组驱动程序和一些基本的例程组成;另一方面是内核与Shell的接口,它由两组系统调用及命令解释程序所组成。内核本身以可分为两大部分,一部分是进程控制子系统;另一部分是文件子系统。两组系统调用分别与这两大子系统交互。

① 进程控制子系统

        它负责对处理器和存储器进行管理,其功能可分为进程控制、进程通信、存储器管理和进程调度。

② 文件子系统

        负责有效的管理系统中所有的设备和文件,其功能可分为文件管理、高速缓存机制和设备驱动程序。

(2) 系统调用层

        系统调用层界于内核层和应用层之间,是供程序员设计、开发应用程序时使用的。UNIX系统调用包括进程管理、文件管理和终端状态等。

(3) 应用层

        应用层包括各种开发工具、高级语言编译器、网络通信处理程序等。所有应用层程序都是在Shell(命令语言解释程序)的管理和控制下为用户服务的,是面向用户操作的界面。

3、Linux操作系统的体系结构

        Linux系统有四个主要部分,即内核、Shell、文件系统和用户应用程序。

(1) Linux内核

        它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux内核由系统调用、内核管理、进程管理、设备驱动程序、文件系统和网络管理等。

(2) Linux Shell

        Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。

(3) Linux文件系统

        文件系统是文件存储在磁盘等存储设备上的组织方法。

(4) Linux应用程序

        标准和Linux系统一般都有一套称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。

4、Android操作系统的体系结构

        Android操作系统分为四层,从高层到低层分别是应用程序层、应用框架层、系统运行库和Linux内核层。

(1) Android应用程序

        Android会同一些核心应用程序一起发布,这些用户程序包括客户端、SMS短消息程序、日历、地图、浏览器、联系人等,所有的应用程序都是使用Java语言编写的。

(2) Android用户框架

        应用框架层为应用开发者提供了用以访问核心功能的API框架,在遵循框架安全性限制的前提下,任何一个应用都可以调用这些核心功能API来发布自己的功能组件。

(3) C、C++本地库和Android运行时环境

        Android包括一些C/C++库,这些库能被Android系统中不同的组件使用,它们通过Android应用程序框架为开发者提供服务。

        Android运行时环境提供了核心链接库和Dalvik VM虚拟系统,采用Java开发的应用程序编译成apk程序代码后,交给Android操作环境来执行。

(4) Linux内核

        Linux内核层包括系统层安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块,位于硬件与其他的软件层之间,提供与硬件的交互。

三、操作系统的分类

1、批处理操作系统

(1) 基本工作方式

        批处理操作系统的基本工作方式是:用户将作业交给系统操作员,系统操作员在收到一定数量的用户作业之后,组成一批作业,再把这一批作业输入到计算机中,这批作业可以在系统中形成一个连续的、自动转接的作业流,系统操作员然后启动操作系统,系统自动、依次执行每个作业,最后由操作员将执行完毕的结果转交给用户。

(2) 特点与分类

        批处理操作系统的特点是成批处理。批处理操作系统的优点是作业流程自动化较高,资源利用率较高,作业吞吐量大,从而提高了整个系统效率。其缺点是用户不能直接与计算机无交互,不适合调试程序。

        依据系统的复杂程度和出现的时间先后,可以把批处理操作系统分为简单批处理系统和多道批处理系统。

(3) 设计思想

         简单批处理系统又被称为监控程序。其设计思想是:在监控程序启动之前,操作员有选择地把若干作业合并成一批作业,然后将这批作业安装在输入设备上,再启动监控程序,这时监控程序将自动控制这批作业的执行。全部作业运行结束之后,操作员把运行的结果一起交给用户。在这种系统工作方式下,作业的运行以及作业之间的衔接都由监控程序自动控制,从而有效的提高了作业运行的效率。

(4) 作业控制说明书

        在简单批处理系统中,作业的运行步骤是由作业控制说明书来传递给监控程序的,作业控制说明书是由作业控制语言编写的一段程序,它通常存储被处理作业的前面。

(5) 一般指令和特权指令

        中央处理器的运行模式通常分为用户模式和特权模式。在操作系统领域中,人们往往把为用户服务的用户模式称作为目态,而把为系统专用的特权模式称作为管态。相对应地,机器指令被划分为一般指令和特权指令。

        特权指令包括输入/输出指令、停机指令等,只有监控程序才能执行特权指令。用户程序只能执行一般指令,一旦用户程序需要执行特权指令,处理器会通过特殊的机制将控制权移交给监控程序。

(6) 系统调用的过程

        首先,当系统调用发生时,处理器通过一种特殊的机制,通常是中断或者异常处理,把控制流程转移到监控程序内的一些特定的位置。同时,处理器模式转变为特权模式。

        其次,由监控程序执行被请求的功能代码。

        最后,监控程序恢复系统调用之前的现场,把运行模式从特权模式恢复成用户模式,再将控制权转移回原来的用户程序。

(7) SPOOLing(假脱机)技术

        简单批处理的操作系统不具有并发能力,即不能实现多个程序的同时运行,真正引入并发机制是多道批处理系统。在多道批处理系统中,关键技术就是多道运行、假脱机技术等。

        脱机输入输出技术,为主机配备相对高速的磁带设备,主机的所有输入输出操作在磁带机上完成,另外配备若干卫星机,它们负责将用户作业从卡片传输到磁带上,在执行时,由操作员把成卷记录了若干用户作业的磁带装到主机上去处理。这种技术通过使用输入输出与计算在不同的设备上并行操作,从而有效地提高了处理器的利用率,但它并没有从根本上解决输入输出缓慢的问题。

        假脱机技术借助硬件通道技术,实现了输入输出操作和处理器动作的自动并行处理。这种技术的基本思想是用磁盘设备作为主机的直接输入输出设备,主机直接从磁盘上选取作业运行,作业的执行结果也存储在磁盘上。相应地,通道则负责将用户作业从卡片机上动态写入磁盘,而这一操作与主机并行。

        假脱机技术为实现多道批处理系统中的多道程序设计思想提供了重要的基础。多道程序设计的基本思想是在内存中同时保持多个作业,主机可以以交替的方式同时处理多个作业。

2、分时系统

(1) 基本工作方式

        在分时系统中,一台计算机主机连接了若干个终端,每个终端可由一个用户使用。用户通过终端交互式地向系统提出命令请求,系统接受用户的命令之后,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果,用户根据系统送回的结果发出下一道交互命令。

(2) 设计思想

        分时操作系统将处理器的运行时间划分成若干个小片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。由于每个时间片极短,而计算机的处理速度远比人的反应速度快的多,所以尽管所有的用户都在同时使用一个处理器,但每个用户并不能感觉到有别的用户存在而影响了他对计算机的使用效率,用户似乎感觉到系统是被他独占的。

(3) 特点

        总体上看,分时操作系统具有多路性、交互性、独占性和及时性的特点。

① 多路性

        是指有多个用户在同时使用一台计算机。从宏观上看是多人同时使用一个处理器,但从微观上看是多个人在不同时刻轮流使用一个处理器。

② 交互性

        是指用户根据系统的响应结果提出下一个请求。

③ 独占性

        是指用户感觉不到计算机为其他人服务,就好像整个系统为他一个人所独占一样。

④ 及时性

        是指系统能够对用户的提出的请求及时给予响应。

        分时操作系统所追求的目标是及时响应用户输入的交互命令。在一个交互系统中,通常把一个用户从终端发出的命令给予回答所经历的时间,定义为响应时间。显然,响应时间越短越好。

        一般通用操作系统结合了分时系统和批处理系统两种系统的特点,在通用操作系统中,对于分时与批处理的处理原则是:分时优先,批处理在后。而对于分时和批处理的运行状态,则称为前台和后台。

3、实时操作系统

        实时操作系统是指使计算机能在规定的时间内,及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统的主要目标是:在严格的时间范围内,对外部请求做出反应,系统具有高度可靠性。

        实时操作系统主要有两类:第一类是硬实时系统。硬实时系统对关键外部事件的响应和处理时间有着极严格的要求,系统必须满足这种严格的时间要求,否则会产生严重的不良后果。火箭和导弹控制、机器人控制、核反应堆控制等是硬实时系统应用的典型领域。第二类是软实时系统。软实时系统对事件的响应和处理时间有一定的时间范围要求,不能满足相关的要求会影响系统的服务质量,但是通常不会引发灾难性的后果。如视频处理、电信自动交换机、银行、飞机订票等领域的信息处理。

        实时系统为了实现硬实时或软实时的要求,除了具有多道程序系统的基本能力外,还需要有以下几个方面的能力。

① 实时时钟管理

        实时系统的主要设计目标是对实时任务能够进行实时处理。实时任务根据时间要求可以分为两类:第一类是定时任务,它依据用户的定时启动并按照严格的时间间隔重复运行;第二类是延时任务,它非周期地运行,允许被延后执行,但是往往有一个严格的时间界限。

② 过载防护

        实时系统中的实时任务往往与环境的依赖关系很大。实时任务的启动时间和数量具有很大的随机性,突发的大量实时任务极有可能超出系统的处理能力,从而发生过载。实时系统在出现过载现象时,要有能力在大量突发的实时任务中,迅速分析判断并找出最重要的实时任务,然后通过抛弃或者延后次要任务以保证最重要任务成功的执行。

③ 高可靠性

        高可靠性是实时系统的设计目标之一。由于实时系统往往用在一些关键应用上,实时系统的任务故障,都有可能对整个应用系统带来极大的危害,所以实时系统要有很强的健壮性和坚固性。

4、嵌入式操作系统

        嵌入式操作系统就是运行在嵌入式芯片环境中,对整个芯片以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。

        嵌入式操作系统具有高可靠性、实时性、占用资源少、智能化能源管理、易于连接、低成本等优点。

        嵌入式操作系统通常配有对应的嵌入式操作系统开发环境,在开发环境中提供了源码级可配置的系统模块设计、多种的同步原语、可选择的调度算法、可选择内存分配策略、定时器与计数器、多方式中断处理支持、多种异常处理选择、多种通信方式支持、标准的C语言库、数学运算库和开放式应用程序接口。

        嵌入式操作系统是嵌入式系统的控制中心,而嵌入式系统则是嵌入式操作系统、相应设备环境与应用环境的结合,是一个很广泛的概念。

        嵌入式系统在工业监控、智能化生活空间、通信系统、导航系统等领域有着广泛的应用。

5、个人计算机操作系统

        个人计算机操作系统是一种单用户多任务的操作系统。它的主要特点是:计算机在同一时间内为单个用户服务;采用图形页面人机交互的工作方式,界面友好;使用方便,用户无须具备专业知识,也能熟练地操纵系统。

6、网络操作系统

        为计算机进行网络配置的操作系统称为网络操作系统。网络操作系统是基于计算机网络的、在各种计算机操作系统之上按网络体系结构协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享和各种网络应用。

        网络操作系统把计算机网络中的各个计算机有机地连接在一起,其目标是相互通信及资源共享。通过网络操作系统,用户可以使用网络其他计算机的资源、实现相互计算机间的信息交换,从而扩大了计算机的应用范围。

        计算机网络有不同的模式。在集中模式中,运算处理在主计算机里发生,终端仅作为输入/输出设备使用,通过连接两台或更多主机的方式构成计算机网络。在分布式模式中,每台计算机都有运算处理能力,多台计算机通过网络交换数据并共享资源和服务。在分布式模式中,网络环境中的计算机不仅能共享数据、资源及服务,还能共享运算处理能力。

7、分布式操作系统

        将大量的计算机通过网络连接在一起,可以获得极高的运算能力及广泛的数据共享,这样的系统被称为分布式系统。为分布式系统配置的操作系统称为分布式操作系统。分布式操作系统是网络操作系统的更高级形式。

         分布式操作系统除了具有网络操作系统的各种功能之外,还具有以下特征:

① 分布式操作系统是一个统一的操作系统。在系统中的所有主机使用的是同一个操作系统。

② 实现资源的深度共享。在分布式系统中,通过统一的操作系统的调度,在某台主机上的一个计算任务可以迁移到另一台主机上执行,真正实现了处理器资源的共享。

③ 透明性。即在用户眼里整个分布式系统像是一台具有强大功能的计算机系统,用户并不知道该分布式系统运行在多少台计算机上,各个主机地理位置上的差异对用户来说是透明的。

④ 自治性。即处于分布式系统中的所有主机都处于平等地位,各个主机之间没有主从关系,一个主机的失效一般不会影响整个分布式系统。

        分布式系统的优点在于它的分布式,分布式系统可以以较低的成本获得较高的运算性能。分布式系统的另一个优势是它的可靠性,由于有多个计算机系统,当一个计算机系统发生故障时,整个分布式系统仍旧可以工作。

        机群是分布式系统的一种,一个机群通常由一群处理密集构成,机群操作系统专门服务于这样的机群。

四、操作系统的设计

        操作系统设计过程中的主要困难有:

① 设计复杂程序高

        操作系统的复杂程序主要表现在:程序长,有的功能模块包含数百万条指令;接口信息多,各个组成部分之间的信息交换很多,而且错综复杂;动态性强,程序本身包含较多的动态部分;并行性强,不同部分之间可以同时操作。

② 正确性难以保证

        操作系统包含的功能成份很多,各种外部设备的接口复杂,导致操作系统源代码的正确性难以保证。解决这个问题的途径是发展良好的操作系统结构,采用先进的开发技术、工程化的管理方法,并使用高效的开发工具。

③ 研制周期长

        一般的软件研制周期包括:需求分析,由用户提供软件的需求,并根据需求制作软件规格说明书;设计者根据软件规格说明书进行软件设计;实现者编写程序,调试、测试并整理各种开发文档,然后提交给用户使用,在应用的过程中不断的改进和提高软件的品质。一个操作系统的研制周期一般为5年左右。

1、操作系统的设计过程

        操作系统的设计过程一般可分为三个部分:功能设计、算法设计和结构设计。

(1) 功能设计

        功能设计是指根据系统的设计目标和使用要求,确定所设计的操作系统应具备哪些功能以及操作系统的类型。

(2) 算法设计

        算法设计是根据计算机的性能以及操作系统的功能,来选择和设计满足系统功能的算法和策略,并分析和估算其效能。

(3) 结构设计

        结构设计则是按照系统的功能和特性要求,选择合适的结构,使用相应结构设计方法将系统逐步地分解、抽象和综合,使用操作系统结构清晰、简明、可靠、易读、易修改,而且使用方便,适应性强。

2、操作系统的设计目标

        一个高质量的操作系统应具有可靠性、高效性、易维护性、易移植性、安全性和简明性等特征。

(1) 可靠性

        可靠性包含了正确性和健壮性。

        影响操作系统正确性的因素有很多,最主要的是并发、共享以及随之带来的不确定性。并发使得系统中各指令流的执行次序可以任意交叉;而共享导致进程对系统资源的竞争,使用不同的指令执行序列之间产生直接和间接的相互制约。以上两点原因会引发系统的不确定性,这种不确定性要求系统能动态地应付随时发生的各种内部和外部事件。

        在发生硬件故障或某种意外的环境下,操作系统应该仍能做出适当的处理,避免造成严重的损失,这是对操作系统健壮性的要求。

(2) 高效性

        操作系统的一个重要目标,是提高系统中各种资源的利用率,即提高系统的运行效率。

(3) 易维护性

        易维护性包括易读性、易扩充性、易剪裁性、易修改性等含义。

(4) 可移植性

        可移植性是指,把一个程序系统从一个计算机系统环境中移植到另一个计算机系统环境中并能够正常运行的特性。为了提高操作系统的可移植性,应当在设计时就考虑把操作系统程序中与硬件相关的部分与操作系统的其他部分相对独立。

(5) 安全性

        操作系统的安全性是整个计算机系统安全性的基础,它为保护用户的程序和数据提供了最基本的安全机制。

(6) 简明性

        如果一个操作系统没有简明性,那么该操作系统的设计和开发人员在工作中就很难清晰的了解和掌握该操作系统的设计。

3、操作系统的结构设计

(1) 操作系统结构设计的重要性

        操作系统是一种大型软件,为了研制操作系统,必须研究分析它的结构,也就是要考虑如何把一个大型软件划分为较小的模块,以及这些模块之间怎样接口。

        所谓操作系统的结构,是指操作系统各部分程序的存在方式及相互关系,若操作系统的各部分程序以程序模块方式存在,相互之间通过调用建立起关系,那么这种操作系统具有模块接口结构。若各部分程序以进程的方式存在,相互之间通过通信建立起关系,那么这种操作系统具有进程结构。若操作系统能按照各模块的调用顺序或主进程的信息发送顺序把模块进程分层,各层之间只能单向依赖,这样就分别产生了模块层次结构的操作系统或进程层次结构的操作系统。

(2) 操作系统结构研究的目标

        操作系统结构研究的目标主要是:

① 系统模块化

        模块是一组数据结构以及定义在这组数组结构上的操作。目前的计算机语言大都是模块化的,它们反映了程序和数据的局部化,强调了功能对实现的抽象,模块的调用者只需要知道模块的功能,而不需要知道模块的实现细节。

② 模块标准化

        模块标准化是指两个方面的内容:一是标准设计,做到模块规格划一,遵循相同的模块构造准则,符合一定的模块标准;二是需要总结、提炼操作系统的基本成份,然后把这些基本成份模块化。

③ 通信规范化

        通信规范化主要是指模块之间的接口应该清晰划一,模块的联系方式要统一,这是标准化的一种方式。

4、操作系统的结构

        常见的操作系统结构有整体式结构、层次式结构、微内核(客户/服务器)结构等。

(1) 整体式结构

        这是早期操作系统设计中所采用的方法,它首先确定操作系统的总体功能,然后将总功能分解为若干个子功能,实现每个子功能的程序称为模块。再按照功能将上述每个大模块分解为若干个较小的模块,如此下去,直到每个模块仅包含单一功能或紧密联系的小功能为止。最后通过接口将所有模块连接起来形成一个整体。

        它的主要优点是:结构紧密,接口简单直接,系统效率较高。

        它的缺点是:模块间转换随便,各模块互相牵连,独立性差,系统结构不清晰;数据基本上作为全程量处理,系统内所有模块的任一程序均可对其进行存取和修改,从而造成了各模块间有着更为隐蔽的关系;由于模块组合结构常以大于表格为中心,为保证数据完整性,往往采用全局封中断方法,从而限制了系统的并发性。

(2) 层次式结构

        所谓层次式结构就是把操作系统的所有功能模块,按功能流图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单向依赖或单向调用关系。

        在一个层次结构的操作系统中,若不仅各层之间是单向调用的,而且每一层中的同层模块之间不存在互相调用的关系,则称这种层次结构关系为全序的层次关系。

         层次结构的优点是,它既具有模块接口法的优点,又具有模块接口法不具有的优点,即各模块之间的组织结构和依赖关系清晰明了。

(3) 微内核(客户/服务器)结构

        它的特点如下:

① 运行在核心态的内核:内核提供所有操作系统基本都具有的操作,如线程调度、虚拟存储、消息传递、设备驱动以及内核的原语操作集和中断处理等。

② 运行在用户态的以客户/服务器方式运行的进程层:除了内核部分以外,操作系统所有的其他部分被分为若干个独立的进程,每一个进程实现一组服务,称为服务进程。这些服务进程可以提供各种系统功能、文件系统服务以及网络服务等。服务进程的任务是检查是否有客户机提出要求服务的请求,并在满足客户机进程的请求后将结果返回。

        这种结构的优点是,它将操作系统分成若干个小的并且自包含的分支(服务进程),每个分支运行在独立的用户进程中,相互之间通过规范一致的方式接收发送消息而联系起来。操作系统在内核中建立起了最小的机制,而把策略留给了用户空间的服务进程,这带来了很大的灵活性,直接的好处是:可靠;灵活;适宜于分布式处理的计算环境。

        它的缺陷是效率不高,微内核很容易成为系统的瓶颈。

猜你喜欢

转载自blog.csdn.net/Alexshi5/article/details/87804909