128
操操操Operating System

操作系统 Operating System

  • Upload
    mardi

  • View
    70

  • Download
    0

Embed Size (px)

DESCRIPTION

操作系统 Operating System. 课 程 简 介. 课程名称: 操作系统( Operating System ) 教 材: 《计算机操作系统》刘福岩等 《 计算机操作系统 》 汤子赢等 教学方式:授课( 4 8 )+上机实习( 16 ) 考试类别:考试 参考教材: 1、 现代操作系统 ,陈向群等译,机械工业出版社 2、 操作系统设计与实现 ,王鹏等译,电子工业出版社 3、 计算机操作系统教程 , 张尧学、史美林,清华大学出版社. 教学目的. 通过对本章的讲解使学生 了解本课程的整体介绍 - PowerPoint PPT Presentation

Citation preview

Page 1: 操作系统 Operating  System

操作系统 Operating System

Page 2: 操作系统 Operating  System

课 程 简 介课程名称:操作系统( Operating System

)教 材:《计算机操作系统》刘福岩等 《计算机操作系统》汤子赢等教学方式:授课( 48 ) + 上机实习( 16 )考试类别:考试参考教材:1、现代操作系统,陈向群等译,机械工业出版社2、操作系统设计与实现,王鹏等译,电子工业出版社3、计算机操作系统教程, 张尧学、史美林,清华大学出

版社

Page 3: 操作系统 Operating  System

教学目的 通过对本章的讲解使学生1. 了解本课程的整体介绍2. 理解操作系统的概念,功能、作用、

分类,特征,以及结构设计

Page 4: 操作系统 Operating  System

本章重点:1 、熟悉操作系统作用和定义,了解操作系统的

历史。 2 、了解二类计算机硬件系统结构,熟悉现代

操作系统的硬件基础——通道和中断。 3 、熟练掌握多道程序设计技术的概念,掌握

批处理系统、分时系统及实时系统三种操作系统基本类型,了解微机操作系统、网络操作系统和分布式操作系统。

4 、掌握操作系统并发性、共享性、虚拟性和异步性等特征,了解现代操作系统特征,熟悉操作系统功能。

Page 5: 操作系统 Operating  System

本章难点: “ 多道程序系统”的功能实现 “ 分时操作系统”的功能实现 真正理解操作系统的主要特征

Page 6: 操作系统 Operating  System

第 1 章 操作系统引论 1.1 操作系统的目标和作用

1.2 操作系统的发展过程 1.3 操作系统的功能和主要特征 1.4 操作系统的机制和策略 1.5 操作系统的体系结构 1.6 典型操作系统简介

Page 7: 操作系统 Operating  System

本章学习目标

掌握操作系统的概念及作用了解操作系统的发展过程掌握操作系统的特征与功能牢记多道程序设计的概念理解操作系统的模型

Page 8: 操作系统 Operating  System

1·1 操作系统的目标和作用

1. 存储程序计算机的组成

1.1.1 冯 . 诺依曼结构的计算机

Page 9: 操作系统 Operating  System

(1) 概念和模型过于复杂,用户编程十分困难 在裸机基础上通过软件构造一个概念和模型相对简

单,更容易理解和进行程序设计的虚拟机,可以认为这个虚拟机就是操作系统,如磁盘管理。和裸机提供的概念和模型相比,操作系统构造和提供的概念和模型要简单得多,用户也更容易编程和使用。

(2) 性能不高 裸机提供的概念和模型过于复杂,用户直接对裸机编

制的程序,程序运行时效率往往非常低,其原因在于直接对裸机编程,用户往往不能充分利用裸机提供的资源,特别是不能最大限度的开发系统的并行性。如多道程序技术。

2. 直接使用裸机的困难

Page 10: 操作系统 Operating  System

示例

图 1.2 磁盘结构

作业 3

作业 2

作业 1

操作系统

内存分区

图 1.3 在内存中有三个作业的多道程序系统

Page 11: 操作系统 Operating  System

1. 现代计算机系统的组成 1.1.2 操作系统的作用

系统软件

工具软件:软、硬件检测疹断程序

应用软件: CAD、MIS 等自己开发的系统

计算机系统

硬件

软件

CPU

储存器:内存、外存(软硬盘、磁带机)

输入设备:键盘、鼠标、扫描仪等

输出设备:显示器、打印机、绘图仪

操作系统编译程序、 DBMS 等

Page 12: 操作系统 Operating  System

2. 操作系统在计算机系统中的地位

计算机硬件操作系统

系统工具应用软件

应用用户

应用开发人员

操作系统开发人员

紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)

Page 13: 操作系统 Operating  System

(1)从资源管理的观点— OS作为资源管理器: OS的首要任务是管理计算机系统中硬件与软件资源,使其得到充分而有效的利用:

1 )跟踪资源状态:时刻掌握计算机系统中资源的使用情况。

2 )分配资源:处理对资源的使用请求,协调冲突,确定资源分配算法。

3 )回收资源:回收用户释放的资源,以便下次重新分配。

4)保护资源:负责对系统资源的保护,避免受破坏。

3. 操作系统的作用 ( 体现在三个方面 )

Page 14: 操作系统 Operating  System

操作系统作为资源管理器的观点是目前人们对操作系统认识的一个主要观点,根据此观点,人们将计算机资源划分为四大类:

1 )处理机 2 )存储器 3 ) I/O设备 4 )信息(程序与数据) 相应可将操作系统分为四类管理器: 1 )处理机管理 2 )存储管理 3 )设备管理 4 )信息管理(文件系统)

Page 15: 操作系统 Operating  System

(2)从软件分层、扩允机器的观点—虚拟机:提供硬件的高层界面 (虚拟机 ), 取消硬件限制1)操作系统提供无限的内存、无限的 CPU

2 )扩充机器,功能更强大,使用更方便【虚拟机】:使用户和程序员在不必涉及和了解硬件工作细节的情况下能方便的使用计算机,而为用户所提供的一个等价的扩展计算机,称为虚拟计算机。

Page 16: 操作系统 Operating  System

(3)从服务用户的观点— OS用户与裸机间接口:操作系统为方便用户使用计算机提供了二级访问

接口:1)命令接口 :命令行。

2)调用接口 :形式上类似于过程调用,在应用编程中使用。

3 )图形接口:图形用户界面 GUI,方便用户使用。编程更为容易,软件可移植性增强;使用

更为方便。

Page 17: 操作系统 Operating  System

1. 操作系统的目标 有效性(系统管理人员的观点):

管理和分配硬件、软件资源,合理地组织计算机的工作流程

方便性(用户的观点)提供良好的、一致的用户接口,弥补硬件

系统的类型和数量差别 可扩充性与开放性(开放的观点):

硬件类型和规模、操作系统本身的功能和管理策略、多个系统间的资源共享和互操作。

1.1.3 操作系统的目标与定义

Page 18: 操作系统 Operating  System

2. 操作系统的定义

操作系统是控制和管理计算机系统的硬件和软件资源,合理的组织计算机工作流程以及方便用户使用的程序和数据的集合。

设置操作系统的目的就是提高计算机系统的效率,增强系统的处理能力,充分发挥系统的利用率,方便用户使用。

Page 19: 操作系统 Operating  System

1·2 操作系统的发展过程 操作系统发展的主要动力是用户的需求,并随着计算机硬件技术、软件技术的发展而不断发展完善。

1 )提高资源的利用率和系统性能:计算机发展的初期,计算机系统昂贵,用作集中计算

2 )方便用户:用户上机、调试程序,分散计算时的事务处理和非专业用户。

3 )硬件的发展: CPU的位宽度(指令和数据)、快速外存、新硬件、新技术的出现等。

4 )计算机体系结构的不断发展。

Page 20: 操作系统 Operating  System

1·2 OS 的发展史—手工 1 、手工操作 ( 1946 ~ 50 年代,电子管时代)【特点】:计算机资源昂贵 ,没有操作系统【工作方式】:

– 用户:用户既是程序员、操作员,还是计算机专业人员;– 编程语言:为机器语言;– 输入输出:纸带或卡片;

【计算机的工作特点】:– 用户独占全机:用户独占计算机所有资源,资源利用率低;– CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片; CPU利用率低;

【主要矛盾】:– 计算机处理能力的提高,手工操作的低效率– 用户独占全机的所有资源;

Page 21: 操作系统 Operating  System

图例

手工时期的操作

联机批处理

Page 22: 操作系统 Operating  System

1·2 OS 的发展史—单道 2 、单道批处理系统( 50 年代末 ~ 60 年代中,晶体

管)【特点】: 利用磁带把若干个作业分类编成作业执行序列,每个批

作业由一个专门的监督程序( Monitor)自动依次处理。可使用汇编语言开发。

【批处理中的作业的组成】:– 用户程序– 数据– 作业说明书(作业控制语言)

【批处理】:– 供一次加载的磁带或磁盘,通常由若干个作业组装成,在

处理中使用一组相同的系统软件(系统带)

Page 23: 操作系统 Operating  System

1·2 OS 的发展史—单道 批处理方式可分为联机批处理和脱机批处理。1)联机批处理

– 用户提交作业:以纸带或卡片为介质;– 操作员合成批作业:结果为磁带介质;– 批作业处理:对批作业中的每个作业进行相同的

处理:从磁带读入用户作业和编译链接程序,编译链接用户作业,生成可执行程序;启动执行;执行结果输出。

【存在的问题】: 慢速的输入输出处理仍直接由主机来完成。输入输出时, CPU处于等待状态。

Page 24: 操作系统 Operating  System

1·2 OS 的发展史—单道2 )脱机批处理

系统库

输入带

输出带

运行日志主机

执行带读卡机

打印机

卫星机

Page 25: 操作系统 Operating  System

1·2 OS 的发展史—单道2 )脱机批处理 利用卫星机完成输入输出功能。主机与卫星机

可并行工作。– 卫星机:完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上。

– 作业控制命令由监督程序 (monitor)来执行,完成如装入程序、编译、运行等操作。

【优点】:同一批内各作业的自动依次更替,改善了主机 CPU和 I/O设备的使用效率,提高了吞吐量。

【缺点】:磁带或磁盘需要人工装卸,作业需要人工分类,监督程序易遭到用户程序的破坏(由人工干预才可恢复)。

Page 26: 操作系统 Operating  System

1·2 OS 的发展史—单道【单道批处理的特征】:

– 自动性 :磁带上一批作业能自动逐个依次运行–对 I/O为主的作业, CPU空闲;– 顺序性 : 作业顺序进入内存 ,执行与完成的顺序和调入的顺序完全相同。

– 单道性 : 内存中仅有一道程序 ,只有该程序完成或发生异常时 ,才调入后继程序进入内存运行

【单道批处理的主要问题】:

一个用户独占全部资源 CPU负责计算,也负责传输 ,CPU与外设速度不匹配。

CPU与 I/O串行资源利用率仍然很低。

Page 27: 操作系统 Operating  System

中断技术和通道技术 60 年代硬件两个重大进展:中断技术和通道技术 1 )中断:指 CPU在收到外部中断信号后,停止原来工

作,转去处理该中断事件,完毕后回到原来断点继续工作。

【中断处理过程】:中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点的现场并继续原有任务。

【中断分类】:硬件中断(分为硬件故障中断、 I/O中断和外部中断)与软件中断(可分为程序中断 < 例如定点操作数溢出、地址越界、虚存管理中缺页等 > 和访管中断)。

Page 28: 操作系统 Operating  System

中断的处理过程用户程序 中断机构(硬件) 中断处理程序

判断中断类型

保护旧的 PSW

取出新的 PSW

取出中断码,分析中断原因

按不同原因处理

取出旧的 PSW 重新装入,返回断点

旧 PSW……

新 PSW……

Page 29: 操作系统 Operating  System

中断技术和通道技术 2 )通道 (又称为 I/O处理机 ) :实际上是一台功

能单一、结构简单的 I/O处理机,它单独与 CPU,并直接控制外部设备,与内存进行数据传输。 – 通道有专用的 I/O处理器,可与 CPU并行工作。通道具有自己的指令(通道指令),可编程实现各种复杂的 I/O处理。

– 可实现 I/O联机处理 【 CPU与通道的通讯】: CPU与通道之间为主

( CPU)从关系(通道),采用通道进行数据传输的过程如下: CPU向通道发出 I/O指令;通道执行通道程序进行 I/O操作; I/O完成或出错时,以中断方式请求 CPU处理。

Page 30: 操作系统 Operating  System

单通道 I/O 系统

主存

通道

通道

控制器

控制器

控制器

控制器

设备 A

设备 B

设备 C

设备 D

设备 E

设备 F 通道的四级连接,三级控制( CPU->通道 ->控制器 -> 设备)

Page 31: 操作系统 Operating  System

【多道程序设计原理】:在计算机内存中同时存放几道相互独立的程序,它们在管理程序的控制下相互穿插地运行,共享 CPU和外设等资源。采用多道程序设计技术的批处理系统称为多道批处理系统。

1 )多道程序设计的实现 – 存储保护与重定位。在多道程序设计环境中,几道程序共享同一内存,硬件必须提供必要的手段保证各道程序之间不互相侵犯。

– 处理机管理和调度。多道程序共享同一个处理机,因此存在处理机的调度问题。

– 资源的管理和调度。多道程序共享资源,同样存在着资源的分配问题。

1·2 OS 的发展史—多道

Page 32: 操作系统 Operating  System

1·2 OS 的发展史—多道 2 )多道程序设计的特征

– 多道。同时存在两道或两道以上的程序处于执行的开始点和结束点中间。

– 宏观并行。都处于运行状态,但都未运行完;– 微观串行。各作业交替使用 CPU。

3 )多道批处理系统的优缺点:– < 优 >资源利用率高: CPU和内存利用率较高;– < 优 >作业吞吐量大:单位时间内完成工作总量大;– < 缺 >用户交互性差:整个作业完成后或中间出错

时,才与用户交互,不利于调试和修改;– < 缺 >作业平均周转时间长:短作业的周转时间

(从作业提交到完成的这段时间)显著增长;

Page 33: 操作系统 Operating  System

单道和多道批处理的比较

多道程序系统和多处理系统 (Multi-Processing System)的区别:前者指多个程序同时在内存中交替运行,后者指多个处理器。

  单道 多道内存使用 每次一个作业 每次多个作业(充分利用

内存)

作业次序 顺序,先进先出 无确定次序

Page 34: 操作系统 Operating  System

多道批处理系统的资源利用 多道批处理系统的资源利用效率特征是基于各作业对系统资源的需求差异得到的。 例如:有 3个作业 A、 B、 C,分别为计算、检索和打印作业,单道运行时间分别为 5分、 15分和 10分钟。它们可并行在 15分钟内完成 3 个作业。各资源在单道、多道环境下的利用效率是多少?

单道

多道

CPU

17%(5/30)33%(5/15)

打印机

33%(10/30)66%(10/15)

磁带

50%(15/30)100%(15/15)

Page 35: 操作系统 Operating  System

4 )多道批处理系统的核心技术:–作业调度:作业的现场保存和恢复–资源共享:资源的竞争和同步——互斥机制–内存使用:提高内存使用效率(为当前由 CPU执行的程序提供足够的内存)——覆盖(overlay),交换 (swap)和虚拟存储(virtual memory)

–内存保护:系统存储区和各应用程序存储区不可冲突,即存储保护

–文件非顺序存放、随机存取。 出现了:作业管理、处理机管理、存储管理、设备管理、文件系统管理 (file system)

1·2 OS 的发展史—多道

Page 36: 操作系统 Operating  System

课堂练习 1.1 操作系统是一种 A ,在操作系统中采

用多道程序设计方式能提高 CPU和外部设备的 B 。一般来说,为了实现多道程序设计,计算机需要有 C 。

A: (1)通用软件; (2) 系统软件; (3) 应用软件; (4) 软件包。B: (1)利用效率; (2) 可靠性; (3)稳定性; (4)兼容性。C : (1)更大的内存; (2) 更快的外部设备; (3) 更快的 CPU ; (4)更先进的终端;

答案:A(2),B(1),C(1)

Page 37: 操作系统 Operating  System

1·2 OS 的发展史—分时 4 、分时操作系统 ( 70 年代中期至今,大规模集成电路)

【分时】:两个或两个以上的事件按时间划分轮流的使用计算机系统的某一资源。

【分时系统】:多个用户分时(分时的时间单位称为时间片,通常为几十毫秒)地使用同一计算机系统称为分时系统。主要采用时钟和中断技术。

1)分时系统实现方法:– 系统配置多路卡及时接受各终端输入命令和数据。– 及时处理,不允许某作业长期占用处理机 , 将响应周期

分为很短的时间片 , 在该周期内每个作业轮流执行一次(占一个时间片 ) 。每个作业可以及时接收用户的命令和数据 , 并能及时得到处理。

Page 38: 操作系统 Operating  System

分时系统的结构示意图

Page 39: 操作系统 Operating  System

1·2 OS 的发展史—分时 2 )分时系统的特点:

–同时性或多路性:多用户同时操作、使用计算机–独占性:各终端用户感觉到自己独占了计算机;–及时性:用户的请求能在较短时间内响应;–交互性:用户能与计算机进行人—机对话。

3)调进和调出( Roll-in / Roll-out)调进 /调出是实现分时系统的一种主要方式,包括:–主存—后援存储器方式:简单分时系统所采用,特点:内存只存放一个当前执行作业,其他放在外存上。

–多流调入调出方式:基于多道程序技术,特点主存中同时存放一个当前执行作业和多个后备作业。

Page 40: 操作系统 Operating  System

1·2 OS 的发展史—分时 4 )分时系统的响应时间 响应时间为用户发出一条指令到系统处理完这条指令并做出回答所需要的时间。是衡量分时系统性能好坏的一条重要标志,但具体的响应时间与系统的用户个数及时间片大小有关。响应时间 T 与时间片 q 和用户个数 n 之间的关系为 T=n q 。

【注意】:分时系统在轮转处理多个终端用户的请求时,在调入 /调出上增加了许多时间消耗,其中主要是主存与后援存储器之间的信息交换时间。因此为改善响应时间需要: <1>加快主存与后援存储器之间的对换速度 ;<2>减少对换的信息量。

现在的许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。

Page 41: 操作系统 Operating  System

课堂练习 1.2 分时系统中,为使多个用户能够同时与系统交互,最关键的问题是 A ,当用户数目为 100时,为保证响应不超过 2秒;此时的时间片最大应为 B 。

A : (1)计算机具有足够的运行速度; (2)内存容量应足够大; (3)系统能及时地接收多个用户输入; (4)能在一短的时间内,使所有用户程序都能运行; (5)能快速进行内外存对换。B : (1)10ms ; (2)20ms ;

(3)50ms; (4)100ms ; (5)200ms。

答案: A(4),B(2)

Page 42: 操作系统 Operating  System

1·2 OS 的发展史—实时 5、实时操作系统 实时操作系统主要用于过程控制、事务处理等有实时要求的领域,其主要特征是实时性和可靠性。

1)实时系统的分类:– 实时控制:要求与被控制的变化速度相比,其反应速度足够快;工作安全可靠;需要人工干预时,操作简便。如生产过程控制,宇航自动控制等。

– 实时信息处理系统:要求计算机能够在容许的延迟时间内,响应外部的事件请求,完成对该事件的处理,并控制所有的实时设备和实时任务协调运行。如飞机订票系统 , 期货、股票交易系统等。

Page 43: 操作系统 Operating  System

1·2 OS 的发展史—实时 2 )实时系统的特征: 实时系统具有专用性、种类多、用途各异等特点,其一个基本特征是事件驱动,即接收到某些外部信息后,由系统选择某一程序去执行,完成相应的实时任务。– 实时时钟管理。向系统提供日期、时刻以及定时任务(每间隔一固定时间循环执行)和延迟任务(推迟一段时间后执行)进行控制的信号。

– 中断管理。实时系统必须有效和高速的完成各种中断处理。

– 系统容错管理。高可靠性一直是实时系统的设计目标。

Page 44: 操作系统 Operating  System

1·2 OS 的发展史—实时– 多重任务管理。实时系统的物理过程具有并发性的特点,因此实时系统应具备多重任务处理的能力,且强调任务调度与转换的高效性。

– 系统生成能力。实时系统大多是专用性的系统,其种类与规模相差较大,因此,要求实时操作系统应具有较强的生成能力,以便根据需要裁剪或补贴系统功能,使之与应用系统相适应。

目前的操作系统,通常具有分时、实时和批处理功能,又称作通用操作系统。可适用于计算、事务处理等多种领域,能运行在多种硬件平台上,如 UNIX系统、 Windows NT等。——通用化、小型化

Page 45: 操作系统 Operating  System

分时系统与实时系统的比较 1 )系统的设计目标不同。分时系统是提供一种随时可

供多个用户使用的通用型很强的操作系统,而实时操作系统大多数是具有特殊用途的专用系统。

2 )交互性的强弱。分时具有较强的对话与交互能力,而实时系统交互性很弱。

3 )响应时间的长短。分时只要能满足一般用户能接受的等待时间即可,而实时系统的响应时间要求严格。

4 )另外其均具备多路性、独立性、及时性、交互性、可靠性,只是实时系统对系统的及时性和可靠性要求更高。

Page 46: 操作系统 Operating  System

1·2 OS 的发展史—网络 6、网络操作系统( NOS,Network Operating

System) 网络操作系统是在通常操作系统功能的基础上提

供网络通信和网络服务功能的操作系统。

Page 47: 操作系统 Operating  System

1·2 OS 的发展史—网络【计算机网络基本概念】1 )计算机网络:计算机网络是计算机技术与通信技术相结合的产物 , 是互连起来的计算机的集合.

2 )计算机网络产生的背景:微电子技术的发展与进步;计算机的应用社会化;通信技术的进步和普及。

3)特征: 资源共享性;独立自主性4)微机网络:微型机技术的巨大进展 , 微机网络也随之崛起,并获得高速的发展,巳成为计算机网络中最活跃的一个分枝。

Page 48: 操作系统 Operating  System

1·2 OS 的发展史—网络【网络的构成】:1 )主机 (HOST) :主机

是组成网络的独立自主的计算机系统,用于运行用户程序 (即应用程序 )。

2) 子网(通信子网 ) : 是将入网主机连接起来的实体。子网的任务是在入网主机之间传递信息 , 以提供通信服务 .

3)协议( protocol):网络计算机在互相通信时为能正确进行并相互理解通信内容需遵循的约定。如 TCP/IP等。

Page 49: 操作系统 Operating  System

1·2 OS 的发展史—网络【网络操作系统 】 : 在通常的操作系统中增加了实现网络低层协议(一般到传送层)功能和网络设备管理功能的操作系统。如 UNIX、 LINUX, WINDOWS NT都是网络操作系统。

【网络 OS功能】 : <1>高效、可靠的网络通信 <2>对网络中共享资源(在 LAN中有硬盘、打印机等)有效的管

理 <3>提供电子邮件、文件传输、共享硬盘、打印机等服

务 <4>网络安全管理 <5>提供互操作能力

Page 50: 操作系统 Operating  System

1·2 OS 的发展史—分布 7 、分布式操作系统( Distributed Operating System ) 1 )分布式计算机系统是以计算机网络为基础的计算机系

统,包含多台处理机,每台处理机完成系统中指定的一部分功能。 从硬件上讲,它与计算机局域网没有任何区别,关键是软件。

【特征】:– 以计算机网络为基础;– 处理上的分布,即功能和任务的分布。所有系统任务

可在系统中任何处理机上运行,自动实现全系统范围内的任务分配并自动调度各处理机的工作负载。

– 坚强性 ( 强壮性 ) – 高可靠性

Page 51: 操作系统 Operating  System

2 )分布式操作系统的特点 分布式和集中式操作系统的主要区别在于通讯、

资源管理和系统结构三个方面。分布式主要特点是:– 系统状态的不确定性。各系统内结点自治,且信息传播需要时间,很难及时和准确把握系统的状态信息。

– 控制机构的复杂性。不存在主从关系或层次关系,增加了控制的复杂性。

– 通讯开销引起性能下降。 3)分布式 OS的功能:

(1) 进程迁移 (2) 分布式同步 (3) 任务分配 (4) 资源管理

1·2 OS 的发展史—分布

Page 52: 操作系统 Operating  System

网络和分布式的区别1) 分布式系统的各个计算机之间处于平等

地位无主从关系;网络有一些主从关系

2) 分布式系统资源为所有用户共享;而网络有限制地共享。

3) 分布式系统中一项任务可分给若干处理单元相互协作共同完成,而网络往往是各司其责

Page 53: 操作系统 Operating  System

1·2 OS 的发展史—多处理机

8、多处理操作系统( Multi-processor Operating System)

多处理机系统是由多台处理器组成的计算机系统。多处理操作系统的出现是为了提高计算机系统性能和可靠性。提高性能有两条途径:提高各个组成部分的速度、或增大处理的并行程度。 1975 年前后,出现多处理机系统 (multi-processor)。

【多处理机系统的特点】:– 增加系统的吞吐量: N 个处理器加速比达不到 N倍(额外的调度开销,算法的并行化)

– 提高系统可靠性:故障时系统降级运行

Page 54: 操作系统 Operating  System

【多处理机系统的类型】:–紧密耦合:各处理机之间通过快速总线或开关阵列相连,共享内存,整体系统由一个统一的 OS管理(一个 OS核心)。

–松散耦合:各处理机带有各自的存储器、 I/O设备和操作系统,通过通道或通信线路相连。每个处理机上独立运行 OS 。

1·2 OS 的发展史—多处理机

Page 55: 操作系统 Operating  System

【多处理操作系统的类型】:–非对称式多处理:又称主从模式。

主处理器:只有一个,运行 OS。管理整个系统的资源,为从处理器分配任务;

从处理器:可有多个,执行应用程序或 I/O处理。 特点:不同性质任务的负载不均,可靠性不够高,不易移植(通常要求硬件也是 "非对称 ")。

–对称式多处理: OS交替在各个处理器上执行。任务负载较为平均,性能调节容易。

1·2 OS 的发展史—多处理机

Page 56: 操作系统 Operating  System

课堂练习 1.3 在设计分时操作系统时,首先要考虑的

是 A ;在设计实时操作系统时,首先要考虑的是 B ;在设计批处理系统时,首先要考虑的是 C 。

A 、 B 、 C : (1)灵活性和可适应性; (2)交互性和响应时间; (3)周转时间和系统吞吐量; (4) 实时性和可靠性。

答案:A(2),B(4),C(3)

Page 57: 操作系统 Operating  System

课堂练习 1.4 为了提高计算机的处理机和外部设备的利用率,把多个程序同时放入主存,在宏观上并行运行是 A ;把一个程序划分成若干个同时执行的程序模块的设计方法是 B ;多个用户在终端设备上的交互方式输入、排错和控制其程序的运行是 C ;由多个计算机组成的一个系统,这些计算机之间可以通信来交换信息,互相之间无主次之分,它们共享系统资源,程序由系统中的全部或部分计算机协同执行,管理上述计算机系统的操作系统是 D ;有一类操作系统的系统响应时间的重要性超过系统资源的利用率,它被广泛地应用于卫星控制、飞机订票业务等领域是 E 。

A—E:①分时 OS ② 实时 OS ③批处理系统 ④网络 OS⑤分布式 OS ⑥单用户 OS ⑦多重程序设

计 ⑧多道程序设计 ⑨并发程序设计

答案:A(8),B(9),C(1),D(5),E(2)

Page 58: 操作系统 Operating  System

1·3 OS 的功能和主要特征 1. 操作系统的功能 操作系统的主要任务是对系统中的软件、硬件实施有效的管理,以提高系统资源(主要包括处理机、主存储器和外存储器、文件系统)的利用率。主要功能如下:

(1)处理机管理: (2)存储管理 (3)设备管理 (4)信息管理 (5)用户接口

Page 59: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (1)处理机管理: 可归结为进程管理,包括以下方面

–进程控制。创建进程,撤销进程,控制进程的运行状态转换。

–进程调度。从就绪的进程队列中选择一进程并把处理机分配给它,设置现场并是指投入运行。

–进程同步。设置进程同步信息,以协调系统中各进程的运行。

–进程通讯。负责进程间的信息交换。

Page 60: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (2)存储管理: 为多道程序的运行提供良好的环境,并提高利用率,包括以下方面:–地址重定位。实现逻辑地址到物理地址的转换。–存储分配。为每道程序分配内存空间,并在作业结束后收回其所占用内存。

–存储保护。保证每道程序之间不能互相侵犯,尤其是不能侵犯操作系统。

–存储扩充。通过建立虚拟存储系统来实现内存逻辑上的扩充。

Page 61: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (3)设备管理: 设备管理的主要目标是方便的设备使用、提高CPU与 I/O设备利用率。主要包括:–缓冲管理:设立 I/O缓冲区,并对缓冲区进行有效管理。

–设备分配:按一定策略和设备使用情况,分配并回收设备。

–设备处理:即设备驱动程序,实现 CPU和设备控制器之间的通讯等。

–设备独立性和虚拟设备:独立性指应用程序独立于物理设备,使用户编程与实际使用的设备无关,增强了可移植性。虚拟设备指将低速的设备改造为高速的共享设备。

Page 62: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (4)信息管理(文件系统管理): 对用户文件和系统文件进行管理,解决文件资源的存储、共享、保密和保护。包括以下方面:–目录管理:为每一文件建立目录项,并对目录实施有效的组织与管理。

–文件的读写管理和存取控制:解决信息安全问题。系统设口令“哪个用户”、用户分类“哪个用户组”、文件权限“针对用户或用户组的读写权”。

–文件存储空间管理:解决如何存放信息,以提高空间利用率和读写性能。

–软件管理:软件的版本、相互依赖关系、安装和拆除等。

Page 63: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (5)用户接口 目标是提供一个友好的用户访问操作系统的接口。操作系统提供三种接口:–命令接口:亦称为作业控制机接口,分为联机命令和脱机命令接口。供用户用于组织和控制自己的作业运行。命令行;命令脚本“脱机”。

–程序接口:用户获得操作系统服务的唯一途径。供用户程序和系统程序调用操作系统功能。系统调用和高级语言库函数。

–图形接口:图形用户界面 GUI,方便用户使用。如窗口、菜单等。

Page 64: 操作系统 Operating  System

1·3 OS 的功能和主要特征 2. 现代操作系统的主要特征 设置操作系统的目的就是提高计算机系统的效率,增强系统的处理能力,充分发挥系统的利用率,方便用户使用。因此现代操作系统普遍采用以多道程序设计为基础的并行操作技术。主要特征如下:

(1)并发性 (concurrency) (2)共享性 (sharing) (3)虚拟性 (virtual) (4)异步性 (asynchronism)

Page 65: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (1)并发性 (concurrency) 多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(parallel)是指在同一时刻发生。–在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下) 。

–程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程。

Page 66: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (2)共享性 (sharing) 多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。

–互斥共享方式(如音频设备),资源分配后到释放前,不能被其他进程所用。

–同时访问方式,(如可重入代码,磁盘文件)。–资源分配难以达到最优化

Page 67: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (3)虚拟性 (virtual) 一个物理实体映射为若干个对应的逻辑实体(分时或分空间)。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。 – CPU——每个用户(进程)的“虚处理机”。–存储器——每个进程都占有的地址空间(指令+数据+堆栈)。

–显示设备——多窗口或虚拟终端

如虚拟光驱,虚拟机( VMWare , Virtual PC等)

Page 68: 操作系统 Operating  System

1·3 OS 的功能和主要特征 (4)异步性 (asynchronism) 异步性也称不确定性,指进程的执行顺序和执行时间及执行结果的不确定性:–程序执行结果不确定,不可再现。相同输入与环境下多次运行结果不同。

–多道程序设计环境下,程序按异步方式运行。多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢,引发执行顺序与时间的不确定。

Page 69: 操作系统 Operating  System

1.4 操作系统的机制和策略1. 操作系统界面 两个界面:程序界面和操作界面。2. 核心态和用户态 (1)核心态(管态、系统态)与用户态(目态、非系统态)。 (2)特权指令与非特权指令:只能在核心态下处理机才能够执

行的指令称为特权指令,其它的指令称为非特权指令。 (3) 状态转换:访管指令指访问核心态下的程序指令。在奔腾处理机中通过软中断指令实现处理机的状态从用户态向核心态的切换,通过中断返回指令实现从核心态向用户态的切换。

3. 特权指令特权指令为了实现保护,防止某些用户执行一些恶意的操作。

典型的特权指令如下:(1) 输入 / 输出指令(2) 开关中断指令:(3) 停机指令: (4) 访问特殊功能寄存器:

Page 70: 操作系统 Operating  System

中断和异常:如果由于当前正在执行指令的原因而引起处理机暂停执行当前程序,称为异常。异常是由处理机所执行的程序本身引起的,一般用于操作系统实现某些机制。而如果不是由于当前正在执行的指令的原因而引起处理机暂停执行当前程序,称为中断。中断一般用于输入 / 输出时外设请求处理机对其进行处理。

异常的产生的原因:( 1 )应用程序执行的指令在逻辑上就是错误的,例如应用程

序执行了非法指令(引起非法指令异常)、又如在用户态下执行了特权指令(引起保护异常)等;

( 2 )当前执行的程序是正确的,但是由于某些原因,应用程序当前执行的指令无法执行,解决了这些原因以后,应用程序也就能够继续执行了,而这些原因一般是能够解决的。如存储访问失效异常属于第二类异常。

可恢复异常的产生和处理是实现操作系统时很重要的一种机制,许多操作系统功能都是通过可恢复异常实现的。

4. 可恢复异常和指令重启动

Page 71: 操作系统 Operating  System

5. 操作系统机制和策略

6. 操作系统内核 系统必须有一个部分能对硬件处理器及有关资源进行首次改造,以便给进程的执行提供良好运行环境,这个部分就是操作系统的内核。内核结构有微内核和单内核之分。

内核必须提供以下三方面功能:设计内核要少而精 (1) 中断处理。中断处理要简单 (2) 短程调度。调度算法要有效 (3) 原语管理。原语应灵活有力,数量适当 内核的执行有以下属性: (1)内核是由中断驱动的。 (2)内核的执行是连续的。 (3)内核在屏蔽中断状态下执行。 (4)内核可以使用特权指令。

操作系统中各个部分的功能、作用及其相互关系,称为操作系统机制。机制问题也就是总体结构问题,或者说总体框架问题。确定了操作系统机制以后,具体到每一部分如何实现,就需要一定的算法,这些算法属于操作系统策略的问题。

Page 72: 操作系统 Operating  System

内核的作用:是操作系统对裸机的第一次改造,内核和裸机组成了一台没有中断虚拟机。虚拟机的特点:

(1) 虚拟机为每个进程提供了一台虚拟处理器,每个进程就好象在各自的私有处理器上顺序地推进,实现了多个进程的并发执行。

(2) 虚拟机为进程提供了功能较强的指令系统,即它们能够使用机器非特权指令,系统调用和原语所组成的新的指令系统。

7. 核外抽象(1)进程:运行中的程序(2)线程 : 在一个多线程环境中,进程是系统进行保护和资源分配的单位,而线程则是进程中一条执行路径,每个进程中允许有多个并行执行的路径,而线程才是系统进行调度的单位。

Page 73: 操作系统 Operating  System

(3) 管程

管程是管理共享资源的程序 ( 一种同步机制 ) ,对管程的调用表示对共享资源的请求与释放。管程与进程的区别:

<1>管程定义的是公用数据结构,而进程则是私有数据结构;<2>管程把共享变量上的同步操作集中起来,而临界区却分散

在每个进程中;<3>管程是为管理共享资源而建立的,进程主要是为实现系统

的并发性而引入的;<4>管程是被欲使用共享资源的进程所调用的,管程和调用它

的进程不能并行工作,而进程之间能并行工作,并发性是其固有特性;

<5>管程是语言或操作系统的成分,不必创建或撤销,而进程有生命周期,由创建而产生至撤销便消亡。

Page 74: 操作系统 Operating  System

(4) 类程 类程用于管理私有资源,对类程的调用表示对私有资源的操

作。它仅能被进程及起源于同一进程的其它类程或管程嵌套调用链所调用。其本身也可以调用其它类程或管程。类程可以看作子程序概念的扩充,但一个类程可以包含多个过程,不像子程序仅仅一个。

采用进程、管程、类程实现的操作系统中,进程在执行过程中若请求使用共享资源,则可以调用管程;若要控制私有资源操作,可以调用类程,这样便于使用高级程序设计语言来书写操作系统。 1975年,汉森使用这一方法就成功地在PDP 11/45机上实现了:单用户操作系统 Solo、处理小作业的作业流系统和过程控制实时调度系统等三个层次管程结构的操作系统。

Page 75: 操作系统 Operating  System

8.Pentium 处理机中的特权级

以 Pentium处理器为例,介绍操作系统机制和策略的一个具体的例子。 在保护模式下, Pentium处理器采用段页式寻址,共有六个段寄存器:

CS 、 DS 、 SS 、 ES 、 FS 、 GS。段寄存器中的内容包括两个部分:可见部分和不可见部分,其中可见部分共十六位,其格式如下图所示:

在特权级方面,有 4 个特权级( Linux 和 Windows只用了 2 个)。

特权级的使用:

应用程序给出的特权级称为请求特权级( RPL)

全局描述符表和局部描述符表中保存的特权级称为描述符特权级( DPL)

CS段寄存器中的特权级称为当前特权级( CPL)

请求特权级和当前特权级中较低的特权级称为有效特权级( EPL)。由于较低的特权级数值较高,所以 EPL=max ( RPL , CPL)。

只有当请求特权级( RPL)低于进程的描述符特权级( DPL)和当前特权级( CPL)时(即 RPL<=DPL && RPL<=CPL),对段寄存器的赋值才是有效的,否则应用程序不能访问段中的数据。

Page 76: 操作系统 Operating  System

示例: Pentium 处理器中的段寄存器与段描述符表

全局段描述符表 (TI=0)

局部段描述符表 (TI=1)

四级特权级,第 0 级级别最高(核心态),第 3 级级别最低(用户态)。

索 引(用于查询段描述符表) TI 特权级15 3 2 1 0

0

1

8191

0

1

213-1

Page 77: 操作系统 Operating  System

应用程序在处理机上运行时,当把一个段选择子装入 CS寄存器时,就会发生控制转移,控制转移可能影响当前的特权级。可能的控制转移有下面几种:

(1) 同一特权级的段间转移 (2) 到相同或更高特权级的段间转移(可以改变 CPL)。 (3) 到相同或更高特权级的任务内的中断(可以改变 CPL)。 (4) 到较低特权级的段间转移(改变任务的 CPL)。 (5) 任务切换。

这里要说明的是,所有的控制转移,都必须服从特权规则,这些规则包括: (1) 若控制转移要求特权级发生变化,则必须通过门。 (2) 若使用 JMP指令产生段间控制转移,则只能在同一特权级别中进行。 (3) 若使用 CALL指令产生段间控制转移,则可以在同一特权级别内,也可以通过门转移到更到的特权级。

(4) 同一任务内处理的中断,遵循与 CALL调用指令相同的规则。 (5) CPL和指向门选择器的 RPL的级别必须大于或者等于门的 DPL(描述符特权级)。

(6) 并不切换任务的返回指令,只能将控制返回到相同和更低的特权级的代码段。

(7) 任务切换可以由 CALL、 JMP和 INT指令完成,若在任务切换时涉及任务或任务状态段,则它们的特权级必须低于或者等于老任务的 CPL。

Page 78: 操作系统 Operating  System

1·5 操作系统的体系结构 现代操作系统从内部结构划分,通常包含两部分:一是内核;二是核外部分,其余通常是一些实用程序。

1 、操作系统的内核 1 )内核在操作系统中的地位: OS内核是对硬件的首次扩充,是实现操作系统各项功能的基础。

传统操作系统内核包括以下功能模块:–进程、线程及其管理–存储管理。–I/O管理–文件系统。

Page 79: 操作系统 Operating  System

1·5 操作系统的体系结构 2 )强内核与微内核: 操作系统有两种内核组织形式:

–强内核 (Monolithic Kernel) :通过陷入内核实现系统调用,即在内核完成所需要的服务后将结果返回给用户程序,如 UNIX采用的这种结构。

–微内核 (Micro Kernel) :微内核的基本思想是良好的结构化、模块化、最小的公共服务。

微内核只提供最基本、最必要的服务:供进程间通讯、有些存储管理、有限的低级进程管理和调度、低级 I/O四种服务。

Page 80: 操作系统 Operating  System

微内核的特点【优点】:

–良好的扩充性:只需添加支持新功能的服务进程即可。

–可靠性好:调用关系明确,执行转移不易混乱–便于网络服务,实现分布式处理:以同样的调用形式,在下层可通过核心中的网络传送到远方服务器上 (远地过程调用 RPC, Remote Procedure Call)。

【缺点】: 消息传递比直接调用效率要低一些 (但可以通过提高硬件性能来补偿 )

Page 81: 操作系统 Operating  System

UNIX 的内核结构

Page 82: 操作系统 Operating  System

1·5 操作系统的体系结构 2 、操作系统的结构设计 【 OS结构设计模式】:是将操作系统所提供的特性、服务以及系统所执行的任务统一成一体的一个概括性的框架。

随着操作系统的发展,功能越强, OS自身代码量越大。操作系统采用良好的结构:有利于保证正确性以及自身修改和扩充。四种模式:

(1)整体或模块结构(2)分层结构或虚拟机(3)客户 /服务器模型或微内核结构(4)面向对象技术

Page 83: 操作系统 Operating  System

操作系统的设计原则–可维护性:容易修改与否称为可维护性:

改错性维护:改正已发现的错误;适应性维护:修改软件,使之适应新的运行环境(软、硬件环境);如:操作系统的移植。

完善性维护:增加新功能;–可靠性:可靠性包括两方面:

正确性:正确实现所要求的功能和性能;稳健性:对意外(故障和误操作)作出适当的处理;

–可理解性:易于理解,以方便测试、维护和交流;–性能:有效地使用系统资源;尽可能快地响应用户请求;

Page 84: 操作系统 Operating  System

(1)整体或模块结构 整个系统按功能进行设计和模块划分。系统是一个单一的、庞大的的软件系统。这种结构思想来源于服务功能观点,而不是资源管理的观点。

【模块结构的特点】: 模块由众多服务过程(模块接口)组成,可以随意调用其他模块中的服务过程。–优点:具有一定灵活性,在运行中的高效率–缺点:功能划分和模块接口难保正确和合理;模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),降低了模块之间的相对独立性,不利于修改。

Page 85: 操作系统 Operating  System

(2)分层结构或虚拟机

从资源管理观点出发,划分层次。在某一层次上代码只能调用低层次上的代码,使模块间的调用变为有序性。系统每加一层,就构成一个比原来功能更强的虚拟机。有利于系统的维护性和可靠性。

【优点】:–功能明确,调用关系清晰(高层对低层单向依赖),有利于保证设计和实现的正确性。

–低层和高层可分别实现(便于扩充);高层错误不会影响到低层;避免递归调用。

【缺点】:降低了运行效率

Page 86: 操作系统 Operating  System

– 被调用功能在低层:如文件系统管理 ->设备管理 ->设备驱动程序

– 活跃功能在低层:提高运行效率– 资源管理的公用模块放在最低层:如缓冲区队列、堆栈操作

– 存储器管理放在次低层:便于利用虚拟存储功能– 最低层的硬件抽象层:与机器特点紧密相关的软件放在最低层。

– 资源分配策略放在最外层,便于修改或适应不同环境

各系统对具体划分多少层次有不同的看法。

分层原则

Page 87: 操作系统 Operating  System

典型虚拟机 VM/370

VM/370 基于如下的思想:一个分时系统应该提供以下特性:( 1 )多道程序,( 2 )一个具有比裸机更方便、界面扩展的计算机。 VM/370 的主旨在于将此二者彻底地隔离开来。

VM/370 的体系结构如图1-6所示,它在裸机上运行并具备多道程序功能,它向上层提供了若干台虚拟机。但与其它操作系统不同的是:这些虚拟机不是那种具有文件等良好特征的扩展计算机,而仅仅是裸机硬件的精确复制,它包含有:核心态 /用户态、 I/O 功能、中断、以及真实硬件具有的全部内容。

370 裸机VM/370 (虚拟机监控程序)

CMS CMS CMS

图 1-6 带 CMS的 VM/370 体系结构

CMS :会话监控系统

370 虚拟机

Page 88: 操作系统 Operating  System

因为每台虚拟机都与裸机完全一样,所以每台虚拟机可以运行裸机能够运行的任何操作系统。不同的虚拟机可以运行不同的操作系统而且往往如此。某些虚拟机运行 OS/360 的后续版本作批处理或事务处理,而同时另一些运行一个单用户交互系统供分时用户使用,该系统称作 CMS(会话监控系统)。

当 CMS 上的程序执行一条系统调用时,该系统调用陷入其自己的虚拟机的操作系统,而不是 VM/370 ,这就象在真正的计算机上一样。 CMS然后发出正常的硬件 I/O 指令来执行该系统调用。这些 I/O指令被 VM/370捕获,随后 VM/370执行这些指令,作为对真实硬件模拟的一部分。通过将多道程序功能和提供虚拟机分开,它们各自都更简单,更灵活和易于维护。

现在虚拟机的思想被广泛采用:例如在奔腾 CPU (或其它 Intel的 32位 CPU )上运行老的 MS-DOS 程序时就采用了虚拟机的思想。不过在实现技术上,二者并不完全相同。

Page 89: 操作系统 Operating  System

(3)客户 /服务器模型或微内核结构

把操作系统分成若干分别完成一组特定功能的服务进程(服务器),等待客户提出请求;而系统内核只实现操作系统的基本功能 (如:虚拟存储、消息传递 ) 。

服务器运行于用户态,并循环检测是否有客户请求服务。客户可以是一个应用程序或者是另一操作系统成分。

用户——内核——服务器通过消息联系,如图所示。

Page 90: 操作系统 Operating  System

客户 / 服务器模式下的操作系统模型

客户应用程序

内存服务器

网络服务器

进程服务器

文件服务器

显示服务器

微内核

硬件

用户态核心态

发送接收

Page 91: 操作系统 Operating  System

1·5 操作系统的体系结构【客户 /服务器模型优点】:

–简化了基本操作服务,缩小了内核。提供了多种API且易于维护。

–提高了可靠性。服务程序在用户态,且独立运行,不能直接访问硬件。

–适合分布式计算环境。采用客户 /服务器为基础,且使用消息传递进行通讯。

Page 92: 操作系统 Operating  System

(4)面向对象技术

对象是指具有相同属性、服从相同规则的一类事物的抽象 , 其中的具体事物称为对象的实例 ; 将数据结构和定义在其上的一组操作封装起来表示某个对象。这样数据结构中的数据对外都是隐蔽的 , 必须通过封装其内的操作 (函数 ) 对它们访问。

【优点】:– 可修改性和可扩充性– 继承性– 正确性和可靠性

数据结构函数 1函数 2函数 3

Page 93: 操作系统 Operating  System

1·6 典型操作系统简介1.6.1 UNIX 操作系统1.UNIX操作系统的诞生 1965年麻省理工学院( MIT)、美国电报电话公司( AT&T )的贝尔实验室( Bell labs )和通用电气公司(GE )开始多用户分时操作系统 Multics 的开发工作。 1969年Multics 开始在 GE 645 计算机系统上运行,但它未能实现原定目标。 Multics 直接导致了一个声名显赫的操作系统— UNIX横空出世。

在退出 Multics 的研究之后, Bell Labs 的 Ken Thompson 发现当时鲜有人使用的 DEC PDP-7 计算机既便宜,又有较好的图形显示功能,于是决定把“ Space Travel (一个电玩)”移植到 PDP-7 上。但是 PDP-7无可用的编辑器,为此, Thompson和 Ritchie 用汇编语言首先开发成功了 16位的 UNIX 操作系统。

Page 94: 操作系统 Operating  System

UNIX继承了 Multics 的文件系统的树型结构、 SHELL命令语言、面向过程的结构化设计方法和采用高级语言编写操作系统的特点。UNIX 短小精悍,另一个开发人员 Brian Kernig-han 戏称道,是与 Multics 相比的双关语: UNI表示“一个”而MULTI表示“多个”,“ X” 是“ cs” 的谐音。 UNIX 的第一次实用,即为满足 Bell Labs专利部对正文处理的要求而在 1971 年运行在 PDP-11上。它第一次暗示了 UNIX将成为一个能在所有计算机上运行的操作系统。 1973 年 11 , Thompson和 Ritchie用 C 语言重写了 UNIX 系统,事实上今天所有的 UNIX 实现版本基本上都是用 C 语言编写的。

Page 95: 操作系统 Operating  System

小知识: UNIX 与 C 在UNIX 出现以前,一个操作系统必须完全用汇编语言写成,始能让机器发挥最高效能。 Thompson与 Ritchie ,是头几位领悟硬体与编译器的技术,已经进步到作业系统可以完全用高阶语言如 C 来写,仍保有不错的效能。五年後, Unix已经成功地移植到数种机器上。

这当时是一件不可思议的事!它意味著,如果Unix 可以在各种平台上跑的话, Unix 软件就能移植到各种机器上。再也用不著为特定的机器写软件了,能在 Unix 上跑最重要,重新发明轮子已经成为过去式了。

  除了跨平台的优点外, Unix与 C 还有许多显著的优势。 Unix与 C 的设计哲学是“ Keep It Simple, Stupid (简称 KISS )”。 programmer 可以轻易掌握整个 C 的逻辑结构(不像其他之前或以後的程式语言)而不用一天到晚翻手册写程式。

Ken Thompson与Dennis Ritchie 是唯一两位获得Turing Award( 图灵奖 )的工程师 ( 其他都是学者 )。

Page 96: 操作系统 Operating  System

在Unix诞生的初期, AT&T还没有把它作为它的正式商品, AT&T 以分发许可证的方法,对 Unix仅仅收取很少的费用,大学和研究机构就能获得 Unix 的源代码以进行研究。 Unix 的源代码被散发到各个大学,一方面使得科研人员能够根据需要改进系统,或者将其移植到其他的硬件环境中去 ,另一方面培养了懂得 Unix 使用和编程的大量的学生,这使得Unix 的普及更为广泛。

在UNIX 的发展过程中,各大公司纷纷形成了自己的 UNIX版本。 1989末,转卖给 SCO的 XENIX版本受UNIX SVR4 的冲击而终止了发展, SCO 开始推出 SCO UNIX 系列。 1995年 SCO从Novell 手中购买了 UNIXware ,实力大增。 Sun拥有Solaris,Digital、HP、 IBM 也分别有各自的 UNIX 系统。

1982 年, Microsoft曾与 Bell Labs商谈共同开发并统一 UNIX 的事宜,当时,成立仅 7 年的 Microsoft 的最大成就是 MS-DOS 1.0 。由于种种原因,商谈失败。如果成功了呢?也许就不会有Windows, 在精明的 Bill Gates 的领导下, UNIX 也许不会四分五裂。

Page 97: 操作系统 Operating  System

几乎在同时,加州大学伯克利分校计算机系统研究小组( CSRG )使用 Unix 对操作系统进行研究,他们对 Unix的改进相当多,增加了很多当时非常先进的特性( virtual memory, TCP/IP , Fast File System (FFS), reliable signals , socket 介面),很多其他Unix 使用者,包括其他大学和商业机构,都希望能得到 CSRG改进的Unix 系统。因此 CSRG 中的研究人员把他们的 Unix 组成一个完整的 Unix 系统── BSDUnix( Berkeley Software Distribution),向外发行。

到此, UNIX 就有了一个大的分支,分为 AT&T UNIX 和 BSD Unix ,现代的 Unix版本大部分都是这两个版本的衍生产品。

到了 70年代末,在 Unix 发展到了版本 6 之后, AT&T 认识到了Unix 的价值,成立了 Unix 系统实验室( Unix System Lab,USL )来继续发展 Unix 。同时 AT&T 也宣布对 Unix产品拥有所有权。

Page 98: 操作系统 Operating  System

2.UNIX 的标准化 UNIX 系统一直是现代工程工作站的主流操作系统。后来,由于 UNIX 的广泛影响, IEEE 成立了POSIX 委员基金会专门负责UNIX 的标准化工作。其实,在 1988 年 UI(UNIX International )和 OSF(Open Software Foundation )两大业界集团便开始各自的 UNIX标准化。 UI以 AT&T与 Sun 为代表,于 1989年底推出 UNIX System V Res 4.0 ,它将 BSD 4.3 与UNIX V.4 以前版本的用户界面统一成称为 Open Look 的图形界面。 OSF则以DEC、HP和 IBM 为支柱,也于 1990年发表了基于 BSD 4.3 的 OSF/1 。

Page 99: 操作系统 Operating  System

3.UNIX 的特点

UNIX各版本的基本特性是一致的:开放性、多用户、多任务、功能强、实现高效、网络功能丰富。

促使 UNIX 系统成功的因素:

1) 由于 UNIX 是用 C 语言编写 , 因此它是可移植的 , 是世界上唯一能在笔记本计算机、 PC 机、工作站直至巨型机上运行的操作系统。

2) 系统源代码短小精炼非常有效 , 系统容易适应各种特殊的需求。

3) 也是最重要的一点 , 它是一个良好的、通用的、多用户、多任务、分时操作系统。

Page 100: 操作系统 Operating  System

4.UNIX的内核结构

Page 101: 操作系统 Operating  System

1.6.2 Windows OS

1. 微软帝国的建立 1973年 Bill Gates (比尔·盖茨 , 1955 年西雅图)进

入哈佛大学就读。 1975年,和 Paul Allen (保罗·艾伦)完成了第一个在 MIT(麻省理工学院 )的 Altair 计算机上运行的 BASIC 编译器程序。良好的市场使得 Bill Gates和 Paul Allen 的信心倍增,同年 Bill Gates从哈佛大学自动办理退学,两人在新墨西哥州开创了世界上第一个微型计算机软件公司— Microsoft ( 1979 年迁往华盛顿州西雅图市),当时公司制定的目标:“每一个家庭每一张桌上都有一部微型电脑运行着我们的程序!” 。

Bill Gates (负责公司的销售、财务和行销计划)低价授权、以量致胜,微软 BASIC很快成了电脑产业的 软件标准、当时几乎每一家个人电脑制造商都会使用微软授权的软件。

Page 102: 操作系统 Operating  System

【Microsoft与 IBM 的不解之缘】

1924 年 2月,一个具有划时代意义的公司—— IBM公司(国际商业机器公司)成立。 IBM诞生后,在计算机硬件领域内创造出无数辉煌,蓝色巨人 IBM公司被誉为 IBM帝国。但是这一切随着 PC 机的诞生而改变。

1968 年, Robert Noyce (罗伯特 N.诺依斯,现代微电子学的奠基人)和摩尔等朋友创办了 Intel 公司。 Intel起初只是从事存储器的开发,英特尔走上芯片之路可谓是纯属偶然。 1971年 Intel 为日本一家计算器公司设计的 Intel 4004芯片,而且这家日本公司拥有这款芯片的全部知识产权。 Intel 4004( 4 位)首次将可编程计算机所必需的功能单元集成在了一块单芯片上,引发了芯片业的一场技术革命。从此 CPU巨人诞生了!

Page 103: 操作系统 Operating  System

微机的出现 微处理器的发明,使制造微电脑变得简单起来。人人都拥

有自己的电脑——个人电脑,已经变得可能了。但是在整个 70 年代,世界上最有实力的大电脑公司如 IBM、 DEC、 HP等却对个人电脑不屑一顾。

1975世界上第一台个人电脑 Altair(阿尔塔)面世,价格只有 397$(其中 Intel 8080芯片为 360$ ),而当时的电脑,很少有一万 $以下一台的。所以,阿尔塔电脑的广告一登出,立刻引起轰动。( Microsoft机遇)。

PC机的代表是 1978年由苹果公司生产的 APPLE机,自此PC时代开始了。苹果( APPLE ),这家草创于汽车库的公司,继推出第一代的苹果机后,随着又推出了苹果 II 型 III型电脑,销售额直线上升:短短五年时间,从 1978年 1500万 $增长到了 1982年 5.83亿 $。

Page 104: 操作系统 Operating  System

IBM 个人计算机

1979年 IBM (当时 IBM 是美国乃至世界上实力最雄厚的巨人企业之一,年营业额高达 280亿 $)公司眼看 PC市场被苹果等电脑公司占有,决定开发自己的个人计算机 。经过反复研究确定的发展策略为:一是必须依托独立软件公司之力,鼓励他们为 IBM 开发应用软件;二是设计出相对开放的机器架构,让众多的制造厂家有施展才华的余地,用不同功能的扩展卡来填充计算机。

于是 IBM决定 IBM-PC 的操作系统由Microsoft 开发(理由:微软的 BASIC、 FORTRAN 等高级语言; CP/M ,加州数据研究公司遭受冷遇),采用 Intel公司的 CPU 。现在的PC 机沿用了 IBM-PC 的结构,因此 IBM看做 PC 的鼻祖。 IBM 电脑的“开放性”,获得了巨大的成功并一举把苹果公司赶下微电脑的宝座。

Page 105: 操作系统 Operating  System

INTEL 和微软的崛起

随着 IBM PC 机的迅猛发展,迅速崛起了两个计算机业界巨人: INTEL 和微软。后来由于 IBM决策上的失误( 1986年 Intel80386被 IBM研制自己的 CPU而拒绝,而转向COMPAQ康柏),自己走下圣坛,使得康柏从此登上 PC电脑的王座。

PC 机发展的道路上真可以用硝烟滚滚来形容 ,各大 PC 生产厂商的发展也是起起浮浮 ,短短二三十年的时间 ,造就了多少英豪 ,写下了多少壮丽的诗篇 ,树立了多少后人学习的楷模。APPLE、 IBM、 COMPAQ 、ACER、DELL、NEC...... 也就是这些公司的起起落落 ,才使 PC 机迅猛的发展,才把人们带到信息时代的浪潮中来。但是 Intel 的处理器和微软的操作系统的却一致风行,使 PC市场俨然变成了所谓Wintel 的天下。

Page 106: 操作系统 Operating  System

【Microsoft 的发家史】

1980年春, Microsoft 开始为 IBM PC 设计操作系统。他们从 Tim Paterson 那里购买了一个叫 86-DOS 的程序并加以改进形成了 MS-DOS 1.0( IBM 称为 PC-DOS )在 1981 年 8月廉价地随 IBM PC推向市场。 Microsoft以较低的装机费获得了市场,把握住了 IBM奉送的第一次机会。 DOS 1.0 非常简陋,每张盘上只有一个根目录,不支持子目录。

1983 年推出的 DOS2.0 主要是增加了对 IBM PC/XT 的硬盘驱动器的支持功能。增加目录树功能,类似UNIX 分层目录的管理形式。

1984 年 8月, MS-DOS 3.0、 PC-DOS 3.0、 IBM AT 发布,采用 ISA 标准,支持大硬盘和 1.2M 高密软驱。

Page 107: 操作系统 Operating  System

小知识: GUI 与 Windows GUI( Graphics User Interface 图形用户界面)技术。以图形为媒介代替复杂的命令,实现了用户和计算机之间的交流。用户不须记那些复杂的操作命令,只要动动手中鼠标器,在屏幕上那些形象的标识图形中选选,弹指之间,操作完成。易学易用。

70 年代初,施乐公司 Xerox在硅谷办了一个很有名的研究机构 PARC(帕洛阿尔研究中心),开始致力于图形用户界面、图标、菜单和定位设备(如鼠标)的研制。实现了鼠标器可在屏幕上移动和选择若干个窗口图形。这是十分美妙的GUI 技术,可惜 Xerox学究们不知让它大展雄图。

1979 年 10月, Apple 公司的创始人史蒂夫·乔布斯( Steve Jobs)慕名到 PARC参观时慧眼识金,将该项技术引入到 Apple 中,即为著名的“丽莎”( Lisa)。

Page 108: 操作系统 Operating  System

施乐 Palo Alto 研究中心 70 年代初,施乐电子公司 Xerox在加利弗尼亚州的硅谷办了一个很有名的研究机构 Palo Alto Research Center( PARC,帕洛阿尔研究中心),其在计算机的发展当中,作出了许多卓越的贡献,被誉为“ 70 年代的计算机研究思想库”。 – 1972年世界上第一台个人计算机 Alto在这里出

现。– 图形界面 , 手持鼠标– 面向对象程序设计语言 Small Talk。– 微机网络,桌面出版和激光打印等等。– 有先进概念和技术的原型都首次出现在这里,如“所见即所得”等。

Page 109: 操作系统 Operating  System

微软的壮大1985年 11月, Microsoft 的第一款图形用户界面的操作系统

Windows.10 发布。其需要 DOS 的支持,类似苹果机的操作界面,以致被苹果控告。 1987,Microsoft Windows 2.0 发布,比第一版要成功,但并没有多大提高。

1987 年 4月, MS-DOS 3.3、 PC-DOS 3.3 。随 IBM PS/2 一起发布,支持 1.44MB驱动器和硬盘分区。可为硬盘分出多个逻辑驱动器。

1988 年 7月, PC-DOS 4.0、MS-DOS 4.0 。支持 EMS内存。

1991 年 6月 : MS-DOS 5.0、 PC-DOS 5.0 。该版本突破了640KB 的基本内存限制。这个版本标志着微软与 IBM (为了促进 OS/2 的发展)在DOS 上的合作的终结。

1992 年 Windows NT 发布,可寻址 2G RAM。

Page 110: 操作系统 Operating  System

1992 年 4月,推出的 Windows 3.1采用了 32 位应用程序编程接口( API )并支持OLE1.0 和 2.0,至此Windows终于取代 DOS而成为个人计算机上的首要操作系统, Microsoft 也开始领导 PC 操作系统的潮流。

1993年Microsoft推出 Windows NT 3.1, 是一个全新的 32 位网络操作系统,采用多线程、抢先式多任务及多处理器。但是用户对 NT 3.1怨声载道。

1994 年 9月 Windows NT 3.5 上市,由于系统技术完善而获得“ PC Magzine 94 年度最佳操作系统”。

1995年8月,微软公司推出了 32 位多任务和多线程的的Windows 95 操作系统,“多任务优先制”和改进的简练界面使它在 1998 年获得 IT 年度最佳操作系统。这个空前绝后的软件,不但使得微软公司日进斗金,也促使 PC 进入了世界的每个角落。

微软的壮大( OS 、办公、应用软件)

Page 111: 操作系统 Operating  System

2.Windows2000/XP 体系结构

Windows 2000/XP 是单一大内核的整体式系统 ,出于可移植性以及效率因素的考虑, Windows 2000/XP 的大部分是使用了 C 语言并采用了基于C 语言的对象实现。

服务进程 环境子系统系统支持进程 应用程序

子系统动态连接库

核心态执行体

内核 设备驱动程序硬件抽象层( HAL )

图形引擎

图 1-7 Windows 2000/XP 操作系统的体系结构框架

用户态

Page 112: 操作系统 Operating  System

核心态组件内容 (1) 内核( kernel ) 内核包含了最低级的操作系统功能,例如线程调

度、中断和异常调度、多处理机同步等,同时它也提供了执行体( Executive )来实现高级结构的一组例程和基本对象。内核始终运行在核心态,代码短小紧凑,可移植性也很好,一般来说,除了中断服务例程( Interrupt Service Routine, ISR )外,正在运行的线程是不能抢先内核的。

(2) 硬件抽象层( Hardware Abstraction Layer,HAL )硬件抽象层将内核、设备驱动程序以及执行体同硬件分割开来,使它们可以适应多种平台。硬件抽象层是一个可加载的核心态模块HAL.dll ,它为运行在 Windows 2000/XP 上的硬件平台提供一个低级的接口,它隐藏了各种与硬件有关的细节,例如 I/O 接口、中断控制器、以及多处理器通信机制等任何体系结构专用的和依赖于计算机平台的函数。

(3) 执行体

执行体包含了基本的操作系统服务,例如内存管理器、进程线程管理、安全控制、 I/O 以及进程间通信。

Page 113: 操作系统 Operating  System

执行体中的重要组件 ( 1 )进程和线程管理器:对进程和线程的基本支持在Windows 2000/XP的内核中实现,而执行体给这些低级的对象添加附加语义和功能。

( 2 )虚拟内存管理器实现“虚拟内存”,同时也为高速缓存管理器提供基本的支持。

( 3 )安全引用监视器在本地计算机上执行安全策略,它保护了操作系统资源,执行运行时对象的保护和监视。

( 4 ) I/O系统执行独立于设备的输入 / 输出,并为进一步处理调用适当的设备驱动程序。

( 5 )高速缓存管理器通过将最近引用的磁盘数据驻留在内存中来提高文件 I/O的性能,并且通过把更新数据发送到磁盘之前在内存保存一个短的时间来延缓磁盘写操作,这样就可以实现快速访问。

Page 114: 操作系统 Operating  System

设备驱动程序

设备驱动程序是 I/O 系统和相关硬件之间的接口, Windows 2000/XP 的设备驱动程序不直接操作硬件,而是调用硬件抽象层功能作为与硬件的接口。

因为安装设备驱动程序是把用户编写的核心态代码添加到系统中的唯一方法,所以某些程序通过简单地编写设备驱动程序的方法,来访问操作系统内部的函数或者数据结构,但是它们不能从用户态访问。

设备驱动程序

( 1 )硬件设备驱动程序:操作硬件,将输出写到物理设备和网络,并从物理设备或者网络获得输入( 2 )文件系统驱动程序接收面向文件的 I/O请求,并把它们转换为特殊设备的 I/O请求。( 3 )过滤器驱动程序截取 I/O 并在传递 I/O到下层之前执行某些特定处理。

Page 115: 操作系统 Operating  System

图形引擎与用户进程 图形引擎包含了实现图形用户界面( Graphical User Interface,GUI)的基本函数。图形引擎并不是操作系统的必要的组成部分,在Windows 2000/XP ,为了提高性能,把图形引擎也放在内核之中。

(1) 系统支持进程,例如登录进程 Winlogon 和会话进程管理器 SMSS ,不是 Windows 2000/XP 的服务,不由服务控制器启动(2) 服务进程( service Process ),它们是 Windows 2000/XP的服务,例如事件日志服务

(3) 环境子系统,为应用程序提供运行环境(功能调用接口),即Win32、Posix和 OS/2 1.2(4) 应用程序( user application ),它们是 Win32、Windows 3.1、MS-DOS、 POSIX或 OS/2 这五种类型之一。

用户进程的基本类型

服务进程和应用程序必须通过子系统动态连接库( Subsystem DLLs )和系统交互。子系统动态连接库的作用就是将文档化函数(公开的调用接口)转换为适当的 Windows 2000/XP 内部系统调用,这种转换可能会向正在为用户程序提供服务的环境子系统发送请求,也可能不会。

Page 116: 操作系统 Operating  System

环境子系统

每一个可以执行的映像都受限于唯一的子系统,进程创建时,程序映像头中的子系统类型代码告诉Windows 2000/XP新进程所属的子系统。当一个应用程序调用子系统动态连接库中的函数时,会出现下面三种情况:

( 1 )函数完全在子系统动态连接库的用户态部分实现,这时并没有消息发送到环境子系统进程,也没有调用执行体服务。函数在用户态中执行,结果返回到调用者。

( 2 )函数需要一个或多个对执行体的调用。

( 3 )函数要求某些工作在环境子系统中进行。在这种情况下,将产生一个客户服务器请求到环境子系统,其中的一个消息将被发送到子系统去执行某些操作,这可能会使用执行体的“本地过程调用”( LPC )机制。然后,子系统动态连接库在消息返回给调用者之前会一直等待应答。

OS/2: OS/2只能用于 X86 系统

Win32:Win32子系统动态连接库实现 Win32 API函数POSIX : POSIX子系统动态连接库实现 POSIX API函数环境子

系统

Page 117: 操作系统 Operating  System

3.Win NT 体系结构 Windows NT是微软公司综合客户 /服

务器模型、对象模型和对称多处理模型为一体,设计出了一个功能完善,性能极高的网络操作系统。 安全

子系统

登录进程

Wi n32客户

OS/ 2客户

POSI X客户

OS/ 2子系统

Wi n32子系统

POSI X子系统

硬件抽象层

系统服务

核心态

用户态

内核

NT执行体

对象管理器

安全引用监视器

虚拟内存管理器

进程和线程管理器

本地过程调用功能

高速缓存管理器文件系统驱动程序

硬件设备驱动程序

I / O管理器

网络重定向

Page 118: 操作系统 Operating  System

1.6.3 Linux OS1.Linux 的诞生 1991 年底,芬兰赫尔辛基大学计算机系的学生 Linus

Torvalds在 Internet 上公布了他在 Intel 386 PC 上开发的 Linux( Linus 的“ Linu”+UNIX 的“ x” )操作系统内核的源代码。由于 Linux 结构清晰、功能简捷,专业人员纷纷加入 Linux 内核的开发工作。其中,软件自由联盟(GNU)、 Berkeley的 BSD和MIT的 X-Windows等都对 Linux 作出了重要的贡献。

Linux 集中了如此多的优点:符合 POSIX 1003.1 标准,真正多用户、多任务的分时操作系统,支持 TCP/IP、SLIP和 PPP协议,完全运行在保护模式下的 64 位系统,内核与源代码完全公开等。许多软件开发者认为 Linux 是唯一能同Microsoft 相抗衡的操作系统。

Page 119: 操作系统 Operating  System

2.Linux 操作系统组成 Linux 操作系统由四个主要的子

系统组成:

( 1 )用户进程;

( 2 )系统调用接口,系统调用是内核代码的一部分;

( 3 ) Linux 操作系统内核,内核实际是抽象的资源操作到具体的硬件操作细节之间的接口;

( 4 )硬件。

用户进程

系统调用接口

Linux 内核

硬件

图 1-8 Linux 内核在整个操作系统中的位置

Page 120: 操作系统 Operating  System

3.Linux 操作系统的内核结构

内存管理硬件无关硬件相关

虚拟文件系统逻辑文件系统硬件驱动程序

网络网络协议

硬件驱动程序

进程调度 进程间通信

显示符号

依赖关系

子系统子系统层

图 1-9 Linux 内核子系统及其之间的关系

Page 121: 操作系统 Operating  System

(1) 进程调度( SCHED )

进程调度控制着进程对 CPU 的访问。可运行进程实际是等待CPU 资源的进程,如果某个进程在等待其它资源,则该进程是不可运行的进程。 Linux 使用了比较简单的基于优先级的进程调度算法选择新的进程。

Linux 中的每个进程有自己的虚拟地址空间,操作系统一个最重要的基本管理目的,就是避免进程之间的互相影响,但有时用户也希望能够利用两个或者多个进程的功能完成同一任务,为此 Linux 提供了许多机制,利用这些机制,进程之间可以进行通信共同完成某项任务,这种机制称为“进程间通讯( IPC )”。信号和管道是 Linux 操作系统中常见的两种 IPC 机制。

Page 122: 操作系统 Operating  System

(2) 内存管理(MMU )

内存管理允许多个进程安全地共享内存资源。 Linux 的内存管理支持虚拟内存,内存管理从逻辑上可以分为硬件无关的部分和硬件相关的部分。硬件无关的部分提供了进程的映射和虚拟内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。

Linux 操作系统支持几种硬件平台,内存管理把所有硬件平台的细节抽象成一种统一的接口,内存管理单元( MMU )通过这个抽象的接口存取所有的硬件。

内存管理利用硬件内存管理单元把虚拟地址(由用户进程使用)映射到物理内存,如果两个进程的虚拟地址空间映射到相同的物理地址空间,那么这种映射允许两个用户进程共享物理内存。

内存管理包含了一个守护进程( kswapd ),守护进程可以直接存取内核数据结构,因此守护进程的概念更接近线程而非进程。 kswapd守护进程的任务就是保证系统中具有足够的空闲页,从而使内存管理子系统能够有效运行,内存管理子系统还要保证减小 I/O活动。

Page 123: 操作系统 Operating  System

(3) 虚拟文件系统( Virtual File System, VFS )

虚拟文件系统隐藏了各种不同硬件的具体细节,为所有设备提供了统一的接口, VFS还支持多达数十种不同的文件系统,这也是 Linux 较有特色的一部分。

文件系统需要支持很多不同的逻辑文件系统和很多不同的硬件设备,要做到这点, Linux 操作系统采用了易扩展的两级概念层:设备驱动程序层给所有的物理设备提供统一的接口,虚拟文件系统层给所有的逻辑文件系统提供统一的接口, Linux 内核的抽象结构显示了这一划分。

虚拟文件系统可以分:<1> 设备驱动程序:设备驱动程序指为每一种硬件控制器所编写的驱动程

序模块。它们是内核中具有高特权级、驻留内存、可共享的底层硬件处理例程。 Linux 内核有三种类型的驱动程序:字符设备驱动程序、块设备驱动程序和网络设备驱动程序。

<2>逻辑文件系统:逻辑文件系统指 Linux所支持的文件系统,例如, ext2、 fat 等,逻辑文件系统需要首先被安装到虚拟文件系统的一个安装点上。任何时候,一个物理设备只支持一种文件系统,但是磁盘在经过分区后,单个物理磁盘被划分为多个逻辑分区,每个分区上可以存在一个文件系统。。

<3> 模块:逻辑文件系统的另一主要功能是动态装载模块,这种动态配置使得 Linux 操作系统用户尽可能地把内核实现的容量小一些,当真正使用时,才装载设备驱动程序和文件系统。

Page 124: 操作系统 Operating  System

(4) 进程间通信( IPC )类型

<1>信号:信号可以通知进程系统正在出现的事件,一个信号可以控制信号接收进程执行某些操作,具体的操作取决于信号的含义。内核可以给任何正在执行着的进程发信号,用户进程也可以给同组的其它进程发信号。

<2>文件锁: Linux 操作系统允许用户进程限制其它进程对文件全部或者部分的存取,这是通过文件锁机制实现的。

<3> 管道:管道是一种连接进程的虚拟文件,建立管道和打开管道时返回一个文件描述符,进程之间可以通过这个文件描述符,通过读写管道文件的方式,在进程之间传输数据。

<4>信号量:信号量( semaphore )是 E. W. Dijkstra在 1965 年提出的一种用于实现进程之间同步和互斥的方法。

<5> 共享内存:共享内存实现在不同进程之间,共享进程虚拟地址空间中的一段或数段数据。在共享的区域内,各个共享的进程可以同时访问。共享内存是进程之间最快的通信方式。

Page 125: 操作系统 Operating  System

各个子系统的依赖关系

进程调度和内存管理之间的依赖关系:这两个子系统相互依赖,在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事,就是要将程序和数据装入内存。

进程间通信和内存管理的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,该机制允许两个或者多个进程除了拥有自己的私有内存,还可以存取共同的内存区域。

虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统,也利用内存管理支持 RAMDISK 。

内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期地由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。当一个进程存取的内存数据被换出时,内存管理向文件系统发出请求,同时挂起当前正在运行的进程。

Page 126: 操作系统 Operating  System

(5) 网络接口( NET)

网络接口提供了对各种网络标准的存取和各种网络硬件的支持。

网络接口可以分为:<1> 网络协议,网络协议负责实现每一

种可能的网络传输协议。<2> 网络驱动,网络设备驱动程序负责

与硬件设备进行通信,每一种可能的硬件设备都有相应的驱动程序。

Page 127: 操作系统 Operating  System

未来操作系统展望 Internet已成为 IT产业使用最为频繁的一个单词,它也

成为全球最大的信息资源基地。 21世纪的操作系统必然与Internet/Intranet联系在一起,因为 Internet 是世界上最大的开放系统应用环境和最大的计算机市场。但是Windows与Unix混乱的版本、不透明和庞杂的系统是否能在 21世纪有所改进呢? 64 位 UNIX 的统一在各厂商触及各自利益时是否会尽如人意?

面向对象、分布式技术和人工智能距离市场仍然有一定的距离,但是它们毕竟代表了操作系统的前沿方向。作为现代计算机上运行的最重要的程序,操作系统控制了应用程序的执行,并且在计算机用户与计算机硬件之间起到接口的作用。

从系统管理和用户两方面来看,开放、统一、透明的操作系统才符合市场发展潮流,安全、稳定、易用的操作系统才符合用户的真正需求。

Page 128: 操作系统 Operating  System

第一章 作业*1.试从多路性、独立性、交互性、及时性和可靠性五个方面来比较批处理系统、分时系统及实时系统。通过比较,请写出这三种系统各适用于什么场合。

2. 什么是多道程序设计 ? 实现多道程序设计的计算机需要那些必不可少的硬件支持 ? 采用多道程序设计会带来什么好处 ?

3. 操作系统的基本特征是什么?并说明它们之间的关系。