第 3章 操作系统
第 3章 操作系统
? 3.1 操作系统的发展
? 3.2 操作系统的结构
? 3.3 现代操作系统处理的难题
? 3.4 网络操作系统和分布式操作系统
操作系统的发展 (1)
? 串行处理
? 所谓的编程全部采用机器语言实现,一个
程序要运行,要先制作穿孔卡片,从装配
到运行整个过程计算机处于被独占状态
? 采用排队预约机时的方法调度
? 准备时间远远大于程序的真正运行的时间
操作系统的发展 (2)
? 简单批处理
? 监控程序
操作系统的发展 (3)
? 多道批处理
? 相对于处理器来说,计算机的 I/O设备的速度太慢,
简单批处理系统的 CPU利用率依然很低
? 硬件条件,
? 主存容量大幅提高
? I/O设备 DMA( Direct Memory Access),通道可代替
CPU管理大量数据交换
? 中断驱动的 I/O设备
? 计算机体系结构也由以中央处理器为中心的结构改变为
以主存为中心
操作系统的发展 (4)
操作系统的发展 (5)
操作系统的发展 (6)
操作系统的发展 (7)
? 分时系统
? 20世纪 60年代,大多数的计算机非常庞大且昂贵,
人们希望能使多个用户通过多个终端同时交互使
用系统而开发了分时系统( Time Sharing System)
? 批处理和分时系统都使用了多道程序设计,但两
种系统的设计目标是不同的,多道批处理系统追
求最有效的使用处理器,而分时系统追求的是给
每个用户尽可能快的响应速度
? 在分时系统中,多个用户通过终端同时访问系统,
由操作系统控制每个用户的程序以很短的时间片
为单位交替执行
操作系统的发展 (8)
? 实时系统
( Real Time Operating System,RTOS)
? 多道程序系统可能同时启动或多或少的程序,各
个程序也可能千差万别,因此在系统中的每一道
程序的运行过程实际是无法预测的
? RTOS设计目标:对外部请求能在严格的时限内作
出响应,有高可靠性和完整性
? 硬实时任务( Hard Real-time Task)
? 软实时任务( Soft Real-time Task)
操作系统的功能
? 操作系统作为虚拟机
? 从用户的角度来看,操作系统为用户提供
了简单和高度抽象的编程和操作界面
? 操作系统作为资源管理器
? 从系统角度看,操作系统有效管理着系统
的各部分资源,起着资源管理器的作用
操作系统的组成
? 外壳( Shell)
? GUI( Graphics User Interface)
? MS-DOS命令行方式
? UNIX,Borne Shell,C Shell和 Korn Shell
? 内核( Kernel)
? 文件管理器( File Manager)
? 设备驱动程序( Device Drivers)
? 存储器管理器( Memory Manager)
? 调度和分派程序( Scheduler and Dispatcher)
系统的引导
现代操作系统处理的难题 (1)
? 进程( Process)
? 对正在运行的程序的抽象
? 一个进程至少包括三部分内容,
? 一段可执行的程序
? 程序的相关数据:变量、工作空间和缓冲区等
? 程序执行的上下文环境,即进程的状态
? 程序是个静态的概念,仅仅包含描述算法的代码;
而进程是个动态的概念,是一个运行程序的抽象,
包含了程序代码、数据和程序运行的状态(第几
步、暂停还是执行等)等信息
现代操作系统处理的难题 (2)
? 进程( Process)
? 进程切换需要一定的机制
? 进程可以有几个不同的状态
? 三状态模型:就绪、运行、阻塞
现代操作系统处理的难题 (3)
? 进程( Process)
? 五状态模型,
? 新建、就绪、运行、阻塞和退出;
? 六状态模型,
? 增加挂起状态,将长时间阻塞的进程交换到外
存上节约主存空间;
? 七状态模型,
? 增加阻塞 /挂起和就绪 /挂起两种挂起状态
现代操作系统处理的难题 (4)
? 有效的分配处理器:调度策略
? 先来先服务策略( first-come-first-served,FCFS)
? 循环策略( Round-Robin)
? 最短进程优先策略( Shortest Process Next,SPN)
? 剩余时间最短优先策略( Shortest Remaining Time,
SRT)
? 最高相应比进程优先策略( Highest Response Ratio
Next,HRRN)
现代操作系统处理的难题 (4)
? 调度策略示例
现代操作系统处理的难题 (5)
? 存储器的有效利用
? 固定分区
? 相等大小分区
? 大小不等分区
? 内部碎片
(Internal Fragmentation)
现代操作系统处理的难题 (6)
? 存储器的有效利用
? 动态分区
? 外部碎片
(External
Fragmentation)
现代操作系统处理的难题 (6)
? 存储器的有效利用
? 分页
? 页帧( Frame)
? 页( Page)
? 页表( Page Table)
? 分段
? 段( Segment)
? 段表( Segment Table)
? 分段和分页结合
现代操作系统处理的难题 (6)
? 存储器的拓展:虚拟存储器
? 局部性原理( Principle of Locality)
? 虚拟存储器思想
? 每个进程的运行不需要整体加载,进程本身的
大小就不必受限于系统内存的大小;
? 系统内存可容纳的活跃进程的数目可以大大增
加,提高处理器的利用率
现代操作系统处理的难题 (6)
? 存储器的拓展:虚拟存储器
? 发生页失配时,需要从外存中调入失配页
? 导致进程被阻塞而调度另外的进程
? 调入新的页则意味着要有一个页被替换
? 最优算法( Optimal,OPT)
? 最近最少使用算法( Least Recently Used,LRU)
? 先进先出算法( First In First Out,FIFO)
? 时钟算法( Clock)
现代操作系统处理的难题 (6)
? I/O设备:高效并通用
? 系统性能的瓶颈
? 两大类 I/O设备,
? 块设备( Block Devices)
? 字符设备( Character Devices)
? 措施
? 操作系统提供缓冲区以提高效率
? 操作系统用层次化、模块化的方法设计 I/O功
能以实现通用性,即所谓设备无关性
现代操作系统处理的难题 (6)
? 并发控制的难题
? 并发( Concurrency) 多道程序技术、多处
理( Multiprocessing) 技术和分布式处理
( Distributed Processing) 技术的共同问
题,并发控制是操作系统设计的基础,也
是操作系统课程的核心内容
? 临界资源
? 互斥( Mutual Exclusion)
? 死锁( Deadlock) 和饥饿 (Starvation)
现代操作系统处理的难题 (6)
? 哲学家共餐( Dining Philosopher) 问题
? 哲学家的生活进程,
1,思考问题;
2,饿了,停止思考,左手拿一只
叉子,如果左侧哲学家已持有它
则需等待;
3,右手拿一只叉子,如果右侧哲
学家已持有它则需等待;
4,进餐;
5,放右手叉子;
6,放左手叉子;
7,重新回到思考问题状态 1
? 死锁和饥饿
现代操作系统处理的难题 (6)
? 没有彻底解决死锁问题的方法
? 死锁预防
? 死锁避免
? 检测并解除死锁
? 其他 IPC问题
? 读者写者问题( Reader- Writer Problem)
? 理发师睡眠问题( Sleeping Barber Problem)
网络操作系统和分布式操作系统
? 计算的需求催生了计算机的发明
? 通讯和资源共享的需求又催生了计算机
网络的产生和发展
? 分布协同处理和廉价的高性能计算的需
求推动了集群的出现
网络操作系统 (1)
? 计算机网络
? 第一代网络:面向终端的远程联机系统
? 第二代网络:以通信子网为中心的计算机通信网
? 第三代网络:遵循国际标准化网络体系结构的计
算机网络
? 第四代网络:宽带综合业务数字网
? 因特网( Internet)
? 阿帕网( ARPANET) 的诞生( 1969)
? 以太网( Ethernet) 的出现( 1973)
? 因特网( Internet) 的产生 ( 1989)
网络操作系统 (2)
? 网络协议
网络操作系统 (2)
? 计算机网络的设计目的
? 实现通信和资源共享
? 提供全局文件系统,实现资源共享
? 提供认证管理,避免非法篡改和拷贝
? 提供用于通信的程序,建立一致的通信方式
? 典型的网络操作系统,
? NFS( Network File System)
? Unix
? Windows NT和 Windows 2000等
分布式操作系统
? 集群
? 以提高计算性能( Performance) 为目的
? 分布式操作系统
? 透明性
? 可靠性
? 并行性
几种类型操作系统的比较
第 3章 操作系统
? 3.1 操作系统的发展
? 3.2 操作系统的结构
? 3.3 现代操作系统处理的难题
? 3.4 网络操作系统和分布式操作系统
操作系统的发展 (1)
? 串行处理
? 所谓的编程全部采用机器语言实现,一个
程序要运行,要先制作穿孔卡片,从装配
到运行整个过程计算机处于被独占状态
? 采用排队预约机时的方法调度
? 准备时间远远大于程序的真正运行的时间
操作系统的发展 (2)
? 简单批处理
? 监控程序
操作系统的发展 (3)
? 多道批处理
? 相对于处理器来说,计算机的 I/O设备的速度太慢,
简单批处理系统的 CPU利用率依然很低
? 硬件条件,
? 主存容量大幅提高
? I/O设备 DMA( Direct Memory Access),通道可代替
CPU管理大量数据交换
? 中断驱动的 I/O设备
? 计算机体系结构也由以中央处理器为中心的结构改变为
以主存为中心
操作系统的发展 (4)
操作系统的发展 (5)
操作系统的发展 (6)
操作系统的发展 (7)
? 分时系统
? 20世纪 60年代,大多数的计算机非常庞大且昂贵,
人们希望能使多个用户通过多个终端同时交互使
用系统而开发了分时系统( Time Sharing System)
? 批处理和分时系统都使用了多道程序设计,但两
种系统的设计目标是不同的,多道批处理系统追
求最有效的使用处理器,而分时系统追求的是给
每个用户尽可能快的响应速度
? 在分时系统中,多个用户通过终端同时访问系统,
由操作系统控制每个用户的程序以很短的时间片
为单位交替执行
操作系统的发展 (8)
? 实时系统
( Real Time Operating System,RTOS)
? 多道程序系统可能同时启动或多或少的程序,各
个程序也可能千差万别,因此在系统中的每一道
程序的运行过程实际是无法预测的
? RTOS设计目标:对外部请求能在严格的时限内作
出响应,有高可靠性和完整性
? 硬实时任务( Hard Real-time Task)
? 软实时任务( Soft Real-time Task)
操作系统的功能
? 操作系统作为虚拟机
? 从用户的角度来看,操作系统为用户提供
了简单和高度抽象的编程和操作界面
? 操作系统作为资源管理器
? 从系统角度看,操作系统有效管理着系统
的各部分资源,起着资源管理器的作用
操作系统的组成
? 外壳( Shell)
? GUI( Graphics User Interface)
? MS-DOS命令行方式
? UNIX,Borne Shell,C Shell和 Korn Shell
? 内核( Kernel)
? 文件管理器( File Manager)
? 设备驱动程序( Device Drivers)
? 存储器管理器( Memory Manager)
? 调度和分派程序( Scheduler and Dispatcher)
系统的引导
现代操作系统处理的难题 (1)
? 进程( Process)
? 对正在运行的程序的抽象
? 一个进程至少包括三部分内容,
? 一段可执行的程序
? 程序的相关数据:变量、工作空间和缓冲区等
? 程序执行的上下文环境,即进程的状态
? 程序是个静态的概念,仅仅包含描述算法的代码;
而进程是个动态的概念,是一个运行程序的抽象,
包含了程序代码、数据和程序运行的状态(第几
步、暂停还是执行等)等信息
现代操作系统处理的难题 (2)
? 进程( Process)
? 进程切换需要一定的机制
? 进程可以有几个不同的状态
? 三状态模型:就绪、运行、阻塞
现代操作系统处理的难题 (3)
? 进程( Process)
? 五状态模型,
? 新建、就绪、运行、阻塞和退出;
? 六状态模型,
? 增加挂起状态,将长时间阻塞的进程交换到外
存上节约主存空间;
? 七状态模型,
? 增加阻塞 /挂起和就绪 /挂起两种挂起状态
现代操作系统处理的难题 (4)
? 有效的分配处理器:调度策略
? 先来先服务策略( first-come-first-served,FCFS)
? 循环策略( Round-Robin)
? 最短进程优先策略( Shortest Process Next,SPN)
? 剩余时间最短优先策略( Shortest Remaining Time,
SRT)
? 最高相应比进程优先策略( Highest Response Ratio
Next,HRRN)
现代操作系统处理的难题 (4)
? 调度策略示例
现代操作系统处理的难题 (5)
? 存储器的有效利用
? 固定分区
? 相等大小分区
? 大小不等分区
? 内部碎片
(Internal Fragmentation)
现代操作系统处理的难题 (6)
? 存储器的有效利用
? 动态分区
? 外部碎片
(External
Fragmentation)
现代操作系统处理的难题 (6)
? 存储器的有效利用
? 分页
? 页帧( Frame)
? 页( Page)
? 页表( Page Table)
? 分段
? 段( Segment)
? 段表( Segment Table)
? 分段和分页结合
现代操作系统处理的难题 (6)
? 存储器的拓展:虚拟存储器
? 局部性原理( Principle of Locality)
? 虚拟存储器思想
? 每个进程的运行不需要整体加载,进程本身的
大小就不必受限于系统内存的大小;
? 系统内存可容纳的活跃进程的数目可以大大增
加,提高处理器的利用率
现代操作系统处理的难题 (6)
? 存储器的拓展:虚拟存储器
? 发生页失配时,需要从外存中调入失配页
? 导致进程被阻塞而调度另外的进程
? 调入新的页则意味着要有一个页被替换
? 最优算法( Optimal,OPT)
? 最近最少使用算法( Least Recently Used,LRU)
? 先进先出算法( First In First Out,FIFO)
? 时钟算法( Clock)
现代操作系统处理的难题 (6)
? I/O设备:高效并通用
? 系统性能的瓶颈
? 两大类 I/O设备,
? 块设备( Block Devices)
? 字符设备( Character Devices)
? 措施
? 操作系统提供缓冲区以提高效率
? 操作系统用层次化、模块化的方法设计 I/O功
能以实现通用性,即所谓设备无关性
现代操作系统处理的难题 (6)
? 并发控制的难题
? 并发( Concurrency) 多道程序技术、多处
理( Multiprocessing) 技术和分布式处理
( Distributed Processing) 技术的共同问
题,并发控制是操作系统设计的基础,也
是操作系统课程的核心内容
? 临界资源
? 互斥( Mutual Exclusion)
? 死锁( Deadlock) 和饥饿 (Starvation)
现代操作系统处理的难题 (6)
? 哲学家共餐( Dining Philosopher) 问题
? 哲学家的生活进程,
1,思考问题;
2,饿了,停止思考,左手拿一只
叉子,如果左侧哲学家已持有它
则需等待;
3,右手拿一只叉子,如果右侧哲
学家已持有它则需等待;
4,进餐;
5,放右手叉子;
6,放左手叉子;
7,重新回到思考问题状态 1
? 死锁和饥饿
现代操作系统处理的难题 (6)
? 没有彻底解决死锁问题的方法
? 死锁预防
? 死锁避免
? 检测并解除死锁
? 其他 IPC问题
? 读者写者问题( Reader- Writer Problem)
? 理发师睡眠问题( Sleeping Barber Problem)
网络操作系统和分布式操作系统
? 计算的需求催生了计算机的发明
? 通讯和资源共享的需求又催生了计算机
网络的产生和发展
? 分布协同处理和廉价的高性能计算的需
求推动了集群的出现
网络操作系统 (1)
? 计算机网络
? 第一代网络:面向终端的远程联机系统
? 第二代网络:以通信子网为中心的计算机通信网
? 第三代网络:遵循国际标准化网络体系结构的计
算机网络
? 第四代网络:宽带综合业务数字网
? 因特网( Internet)
? 阿帕网( ARPANET) 的诞生( 1969)
? 以太网( Ethernet) 的出现( 1973)
? 因特网( Internet) 的产生 ( 1989)
网络操作系统 (2)
? 网络协议
网络操作系统 (2)
? 计算机网络的设计目的
? 实现通信和资源共享
? 提供全局文件系统,实现资源共享
? 提供认证管理,避免非法篡改和拷贝
? 提供用于通信的程序,建立一致的通信方式
? 典型的网络操作系统,
? NFS( Network File System)
? Unix
? Windows NT和 Windows 2000等
分布式操作系统
? 集群
? 以提高计算性能( Performance) 为目的
? 分布式操作系统
? 透明性
? 可靠性
? 并行性
几种类型操作系统的比较