一 操作系统导论

一 操作系统导论


1.为什么需要操作系统?


当今的硬件都执行多种软件应用程序。为了提高硬件的使用率,人们将应用程序设计为并发执行。这些并发执行的应用程序彼此之间可能会互相干扰。因此,用一个软件层将应用程序与它们所访问的硬件分隔开,并提供一些服务,通过这些服务,每一个应用程序都可以安全有效的执行,我们将这个软件层称为“操作系统”。

操作系统将应用软件开发人员解放出来,他们不必再处理各种操纵计算机硬件的杂乱细节,包括管理内存、完成输入输出、处理通信线路等。


2.操作系统功能


操作系统的主要用途是使应用程序能够与计算机硬件交互,并管理系统的硬件和软件资源。它既可以管理硬件设备,包括处理器、内存、输入输出设备和通信设备等;也必须管理应用程序和其他软件抽象,这些软件抽象不同于硬件,它们不是具体的物理对象,比如虚拟机。

操作系统提供了一系列应用编程接口(Applicationprogramming interface, API)调用,应用程序员使用这些API调用可以完成复杂的硬件操纵和其他操作。


虚线以上的部分是用户空间,表明不属于操作系统部分的软件组件,它们不能直接访问系统的物理资源。虚线以下的部分是内核空间,表明属于操作系统部分的软件组件,它们可以不受限制的访问系统资源。我们经常使用这种约定,表明软件组件执行所具有的权限。


3.操作系统组件


用户借组一个或多个应用程序与操作系统进行交互,常常是通过一个称为shell的特殊应用程序进行的,shell也叫做命令解释器。现在的大多数shell,其实现或者是基于文本的接口,使用户用户能够从键盘发送命令,比如cmd;或者是GUI,允许用户单击和拖放图标,以便向操作系统请求服务,比如打开一个应用程序。

包含操作系统核心组件的软件称为内核。典型的操作系统核心组件包括:

进程调度程序,它确定什么时候在处理器上执行进程以及执行多长时间。

内存管理程序,它确定什么时候将内存分配给进程以及如何分配,同时也确定当主存储器变满时该怎么办。

I/O管理程序,分别为来自硬件设备或到硬件设备的请求提供输入输出服务。

进程间通信(IPC)管理程序(interprocesscommunication manager),它允许进程之间互相通信。

文件系统管理程序,他将存储设备上赋予名称的数据集组织起来,并为访问这些设备上的数据提供接口。


4.操作系统目标


效率:高效的操作系统具有高吞吐率和低平均周转时间。吞吐量是指在一定时限内处理器能够完成的工作量。周转时间是从提交请求到系统返回结果所花费的时间。

健壮性:健壮的操作系统具有容错功能和可靠性,这样的操作系统不会由于单独的应用程序或硬件错误而发生故障,即使发生故障,也会很适度。

可伸缩性:可伸缩的操作系统能够使用添加的资源,如果向系统中添加更多的处理器,理想情况下,处理能力应该与进程数量成比例的增加。

可扩展性:可扩张的操作系统能够很好地使用新技术,并提供对操作系统进行扩展的能力,以便完成原先设计时不能完成的任务。

可移植性:可移植的操作系统能够运行于多种硬件配置上。

安全性:安全的操作系统可以阻止用户和软件未经授权而访问服务和资源。

交互性:交互式操作系统允许应用程序快速响应用户动作或事件。

易使用性:易使用的操作系统可以服务于相当大的用户群,一般都支持大量的应用程序,并提供友好的用户界面。


5.操作系统体系结构


5.1 单内核体系结构

单内核操作系统是最早出现的体系结构,操作系统的每一个组件都包含在内核中,并能够直接与其他任何组件进行通信(即简单地通过函数调用来实现通信)。一般情况下,内核可以不受限制的访问计算机系统。

优点:由于组件间直接进行通信,且很少有从用户空间到内核空间的调用,所以单内核操作系统具有较高的效率。

缺点:因为单内核操作系统将组件集合在一起,所以要查出bug和其他错误来源比较困难。而且,由于所有代码的执行都可以不受限制的访问计算机的硬件和软件,所以这些系统容易受到错误代码的破坏。



5.2 分层体系结构

分层体系结构将执行相似功能的那些组件分层,每一层都只能与其相邻的上层或下层进行通信,较低的层使用一个将实现隐藏起来的接口为较高的层提供服务

优点:分层的操作系统比单内核操作系统具有更好的模块性,因为对每一层的实现进行修改都不需要修给其它层。

缺点:与单内核相比,一个用户进程的请求可能需要传过许多层才能得到服务,层间通信可能需要若干调用6,所以性能会有所降低。另外,由于所有的层都可以不受限制的访问系统,所以分层的内核也容易遭到错误代码或恶意代码的破坏。


5.3 微内核操作系统

微内核操作系统体系结构只提供少量的服务,力图使内核较小,且可伸缩。一般情况下,这些服务包括底层内存管理、进程间通信以及基本的进程同步(进程同步使进程能够协作完成任务)。大多说操作系统组件(例如,进程管理、网络连接、文件系统交互和设备管理)在内核的外部执行,它们具有较低的权限级别。

优点:微内核具有高度的模块性,这样的系统可扩张、可移植(不依赖于特定的硬件平台,通过加载一个新的模块就可以支持新硬件)、可伸缩。而且,由于内核的执行并不依赖与每一个组件,所以如果一个或多个组件发生故障,也不会引起操作系统故障。

缺点:这种模块性的获得是以增加模块间的通信级数为代价的,这就降低了系统性能。


5.4 网络操作系统和分布式操作系统

网络操作系统和分布式操作系统的结构经常是基于客户机/服务器模型的。客户机借助于合适的网络协议请求资源(例如,文件和处理器时间)。在设计这种操作系统时,必须仔细考虑如何管理数据和计算机之间的通信。在网络环境中,一个进程可以在创建此进程的计算机上执行,也可以在网络中的其他计算机上执行。

分布式操作系统是一个单一的操作系统,它管理多个计算机系统上的资源。分布式系统给人一种假象,将多台计算机视为单一的一台功能强大的计算机,这样一个进程可以访问所有的系统资源,而与进程在分布式系统的计算机网络内的位置无关。


6.操作系统环境


嵌入式系统的特点是只有少量的专用资源,所以高效的资源管理是关键。用途:手机,PDA等。

实时系统要求在一个特定的时间范围内执行任务,例如飞机的自动驾驶仪必须不停地调整速度、高度和方向。进程必须能够对关键事件立即做出相应。软实时系统确保实时任务具有较高的执行优先级,但不保证这些任务中的哪些任务将按时完成。硬实时系统确保所有的任务都按时完成。

有些操作系统必须管理硬件,这些硬件也许物理上存在于机器中,也许物理上并不存在于机器中。虚拟机(virtual machine, VM)是计算机的软件抽象,它经常作为用户应用程序在本地操作系统上执行。虚拟机借助于底层操作系统与系统中的硬件发生作用,其他用户程序能够与VM交互作用。VM能够创建软件组件,这些软件组件表示物理系统的内存,例如处理器、内存、通信信道、磁盘和时钟。这就允许多个用户共享硬件,每个用户都误以为是一台专门的机器为自己提供服务。Java虚拟机(JVM) 是使用最广泛的虚拟机之一,虚拟机的另一个应用时仿真器—实用软件或硬件模仿系统中不存在的硬件或软件功能。

虚拟机的优点是提高了可移植性,使软件能够运行在多个平台上;缺点是效率容易比真正的机器低,这是因为它间接访问硬件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值