标题：操作系统
系统简介
操作系统（英语：Operating System，简称OS）是管理和控制计算机硬件与软件资源的计算机程序，是直接运行在“裸机”上的最基本的系统软件，任何其他软件都必须在操作系统的支持下才能运行。操  操作系统所处位置作系统是用户和计算机的接口，同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源，控制程序运行，改善人机界面，为其它应用软件提供支持等，使计算机系统所有资源最大限度地发挥作用，提供了各种形式的用户界面，使用户有一个好的工作环境，为其它软件的开发提供必要的服务和相应的接口。
操作系统的种类相当多，各种设备安装的操作系统可从简单到复杂，可分为智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、个人计算机操作系统、多处理器操作系统、网络操作系统和大型机操作系统。[1]按应用领域划分主要有三种：桌面操作系统、服务器操作系统和嵌入式操作系统。
桌面操作系统
桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营，PC机与Mac机，从软件上可主要分为两大类，分别为类Unix操作系统和Windows操作系统：
1、Unix和类Unix操作系统：Mac OS X，Linux发行版（如Debian，Ubuntu，Linux Mint，openSUSE，Fedora等）；
2、微软公司Windows操作系统[2]：Windows XP，Windows Vista，Windows 7，Windows 8等。
服务器操作系统　
服务器操作系统一般指的是安装在大型计算机上的操作系统，比如Web服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类：
1、Unix系列：SUN Solaris，IBM-AIX，HP-UX，FreeBSD等；
2、Linux系列：Red Hat Linux，CentOS，Debian，Ubuntu等；
3、Windows系列：Windows Server 2003，Windows Server 2008，Windows Server 2008 R2等。
嵌入式操作系统
嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面，涵盖范围从便携设备到大型固定设施，如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等，越来越多嵌入式系统安装有实时操作系统。
在嵌入式领域常用的操作系统有嵌入式Linux、Windows Embedded、VxWorks等，以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统，如Android、iOS、Symbian、Windows Phone和BlackBerry OS等。
发展历史
1980年代前第一部计算机并没有操作系统。这是由于早期个人电脑的建立方式（如同建造机械算盘）与效能不足以执行如此程序。
但在1947年发明了晶体管，以及莫里斯·威尔克斯（Maurice Vincent Wilkes）发明的微程序方法，使得电脑不再是机械设备，而是电子产品。系统管理工具以及简化硬件操作流程的程序很快就出现了，且成为操作系统的基础。
到了1960年代早期，商用电脑制造商制造了批次处理系统，此系统可将工作的建置、调度以及执行序列化。此时，厂商为每一台不同型号的电脑创造不同的操作系统，因此为某电脑而写的程序无法移植到其他电脑上执行，即使是同型号的电脑也不行。
到了1964年，IBM推出了一系列用途与价位都不同的大型电脑IBM System/360，大型主机的经典之作。而它们都共享代号为OS/360的操作系统（而非每种产品都用量身订做的操作系统）。让单一操作系统适用于整个系列的产品是System/360成功的关键，且实际上IBM大型系统便是此系统的后裔；为System/360所写的应用程序依然可以在现代的IBM机器上执行！
OS/360也包含另一个优点：永久贮存设备—硬盘驱动器的面世（IBM称为DASD（Direct access storage device））。另一个关键是分时概念的建立：将大型电脑珍贵的时间资源适当分配到所有使用者身上。分时也让使用者有独占整部机器的感觉；而Multics的分时系统是此时众多新操作系统中实践此观念最成功的。
1963年，奇异公司与贝尔实验室合作以PL/I语言建立的Multics，是激发1970年代众多操作系统建立的灵感来源，尤其是由AT&T贝尔实验室的丹尼斯·里奇与肯·汤普逊所建立的Unix系统，为了实践平台移植能力，此操作系统在1969年由C语言重写；另一个广为市场采用的小型电脑操作系统是VMS。20世纪80年代第一代微型计算机并不像大型电脑或小型电脑，没有装设操作系统的需求或能力；它们只需要最基本的操作系统，通常这种操作系统都是从ROM读取的，此种程序被称为监视程序（Monitor）。
1980年代，家用电脑开始普及。通常此时的电脑拥有8-bit处理器加上64KB内存、屏幕、键盘以及低音质喇叭。而80年代早期最著名的套装电脑为使用微处理器6510（6502芯片特别版）的Commodore C64。此电脑没有操作系统，而是以8KB只读内存BIOS初始化彩色屏幕、键盘以及软驱和打印机。它可用8KB只读内存BASIC语言来直接操作BIOS，并依此撰写程序，大部分是游戏。此BASIC语言的解释器勉强可算是此电脑的操作系统，当然就没有内核或软硬件保护机制了。此电脑上的游戏大多跳过BIOS层次，直接控制硬件。
早期最著名的磁盘启动型操作系统是CP/M，它支持许多早期的微电脑，且被MS-DOS大量抄袭其功能。
最早期的IBM PC其架构类似C64。当然它们也使用了BIOS以初始化与抽象化硬件的操作，甚至也附了一个BASIC解释器！但是它的BASIC优于其他公司产品的原因在于他有可携性，并且兼容于任何符合IBM PC架构的机器上。这样的PC可利用Intel-8088处理器（16-bit寄存器）寻址，并最多可有1MB的内存，然而最初只有640KB。软式磁盘机取代了过去的磁带机，成为新一代的储存设备，并可在他512KB的空间上读写。为了支持更进一步的文件读写概念，磁盘操作系统（Disk Operating System，DOS）因而诞生。此操作系统可以合并任意数量的磁区，因此可以在一张磁盘片上放置任意数量与大小的文件。文件之间以档名区别。IBM并没有很在意其上的DOS，因此以向外部公司购买的方式取得操作系统。
1980年微软公司取得了与IBM的合约，并且收购了一家公司出产的操作系统，在将之修改后以MS-DOS的名义出品，此操作系统可以直接让程序操作BIOS与文件系统。到了Intel-80286处理器的时代，才开始实作基本的储存设备保护措施。MS-DOS的架构并不足以满足所有需求，因为它同时只能执行最多一个程序（如果想要同时执行程式，只能使用TSR的方式来跳过OS而由程序自行处理多任务的部份），且没有任何内存保护措施。对驱动程序的支持也不够完整，因此导致诸如音效设备必须由程序自行设置的状况，造成不兼容的情况所在多有。某些操作的效能也是可怕地糟糕。许多应用程序因此跳过MS-DOS的服务程序，而直接存取硬件设备以取得较好的效能。虽然如此，但MS-DOS还是变成了IBM PC上面最常用的操作系统（IBM自己也有推出DOS，称为IBM-DOS或PC-DOS）。MS-DOS的成功使得微软成为地球上最赚钱的公司之一。
而1980年代另一个崛起的操作系统异数是Mac OS，此操作系统紧紧与麦金塔电脑捆绑在一起。此时一位施乐帕罗奥托研究中心员工Dominik Hagen访问了苹果电脑的史蒂夫·乔布斯，并且向他展示了此时施乐发展的图形化使用者界面。苹果电脑惊为天人，并打算向施乐购买此技术，但因帕罗奥托研究中心并非商业单位而是研究单位，因此施乐回绝了这项买卖。在此之后苹果一致认为个人电脑的未来必定属于图形使用者界面，因此也开始发展自己的图形化操作系统。现今许多我们认为是基本要件的图形化接口技术与规则，都是由苹果电脑打下的基础（例如下拉式菜单、桌面图标、拖曳式操作与双点击等）。但正确来说，图形化使用者界面的确是施乐创始的。20世纪90年代Apple I电脑，苹果电脑的第一代产品。延续80年代的竞争，1990年代出现了许多影响未来个人电脑市场深厚的操作系统。由于图形化使用者界面日趋繁复，操作系统的能力也越来越复杂与巨大，因此强韧且具有弹性的操作系统就成了迫切的需求。此年代是许多套装类的个人电脑操作系统互相竞争的时代。
上一年代于市场崛起的苹果电脑，由于旧系统的设计不良，使得其后继发展不力，苹果电脑决定重新设计操作系统。经过许多失败的项目后，苹果于1997年释出新操作系统——MacOS的测试版，而后推出的正式版取得了巨大的成功。让原先失意离开苹果的Steve Jobs风光再现。
除了商业主流的操作系统外，从1980年代起在开放原码的世界中，BSD系统也发展了非常久的一段时间，但在1990年代由于与AT&T的法律争端，使得远在芬兰赫尔辛基大学的另一股开源操作系统——Linux兴起。Linux内核是一个标准POSIX内核，其血缘可算是Unix家族的一支。Linux与BSD家族都搭配GNU计划所发展的应用程序，但是由于使用的许可证以及历史因素的作弄下，Linux取得了相当可观的开源操作系统市占率，而BSD则小得多。
相较于MS-DOS的架构，Linux除了拥有傲人的可移植性（相较于Linux，MS-DOS只能运行在Intel CPU上），它也是一个分时多进程内核，以及良好的内存空间管理（普通的进程不能存取内核区域的内存）。想要存取任何非自己的内存空间的进程只能通过系统调用来达成。一般进程是处于使用者模式（User mode）底下，而执行系统调用时会被切换成内核模式（Kernel mode），所有的特殊指令只能在内核模式执行，此措施让内核可以完美管理系统内部与外部设备，并且拒绝无权限的进程提出的请求。因此理论上任何应用程序执行时的错误，都不可能让系统崩溃（Crash）。
另一方面，微软对于更强力的操作系统呼声的回应便是Windows NT于1993年的面世。
1983年开始微软就想要为MS-DOS建构一个图形化的操作系统应用程序，称为Windows（有人说这是比尔·盖茨被苹果的Lisa电脑上市所刺激）。
一开始Windows并不是一个操作系统，只是一个应用程序，其背景还是纯MS-DOS系统，这是因为当时的BIOS设计以及MS-DOS的架构不甚良好之故。
在1990年代初，微软与IBM的合作破裂，微软从OS/2（早期为命令行模式，后来成为一个很成功但是曲高和寡的图形化操作系统）项目中抽身，并且在1993年7月27日推出Windows NT 3.1，一个以OS/2为基础的图形化操作系统。
并在1995年8月15日推出Windows 95。
直到这时，Windows系统依然是建立在MS-DOS的基础上，因此消费者莫不期待微软在2000年所推出的Windows 2000上，因为它才算是第一个脱离MS-DOS基础的图形化操作系统。
Windows NT系统的架构为：在硬件阶层之上，有一个由微内核直接接触的硬件抽象层（HAL），而不同的驱动程序以模块的形式挂载在内核上执行。因此微内核可以使用诸如输入输出、文件系统、网络、信息安全机制与虚拟内存等功能。而系统服务层提供所有统一规格的函数调用库，可以统一所有副系统的实作方法。例如尽管POSIX与OS/2对于同一件服务的名称与调用方法差异甚大，它们一样可以无碍地实作于系统服务层上。在系统服务层之上的副系统，全都是使用者模式，因此可以避免使用者程序执行非法行动。
DOS副系统将每个DOS程序当成一进程执行，并以个别独立的MS-DOS虚拟机器承载其运行环境。另外一个是Windows 3.1 NT 模拟系统，实际上是在Win32副系统下执行Win16程序。因此达到了安全掌控为MS-DOS与早期Windows系统所撰写之旧版程序的能力。然而此架构只在Intel 80386处理器及后继机型上实作。且某些会直接读取硬件的程序，例如大部分的Win16游戏，就无法套用这套系统，因此很多早期游戏便无法在Windows NT上执行。
Windows NT有3.1．3.5．3.51与4.0版。
Windows 2000是Windows NT的改进系列（事实上是Windows NT 5.0）、Windows XP（Windows NT 5.1）以及Windows Server 2003（Windows NT 5.2）、Windows Vista（Windows NT 6.0）、Windows 7(Windows NT 6.1）也都是立基于Windows NT的架构上。
而本年代渐渐增长并越趋复杂的嵌入式设备市场也促使嵌入式操作系统的成长。
现代操作系统通常都有一个使用的绘图设备的图形化使用者界面，并附加如鼠标或触控面版等有别于键盘的输入设备。旧的OS或效能导向的服务器通常不会有如此亲切的接口，而是以命令行接口（CLI）加上键盘为输入设备。以上两种接口其实都是所谓的壳，其功能为接受并处理使用者的指令（例如按下一按钮，或在命令提示列上键入指令）。
选择要安装的操作系统通常与其硬件架构有很大关系，只有Linux与BSD几乎可在所有硬件架构上执行，而Windows NT仅移植到了DEC Alpha与MIPS Magnum。
在1990年代早期，个人电脑的选择就已被局限在Windows家族、类Unix家族以及Linux上，而以Linux及Mac OS X为最主要的另类选择，直至今日。
大型机与嵌入式系统使用很多样化的操作系统。大型主机有许多开始支持Java及Linux以便共享其他平台的资源。嵌入式系统百家争鸣，从给Sensor Networks用的Berkeley Tiny OS到可以操作Microsoft Office的Windows CE都有。今天现代操作系统通常都有一个使用的绘图设备的图形用户界面（GUI），并附加如鼠标或触控面版等有别于键盘的输入设备。旧的OS或性能导向的服务器通常不会有如此亲切的界面，而是以命令行界面（CLI）加上键盘为输入设备。以上两种界面其实都是所谓的壳，其功能为接受并处理用户的指令（例如按下一按钮，或在命令提示列上键入指令）。
选择要安装的操作系统通常与其硬件架构有很大关系，只有Linux与BSD几乎可在所有硬件架构上运行，而Windows NT仅移植到了DEC Alpha与MIPS Magnum。在1990年代早期，个人计算机的选择就已被局限在Windows家族、类Unix家族以及Linux上，而以Linux及Mac OS X为最主要的另类选择，直至今日。
大型机与嵌入式系统使用很多样化的操作系统。在服务器方面Linux、UNIX和Windows Server占据了市场的大部分份额。在超级计算机方面，Linux取代Unix成为了第一大操作系统，截止2012年6月，世界超级计算机500强排名中基于Linux的超级计算机占据了462个席位，比率高达92%。随着智能手机的发展，Android和iOS已经成为目前最流行的两大手机操作系统。[3]
组成部分
操作系统理论研究者有时把操作系统分成四大部分：
驱动程序：最底层的、直接控制和监视各类硬件的部分，它们的职责是隐藏硬件的具体细节，并向其他部分提供一个抽象的、通用的接口。 
内核：操作系统内核部分，通常运行在最高特权级，负责提供基础性、结构性的功能。 
接口库：是一系列特殊的程序库，它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口（API），是最靠近应用程序的部分。例如，GNU C运行期库就属于此类，它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。 
外围：是指操作系统中除以上三类以外的所有其他部分，通常是用于提供特定高级服务的部件。例如，在微内核结构中，大部分系统服务，以及UNIX/Linux 中各种守护进程都通常被划归此列。 
并不是所有的操作系统都严格包括这四大部分。例如，在早期的微软视窗操作系统中，各部分耦合程度很深，难以区分彼此。而在使用外核结构的操作系统中，则根本没有驱动程序的概念。
操作系统中四大部分的不同布局，也就形成了几种整体结构的分野。常见的结构包括：简单结构、层结构、微内核结构、垂直结构、和虚拟机结构。
内核结构
内核是操作系统最内核最基础的构件，因而，内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。尽管随着理论和实践的不断演进，操作系统高层特性与内核结构之间的耦合有日趋缩小之势，但习惯上，内核结构仍然是操作系统分类之常用标准。
内核的结构可以分为单内核、微内核、混合内核、外内核等。
单内核（Monolithic kernel），又称为宏内核。单内核结构是操作系统中各内核部件杂然混居的形态，该结构于1960年代（亦有1950年代初之说，尚存争议），历史最长，是操作系统内核与外围分离时的最初形态。
微内核（Microkernel），又称为微核心。微内核结构是1980年代产生出来的较新的内核结构，强调结构性部件与功能性部件的分离。20世纪末，基于微内核结构，理论界中又发展出了超微内核与外内核等多种结构。尽管自1980年代起，大部分理论研究都集中在以微内核为首的“新兴”结构之上，然而，在应用领域之中，以单内核结构为基础的操作系统却一直占据着主导地位。
混合内核（Hybrid kernel）像微内核结构，只不过它的组件更多的在核心态中运行，以获得更快的执行速度。
外内核（Exokernel）的设计理念是尽可能的减少软件的抽象化，这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化，它的目标是在于同时简化传统微内核的讯息传递机制，以及整块性核心的软件抽象层。
在众多常用操作系统之中，除了QNX和基于Mach的UNIX等个别系统外，几乎全部采用单内核结构，例如大部分的Unix、Linux，以及Windows（微软声称Windows NT是基于改良的微内核架构的，尽管理论界对此存有异议）。 微内核和超微内核结构主要用于研究性操作系统，还有一些嵌入式系统使用外核。
基于单内核的操作系统通常有着较长的历史渊源。例如，绝大部分UNIX的家族史都可上溯至1960年代。该类操作系统多数有着相对古老的设计和实现（例如某些UNIX中存在着大量1970年代、1980年代的代码）。另外，往往在性能方面略优于同一应用领域中采用其他内核结构的操作系统（但通常认为此种性能优势不能完全归功于单内核结构）。
主要功能
操作系统的主要功能是资源管理，程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备，如中央处理器，主存储器，磁盘存储器，打印机，磁带存储器，显示器，键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据，如文件，程序库，知识库，系统软件和应用软件等。
操作系统位于底层硬件与用户之间，是两者沟通的桥梁。用户可以通过操作系统的用户界面，输入命令。操作系统则对命令进行解释，驱动硬件设备，实现用户要求。以现代观点而言，一个标准个人电脑的OS应该提供以下的功能：
进程管理（Processing management） 
内存管理（Memory management） 
文件系统（File system） 
网络通讯（Networking） 
安全机制（Security） 
用户界面（User interface） 
驱动程序（Device drivers）资源管理系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行，在程序执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统，操作系统还要与硬件配合做好页面调度工作，根据执行程序的要求分配页面，在执行中将页面调入和调出内存以及回收页面等。
处理器管理或称处理器调度，是操作系统资源管理功能的另一个重要内容。在一个允许多道程序同时执行的系统里，操作系统会根据一定的策略将处理器交替地分配给系统内等待运行的程序。一道等待运行的程序只有在获得了处理器后才能运行。一道程序在运行中若遇到某个事件，例如启动外部设备而暂时不能继续运行下去，或一个外部事件的发生等等，操作系统就要来处理相应的事件，然后将处理器重新分配。
操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要求进行操作等。对于非存储型外部设备，如打印机、显示器等，它们可以直接作为一个设备分配给一个用户程序，在使用完毕后回收以便给另一个需求的用户使用。对于存储型的外部设备，如磁盘、磁带等，则是提供存储空间给用户，用来存放文件和数据。存储性外部设备的管理与信息管理是密切结合的。
信息管理是操作系统的一个重要的功能，主要是向用户提供一个文件系统。一般说，一个文件系统向用户提供创建文件，撤销文件，读写文件，打开和关闭文件等功能。有了文件系统后，用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用户使用而且还有利于用户共享公共数据。此外，由于文件建立时允许创建者规定使用权限，这就可以保证数据的安全性。程序控制一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内，操作系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一些内容：调入相应的编译程序，将用某种程序设计语言编写的源程序编译成计算机可执行的目标程序，分配内存储等资源将程序调入内存并启动，按用户指定的要求处理执行中出现的各种事件以及与操作员联系请示有关意外事件的处理等。人机交互操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠可输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有关的各种命令和要求。进程管理不管是常驻程序或者应用程序，他们都以进程为标准执行单位。当年运用冯纽曼架构建造电脑时，每个中央处理器最多只能同时执行一个进程。早期的OS（例如DOS）也不允许任何程序打破这个限制，且DOS同时只有执行一个进程（虽然DOS自己宣称他们拥有终止并等待驻留（TSR）能力，可以部分且艰难地解决这问题）。现代的操作系统，即使只拥有一个CPU，也可以利用多进程（multitask）功能同时执行复数进程。进程管理指的是操作系统调整复数进程的功能。
由于大部分的电脑只包含一颗中央处理器，在单内核（Core）的情况下多进程只是简单迅速地切换各进程，让每个进程都能够执行，在多内核或多处理器的情况下，所有进程通过许多协同技术在各处理器或内核上转换。越多进程同时执行，每个进程能分配到的时间比率就越小。很多OS在遇到此问题时会出现诸如音效断续或鼠标跳格的情况（称做崩溃（Thrashing），一种OS只能不停执行自己的管理程序并耗尽系统资源的状态，其他使用者或硬件的程序皆无法执行）。进程管理通常实现了分时的概念，大部分的OS可以利用指定不同的特权等级（priority），为每个进程改变所占的分时比例。特权越高的进程，执行优先级越高，单位时间内占的比例也越高。交互式OS也提供某种程度的回馈机制，让直接与使用者交互的进程拥有较高的特权值。内存管理根据帕金森定律：“你给程序再多内存，程序也会想尽办法耗光”，因此程序员通常希望系统给他无限量且无限快的存储器。大部分的现代计算机存储器架构都是层次结构式的，最快且数量最少的暂存器为首，然后是高速缓存、存储器以及最慢的磁盘存储设备。而操作系统的存储器管理提供查找可用的记忆空间、配置与释放记忆空间以及交换存储器和低速存储设备的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空间（通常是4GB，既使实际上RAM的数量远少于这数目）。然而这也带来了微幅降低运行效率的缺点，严重时甚至也会导致进程崩溃。
存储器管理的另一个重点活动就是借由CPU的帮助来管理虚拟位置。如果同时有许多进程存储于记忆设备上，操作系统必须防止它们互相干扰对方的存储器内容（除非通过某些协定在可控制的范围下操作，并限制可访问的存储器范围）。分区存储器空间可以达成目标。每个进程只会看到整个存储器空间（从0到存储器空间的最大上限）被配置给它自己（当然，有些位置被操作系统保留而禁止访问）。CPU事先存了几个表以比对虚拟位置与实际存储器位置，这种方法称为标签页（paging）配置。
借由对每个进程产生分开独立的位置空间，操作系统也可以轻易地一次释放某进程所占据的所有存储器。如果这个进程不释放存储器，操作系统可以退出进程并将存储器自动释放。虚拟内存虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存（一个连续完整的地址空间），而实际上，它通常是被分隔成多个物理内存碎片，还有部分暂时存储在外部磁盘存储器上，在需要时进行数据交换。
在早期的单用户单任务操作系统（如DOS）中，每台计算机只有一个用户，每次运行一个程序，且次序不是很大，单个程序完全可以存放在实际内存中。这时虚拟内存并没有太大的用处。但随着程序占用存储器容量的增长和多用户多任务操作系统的出现，在程序设计时，在程序所需要的存储量与计算机系统实际配备的主存储器的容量之间往往存在着矛盾。例如，在某些低档的计算机中，物理内存的容量较小，而某些程序却需要很大的内存才能运行；而在多用户多任务系统中，多个用户或多个任务更新全部主存，要求同时执行独断程序。这些同时运行的程序到底占用实际内存中的哪一部分，在编写程序时是无法确定的，必须等到程序运行时才动态分配。[4]
为此，希望在编写程序时独立编址，既不考虑程序是否能在物理存储中存放得下，也不考虑程序应该存放在什么物理位置。而在程序运行时，则分配给每个程序一定的运行空间，由地址转换部件将编程时的地址转换成实际内存的物理地址。如果分配的内存不够，则只调入当前正在运行的或将要运行的程序块（或数据块），其余部分暂时驻留在辅存中。
分类方法
操作系统种类繁多，很难用单一标准统一分类。
根据应用领域来划分，可分为桌面操作系统、服务器操作系统、嵌入式操作系统；
根据所支持的用户数目，可分为单用户操作系统(如MSDOS、OS/2．Windows)、多用户操作系统(如UNIX、Linux、MVS)；
根据源码开放程度，可分为开源操作系统(如Linux、FreeBSD)和闭源操作系统(如Mac OS X、Windows)；
根据硬件结构，可分为网络操作系统(Netware、Windows NT、OS/2 warp)、多媒体操作系统(Amiga)、和分布式操作系统等；
根据操作系统的使用环境和对作业处理方式来考虑，可分为批处理操作系统(如MVX、DOS/VSE)、分时操作系统( 如Linux、UNIX、XENIX、Mac OS X)、实时操作系统(如iEMX、VRTX、RTOS，RT WINDOWS)；
根据存储器寻址的宽度可以将操作系统分为8位、16位、32位、64位、128位的操作系统。早期的操作系统一般只支持8位和16位存储器寻指宽度，现代的操作系统如Linux和Windows 7都支持32位和64位。
根据操作系统的技术复杂程度，可分为简单操作系统、智能操作系统（见智能软件）。所谓简单操作系统，指的是计算机初期所配置的操作系统，如IBM公司的磁盘操作系统DOS/360和微型计算机的操作系统CP/M等。这类操作系统的功能主要是操作命令的执行，文件服务，支持高级程序设计语言编译程序和控制外部设备等。
主要类型
批处理操作系统批处理操作系统（Batch Processing Operating System）的工作方式是：用户将作业交给系统操作员，系统操作员将许多用户的作业组成一批作业，之后输入到计算机中，在系统中形成一个自动转接的连续的作业流，然后启动操作系统，系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。批处理操作系统的特点是：多道和成批处理。分时操作系统分时操作系统(Time Sharing Operating System，简称 TSOS)的工作方式是：一台主机连接了若干个终端，每个终端有一个用户在使用。用户交互式地向系统提出命令请求，系统接受每个用户的命令，采用时间片轮转方式处理服务请求，并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命令。分时操作系统将CPU的时间划分成若干个片段，称为时间片。操作系统以时间片为单位，轮流为每个终端用户服务。每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。分时系统具有多路性、交互性、“独占”性和及时性的特征。多路性指，伺时有多个用户使用一台计算机，宏观上看是多个人同时使用一个CPU，微观上是多个人在不同时刻轮流使用CPU。交互性是指，用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。“独占”性是指，用户感觉不到计算机为其他人服务，就像整个系统为他所独占。及时性指，系统对用户提出的请求及时响应。它支持位于不同终端的多个用户同时使用一台计算机，彼此独立互不干扰，用户感到好像一台计算机全为他所用。
常见的通用操作系统是分时系统与批处理系统的结合。其原则是：分时优先，批处理在后。“前台”响应需频繁交互的作业，如终端的要求； “后台”处理时间性要求不强的作业。实时操作系统实时操作系统(Real Time Operating System，简称 RTOS)是指使计算机能及时响应外部事件的请求在规定的严格时间内完成对该事件的处理，并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统要追求的目标是：对外部请求在严格时间范围内做出反应，有高可靠性和完整性。其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。此外，实时操作系统应有较强的容错能力。网络操作系统网络操作系统（Network Operating System，简称 NOS）通常运行在服务器上的操作系统，是基于计算机网络的，是在各种计算机操作系统上按网络体系结构协议标准开发的软件，包括网络管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。在其支持下，网络中的各台计算机能互相通信和共享资源。其主要特点是与网络的硬件相结合来完成网络的通信任务。网络操作系统被设计成在同一个网络中（通常是一个局部区域网络LAN，一个专用网络或其他网络）的多台计算机中的可以共享文件和打印机访问 。 流行的网络操作系统有Linux，UNIX，BSD，Windows Server， Mac OS X Server，Novell NetWare等。分布式操作系统分布式操作系统(Distributed Software Systems)是为分布计算系统配置的操作系统。大量的计算机通过网络被连结在一起，可以获得极高的运算能力及广泛的数据共享。这种系统被称作分布式系统(DistributedSystem) 。它在资源管理，通信控制和操作系统的结构等方面都与其他操作系统有较大的区别。由于分布计算机系统的资源分布于系统的不同计算机上，操作系统对用户的资源需求不能像一般的操作系统那样等待有资源时直接分配的简单做法而是要在系统的各台计算机上搜索，找到所需资源后才可进行分配。对于有些资源，如具有多个副本的文件，还必须考虑一致性。所谓一致性是指若干个用户对同一个文件所同时读出的数据是一致的。为了保证一致性，操作系统须控制文件的读、写、操作，使得多个用户可同时读一个文件，而任一时刻最多只能有一个用户在修改文件。分布操作系统的通信功能类似于网络操作系统。由于分布计算机系统不像网络分布得很广，同时分布操作系统还要支持并行处理，因此它提供的通信机制和网络操作系统提供的有所不同，它要求通信速度高。分布操作系统的结构也不同于其他操作系统，它分布于系统的各台计算机上，能并行地处理用户的各种需求，有较强的容错能力。
分布式操作系统是网络操作系统的更高形式，它保持了网络操作系统的全部功能，而且还具有透明性、可靠性和高性能等。网络操作系统和分布式操作系统虽然都用于管理分布在不同地理位置的计算机，但最大的差别是：网络操作系统知道确切的网址，而分布式系统则不知道计算机的确切地址；分布式操作系统负责整个的资源分配，能很好地隐藏系统内部的实现细节，如对象的物理位置等。这些都是对用户透明的。大型机操作系统大型机（Mainframe Computer），也称为大型主机。大型机使用专用的处理器指令集、操作系统和应用软件。最早的操作系统是针对20世纪60年代的大型主结构开发的，由于对这些系统在软件方面做了巨大投资，因此原来的计算机厂商继续开发与原来操作系统相兼容的硬件与操作系统。这些早期的操作系统是现代操作系统的先驱。现代的大型主机一般也可运行Linux或Unix变种。嵌入式操作系统嵌入式操作系统（Embedded Operating System）是用在嵌入式系统的操作系统。嵌入式系统使用非常广泛的操作系统。嵌入式设备一般专用的嵌入式操作系统（经常是实时操作系统，如VxWorks、eCos）或者指定程序员移植到这些新系统。以及某些功能缩减版本的Linux（如Android,Tizen,MeeGo,webOS）或者其他操作系统。某些情况下，嵌入式操作系统指称的是一个自带了固定应用软件的巨大泛用程序。在许多最简单的嵌入式系统中，所谓的操作系统就是指其上唯一的应用程序。
典型系统
UNIXUNIX 是一个强大的多用户、多任务操作系统，支持多种处理器架构，按照操作系统的分类，属于分时操作系统。UNIX 最早由Ken Thompson 和 Dennis Ritchie 于1969年在美国 AT&T 的贝尔实验室开发。
类Unix（Unix-like）操作系统指各种传统的Unix（比如System V、BSD、FreeBSD、OpenBSD、SUN公司的Solaris）以及各种与传统Unix类似的系统（例如Minix、Linux、QNX等）。它们虽然有的是自由软件，有的是商业软件，但都相当程度地继承了原始UNIX的特性，有许多相似处，并且都在一定程度上遵守POSIX规范。由于Unix是The Open Group的注册商标，特指遵守此公司定义的行为的操作系统。而类Unix通常指的是比原先的Unix包含更多特征的操作系统。类Unix系统可在非常多的处理器架构下运行，在服务器  Unix和类Unix家族树系统上有很高的使用率，例如大专院校或工程应用的工作站。
某些Unix变种，例如HP的HP-UX以及IBM的AIX仅设计用于自家的硬件产品上，而SUN的Solaris可安装于自家的硬件或x86计算机上。苹果计算机的 Mac OS X 是一个从NeXTSTEP、Mach 以及FreeBSD共同派生出来的微内核BSD系统，此OS取代了苹果计算机早期非Unix家族的Mac OS。Linux基于Linux的操作系统是20世纪1991年推出的一个多用户、多任务的操作系统。它与UNIX完全兼容。Linux最初是由芬兰赫尔辛基大学计算机系学生Linux Torvaids在基于UNIX的基础上开发的一个操作系统的内核程序,Linux的设计是为了在Intel微处理器上更有效的运用。其后在理查德·斯托曼的建议下以 GNU通用公共许可证 发布, 成为自由软件Unix变种。它的最大的特点在于他是一个源代码公开的自由及开放源码的操作系统，其内核源代码可以自由传播。[5]
经历数年的披荆斩棘，自由开源的Linux系统逐渐蚕食以往专利软件的专业领域，例如以往计算机动画运算巨擘──SGI的IRIX系统已被Linux家族及贝尔实验室研发小组设计的九号计划与Inferno系统取代，皆用于分散表达式环境。它们并不像其他Unix系统，而是选择自带图形用户界面。九号计划原先并不普及，因为它刚推出时并非自由软件。后来改在自由及开源软件许可证Lucent Public License发布后，便开始拥有广大的用户及社区。Inferno已被售予Vita Nuova并以GPL/MIT许可证发布。  一个流行Linux发行版——Ubuntu桌面
Linux有各类发行版，通常为 GNU/Linux，如Debian（及其衍生系统Ubuntu、Linux Mint）、Fedora、openSUSE等。Linux发行版作为个人计算机操作系统或服务器操作系统，在服务器上已成为主流的操作系统。Linux在嵌入式方面也得到广泛应用，基于Linux内核的Android操作系统已经成为当今全球最流行的智能手机操作系统。Mac OS XMac OS X 是苹果麦金塔电脑之操作系统软件的 Mac OS 最新版本。Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。Macintosh组包括比尔·阿  Mac OS X桌面特金森（Bill Atkinson）、杰夫·拉斯金（Jef Raskin）和安迪·赫茨菲尔德（Andy Hertzfeld）。Mac OS X 于 2001年 首次在商场上推出。它包含两个主要的部分：Darwin，是以 BSD 原始代码和 Mach 微核心 为基础，类似 Unix 的开放原始码环境，由苹果电脑采用和与独立开发者协同作进一步的开发；及一个由苹果电脑开发，命名为 Aqua 之有版权的 GUI。WindowsWindows是有微软公司成功开发的操作系统.Windows是一个多任务的操作系统，他采用图形窗口界面，用户对计算机的各种复杂操作只需通过点击鼠标就可以实现。[5]
Microsoft Windows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。Windows系统，如Windows 2000、Windows XP皆是创建于现代的Windows NT内核。NT内核是由OS/2和OpenVMS等系统上借用来的。Windows可以在32位和64位的Intel和AMD的处理器上运行，但是早期的版  Windows 8 Metro本也可以在DEC Alpha、MIPS与PowerPC架构上运行。 虽然由于人们对于开放源代码作业系统兴趣的提升，Windows的市场占有率有所下降，但是到2004年为止，Windows操作系统在世界范围内占据了桌面操作系统90%的市场。
Windows系统也被用在低级和中阶服务器上，并且支持网页服务的数据库服务等一些功能。微软花费了很大研究与开发的经费用于使Windows拥有能运行企业的大型程序的能力。
Windows XP在2001年10月25日发布，2004年8月24日发布服务包2，2008年4  Windows 8桌面月21日发布最新的服务包3。 微软上一款操作系统Windows Vista（开发代码为Longhorn）于2007年1月30日发售[4]。Windows Vista增加了许多功能，尤其是系统的安全性和网络管理功能，并且其拥有界面华丽的Aero Glass。但是整体而言，其在全球市场上的口碑却并不是很好。而最新的Windows 8微软于2012年10月正式推出，微软自称触摸革命将开始。iOSiOS操作系统是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Mac  iOS 6用户界面world大会上公布这个系统，最初是设计给iPhone使用的，后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作系统一样，它也是以Darwin为基础的，因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS，直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月，根据Canalys的数据显示，iOS已经占据了全球智能手机系统市场份额的30%，在美国的市场占有率为43%。AndroidAndroid是一种以Linux为基础的开放源代码操作系统，主要使用于便携设备。尚未有统  Android 4.2 用户界面一中文名称，中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发，最初主要支持手机。2005年由Google收购注资，并组建开放手机联盟开发改良，逐渐扩展到平板电脑及其他领域上。2011年第一季度，Android在全球的市场份额首次超过塞班系统，跃居全球第一。 2012年11月数据显示，Android占据全球智能手机操作系统市场76%的份额，中国市场占有率为90%。[6]Chrome OSChrome OS 是由谷歌开发的一款基于Linux的操作系统，发展出与互联网紧密结合的云操作系统，工作时运行Web应用程序。谷歌在2009年7月7日发布该操作系统，并在2009年11月19日以Chromium OS之名推出相应的开源项目，并将Chromium OS代码开源。[7]与开源的Chromium OS不同的是，已编译好的Chr  Chrome OS桌面ome OS只能用在与谷歌的合作制造商的特定的硬件上。
Chrome OS同时支持Intel x86以及ARM处理器，软件结构极其简单，可以理解为在Linux的内核上运行一个使用新的窗口系统的Chrome浏览器。对于开发人员来说，web就是平台，所有现有的web应用可以完美的在Chrome OS中运行，开发者也可以用不同的开发语言为其开发新的web应用。GleasyGleasy是一款面向个人和企业用户的云服务平台，可通过网页及客户端两种方式登录，乍看之下和PC操作系统十分接近，其中包括即时通讯、邮箱、OA、网盘、办公协同等多款云应用，用户也可以通过应用商店安装自己想要的云应用。[8]
Gleasy从“系统”上看由三个层次组成：基础环境、系统应用、应用商店和开放平台。  
基础环境为运行和管理云应用的基础环境，包括Gleasy桌面、帐号管理、G币充值与消费、消息中心等。[9]
系统应用主要包含一说(即时通讯)、一信(邮箱)、一盘(文件云存储及在线编辑)、联系人(名片、好友动态、个人主页)，记事本、表格等在线编辑工具及图片查看器、PDF阅读器等辅助性工具。
严格来说，Gleasy并不是操作系统，与上面列举的操作系统架构完全不一样，而其架构、功能和应用平台等都与腾讯在2009年9月正式推出的WebQQ（2011年10月改名为Q+ Web）几乎一模一样，只是提供一个网页客户端，作为连接互联网的接口。
与Chrome OS同样不一样，Chrome OS作为一个云操作系统，是运行在Linux内核之上，使用web应用替代本地应用程序来实现各种功能。而Gleasy需要使用者安装客户端，即Windows下的一个应用程序；或需要一个本地浏览器即可以运行，跟打开普通网页一样。
发展年表
年表年份
系统名称
1956年
GM-NAA I/O 
1959年 
SHARE Operating System 
1960年
IBSYS 
1961年
CTSS 
MCP (Burroughs Large Systems) 
1962年 
GCOS 
1964年
EXEC 8 
OS/360 （宣称） 
TOPS-10 
1965年
Multics （宣称） 
OS/360 （上市） 
Tape Operating System （TOS） 
1966年 
DOS/360 （IBM） 
MS/8 
1967年
ACP （IBM） 
CP/CMS 
ITS 
WAITS 
1969年 
TENEX 
Unix 
1970年 
DOS/BATCH 11 （PDP-11） 
1971年 
OS/8 
1972年 
MFT (operating system) 
MVT 
RDOS 
SVS 
VM/CMS 
1973年 
Alto OS 
RSX-11D 
RT-11 
VME 
1974年
MVS （MVS/XA） 
1975年
BS2000 
1976年
CP/M 
TOPS-20 
1978年
Apple DOS 3.1 （苹果公司第一个操作系统） 
TripOS 
VMS 
Lisp Machine （CADR） 
1979年 
POS 
NLTSS 
1980年
OS-9 
QDOS 
SOS 
XDE (Tajo) 
Xenix 
1981年 
MS-DOS 
1982年 
Commodore DOS 
SunOS (1.0) 
Ultrix 
1983年 
Lisa OS 
Coherent 
Novell NetWare 
ProDOS 
1984年 
Macintosh OS （系统 1.0）
MSX-DOS
QNX
UniCOS
1985年 
AmigaOS 
Atari TOS 
MIPS OS 
Oberon operating system 
Microsoft Windows 1.0 （Windows第一版） 
1986年
AIX 
GS-OS 
HP-UX 
1987年 
Arthur 
IRIX （SGI推出的第一个版本号是3.0） 
Minix 
OS/2 （1.0） 
Microsoft Windows 2.0 
1988年 
A/UX （苹果电脑） 
LynxOS 
MVS/ESA 
OS/400
1989年 
1989年 
NeXTSTEP （1.0） 
RISC OS 
SCO Unix （第三版） 
1990年
Amiga OS 2.0 
BeOS （v1） 
OSF/1 
Microsoft Windows 3.0 
1991年 
SunOS 4.1.x
Linux 
1992年
386BSD 0.1 
Amiga OS 3.0 
Solaris 2.0 （SunOS 4.x的继承者，以SVR4为基础，而非BSD） 
Microsoft Windows 3.1 
1993年
Solaris 2.1
Solaris 2.2
Solaris 2.3
Plan 9 （第一版） 
FreeBSD 
NetBSD 
Microsoft Windows NT 3.1 （第一版NT） 
1994年
Solaris 2.4
1995年 
Solaris 2.5
Digital UNIX （aka Tru64） 
OpenBSD 
OS/390 
Microsoft Windows 95 
1996年
Microsoft Windows95 OSR2(OSR=OEMServicerelease) （即：Windows 97)
Microsoft Windows NT 4.0 
1997年 
Solaris 2.6
Inferno 
Mac OS 7.6 （第一版官方正式命名为Mac OS） 
SkyOS 
1998年
Solaris 7 （第一款64位元Solaris版本，是2.7舍弃主版本号的称谓） 
Microsoft Windows 98
1999年 
AROS 
Mac OS 8 
Microsoft Windows 98 Second Edition 
2000年
Solaris 8
AtheOS 
Mac OS 9 
MorphOS 
Microsoft Windows 2000 
Microsoft Windows Me 
Mac OS X Public Beta （公开测试版）（2000年9月13日）
2001年
Mac OS X 10.0 Cheetah（印度豹）（2001年3月24日）
Amiga OS 4.0 （2001年5月） 
Mac OS X 10.1 Puma（美洲狮）（2001年9月25日）
Microsoft Windows XP 
z/OS 
2002年
Solaris 9 for SPARC
Microsoft Windows XP 64-bit Edition 
Windows XP Tablet PC Edition
Windows XP Media Center Edition
Syllable 
Mac OS X 10.2 Jaguar（美洲虎）（2002年8月23日）
2003年 
Solaris 9 for x86
Microsoft Windows Server 2003 （2003年3月28日） 
Microsoft Windows XP 64-bit Edition - 以Microsoft Windows Server 2003为基础，同一天释出。 
Mac OS X 10.3 Panther（黑豹）（2003年10月24日）
2004年 
Microsoft Windows XP Media Center Edition 
2005年 
Solaris 10
Microsoft Windows XP Professional x64 Edition 
Mac OS X 10.4 Tiger（老虎）（2005年4月29日）
2006年 
Microsoft Windows Vista
Linux Mint
iOS（原名iPhone OS）
2007年
Mac OS X 10.5 Leopard（美洲豹）（2007年10月26日）
2008年
Ubuntu 8.04 LTS
OpenSolaris 08/05
Android
Ubuntu 8.10
OpenSolaris 08/11
Windows Server 2008
2009年
Ubuntu 9.04 
Mac OS X v10.6 Snow Leopard （雪豹）（2009年8月28日）
Windows Server 2008 R2 
Windows 7
Ubuntu 9.10
Chrome OS
2010 年
ubuntu 10.04
ubuntu 10.10
2011年
Ubuntu 11.04
Ubuntu 11.10
Mac OS X 10.7 Lion
2012年
Ubuntu 12.04
Ubuntu 12.10
OS X 10.8 Mountain Lion 
Microsoft Windows 8
Mac OS X Server v10.4 “Tiger”
Microsoft Windows Server 2012

基本信息
作　者： 孟庆昌，牛欣源 编著
出 版 社： 电子工业出版社
  出版时间： 2009-11-1 
开　本： 16开 
引 ISBN ： 9787121088582 包
定价：￥34.00
内容简介
本书是普通高等教育“十一五”国家级规划教材，北京高等教育精品教材。全书共分14章，分别介绍操作系统引论，进程和线程，死锁，调度，存储管理，文件系统，输入/输出管理，用户接口服务，嵌入式操作系统，分布式操作系统，安全性与保护机制，实例研究1：UNIX, 实例研究2：Linux和实例研究3：Windows 2000。附录分别给出实验指导、Linux常用系统调用、部分习题参考答案，并为教师免费提供电子教案。
本书可作为大学本科及专科计算机专业教材或考研参考书，也可作为计算机工作者的自学用书。
图书目录
第1章　操作系统引论
1.1　计算机硬件结构
1.1.1　处理器
1.1.2　存储器
1.1.3　I/O设备
1.1.4　总线
1.2　什么是操作系统
1.2.1　操作系统概念-
1.2.2　操作系统的主要功能
1.2.3　操作系统的地位
1.3　操作系统的发展历程
1.3.1　操作系统的形成
1.3.2　操作系统的发展
1.3.3　推动操作系统发展的动力
1.4　操作系统的类型
1.4.1　批处理系统
1.4.2　分时系统
1.4.3　实时系统
1.4.4　网络操作系统
1.4.5　分布式操作系统
1.4.6　其他操作系统
1.5　操作系统的特征
1.6　操作系统结构设计
1.6.1　整体结构
1.6.2　层次结构
1.6.3　虚拟机结构
1.6.4　客户，服务器结构
1.7　本章小结
习题1
第2章　进程和线程
2.1　进程概念
2.1.1　多道程序设计
2.1.2　进程概念
2.2　进程的状态和组成
2.2.1　进程的状态及其转换
2.2.2　进程描述
2.2.3　进程队列
2.3　进程管理
2.3.1　进程图
2.3.2　进程创建
2.3.3　进程终止
2.3.4　进程阻塞
2.3.5　进程唤醒
2.4　线程
2.4.1　线程概念
2.4.2　线程的实现
2.5　进程的同步和通信
2.5.1　进程的同步与互斥
2.5.2　临界资源和临界区
2.5.3　互斥实现方式
2.5.4　信号量
2.5.5　信号量的一般应用
2.6　经典进程同步问题
2.7　管程
2.8　进程通信
2.8.1　消息传递系统
2.8.2　客户，服务器系统中的通信
2.9 本章小结
习题2
第3章　死锁
3.1　资源
3.1.1　资源使用模式
3.1.2　可剥夺资源与不可剥夺资源
3.2　死锁概念
3.2.1　什么是死锁
3.2.2　死锁的条件
3.2.3　资源分配图
……
第4章　调度
第5章　存储管理
第6章　文件系统
第7章　输入/输出管理
第8章　用户接口服务
第9章　嵌入式操作系统
第10章　分布式操作系统
第11章　安全性与保护机制
第12章　案例研究1：UNIX
第13章　实例研究2：Linux
第14章 实例研究3：Windows 2000
附录A 实验指导
附录B Linux常用系统调用
附录C 部分习题参考答案
[1]

基本信息
书名：  操作系统操作系统
书号：7-113-09471
作者：刘腾红
定价：34.00元
出版日期：2008年12月
策划编辑：秦绪好 杨勇
责任编辑：王占清
出版单位：中国铁道出版社
内容简介
本书介绍了计算机系统的重要系统软件——操作系统。全书由两个部分组成，第一部分从计算机资源管理的角度，系统、全面、准确、通俗地阐述操作系统的概念、原理和方法，分为七章，包括引论、进程和处理机管理、存储管理、设备管理、文件系统、作业管理和用户接口及网络操作系统；第二部分介绍目前流行的三个操作系统实例，分为三章，包括UNIX系统分析、Solaris系统和Windows Vista。本书是按照教育部高等学校计算机科学与技术教学指导委员会发布的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范（试行）》中操作系统课程大纲的要求编写而成的，适合作为高等院校计算机科学与技术专业的教材。[1]
目录
第1章  引论 1
1.1  什么是操作系统 1
1.1.1  计算机系统 1
1.1.2  操作系统在计算机系统中的地位 3
1.1.3  操作系统的定义 3
1.2  操作系统的功能 4
1.2.1  处理管理 4
1.2.2  存储管理 4
1.2.3  设备管理 4
1.2.4  文件管理 5
1.2.5  作业管理 5
1.3  操作系统的类型 5
1.3.1  多道批处理系统 5
1.3.2  分时系统 8
1.3.3  实时系统 9
1.3.3  嵌入式操作系统 10
1.4  操作系统的特性及性能指标 11
1.4.1  操作系统的特性 11
1.4.2  操作系统的性能指标 12
1.5  中断系统 13
1.5.1  什么叫中断 13
1.5.2  中断装置 14
1.5.3  管态和目态 14
1.5.4  中断分类 15
1.5.5  中断屏蔽 15
1.5.6  中断优先级 16
1.5.7  中断处理 17
本章小结 19
习题一 20
第2章  进程和处理机管理 22
2.1  进程及其有关概念 22
2.1.1  顺序程序 22
2.1.2  并发程序 23
2.1.3  进程的定义及其特征 25
2.1.4  进程的类型? 27
2.2  进程管理 27
2.2.1  进程的状态及其转换 28
2.2.2  进程的组成 29
2.2.3  进程控制 31
2.2.4  进度调度 34
2.3  进程的同步与互斥 39
2.3.1  临界区 40
2.3.2  互斥 42
2.3.3  进程同步? 46
2.4  进程通信 50
2.4.1  进程通信的概念? 50
2.4.2  消息通信 50
2.5  死锁 54
2.5.1  什么叫死锁 54
2.5.2  产生死锁的条件? 56
2.5.3  死锁的对策? 57
本章小结 60
习题二 67
第3章  存储管理 70
3.1  概述 70
3.1.1  存储管理的功能 70
3.1.2  内存的分配与回收 71
3.1.3  地址重定位 72
3.1.4  虚拟存储器 74
3.2  简单的存储管理 75
3.2.1  固定分区存储管理 75
3.2.2  可变式分区存储管理 76
3.2.3  覆盖与交换技术 78
3.3  分页存储管理 80
3.3.1  分页存储管理的基本思想 80
3.3.2  主存分配原则 80
3.3.3  页表和页表地址寄存器 80
3.3.4  简单分页存储管理 81
3.3.5  联想存储器 83
3.3.6  存储保护 84
3.3.7  简单分页存储管理的优缺点 84
3.4  请求分页存储管理 84
3.4.1  请求分页存储管理的地址变换 84
3.4.2  页面置换算法 85
3.4.3  请求页式存储管理的特点 87
3.5  分段存储管理 88
3.6  段页式存储管理 91
本章小结 93
习题三 94
第4章  设备管理 97
4.1  概述 97
4.1.1  设备的类型和性能 97
4.1.2  设计目标 98
4.1.3  设备管理的功能 99
4.2  缓冲技术 100
4.2.1  单缓冲和双缓冲 100
4.2.2  环形缓冲 101
4.2.3  缓冲池 102
4.3  通道技术 103
4.3.1  设备控制器 103
4.3.2  I/O控制方式的演变 104
4.3.3  通道的类型 105
4.3.4  并行操作 107
4.3.5  “瓶颈”问题 107
4.3.6  通道指令和通道程序 108
4.4  设备分配与设备处理 109
4.4.1  设备管理中的数据结构 110
4.4.2  设备分配原则 110
4.4.3  设备分配 113
4.4.4  设备处理 113
4.5  磁盘管理 115
4.5.1  磁盘的物理性能 115
4.5.2  磁盘调度算法 115
4.5.3  对磁盘的服务请求产生影响的几个因素 118
4.5.4  磁盘的错误处理 118
本章小结 118
习题四 119
第5章  文件系统 121
5.1  文件系统的概念 121
5.1.1  文件和文件系统 121
5.1.2  文件的分类 122
5.1.3  文件系统的功能 123
5.2  文件结构及存取方法 124
5.2.1  文件的逻辑结构 125
5.2.2  文件的物理结构 126
5.2.3  文件存储设备 129
5.2.4  文件的存取方法 130
5.2.5  文件系统的组织方式 132
5.3  文件存储空间管理 135
5.3.1  空闲文件目录 136
5.3.2  空闲块链 136
5.3.3  位示图 137
5.4  文件目录管理 138
5.4.1  文件的组成 138
5.4.2  文件目录 138
5.4.3  便于共享的文件目录 140
5.4.4  目录管理 142
5.5  文件共享与保护 142
5.6  文件的使用 144
本章小结 146
习题五 147
第6章  作业管理和用户接口 148
6.1  用户与操作系统间的接口 148
6.1.1  程序接口与系统调用 148
6.1.2  操作接口与系统程序 152
6.2  作业管理的基本概念 157
6.2.1  作业的定义 157
6.2.2  作业组织 158
6.2.3  作业管理的任务 158
6.3  作业的输入与输出 159
6.4  作业调度 161
6.4.1  作业的状态及其转换 161
6.4.2  作业调度程序 162
6.4.3  单道批处理系统的调度算法 165
6.4.4  多道程序系统的作业调度策略 170
6.4.5  对作业调度程序的调用 175
本章小结 176
习题六 177
第7章  网络操作系统 178
7.1  概述 178
7.1.1  网络操作系统的定义 178
7.1.2  网络操作系统的特点 179
7.1.3  网络操作系统的分类 180
7.1.4  网络操作系统的发展和展望 181
7.1.5  常用的网络操作系统简介 183
7.2  网络操作系统的结构 185
7.2.1  网络操作系统结构概述 185
7.2.2  Windows NT、UNIX和NetWare的系统结构 188
7.3  网络操作系统的通信 189
7.3.1  网络通信概述 189
7.3.2  基于共享变量的通信方式 189
7.3.3  基于消息传递的通信方式 193
7.3.4  远程过程调用 194
7.3.5  组通信 197
7.4  资源共享 199
7.4.1  资源管理概述 199
7.4.2  硬盘共享 201
7.4.3  网络文件和数据的共享 202
7.4.4  打印机共享保存 203
7.4.5  访问共享资源 204
7.5  服务软件 206
7.5.1  网络服务概述 206
7.5.2  电子邮件E-mail 207
7.5.3  文件传输协议FTP 208
7.5.4  WWW超媒体网络 211
7.6  应用程序接口 214
7.6.1  应用程序接口概述 214
7.6.2  传输层接口TLI简介 215
7.6.3  管套简介 215
7.6.4  WinSock简介 216
本章小结 217
习题七 218
第8章  UNIX系统分析 219
8.1  概述 219
8.1.1  UNIX历史 219
8.1.2  UNIX简介 221
8.1.3  UNIX的特点 223
8.2  UNIX进程管理 224
8.2.1  UNIX系统的进程映象 224
8.2.2  UNIX系统的进程状态及变迁 227
8.2.3  UNIX系统的进程调度 228
8.2.4  进程优先级 230
8.2.5  进程间通信 235
8.2.6  作业调度 236
8.2.7  进程审计 238
8.3  UNIX存储管理 240
8.3.1  存储器的特征 240
8.3.2  UNIX的地址映射 240
8.3.3  存储空间的分配与释放 241
8.4  UNIX设备管理 243
8.4.1  设备管理中的数据结构 243
8.4.2  块设备管理 247
8.4.3  字符设备管理 247
8.4.4  设备状态及设备控制 248
8.5  UNIX文件系统 249
8.5.1  概述 249
8.5.2  系统目录 250
8.5.3  文件控制块和文件的物理结构 252
8.5.4  文件存储器空闲块的管理 253
8.5.5  文件的有关系统调用 254
8.5.6  文件管理的基本命令 256
8.6  Linux的应用 259
8.6.1  Linux简介 259
8.6.2  Linux内核 261
8.6.3  编译内核 265
8.6.4  Linux启动过程 266
8.6.5  Linux的应用 267
本章小结 270
习题八 271
第9章  Solaris系统 272
9.1  概述 272
9.2  Solaris系统核心 273
9.2.1  Solaris启动 275
9.2.2  系统安全 275
9.3  Solaris进程管理 277
9.3.1  进程监控命令 278
9.3.2  优先权控制命令 281
9.4  Solaris存储管理 282
9.4.1  硬盘和文件资源 282
9.5  Solaris文件系统 285
9.5.1  创建文件系统 285
9.5.2  备份和恢复文件系统 288
9.6  Solaris设备管理 290
9.7  Solaris网络管理 293
9.7.1  常用命令 293
9.7.2  网络配置 294
9.8  Solaris安装 296
本章小结 297
习题九 298
第10章  Windows Vista 299
10.1  概述 299
10.1.1  操作系统结构类型 299
10.1.2  Windows Vista的特点 300
10.1.3  Windows Vista的系统结构 301
10.2  Windows Vista内核 303
10.2.1  内核在进程和I/O方面的增强功能 303
10.2.2  内存管理、启动和关闭、电源管理 307
10.2.3  可靠性、可恢复性和安全性 314
10.3  Windows Vista存储技术 323
10.3.1  VSS概述 323
10.3.2  VSS技术原理 324
10.3.3  VSS处理流程 325
10.3.4  VSS分析和结论 325
10.4  Windows Vista设备管理 326
10.4.1  在驱动程序方面的改进 326
10.4.2  禁止安装特定设备 327
10.4.3  控制可移动存储设备的读写 328
10.5  Windows Vista文件系统 329
10.5.1  文件系统简介 329
10.5.2  文件压缩功能 330
10.5.3  加密文件系统 331
10.5.4  NTFS磁盘配额 332
10.5.5  NTFS权限 332
10.6  Windows Vista安全性 332
10.6.1  UAC（用户账户控制） 333
10.6.2  防火墙 334
10.6.3  防止malware的影响 334
10.6.4  保护丢失、失窃或被挪用的计算机 334
10.6.5  自定义验证机制 334
10.6.6  网络访问保护 335
10.6.7  PatchGuard（内核保护系统） 335
10.6.8  Windows Defender 335
本章小结 335
习题十 336
附录A  常用文件扩展名的相应文件类型 337
参考文献 346

基本信息
书名：  操作系统 
书号：7-113-08758 
作者：王趾成等 
定价：25.00元 
出版日期：2008.08 
适用专业：计算机类专业 
版次：1版1次 
出版单位：中国铁道出版社 
内容简介
本书是高职高专计算机系列规划教材之一，教材内容既保持了操作系统的精华与核心，体现了操作系统的完整和严谨性，又以创新的理念和组织形式，充分体现高职高专特色。全书共分I1章，主要内容包括操作系统概论、进程管理、处理机管理、存储器管理、文件系统、设备管理、现代操作系统技术与系统安全、网络操作系统、UNIX系统、Windows 2000系统、Cisco IOS系统。
图书目录
第1章 操作系统概论 
第2章 进程管理 
第3章 处理机管理 
第4章 存储管理 
第5章 文件系统 
第6章 设备管理 
第7章 现代操作系统技术与系统安全 
第8章 网络操作系统 
第9章 UNIX系统 
第10章 Windows 2000系统 
第11章 Cisco IOS系统 
参考文献[1]

基本信息
书名：操作系统（第二版）
书号：  操作系统（第二版）7-113-14123 
作者：赵 敬 
策划编辑：秦绪好 王春霞 
责任编辑：秦绪好 
定价：33.00元 
出版日期：2009.03 
适用专业：计算机相关专业 
版次：2-3　 
开本：16开　 
页码：284页 
出版单位：中国铁道出版社 
内容简介
操作系统课程是计算机及相关专业的一门主干课程，主要研究操作系统的基本原理和实现方法，是计算机专业学生知识结构中必不可少的重要组成部分。 
本书介绍了操作系统的概念、基本原理和核心功能。全书以UNIX为主线进行讲解，并对Solaris、Linux、Windows等操作系统进行穿插分析和介绍。全书共分9章：第1~2章介绍了操作系统的基本概念、特征、功能、结构，以及操作系统的服务和设计等；第3~4章详细阐述了进程和线程的基本概念、同步与通信、调度与死锁；第5章介绍了各种存储管理方式；第6~7章介绍设备管理和文件管理；第8章对操作系统的保护与安全进行了详细分析与介绍；第9章介绍了网络操作系统、分布式操作系统与嵌入式实时操作系统。每章安排有适量的习题，部分章节还安排了实训。[1]
图书目录
第1章 导论1 
1.1 操作系统概述1 
1.1.1 操作系统的概念2 
1.1.2 操作系统的目标2 
1.1.3 操作系统的作用3 
1.1.4 研究操作系统的 
几种观点4 
1.2 操作系统的发展历史5 
1.2.1 推动操作系统发展的 
动力5 
1.2.2 操作系统的历史演变6 
1.2.3 操作系统的主要成就11 
1.2.4 现代操作系统类型12 
1.3 操作系统的特征和功能15 
1.3.1 操作系统的特征15 
1.3.2 操作系统的功能17 
1.4 UNIX操作系统概述18 
1.4.1 UNIX的历史18 
1.4.2 UNIX的特点19 
1.4.3 UNIX的体系结构20 
1.4.4 UNIX的用户界面20 
小结21 
实训1 安装Windows 722 
实训2 Windows 7系统管理23 
本章习题25 
第2章 操作系统结构27 
2.1 操作系统服务27 
2.1.1 操作系统的用户接口28 
2.1.2 操作系统的程序接口29 
2.2 操作系统的设计与实现32 
2.2.1 设计目标32 
2.2.2 设计过程32 
2.2.3 设计的实现33 
2.3 操作系统结构概述33 
2.3.1 计算机系统组织33 
2.3.2 计算机系统体系结构34 
2.3.3 常见的操作系统结构35 
小结38 
本章习题38 
第3章 进程管理40 
3.1 进程的基本概念40 
3.1.1 进程的引入40 
3.1.2 进程的定义与特征41 
3.1.3 进程的状态及其转换42 
3.1.4 进程的组成44 
3.1.5 进程控制块45 
3.2 进程控制46 
3.2.1 进程的创建47 
3.2.2 进程的终止48 
3.2.3 进程的阻塞与唤醒48 
3.2.4 进程的挂起与激活49 
3.3 进程同步49 
3.3.1 进程同步的基本概念50 
3.3.2 进程同步机制51 
3.3.3 锁机制52 
3.4 信号量机制52 
3.4.1 信号量机制定义53 
3.4.2 信号量机制实现互斥55 
3.4.3 信号量机制实现同步56 
3.4.4 信号量机制实现 
资源分配56 
3.5 用信号量机制解决经典 
进程同步问题58 
3.5.1 生产者-消费者问题58 
3.5.2 读者-写者问题58 
3.5.3 哲学家进餐问题59 
*3.6 管程机制60 
3.6.1 管程的基本概念61 
3.6.2 利用管程解决“生产者- 
消费者问题”61 
3.7 进程通信62 
3.7.1 进程通信的类型63 
3.7.2 消息传递通信63 
3.8 线程66 
3.8.1 线程的基本概念67 
3.8.2 线程间的同步和通信68 
3.8.3 线程的实现69 
3.9 UNIX的进程管理70 
3.9.1 UNIX进程描述70 
3.9.2 UNIX进程状态及其转换71 
3.9.3 UNIX进程控制72 
3.9.4 UNIX进程的同步与通信73 
小结74 
实训3 Windows 7任务管理器的 
进程管理75 
本章习题76 
第4章 处理机调度与死锁80 
4.1 处理机调度的基本概念80 
4.1.1 处理机调度的层次80 
4.1.2 调度队列模型81 
4.1.3 调度性能的评价准则83 
4.2 作业调度84 
4.2.1 作业的概念84 
4.2.2 作业状态及转换85 
4.2.3 作业调度86 
4.2.4 作业调度算法87 
4.3 进程调度90 
4.3.1 进程调度的功能90 
4.3.2 进程调度的时机90 
4.3.3 进程调度性能评价91 
4.3.4 进程调度算法91 
4.4 死锁95 
4.4.1 产生死锁的原因95 
4.4.2 产生死锁的必要条件96 
4.4.3 处理死锁的基本方法96 
4.4.4 预防死锁97 
4.5 资源分配图与死锁定理98 
4.5.1 资源分配图98 
4.5.2 死锁定理98 
4.6 避免死锁99 
4.6.1 系统资源的分配状态100 
4.6.2 单种资源的银行家 
算法100 
4.6.3 多种资源的银行家 
算法102 
4.7 死锁的检测与恢复103 
4.7.1 死锁的检测时机104 
4.7.2 死锁的检测方法104 
4.7.3 死锁的解除105 
4.7.4 处理死锁的综合方法106 
4.8 UNIX的进程调度106 
小结108 
本章习题108 
第5章 存储器管理111 
5.1 存储器管理概述111 
5.1.1 存储器的层次112 
5.1.2 存储管理的目的112 
5.1.3 存储管理的功能112 
5.2 分区存储管理115 
5.2.1 单一连续分区存储 
管理115 
5.2.2 固定分区存储管理117 
5.2.3 可变分区存储管理119 
5.3 分页式存储管理125 
5.3.1 分页式存储管理的 
基本思想125 
5.3.2 地址转换与存储保护127 
5.3.3 内存块的组织与管理130 
5.3.4 分页式存储管理的 
特点与缺点131 
5.4 分段式存储管理132 
5.4.1 分段存储管理方式的 
引入132 
5.4.2 分段存储管理的 
基本思想133 
5.4.3 段的共享134 
5.4.4 分页与分段的比较134 
5.4.5 段页式存储管理方式135 
5.5 虚拟存储器的概念136 
5.5.1 虚拟存储器的引入137 
5.5.2 虚拟存储器的实现138 
5.6 请求分页式存储管理139 
5.6.1 请求分页式存储管理的 
基本思想139 
5.6.2 缺页中断与地址变换140 
5.6.3 页面淘汰算法142 
5.6.4 请求分页式存储管理的 
优缺点146 
5.7 请求分段式存储管理147 
5.7.1 请求分段的实现147 
5.7.2 段的共享与保护149 
5.7.3 请求段页式存储管理150 
5.8 UNIX的存储管理150 
5.8.1 交换151 
5.8.2 请求分页152 
5.8.3 换页进程154 
小结155 
实训4 提高Windows 7的 
内存性能155 
本章习题156 
第6章 设备管理159 
6.1 概述159 
6.1.1 设备管理的 
目标和功能160 
6.1.2 计算机设备的分类160 
6.1.3 I/O系统的组成162 
6.2 I/O的处理步骤166 
6.2.1 I/O系统的层次结构166 
6.2.2 I/O中断处理程序166 
6.2.3 设备驱动程序167 
6.2.4 I/O管理程序167 
6.3 设备的分配与调度算法168 
6.3.1 管理设备时的 
数据结构169 
6.3.2 独享设备的分配169 
6.3.3 共享磁盘的调度171 
6.4 数据传输的方式176 
6.4.1 程序循环测试方式176 
6.4.2 中断驱动I/O控制方式177 
6.4.3 直接存储器存取 
（DMA）方式179 
6.4.4 通道方式180 
6.5 设备管理中的若干技术181 
6.5.1 I/O缓冲技术181 
6.5.2 虚拟设备与Spooling 
技术184 
6.6 UNIX的设备管理186 
6.6.1 字符设备缓冲区管理186 
6.6.2 块设备缓冲区管理188 
小结190 
本章习题191 
第7章 文件管理193 
7.1 文件管理概述193 
7.1.1 文件系统的引入193 
7.1.2 文件及其分类194 
7.1.3 文件系统196 
7.2 文件的结构199 
7.2.1 文件的逻辑结构与 
存取方法199 
7.2.2 文件的物理结构与 
存储设备201 
7.3 文件管理与目录结构204 
7.3.1 文件控制块与 
索引结点205 
7.3.2 文件目录结构206 
7.3.3 “按名存取”的实现208 
7.4 文件存储空间的管理209 
7.4.1 位示图法210 
7.4.2 空闲区表法210 
7.4.3 空闲链表法211 
7.5 文件的共享与保护212 
7.5.1 文件的共享212 
7.5.2 文件的保护和保密213 
7.6 UNIX的文件管理215 
7.6.1 UNIX文件系统概述215 
7.6.2 文件的物理结构216 
7.6.3 索引结点的管理217 
7.6.4 文件存储空间的管理218 
7.6.5 目录管理219 
小结220 
实训5 优化Windows 7 
磁盘子系统220 
本章习题222 
*第8章 操作系统的保护与安全224 
8.1 引言224 
8.1.1 系统安全性的内容和 
性质225 
8.1.2 对系统安全威胁的 
类型226 
8.1.3 对各类资源的威胁227 
8.1.4 信息技术安全评价 
公共准则229 
8.2 操作系统的安全机制231 
8.2.1 标识与鉴别231 
8.2.2 可信路径231 
8.2.3 最小特权管理232 
8.2.4 访问控制233 
8.2.5 隐蔽通道检测与控制235 
8.2.6 安全审计236 
8.3 数据加密技术236 
8.3.1 数据加密技术概述236 
8.3.2 数字签名和数字证明书238 
8.3.3 网络加密技术240 
8.4 认证技术240 
8.4.1 基于口令的身份认证 
技术240 
8.4.2 基于物理标志的认证 
技术242 
8.4.3 基于公开密钥的认证 
技术243 
8.5 防火墙技术244 
8.5.1 包过滤防火墙244 
8.5.2 代理服务技术245 
8.5.3 规则检查防火墙247 
8.6 安全操作系统的设计与实现248 
8.6.1 操作系统安全设计 
原理248 
8.6.2 安全策略249 
8.6.3 安全模型251 
8.6.4 安全体系结构253 
小结255 
实训6 Windows 7操作系统的 
安全机制255 
本章习题257 
*第9章 典型操作系统介绍259 
9.1 网络操作系统259 
9.1.1 网络操作系统概述259 
9.1.2 网络操作系统的功能261 
9.1.3 网络操作系统提供的 
服务263 
9.2 分布式操作系统264 
9.2.1 分布式系统概述264 
9.2.2 分布式进程通信265 
9.2.3 分布式资源管理266 
9.2.4 分布式进程同步267 
9.2.5 分布式系统中的死锁267 
9.2.6 分布式文件系统268 
9.2.7 分布式进程迁移269 
9.3 嵌入式实时操作系统269 
9.3.1 嵌入式系统的基本 
概念270 
9.3.2 嵌入式操作系统271 
9.3.3 μC/OS-II简介274 
小结275 
本章习题275 
参考文献 276