操作系统原理 Principles of Operating System 郑 然 华中科技大学计算机学院
服务计算技术与系统教育部重点实验室 集群与网格计算湖北省重点实验室 http://grid.hust.edu.cn 研究方向: 高性能计算及应用 (GPU计算、网格计算、集群计算 医学图像处理、图像搜索应用) 计算系统虚拟化 联系方式: 02787543529-8031 zhraner@hust.edu.cn
使用过程中的问题 为什么要学习操作系统? 遇到计算机运行或打开硬盘上的程序的速度变慢,该怎么办? 原因:硬盘上的卷可能有过多的碎片,可能是由于最近创建了大量的文件或文件夹,或安装了新软件。 解决方案:如果必要,分析并整理硬盘上的卷碎片。
游戏中的现象 为什么要学习操作系统? 基本配置 推荐配置 CPU Pentium3 800MHz以上 Pentium4 1GHz以上 基本配置 推荐配置 CPU Pentium3 800MHz以上 Pentium4 1GHz以上 内存 256M以上 512M以上 显卡 GeForce2以上3D加速卡 Geforce4 Ti以上3D加速卡 硬盘 3G以上
操作系统做什么 为什么要学习操作系统? int main(int argc, char *argv[]) { 操作系统读程序(正文和数据地址)-> 创建子进程执行(程序映射为进程)-> 分配内存、从磁盘读页面-> 系统调用、寻找字串、转换成像素-> 写入存储映像区->模拟信号-> 显示器发射电子束输出 #include <stdio.h> int main(int argc, char *argv[]) { puts("hello world"); return 0; } 操作系统提供一系列服务: 多任务,内存保护,内存管理, 网络,文件存取,设备控制,用户界面 错误检测及恢复系统,硬件控制,安全
操作系统是目前最复杂的软件成分 为什么要学习操作系统? 涉及到计算机科学的很多领域 抽象 大型、复杂系统的系统设计 计算机体系结构/硬件 软件设计 程序设计语言 数据结构 算法 抽象 无限的CPUs、无限的内存、单一全球计算能力… 大型、复杂系统的系统设计 软件/硬件、性能、易用性、简单性 综合权衡
基本目的 介绍操作系统的基本概念、基本结构及运行环境 介绍操作系统原理、设计方法和实现技术 介绍操作系统的演化过程、发展研究动向、新技术以及新思想 介绍各种有代表性的、典型的操作系统实例 掌握操作系统的基本理论,具备开发核心系统软件的技能,设计操作系统或者修改现有的系统 掌握并行处理的思想方法,加深对使用的OS的理解,有利于深入编程 培养分析问题、解决问题的基本能力 为后继课程打好基础——数据库、网络、分布式系统
教材: 操作系统原理(第四版) 庞丽萍 华中科技大学出版社 教材: 操作系统原理(第四版) 庞丽萍 华中科技大学出版社 参考教材: UNIX操作系统设计 莫里斯 · 贝奇 机械工业出版社 计算机操作系统 汤子瀛等 西安电子科技大学出版社 现代操作系统 陈向群等译 机械工业出版社 计算机操作系统教程 张尧学 史美林 清华大学出版社 操作系统基础 屠立德 屠祁 清华大学出版社
操作系统的工作: 操作系统课程特点 怎样学习操作系统 (1)程序的执行 (2)完成与硬件有关的工作 (3)完成与应用无关的工作 (4)计算机系统的效率与安全问题 操作系统课程特点 涉及面广 错综复杂 实践性强 怎样学习操作系统 深入理解教学内容 独立完成练习题 做好阶段复习 理论联系实际
讲课学时安排 52+12+4/4 章节内容 学时 第一章 绪 论 4 第二章 操作系统的逻辑结构 第三章 用户界面 6 第四章 并发处理 第一章 绪 论 4 第二章 操作系统的逻辑结构 第三章 用户界面 6 第四章 并发处理 14 第五章 资源分配与调度 2 第六章 处理机调度 3 第七章 主存管理 第八章 输入/输出管理 第九章 文件系统 5 习 题 课
成绩评定 教学方式: 多媒体讲授、作业、上机,课程设计 考试方式: 闭卷 笔试 成绩评定: 平时成绩=作业+上机 考试方式: 闭卷 笔试 成绩评定: 平时成绩=作业+上机 最终成绩=平时30%+考试70%
第一章 绪 论 (一) 操作系统在计算机系统中的地位 (二) 操作系统的形成和发展 (三) 操作系统的定义 (四) 操作系统的功能 第一章 绪 论 (一) 操作系统在计算机系统中的地位 (二) 操作系统的形成和发展 (三) 操作系统的定义 (四) 操作系统的功能 (五) 操作系统的基本类型
计算机系统的组成 裸机(硬件)是僵尸 软件是幽灵 应用软件 软件 编辑软件、编译软件 系统软件 操作系统 计算机系统 (层次结构) 提高系统效率方便用户使用 硬件及固件(裸机) 裸机(硬件)是僵尸 软件是幽灵 计算机系统的基础
(一)操作系统在计算机系统中的地位 操 作 系 统 计算机硬件 用户 用户 用户 用户 应用软件 支撑软件 管理信息系统、飞机订票系统、 银行系统、地理信息系统、 CAD系统、数字计算软件包… 管理信息系统、飞机订票系统、 银行系统、地理信息系统、 CAD系统、数字计算软件包… 语言编译程序、连接装配程序、 数据库管理系统、网络软件… 系统软件 操 作 系 统 计算机硬件 与硬件的关系: 控制CPU的工作、 访问存储器、 设备驱动、中断处理 与用户及应用程序的关系: 提供方便的用户界面、 提供优质的服务
(二)操作系统的形成和发展 提供更好的服务 操作系统发展是随着计算机硬件技术的发展而发展的。 目标: 充分利用硬件, 批处理 手工操 作阶段 联机 批处理 脱机 批处理 执行 系统 操作系统形成 多道程序系统 个人计算机操作系统 多道批处理系统 分时系统 网络操作系统 实时系统 分布式操作系统
第 1 阶段 手工操作阶段 硬件非常昂贵,没有操作系统 第 1 阶段 手工操作阶段 硬件非常昂贵,没有操作系统 算题过程 人工把源程序用穿孔机穿制在卡片或纸带上 将准备好的汇编解释程序或编译系统装入计算机 汇编程序或编译系统读入人工装在输入机上的穿孔卡或穿孔带 执行汇编过程或编译过程,产生目标程序,并输出目标卡片迭或纸带 通过引导程序把装在输入机上的目标程序读入计算机 启动目标程序执行,从输入机上读入人工装好的数据卡或数据带 产生计算结果,执行结果从打印机上或卡片机上输出
第 1 阶段 手工操作阶段 硬件非常昂贵,没有操作系统 第 1 阶段 手工操作阶段 硬件非常昂贵,没有操作系统 特点: 工作效率极低:手工操作的慢速度与机器处理的高速度 每一用户都要自行编写涉及到硬件的源代码 工作量大,难度高,易出错,需要大量人力和物力 独占性、串行性 问题: 人机矛盾 机器速度 计算所需时间 人工操作时间 操作时间 : 机器运行时间 1万次/秒 1小时 3分钟 1 : 20 60万次/秒 1分钟 3分钟 3 : 1
第2阶段 单道批处理阶段 硬件昂贵,人力便宜,单任务自动批处理 第2阶段 单道批处理阶段 硬件昂贵,人力便宜,单任务自动批处理 简单批处理: 装入程序、运行、打印结果、撤出、再重复 用户把作业(卡片或磁带)交给负责调度的操作员(系统管理员),由操作员按作业类型分类编成一个作业序列,送到输入设备上。 常驻监督程序自动地装入程序、运行、撤出作业 (1)联机批处理 (2)脱机批处理 (3)执行系统
批 处 理 1. 联机批处理 2. 脱机批处理 特点:有监督程序,作业自动过渡 问题:CPU高速与IO慢速的矛盾 解决:由卫星机负责IO 批 处 理 1. 联机批处理 特点:有监督程序,作业自动过渡 问题:CPU高速与IO慢速的矛盾 解决:由卫星机负责IO 2. 脱机批处理 特点:主机与卫星机并行操作 问题:调度不灵活,保护问题 解决:硬件技术的发展—— 通道技术、中断技术
3. 执行系统: 硬件基础: 60年代计算机硬件获得两个重大的进展 I/O中断:由I/O部件操作完成后通知处理机运行相应的处理程序. 定义: 借助于通道与中断技术,由主机控制I/O工作。原有的监督程序不仅要负责调度作业自动的运行,而且还要提供I/O控制功能。它常驻内存,称为执行系统。 特点:主机、外设并行操作;增加了保护能力 问题:处理机仍有空闲等待现象
SPOOLing系统图示 磁盘 通道 打印机 卡片机 通道 主机 通道 用磁盘设备作为主机的直接输入输出设备,即主机从磁盘选取作业运行,结果也存在磁盘中.相应的通道则负责磁盘与慢速外设的传输.利用通道和中断机制,作业的输入输出与作业在处理机上的运行可很好并行起来
SPOOLing系统结构 预输入程序 作业1 输入机 作业调度程序 作业1信息 : 作业n信息 作业n 井管理 读程序 写程序 作业 的 执行 输入井 虚拟设备 作业1结果 作业1结果 : : 作业n结果 打印机 作业n结果 输出井 缓输出程序 磁盘 SPOOLing系统结构
第 3 阶段 多道批处理阶段 硬件较以前便宜,人力昂贵 第 3 阶段 多道批处理阶段 硬件较以前便宜,人力昂贵 处理过程 在内存中同时存放几道相互独立的程序 在管理程序控制之下,相互穿插地运行,处理机和外设尽量处于忙碌状态 交互式分时处理 一台计算机,多个便宜终端 所有用户可与系统立即交互 调试比较方便
多道程序设计技术
多道程序设计技术 多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,在管理程序的控制下相互穿插地运行。当某道程序因某种原因不能继续运行下去时(如等待外部设备传输数据),管理程序便将另一道程序投入运行。 多道运行的特征: 多道 宏观上并行 微观上串行 效果 提高效率:增长了单位时间的算题量,但对每道程序来说,却延长了计算时间 提高资源利用率和系统吞吐率:以牺牲用户的响应时间为代价
多道程序设计技术 甲、乙两道程序,独占计算机单道运行时每道花一个小时,若此时处理器利用率为30%,粗略地说,甲(或乙)程序执行时所需要的处理器时间为:1小时×30%=18分钟 如果按多道程序设计方法运行,处理器的利用率将达50%,即提供36分钟的CPU时间,约要运行72分钟。加上系统开销,若共花80分钟。 比较单道和采用多道程序设计技术分别运行两道程序的效率和响应时间。 采用多道程序设计方法后可以提高效率: (120-80)/120≈33% 单道运行,花60分钟就可得到结果; 多道运行时,却要花80分钟才有结果,延长了20分钟,即延长了33%的时间。 (80-60)/60=33%
分时技术与分时处理 分时技术: 分时计算机系统: 把处理机的响应时间分成若干个大小相等(或不相等)的时间单位,称为时间片,每个终端用户获得CPU,就等于获得一个时间片,该用户程序开始运行,当时间片到(用完),用户程序暂停运行,等待下一次运行。 分时计算机系统: 由于中断技术的使用,使得一台计算机能连接多个用户终端,用户可通过各自的终端使用和控制计算机,我们把一台计算机连接多个终端的计算机系统称为分时计算机系统,或称分时系统。
实时处理 什么是“实时” 实时处理 计算机对外来的信息能够以足够快的速度进行处理,并且在被控对象允许的时间范围内作出快速反应。 以快速反应为特征,对实时信号能在截止期限之内处理并作出反应。
第 4 阶段 操作系统的进一步发展 硬件非常便宜、人力昂贵 嵌入式操作系统 实时操作系统 并行操作系统 分布式操作系统
(三)操作系统的定义 操作系统是计算机系统中的一个系统软件,是一些程序模块的集合—— 以尽量有效合理方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活,方便,有效的使用计算机,使整个计算机系统能高效的运行。 资源共享:多个计算任务对计算机系统资源的共同享用。 资源竞争:多个计算任务对计算机系统资源的争夺。
操作系统做什么 仲裁者(协调者) 管理程序 幻觉制造者 管理者 标准服务提供者 使多个应用程序/用户高效,公平地一起工作 保护用户不互相干扰 硬件平台扩展为运行平台 运行平台是承载应用程序的载体 幻觉制造者 提供硬件的高层界面,取消硬件限制 操作系统提供无限的内存、无限的CPU 管理者 有效合理地分配资源,保护用户不受侵犯 提供安全、保密措施 标准服务提供者 提供每个用户需要的标准工具 如标准库、窗口系统
操作系统的定义 操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。 操作系统是整个计算机系统的核心。
操作系统的特征 并发:系统中同时存在多个程序处理多个同时性活动 共享:多个计算任务对系统资源的共同享用 宏观上:这些程序是同时在执行的 微观上:任何时刻只有一个程序在执行,即微观上这些程序在CPU上轮流执行 共享:多个计算任务对系统资源的共同享用 操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源) 操作系统要对系统资源进行合理分配和使用 资源在一个时间段内交替被多个进程所用 不确定性:操作系统能处理大量的、随机的事件序列,使各用户的计算任务正确地完成。
虚拟性 虚拟性:操作系统的一种管理技术,把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术 通过多道程序和分时技术,将物理上的一个CPU变成逻辑上的多个CPU 通过Spooling技术把物理上的一台独占设备变成逻辑上的多台虚拟设备 通过窗口技术把物理上的一个屏幕变成逻辑上的多个虚拟屏幕 虚拟存储器把物理上的多个存储器(主存和辅存)变成逻辑上的一个虚存
(四)操作系统的功能 虚拟机观点 裸 机 :没有装配任何软件的计算机称为裸机。 命令解释、图形用户界面、用户程序 裸 机 :没有装配任何软件的计算机称为裸机。 虚拟机:装配有相应软件的机器称为虚拟机。 命令解释、图形用户界面、用户程序 系统调用 文件系统 处理机调度、内存管理 设备驱动,中断处理 裸机
操作系统的资源管理功能 把操作系统看成一个资源管理器。换句话说,从资源管理的角度看操作系统有如下四个功能: 系统资源 处理机 存储器 I/O设备 软件资源 操作系统功能模块 处理机 管 理 存储器 管 理 设 备 管 理 文 件 系 统
操作系统的资源管理功能 一 处理机分配 三 设备管理 二 存储器管理 四 软件资源管理 1. 制定调度策略(调度原则) 2. 给出调度算法 3. 具体的实施处理机分派 二 存储器管理 1. 存储分配和存储无关性 2. 存储保护 3. 存储扩充 三 设备管理 1. 设备无关性 2. 设备分配 3. 设备的传输控制 四 软件资源管理 为用户提供一种简便、统一的存取和管理信息的方法,解决信息的共享、数据的存取控制和保密等问题。
(五)操作系统的类型 批处理操作系统 分时操作系统 实时操作系统 个人计算机操作系统 网络操作系统 分布式操作系统 嵌入式操作系统
多道批处理系统 批处理系统 VS. 多核系统 ? 在批处理系统中采用多道程序设计技术,就形成了批量操作系统。 该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。 优点: 缩短作业之间的交接时间,减少处理机的空闲等待时间,提高系统的吞吐量 缺点: 用户响应时间较长。用户既不能了解自己程序的运行情况,也不能控制计算机。 批处理系统 VS. 多核系统 ?
分时操作系统 特点: 多路调制性:众多联机用户可同时使用同一台计算机 独占性:各终端用户感觉到自己独占了计算机 交互性:用户与计算机之间可进行“会话”
批处理操作系统vs.分时操作系统 目标不同 适应作业的性质不同 资源使用率不同 作业控制方式不同
实时操作系统 实时操作系统:对用户(外部)的请求,实时操作系统能在规定的时间内处理完毕。 实时操作系统的类型: 实时操作系统特点: 实时控制: 工业过程控制、防空系统等 实时信息处理:情报检索和查询、飞机订票系统 实时操作系统特点: 系统对外部的信号必须能及时响应 要求高可靠性和安全性,效率则放在第二位 系统整体性强 不要求很强的“会话”能力
网络操作系统 计算机网络: 网络操作系统: 计算机技术与通信技术相结合的产物,是互连起来的计算机的集合。 基于计算机网络、在各种计算机操作系统上、按网络体系结构协议标准开发的软件,包括网络管理、通讯、安全、资源共享和各种网络应用。 目标:相互通讯及资源共享
分布式系统 集群(Cluster) 由高速局域网连接多台计算机组成的分布式计算机系统(虚拟计算机系统)。 分布式系统是网络操作系统更高级的形式,它保持了网络操作系统的全部功能。 硬件上与计算机局域网没有任何区别。关键是软件。 特征: 1.统一性: 一个统一的操作系统 2.共享性: 资源进一步共享 3.透明性: 在用户眼中分布式计算机就是一台计算机 4.自治性: 处于分布式系统的多个主机处于平等地位 网络操作系统与分布式操作系统的主要区别:网络操作系 统可构架于不同的操作系统之上,即在异构系统上通过网 络协议实现网络资源的统一配置,并不要求透明访问。 集群(Cluster) 由高速局域网连接多台计算机组成的分布式计算机系统(虚拟计算机系统)。
嵌入式操作系统 什么是嵌入式系统? 在各种设备、装置或系统中,完成特定功能的软硬件系统 它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机” 通常工作在反应式或对处理时间有较严格要求环境中 由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统 在嵌入式系统中的OS,称为嵌入式操作系统
嵌入式操作系统的应用 智能卡 移动通信 计算机外设 机顶盒 零售设备 印刷机 复印机 互联网服务器 电话交换设备
手持系统的特性 完成某一项或有限项功能;不是通用型的 内存少,处理机速度慢,屏幕小 为了减少手持设备尺寸,使用耗电更小,体积更小,速度更慢的处理器; 操作系统和应用程序的设计不能加重处理器的负担 有些手持设备可使用无线技术,允许远程访问电子邮件和浏览网页
主要操作系统 Microsoft Windows系统 Unix系统 自由软件Linux和FreeBSD
微软公司Windows操作系统产品线 Windows 1.0(1985) Windows 2.0(1987) Windows 2.0(1987) Windows 3.0(1990) Windows 3.x WindowsNT3.1(NT第1版)(1993) WindowsNT3.5(NT第2版) Windows 95(1995) WindowsNT3.51(NT第3版) Windows 98(1998) WindowsNT4.0(NT第4版)(1996) Windows CE(1998) Windows2000(NT5.0)(2000) WindowsMe(2000) WindowsXP(2001) Windows Vista(2005)
UNIX发展 第一版(1971年) 第三版(1973年) 第六版(1975年) SYSTEM III(1982年) 第七版 第八版 第九版 第十版 1989年 SYSTEM V(1983年) SVR2(1984年) SVR3(1987年) SVR4(1989年) SUNSolaris IBM AIX HP UX 1BSD(1978年) 2BSD(1978年) 3BSD(1979年) 4.0BSD(1980年) 4.4BSD(1993年) MACH2.5 OSF/1(1989年) DEC OSF/1 Digital UNIX Tru64 UNIX UNIX发展
Linux和FreeBSD Linux由芬兰赫尔辛基大学计算机系大学生Linus Torvalds,在从1990年底到1991年的几个月中,为了自己的操作系统课程学习和后来上网使用而陆续编写的。在2001年初Linux World大会前夕推出了Linux2.4内核 ,现在推出了Linux2.6。 FreeBSD是美国加利福尼亚洲大学伯克利分校开发的支持POSIX标准的免费操作系统,它基于4.4BSD 。
第一章 小 结 1. 操作系统在计算机系统中的地位 2. 操作系统的基本概念:定义、特征 3. 操作系统的基本功能 第一章 小 结 1. 操作系统在计算机系统中的地位 2. 操作系统的基本概念:定义、特征 3. 操作系统的基本功能 4. 操作系统的基本技术:多道程序设计技术、分时技术 5. 操作系统的基本类型