操作系统概述
操作系统是计算机系统的资源管理者,它包含对系统软、硬件资源实施管理的一组程序,其首要作用就是通过 CPU管理、存储管理、设备管理和文件管理对各种资源进行合理地分配,改善资源的共享和利用程度,最大限度地发挥计算机系统的工作效率,提高计算机系统在单位时间内处理工作的能力。
操作系统是配置在计算机硬件上的第1层软件,它向下管理裸机及其中的文件,向上为其他的系统软件(汇编程序、编译程序、数据库管理系统等)和大量应用软件提供支持,以及为用户提供方便使用系统的接口。
操作系统的组成
操作系统是一种大型、复杂的软件产品,它们通常由操作系统内核
(Kernel) 和其他
许多附加的配套软件所组成,包括图形用户界面程序
、常用的应用程序
(如日历、计算器、资源管理器和网络浏览器等)、实用程序
(任务管理器、磁盘清理程序、杀毒软件和防火墙等)以及为支持应用软件开发和运行的各种软件构件
(如应用框架、编译器和程序库等)。
操作系统内核指的是能提供进程管理
(任务管理)、存储管理
、文件管理
和设备管理
等功能的那些软件模块,它们是操作系统中最基本的部分,用于为众多应用程序访问计算机硬件提供服务。
由于应用程序直接对硬件操作非常复杂,所以操作系统内核对硬件设备进行了抽象,为应用软件提供了一套简洁、统一的接口(称为系统调用接口或应用程序接口API
)。
内核通常都驻留在内存中,它以 CPU的最高优先级运行,能执行指令系统中的特权指令,具有直接访问各种外设和全部主存空间的特权,负责对系统资源进行管理和分配。
操作系统的作用操作系统主要有以下3个方面的重要作用。
(1)管理计算机中运行的程序和分配各种软硬件资源。
计算机中一般总有多个程序在运行,这些程序在运行时都可能要求使用系统中的资源(如访问硬盘,在屏幕上显示信息等),此时操作系统就承担着资源的调度和分配任务,以避免冲突,保证程序正常有序地运行。
操作系统的资源管理功能主要包括处理器管理、存储管理、文件管理、 I/O 设备管理等几个方面。
(2)为用户提供友善的人机界面。
人机界面的任务是实现用户与计算机之间的通信(对话)。
几乎所有操作系统都向用户提供图形用户界面 (GUI), 它通过多个窗口分别显示正在运行的各个程序的状态,采用图标 (Icon) 来形象地表示系统中的文件、程序和设备等对象,用户借助单击“菜单”的方法来选择要求系统执行的命令或输入某个参数,利用鼠标器或触摸屏控制屏幕光标的移动,并通过单击操作以启动某个操作命令的执行,甚至还可以采用拖放方式执行所需要的操作。
这些措施使用户能够比较直观、灵活、有效地使用计算机。
(3)为应用程序的开发和运行提供一个高效率的平台。
安装了操作系统之后,实际上呈现在应用程序和用户面前的是一台“虚拟计算机”。
操作系统屏蔽了几乎所有物理设备的技术细节,它以规范、高效的方式(例如系统调用、库函数等)向应用程序提供了有力的支持,从而为开发和运行其他系统软件及各种应用软件提供了一个平台。
除了上述3个方面的作用之外,操作系统还具有辅导用户操作(帮助功能)、处理软硬件错误、监控系统性能、保护系统安全等许多作用。
总之,有了操作系统,计算机才能成为一个高效、可靠、通用的数据处理系统。
操作系统的特征
并发性在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但实际上在单CPU的运行环境,每一个时刻只有一个程序在执行。
因此,从微观上来说,各个程序是交替、轮流执行的,如果计算机系统中有多个CPU, 则可将多个程序分配到不同 CPU上实现并行运行。
共享性共享是指操作系统中的资源(包括硬件资源和信息资源)可以被多个并发执行的进程(线程)共同使用,而不是被一个进程所独占。
出于经济上的考虑,一次性向每个用户程序分别提供它所需的全部资源不但是浪费的,有时也是不可能的。
现实的方法是让操作系统和多个用户程序共用一套计算机系统的所有资源,因此必然会产生共享资源的需要。
共享资源的方式可以分为同时共享
和互斥共享
。
虚拟性虚拟性是指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。
前者是实际存在的,而后者是虚构假想的,是用户感觉上的东西。
采用虚拟技术的目的是为用户提供易于使用且方便高效的操作环境。
不确定性在多道程序环境中,允许多个进程并发执行,但由于资源有限,在多数情况下进程的执行不是一贯到底的,而是“走走停停”。
例如一个进程,在CPU上运行一段时间后,由于等待资源或某事件发生,它被暂停执行,将CPU转让给另一个进程执行。
系统中的进程何时执行,何时暂停,以什么样的速度向前推进,进程总共要花多少时间执行才能完成,这些都是不可预知的。
或者说该进程是以不确定的方式运行的,其导致的直接后果是程序执行结果可能不唯一。
操作系统的分类
通常,操作系统可分为批处理操作系统
、分时操作系统
、实时操作系统
、网络操作系统
、分布式操作系统
、微型计算机操作系统
和嵌入式操作系统
等类型。
批处理操作系统
批处理操作系统分为单道批处理和多道批处理。
单道批处理操作系统是一种早期的操作系统,用户可以向系统提交多个作业,“单道”的含义是指一次只有一个作业装入内存执行。
作业由用户程序、数据和作业说明书(作业控制语言)3个部分组成。
当一个作业运行结束后,随即自动调入同批的下一个作业,从而节省了作业之间的人工干预时间,提高了资源的利用率。
多道批处理操作系统允许多个作业装入内存执行,在任意一个时刻,作业都处于开始点和终止点之间。
每当运行中的一个作业由于输入/输出操作需要调用外部设备时,就把CPU交给另一个等待运行的作业,从而将主机与外部设备的工作由串行改变为并行,进一步避免了因主机等待外设完成任务而浪费宝贵的CPU时间。
多道批处理系统主要有3个特点:多道、宏观上并行运行和微观上串行运行。
分时操作系统
在分时操作系统中,一个计算机系统与多个终端设备连接。
分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
例如,一个带20个终端的分时系统,若每个用户每次分配一个50m s的时间片,则每隔 ls 即可为所有的用户服务一遍。
因此,尽管各个终端上的作业是断续运行的,但由于操作系统每次对用户程序都能做出及时响应,因此用户感觉整个系统均归其一人占用。
分时系统主要有4个特点:多路性、独立性、交互性和及时性。
实时操作系统
实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。
实时系统对交互能力要求不高,但要求可靠性有保障。
实时系统分为实时控制系统和实时信息处理系统。
实时控制系统主要用于生产过程的自动控制,例如数据自动采集、武器控制、火炮自动控制、飞机自动驾驶和导弹的制导系统等。
实时信息处理系统主要用于实时信息处理,例如飞机订票系统、情报检索系统等。
网络操作系统
网络操作系统是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。
因此,网络操作系统的功能主要包括高效、可靠的网络通信;对网络中共享资源(在LAN 中有硬盘、打印机等)的有效管理;提供电子邮件、文件传输、共享硬盘和打印机等服务;网络安全管理;提供互操作能力。
一个典型的网络操作系统的特征包括硬件独立性和多用户支持等。
其中,硬件独立性是指网络操作系统可以运行在不同的网络硬件上,可以通过网桥或路由器与其他网络连接;多用户支持,应能同时支持多个用户对网络的访问,应对信息资源提供完全的安全和保护功能;支持网络实用程序及其管理功能,如系统备份、安全管理、容错和性能控制;多种客户端支持;提供目录服务,以单一逻辑的方式让用户访问位于世界范围内的所有网络服务和资源的技术;支持多种增值服务,如文件服务、打印服务、通信服务和数据库服务等。
分布式操作系统
分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。
通常,为分布式计算机系统配置的操作系统称为分布式操作系统。
分布式操作系统能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面与标准的接口,用户通过这一界面实现所需要的操作和使用系统资源,使系统中若干台计算机相互协作完成共同的任务,有效地控制和协调诸任务的并行执行。
分布式操作系统是网络操作系统的更高级形式,它保持网络系统所拥有的全部功能,同时又有透明性、可靠性和高性能等特性。
微型计算机操作系统
微型计算机操作系统简称微机操作系统,常用的有 Windows、Mac OS、Linux。
嵌入式操作系统
嵌入式操作系统运行在嵌入式智能设备环境中,对整个智能硬件以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制,其主要特点如下。
嵌入式操作系统的特点
- 微型化
- 从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。
- 可定制
- 从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。
- 实时性
- 嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。
- 可靠性
- 系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。
- 易移植性
- 为了提高系统的易移植性,通常采用硬件抽象层 (Hardware AbstractionLevel,HAL) 和板级支撑包 (Board Support Package,BSP) 的底层设计技术。
常见的嵌入式实时操作系统有VxWorks
、μClinux
、PalmOS
、WindowsCE
、μC/OS-ⅡI和eCos
等。