55
高高高高高高高高高高高高高高高 高高 (dingqing@ustc. edu.cn)

高级操作系统

  • Upload
    kedma

  • View
    104

  • Download
    0

Embed Size (px)

DESCRIPTION

高级操作系统. 中国科技大学软件学院 丁箐 ([email protected]). 参考书. « Distributed Operating Systems » , Andrew S.Tanenbaum , 机械工业出版社 , 2006 《Distributed Systems: Principles and Paradigms》 , Andrew S. Tanenbaum and Marten van Steen , Prentice-Hall, 2002 - PowerPoint PPT Presentation

Citation preview

Page 1: 高级操作系统

高级操作系统

中国科技大学软件学院

丁箐 ([email protected])

Page 2: 高级操作系统

2

参考书 «« Distributed Operating Systems »» ,, Andrew S.Tan

enbaum ,机械工业出版社机械工业出版社 ,, 20062006 《 Distributed Systems: Principles and Paradigms 》,

Andrew S. Tanenbaum and Marten van Steen , Prentice-Hall, 2002

《 Distributed Systems: Concepts and Design 》, George Coulouris, Jean Dollimore and Tim Kindberg ,3rd Edition, Addison-Wesley, 2001

《《 Distributed SystemsDistributed Systems 》,》, Sape J. MullenderSape J. Mullender ,, 2n2nd Edition, ACM Press, 1993d Edition, ACM Press, 1993

《 Modern Operating Systems 》 ,第,第 22 版,版, Andrew S.Tanenbaum , 机械工业出版社, 机械工业出版社, 20022002

Page 3: 高级操作系统

3

参考书

《《 Solaries 操作系统内核》》 《《 Solaries 编程指南》》 《《 Linux Linux 操作系统内核》》 《《 LinuxLinux 编程指南》》 《 Windows NT 操作系统内核》 http://www.globus.orghttp://www.globus.org

Page 4: 高级操作系统

4

1 操作系统回顾

2 分布式系统概述

3 分布式通信

4 分布式系统的同步

5 分布式进程和处理机

6 分布式文件管理

7 分布式共享存储

8 网格计算概述

教学内容

Page 5: 高级操作系统

操作系统回顾

Page 6: 高级操作系统

6

主要内容

1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题

Page 7: 高级操作系统

7

主要内容

1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题

Page 8: 高级操作系统

8

1.1 操作系统的作用

操作系统是计算机用户和计算机硬件之间的接口程序模块,它是计算机系统的核心控制软件, 其职能是控制和管理系统内各种资源,有效地组织多道程序的运行,从而为用户提供良好的工作环境,达到使用方便、资源分配合理、安全可靠等目的。

操作系统是现有软件系统中最复杂的软件之一。 Denning 认为,到目前为止,在操作系统的研究开发方面主要取得了进程、内存管理、信息保护与安全、调度与资源管理和系统结构等五项成就。

Page 9: 高级操作系统

9

硬件系统和应用程序间的界面

由操作系统定义的软、硬件和数据,给程序员以及使用者提供了方便的界面,使程序员和应用程序更容易获取和使用计算机系统中的资源、工具和服务。

Page 10: 高级操作系统

10

应用程序 Web 浏览器、 GIS 、 ERP

中间件 DBMS 、 httpd 、 CORBA 、 .NET

系统程序 操作系统、 shell 、 C 编译器

固件 BIOS

硬件 PC 机、工作站、小型机、大型机

Page 11: 高级操作系统

11

• 一台扩展的计算机– 隐藏了具体的硬件细节– 为用户提供了一台容易使用的虚拟的计

算机•一个资源管理器

– 每个程序分享时间– 每个程序分享空间

操作系统概念

Page 12: 高级操作系统

12

具有如下功能: ① 程序创建。 ② 程序执行。 ③ I/O 设备的访问。 ④ 控制对文件的访问。 ⑤ 系统访问。 ⑥ 查错和纠错。 ⑦ 簿记。

作为扩展的计算机

Page 13: 高级操作系统

13

作为资源管理者

作为资源管理器的操作系统:

I/O设备内存

处理器 处 理 器

I/O控制器

I/O控制器

I/O控制器操作系统软 件

程序和数 据

数 据程 序

OS

Page 14: 高级操作系统

14

主要内容

1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题

Page 15: 高级操作系统

15

1.2 操作系统的演变

操作系统发展至今已有三十多年。设计操作系统主要有两个目的:第一,为程序的开发和执行提供一个方便的环境;第二,为保证计算机系统顺利执行,操作系统对各个计算活动进行调度。

Page 16: 高级操作系统

16

操作系统发展历史

第一代 1945 - 1955– 电子管 , 插件板

第二代 1955 - 1965– 晶体管 , 批处理系统

第三代 1965 – 1980– 集成电路( IC )和多道程序设计

第四代 1980 – 现在– VLSI, 个人计算机 , 网络操作系统

Page 17: 高级操作系统

17

操作系统家族

大型机操作系统 (e.g IBM OS/390) 服务器操作系统 (e.g. UNIX, NT) 多处理机操作系统 分布式操作系统 PC 机操作系统 (e.g Widows) 实时操作系统 (e.g VxWorks) 嵌入式操作系统 (e.g Windows CE) Smart card 操作系统 (e.g JVM)

Page 18: 高级操作系统

18

串行处理系统

最早的计算机,从 20 世纪 40 年代末到 50 年代中期,程序员直接与硬件接触,根本没有 OS。计算机运行在一个集成了指示器、各种开关、一些输入设备以及一个打印机的控制台之上。早期的这种系统存在两个问题:

(1)上机安排 (2)启动时间

Page 19: 高级操作系统

19

简单批处理系统

1. 将卡片装入 1401 机的读卡机2. 将卡片中的程序读入磁带3. 将磁带装入 7094 机, 完成计算4. 将磁带装入 1401 机,打印结果

Page 20: 高级操作系统

20

简单批处理系统(续)

简单批处理系统是专业计算机操作员(或机器)按作业的性质将作业按类分成若干组,然后一组一组地来运行作业。

在早期计算机系统中,引进简单批处理系统可以减少安装磁带、装入程序和返绕磁带等有关的工序浪费的时间,因此,也就减少了计算机的空闲时间。

批处理系统实质上不提供用户和程序之间的交互功能。程序中的所有问题必须事先安排好,也不能进行联机修改。 。

Page 21: 高级操作系统

21

简单批处理系统(续)

简单批处理系统的中心思想是,通过应用一种被称为监控器的软件,使用户不必再直接接触机器,而是先通过卡片机和纸带机向计算机控制器提交作业,由监控器将作业组织在一起构成一批作业,然后将整批作业放入由监控器管理的输入设备上,每当一个程序执行完毕返回监控器时,监控器已自动装入下一个程序。

Page 22: 高级操作系统

22

简单批处理系统(续)

批处理系统存在很多不方便之处,主要有:用户不能与其作业交互以捕捉程序中的问题。用户程序中的所有问题必须事先安排好,否则程序的排错就可能在转储信息上盲目地进行。此外,对一个用户作业而言,可能需要较长的周转时间。

在批处理系统中,为了避免有意或无意地读取他人的卡片,必须建立监控和用户两种操作态,使其只有在监控态下才能读控制卡。通过建立一组仅能在监控态下执行的特权指令,操作系统就能保证在任何时候都能控制整个系统。

Page 23: 高级操作系统

23

多道程序批处理系统

多道程序设计技术就是在内存中同时保持若干道程序,系统按某种调度策略交替执行这些程序,使 CPU 保持最少的空闲时间。

多道程序设计的主要优点是通过将用户的 CPU请求和 I/O请求重叠起来的办法来有效地使用 CPU 。它设法让 CPU总有事情可做,以此来提高 CPU 的利用率。

Page 24: 高级操作系统

24

多道程序批处理系统(续)

设想一台电脑配备 256KB的可用内存空间 ( 未被 OS占用的 ),一个磁盘,一个终端和一台打印机。 3个程序 JOB1、 JOB2 和 JOB3,同时被提交执行,如下表所列。

JOB1 JOB2 JOB3

作业类型 偏重计算 偏重计算 偏重计算

执行时间 偏重 I/O 偏重 I/O 偏重 I/O

所需内存 偏重 I/O 偏重 I/O 偏重 I/O

是否需要磁盘 5 min 5 min 5 min

是否需要终端 15 min 15 min 15 min

是否需要打印机 10 min 10 min 10 min

Page 25: 高级操作系统

25

多道程序批处理系统(续)

多道程序设计在提高资源利用率方面产生的效果

  单道程序设计 多道程序设计

处理机使用 17% 33%

内存使用 30% 67%

磁盘使用 33% 67%

打印机使用 33% 67%

经过时间 30 min 15 min

吞吐率 6 jobs/h 12 jobs/h

平均响应时间 18 min 10 min

Page 26: 高级操作系统

26

分时系统

分时系统是一种由调度策略和多道程序设计技术所构成的、同时供两个或多个用户使用的一种经济实惠的系统。

分时系统的主要优点是:当程序正在执行时,允许用户与计算机交互,从而大大缩短了系统的响应时间,增加了用户调试程序和控制程序运行的灵活性。

Page 27: 高级操作系统

27

分时系统(续)

分时系统通常采用的实现方法是:先对每一用户作业分定一个时间片,再按轮转方式来执行这些作业。用户作业可以继续运行直至其时间片执行完或发生一个( I/O )中断,才暂停此作业的运行而让另一作业运行,暂停的作业则等到再次轮到它时又可继续运行下去,系统中的作业都用这种方式轮转执行。

Page 28: 高级操作系统

28

实时系统

实时系统是在响应时间方面有严格制约的专用系统。实时系统与其他普通的系统之间的最大不同之处就是要满足处理与时间的关系。

实时系统与分时系统的区别在于:在分时系统中,快速响应是需要的,但不是必需的;在实时系统中,处理事务必须在适合于此系统的特定时间限额内完成。

Page 29: 高级操作系统

29

实时系统(续)

实时操作系统主要是为联机实时任务服务的,相比分时系统它有其自身的特点:

(1) 与分时系统一样具有多路性和独立性。 (2) 对外部实时信号必须能及时响应,响应的时间间隔

要足以控制发出实时信号的那个环境。 (3)整体性强。 (4) 有交互性,但这里人与系统的交互仅限于访问系统

中某些特定的专用服务程序。 (5)要求有高可靠性和安全性,系统的效率则放在第二位。

Page 30: 高级操作系统

30

分布式操作系统

分布式系统中的客户 / 服务器( client/server )模型– 位置透明性

Page 31: 高级操作系统

31

分布式操作系统(续)

“一个分布式系统是若干个独立的计算机的集合,但是对该系统的用户来说,系统就像一台计算机一样。”

硬件方面:各个计算机都是自治的 软件方面:用户将整个系统看作是一台计算机

Page 32: 高级操作系统

32

主要内容

1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题

Page 33: 高级操作系统

33

1.3 操作系统的主要研究课题

进程描述和控制

内存管理 并发控制调 度

I/O管理 文件管理

安全性

网络与分布计算

Page 34: 高级操作系统

34

操作系统的主要成就

操作系统是现有软件系统中最复杂的系统软件之一。到目前为止,操作系统已取得了 5 项主要成就:进程、内存管理、信息的保护与安全性、调度与资源管理、系统结构。 。

Page 35: 高级操作系统

35

进程

进程是操作系统结构的基础。进程就是:可并发执行的程序在一个数据集合上的运行过程。进程由以下 3 部分组成:

① 一个可执行的程序; ②该程序所需的相关数据 (变量、工作空间,缓冲区等 );

③该程序的执行上下文 (Context)。

Page 36: 高级操作系统

36

进程(续)

典型的进程实现

···

i

b

h

进程索引

上下文

进程表列

内 存

···

···

数 据

程 序

上下文

数 据

程 序

j

进程 A

进程 B

i

寄存器

PC

基址寄存器 b

限制寄存器 h

···其他寄存器

Page 37: 高级操作系统

37

进程(续)

进程管理 shell语言编写的命令执行器 :

while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt */ read_command (command, parameters) /* input from terminal */ if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid( -1, &status, 0); /* wait for child to exit */} else { /* Child code */ execve (command, parameters, 0); /* execute command */ }}

Page 38: 高级操作系统

38

进程管理

进程树( process tree )– 进程 A 创建两个子进程: B 和 C– B 又创建三个子进程: D, E, 和 F

Page 39: 高级操作系统

39

进程调度与同步

(a) 潜在死锁 (b) 实际的死锁 .

Page 40: 高级操作系统

40

进程间通信( IPC)

连接两个进程的管道( pipe )

Page 41: 高级操作系统

41

存储管理

操作系统的 5条存储管理原则:进程隔离。 自动分配和管理。 支持组件编程。 长时间存储。 保护和存取控制。

Page 42: 高级操作系统

42

存储管理(续)

看待存储系统的两种不同观点

虚拟处理器读、写

复制文件

虚拟存储器 长期存储设备

(b) 操作系统设计者观点

实际处理器虚拟地址

映射器(地址转换器) 存储器

地 址

内 存交 换

辅 存

(a) 用户观点

Page 43: 高级操作系统

43

存储管理(续)

进程的三种段 : text, data, stack

Page 44: 高级操作系统

44

文件管理

计算机系的文件系统结构

Page 45: 高级操作系统

45

文件管理(续)

(a) 在连接之前的两个目录(b) 在执行连接调用

link( “/usr/jim/memo”,”/usr/ast/note”) 之后的两个目录

I-node

Page 46: 高级操作系统

46

信息保护和安全性

同计算机系统和存储在其中的信息的存取控制有关的 4 种保护策略:

①不共享。 ② 共享原始程序或数据文件。 ③无存储子系统。 ④ 控制信息的分布。

Page 47: 高级操作系统

47

信息保护和安全性(续)

同操作系统有关的安全和保护工作可分为以下3 类:

① 访问控制。 ② 信息流控制。 ③确认。

Page 48: 高级操作系统

48

调度和资源管理

操作系统的核心任务之一就是管理各种可获得的资源以及合理地调度它们。任何资源分配和调度策略都必须考虑公平性、不同敏感性以及效率。

Page 49: 高级操作系统

49

操作系统的系统调用

进程管理

POSIX操作系统

Page 50: 高级操作系统

50

文件操作

Page 51: 高级操作系统

51

目录管理

Page 52: 高级操作系统

52

其它的系统调用

Page 53: 高级操作系统

53

Win32 API调用

Page 54: 高级操作系统

54

后续内容

操作系统回顾:对单处理机操作系统作简单的回顾

分布式系统概述:对分布式系统进行介绍 分布式通信:介绍分布式情况下的通信模型 分布式系统的同步:关于分布式系统同步的内

容,包括事务和死锁等问题

Page 55: 高级操作系统

55

后续内容(续)

分布式进程和处理机:介绍处理机、进程的组织和调度,分布式系统的容错以及实时分布式系统

分布式文件管理:介绍分布式文件系统的命名、和共享

分布式共享存储:介绍内存一致性问题以及如何实现 DSM

网格计算概述:以网格计算作为实例,介绍其体系结构、相关模型和工具集,以及典型的网格实现技术。