UNI操作系统导论讲义课程_第1页
UNI操作系统导论讲义课程_第2页
UNI操作系统导论讲义课程_第3页
UNI操作系统导论讲义课程_第4页
UNI操作系统导论讲义课程_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统原理冯耀霖E-mail:fengyaolin5@126.com课程说明

●理论教学内容(讲义)

Unit1操作系统导论8Unit2进程与线程8Unit3进程通信6Unit4进程同步8Unit5死锁2Unit6实存管理4Unit7虚存管理8Unit8文件管理10Unit9设备管理6附:操作系统实验准备知识(自学)●实验内容本课程的实验平台是Linux操作系统。

实验1熟悉Linux环境实验2进程的创建与并发执行(一)实验3进程的创建与并发执行(二)实验4线程的创建与并发实验5信号与管道通信实验6线程同步(一)实验7线程同步(二)实验8分区内存管理具体内容见《OS2013_操作系统原理实验》

CPU是计算机系统的心脏,操作系统是计算机系统的大脑。半个多世纪以来,操作系统吸引了世界上一群最热情、最有智慧的杰出人才、集中了人类现代创造性思维活动的精髓。操作系统是软件世界的万花筒、博览会,是软件王国中的一顶璀璨的皇冠。能够有机会走进操作系统这个神奇、复杂而又充满诱惑的大千世界,理解其中的基本概念、结构和奥妙的管理机制是十分幸运的。Unit1操作系统导论操作系统原理——冯耀霖内容●什么是操作系统●操作系统的形成与发展●操作系统的基本概念§1

什么是操作系统◆操作系统定义◆操作系统的资源管理功能◆为什么要学习操作系统1.1操作系统的定义

操作系统=OperatingSystem(OS)

操作系统这个术语听上去很稀松平常,并不给人任何兴奋的感觉,甚至有点“土”,原因在于中文的“操作”这个词。提到操作员(工),通常让人想起操作机床、起重机等各种设备或工具的穿着油腻工作服的蓝领工人(计算机操作员充其量也就是蓝领中的白领),自然让人兴奋不起来。将Operating翻译为中文的“操作”,是因为最初的译者没有真正理解英文Operatingsystem所蕴含的精髓。

Operating?

图1-1对Operating的误读那么,英文中的Operatingsystem实际意味着什么?我们先看两个有关的英文术语。

OperatingSurgeon:外科主刀大夫。在整个手术过程中,主刀大夫具有至高无上的权威:他说要打麻药,麻醉师就要赶紧打麻药;他说需要手术钳,助理大夫就赶忙递给他手术钳;他说需要止血,护士就得马上拿止血药棉来止血。整个手术最关键的部分:切开皮肤、拿掉器官、安装移植器官等均由主刀大夫完成。当然,主刀大夫有时也会将某些任务,如缝合创口交给助理大夫来做,但整个手术的过程皆由其主控。一句话,OperatingSurgeon就是掌控整个手术过程、具有精湛技术和敏锐判断力的医师。

OperatingPerson:操刀手,操控者。是操控/掌控事情的人。从OperatingSurgeon和和OperatingPerson这这两两个个术术语语的的语语义义我我们们可可理理解解Operating具具有有““掌控控”的的含含义义。。因因此此,,应应该该把把Operatingsystem理理解解为为::Operatingsystem=掌控控局局势势的的一一种种系系统统这个个术术语语是是专专为为计计算算机机系系统统设设计计的的((IBM)),,指指的的是是计算算机机系系统统里里的的一一切切事事情情均均由由OS来掌掌控控。正如如任任何何一一种种有有效效的的组组织织或或系系统统都都会会有有一一个个核核心心机机构构存存在在,,该该核核心心管管理理着着该该组组织织或或系系统统的的可可用用资资源源,,掌掌控控着着系系统统的的正正常常运运转转。。OS就是是计计算算机机系系统统中中的的核核心心机机构构,,它它是是计计算算机机软软件件精精英英们们设设计计的的一一种种大大型型和和极极其其复复杂杂的的软软件件系系统统,,用用于于代代替替人人并并以以人人的的思思维维方方式式来来自自动动管管理理计计算算机机上上的的所有有软软、、硬硬资资源源,,掌掌控控在在计计算算机机系系统统上上可可能能发发生生的的一一切切事事情情。。那么么,,操作作系系统统到到底底是是什什么么??操作作系系统统到到底底掌掌控控什什么么事事情情??●操作作系系统统是是一一种种大大型型系系统统软软件件计算算机机软软件件有有应应用用软软件件与与系系统统软软件件之之分分。。应用用软软件件是是计计算算机机用用户户为为了了应应用用计计算算机机解解决决某某一一特特定定问问题题而而开开发发的的软软件件。。系统统软软件件则则是是与与具具体体应应用用逻逻辑辑无无关关的的软软件件,,是是应应用用软软件件的的开开发发和和运运行行平平台台。。系系统统软软件件一一般般分分为为四四类类::①①操操作作系系统统;;②②语语言言处处理理系系统统((编编译译程程序序、、解解释释程程序序));;③③软软件件开开发发实实用用工工具具((编编辑辑、、调调试试、、诊诊断断检检测测、、CASE等等程程序序));;④④数数据据库库管管理理系系统统((DBMS))。。其其中中,,操操作作系系统统也也称称系系统统管管理理软软件件,,其其他他则则为为系系统统应应用用软软件件。。操作作系系统统是是规规模模最最大大的的系系统统软软件件,,如如WindowsXP>4000万万行行源源代代码码,,而而一一些些Linux系系统统的的规规模模则则更更大大,,已已达达到到上上亿亿行行源源代代码码。。1.操作作系系统统到到底底是是什什么么?????●操作作系系统统是是系系统统软软件件中中的的核核心心图1-2是是一一个个简简略略的的计计算算机机系系统统视视图图。。从从中中可可清清楚楚地地看看到到计计算算机机系系统统的的层层次次结结构构。。硬件件是是操操作作系系统统存存在在的的物物质质基基础础。。硬硬件件向向软软件件提提供供的的是是物物理理机机器器界界面面((interface)),,即即机机器器的的指指令令系系统统。。操作作系系统统是是加加在在““裸裸机机””((纯纯硬硬件件))上上的的第第一一层层软软件件((最最底底层层软软件件)),,是是直直接接建建筑筑在在硬硬件件上上的的软软件件,,它它使使用用机机器器指指令令实实现现对对硬硬件件的的管管理理和和控控制制。。操操作作系系统统常常驻驻内内存存,,它它覆覆盖盖了了所所有有的的硬硬件件特特性性和和功功能能,,通通过过各各种种抽象象,构构建建了了一一个个功功能能远远强强于于裸裸机机且且易易用用的的““操操作作系系统统虚虚拟拟机机””((如如Windows虚虚拟拟机机、、Linux虚虚拟拟机机))。。操操作作系系统统向向上上层层提提供供了了两两种种界界面面::用用户户操操作作界界面面((操操作作命命令令))和和编编程程界界面面硬件件操作作系系统统系统统应应用用软软件件应用用软软件件用户户物理理机机器器界界面面编程程界界面面用户户操操作作界界面面图1-2计算算机机系系统统视视图图计算算机机系系统统(系系统统调调用用))。。它它们们向向上上层层掩掩盖盖了了所所有有的的硬硬件件特特性性细细节节。。系统应用软件件处于操作系系统的上层,,它们不是常常驻内存的,,而是存放在在磁盘等外存存设备上,仅仅当需要运行行这些软件时时,才把它们们加载到内存存,并在操作作系统的支持持下工作,通通过系统调用用获取操作系系统提供的各各种服务。系系统应用软件件有效地扩充充了计算机系系统的功能,,它与操作系系统一起组成成系统软件整整体,起到了了简化程序设设计、扩大计计算机处理能能力、提高计计算机使用效效率、充分发发挥各种资源源功能的作用用。因此,可可以把系统应应用软件看作作是操作系统统的延伸,甚甚至可把它们们看作是操作作系统的一部部分(如Linux发行行版)。但是是系统应用软软件与操作系系统的不同之之处在于,其其运行环境与与普通应用软软件一样,它它们仍然需要要通过操作系统才能使用用和控制系统统资源。计算机系统层层次结构的最最上层是应用用软件。它们们在系统软件件的支持下运运行,通过系系统调用获取取各种系统软软件的服务。。用户在终端上上通过输入各各种操作命令令(字符命令令或图形命令令)使用操作作系统虚拟机机。可见,有了操操作系统,用用户和所有非非操作系统程程序不再直接接面对物理机机器界面,而而是面对操作作系统提供的的掩盖了所有有硬件特性细细节的虚拟机机界面,通过过这种虚拟机机界面方便地地使用功能被被大大强化了了的操作系统统虚拟机。例如,如果用用户在裸机上上直接编程是是很困难的,,因为各种数数据转移都需需要用户自己己来控制,对对不同设备要要用不同命令来驱动动,而这对一一般人来说是是很难胜任的的。操作系统统将这些工作作从用户手中中接过来,从从而让用户感感觉到编程是是一件容易的的事(相对来来说,而对有有些人来说编编程永远是很很难的)。又如,操作系系统通过进程程抽象让计算算机的每一个个用户感觉到到有一台自己己独享的CPU;通过虚虚拟内存的抽抽象,让用户户感觉到物理理内存空间具具有无限扩张张性。总之,通过操操作系统对裸裸机的各种抽抽象,可魔幻幻般地实现::少变多、难难变易、弱变变强。●操作系统是最最基本的系统统软件任何现代计算算机都必须配配置和安装操操作系统。在在一台计算机上你可可以不安装某某些系统应用用软件,如语语言处理系统统或DBMS,但操作系系统是必须安安装的,否则则,计算机就就根本无法开开始工作。计计算机加电启启动时,除了了必要的硬件件检测,首先先将操作系统统加载到内存存并启动,此此后,计算机机系统的一切切工作都在操操作系统的掌掌控下进行。。作为最基本的的系统软件,,操作系统为为所有的其它它软件(包括括系统应用软软件)提供了了一个开发和和运行的基础础平台,即所所有的其他软软件都需要在在操作系统这这个平台上进进行开发,并并在操作系统统的掌控下运运行,通过操操作系统获取取所需的计算算机资源。没有操作系统统任何软件都都无法运行。什么是抽象??所谓抽象(abstract),就是根本本上存在但现现实中不存在在的东西。抽抽象来源于具具体,但又超超越具体。例例如绘画史上上有抽象派,,抽象画所表表现的就是现现实中不存在在的东西,但但这些东西确确实又来源于于现实。抽象画01抽象画02::毕加索《格格尔尼卡》》2.操作系统到底底掌控什么事事情?当然是计算机机上或计算机机里发生的一一切事情。最原始的计算算机并没有操操作系统,而而是直接由人人来掌控事情情。但是随着着计算机复杂杂性的增长,,人们已经不不能直接掌控控计算机了,,于是人们编编写出操作系系统这个软件件来掌控计算算机,将人类类从日益复杂杂的任务中解解脱出来。这这个“掌控””有着多层深深远的意义。。首先,由于计计算机的功能能和复杂性不不断发生变化化(趋向更加加复杂),操操作系统所掌掌控的事情也也就越来越多多,越来越复复杂。同时,,操作系统本本身能够使用用的资源也不不断增多(如如内存容量))。???其次,既然操操作系统是专专门掌控计算算机的,那么么计算机上发发生的所有事事情自然需要要操作系统的的知晓和许可可,未经操作作系统同意的的任何事情均均视为非法,,包括用户和和应用程序中中的误操作,,以及病毒和和入侵攻击试试图运作的事事情。操作系系统设计人员员当然要确保保计算机不发发生任何他们们不知情或不不同意的事情情。虽然,操操作系统是由由Top级软软件精英们设设计的,但是是人的能力毕毕竟是有限的的,人的思维维也是有缺陷陷的,只要是是由人设计出出的系统自然然不会十全十十美,缺陷是是难免的,这这就给了攻击击者可乘之机机。操作系统统设计人员与与攻击者之间间的博弈是当当前驱动操作作系统不断改改善的一个重重要动力。再次,掌控事事情的水平有有高低之分,,有效率不同同之分,就像外科主主刀大夫之间间也有水平高高低之分。为为了更好地掌掌控事情,更更好地满足人人们永不满足足的各种越来来越苛刻的需需求,操作系系统自然需要要不断改善,,且将一直继继续下去。归结起来,操操作系统掌控控的事情主要要有两大类::资源管理和安全性管理。操作系统管理理计算机中的的所有资源,,包括硬件资资源(设备资资源)和软件件资源(信息息资源)。硬硬件资源可大大致分为四类类:CPU、、内存、外存存及I/O设设备。操作系系统通过各种种策略提高硬硬件资源的工工作效率和利利用率,改善善和优化计算算机的功能和和性能。软件件资源就是存存储在计算机机内的各种文文件,操作系系统要对文件件实施有效的的保护,提供供快速的文件件查找,通过过共享提高文文件资源的利利用率。安全性管理功功能主要解决决两个问题::(1)确保保操作系统自自身的正常运运转,即确保保操作系统自自己不能出现现崩溃性故障障,这是计算算机系统能正正常工作的基基础;(2)防止止非法操作和和非法入侵,,主要是防止止病毒和入侵侵攻击。其中的第二个个问题是是安安全性管理需需要解决的主主要问题。随随着计算机应应用的越来越越广泛和深入入,操作系统统需要管理的的资源也越来来越多且越来来越复杂,故故对操作系统统的要求也越越来越高。由由于操作系统统存在缺陷是是难免的,这这就给了攻击击者可乘之机机。针对对操操作系统的攻攻击,操作系系统设计人员员在不断改进进操作系统的的安全性,这这种操作系统统设计人员与攻击者者之间的博弈弈,使得操作作系统安全水水平和攻击水水平不断交替替上升,永不不会停止。如如今安全性管管理越来越受受到操作系统统设计人员的的重视,其重重要性越来越越突出。如果我们把整整个计算机系系统比拟成一一个国家的话话,操作系统统就相当于是是管理整个国国家的政府,,是国家最高高的政务管理理机构。好了,至此我我们可以给出出操作系统的的一个定义了了:★操作系统是最最关键的系统统软件,它掌掌控计算机上上的一切事情情,包括:管管理所有的计计算机资源,,维持计算机机系统的安全全及有序运转转,并为用户户使用计算机机提供方便且且有效的环境境。1.2操作系统的资资源管理功能能资源管理是操操作系统的主主要功能,它它遵循着一切切人类资源管管理的基本目目的,即如何何有效地发掘掘资源、监控控资源、分配配资源和回收收资源,而其其中的核心是是分配资源。。公平和有效,,是操作系统统资源管理的的基本原则。。公平指的是每个用用户进程(进展/运行行中的程序))都有享有系系统资源的权权利(就像““天赋人权””),系统要要让各个用户户进程感到某某种平等,即系统不能能“无限”延延长对任一进进程的资源请请求的响应时时间。当然真正的公公平是没有的的事,这很像像人类生活的的现实,不过过追求公平乃是是人类的本能能,是PSJZ观。只有有公平了,才才能谈得上公公正与和谐。在虚拟世界界里尽可能公公平一点还是是非常应该的的,至少应该该是操作系统统设计时的不不懈追求。有效就是指不能浪浪费系统资源源,要使资源源尽可能被充充分地利用,,发挥出每个个资源的最大大效能。有效也为公平平提供了必要要的支持。这这同样也像人人类生活的现现实,一个社社会/国家如如果存在着大大量的资源浪浪费,而浪费费必定和腐败败联系在一起起,一个腐败成风风的社会能是是一个公平、、公正的社会会吗?总之,公平与效率是是操作系统资资源管理中永永恒的主题。到底是效率率重要?还是是公平更重要要?天平的不不同倾斜将引引出不同的管管理模式。操作系统的资资源管理功能能一般分为四四个子系统::进程管理、、内存管理、、外存管理及及设备管理。。1.进程管理进程(process)可简简单地理解为为“运行中的的程序”,其其实质是操作系统对对CPU的抽象。进程管理的的主要目的有有三个:第一一是公平分配,即每个进程程都有机会使使用到CPU;第二是非阻塞,即任何进程程不能无休止止地阻挠其他他进程的正常常推进,如果果一个进程在在执行过程中中需要I/O或者因别的的什么事情而而发生阻塞,,这个阻塞不不能妨碍无关关进程继续前前进,就像人人类世界,缺缺了谁地球都都照样转;第第三是优先级调度,在人类生活活中人的地位位不是完全一一样的,地位位高的就比地地位低的具有有更高的资源源获取权及占占有权,OS设计者把人人类生活中的的这种关系搬搬到操作系统统里面,就有有了优先级的的概念,即赋赋予某些进程程有较高的优优先级,如果果优先级高的的进程需要执执行,则优先先级低的进程程就要让出CPU。2.内存管理内存管理一般般是管理由主主存和缓存所所形成的内存存架构。为了了有力地支持持多进程并发发以及应用程程序不断增大大的需求,OS设计者发发明了虚拟内存的概念,即通通过软件技术术将物理内存存逻辑扩充到到磁盘上,这这样就极大地地增大了物理理内存空间。。因此,现代代操作系统管管理的实际上上是由主存、、缓存及磁盘盘所形成的虚虚拟内存架构构。内存管理要解解决的问题之之一是如何给给不同的用户户进程分配内内存空间;要要解决的另一一个问题是怎怎样让很多用用户进程共用用同一个物理理内存,这就就需要对物理理内存进行分分割和保护,,每个进程占占用一个受保保护的内存空空间,一个进进程不能访问问另一个进程程所占用的内内存空间,即即进程不能越越界。3.外存管理外存管理也称称文件系统管管理或文件管管理。文件系统是操作系统对对外存介质((磁盘、磁带带、光盘)的的抽象。文件则是对外存空空间单位的抽抽象。外存管理要解解决的的问题题之一是如何何分配外存空空间给不同的的进程。要解解决的另一个个问题是怎样样将外存变成成一个很容易易使用的存储储介质提供给给用户使用,,使得用户在在访问外存时时无需了解外外存设备的物物理属性或程程序和数据在在外存空间上上的精确位置置,例如磁盘盘上的磁道、、磁柱、扇区区等。磁盘是是最重重要的的外存存介质质,是是外存存管理理的重重点。。4.设备管管理设备管管理就就是管管理I/O设备备,其其主要要目的的有三三个::其一,,解决决如何何给不不同的的进程程分配配I/O设设备;;其二,,屏蔽蔽不同同设备备的差差异性性,即即使得得进程程可以以用同同样的的方式式访问问不同同的设设备,,从而而降低低编程程的难难度;;其三,,提供供并发发访问问,即即将那那些看看上去去并不不具备备共享享特性性的设设备((如打打印机机)变变得可可以共共享。。1.3为什么么要学学习操操作系系统我们已已明确确了OS的的重要要性,,但仅仅仅因因为很很重要要就一一定要要学习习它吗吗?世世界上上重要要的事事情多多去了了,难难道我我们都都要学学习吗吗?即即使是是计算算机专专业的的学生生,不不学OS也也照样样可以以编程程写软软件。。那我我们为为什么么要学学呢??当然然我们们可以以有一一千个个理由由,在在这里里仅提提出两两个。。1)OS都是是由软软件界界中的的Top精精英们们开发发的,,它的的优秀秀设计计和经经典思思路是是计算算机科科学知知识的的荟精精集萃萃,会会给我我们以以激浊浊扬清清的思思考,,对OS的的掌握握程度度,决决定着着计算算机专专业学学习者者的发发展水水平及及方向向。举例说说:①OS的的功能能在很很多IT领领域都都使用用。如如果你你做并并发程程序的的开发发———WebService、、分布布式系系统和和网络络,,你会会发现现,这这些领领域大大量使使用了了OS的概概念和和技术术。如如果你你学好好了OS,,你就就可以以对你你要做做的事事情更更加有有信心心。②OS的的技巧巧也在在很多多领域域使用用,如如抽象象、缓缓存、、并发发等。。如数数据结结构和和程序序设计计就大大量使使用了了抽象象,记记得抽抽象数数据类类型和和抽象象类吗吗?很很多地地方都都用缓缓存,,你做做Web要要不要要用缓缓存呢呢?这这些你你都得得做。。如果果学好好了OS,,你就就掌握握了这这些内内容,,触类类旁通通,你你学习习别的的东西西时就就会容容易多多了。。2)更更重重要的的是OS真真的很很有意意思。。对于于一个个计算算机专专业的的人来来说,,难道道你不不想知知道自自己写写的程程序到到底是是如何何在计计算机机上运运行的的吗??很多人人买车车后第第一件件事是是什么么?打打开前前盖。。打开开前盖盖看到到的是是什么么呢??马达达、变变速箱箱。为为什么么第一一件事事要打打开前前盖呢呢?因因为好好奇这这辆车车是怎怎么开开动的的。那么么,,对对于于一一个个计计算算机机特特别别是是软软件件专专业业的的人人来来说说,,有有没没有有在在看看到到一一台台计计算算机机的的时时候候,,想想过过为为什什么么计计算算机机能能进进行行计计算算??为为什什么么计计算算机机系系统统能能有有条条不不紊紊的的运运转转??多多数数人人恐恐怕怕没没有有打打开开过过计计算算机机外外壳壳。。不不过过,,没没有有打打开开过过也也不不用用遗遗憾憾,,因因为为即即使使你你把把计计算算机机后后盖盖打打开开,,还还是是不不能能明明白白计计算算机机是是怎怎么么运运转转的的,,此此时时只只看看到到一一堆堆硬硬件件::主主板板、、芯芯片片、、布布线线等等,,而而这这些些硬硬件件并并不不会会告告诉诉你你太太多多有有关关计计算算机机运运转转的的信信息息。。如如果果真真的的想想知知道道计计算算机机系系统统到到底底是是怎怎么么运运转转的的,,你你就就得得学学习习OS。。虽然然学学习习OS很很有有趣趣,,但但并并不不是是所所有有人人都都有有这这样样的的感感觉觉,,因因为为OS的的特特点点是是概概念念多多、、抽抽象象和和涉涉及及面面广广,,而而从从整整体体实实现现上上看看,,其其思思想想和和技技术术又又往往往往令令““我我们们””难难于于理理解解。。历历史史证证明明,,对对很很多多人人来来说说学学习习OS是是一一件件很很痛痛苦苦的的事事情情。。不不过过本本人人希希望望我我们们在在一一起起学学习习这这门门课课程程对对大大家家来来说说是是一一件件乐乐事事,,难难道道窥窥探探计计算算机机系系统统的的奥奥秘秘不不是是一一件件激激动动人人心心的的事事吗吗??§2操作作系系统统的的形形成成与与发发展展◆操作作系系统统的的发发展展历历史史◆操作作系系统统的的分分类类◆操作作系系统统的的未未来来发发展展趋趋势势2.1操作作系系统统的的发发展展历历史史操作作系系统统的的形形成成与与发发展展由由两两个个基基本本因因素素驱驱动动::■硬硬件件成成本本的的不不断断下下降降;;■计计算算机机的的功功能能和和复复杂杂性性不不断断提提升升。。硬件件成成本本的的不不断断降降低低,,就就以以硬硬盘盘为为例例,,IBM制制造造的的第第一一张张硬硬磁磁盘盘直直径径达达2米米,,造造价价100多多万万美美元元,,而而容容量量只只有有1MB;;而而现现在在一一个个容容量量100GB的的硬硬盘盘成成本本只只有有几几十十美美元元。。当当然然,,过过去去的的硬硬盘盘和和今今天天的的硬硬盘盘的的制制造造技技术术完完全全不不同同,,早早期期硬硬盘盘的的质质量量坚坚挺挺,,可可以以当当作作咖咖啡啡桌桌来来使使用用,,而而现现在在的的硬硬盘盘片片根根本本不不能能承承受受重重物物。。计算算机机硬硬件件及及其其组组成成的的发发展展速速度度从从一一开开始始就就很很惊惊人人。。最最初初,,计计算算机机的的组组件件虽虽然然巨巨大大,,但但数数量量少少,,功功能能简简单单,,现现在在,,一一台台计计算算机机里里包包括括的的元元件件数数量量实实在在是是太太多多了了。。硬件件成成本本的的下下降降和和计计算算机机复复杂杂性性的的提提高高推推动动了了操操作作系系统统的的演演变变。。成成本本降降低低意意味味着着同同样样的的价价格格可可以以买买到到更更为为先先进进的的计计算算机机。。而而计计算算机机复复杂杂性性的的提提高高自自然然需需要要操操作作系系统统的的能能力力也也得得到到提提高高。。就就是是这这些些变变化化使使得得操操作作系系统统从从最最初初的的仅仅仅仅只只有有几几百百或或几几千千行行源源代代码码发发展展到到今今天天的的多多达达几几千千万万行行到到上上亿亿行行源源代代码码。。操作系统统之所以以越来越越复杂的的基本因因素是因因为硬件件质量和和数量的的不断提提升使得得操作系系统管理理的东西西增多,,而且人人类永不不满足的的各种越越来越苛苛刻的要要求也使使得操作作系统的的复杂性性不断增增加。除了上述述两个基基本驱动动因素,,在操作作系统的的发展过过程中,,效率率和公平平始终是是操作系系统设计计人员追追求的关关键目标,它们们是导致致操作系系统越来来越复杂杂的重要要因素。。另外,还还有一个个附加因因素影响响着操作作系统的的发展,,这就是是操作系系统和攻攻击者之之间的博博弈。这这个世界界上总有有些人想想利用计计算机的的缺陷来来进行各各种损人人利己或或损人又又不利己己的活动动。操作作系统在在最初设设计时就就根本没没有想到到会有人人从事破破坏活动动。大概概因为早早期的计计算机工工作者认认为到达达能够使使用计算算机的水水平的人人都是好好人,是是君子,,是绅士士,无需需设计任任何安全全机制。。这样,,在后来来发现有有人试图图利用计计算机进进行不良良操作时时,就迫迫不得已已修改操操作系统统,使其其具有安安全上的的防范功功能。每每当操作作系统改改进了安安全性,,攻击者者也会改改良他们们的攻击击手段,,这样循循环往复复,就造造成操作作系统安安全水平平和攻击击水平不不断交替替上升的的历史。。第零代::SOSC操作系统统(20世世纪40年代))SOSC(SingleOperator,SingleConsole单操作员员单控制制台)控制方方式是最最原始的的计算机机控制方方式,用用于第一一代电子子计算机机,如ENIAC。当当时并没没有操作作系统的的整体概概念,人人们能够够想到的的最直观观的控制制计算机机的方式式,就是是提供一一些标准准的人机机交互命命令供用用户(当当时的用用户既是是编程者者也是操操作员))使用,,这些标标准命令令的集合合就构成成了SOSC标准函数数库。这这可认为为是操作系统统的最原原始形式式。SOSC的设计目目的就是是满足基基本的功功能,并并提供人人机交互互。在SOSC下,任何何时候只只能做一一件事。。即不支支持并发发和多道道程序运运行。SOSC本身只是是一组标标准库函函数而已已,并不不自我运运行,而而是等待待响应用用户输入入的命令令,然后后加载相相应的库库函数来来执行。。用户想想使用什什么服务务,就输输入代表表该服务的的库函数数名即可可。这种种控制方方式的资资源利用用率很低低:用户户输入一一个命令令就执行行一个SOSC库函数数,拨一一下动一一下;当当用户在在思考时时或进行行输入输输出时,,CPU则静静静地等待待。当然然了,从从人的角角度来看看,效率率并不低低,你输输入什么么,计算算机就立立即执行行什么。。但从机机器的角角度考虑虑,因为为CPU时刻都都等着人人相对很很慢的动动作,效效率就太太低了。。由于这个个时代的的计算机机很稀少少,整个个世界也也只有几几台,而而人却不不是,提提高计算算机的利利用率就就变得十十分重要要。第一代::批处理理操作系系统(20世纪50年代)为了提高高SOSC的效率,,人们提提出了““批处理”的概念念。在仔仔细考察察了SOSC后,人们们发现,,SOSC效率之所所以低下下,是因因为计算算机总是是在等待待人的下下一步动动作,而而人的动动作总是是很慢。。因此,,人们觉觉得如果果取消人人的因素素,让所所有的用用户先想想好自己己要运行行的命令令,列成成一个清清单(称称作业说明明书),再把把要运行行的程序序、数据据连同作作业说明明书一起起制作((穿孔))在纸带带/卡片片上,然然后将制制作好的的纸带//卡片交交给计算算机管理理员来一一批一批批地处理理,效率率不就提提高了吗吗?这就就形成了了批处理理操作系系统。批处理针针对的是是第二代代通用计计算机,,如IBM的1401和7094等,通过过取消用用户与计计算机的的直接人人机交互互达到CPU和输入输输出设备备利用率率的改善善。批处理的的过程是是:用户户将自己己的作业(=程序++数据++作业说说明书)制作在在穿孔卡卡片/纸纸带上,,交给计计算机管管理员;;管理员员在收到到一定数数量的用用户作业业后,将将卡片//纸带上上的作业业通过输输入输出出卫星机机IBM1401读入,并并写入到到磁带((输入磁磁带)上上,这样样每盘输输入磁带带通常会会含有多多个用户户作业;;然后,,计算机机操作员员将这盘盘磁带装装入到作作为主机机的IBM7094上,由驻驻留在IBM7094上的批处理监监控程序序(batchmonitor)顺序解解释执行行各用户户作业,,实现了了作业之之间的自自动切换换,作业业运行的的结果被被写入另另一个磁磁带(输输出磁带带)上;;所有的的用户作作业运行行结束后后,将输输出磁带带取下来来,装到到卫星机机IBM1401上进行结结果打印印;然后后就可以以将打印印结果交交给各个个用户了了。图1-3描述了批批处理的的过程。。图1-3批处处理系统统示意图图批处理监监控程序序和原先先就有的的标准函函数库就就组成了了批处理理操作系系统。(不过过,那时时还没有有出现““操作系系统”这这个术语语)很显然,,批处理理操作系系统的功功能和复复杂性较较之SOSC均得到了了提升。。批处理操操作系统统开始具具备了初初步的系系统管理理功能::■设备管管理——读卡机、、磁带机机、打印印机等I/O设备的驱驱动;■文件管管理——首次引入入了文件件概念,,每个用用户作业业被抽象象成一个个文件;;■解释执执行作业业说明书书;■实现各各用户作作业之间间的自动动切换。。批处理操操作系统统一般被被认为是是操作系统统的雏形形,后也被被称之为为单道批批处理操操作系统统,一般般把它称称之为第第一代操操作系统统。其重要实实例有IBM开发的FMS和IBSYS,密歇根根大学开开发的UMES,分别运运行于IBM7090和IBM7094。驱动这个个阶段操操作系统统发展的的动力是是改善效效率。因为机机器的昂昂贵,使使得CPU在操作员员思考或或I/O设备工作作期间闲闲置起来来是难以以容忍的的。第二代::多道批处处理操作作系统(20世世纪60年代))虽然批处处理操作作系统通通过无需需人机交交互过程程而在一一定程度度上提高高了计算算机的效效率,但但还是不不那么令令人满意意。因为为,它只只支持一一个用户户作业进进入内存存运行,,且CPU和I/O设备的运运行是串串行的,,即在程程序进行行输入输输出时,,CPU只能等待待,CPU需要不断断地探询询I/O是否完成成,因而而不能执执行别的的程序。。由于昂昂贵的CPU的速度要要远远高高于I/O设备,故故CPU常常处于于闲置状状态,其其浪费是是很大的的。为此,人人们又设设想,能能否将CPU和I/O设备并行行工作呢呢?即在在一个程程序进行行输入输输出时,,让CPU去执行另另一个程程序,换换言之,,能否将将CPU和I/O设备的运运行重叠叠起来从从而改善善整个计计算机系系统的效效率呢??答案是是肯定的的,不过过需要付付出代价价,因为为CPU和I/O重叠需要要我们将将多个程程序同时加载到到计算机机内存里里,由此此,引出出了多道程序序设计(multiprogramming)的思想想。多道程序序设计是指允许许多个程程序同时时进入计计算机内内存并发发运行的的方法。。也就是是说,计计算机内内存中可可同时存存放多道道(两个个或以上上)相互互独立的的程序,,它们均均处于起起点和终终点之间间,通过过操作系系统的调调度使各各道程序序轮流交交替地使使用CPU。当现行程程序启动动I/O并需要等等待I/O的完成时时,操作作系统可可立即调调度CPU去执行另另一个驻驻留在内内存中的的程序,,使得CPU与I/O设备并行行工作,,利用这这种多部部件的并并行工作作,使系系统可同同时运行行多个不不同的程程序。从从而可大大大减少少CPU的闲置时时间,充充分提高高了CPU的利用率率。例如,假假设一个个程序用用20%的时间间使用CPU进进行计算算,另外外80%的时间间用来进进行I/O。则则在单道道系统中中,CPU的利利用率只只有20%;但但如果同同时运行行两个这这样的程程序,则则CPU的利用用率将提提高到36%((CPU只在两两个程序序同时进进行I/O时才才处于闲闲置状态态,因此此CPU的利用用率为1-0.8×0.8=36%)),这里里忽略了了程序切切换所需需要的系系统开销销。同理理,如果果同时运运行3个个这样的的程序,,CPU利用率率将提高高到48.8%;4个个程序的的CPU利用率率将为59%;;5个程程序的CPU利利用率将将为67.2%。这样样,随着着程序道道数的增增加,CPU利利用率将将逐步提提升,直直到某个个临界点点为止。。这个临临界点就就是多道道程序设设计的上上限,超超过这个个上限,,多道程程序设计计的好处处将逐步步消失,,甚至呈呈下降趋趋势。图1-4多道道编程度度数、I/O时时间和CPU利利用率的的关系将多道程程序设计计思想引引入到批批处理操操作系统统便形成成了多道道批处理理操作系系统。显显而易易见,比比起简单单批处理理多道批批处理操操作系统统的功能能要强得得多,但但也要复复杂得多多:既要要管理多多个作业业,又要要管理内内存,还还要管理理CPU调度。但多道批处理操操作系统构建建了操作系统统的基本架构构,奠定了操操作系统的基基本理论,操操作系统也因因此而成就了了一门独立学学科。驱动多道批处处理操作系统统的问世及发发展的动力仍仍然是改善效效率。因为当时的的CPU非常常昂贵,人们们不能容忍CPU在I/O设备工作作期间被闲置置下来。同时时,用户对计计算机的需求求也开始多了了起来,从纯纯粹的科学计计算发展到商商业应用。因因此,这个阶阶段还伴随着满足足用户不断增增长的需求。蓝色巨人IBM对多道批处理理操作系统的的问世作出了了巨大贡献。。在1961年年底,IBM开始实施“360系统电子计算算机计划”,,整个计划投投资约50亿美元(而““曼哈顿工程程”才花了20亿),超过了了当时IBM一年的产值。。在人力上,,光软件工程程师就投入了了2000多名。IBM在实施360计划时,首次次正式提出了了OperatingSystem这个术语,并并开发出了一一个真正的多多道批处理操操作系统OS/360,这是一个不不仅从理念上上也从技术上上都是划时代的操作作系统,是操作系统统发展史上的的一个里程碑。随着OS/360的问世,诞生生了一批崭新新的概念和术术语,如:多多道程序设计计、任务(进进程)、调度度、并发、作作业管理、CPU管理、内存管管理、设备管管理、文件管管理等,它们们构成了操作作系统理论的的基础。同时时,计算机应应用从纯科学学计算应用开开始进入了商商业应用。图灵奖获得者者(1999))FrederickBrooks图1-5OS/360总设计师师第三代之一::分时操作系系统(20世纪70年代)多道批处理操操作系统的出出现使计算机机的效率(主主要是吞吐量量)大大提高高。但它的一一大问题是用用户是“脱机机”(Offline)使用计算算机的,用户户无法即时获获知其程序的的运行结果。。想想如果你你编了一个程程序,却需要要别人去运行行,并可能要要等上若干天天才能知道结结果,这个滋滋味显然不好好受。万一计计算机管理员员疏忽了,忘忘记运行你的的作业,或者者操作错误,,导致程序丢丢失,情况就就更糟。另外外,脱机性也也大大限制了了计算机的商商业性应用。。为此,人们又又设想,能否否让用户回到到计算机前面面来,由每个个用户自己操操作和控制自自己的程序。。随着符号键盘盘、显示器等等计算机终端端设备的问世世,人们的这这种设想的实实现成为了可可能。批处理系统是是对SOSC的否定,而而这种想法的的提出是对SOSC的否否定之否定。。人的因素又又引了回来,,这看上去与与原始的SOSC似乎一一样,但有个个关键的不同同:多个用户户同时与计算算机联机(On-line),每个个用户被看作作只是一个I/O终端而而已。即每个个用户都拥有有一个联机终终端(显示器器+键盘),,它们都通过过RS232串行线缆与与计算机主机机连接,终端端只能发送和和接收有限的的文本命令和和信息。操作作系统在所有有的联机用户户之间进行CPU分时,即一次分给给一个用户进进程有限的CPU时间———时间片,只要时间片片一完,就立立即切换一个个用户进程,,给该进程分分配一个CPU时间片。。就是基于这这种基本思想想,引来了第第三代操作系系统——分时时操作系统。。在分时操作系系统下,任意意时间可以运运行多个程序序,且用户直直接与计算机机交互,现场场调试程序,,这就和SOSC不一样样了。在SOSC下,一一切等着人,,计算机执行行一条命令就就等人。分时时系统则是人人等计算机。。这个模式带带来一个直接接的结果就是是计算机再不不用等你,等等你想问题时时机器就切换换到别的程序序,等你想完完了机器再切切换回来,接接受你的再次次输入。就这这样,计算机机就在很多人人之间来回切切换,你输入入个命令就响响应,然后切切换走。如果果时间掌握的的好,用户输输入完一个命命令计算机正正好转回来,,用户就没有有等待的感觉觉。当然,如如果一个用户户打字足够快快,可能会觉觉得计算机慢慢;如果打字字较慢,就有有可能觉得计计算机很快。。不同的人感感觉有可能完完全不同。图1-6分分时系统示示意图显然,与前前面几代的的操作系统统相比,分分时操作系系统要复杂杂得多。相相比于多道道批处理操操作系统,,最主要的的变化是资源的公平平管理。在多道批批处理下,,公平不公公平没有人人知道,大大家递交了了作业后只只管回家等等结果。至至于自己的的程序排在在谁前面谁谁后面,或或者占用了了多少CPU时间是是无关紧要要的。现在在,大家都都坐在计算算机终端前前面,任何何的不公平平将立即感感觉到。因因此,公平平地管理用用户的CPU时间就就变得非常常重要。驱动这个阶阶段操作系系统发展的的动力是响响应时间和和对越来越越多资源的的管理。因为机器器昂贵,不不能容忍CPU在I/O设备备工作期间间闲置下来来。同时,,因为人的的时间宝贵贵,不能容容忍用户坐坐在机器前前进行漫长长的等待。。因此,人人们发明了分时时操作系统统来解决这这两个问题题。此外,,分时操作作系统还需需要应对竞竞争、同步步、互斥、、通信、死死锁、保护护等一系列列的新问题题,使得分时操作系系统变得空空前复杂,,进一步完完善了操作作系统的基基本理论。对分时操操作系统的的研发成为为了当时计计算机界的的最大热门门,竞争十十分激烈。。最为著名的的分时操作作系统是由由AT&T的贝尔实实验室、麻麻省理工学学院(MIT)及数数字设备公公司(DEC)三家家合作开发发的Multics分时操作作系统和贝贝尔实验室室开发的Unix分分时操作系系统。Unix后后来演变成成了两大系系列:SystemⅤ(AT&T贝尔实验验室)和BSD(加洲大学学伯克利分分校)。成功分时操操作系统的的典范无疑疑当推UNIX,它是史上上第一个用用高级程序序设计语言言(C语言)编写写的操作系系统,并成成功运行于于PDP、VAX、CRAY等当时的主主流机器上上,其发明明者因此而而获得了图图灵奖。UNIX的问世极大大地推动了了操作系统统的发展,,奠定了操操作系统理理论和技术术的架构,,是操作系系统发展史史上的一个个伟大的里里程碑,对对操作系统统的发展产产生着巨大大和深远的的影响。发发展到今天天,UNIX仍久经不衰衰,表现出出它的强大大生命力,,它已从一一个分时操操作系统发发展成为““通用”操操作系统,,成为了跨跨越从微型型机到巨型型机范围的的唯一操作作系统,被被誉为是操操作系统的的工业标准准。(贵族族)图灵奖(1983))获得者肯•汤普逊UNIX发发明者丹尼斯•里奇C语言发明明者图1-7UNIX与C语语言的发明明者第三代之二二:实时操操作系统实时操作系系统是专门门为计算机机实时应用用系统(简简称实时系系统)而开开发的。实实时系统要要求计算机机对某些实实时过程进进行监视,,并在需要要的时刻及及时采取动动作。实时时系统具备备一个特点点:计算机机对相关实实时过程必必须在规定定时间内作作出响应,,不然就有有可能发生生事故或灾灾难。例如,在工工业装配线线上,当一一个部件从从流水线上上的一个工工作站流到到下一个工工作站时,,这个工作作站上的操操作必须在在规定时间间内完成,,否则就有有可能造成成流水线瘫瘫痪。又例例如,在导导弹防卫系系统中,对对来袭导弹弹的轨迹计计算必须在在规定时间间内完成,,否则就有有可能被来来袭导弹击击中而无法法作出反应应。其他如如航空飞行行控制系统统、核反应应堆状态监监视系统、、化学反应应堆监视系系统等。这里必须清清楚一个概概念:实时时系统并不不一定是响响应很快的的系统,而而是其响应具有有时序可预预测性的系统。当当然了,在在实际中实实时系统通通常是响应应很快的系系统,但这这是实时系系统的一个个结果,而而不是其定定义。显然,实时时操作系统统的最重要要部分就是是作业调度度或进程调调度,只有有精确、合合理和及时时的进程调调度才能保保证响应时时间。当然然,对资源源的管理也也非常重要要,没有精精密复杂的的资源管理理,确保进进程按时完完成就成为为一句空话话。另外,,基于其使使用环境,,实时操作作系统对可可靠性和可可用性的要要求也非常常高。如果果在这些方方面出了问问题,时序序可预测性性将无法达达到。第四代:现现代操作系系统(1980年至今))自20世纪纪80年代代起,计算算机工业获获得了井喷喷式的发展展,各种计计算机和操操作系统不不断出现和和发展,计计算机和操操作系统领领域均进入入到了一个个百花齐放放、百家争争鸣的时代代,尤其是是工作站和和PC机的的出现,使使计算机大大为普及。。这个时代代的操作系系统代表有有:DOS、Windows、Linux、UNIX和和各种主机机操作系统统,如VM、MVS等。随着微电子子技术的飞飞速发展,,计算机硬硬件越来越越便宜,个个人电脑((PC)出出现在人们们的视野中中。人们可可以拥有自自己的电脑脑,无需与与他人分享享。由于PC机由用用户一个人人独享,分分时操作系系统的许多多功能就无无需存在,,因此,PC机操作系统统又变回到了了标准函数数库系统。。初期的PC操作系系统是单用用户单任务务的,这类类OS最有有名的是DOS、Windows3x、MacOS((苹果机操操作系统))等。但在独享了了一阵PC机后,人人们发现,,没有分时时功能的操操作系统使使一些事情情做不了,,因为虽然然只有一个个人在用计计算机,但但他可能想想同时运行行几个程序序,而没有有分时功能能这是不可可能的。于于是,人们们觉得需要要对PC机机操作系统统进行改善善,将各种种有关的分分时功能又又加了进去去,形成了了单用户多多任务的PC操作系系统,如windows2000/xp、Xenix、Ulttrix、MacOSX。推动PC电电脑的迅猛猛发展的一一个重要因因素是操作作系统图形形用户界面面(GUI)的出现现。传统操操作系统的的用户操作作界面都是是字符/文文本用户界界面。苹果果公司率先先开发出了了实用的GUI,并并应用在它它的MacOS操操作系统上上。微软大大量抄袭了MacOS的GUI技术而形形成了最为为流行的GUI———Windows。。图形用户户界面的出出现对操作作系统的发发展产生了了深远的影影响。现在在一般认为为GUI的的技术和标标准是由苹苹果公司打打下的基础础。但正确确地说,GUI技术术实际上是是由施乐帕帕罗奥托研研究中心创创始的。这个时代的的另外一个个重要特征征是网络的的出现和兴兴起。网络络触发了网络操作系系统和分布式操作作系统的出现。计计算机网络络有(普通通)计算机机网络和分分布式系统统之分,分分布式系统统是种特殊殊的计算机机网络。网网络操作系系统是为计计算机网络络开发的,,分布式操操作系统则则是为分布布式系统开开发的。分分布式系统统与计算机机网络的主主要区别不不在于它们们的物理结结构上,而而是在操作作系统。分布式系统统与计算机机网络的差差别:■计算机网网络一般采采用客户/服务务器(Client/Server)模式;而分分布式系统统采用的是是对等(Peer-to-Peer)模式,即网网中的站点点机没有主主次之分,,每一个站站点既可作作为客户机机,又可作作为服务器器。■在计算机机网络中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论