《UNIT1操作系统概述教案课件》由会员分享,可在线阅读,更多相关《UNIT1操作系统概述教案课件(116页珍藏版)》请在金锄头文库上搜索。
1、操作系统原理操作系统原理冯耀霖冯耀霖: 5126课程说明课程说明 理论教学内容理论教学内容 (讲义)(讲义) 1操作系统导论操作系统导论8 2 进程与线程进程与线程8 3 进程通信进程通信6 4 进程同步进程同步8 5 死锁死锁2 6 实存管理实存管理4 7 虚存管理虚存管理8 8 文件管理文件管理10 9 设备管理设备管理6附:操作系统实验准备知识(自学)附:操作系统实验准备知识(自学)实验内容本课程的实验平台是操作系统。实验 1熟悉环境实验 2进程的创建与并发执行(一)实验 3进程的创建与并发执行(二)实验 4线程的创建与并发 实验 5信号与管道通信实验 6线程同步(一)实验 7线程同步(
2、二)实验 8分区内存管理具体内容见2013_操作系统原理实验是计算机系统的心脏,操作系统是计算机系是计算机系统的心脏,操作系统是计算机系统的大脑。半个多世纪以来,操作系统吸引了世统的大脑。半个多世纪以来,操作系统吸引了世界上一群最热情、最有智慧的杰出人才、集中了界上一群最热情、最有智慧的杰出人才、集中了人类现代创造性思维活动的精髓。操作系统是软人类现代创造性思维活动的精髓。操作系统是软件世界的万花筒、博览会,是软件王国中的一顶件世界的万花筒、博览会,是软件王国中的一顶璀璨的皇冠。能够有机会走进操作系统这个神奇、璀璨的皇冠。能够有机会走进操作系统这个神奇、复杂而又充满诱惑的大千世界,理解其中的基
3、本复杂而又充满诱惑的大千世界,理解其中的基本概念、结构和奥妙的管理机制是十分幸运的。概念、结构和奥妙的管理机制是十分幸运的。 1操作系统导论操作系统导论操作系统导论操作系统导论操作系统原理操作系统原理冯耀霖冯耀霖内容内容什么是操作系统操作系统的形成与发展操作系统的基本概念1 什么是操作系统什么是操作系统操作系统定义操作系统定义操作系统的资源管理功能操作系统的资源管理功能为什么要学习操作系统为什么要学习操作系统1.1 操作系统的定义操作系统的定义操作系统操作系统 ()()操作系统这个术语听上去很稀松平常,并不给人任何操作系统这个术语听上去很稀松平常,并不给人任何兴奋的感觉,甚至有点兴奋的感觉,甚
4、至有点“土土”,原因在于中文的,原因在于中文的“操作操作”这个这个词。提到操作员(工),通常让人想起操作机床、起重机词。提到操作员(工),通常让人想起操作机床、起重机等各种设备或工具的穿着油腻工作服的蓝领工人(计算机等各种设备或工具的穿着油腻工作服的蓝领工人(计算机操作员充其量也就是蓝领中的白领),自然让人兴奋不起操作员充其量也就是蓝领中的白领),自然让人兴奋不起来。将来。将 翻译为中文的翻译为中文的“操作操作”,是因为最初的译者没有真,是因为最初的译者没有真正理解英文正理解英文 所蕴含的精髓。所蕴含的精髓。 ?图图1-1 对的误读对的误读那么,英文中的那么,英文中的 实际意味着什么?实际意味
5、着什么?我们先看两个有关的英文术语。我们先看两个有关的英文术语。 :外科主刀大夫。在整个手术过程中,主刀大夫具:外科主刀大夫。在整个手术过程中,主刀大夫具有至高无上的权威:他说要打麻药,麻醉师就要赶紧打麻有至高无上的权威:他说要打麻药,麻醉师就要赶紧打麻药;他说需要手术钳,助理大夫就赶忙递给他手术钳;他药;他说需要手术钳,助理大夫就赶忙递给他手术钳;他说需要止血,护士就得马上拿止血药棉来止血。整个手术说需要止血,护士就得马上拿止血药棉来止血。整个手术最关键的部分:切开皮肤、拿掉器官、安装移植器官等均最关键的部分:切开皮肤、拿掉器官、安装移植器官等均由主刀大夫完成。当然,主刀大夫有时也会将某些任
6、务,由主刀大夫完成。当然,主刀大夫有时也会将某些任务,如缝合创口交给助理大夫来做,但整个手术的过程皆由其如缝合创口交给助理大夫来做,但整个手术的过程皆由其主控。一句话,主控。一句话, 就是掌控整个手术过程、具有精湛技术就是掌控整个手术过程、具有精湛技术和敏锐判断力的医师。和敏锐判断力的医师。 :操刀手,操控者。是操控掌控事情的人。:操刀手,操控者。是操控掌控事情的人。 从从 和和 这两个术语的语义我们可理解具有这两个术语的语义我们可理解具有“掌控掌控”的含的含义。因此,应该把义。因此,应该把 理解为:理解为: 掌控局势的一种系统掌控局势的一种系统这个术语是专为计算机系统设计的(),指的是计算机
7、系这个术语是专为计算机系统设计的(),指的是计算机系统里的一切事情均由来掌控。统里的一切事情均由来掌控。正如任何一种有效的组织或系统都会有一个核心机构正如任何一种有效的组织或系统都会有一个核心机构存在,该核心管理着该组织或系统的可用资源,掌控着系存在,该核心管理着该组织或系统的可用资源,掌控着系统的正常运转。就是计算机系统中的核心机构,它是计算统的正常运转。就是计算机系统中的核心机构,它是计算机软件精英们设计的一种大型和极其复杂的软件系统,用机软件精英们设计的一种大型和极其复杂的软件系统,用于代替人并以人的思维方式来自动管理计算机上的于代替人并以人的思维方式来自动管理计算机上的所有软、硬资源,
8、掌控在计算机系统上可能发生的一切事所有软、硬资源,掌控在计算机系统上可能发生的一切事情。情。那么,那么,操作系统到底是什么?操作系统到底是什么?操作系统到底掌控什么事情?操作系统到底掌控什么事情? 操作系统是一种大型系统软件操作系统是一种大型系统软件计算机软件有应用软件与系统软件之分。计算机软件有应用软件与系统软件之分。应用软件是计算机用户为了应用计算机解决某一特定应用软件是计算机用户为了应用计算机解决某一特定问题而开发的软件。问题而开发的软件。系统软件则是与具体应用逻辑无关的软件,是应用软系统软件则是与具体应用逻辑无关的软件,是应用软件的开发和运行平台。系统软件一般分为四类:件的开发和运行平
9、台。系统软件一般分为四类:操作操作系统;系统;语言处理系统(编译程序、解释程序);语言处理系统(编译程序、解释程序);软软件开发实用工具件开发实用工具 (编辑、调试、诊断检测、等程序);(编辑、调试、诊断检测、等程序);数据库管理系统()。其中,操作系统也称系统管理数据库管理系统()。其中,操作系统也称系统管理软件,其他则为系统应用软件。软件,其他则为系统应用软件。操作系统是规模最大的系统软件,如操作系统是规模最大的系统软件,如 4000万行源万行源代码,而一些系统的规模则更大,已达到上亿行源代码。代码,而一些系统的规模则更大,已达到上亿行源代码。 1. 操作系统到底是什操作系统到底是什么?么
10、? ?操作系统是系统软件中的核心操作系统是系统软件中的核心图图1-2是一个简略的计算机系统视图。从中可清楚地是一个简略的计算机系统视图。从中可清楚地看到计算机系统的层次结构。看到计算机系统的层次结构。硬件是操作系统存在的物质基础。硬件向软件提供的硬件是操作系统存在的物质基础。硬件向软件提供的是物理机器界面(),即机器的指令系统。是物理机器界面(),即机器的指令系统。操作系统是加在操作系统是加在“裸机裸机”(纯硬件)上的第一层软件(纯硬件)上的第一层软件(最底层软件),是直接建筑在硬件上的软件,它使用机(最底层软件),是直接建筑在硬件上的软件,它使用机器指令实现对硬件的管理和控制。操作系统常驻内
11、存,它器指令实现对硬件的管理和控制。操作系统常驻内存,它覆盖了所有的硬件特性和功能,通过各种抽象,构建了一覆盖了所有的硬件特性和功能,通过各种抽象,构建了一个功能远强于裸机且易用的个功能远强于裸机且易用的“操作系统虚拟机操作系统虚拟机”(如虚拟机、(如虚拟机、虚拟机)。操作系统向上层提供了两种界面:用户操作界虚拟机)。操作系统向上层提供了两种界面:用户操作界面(操作命令)和编程界面面(操作命令)和编程界面硬件硬件操作系统操作系统系统应用软件系统应用软件应用软件应用软件用户用户物理机器界面物理机器界面编程界面编程界面用户操作界面用户操作界面图图1-2 计算机系统视图计算机系统视图计算机系统计算机
12、系统(系统调用)。它们向上层掩盖了所有的硬件特性细节。(系统调用)。它们向上层掩盖了所有的硬件特性细节。系统应用软件处于操作系统的上层,它们不是常驻内系统应用软件处于操作系统的上层,它们不是常驻内存的,而是存放在磁盘等外存设备上,仅当需要运行这些存的,而是存放在磁盘等外存设备上,仅当需要运行这些软件时,才把它们加载到内存,并在操作系统的支持下工软件时,才把它们加载到内存,并在操作系统的支持下工作,通过系统调用获取操作系统提供的各种服务。系统应作,通过系统调用获取操作系统提供的各种服务。系统应用软件有效地扩充了计算机系统的功能,它与操作系统一用软件有效地扩充了计算机系统的功能,它与操作系统一起组
13、成系统软件整体,起到了简化程序设计、扩大计算机起组成系统软件整体,起到了简化程序设计、扩大计算机处理能力、提高计算机使用效率、充分发挥各种资源功能处理能力、提高计算机使用效率、充分发挥各种资源功能的作用。因此,可以把系统应用软件看作是操作系统的延的作用。因此,可以把系统应用软件看作是操作系统的延伸,甚至可把它们看作是操作系统的一部分(如发行版)。伸,甚至可把它们看作是操作系统的一部分(如发行版)。但是系统应用软件与操作系统的不同之处在于,其运行环但是系统应用软件与操作系统的不同之处在于,其运行环境与普通应用软件一样,它们仍然需要通过操作境与普通应用软件一样,它们仍然需要通过操作系统才能使用和控
14、制系统资源。系统才能使用和控制系统资源。计算机系统层次结构的最上层是应用软件。它们在系计算机系统层次结构的最上层是应用软件。它们在系统软件的支持下运行,通过系统调用获取各种系统软件的统软件的支持下运行,通过系统调用获取各种系统软件的服务。服务。用户在终端上通过输入各种操作命令(字符命令或图用户在终端上通过输入各种操作命令(字符命令或图形命令)使用操作系统虚拟机。形命令)使用操作系统虚拟机。可见,有了操作系统,用户和所有非操作系统程序不可见,有了操作系统,用户和所有非操作系统程序不再直接面对物理机器界面,而是面对操作系统提供的掩盖再直接面对物理机器界面,而是面对操作系统提供的掩盖了所有硬件特性细
15、节的虚拟机界面,通过这种虚拟机界面了所有硬件特性细节的虚拟机界面,通过这种虚拟机界面方便地使用功能被大大强化了的操作系统虚拟机。方便地使用功能被大大强化了的操作系统虚拟机。例如,如果用户在裸机上直接编程是很困难的,因为例如,如果用户在裸机上直接编程是很困难的,因为各种数据转移都需要用户自己来控制,对不同设备要用不各种数据转移都需要用户自己来控制,对不同设备要用不同命令来驱动,而这对一般人来说是很难胜任的。操作系同命令来驱动,而这对一般人来说是很难胜任的。操作系统将这些工作从用户手中接过来,从而让用户感觉到编程统将这些工作从用户手中接过来,从而让用户感觉到编程是一件容易的事(相对来说,而对有些人
16、来说编程永远是是一件容易的事(相对来说,而对有些人来说编程永远是很难的)。很难的)。又如,操作系统通过进程抽象让计算机的每一个用户又如,操作系统通过进程抽象让计算机的每一个用户感觉到有一台自己独享的;通过虚拟内存的抽象,让用户感觉到有一台自己独享的;通过虚拟内存的抽象,让用户感觉到物理内存空间具有无限扩张性。感觉到物理内存空间具有无限扩张性。总之,通过操作系统对裸机的各种抽象,可魔幻般地总之,通过操作系统对裸机的各种抽象,可魔幻般地实现:少变多、难变易、弱变强。实现:少变多、难变易、弱变强。操作系统是最基本的系统软件操作系统是最基本的系统软件 任何现代计算机都必须配置和安装操作系统。在一台任何
17、现代计算机都必须配置和安装操作系统。在一台计算机上你可以不安装某些系统应用软件,如语言处理系计算机上你可以不安装某些系统应用软件,如语言处理系统或,但操作系统是必须安装的,否则,计算机就根本无统或,但操作系统是必须安装的,否则,计算机就根本无法开始工作。计算机加电启动时,除了必要的硬件检测,法开始工作。计算机加电启动时,除了必要的硬件检测,首先将操作系统加载到内存并启动,此后,计算机系统的首先将操作系统加载到内存并启动,此后,计算机系统的一切工作都在操作系统的掌控下进行。一切工作都在操作系统的掌控下进行。作为最基本的系统软件,操作系统为所有的其它软件作为最基本的系统软件,操作系统为所有的其它软
18、件(包括系统应用软件)提供了一个开发和运行的基础平台,(包括系统应用软件)提供了一个开发和运行的基础平台,即所有的其他软件都需要在操作系统这个平台上进行开发,即所有的其他软件都需要在操作系统这个平台上进行开发,并在操作系统的掌控下运行,通过操作系统获取所需的计并在操作系统的掌控下运行,通过操作系统获取所需的计算机资源。没有操作系统任何软件都无法运行。算机资源。没有操作系统任何软件都无法运行。什么是抽象?所谓抽象(),就是根本上存在但现实中不存在的东西。抽象来源于具体,但又超越具体。例如绘画史上有抽象派,抽象画所表现的就是现实中不存在的东西,但这些东西确实又来源于现实。 抽象画抽象画01抽象画抽
19、象画02:毕加索:毕加索 格尔尼卡格尔尼卡 2. 操作系统到底掌控什么事情?操作系统到底掌控什么事情? 当然是计算机上或计算机里发生的一切事情。当然是计算机上或计算机里发生的一切事情。最原始的计算机并没有操作系统,而是直接由人来掌最原始的计算机并没有操作系统,而是直接由人来掌控事情。但是随着计算机复杂性的增长,人们已经不能直控事情。但是随着计算机复杂性的增长,人们已经不能直接掌控计算机了,于是人们编写出操作系统这个软件来掌接掌控计算机了,于是人们编写出操作系统这个软件来掌控计算机,将人类从日益复杂的任务中解脱出来。这个控计算机,将人类从日益复杂的任务中解脱出来。这个“掌控掌控”有着多层深远的意
20、义。有着多层深远的意义。首先,由于计算机的功能和复杂性不断发生变化(趋首先,由于计算机的功能和复杂性不断发生变化(趋向更加复杂),操作系统所掌控的事情也就越来越多,越向更加复杂),操作系统所掌控的事情也就越来越多,越来越复杂。同时,操作系统本身能够使用的资源也不断增来越复杂。同时,操作系统本身能够使用的资源也不断增多(如内存容量)。多(如内存容量)。?其次,既然操作系统是专门掌控计算机的,那么计算其次,既然操作系统是专门掌控计算机的,那么计算机上发生的所有事情自然需要操作系统的知晓和许可,未机上发生的所有事情自然需要操作系统的知晓和许可,未经操作系统同意的任何事情均视为非法,包括用户和应用经操
21、作系统同意的任何事情均视为非法,包括用户和应用程序中的误操作,以及病毒和入侵攻击试图运作的事情。程序中的误操作,以及病毒和入侵攻击试图运作的事情。操作系统设计人员当然要确保计算机不发生任何他们不知操作系统设计人员当然要确保计算机不发生任何他们不知情或不同意的事情。虽然,操作系统是由级软件精英们设情或不同意的事情。虽然,操作系统是由级软件精英们设计的,但是人的能力毕竟是有限的,人的思维也是有缺陷计的,但是人的能力毕竟是有限的,人的思维也是有缺陷的,只要是由人设计出的系统自然不会十全十美,缺陷是的,只要是由人设计出的系统自然不会十全十美,缺陷是难免的,这就给了攻击者可乘之机。操作系统设计人员与难免
22、的,这就给了攻击者可乘之机。操作系统设计人员与攻击者之间的博弈是当前驱动操作系统不断改善的一个重攻击者之间的博弈是当前驱动操作系统不断改善的一个重要动力。要动力。再次,掌控事情的水平有高低之分,有效率不同之分再次,掌控事情的水平有高低之分,有效率不同之分,就像外科主刀大夫之间也有水平高低之分。为了更好地,就像外科主刀大夫之间也有水平高低之分。为了更好地掌控事情,更好地满足人们永不满足的各种越来越苛刻的掌控事情,更好地满足人们永不满足的各种越来越苛刻的需求,操作系统自然需要不断改善,且将一直继续下去。需求,操作系统自然需要不断改善,且将一直继续下去。归结起来,操作系统掌控的事情主要有两大类:资源
23、归结起来,操作系统掌控的事情主要有两大类:资源管理和安全性管理。管理和安全性管理。操作系统管理计算机中的所有资源,包括硬件资源操作系统管理计算机中的所有资源,包括硬件资源(设备资源)和软件资源(信息资源)。硬件资源可大致(设备资源)和软件资源(信息资源)。硬件资源可大致分为四类:、内存、外存及设备。操作系统通过各种策略分为四类:、内存、外存及设备。操作系统通过各种策略提高硬件资源的工作效率和利用率,改善和优化计算机的提高硬件资源的工作效率和利用率,改善和优化计算机的功能和性能。软件资源就是存储在计算机内的各种文件,功能和性能。软件资源就是存储在计算机内的各种文件,操作系统要对文件实施有效的保护
24、,提供快速的文件查找,操作系统要对文件实施有效的保护,提供快速的文件查找,通过共享提高文件资源的利用率。通过共享提高文件资源的利用率。安全性管理功能主要解决两个问题:安全性管理功能主要解决两个问题:(1) 确保操作系统自身的正常运转,即确保操作系统确保操作系统自身的正常运转,即确保操作系统自己不能出现崩溃性故障,这是计算机系统能正常工作的自己不能出现崩溃性故障,这是计算机系统能正常工作的基础;基础; (2) 防止非法操作和非法入侵,主要是防止病毒和入防止非法操作和非法入侵,主要是防止病毒和入侵攻击。侵攻击。其中的第二个问题是是安全性管理需要解决的主要问其中的第二个问题是是安全性管理需要解决的主
25、要问题。随着计算机应用的越来越广泛和深入,操作系统需要题。随着计算机应用的越来越广泛和深入,操作系统需要管理的资源也越来越多且越来越复杂,故对操作系统的要管理的资源也越来越多且越来越复杂,故对操作系统的要求也越来越高。由于操作系统存在缺陷是难免的,这就给求也越来越高。由于操作系统存在缺陷是难免的,这就给了攻击者可乘之机。针对对操作系统的攻击,操作系统设了攻击者可乘之机。针对对操作系统的攻击,操作系统设计人员在不断改进操作系统的安全性,这种操作系统设计计人员在不断改进操作系统的安全性,这种操作系统设计人员与攻击者之间的博弈,使得操作系统安全水平和攻击人员与攻击者之间的博弈,使得操作系统安全水平和
26、攻击水平不断交替上升,永不会停止。如今安全性管理越来越水平不断交替上升,永不会停止。如今安全性管理越来越受到操作系统设计人员的重视,其重要性越来越突出。受到操作系统设计人员的重视,其重要性越来越突出。如果我们把整个计算机系统比拟成一个国家的话,操如果我们把整个计算机系统比拟成一个国家的话,操作系统就相当于是管理整个国家的政府,是国家最高的政作系统就相当于是管理整个国家的政府,是国家最高的政务管理机构。务管理机构。 好了,至此我们可以给出操作系统的一个定义了:好了,至此我们可以给出操作系统的一个定义了:操作系统是最关键的系统软件,它掌控计算机上的操作系统是最关键的系统软件,它掌控计算机上的一切事
27、情,包括:管理所有的计算机资源,维持计算机系一切事情,包括:管理所有的计算机资源,维持计算机系统的安全及有序运转,并为用户使用计算机提供方便且有统的安全及有序运转,并为用户使用计算机提供方便且有效的环境。效的环境。1.2 操作系统的资源管理功能操作系统的资源管理功能资源管理是操作系统的主要功能,它遵循着一切人类资源管理的基本目的,即如何有效地发掘资源、监控资源、分配资源和回收资源,而其中的核心是分配资源。公平和有效,是操作系统资源管理的基本原则。公平指的是每个用户进程(进展运行中的程序)都有享有系统资源的权利(就像“天赋人权”),系统要让各个用户进程感到某种平等,即系统不能“无限”延长对任一进
28、程的资源请求的响应时间。当然真正的公平是没有的事,这很像人类生活的现实,不过追求公平乃是人类的本能,是观。只有公平了,才能谈得上公正与和谐。在虚拟世界里尽可能公平一点还是非常应该的,至少应该是操作系统设计时的不懈追求。有效就是指不能浪费系统资源,要使资源尽可能被充有效就是指不能浪费系统资源,要使资源尽可能被充分地利用,发挥出每个资源的最大效能。有效也为公平提分地利用,发挥出每个资源的最大效能。有效也为公平提供了必要的支持。这同样也像人类生活的现实,一个社会供了必要的支持。这同样也像人类生活的现实,一个社会国家如果存在着大量的资源浪费,而浪费必定和腐败联国家如果存在着大量的资源浪费,而浪费必定和
29、腐败联系在一起,一个腐败成风的社会能是一个公平、公正的社系在一起,一个腐败成风的社会能是一个公平、公正的社会吗?会吗?总之,公平与效率是操作系统资源管理中永恒的主题。总之,公平与效率是操作系统资源管理中永恒的主题。到底是效率重要?还是公平更重要?天平的不同倾斜将引到底是效率重要?还是公平更重要?天平的不同倾斜将引出不同的管理模式。出不同的管理模式。操作系统的资源管理功能一般分为四个子系统:进程操作系统的资源管理功能一般分为四个子系统:进程管理、内存管理、外存管理及设备管理。管理、内存管理、外存管理及设备管理。 1. 进程管理进程管理进程()可简单地理解为进程()可简单地理解为“运行中的程序运行
30、中的程序”,其实质是操作系统对的抽象。,其实质是操作系统对的抽象。进程管理的主要目的有三个:第一是公平分配,即每个进程都有机会使用到;进程管理的主要目的有三个:第一是公平分配,即每个进程都有机会使用到;第二是非阻塞,即任何进程不能无休止地阻挠其他进程的正常推进,如果一个第二是非阻塞,即任何进程不能无休止地阻挠其他进程的正常推进,如果一个进程在执行过程中需要或者因别的什么事情而发生阻塞,这个阻塞不能妨碍无进程在执行过程中需要或者因别的什么事情而发生阻塞,这个阻塞不能妨碍无关进程继续前进,就像人类世界,缺了谁地球都照样转;第三是优先级调度,关进程继续前进,就像人类世界,缺了谁地球都照样转;第三是优
31、先级调度,在人类生活中人的地位不是完全一样的,地位高的就比地位低的具有更高的资在人类生活中人的地位不是完全一样的,地位高的就比地位低的具有更高的资源获取权及占有权,设计者把人类生活中的这种关系搬到操作系统里面,就有源获取权及占有权,设计者把人类生活中的这种关系搬到操作系统里面,就有了优先级的概念,即赋予某些进程有较高的优先级,如果优先级高的进程需要了优先级的概念,即赋予某些进程有较高的优先级,如果优先级高的进程需要执行,则优先级低的进程就要让出。执行,则优先级低的进程就要让出。2. 内存管理内存管理内存管理一般是管理由主存和缓存所形成的内存架构。为了有力地支持多进程并发以及应用程序不断增大的需
32、求,设计者发明了虚拟内存的概念,即通过软件技术将物理内存逻辑扩充到磁盘上,这样就极大地增大了物理内存空间。因此,现代操作系统管理的实际上是由主存、缓存及磁盘所形成的虚拟内存架构。内存管理要解决的问题之一是如何给不同的用户进程分配内存空间;要解决的另一个问题是怎样让很多用户进程共用同一个物理内存,这就需要对物理内存进行分割和保护,每个进程占用一个受保护的内存空间,一个进程不能访问另一个进程所占用的内存空间,即进程不能越界。 3. 外存管理外存管理外存管理也称文件系统管理或文件管理。文件系统是操作系统对外存介质(磁盘、磁带、光盘)的抽象。文件则是对外存空间单位的抽象。外存管理要解决的的问题之一是如
33、何分配外存空间给不同的进程。要解决的另一个问题是怎样将外存变成一个很容易使用的存储介质提供给用户使用,使得用户在访问外存时无需了解外存设备的物理属性或程序和数据在外存空间上的精确位置,例如磁盘上的磁道、磁柱、扇区等。磁盘是最重要的外存介质,是外存管理的重点。4. 设备管理设备管理设备管理就是管理设备,其主要目的有三个:设备管理就是管理设备,其主要目的有三个:其一,解决如何给不同的进程分配设备;其一,解决如何给不同的进程分配设备;其二,屏蔽不同设备的差异性,即使得进程可以用同其二,屏蔽不同设备的差异性,即使得进程可以用同样的方式访问不同的设备,从而降低编程的难度;样的方式访问不同的设备,从而降低
34、编程的难度;其三,提供并发访问,即将那些看上去并不具备共享其三,提供并发访问,即将那些看上去并不具备共享特性的设备(如打印机)变得可以共享。特性的设备(如打印机)变得可以共享。1.3 为什么要学习操作系统为什么要学习操作系统我们已明确了的重要性,但仅仅因为很重要就一定要我们已明确了的重要性,但仅仅因为很重要就一定要学习它吗?世界上重要的事情多去了,难道我们都要学习学习它吗?世界上重要的事情多去了,难道我们都要学习吗?即使是计算机专业的学生,不学也照样可以编程写软吗?即使是计算机专业的学生,不学也照样可以编程写软件。那我们为什么要学呢?当然我们可以有一千个理由,件。那我们为什么要学呢?当然我们可
35、以有一千个理由,在这里仅提出两个。在这里仅提出两个。1) 都是由软件界中的精英们开发的,它的优秀设计都是由软件界中的精英们开发的,它的优秀设计和经典思路是计算机科学知识的荟精集萃,会给我们以激和经典思路是计算机科学知识的荟精集萃,会给我们以激浊扬清的思考,对的掌握程度,决定着计算机专业学习者浊扬清的思考,对的掌握程度,决定着计算机专业学习者的发展水平及方向。的发展水平及方向。举例说:举例说: 的功能在很多的功能在很多 领域都使用。如果你做并发程序的领域都使用。如果你做并发程序的开发开发 、分布式系统和网络、分布式系统和网络 ,你会发现,这些领域大,你会发现,这些领域大量使用了的概念和技术。如果
36、你学好了,你就可以对你要量使用了的概念和技术。如果你学好了,你就可以对你要做的事情更加有信心。做的事情更加有信心。 的技巧也在很多领域使用,如抽象、缓存、并发的技巧也在很多领域使用,如抽象、缓存、并发等。如数据结构和程序设计就大量使用了抽象,记得抽象等。如数据结构和程序设计就大量使用了抽象,记得抽象数据类型和抽象类吗?很多地方都用缓存,你做要不要用数据类型和抽象类吗?很多地方都用缓存,你做要不要用缓存呢?这些你都得做。如果学好了,你就掌握了这些内缓存呢?这些你都得做。如果学好了,你就掌握了这些内容,触类旁通,你学习别的东西时就会容易多了。容,触类旁通,你学习别的东西时就会容易多了。2) 更重要
37、的是真的很有意思。对于一个计算机专业更重要的是真的很有意思。对于一个计算机专业的人来说,难道你不想知道自己写的程序到底是如何在计的人来说,难道你不想知道自己写的程序到底是如何在计算机上运行的吗?算机上运行的吗?很多人买车后第一件事是什么?打开前盖。打开前盖很多人买车后第一件事是什么?打开前盖。打开前盖看到的是什么呢?马达、变速箱。为什么第一件事要打开看到的是什么呢?马达、变速箱。为什么第一件事要打开前盖呢?因为好奇这辆车是怎么开动的。前盖呢?因为好奇这辆车是怎么开动的。那么,对于一个计算机特别是软件专业的人来说,有那么,对于一个计算机特别是软件专业的人来说,有没有在看到一台计算机的时候,想过为
38、什么计算机能进行没有在看到一台计算机的时候,想过为什么计算机能进行计算?为什么计算机系统能有条不紊的运转?多数人恐怕计算?为什么计算机系统能有条不紊的运转?多数人恐怕没有打开过计算机外壳。不过,没有打开过也不用遗憾,没有打开过计算机外壳。不过,没有打开过也不用遗憾,因为即使你把计算机后盖打开,还是不能明白计算机是怎因为即使你把计算机后盖打开,还是不能明白计算机是怎么运转的,此时只看到一堆硬件:主板、芯片、布线等,么运转的,此时只看到一堆硬件:主板、芯片、布线等,而这些硬件并不会告诉你太多有关计算机运转的信息。如而这些硬件并不会告诉你太多有关计算机运转的信息。如果真的想知道计算机系统到底是怎么运
39、转的,你就得学习。果真的想知道计算机系统到底是怎么运转的,你就得学习。虽然学习很有趣,但并不是所有人都有这样的感觉,虽然学习很有趣,但并不是所有人都有这样的感觉,因为的特点是概念多、抽象和涉及面广,而从整体实现上因为的特点是概念多、抽象和涉及面广,而从整体实现上看,其思想和技术又往往令看,其思想和技术又往往令“我们我们”难于理解。历史证明,难于理解。历史证明,对很多人来说学习是一件很痛苦的事情。不过本人希望我对很多人来说学习是一件很痛苦的事情。不过本人希望我们在一起学习这门课程对大家来说是一件乐事,难道窥探们在一起学习这门课程对大家来说是一件乐事,难道窥探计算机系统的奥秘不是一件激动人心的事吗
40、?计算机系统的奥秘不是一件激动人心的事吗?2 操作系统的形成与发展操作系统的形成与发展操作系统的发展历史操作系统的发展历史 操作系统的分类操作系统的分类 操作系统的未来发展趋势操作系统的未来发展趋势2.1 操作系统的发展历史操作系统的发展历史 操作系统的形成与发展由两个基本因素驱动:操作系统的形成与发展由两个基本因素驱动:硬件成本的不断下降;硬件成本的不断下降;计算机的功能和复杂性不断提升。计算机的功能和复杂性不断提升。硬件成本的不断降低,就以硬盘为例,制造的第一张硬件成本的不断降低,就以硬盘为例,制造的第一张硬磁盘直径达硬磁盘直径达2米,造价米,造价100多万美元,而容量只有多万美元,而容量
41、只有1;而;而现在一个容量现在一个容量100的硬盘成本只有几十美元。当然,过去的硬盘成本只有几十美元。当然,过去的硬盘和今天的硬盘的制造技术完全不同,早期硬盘的质的硬盘和今天的硬盘的制造技术完全不同,早期硬盘的质量坚挺,可以当作咖啡桌来使用,而现在的硬盘片根本不量坚挺,可以当作咖啡桌来使用,而现在的硬盘片根本不能承受重物。能承受重物。计算机硬件及其组成的发展速度从一开始就很惊人。计算机硬件及其组成的发展速度从一开始就很惊人。最初,计算机的组件虽然巨大,但数量少,功能简单,现最初,计算机的组件虽然巨大,但数量少,功能简单,现在,一台计算机里包括的元件数量实在是太多了。在,一台计算机里包括的元件数
42、量实在是太多了。 硬件成本的下降和计算机复杂性的提高推动了操作系硬件成本的下降和计算机复杂性的提高推动了操作系统的演变。成本降低意味着同样的价格可以买到更为先进统的演变。成本降低意味着同样的价格可以买到更为先进的计算机。而计算机复杂性的提高自然需要操作系统的能的计算机。而计算机复杂性的提高自然需要操作系统的能力也得到提高。就是这些变化使得操作系统从最初的仅仅力也得到提高。就是这些变化使得操作系统从最初的仅仅只有几百或几千行源代码发展到今天的多达几千万行到上只有几百或几千行源代码发展到今天的多达几千万行到上亿行源代码。亿行源代码。操作系统之所以越来越复杂的基本因素是因为硬件质操作系统之所以越来越
43、复杂的基本因素是因为硬件质量和数量的不断提升使得操作系统管理的东西增多,而且量和数量的不断提升使得操作系统管理的东西增多,而且人类永不满足的各种越来越苛刻的要求也使得操作系统的人类永不满足的各种越来越苛刻的要求也使得操作系统的复杂性不断增加。复杂性不断增加。除了上述两个基本驱动因素,在操作系统的发展过程除了上述两个基本驱动因素,在操作系统的发展过程中,中, 效率和公平始终是操作系统设计人员追求的关键目效率和公平始终是操作系统设计人员追求的关键目标,它们是导致操作系统越来越复杂的重要因素。标,它们是导致操作系统越来越复杂的重要因素。 另外,还有一个附加因素影响着操作系统的发展,另外,还有一个附加
44、因素影响着操作系统的发展,这就是操作系统和攻击者之间的博弈。这个世界上总有些这就是操作系统和攻击者之间的博弈。这个世界上总有些人想利用计算机的缺陷来进行各种损人利己或损人又不利人想利用计算机的缺陷来进行各种损人利己或损人又不利己的活动。操作系统在最初设计时就根本没有想到会有人己的活动。操作系统在最初设计时就根本没有想到会有人从事破坏活动。大概因为早期的计算机工作者认为到达能从事破坏活动。大概因为早期的计算机工作者认为到达能够使用计算机的水平的人都是好人,是君子,是绅士,无够使用计算机的水平的人都是好人,是君子,是绅士,无需设计任何安全机制。这样,在后来发现有人试图利用计需设计任何安全机制。这样
45、,在后来发现有人试图利用计算机进行不良操作时,就迫不得已修改操作系统,使其具算机进行不良操作时,就迫不得已修改操作系统,使其具有安全上的防范功能。每当操作系统改进了安全性,攻击有安全上的防范功能。每当操作系统改进了安全性,攻击者也会改良他们的攻击手段,这样循环往复,就造成操作者也会改良他们的攻击手段,这样循环往复,就造成操作系统安全水平和攻击水平不断交替上升的历史。系统安全水平和攻击水平不断交替上升的历史。 第零代:操作系统(第零代:操作系统(2020世纪世纪4040年代)年代) ( , 单操作员单控制台)控制方式是最原始的计算机单操作员单控制台)控制方式是最原始的计算机控制方式,用于第一代电
46、子计算机,如。当时并没有操作控制方式,用于第一代电子计算机,如。当时并没有操作系统的整体概念,人们能够想到的最直观的控制计算机的系统的整体概念,人们能够想到的最直观的控制计算机的方式,就是提供一些标准的人机交互命令供用户(当时的方式,就是提供一些标准的人机交互命令供用户(当时的用户既是编程者也是操作员)使用,这些标准命令的集合用户既是编程者也是操作员)使用,这些标准命令的集合就构成了标准函数库。这可认为是操作系统的最原始形式。就构成了标准函数库。这可认为是操作系统的最原始形式。的设计目的就是满足基本的功能,并提供人机交互。的设计目的就是满足基本的功能,并提供人机交互。在下,任何时候只能做一件事
47、。即不支持并发和多道程序在下,任何时候只能做一件事。即不支持并发和多道程序运行。本身只是一组标准库函数而已,并不自我运行,而运行。本身只是一组标准库函数而已,并不自我运行,而是等待响应用户输入的命令,然后加载相应的库函数来执是等待响应用户输入的命令,然后加载相应的库函数来执行。用户想使用什么服务,就输入代表行。用户想使用什么服务,就输入代表该服务的库函数名即可。这种控制方式的资源利用率很低:该服务的库函数名即可。这种控制方式的资源利用率很低:用户输入一个命令就执行一个库函数,拨一下动一下;当用户输入一个命令就执行一个库函数,拨一下动一下;当用户在思考时或进行输入输出时,则静静地等待。当然了,用
48、户在思考时或进行输入输出时,则静静地等待。当然了,从人的角度来看,效率并不低,你输入什么,计算机就立从人的角度来看,效率并不低,你输入什么,计算机就立即执行什么。但从机器的角度考虑,因为时刻都等着人相即执行什么。但从机器的角度考虑,因为时刻都等着人相对很慢的动作,效率就太低了。对很慢的动作,效率就太低了。由于这个时代的计算机很稀少,整个世界也只有几台,由于这个时代的计算机很稀少,整个世界也只有几台,而人却不是,提高计算机的利用率就变得十分重要。而人却不是,提高计算机的利用率就变得十分重要。第一代:批处理操作系统(第一代:批处理操作系统(2020世纪世纪5050年代)年代)为了提高的效率,人们提
49、出了为了提高的效率,人们提出了“批处理批处理”的概念。在的概念。在仔细考察了后,人们发现,效率之所以低下,是因为计算仔细考察了后,人们发现,效率之所以低下,是因为计算机总是在等待人的下一步动作,而人的动作总是很慢。因机总是在等待人的下一步动作,而人的动作总是很慢。因此,人们觉得如果取消人的因素,让所有的用户先想好自此,人们觉得如果取消人的因素,让所有的用户先想好自己要运行的命令,列成一个清单(称作业说明书),再把己要运行的命令,列成一个清单(称作业说明书),再把要运行的程序、数据连同作业说明书一起制作(穿孔)在要运行的程序、数据连同作业说明书一起制作(穿孔)在纸带卡片上,然后将制作好的纸带卡片
50、交给计算机管纸带卡片上,然后将制作好的纸带卡片交给计算机管理员来一批一批地处理,效率不就提高了吗?这就形成了理员来一批一批地处理,效率不就提高了吗?这就形成了批处理操作系统。批处理操作系统。批处理针对的是第二代通用计算机,如的批处理针对的是第二代通用计算机,如的1401和和7094等,通过取消用户与计算机的直接人机交互达到和等,通过取消用户与计算机的直接人机交互达到和输入输出设备利用率的改善。输入输出设备利用率的改善。批处理的过程是:用户将自己的作业(程序数据作业说明书)制作在穿孔卡片纸带上,交给计算机管理员;管理员在收到一定数量的用户作业后,将卡片纸带上的作业通过输入输出卫星机1401读入,
51、并写入到磁带(输入磁带)上,这样每盘输入磁带通常会含有多个用户作业;然后,计算机操作员将这盘磁带装入到作为主机的7094上,由驻留在7094上的批处理监控程序( )顺序解释执行各用户作业,实现了作业之间的自动切换,作业运行的结果被写入另一个磁带(输出磁带)上;所有的用户作业运行结束后,将输出磁带取下来,装到卫星机1401上进行结果打印;然后就可以将打印结果交给各个用户了。图1-3描述了批处理的过程。图图1-3 1-3 批处理系统示意图批处理系统示意图批处理监控程序和原先就有的标准函数库就组成批处理监控程序和原先就有的标准函数库就组成了批处理操作系统。(不过,那时还没有出现了批处理操作系统。(不
52、过,那时还没有出现“操作操作系统系统”这个术语)这个术语)很显然,批处理操作系统的功能和复杂性较之均很显然,批处理操作系统的功能和复杂性较之均得到了提升。得到了提升。批处理操作系统开始具备了初步的系统管理功能:批处理操作系统开始具备了初步的系统管理功能:设备管理设备管理读卡机、磁带机、打印机等设备读卡机、磁带机、打印机等设备的驱动;的驱动;文件管理文件管理首次引入了文件概念,每个用户首次引入了文件概念,每个用户作业被抽象成一个文件;作业被抽象成一个文件;解释执行作业说明书;解释执行作业说明书;实现各用户作业之间的自动切换。实现各用户作业之间的自动切换。批处理操作系统一般被认为是操作系统的雏形,
53、后也批处理操作系统一般被认为是操作系统的雏形,后也被称之为单道批处理操作系统,一般把它称之为第一代操被称之为单道批处理操作系统,一般把它称之为第一代操作系统。作系统。其重要实例有开发的和,密歇根大学开发的,分别运其重要实例有开发的和,密歇根大学开发的,分别运行于行于7090和和7094。驱动这个阶段操作系统发展的动力是改善效率。因为驱动这个阶段操作系统发展的动力是改善效率。因为机器的昂贵,使得在操作员思考或设备工作期间闲置起来机器的昂贵,使得在操作员思考或设备工作期间闲置起来是难以容忍的。是难以容忍的。第二代:多道批处理操作系统(第二代:多道批处理操作系统(2020世纪世纪6060年代)年代)
54、 虽然批处理操作系统通过无需人机交互过程而在一定虽然批处理操作系统通过无需人机交互过程而在一定程度上提高了计算机的效率,但还是不那么令人满意。因程度上提高了计算机的效率,但还是不那么令人满意。因为,它只支持一个用户作业进入内存运行,且和设备的运为,它只支持一个用户作业进入内存运行,且和设备的运行是串行的,即在程序进行输入输出时,只能等待,需要行是串行的,即在程序进行输入输出时,只能等待,需要不断地探询是否完成,因而不能执行别的程序。由于昂贵不断地探询是否完成,因而不能执行别的程序。由于昂贵的的速度要远远高于设备,故常常处于闲置状态,其浪费的的速度要远远高于设备,故常常处于闲置状态,其浪费是很大
55、的。是很大的。 为此,人们又设想,能否将和设备并行工作呢?即在为此,人们又设想,能否将和设备并行工作呢?即在一个程序进行输入输出时,让去执行另一个程序,换言之,一个程序进行输入输出时,让去执行另一个程序,换言之,能否将和设备的运行重叠起来从而改善整个计算机系统的能否将和设备的运行重叠起来从而改善整个计算机系统的效率呢?答案是肯定的,不过需要付出代价,因为和重叠效率呢?答案是肯定的,不过需要付出代价,因为和重叠需要我们将多个程序同需要我们将多个程序同时加载到计算机内存里,由此,引出了多道程序设计()时加载到计算机内存里,由此,引出了多道程序设计()的思想。的思想。 多道程序设计是指允许多个程序同
56、时进入计算机内存多道程序设计是指允许多个程序同时进入计算机内存并发运行的方法。也就是说,计算机内存中可同时存放多并发运行的方法。也就是说,计算机内存中可同时存放多道(两个或以上)相互独立的程序,它们均处于起点和终道(两个或以上)相互独立的程序,它们均处于起点和终点之间,通过操作系统的调度使各道程序轮流交替地使用。点之间,通过操作系统的调度使各道程序轮流交替地使用。当现行程序启动并需要等待的完成时,操作系统可立即调当现行程序启动并需要等待的完成时,操作系统可立即调度去执行另一个驻留在内存中的程序,使得与设备并行工度去执行另一个驻留在内存中的程序,使得与设备并行工作,利用这种多部件的并行工作,使系
57、统可同时运行多个作,利用这种多部件的并行工作,使系统可同时运行多个不同的程序。从而可大大减少的闲置时间,充分提高了的不同的程序。从而可大大减少的闲置时间,充分提高了的利用率。利用率。例如,假设一个程序用例如,假设一个程序用20%的时间使用进行计算,的时间使用进行计算,另外另外80%的时间用来进行。则在单道系统中,的利用率的时间用来进行。则在单道系统中,的利用率只有只有20%;但如果同时运行两个这样的程序,则的利用;但如果同时运行两个这样的程序,则的利用率将提高到率将提高到36%(只在两个程序同时进行时才处于闲置(只在两个程序同时进行时才处于闲置状态,因此的利用率为状态,因此的利用率为10.80
58、.8 = 36%),这里忽略了程序切换所需要的),这里忽略了程序切换所需要的系统开销。同理,如果同时运行系统开销。同理,如果同时运行3个这样的程序,利用率个这样的程序,利用率将提高到将提高到48.8%;4个程序的利用率将为个程序的利用率将为59%;5个程个程序的利用率将为序的利用率将为67.2%。这样,随着程序道数的增加,。这样,随着程序道数的增加,利用率将逐步提升,直到某个临界点为止。这个临界点利用率将逐步提升,直到某个临界点为止。这个临界点就是多道程序设计的上限,超过这个上限,多道程序设就是多道程序设计的上限,超过这个上限,多道程序设计的好处将逐步消失,甚至呈下降趋势。计的好处将逐步消失,
59、甚至呈下降趋势。图图1-4 1-4 多道编程度数、时间和利用率的关系多道编程度数、时间和利用率的关系将多道程序设计思想引入到批处理操作系统便形成了将多道程序设计思想引入到批处理操作系统便形成了多道批处理操作系统。多道批处理操作系统。 显而易见,比起简单批处理多道显而易见,比起简单批处理多道批处理操作系统的功能要强得多,但也要复杂得多:既批处理操作系统的功能要强得多,但也要复杂得多:既要管理多个作业,又要管理内存,还要管理调度。但多要管理多个作业,又要管理内存,还要管理调度。但多道批处理操作系统构建了操作系统的基本架构,奠定了道批处理操作系统构建了操作系统的基本架构,奠定了操作系统的基本理论,操
60、作系统也因此而成就了一门独操作系统的基本理论,操作系统也因此而成就了一门独立学科。立学科。驱动多道批处理操作系统的问世及发展的动力仍然是驱动多道批处理操作系统的问世及发展的动力仍然是改善效率。因为当时的非常昂贵,人们不能容忍在设备改善效率。因为当时的非常昂贵,人们不能容忍在设备工作期间被闲置下来。同时,用户对计算机的需求也开工作期间被闲置下来。同时,用户对计算机的需求也开始多了起来,从纯粹的科学计算发展到商业应用。因此,始多了起来,从纯粹的科学计算发展到商业应用。因此,这个阶段还伴随着满足用户不断增长的需求。这个阶段还伴随着满足用户不断增长的需求。蓝色巨人对多道批处理操作系统的问世作出了巨大贡
61、蓝色巨人对多道批处理操作系统的问世作出了巨大贡献。献。在在1961年年底,开始实施年年底,开始实施“360系统电子计算机计划系统电子计算机计划”,整个计划投资约,整个计划投资约50亿美元(而亿美元(而“曼哈顿工程曼哈顿工程”才花了才花了20亿),超过了当时一年的产值。在人力上,光软件工程亿),超过了当时一年的产值。在人力上,光软件工程师就投入了师就投入了2000多名。多名。在实施在实施360计划时,首次正式提出了计划时,首次正式提出了 这个术语,并这个术语,并开发出了一个真正的多道批处理操作系统开发出了一个真正的多道批处理操作系统 360,这是一个,这是一个不仅从理念上也从技术上都是划时代的操
62、作系统,是操作不仅从理念上也从技术上都是划时代的操作系统,是操作系统发展史上的一个里程碑。随着系统发展史上的一个里程碑。随着360的问世,诞生了一的问世,诞生了一批崭新的概念和术语,如:多道程序设计、任务(进程)、批崭新的概念和术语,如:多道程序设计、任务(进程)、调度、并发、作业管理、调度、并发、作业管理、管理、内存管理、设备管理、文件管理等,它们构成了管理、内存管理、设备管理、文件管理等,它们构成了操作系统理论的基础。同时,计算机应用从纯科学计算操作系统理论的基础。同时,计算机应用从纯科学计算应用开始进入了商业应用。应用开始进入了商业应用。图灵奖获得者(图灵奖获得者(1999) 图图1-5
63、 360总设计师总设计师 第三代之一:分时操作系统(第三代之一:分时操作系统(2020世纪世纪7070年年代)代)多道批处理操作系统的出现使计算机的效率(主要多道批处理操作系统的出现使计算机的效率(主要是吞吐量)大大提高。但它的一大问题是用户是是吞吐量)大大提高。但它的一大问题是用户是“脱机脱机”( )使用计算机的,用户无法即时获知其程序的运行)使用计算机的,用户无法即时获知其程序的运行结果。想想如果你编了一个程序,却需要别人去运行,结果。想想如果你编了一个程序,却需要别人去运行,并可能要等上若干天才能知道结果,这个滋味显然不好并可能要等上若干天才能知道结果,这个滋味显然不好受。万一计算机管理
64、员疏忽了,忘记运行你的作业,或受。万一计算机管理员疏忽了,忘记运行你的作业,或者操作错误,导致程序丢失,情况就更糟。另外,脱机者操作错误,导致程序丢失,情况就更糟。另外,脱机性也大大限制了计算机的商业性应用。性也大大限制了计算机的商业性应用。为此,人们又设想,能否让用户回到计算机前面来,为此,人们又设想,能否让用户回到计算机前面来,由每个用户自己操作和控制自己的程序。由每个用户自己操作和控制自己的程序。随着符号键盘、显示器等计算机终端设备的问世,随着符号键盘、显示器等计算机终端设备的问世,人们的这种设想的实现成为了可能。人们的这种设想的实现成为了可能。批处理系统是对的否定,而这种想法的提出是对
65、的批处理系统是对的否定,而这种想法的提出是对的否定之否定。人的因素又引了回来,这看上去与原始的否定之否定。人的因素又引了回来,这看上去与原始的似乎一样,但有个关键的不同:多个用户同时与计算机似乎一样,但有个关键的不同:多个用户同时与计算机联机(),每个用户被看作只是一个终端而已。即每个联机(),每个用户被看作只是一个终端而已。即每个用户都拥有一个联机终端(显示器键盘),它们都通用户都拥有一个联机终端(显示器键盘),它们都通过过232串行线缆与计算机主机连接,终端只能发送和接串行线缆与计算机主机连接,终端只能发送和接收有限的文本命令和信息。操作系统在所有的联机用户收有限的文本命令和信息。操作系统
66、在所有的联机用户之间进行分时,即一次分给一个用户进程有限的时间之间进行分时,即一次分给一个用户进程有限的时间时间片,只要时间片一完,就立即切换一个用户进程,时间片,只要时间片一完,就立即切换一个用户进程,给该进程分配一个时间片。就是基于这种基本思想,引给该进程分配一个时间片。就是基于这种基本思想,引来了第三代操作系统来了第三代操作系统分时操作系统。分时操作系统。在分时操作系统下,任意时间可以运行多个程序,且在分时操作系统下,任意时间可以运行多个程序,且用户直接与计算机交互,现场调试程序,这就和不一样了。用户直接与计算机交互,现场调试程序,这就和不一样了。在下,一切等着人,计算机执行一条命令就等
67、人。分时系在下,一切等着人,计算机执行一条命令就等人。分时系统则是人等计算机。这个模式带来一个直接的结果就是计统则是人等计算机。这个模式带来一个直接的结果就是计算机再不用等你,等你想问题时机器就切换到别的程序,算机再不用等你,等你想问题时机器就切换到别的程序,等你想完了机器再切换回来,接受你的再次输入。就这样,等你想完了机器再切换回来,接受你的再次输入。就这样,计算机就在很多人之间来回切换,你输入个命令就响应,计算机就在很多人之间来回切换,你输入个命令就响应,然后切换走。如果时间掌握的好,用户输入完一个命令计然后切换走。如果时间掌握的好,用户输入完一个命令计算机正好转回来,用户就没有等待的感觉
68、。当然,如果一算机正好转回来,用户就没有等待的感觉。当然,如果一个用户打字足够快,可能会觉得计算机慢;如果打字较慢,个用户打字足够快,可能会觉得计算机慢;如果打字较慢,就有可能觉得计算机很快。不同的人感觉有可能完全不同。就有可能觉得计算机很快。不同的人感觉有可能完全不同。图图1-6 分时系统示意图分时系统示意图显然,与前面几代的操作系统相比,分时操作系统要显然,与前面几代的操作系统相比,分时操作系统要复杂得多。相比于多道批处理操作系统,最主要的变化复杂得多。相比于多道批处理操作系统,最主要的变化是资源的公平管理。在多道批处理下,公平不公平没有是资源的公平管理。在多道批处理下,公平不公平没有人知
69、道,大家递交了作业后只管回家等结果。至于自己人知道,大家递交了作业后只管回家等结果。至于自己的程序排在谁前面谁后面,或者占用了多少时间是无关的程序排在谁前面谁后面,或者占用了多少时间是无关紧要的。现在,大家都坐在计算机终端前面,任何的不紧要的。现在,大家都坐在计算机终端前面,任何的不公平将立即感觉到。因此,公平地管理用户的时间就变公平将立即感觉到。因此,公平地管理用户的时间就变得非常重要。得非常重要。 驱动这个阶段操作系统发展的动力是响应时间和对驱动这个阶段操作系统发展的动力是响应时间和对越来越多资源的管理。因为机器昂贵,不能容忍在设备越来越多资源的管理。因为机器昂贵,不能容忍在设备工作期间闲
70、置下来。同时,因为人的时间宝贵,不能容工作期间闲置下来。同时,因为人的时间宝贵,不能容忍用户坐在机器前进行漫长的等待。因此,人们忍用户坐在机器前进行漫长的等待。因此,人们发明了分时操作系统来解决这两个问题。此外,分时操作系发明了分时操作系统来解决这两个问题。此外,分时操作系统还需要应对竞争、同步、互斥、通信、死锁、保护等一系统还需要应对竞争、同步、互斥、通信、死锁、保护等一系列的新问题,使得分时操作系统变得空前复杂,进一步完善列的新问题,使得分时操作系统变得空前复杂,进一步完善了操作系统的基本理论。对分时操作系统的研发成为了当时了操作系统的基本理论。对分时操作系统的研发成为了当时计算机界的最大
71、热门,竞争十分激烈。计算机界的最大热门,竞争十分激烈。最为著名的分时操作系统是由的贝尔实验室、麻省理工最为著名的分时操作系统是由的贝尔实验室、麻省理工学院()及数字设备公司()三家合作开发的分时操作系统学院()及数字设备公司()三家合作开发的分时操作系统和贝尔实验室开发的分时操作系统。和贝尔实验室开发的分时操作系统。 后来演变成了两大系后来演变成了两大系列:列:(贝尔实验室)和(加洲大学伯克利分校)。(贝尔实验室)和(加洲大学伯克利分校)。成功分时操作系统的典范无疑当推,它是史上第一成功分时操作系统的典范无疑当推,它是史上第一个用高级程序设计语言(个用高级程序设计语言(C语言)编写的操作系统,
72、并语言)编写的操作系统,并成功运行于、等当时的主流机器上,其发明者因此而成功运行于、等当时的主流机器上,其发明者因此而获得了图灵奖。的问世极大地推动了操作系统的发展,获得了图灵奖。的问世极大地推动了操作系统的发展,奠定了操作系统理论和技术的架构,是操作系统发展史奠定了操作系统理论和技术的架构,是操作系统发展史上的一个伟大的里程碑,对操作系统的发展产生着巨大上的一个伟大的里程碑,对操作系统的发展产生着巨大和深远的影响。发展到今天,仍久经不衰,表现出它的和深远的影响。发展到今天,仍久经不衰,表现出它的强大生命力,它已从一个分时操作系统发展成为强大生命力,它已从一个分时操作系统发展成为“通用通用”操
73、作系统,成为了跨越从微型机到巨型机范围的唯一操操作系统,成为了跨越从微型机到巨型机范围的唯一操作系统,被誉为是操作系统的工业标准。(贵族)作系统,被誉为是操作系统的工业标准。(贵族)图灵奖(图灵奖(19831983)获得者)获得者肯肯 汤普逊汤普逊发明者发明者丹尼斯丹尼斯里奇里奇C语言发明者语言发明者图图1-7 与与C语言的发明者语言的发明者第三代之二:实时操作系统第三代之二:实时操作系统 实时操作系统是专门为计算机实时应用系统(简称实实时操作系统是专门为计算机实时应用系统(简称实时系统)而开发的。实时系统要求计算机对某些实时过程时系统)而开发的。实时系统要求计算机对某些实时过程进行监视,并在
74、需要的时刻及时采取动作。实时系统具备进行监视,并在需要的时刻及时采取动作。实时系统具备一个特点:计算机对相关实时过程必须在规定时间内作出一个特点:计算机对相关实时过程必须在规定时间内作出响应,不然就有可能发生事故或灾难。响应,不然就有可能发生事故或灾难。例如,在工业装配线上,当一个部件从流水线上的一例如,在工业装配线上,当一个部件从流水线上的一个工作站流到下一个工作站时,这个工作站上的操作必须个工作站流到下一个工作站时,这个工作站上的操作必须在规定时间内完成,否则就有可能造成流水线瘫痪。又例在规定时间内完成,否则就有可能造成流水线瘫痪。又例如,在导弹防卫系统中,对来袭导弹的轨迹计算必须在规如,
75、在导弹防卫系统中,对来袭导弹的轨迹计算必须在规定时间内完成,否则就有可能被来袭导弹击中而无法作出定时间内完成,否则就有可能被来袭导弹击中而无法作出反应。其他如航空飞行控制系统、核反应堆状态监视系统、反应。其他如航空飞行控制系统、核反应堆状态监视系统、化学反应堆监视系统等。化学反应堆监视系统等。这里必须清楚一个概念:实时系统并不一定是响应很这里必须清楚一个概念:实时系统并不一定是响应很快的系统,而是其响应具有时序可预测性的系统。当然了,快的系统,而是其响应具有时序可预测性的系统。当然了,在实际中实时系统通常是响应很快的系统,但这是实时系在实际中实时系统通常是响应很快的系统,但这是实时系统的一个结
76、果,而不是其定义。统的一个结果,而不是其定义。显然,实时操作系统的最重要部分就是作业调度或进显然,实时操作系统的最重要部分就是作业调度或进程调度,只有精确、合理和及时的进程调度才能保证响应程调度,只有精确、合理和及时的进程调度才能保证响应时间。当然,对资源的管理也非常重要,没有精密复杂的时间。当然,对资源的管理也非常重要,没有精密复杂的资源管理,确保进程按时完成就成为一句空话。另外,基资源管理,确保进程按时完成就成为一句空话。另外,基于其使用环境,实时操作系统对可靠性和可用性的要求也于其使用环境,实时操作系统对可靠性和可用性的要求也非常高。如果在这些方面出了问题,时序可预测性将无法非常高。如果
77、在这些方面出了问题,时序可预测性将无法达到。达到。第四代:现代操作系统(第四代:现代操作系统(19801980年至今)年至今)自自20世纪世纪80年代起,计算机工业获得了井喷式的发年代起,计算机工业获得了井喷式的发展,各种计算机和操作系统不断出现和发展,计算机和操展,各种计算机和操作系统不断出现和发展,计算机和操作系统领域均进入到了一个百花齐放、百家争鸣的时代,作系统领域均进入到了一个百花齐放、百家争鸣的时代,尤其是工作站和机的出现,使计算机大为普及。这个时代尤其是工作站和机的出现,使计算机大为普及。这个时代的操作系统代表有:、和各种主机操作系统,如、等。的操作系统代表有:、和各种主机操作系统
78、,如、等。随着微电子技术的飞速发展,计算机硬件越来越便宜,随着微电子技术的飞速发展,计算机硬件越来越便宜,个人电脑()出现在人们的视野中。人们可以拥有自己的个人电脑()出现在人们的视野中。人们可以拥有自己的电脑,无需与他人分享。由于机由用户一个人独享,分时电脑,无需与他人分享。由于机由用户一个人独享,分时操作系统的许多功能就无需存在,因此,机操作系统又变操作系统的许多功能就无需存在,因此,机操作系统又变回到了标准函数库系统。初期的操作系统是单用户单任务回到了标准函数库系统。初期的操作系统是单用户单任务的,这类最有名的是、的,这类最有名的是、 3x、(苹果机操作系统)等。、(苹果机操作系统)等。
79、但在独享了一阵机后,人们发现,没有分时功能的操但在独享了一阵机后,人们发现,没有分时功能的操作系统使一些事情做不了,因为虽然只有一个人在用计算作系统使一些事情做不了,因为虽然只有一个人在用计算机,但他可能想同时运行几个程序,而没有分时功能这是机,但他可能想同时运行几个程序,而没有分时功能这是不可能的。于是,人们觉得需要对机操作系统进行改善,不可能的。于是,人们觉得需要对机操作系统进行改善,将各种有关的分时功能又加了进去,形成了单用户多任务将各种有关的分时功能又加了进去,形成了单用户多任务的操作系统,如的操作系统,如 2000、 X。推动电脑的迅猛发展的一个重要因素是操作系统图形推动电脑的迅猛发
80、展的一个重要因素是操作系统图形用户界面()的出现。传统操作系统的用户操作界面都是用户界面()的出现。传统操作系统的用户操作界面都是字符文本用户界面。苹果公司率先开发出了实用的,并字符文本用户界面。苹果公司率先开发出了实用的,并应用在它的应用在它的 操作系统上。微软大量操作系统上。微软大量抄袭了抄袭了 的技术而形成了最为流行的的技术而形成了最为流行的。图形用户界面的。图形用户界面的出现对操作系统的发展产生了深远的影响。现在一般认为出现对操作系统的发展产生了深远的影响。现在一般认为的技术和标准是由苹果公司打下的基础。但正确地说,技的技术和标准是由苹果公司打下的基础。但正确地说,技术实际上是由施乐帕
81、罗奥托研究中心创始的。术实际上是由施乐帕罗奥托研究中心创始的。这个时代的另外一个重要特征是网络的出现和兴起。这个时代的另外一个重要特征是网络的出现和兴起。网络触发了网络操作系统和分布式操作系统的出现。计算网络触发了网络操作系统和分布式操作系统的出现。计算机网络有(普通)计算机网络和分布式系统之分,分布式机网络有(普通)计算机网络和分布式系统之分,分布式系统是种特殊的计算机网络。网络操作系统是为计算机网系统是种特殊的计算机网络。网络操作系统是为计算机网络开发的,分布式操作系统则是为分布式系统开发的。分络开发的,分布式操作系统则是为分布式系统开发的。分布式系统与计算机网络的主要区别不在于它们的物理
82、结构布式系统与计算机网络的主要区别不在于它们的物理结构上,而是在操作系统。上,而是在操作系统。 分布式系统与计算机网络的差别:分布式系统与计算机网络的差别:计算机网络一般采用客户计算机网络一般采用客户/服务器服务器( / ) 模式;而分模式;而分布式系统采用的是对等()模式,即网中的站点机没有主布式系统采用的是对等()模式,即网中的站点机没有主次之分,每一个站点既可作为客户机,又可作为服务器。次之分,每一个站点既可作为客户机,又可作为服务器。在计算机网络中,两台客户机之间的通信是通过服在计算机网络中,两台客户机之间的通信是通过服务器来实现的;分布式系统中的任意两台计算机之间可以务器来实现的;分
83、布式系统中的任意两台计算机之间可以直接通信。直接通信。对于计算机网络,有服务器操作系统和客户端操作对于计算机网络,有服务器操作系统和客户端操作系统之分,他们之间的功能差异很大;分布式系统使用的系统之分,他们之间的功能差异很大;分布式系统使用的是统一的操作系统,即网中所有计算机运行的是同一个操是统一的操作系统,即网中所有计算机运行的是同一个操作系统。作系统。 分布式系统中的资源为全网共享,每个站点上的资源都可为其他站点所共享,并且这种共享对用户是透明的;而在计算机网络中,只能客户机共享服务器上的资源,且对用户是不透明的。分布式操作系统可将一个大型或复杂的任务分解成若干子任务,并将它们分布在若干个
84、站点机上同时执行。换言之,分布式操作系统能使多个站点协同完成同一个任务,而且这对用户是透明的。网络服务器操作系统最初是独领风骚。后来形成了与分庭抗礼的局面,但在高端应用领域的地位不可动摇,则主要占据着低端领域。进入90年代后,一种类的操作系统异军突起,掀起了一股突起,掀起了一股“自由自由”风暴,在短时期内就与和形成了风暴,在短时期内就与和形成了三足鼎立的局面。不仅在低端领域广受欢迎,而且成功地三足鼎立的局面。不仅在低端领域广受欢迎,而且成功地立足于高端领域。据立足于高端领域。据2012年的统计数据表明,在高端领年的统计数据表明,在高端领域的装机数量已经超越了。域的装机数量已经超越了。分布式操作
85、系统比网络操作系统更为复杂,是操作系分布式操作系统比网络操作系统更为复杂,是操作系统研发的难点,目前还无商业性的分布式操作系统面市。统研发的难点,目前还无商业性的分布式操作系统面市。现代操作系统的另一个重要分支是为计算机嵌入式()现代操作系统的另一个重要分支是为计算机嵌入式()系统开发的嵌入式操作系统。计算机嵌入式应用就是把微系统开发的嵌入式操作系统。计算机嵌入式应用就是把微型机嵌入到一个对象体系(如数码相机、手机、家用电器、型机嵌入到一个对象体系(如数码相机、手机、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等医疗设备、交通灯、航空电子设备和工厂控制设备等 )中,以实现对该对象的智
86、能化控制。显中,以实现对该对象的智能化控制。显而易见,嵌入式系统在一定程度上改变了通用计算机系统而易见,嵌入式系统在一定程度上改变了通用计算机系统的形态与功能。的形态与功能。嵌入式操作系统()的主要特点:嵌入式操作系统()的主要特点:微型化。由于嵌入式系统硬件平台的局限性(内存小、微型化。由于嵌入式系统硬件平台的局限性(内存小、不配置外存、微处理器字长短且运算速度有限等),在保不配置外存、微处理器字长短且运算速度有限等),在保证应用功能的前提下,微型化是设计主要出发点。证应用功能的前提下,微型化是设计主要出发点。可定制(可剪裁)。运行的平台多种多样,其宿主对可定制(可剪裁)。运行的平台多种多样
87、,其宿主对象更是五花八门,因而表现出专业化的特点。从而要求的象更是五花八门,因而表现出专业化的特点。从而要求的各个功能模块都作为可选件,以供用户根据实际需要选择。各个功能模块都作为可选件,以供用户根据实际需要选择。 实时性。广泛应用于过程控制、数据采集、传输通信实时性。广泛应用于过程控制、数据采集、传输通信多媒体信息处理及关键要害领域等要求迅速响应的多媒体信息处理及关键要害领域等要求迅速响应的场合,实时响应要求严格,故实时性是其主要特点之一。场合,实时响应要求严格,故实时性是其主要特点之一。可靠性。系统构件、模块和体系结构必须达到应有的可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关
88、键要害应用(如军事、航空航天、交通)还可靠性,对关键要害应用(如军事、航空航天、交通)还要提供容错和防故障措施,进一步改进可靠性。要提供容错和防故障措施,进一步改进可靠性。易移植性。为了适应多种多样的硬件平台,应该可以易移植性。为了适应多种多样的硬件平台,应该可以在不做大量修改的情况下稳定地运行在不同平台上。在不做大量修改的情况下稳定地运行在不同平台上。2.2 操作系统的分类操作系统的分类 操作系统种类繁多,很难用单一标准统一分类。从不操作系统种类繁多,很难用单一标准统一分类。从不同的角度有各种分类法,例如:同的角度有各种分类法,例如:根据所支持的用户数目,可分为单用户操作系统(如、根据所支持
89、的用户数目,可分为单用户操作系统(如、2)、多用户操作系统(如、);)、多用户操作系统(如、);根据源码开放程度,可分为开源操作系统(如、)和根据源码开放程度,可分为开源操作系统(如、)和闭源操作系统(如闭源操作系统(如 X、););根据硬件结构,可分为单机操作系统、网络操作系统根据硬件结构,可分为单机操作系统、网络操作系统(、(、 、2)、多媒体操作系统()、和分布式操作系统等;)、多媒体操作系统()、和分布式操作系统等;根据操作系统的使用环境和对作业处理方式来考虑,根据操作系统的使用环境和对作业处理方式来考虑, 可分为批处理操作系统(如、)、分时操作系统(如、可分为批处理操作系统(如、)、
90、分时操作系统(如、 X)、实时操作系统(如、)、实时操作系统(如、 等);等);根据存储器寻址的宽度可以将操作系统分为根据存储器寻址的宽度可以将操作系统分为8位、位、16位、位、32位、位、64位、位、128位的操作系统。早期的操作系统位的操作系统。早期的操作系统一般只支持一般只支持8位和位和16位存储器寻址宽度,现代的操作系统位存储器寻址宽度,现代的操作系统如和如和 7都支持都支持32位和位和64位。位。根据应用领域划分则是当前最为流行的操作系统分类根据应用领域划分则是当前最为流行的操作系统分类法,即操作系统可分为四种:桌面操作系统、服务器操作法,即操作系统可分为四种:桌面操作系统、服务器操
91、作系统、主机操作系统和嵌入式操作系统。系统、主机操作系统和嵌入式操作系统。桌面操作系统桌面操作系统桌面操作系统主要用于个人计算机上。主要分为两大桌面操作系统主要用于个人计算机上。主要分为两大类:操作系统和类操作系统。类:操作系统和类操作系统。操作系统系列包括有:操作系统系列包括有: 、 、 7、 8等。等。类操作系统的代表有:类操作系统的代表有: X(基于)和各种版本(如(基于)和各种版本(如 、等);、等);服务器操作系统服务器操作系统服务器操作系统是为网络服务器计算机配置的操作系服务器操作系统是为网络服务器计算机配置的操作系统,比如服务器、应用服务器和数据库服务器等。当前,统,比如服务器、
92、应用服务器和数据库服务器等。当前,服务器操作系统主要分为三大系列:服务器操作系统主要分为三大系列: (1) 系列:系列: 、等;、等;(2) 系列:系列: 、等;、等;(3) 系列:系列: 2003、 2008、 2008 R2等。等。在高端应用领域,和占据着统治地位。在高端应用领域,和占据着统治地位。主机操作系统主机操作系统这里的主机是指功能和性能超强的大型机和巨型机,这里的主机是指功能和性能超强的大型机和巨型机,主要用于高端超高端应用领域(如大型金融证卷交易所、主要用于高端超高端应用领域(如大型金融证卷交易所、卫星地面控制站等)。卫星地面控制站等)。主机操作系统结合了批处理和分时功能,功能
93、全面,性主机操作系统结合了批处理和分时功能,功能全面,性能超强。目前,主机操作系统主要有、能超强。目前,主机操作系统主要有、390及等。主机及等。主机操作系统的开发商主要是,在主机操作系统领域可以说是操作系统的开发商主要是,在主机操作系统领域可以说是一家独大。一家独大。嵌入式操作系统嵌入式操作系统这是一个十分庞杂、品种繁多、竞争激烈,但又是特具这是一个十分庞杂、品种繁多、竞争激烈,但又是特具发展潜力的领域。目前,可分为通用型和专用。通用型发展潜力的领域。目前,可分为通用型和专用。通用型可用于多种应用环境,例如,常见的可用于多种应用环境,例如,常见的 、等。专用型则等。专用型则用于一些特定领域,
94、例如,应用于手持数字设备()的用于一些特定领域,例如,应用于手持数字设备()的 ,应用于智能手机的应用于智能手机的 (基于(基于 X)、(基于)、)、(基于)、 等。等。 2009年的全球互联网用户操作系统评价(部分)年的全球互联网用户操作系统评价(部分) 操作系统操作系统反对票数反对票数赞成票数赞成票数赞成率赞成率21300037900064%673909093.1%148002720064.7%1034884099.7%4330007150014.1% X352002990045.9%2.3 操作系统的未来发展趋势操作系统的未来发展趋势 随着计算机的不断普及,操作系统的功能会变得越随着计算
95、机的不断普及,操作系统的功能会变得越来越复杂。在这种趋势下,操作系统的发展面临两个方来越复杂。在这种趋势下,操作系统的发展面临两个方向的选择:一是向微内核方向发展,二是向大而全的全向的选择:一是向微内核方向发展,二是向大而全的全方位方向发展。微内核操作系统虽然有不少人在研究,方位方向发展。微内核操作系统虽然有不少人在研究,但在工业界获得认可的并不多。这方面的代表有系统但在工业界获得认可的并不多。这方面的代表有系统(卡内基梅隆大学)。对工业界来说,操作系统是向(卡内基梅隆大学)。对工业界来说,操作系统是向着多功能、全方位方向发展。着多功能、全方位方向发展。 现在有现在有4000万行代码,万行代码
96、,而某些发行版已达而某些发行版已达2亿行代码。鉴于大而全的操作系统管亿行代码。鉴于大而全的操作系统管理起来比较复杂,现代操作系统采取的都是模块化的内理起来比较复杂,现代操作系统采取的都是模块化的内核结构方式,即一个小的内核加上模块化的外围管理功核结构方式,即一个小的内核加上模块化的外围管理功能。能。随着人们对信息安全重视程度的不断提升,如何构建随着人们对信息安全重视程度的不断提升,如何构建可靠、可用和安全的操作系统将成为一个十分重要的课题。可靠、可用和安全的操作系统将成为一个十分重要的课题。而对可靠、可用和安全的追求无疑将使操作系统更为复杂,而对可靠、可用和安全的追求无疑将使操作系统更为复杂,
97、操作系统的规模也将不断增大。从初期的操作系统的规模也将不断增大。从初期的1400行代码到行代码到的上亿行代码,这完全是一种爆炸性增长。而爆炸性增长的上亿行代码,这完全是一种爆炸性增长。而爆炸性增长的后果就是,没有什么人能够完全理解一个完整的操作系的后果就是,没有什么人能够完全理解一个完整的操作系统,而这种状况又将限制操作系统的可靠、可用和安全性。统,而这种状况又将限制操作系统的可靠、可用和安全性。当然了,人们可以采用各种软件工程的方法和手段来改善当然了,人们可以采用各种软件工程的方法和手段来改善这种状况,但无论如何,持续的爆炸性增长恐怕是难以为这种状况,但无论如何,持续的爆炸性增长恐怕是难以为
98、继的。让我们拭目以待吧。继的。让我们拭目以待吧。3 操作系统的基本概念操作系统的基本概念存储器架构与内存结构存储器架构与内存结构中断中断核心态与用户态核心态与用户态并发并发操作系统的架构操作系统的架构操作系统的服务界面操作系统的服务界面3.1 存储器架构与内存结构存储器架构与内存结构1. 存储器架构存储器架构 现现代代计计算算机机的的存存储储器器系系统统一一般般由由三三个个层层次次构构成成,从从大大到到小小(容容量量),从从慢慢到到快快(存存取取速速度度)分分别别为为:辅辅存存、主主存和高速缓存()。存和高速缓存()。主存主存辅存辅存最小,最快,最贵最小,最快,最贵 最大,最慢,最廉最大,最慢
99、,最廉 图图1-8 计算机的存储器架构计算机的存储器架构 辅存(外存)辅存(外存)用来永久存放大量信息的存储器,但不能直接寻址。用来永久存放大量信息的存储器,但不能直接寻址。存储介质:磁盘、光盘、磁带存储介质:磁盘、光盘、磁带存储容量:存储容量: 级海量级海量存取速度:存取速度: 级级 主存主存是直接与计算机总线连接的存储器,存放正在运行的程是直接与计算机总线连接的存储器,存放正在运行的程序和数据,是可直接寻址的存储器。序和数据,是可直接寻址的存储器。存储介质:和存储介质:和存储容量:存储容量: 存取速度:存取速度:s 级级 (当前速度已可达到(当前速度已可达到100 s) (高速缓存)(高速
100、缓存)是与主存之间的缓冲存储器,可直接寻址,它存放当前是与主存之间的缓冲存储器,可直接寻址,它存放当前被频繁访问的代码和数据,用于缓解与主存的速度不匹配被频繁访问的代码和数据,用于缓解与主存的速度不匹配矛盾,提高执行程序的速度。矛盾,提高执行程序的速度。存储介质:存储介质:存储容量:存储容量:存取速度:存取速度:s (与速度基本匹配)(与速度基本匹配)主存和合称为内存,即内存是可直接寻址的工作存储器。主存和合称为内存,即内存是可直接寻址的工作存储器。任何需要运行的程序必须被加载到内存。任何需要运行的程序必须被加载到内存。2. 操作系统在内存中的位置操作系统在内存中的位置内存被划分成两大区域:系
101、统内存被划分成两大区域:系统区和用户区。区和用户区。操作系统和检测诊断程序驻留操作系统和检测诊断程序驻留系统区。计算机加电后,操作系统系统区。计算机加电后,操作系统便被加载并驻留在系统区。系统区便被加载并驻留在系统区。系统区包括的一部分(通常为低地址部分)包括的一部分(通常为低地址部分)和全部。中存放必须受保护的操作和全部。中存放必须受保护的操作系统代码,如内核原语、基本驱动系统代码,如内核原语、基本驱动程序等。程序等。用户区占据中的大部分,存放用户区占据中的大部分,存放运行中的所有的非操作系统程序和运行中的所有的非操作系统程序和数据。数据。操作系统操作系统( )用户区用户区( )图图1-9计
102、算机内存空间计算机内存空间01操作系统操作系统( )3.2 中断中断中断是计算机中一个最为重要的程序驱动机制,它是操作系统获得计算机控制权的根本保证,没有中断,很难想象操作系统如何完成人们所赋予的任务。中断的基本原理是:设备在完成自己的任务后向发出中断信号,判断优先级,然后确定是否响应。如果响应,则中止现行程序,保留现行程序的现场,启动执行相应事件的中断服务程序;在中断服务程序执行完后,恢复被中断程序的现场,启动其继续执行。中断是很复杂的过程,中断处理过程中又可以发生中断,且还可以有所谓的软中断,即软件发出的中断。透彻理解中断对理解操作系统的运行具有重要意义。因此希望大家复习在计算机组成原理课
103、程中所学的中断内容。3.3 核心态与用户态就像世界上的人并不平等一样,并不是所有的程序都就像世界上的人并不平等一样,并不是所有的程序都是平等的。世界上有的人占有资源多,有的人占有资源少,是平等的。世界上有的人占有资源多,有的人占有资源少,有的人来了,别人得让出资源,有的人则专门为别人让出有的人来了,别人得让出资源,有的人则专门为别人让出资源。程序也是这样,有的程序可以访问计算机的任何资资源。程序也是这样,有的程序可以访问计算机的任何资源,有的程序则只能访问有限的少量资源。操作系统作为源,有的程序则只能访问有限的少量资源。操作系统作为计算机的管理者,自然不能和被管理者享受完全一样的待计算机的管理
104、者,自然不能和被管理者享受完全一样的待遇,为保证管理的有效性,操作系统应该享有特权。为此,遇,为保证管理的有效性,操作系统应该享有特权。为此,人们发明了核心态和用户态的概念。人们发明了核心态和用户态的概念。那么什么是核心态?什么是用户态呢?只要想一想现那么什么是核心态?什么是用户态呢?只要想一想现实生活中,处于社会核心的人与处于社会边缘的人有什么实生活中,处于社会核心的人与处于社会边缘的人有什么区别就能明白处于核心的人拥有的资源多或特权多!因此,区别就能明白处于核心的人拥有的资源多或特权多!因此,核心态也称特权态(早期也称管态),就是具有特权核心态也称特权态(早期也称管态),就是具有特权的状态
105、。而用户态就是非特权态(早期也称目态)。如果一个程序运行在特权态,则该程序可以访问计算机的任何资源,即它的资源访问权限不受限制。而如果一个程序运行在用户态,则其资源需求将受到各种限制。例如,如果要访问操作系统的内核数据结构(如进程控制块),则必须在特权态下才能做到。如果要访问用户程序里的数据,则在用户态下就可以了。由于核心态的程序可以访问计算机的所有资源,这种程序的可靠性和安全性就显得十分重要。试想如果一个不可靠的程序在核心态下修改了操作系统的各种内核数据结构,结果会怎样呢?整个系统有可能崩溃。而运行于用户态的程序就比较简单了,如果其可靠性和安全性出了问题,其造成的损失只不过是让用户程序崩溃,
106、而操作系统将继续工作。 很显然,核心态和用户态各有优势:核心态程序可以访问的资源多,但可靠性、安全性要求高,维护和管理都比较复杂;用户态程序访问的资源受限,但可靠性、安全性要求低,自然编写和维护起来都比较简单。那么,什么程序可以是核心态程序呢?只有两类程序:操作系统和诊断检测程序。操作系统作为整个计算机的管理者,要管理所有的系统资源(可供所有用户和应用程序使用的资源),它应该享有这个特权。但是不是所有的操作系统程序都是核心态程序呢?这个问题在后续的“操作系统架构”一节中论述。诊断检测程序为核心态,是因为它需要访问计算机的诊断检测程序为核心态,是因为它需要访问计算机的所有硬件资源,否则怎么判断计
107、算机是否正常呢?所有硬件资源,否则怎么判断计算机是否正常呢?除了操作系统和诊断检测程序外,所有的程序都是用除了操作系统和诊断检测程序外,所有的程序都是用户态程序。可见,任何应用程序都不能直接使用系统资源,户态程序。可见,任何应用程序都不能直接使用系统资源,要使用某种系统资源,必须通过操作系统提供的相应服务。要使用某种系统资源,必须通过操作系统提供的相应服务。那么计算机是如何知道当前正在运行的程序是核心态那么计算机是如何知道当前正在运行的程序是核心态程序呢?显然作出这种判断需要某种标志,这个标志就是程序呢?显然作出这种判断需要某种标志,这个标志就是程序状态字()里面的一个字位程序状态字()里面的
108、一个字位状态。在里面设置有状态。在里面设置有一个一个“程序状态字寄存器程序状态字寄存器”,它存放现行程序的。我们通过,它存放现行程序的。我们通过设置程序状态字,可以将设置为核心态或用户态,或者其设置程序状态字,可以将设置为核心态或用户态,或者其他的子态(有的有更多种他的子态(有的有更多种子态)。一个程序运行时,是什么态,这个程序就运行在什么态。可见,所谓的核心态和用户态实际上是的一种状态,而不是程序的状态。 如前所述,核心态程序可以访问任何资源,而用户态程序的访问则受到限制。那么这种限制是如何实现的呢?方案一:把机器指令系统中的所有指令划分成两类:特权指令和普通指令(非特权指令)。特权指令多为
109、跟硬资源直接有关的指令,以及涉及系统安全性的指令;普通指令则是除特权指令外的所有指令。在核心态下,可执行指令系统的全集,包括特权指令,也就是说,只有处于核心态时才能执行特权指令。而在用户态下,只能执行普通指令。在执行程序时,每当执行到一条 特权指令时都自动检测寄存器中的状态位,如果是核心特权指令时都自动检测寄存器中的状态位,如果是核心态,则执行;否则拒绝执行。从而确保特权指令执行的合态,则执行;否则拒绝执行。从而确保特权指令执行的合法性。法性。 方案二:操作系统把计算机中所有的系统资源都分别方案二:操作系统把计算机中所有的系统资源都分别抽象成某种数据结构,通过这些数据结构管理所有的系统抽象成某
110、种数据结构,通过这些数据结构管理所有的系统资源。使用某个资源就是访问相应的数据结构,这些数据资源。使用某个资源就是访问相应的数据结构,这些数据结构都被存放在受存储保护的操作系统内核区内。只有核结构都被存放在受存储保护的操作系统内核区内。只有核心态程序可以访问内核区内的数据结构,而用户态程序则心态程序可以访问内核区内的数据结构,而用户态程序则被拒绝访问。这种限制是通过地址检查来实现的,当一个被拒绝访问。这种限制是通过地址检查来实现的,当一个用户态程序要访问内核区中的数据结构时,地址检查机构用户态程序要访问内核区中的数据结构时,地址检查机构将判断是非法的地址越界而拒绝执行。而核心态程序可以将判断是
111、非法的地址越界而拒绝执行。而核心态程序可以访问内存中的任何地址。访问内存中的任何地址。3.4 并发并发并发是操作系统关键的基本概念之一,来源于多道程并发是操作系统关键的基本概念之一,来源于多道程序设计思想。所谓并发,是指在计算机内存中同时有多个序设计思想。所谓并发,是指在计算机内存中同时有多个程序在运行,他们都处在各自的起点和终点之间。宏观上,程序在运行,他们都处在各自的起点和终点之间。宏观上,他们的代码都在上执行,但微观上,这些程序是轮换交替他们的代码都在上执行,但微观上,这些程序是轮换交替地在上执行。地在上执行。并发性使得计算机系统的效率(的吞吐率)得到大大并发性使得计算机系统的效率(的吞
112、吐率)得到大大的提高,但操作系统的一切复杂性也主要来自并发性。的提高,但操作系统的一切复杂性也主要来自并发性。并发()与并行()的异同:并发()与并行()的异同:共性:多个事件的同时进行。共性:多个事件的同时进行。差异:并行是微观上或物理上的同时性概念,即多差异:并行是微观上或物理上的同时性概念,即多个事件在同一时刻发生;并发是宏观上或逻辑上的个事件在同一时刻发生;并发是宏观上或逻辑上的 同时性同时性概念,即多个事件在同一时段发生。概念,即多个事件在同一时段发生。并行的事件一定是并发的,反之,并发的事件不一定并行的事件一定是并发的,反之,并发的事件不一定是并行的。并行性是并发性的特例,并发性是
113、并行性的扩是并行的。并行性是并发性的特例,并发性是并行性的扩展。展。 3.5 操作系统的架构操作系统的架构操作系统可以说是软件界中的巨无霸,它包含有许许操作系统可以说是软件界中的巨无霸,它包含有许许多多的程序和数据结构,它们组成了许多的模块和构件多多的程序和数据结构,它们组成了许多的模块和构件(组件)。操作系统的架构(体系结构)定义了模块和构(组件)。操作系统的架构(体系结构)定义了模块和构件的组织方式和相互间的联系方式。件的组织方式和相互间的联系方式。操作系统发展至今,主要有三种架构模式:操作系统发展至今,主要有三种架构模式:单体模式单体模式分层模式分层模式内核模式内核模式1. 单体模式单体
114、模式按功能划分成若干功能模块,每个模块相对独立,又按功能划分成若干功能模块,每个模块相对独立,又通过确定的接口互相联系。任意一个模块可以调用另一个通过确定的接口互相联系。任意一个模块可以调用另一个模块的服务,整个操作系统构成了一个巨大的单一体,且模块的服务,整个操作系统构成了一个巨大的单一体,且所有模块都在核心态下运行,为用户和应用程序提供服务。所有模块都在核心态下运行,为用户和应用程序提供服务。如图如图1-10所示。这是早期操作系统或简单操作系统采用的所示。这是早期操作系统或简单操作系统采用的结构,如结构,如360、。、。这种架构的缺点较多,如:功能模块之间的关系复杂,这种架构的缺点较多,如
115、:功能模块之间的关系复杂,修改任一模块都将导致其他相关模块也都需要修改,甚至修改任一模块都将导致其他相关模块也都需要修改,甚至牵一发而动全身,从而导致操作系统设计、开发和维护的牵一发而动全身,从而导致操作系统设计、开发和维护的困难;模块之间没有层次关系的无序的网状联系容易造成困难;模块之间没有层次关系的无序的网状联系容易造成循环调用,形成循环调用,形成“死锁死锁”,从而导致操作系统的可靠性降低。,从而导致操作系统的可靠性降低。操作系统服务界面操作系统服务界面硬件硬件应用程序应用程序应用程序应用程序用户态用户态核心态核心态图图1-10 单体式操作系统架构单体式操作系统架构2. 分层模式分层模式为
116、了克服单体架构模式的毛病,使模块之间的无序关为了克服单体架构模式的毛病,使模块之间的无序关系变为有序关系,人们设计出了分层架构模式。最早提出系变为有序关系,人们设计出了分层架构模式。最早提出并实现了分层架构思想的是软件大师,他开发成功了第一并实现了分层架构思想的是软件大师,他开发成功了第一个采用分层架构模式的操作系统个采用分层架构模式的操作系统系统。系统。分层架构的基本思想是:按操作系统的管理功能将操分层架构的基本思想是:按操作系统的管理功能将操作系统划分成几个层次,每一层由若干模块组成;下层模作系统划分成几个层次,每一层由若干模块组成;下层模块为紧邻的上层模块提供服务,上层模块可以调用下层模
117、块为紧邻的上层模块提供服务,上层模块可以调用下层模块,反之不行。如果某层中的模块调用关系比较复杂,则块,反之不行。如果某层中的模块调用关系比较复杂,则可将该层进一步划分成若干子层,如进程管理层可分为高可将该层进一步划分成若干子层,如进程管理层可分为高级进程管理和低级进程管理。如图级进程管理和低级进程管理。如图1-11所示。分层架构所示。分层架构的一大优点是大大降低了死锁的可能性,系统也易于调试的一大优点是大大降低了死锁的可能性,系统也易于调试和维护。缺点是增加了模块间的通信开销,降低了效率。和维护。缺点是增加了模块间的通信开销,降低了效率。操作系统服务界面操作系统服务界面硬件硬件文件系统文件系
118、统内存和设备管理内存和设备管理进程管理与通信进程管理与通信应用程序应用程序用户态用户态核心态核心态图图1-11 分层式操作系统架构分层式操作系统架构应用程序应用程序3. 内核模式内核模式单体架构和分层架构的一个共同问题是:操作系统的单体架构和分层架构的一个共同问题是:操作系统的所有功能模块都在核心态下运行。这带来几个问题:所有功能模块都在核心态下运行。这带来几个问题:首先,操作系统提供的所有服务功能都需要进入核心首先,操作系统提供的所有服务功能都需要进入核心态才能使用,对于处于用户态的应用程序每一次请求操作态才能使用,对于处于用户态的应用程序每一次请求操作系统的服务都需要进行用户态与核心态的切
119、换,而这种切系统的服务都需要进行用户态与核心态的切换,而这种切换是有时间成本的。这种频繁的状态切换,无疑降低了操换是有时间成本的。这种频繁的状态切换,无疑降低了操作系统的效率。在操作系统还比较简单时这个问题并不突作系统的效率。在操作系统还比较简单时这个问题并不突出,但随着操作系统功能和复杂性的增加,这个问题就十出,但随着操作系统功能和复杂性的增加,这个问题就十分明显了。分明显了。其次,由于核心态程序可以访问所有系统资源,因此其次,由于核心态程序可以访问所有系统资源,因此其安全性和可靠性要求十分高。在操作系统很小时,将其其安全性和可靠性要求十分高。在操作系统很小时,将其设计得可靠和安全不是特别困
120、难。再说,早期没有出现那设计得可靠和安全不是特别困难。再说,早期没有出现那么多的安全问题,自然安全上的考虑就不用太多。但随着么多的安全问题,自然安全上的考虑就不用太多。但随着着操作系统越来越大,攻击者的水平越来越高,操作系统着操作系统越来越大,攻击者的水平越来越高,操作系统的可靠性和安全性就变得很难达到,只要想一想,的可靠性和安全性就变得很难达到,只要想一想,1400行代码的操作系统和行代码的操作系统和4000万行代码的操作系统有什么区万行代码的操作系统有什么区别就知道了。别就知道了。因此,人们又提出了一种新的架构模式因此,人们又提出了一种新的架构模式内核架构,内核架构,即只将中的关键功能模块
121、以及必须直接访问系统资源的模即只将中的关键功能模块以及必须直接访问系统资源的模块设置为核心态,它们构成了的内核;而其他所有模块则块设置为核心态,它们构成了的内核;而其他所有模块则构成了的外壳()并都设置为用户态。这样就同时提高了构成了的外壳()并都设置为用户态。这样就同时提高了效率和安全性。如图效率和安全性。如图1-12所示。就如同把一个什么都管所示。就如同把一个什么都管的庞大、低效的的庞大、低效的“集权政府集权政府”通过削减部分特权精简成一个通过削减部分特权精简成一个高效的服务性高效的服务性“小政府小政府”。通常在内核中对各模块又进一步。通常在内核中对各模块又进一步分层,如,见图分层,如,见
122、图1-13。操作系统内核操作系统内核硬件硬件内存服务器内存服务器网络服务器网络服务器进程服务器进程服务器文件服务器文件服务器设备服务器设备服务器应用程序用户应用程序用户用户态用户态核心态核心态图图1-12 内核式操作系统架构内核式操作系统架构 操作系统服务界面操作系统服务界面系统调用系统调用操作命令操作命令系统调用系统调用内核空间内核空间硬件硬件操作系统服务界面操作系统服务界面网络管理网络管理进程管理进程管理进程通信进程通信管理与驱动管理与驱动应用程序用户应用程序用户用户态用户态核心态核心态图图1-13 的内核架构的内核架构内存管理内存管理虚拟文件系统虚拟文件系统物理文件系统物理文件系统内核模
123、式是当前的趋势,主流操作系统采用的都是内内核模式是当前的趋势,主流操作系统采用的都是内核模式。但这个内核到底应该多大,哪些功能应该放在内核模式。但这个内核到底应该多大,哪些功能应该放在内核中,哪些又不必,则是仁者见仁,智者见智。美国卡内核中,哪些又不必,则是仁者见仁,智者见智。美国卡内基梅隆大学甚至提出了基梅隆大学甚至提出了“微内核微内核”的思想,其开发的操作系的思想,其开发的操作系统的内核就非常小,而统的内核就非常小,而 的内核就大得多。的内核就大得多。3.6 操作系统的服务界面操作系统的服务界面 操作系统是特殊的系统软件,是为用户和应用程序操作系统是特殊的系统软件,是为用户和应用程序提供服
124、务的程序,用户和应用程序可通过两种界面来请提供服务的程序,用户和应用程序可通过两种界面来请求操作系统的服务,这两种服务界面是:求操作系统的服务,这两种服务界面是:系统调用(系统调用( )接口接口系统调用就是操作系统提供的应用程序界面(),应系统调用就是操作系统提供的应用程序界面(),应用程序通过访问获得操作系统的服务。严格来说,是用户用程序通过访问获得操作系统的服务。严格来说,是用户态程序界面,所有的用户态程序(包括自身的用户态程序)态程序界面,所有的用户态程序(包括自身的用户态程序)都通过访问获得操作系统内核的服务。都通过访问获得操作系统内核的服务。操作系统把向用户态程序提供的各种服务组织成
125、许多操作系统把向用户态程序提供的各种服务组织成许多功能模块,这些服务功能模块通常都是内核函数,也称系功能模块,这些服务功能模块通常都是内核函数,也称系统调用函数。显然,用户态程序是不能直接调用核心态的统调用函数。显然,用户态程序是不能直接调用核心态的系统调用函数的,而必须通过执行一条系统调用函数的,而必须通过执行一条“系统调用指令系统调用指令”(指令)来间接调用系统调用函数。系统调用指令是一条(指令)来间接调用系统调用函数。系统调用指令是一条用户态指令,可以在用户态程序中执行。当执行到系统调用户态指令,可以在用户态程序中执行。当执行到系统调用指令时将产生一个中断,核心态的中断处理程序(系统用指
126、令时将产生一个中断,核心态的中断处理程序(系统调用接口)将根据系统调用指令中给定调用接口)将根据系统调用指令中给定1. 系统调用系统调用的参数切换到相应的系统调用函数。当系统调用函数执行的参数切换到相应的系统调用函数。当系统调用函数执行结束后返回调用者(用户态程序)。结束后返回调用者(用户态程序)。例如,如果用户态程序需要进行读盘操作,在例如,如果用户态程序需要进行读盘操作,在C源程源程序代码里将使用如下语句:序代码里将使用如下语句:( , , );其中的函数是其中的函数是C语言提供的库函数(用户态)。编译器在语言提供的库函数(用户态)。编译器在读到上述语句后将库函数扩展为调用系统调用函数的指
127、令。读到上述语句后将库函数扩展为调用系统调用函数的指令。可见,实际上系统调用指令对用户源语言程序是可见,实际上系统调用指令对用户源语言程序是“透明透明”的。的。系统调用函数按功能一般可划分为六大类:系统调用函数按功能一般可划分为六大类:进程控制类进程控制类文件管理类文件管理类设备管理类设备管理类内存管理类内存管理类信息维护类信息维护类通信类通信类系统调用的详细内容一般不在操作系统原理课程中论系统调用的详细内容一般不在操作系统原理课程中论述,而是在系统编程的课程中论述。述,而是在系统编程的课程中论述。 2. 接口接口使用需要编程。对于不编程的用户,操作系使用需要编程。对于不编程的用户,操作系统提
128、供的服务界面是接口,每个操作系统都提供统提供的服务界面是接口,每个操作系统都提供某种接口。用户可通过接口与操作系统进行交互,某种接口。用户可通过接口与操作系统进行交互,请求操作系统的各种服务。接口既可以是图形界请求操作系统的各种服务。接口既可以是图形界面,又可以是文本界面。用户在这个界面上输入面,又可以是文本界面。用户在这个界面上输入命令(图形命令或文本命令),接口则解释执行命令(图形命令或文本命令),接口则解释执行这些命令。这些命令。接口实际上是一个命令解释器,它循环等待接口实际上是一个命令解释器,它循环等待接收用户输入的操作命令,每接收到一条命令便接收用户输入的操作命令,每接收到一条命令便
129、解释和检查命令的语法,若合法就启动相应的解释和检查命令的语法,若合法就启动相应的“服服务接口程序务接口程序”(称之为,译为实用程序)执行,并(称之为,译为实用程序)执行,并将返回的服务结果反馈给用户,然后等待用户输将返回的服务结果反馈给用户,然后等待用户输入下一条命令。的功用相当于入下一条命令。的功用相当于C语言提供的库函语言提供的库函数。可见,在数。可见,在 接口上用户也不能直接使用操作系统内核服务的,而是接口上用户也不能直接使用操作系统内核服务的,而是通过来获得服务。通过来获得服务。 和的接口支持的都是文本界面,如、等,且可同和的接口支持的都是文本界面,如、等,且可同时支持多个接口。而的接
130、口是图形界面的。当然,和也提时支持多个接口。而的接口是图形界面的。当然,和也提供了图形用户界面,如支持的和,但它们实际上都是作为供了图形用户界面,如支持的和,但它们实际上都是作为的应用程序运行的,它们把每条图形命令转换成命令后再的应用程序运行的,它们把每条图形命令转换成命令后再传递给解释器。于传递给解释器。于2006年也推出了一个文本界面形式的年也推出了一个文本界面形式的,可运行在,可运行在 2、 2003/2008及及 上。上。本节论述了操作系统的基本概念。这些概念是为后本节论述了操作系统的基本概念。这些概念是为后续的进程管理、内存管理、文件管理及设备管理的学习续的进程管理、内存管理、文件管
131、理及设备管理的学习打下基础。其中最为关键的是打下基础。其中最为关键的是“核心态和用户态核心态和用户态”概念与概念与“并发并发”概念,而概念,而“系统调用系统调用”和和“操作系统架构操作系统架构”也非常重要。也非常重要。【作业】【作业】1. 在你的计算机上安装,再用安装一个系统。建议安在你的计算机上安装,再用安装一个系统。建议安装(不低于装(不低于5.0版)。版)。2. 阅读实验准备知识。重点是:阅读实验准备知识。重点是:命令的语法规则命令的语法规则基本命令及其用法基本命令及其用法 编辑器的基本使用方法编辑器的基本使用方法编译器的基本用法及运行编译器的基本用法及运行C程序的方法。程序的方法。3. 教材教材