大学 计算机基础 —— 系统工具与环境 (理工科用)

34
大大大大大大大—— 系系系系系 系系系系系 () 系系系 系系系 系系系 系系

Upload: sidney

Post on 05-Jan-2016

195 views

Category:

Documents


0 download

DESCRIPTION

大学 计算机基础 —— 系统工具与环境 (理工科用). 赵 欢 肖德贵 李丽娟 洪跃山 编著. 第一部分 计算科学概论 第 3 章 操作系统. 大学计算机基础 —— 系统工具与环境(理工科用). 本章内容提要. 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 常用操作系统 3.4 小结. 3.1 操作系统概述. 操作系统是对计算机系统中的所有资源进行高效管理的一种系统软件 。 操作系统的目的是提供一种环境。. 理解一个计算机系统. 3.1 操作系统概述. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 大学 计算机基础 —— 系统工具与环境 (理工科用)

大学计算机基础——系统工具与环境(理工科用)

赵 欢 肖德贵 李丽娟 洪跃山 编著

Page 2: 大学 计算机基础 —— 系统工具与环境 (理工科用)

第一部分 计算科学概论第 3 章 操作系统

大学计算机基础—— 系统工具与环境(理工科

用)

Page 3: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述3.2 操作系统的功能模块3.3 常用操作系统3.4 小结

本章内容提要

3大学计算机基础——系统工具与环境

Page 4: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述

理解一个计算机系统

系统程序和应用程序

操作系统

计算机硬件

用户1 用户2 用户3 用户n...

编译器 汇编器 文本编辑器

数据库系统

...

4大学计算机基础——系统工具与环境

操作系统是对计算机系统中的所有资源进行高效管理的一种系统软件。

操作系统的目的是提供一种环境。

Page 5: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1.2 操作系统历史其发展与计算机硬件的发展以及计算机的应用密不可分

批处理系统( Batch Processing OS ) 分时系统( Time Sharing OS ) 个人系统( Personal Computing OS ) 并行系统( Parallel Computing OS ) 分布式系统( Distributed OS ) 实时系统( Real Time OS ) 手持系统( Hand Holden OS )

3.1 操作系统概述

5大学计算机基础——系统工具与环境

Page 6: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述

6大学计算机基础——系统工具与环境

批处理系统:所谓批处理操作系统,就是用户将要机器做的工作有序地排在一起,

成批地交给计算机系统,计算机系统就能自动地、顺序地完成这些作业,用户与作业之间没有交互作用,不能直接控制作业的运行。

批处理系统虽然能提高机器的资源利用率,但却存在一个重要的缺点。由于一次要处理一批作业,在作业的处理过程中,任何用户都不能和计算机进行交互。即使发现了某个作业有程序错误,也要等一批作业全部结束后脱机进行纠错。

Page 7: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述

7大学计算机基础——系统工具与环境

分时系统:分时操作系统允许多个用户同时联机与系统进行交互通信,一台分时

计算机系统连有若干台终端,多个用户可以在各自的终端上向系统发出服务请求,等待计算机的处理结果并决定下一步的处理。操作系统接收每个用户的命令,采用时间片轮转的方式处理用户的服务请求,即按照某个轮转次序给每个用户分配一段 CPU 时间,进行各自的处理。这样,对每个用户而言,都仿佛“独占”了整个计算机系统。具有这种特点的计算机系统称为分时系统。

Page 8: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述

8大学计算机基础——系统工具与环境

个人操作系统:当个人计算机产生后,需要有一类适合这类计算机的操作系统,于是

产生了单用户操作系统。这类操作系统主要考虑的是如何为用户提供方便使用计算机的环境,系统的交互式响应速度快,提供丰富的应用程序以及娱乐功能等。个人系统吸纳了当时复杂操作系统的技术,如分时、多道程序、存储管理等。

Page 9: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述

9大学计算机基础——系统工具与环境

个人操作系统:当个人计算机产生后,需要有一类适合这类计算机的操作系统,于是

产生了单用户操作系统。这类操作系统主要考虑的是如何为用户提供方便使用计算机的环境,系统的交互式响应速度快,提供丰富的应用程序以及娱乐功能等。个人系统吸纳了当时复杂操作系统的技术,如分时、多道程序、存储管理等。

并行操作系统 对更快的速度和更有效的要求导致了并行系统的出现,在同一计算机

中安装了多个 CPU ,每个 CPU 可以处理一个程序或者程序的一部分。这意味着很多任务可以并行地处理而不再是串行处理。

Page 10: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.1 操作系统概述

10大学计算机基础——系统工具与环境

分布式系统网络化和互联网络的发展,扩大了操作系统的内涵,产生了一种新的操作系统。以往必须在一台计算机上运行的作业现在可以由远隔千里的多台计算机共同完成。程序可以在通过网络互联的一台计算机上运行一部分而在另一台计算机上运行另外一部分。此外,资源可以是分布式的,程序需要的文件可能分布在不同地方。

实时操作系统实时操作系统往往用于一些控制设备中,这些控制设备具有特定的应

用,如医学成像系统、工业控制系统等,其任务具有严格的时间限制。手持系统

这类系统运行于手持设备上,如 PDA 、手机,其设计和实现必须考虑有限的存储空间,相对低速的 CPU ,较小的显示屏幕,相对有限的输入方式等,功耗也是重点考虑的方面之一。

Page 11: 大学 计算机基础 —— 系统工具与环境 (理工科用)

用户界面,用户界面的任务是与机器的一个或多个用户进行通信。 内核,管理计算机资源并提供服务,至少包括进程管理器、存储管理

器、文件管理器和设备管理器

3.2 操作系统的功能模块

11大学计算机基础——系统工具与环境

现代操作系统十分复杂,一方面它需要管理计算机系统内不同的资源,另一方面还要提供与用户的接口,因此操作系统由管理计算机资源的内核部分和用户界面程序组成。

Page 12: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.1 用户界面 用户通过界面与计算机打交道

命令行界面( CLI )

图形用户界面( GUI )

3.2 操作系统的功能模块

12大学计算机基础——系统工具与环境

Page 13: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 1.程序、进程和线程

程序( Program )是由程序员编写的一组稳定的指令 进程( Process )是运行中的程序 线程( Thread )是利用 CPU 的一个基本单位,也称轻量级进程

程序是一个被动实体(静态的),进程是一个主动实体(动态的),多个进程可能与同一

个程序关联。现代操作系统的一个进程可能只包含一个线程(主线程),也可能包含多个

线程(主线程和子线程),属于同一个进程的所有线程共享该进程的代码段、数据段以及

其他操作系统资源。在操作系统中,进程是计算机资源的抽象,即一个进程包含了运行该

进程所需要的所有计算机资源: CPU 、内存、 I/O 等等;而线程是 CPU 的抽象,即一个

线程可以看成一个 CPU ,对于包含多个线程的进程,线程是并发执行、独立进行调度的。

采用多线程的好处是可以节省资源,加快进程的响应速度,在多 CPU 的机器上,还可以实

现并行运算。

3.2 操作系统的功能模块

13大学计算机基础——系统工具与环境

Page 14: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 2.进程的状态由于进程是动态的,具有生存期,生存期内其可能处于

多种状态中的一个: 新建( New ),进程正被创建。 运行( Running ),进程的指令正被执行(分

配了 CPU )。 等待( Waiting ),进成正等待某些事件的发

生(如 I/O 的完成或一个信号量的接收)。 就绪( Ready ),进程正等待备分配给处理器

(万事具备只欠 CPU )。 终止( Terminated ),进程已经完成执行。

3.2 操作系统的功能模块

新建

就绪 运行

终止

等待

中断

调度器/分发

等待I/O或事件I/O或事件完成

被接受 退出

进程状态及转换

14大学计算机基础——系统工具与环境

Page 15: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 3.进程调度

为什么?多个进程在竞争(主要是竞争 CPU ) 谁负责?操作系统的进程调度器( Process Scheduler ):长期调度器或作业调

度器与 短期调度器或 CPU调度器 重点考虑 CPU调度器的设计和优化,一方面就是让 CPU 不停地忙(做有用

功),另一方面就是考虑进程的不同优先级别。 何时调度?

正在执行的进程退出了 正在执行的进程要等待 I/O 或事件 正在执行的进程被中断了 当就绪队列里有新到达的进程

3.2 操作系统的功能模块

15大学计算机基础——系统工具与环境

Page 16: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 4.进程间通信

简单的说,有三方面的内容: 一个进程如何向另一个进程传送信息。 必须保证两个或多个进程在涉及临界活动时不会彼此影响。 涉及存在依赖关系时进行适当的定序:如果进程 A 产生数据,进程 B打印数据,则 B 在开始打印之前必须等到 A 产生了一些数据为止。

3.2 操作系统的功能模块

16大学计算机基础——系统工具与环境

Page 17: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 4.进程间通信

进程之间传送信息 采用直接或间接、对称或非对称、显式缓存、通过拷贝发送或通过引用发送、定长或可变长消息等。

Linux 操作系统采用的进程间通信的方法主要包括:半双工 U n i x 管道、 FIFO( 命名管道 ) 、 SystemV 形式的消息队列、 SystemV 形式的信号量集合、 SystemV 形式的共享内存段、网络套接字 ( B e r k e l e y 形式 ) 、全双工管道 ( S T R E A

M S 管道 ) 、远程过程调用等。

3.2 操作系统的功能模块

应用程序 1

应用程序 2

套接字( Berkeley Socket )

网络通信服务界面,如 TCP/IP

操作系统内核

物理介质,如双绞线

套接字接口示意图

17大学计算机基础——系统工具与环境

Page 18: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 4.进程间通信

临界区问题 竞争条件( Race Condition ),两个或多个进程读写某些共享资源,而最后的结果取

决于进程运行的精确时序就称为竞争条件。 临界区或临界段( Critical Section ),进程中对共享资源进行访问的程序片断 采用互斥( Mutex )手段避免竞争,使得两个进程不可能同时处于临界区 进程的互斥:两个并发的进程 A 、 B ,如果当 A 进行某个操作时, B 不能做这一操

作,进程间的这种限制条件称为进程互斥。 —— “你方唱罢我登场” 实现临界区互斥遵循的准则是:

有空让进,临界区空闲时,允许一个进程进入执行; 无空等待,有进程在临界区执行时,要进入的进程必须等待; 有限等待,不应该使进入临界区的进程无限期地等待在临界区之外。

3.2 操作系统的功能模块

18大学计算机基础——系统工具与环境

Page 19: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.2 进程管理 4.进程间通信

进程同步 进程的同步隐含了系统中并发进程之间存在的两种相互制约关系:竞争(互斥)与协

作(同步)。 同步:进程间的必须互相合作的协同工作关系。两个协作的进程 A 、 B ,如果 B 的

执行必须等到 A 发出了指定消息。 —— “没有天哪有地” 只要资源可以被多个进程同时使用,那么就可能出现两种状态:死锁( Deadlock )

和饿死( Starvation )。 死锁发生的四个必要条件:互斥(一个资源只能被一个进程占有)、资源占有(尽管

并不使用资源,但进程占有着该资源直到有其他可用的资源)、非剥夺(操作系统不能

临时对资源重新分配)、循环等待。

3.2 操作系统的功能模块

19大学计算机基础——系统工具与环境

Page 20: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 现代计算机是“存储程序”计算机,存储很关键

3.2 操作系统的功能模块

寄存器

高速缓存

主内存

硬盘

磁带

单位字节价格、速度

存储容量、非易失性

存储层次结构操作系统的工作就是协调这些存储器的使用,跟踪哪些存储器正在被使用、哪些存储器空闲,在进程需要时为它分配存储器,使用完毕后释放存储器,并且在主存无法容纳所有进程时管理主存和磁盘之间的交换。

20大学计算机基础——系统工具与环境

Page 21: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 1.存储管理分类 如何把有限的内存空间分配给多个运行的程序(包括操作系统本身),既要保证他们各自使用空间的私有性,又要保证想共享的能共享

3.2 操作系统的功能模块

操作系统

程序和数据

内存

操作系统

程序4

内存

程序2

程序3

程序1

单道程序 多道程序

21大学计算机基础——系统工具与环境

Page 22: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 2.多道程序的实现

固定分区( Contiguous Allocation ) 分页( Paging ) 分段( Segmentation ) 段页式

3.2 操作系统的功能模块

CPU 页号p 页偏移d 页框号f 页偏移d

逻辑地址 物理地址

页表

主存

f

p

CPU 分段号s 段偏移d

逻辑地址

物理地址

分段表

主存

长度 起始地址

S

d < 长度?

定址错误

分页存储

分段存储

CPU 产生的地址称为逻辑地址,内存中的地址称为物理地址。逻辑地址和物理地址之间的转换,借助硬件内存管理单元完成。在分页存储中,逻辑地址空间被划分成页的单位,在物理存储器中对应的单位为页框。页和页框总是同样大小

22大学计算机基础——系统工具与环境

Page 23: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 2.多道程序的实现 - Intel Pentium 的段页式存储体系结构

3.2 操作系统的功能模块

CPU 分段单元 分页单元 物理内存逻辑地址 线性地址 物理地址

段选择器 段偏移逻辑地址

段描述符表

段描述符

32位线性地址

页目录

页表 4K字节页

4M字节页CR3寄存器

0212231页目录 页偏移

01112212231页目录 页表 页偏移

(线性地址)

(线性地址)

(a) 逻辑地址到物理地址的转换

(b) 分段单元

(a) 逻辑地址到物理地址的转换

(c) 分页单元,支持两级和一级分页

CPU 产生逻辑地址,经过分段单元转换为线性地址,线性地址经分页单元转换为物理地址

23大学计算机基础——系统工具与环境

Page 24: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 3.交换与虚拟存储没有足够的主存以容纳所有当前活动的进程,多出的进程必须被保存在磁盘上并动态地调入主存运行,两种策略:

交换( Swapping ),它把进程完整地调入主存,运行一段时间后再放回到磁盘上。

虚拟存储器( Virtual Memory ),它使进程在只有一部分在主存的情况下也能运行。

3.2 操作系统的功能模块

操作系统

A

(a)

操作系统

A

(b)

操作系统

A

(c) (d) (e)

B B

C

操作系统

B

C

操作系统

D

B

C

交换系统操作示例

交换系统操作示例24大学计算机基础——系统工具与环境

Page 25: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 3.交换与虚拟存储

虚拟存储器的基本思想是程序、数据、堆栈的总的大小可以超过可用物理存储器的大小,操作系统把程序当前使用的那些部分保留在主存储器中,而把其他部分保存在磁盘上。

大部分虚拟存储器系统使用了一种称为分页的技术。由程序产生的地址称为虚地址(逻辑地址),它们构成虚拟地址空间,虚地址送到内存管理单元,它把虚地址映射为物理地址。内存和磁盘之间的传输总是以页为单位。操作系统负责页面的调入、替换、更新等。

操作系统虚拟存储器的管理采用一种“请求调页”( Demand Paging )机制:进程的页首先都是在外部存储器中(一般是硬盘),每个页在第一次被访问时都会产生“页失效” ,页失效的结果是通过陷阱陷入操作系统,由操作系统进行页失效处理

3.2 操作系统的功能模块

交换系统操作示例

25大学计算机基础——系统工具与环境

Page 26: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 3.交换与虚拟存储

页失效处理流程

3.2 操作系统的功能模块

交换系统操作示例

操作系统

主内存i

硬盘

页表

4、找到空页框调入所需页

2、页无效陷入操作系统

3、所需页在硬盘

6、重启指令

1、引用页

5、修改页表

某指令

空闲页框

图 3.16 页失效处理流程图 3.16 页失效处理流程

26大学计算机基础——系统工具与环境

Page 27: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 3.交换与虚拟存储

页替换

3.2 操作系统的功能模块

交换系统操作示例图 3.16 页失效处理流程图 3.16 页失效处理流程

主内存硬盘

页表

3、调入所需页

0 i

f v

页框号 有效/无效位

牺牲者f

1、将牺牲者交换出去

2、修改牺牲者的页表项为无效(i)

4、修改新调入页的页表项(V)

27大学计算机基础——系统工具与环境

Page 28: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.3 存储管理 4.存储空间的保护

当进程试图访问不属于它自己的存储空间时,将通过陷阱陷入操作系统,操作系统进行存储访问错误处理。

在固定分区的存储管理中,每一个进程占用的地址空间由基址寄存器(给定了该进程

在内存中的起始地址)和限址寄存器(给定了该进程占用连续内存空间的长度),进程

只能访问 [基址寄存器 ]到 [基址寄存器 +限址寄存器 ] 之间的存储空间,超过了就会

产生地址访问错误而陷入操作系统。 在分页管理中,只能访问页表中有效 /无效位为“ v” (有效页),如果该位

为“ i” ,则会产生地址访问错误而陷入操作系统 在分段管理中, CPU 产生的逻辑地址中,如果段偏移超过了分段表项中记录的该段

的长度,则会产生地址访问错误而陷入操作系统。

3.2 操作系统的功能模块

交换系统操作示例图 3.16 页失效处理流程图 3.16 页失效处理流程

28大学计算机基础——系统工具与环境

Page 29: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.4 文件管理 所有的计算机应用程序都要存储信息和检索信息,对于这些信息往往希望能实现长期的信息存储和方便的检索。解决这个问题的常用方法是把信息以一种单元,即通常所说的文件的形式存储在磁盘或其他外部介质上,然后,在需要时进程可以读取这些信息或者写入新的信息。操作系统中处理文件的这部分就是文件管理器,文件管理器的职能:

管理文件的存储:怎样存储、存储在哪里等。 管理文件的创建、删除和修改。 控制对文件的访问。只有那些获得允许的才能够访问,访问的方式也可以不同。 可以给文件命名。 负责归档和备份。

3.2 操作系统的功能模块

交换系统操作示例图 3.16 页失效处理流程图 3.16 页失效处理流程

29大学计算机基础——系统工具与环境

Page 30: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.2.5 I/O 管理 操作系统的主要功能之一是控制所有的输入 /输出( I/O )设备,操作系统中负责 I/O设备的部分为设备管理器, I/O 管理器的职责:

不停地监视所有设备,以保证他们能够正常运行。同样也需要知道什么时候设备已经完成一个进程的服务,而且准备为队列中的下一个进程服务。

为每一个设备维护一个队列,或为类似的设备维护一个或多个队列。 可以用不同的方式来访问设备。

3.2 操作系统的功能模块

交换系统操作示例图 3.16 页失效处理流程图 3.16 页失效处理流程

30大学计算机基础——系统工具与环境

Page 31: 大学 计算机基础 —— 系统工具与环境 (理工科用)

常用操作系统简单分类: 根据应用领域,可分为嵌入式操作系统、桌面操作系统、服务器操作

系统、大型机操作系统。 根据所支持的用户数目,可分为单用户、多用户系统。 根据源码开放程度,可分为开源操作系统和不开源操作系统。 根据硬件结构,可分为网络操作系统、分布式系统、多媒体系统。 根据操作系统的使用环境和对作业处理方式,可分为批处理系统、分

时系统、实时系统。 根据操作系统的技术复杂程度,可分为简单操作系统、智能操作系

统。

3.3 常用操作系统

31大学计算机基础——系统工具与环境

Page 32: 大学 计算机基础 —— 系统工具与环境 (理工科用)

常见操作系统: 大型机操作系统

系统需要同时处理大量作业,需要极其大量的 I/O 操作,典型提供三类服务:批处

理、交易处理和分时共享。常见有 OS/390 、 Linux 等。 服务器操作系统

同时有多个用户通过网络进行访问,需要允许用户共享系统中的软、硬件资源。常

用有 Solaris 、 FreeBSD 、 Linux 、 Windows server 200x 等。 多处理器操作系统

运行于多个 CPU集成到一个系统中,通常是服务器操作系统的变种,典型代表有

Windows 、 Linux 等。 PC 机操作系统

为单个用户服务,典型有 MSDOS 、 OS/2 、 Windows 、 Macintosh OS 、

Linux 、 FreeBSD 等。

3.3 常用操作系统

32大学计算机基础——系统工具与环境

Page 33: 大学 计算机基础 —— 系统工具与环境 (理工科用)

常见操作系统: 手持终端操作系统

主要提供通信、娱乐功能及有限的办公功能。典型的有 iOS 、 Android 、 Windows

Phone 7 、 Symbian 、 Palm 、 Linux 等。 嵌入式操作系统

典型嵌入式操作系统有 VxWorks 、 QNX 、 Linux 、 Windows CE 等。 实时操作系统

引入了关键的时间参数,实时系统一般有硬实时和软实时。典型有 e-Cos 、 RT

Linux 、 VRTX 、 RTOS 、 RT WINDOWS 等。 云计算操作系统

包含模块:大规模基础软硬件管理、虚拟计算管理、分布式文件系统、业务 / 资源调

度管理、安全管理控制等。 VMware 的 vSphere ,浪潮的云海 OS

3.3 常用操作系统

33大学计算机基础——系统工具与环境

Page 34: 大学 计算机基础 —— 系统工具与环境 (理工科用)

3.4 小结

本章介绍操作系统。主要内容包括: (1) 操作系统概念及其演化过程; (2) 操作系统功能模块,内核和用户界面; (3) 进程与线程,进程的同步与互斥,死锁,进程管理; (4) 存储管理,文件管理,设备管理器; (5) 常用操作系统的介绍。

34大学计算机基础——系统工具与环境