Download presentation
Presentation is loading. Please wait.
1
操作系统概念 第三章:操作系统结构
2
本章主要内容 本章将从用户角度、程序员角度和操作系统设计人员角度来分别研究操作系统的三个方面。 系统组成 操作系统服务 系统调用 系统程序
系统结构 虚拟机 系统设计与实现 系统生成
3
3.1 系统组成 进程管理 内存管理 文件管理 输入/输出系统管理 二级存储管理 联网 保护系统 命令解释系统
4
3.1.1 进程管理 进程指的是运行着的程序 OS负责以下与进程管理有关的活动
进程需要一定的资源来完成任务,包括CPU时间,内存,文件和I/O设备 OS负责以下与进程管理有关的活动 创建和删除用户进程和系统进程 悬挂(暂停)和继续进程 提供进程同步机制 提供进程通信机制 提供死锁处理机制
5
3.1.2 内存管理 内存是一字节或字的一个大的阵列,每个字或字节都有自己的地址。
内存是可以被CPU和I/O设备所共同快速访问的数据的仓库 内存是易失性的存储设备。在系统失败的情况下,内存将会丢失其内容。 OS负责以下与内存管理相关的活动 记录内存的哪部分正在被使用及被谁使用 当内存空间可用时,决定哪些进程可以装入内存 根据需要分配和释放内存空间
6
3.1.3 文件管理 为了便于使用计算机系统,操作系统提供了统一的逻辑信息存储观点。操作系统对存储设备的物理属性进行了抽象,定义了逻辑存储单元即文件。操作系统将文件映射到物理媒介上,并通过对这些存储设备访问这些文件。 文件是由其创建者定义的一组相关信息的集合。 通常,文件表示程序(源程序和目标程序)和数据 OS负责以下有关文件管理的活动: 创建和删除文件 创建和删除目录 提供操作文件和目录的原语 将文件映射到二级存储器(辅存)上 在稳定(非易失的)存储媒介上备份文件
7
3.1.4 I/O系统管理 操作系统的目标之一是为用户隐藏特定硬件设备的特质。只有设备驱动程序才知道被指定的设备的特质。
包括缓冲器、高速缓存和脱机打印的内存管理部分 一个通用设备驱动程序的接口 用于特定硬件设备的驱动程序
8
3.1.5 二级存储管理 由于内存太小而不能容纳所有数据和程序,再加上掉电后它会失去所拥有的数据,计算机系统必须提供二级存储器,以备份内存。
许多现代计算机系统采用磁盘作为主要在线存储媒介来存储程序和数据。 OS负责下列有关硬盘管理的活动 空闲空间管理 存储空间分配 硬盘调度
9
3.1.6 联网(分布式系统) 分布式系统是一组不共享内存、外设和时钟的处理器的集合。 系统中的处理器通过通信网络相连
这些处理器都有各自的内存和时钟 系统中的处理器通过通信网络相连 通信双方需采用相同的协议 分布式系统使得用户能够访问多个系统资源 对共享资源的访问可以使计算加速、功能加强、提供数据可用性以及增强可靠性
10
3.1.7 保护系统 保护是控制程序、进程或用户访问由计算机系统定义的资源的机制。 这种保护机制必须能够: 区分已授权的和未授权的使用
提供一定的方法以规定所有要进行的控制 提供提供加强控制的方法
11
3.1.8 命令解释系统 许多命令通过控制语句交给操作系统 用来接收与解释控制语句的程序有不同的名称 进程创建和管理 I/O处理
二级存储管理 内存管理 文件系统访问 保护 联网 用来接收与解释控制语句的程序有不同的名称 命令行解释器 外壳(Shell, in UNIX)
12
3.2 操作系统服务 程序执行 I/O操作 文件系统操作 通信 错误检测 资源分配 统计 保护
13
3.3 系统调用 系统调用提供了进程与操作系统之间的接口 向操作系统传递参数通常用三种方法 这些调用通常以汇编语言指令的形式提供
有些语言(如C, C++和Perl)已经取代了汇编语言而直接用于系统编程 向操作系统传递参数通常用三种方法 通过寄存器来传递参数 参数数量可能会比寄存器多 将参数存放在内存的块或表中,并将块的地址作为参数传递给寄存器 指针 将参数放在堆栈中,并通过操作系统弹出堆栈 不限制所传递参数的数量或长度
14
参数作为表传递
15
系统调用的类型 进程控制:结束,中止,装入,执行,创建、终止进程等 文件管理:创建文件,删除文件,打开,关闭文件等
设备管理:请求设备,释放设备,读、写、重定位设备等 信息维护:读取时间或日期、设置时间或日期等 通信:创建、删除通信连接,发送、接收消息,传递状态信息等
16
MS-DOS执行状态
17
运行多个程序的UNIX
18
通信模型
19
3.4 系统程序 系统程序提供了一个方便的环境,以开发程序和执行程序。它们可分为以下几类:
文件管理 状态信息 文件修改 程序语言支持 程序装入和执行 通信 应用程序 绝大多数用户所看到的操作系统是由系统程序而不是实际系统调用定义的。
20
3.5 系统结构 简单结构 DOS UNIX 分层方法 微内核
21
MS-DOS系统结构 MS-DOS - 利用最小的空间提供最多的功能 没有被划分成模块
22
MS-DOS层次结构
23
UNIX系统结构 UNIX - 最初受到硬件功能的限制,它由两个独立的部分组成 内核 系统程序
包括系统调用接口之下和物理 硬件之上的所有部分 内核通过系统调用提供文件系统、CPU调度、内存管理和其他操作系统功能。 系统程序
24
UNIX系统结构图
25
分层方法 操作系统分成若干层,每层建立在较低层之上。最底层(层0)是硬件,最高层(层N)是用户接口
分层法的主要优点是模块化。选择了分层,这样每层只能利用较低层的功能(或操作)和服务。 分层法的主要困难涉及到对层的仔细认真的定义 分层法与其他方法相比其效率稍差。
26
一种操作系统层次结构图
27
OS/2层次结构
28
微内核系统结构 这种方法将所有非基本部分从内核中移走,并将它们当做系统级程序和用户级程序来实现,用这种方法来构建操作系统
用户模块之间采用消息传递的方式进行通信 优点 微内核易于扩展 易于提升OS至一个新的体系结构 更可靠(内核模式中运行的代码更少) 更安全 缺点 用户空间与内核空间的通信代价较高
29
Mac OS X 结构
30
Windows NT客户-服务器结构
31
模块 许多现代操作系统实现内核模式 总之,模块类似与分层,但模块更具灵活性 用面向对象的方法 内核的组成部分相互分离
任务之间的交互通过已知的接口来实现 每个模块在内核中是按照需要可装载的 总之,模块类似与分层,但模块更具灵活性
32
Solaris模拟化方法
33
3.6 虚拟机 虚拟机采用了分层的方法。它将物理硬件和OS内核统一看作为硬件 虚拟机提供了与基本硬件相同的接口
通过利用CPU调度和虚拟内存技术,操作系统能创建一种幻觉,以至于进程认为有自己的处理器和自己的(虚拟)内存。
34
物理计算机共享资源以创建虚拟机 CPU调度能共享出CPU造成一种每个用户都有自己的处理器的感觉
假脱机和文件系统能提供虚拟读卡机和虚拟行式打印机 一个普通的用户分时终端提供虚拟机操作员终端的功能
35
系统模型
36
虚拟机的优缺点 通过完全保护系统资源,虚拟机提供了一个坚实的安全层 虚拟机允许进行系统开发而不必中断正常的系统操作
但虚拟机概念很难提供真实的硬件效果
37
Java虚拟机 编译后的Java程序是可以被Java虚拟机(JVM)执行的与平台无关的字节码。 JVM包括
类装载器 类校验器 运行时解释器 JIT(Just-In-Time)编译器能够提高Java运行的效率
38
Java 虚拟机示意图
39
Java平台
40
跨平台的Java 类文件
41
Java开发环境
42
3.7 系统设计与实现 设计目标 机制与策略 实现
43
系统设计目标 用户目标 - OS应该便于使用,易于学习,可靠,安全与快速
44
机制与策略 机制决定事情如何来做,而策略决定做什么内容。 策略和机制的区分对于灵活性来说很重要,每次策略的改变都可能需要底层机制的改变。
例如 对于一个计算机系统,策略用来决定是I/O密集型程序应该比CPU密集型程序有更高的优先级,还是相反?而机制则用来决定如何定义程序的优先级、如何利用优先级进行调度。
45
系统实现 传统地,操作系统是用汇编语言来编写的,不过,操作系统现在都是用高级语言如C或C++来编写的。 高级语言编写代码
MULTICS用PL/1编写(MIT) Primos用Fortran来编写 UNIX、OS/2、WindowsNT主要用C来编写 高级语言编写代码 编写更快速 更紧凑 更易理解与调试 用高级语言编写的操作系统更易快速移植到那它硬件平台上。
46
3.8 系统生成 OS被设计成能运行在一类计算机上,这些计算机位于不同的场所,并具有不同的外设配置。对于某个特定的计算机场所,必须要配置和生成系统,这一过程有时称为系统生成。 系统生成程序须获取到硬件系统的特定配置信息 引导 - 通过装载内核来启动计算机 引导程序 - 保存在ROM中的,用来定位内核、装载内核、启动内核的程序代码
Similar presentations