570 likes | 894 Views
高级操作系统. 中国科技大学软件学院 丁箐 (dingqing@ustc.edu.cn). 参考书. « Distributed Operating Systems » , Andrew S.Tanenbaum , 机械工业出版社 , 2006 《Distributed Systems: Principles and Paradigms》 , Andrew S. Tanenbaum and Marten van Steen , Prentice-Hall, 2002
E N D
高级操作系统 中国科技大学软件学院 丁箐 (dingqing@ustc.edu.cn)
参考书 • « Distributed Operating Systems »,Andrew S.Tanenbaum,机械工业出版社,2006 • 《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 Systems》,Sape J. Mullender,2nd Edition, ACM Press, 1993 • 《Modern Operating Systems》 ,第2版,Andrew S.Tanenbaum, 机械工业出版社,2002
参考书 • 《 Solaries 操作系统内核》 • 《 Solaries编程指南》 • 《Linux 操作系统内核》 • 《Linux编程指南》 • 《Windows NT 操作系统内核》 • http://www.globus.org
教学内容 1 操作系统回顾 2 分布式系统概述 3 分布式通信 4 分布式系统的同步 5 分布式进程和处理机 6 分布式文件管理 7 分布式共享存储 8 网格计算概述
主要内容 1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题
主要内容 1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题
1.1 操作系统的作用 操作系统是计算机用户和计算机硬件之间的接口程序模块,它是计算机系统的核心控制软件, 其职能是控制和管理系统内各种资源,有效地组织多道程序的运行,从而为用户提供良好的工作环境,达到使用方便、资源分配合理、安全可靠等目的。 操作系统是现有软件系统中最复杂的软件之一。Denning认为,到目前为止,在操作系统的研究开发方面主要取得了进程、内存管理、信息保护与安全、调度与资源管理和系统结构等五项成就。
硬件系统和应用程序间的界面 由操作系统定义的软、硬件和数据,给程序员以及使用者提供了方便的界面,使程序员和应用程序更容易获取和使用计算机系统中的资源、工具和服务。
操作系统概念 • 一台扩展的计算机 • 隐藏了具体的硬件细节 • 为用户提供了一台容易使用的虚拟的计算机 • 一个资源管理器 • 每个程序分享时间 • 每个程序分享空间
作为扩展的计算机 具有如下功能: • ① 程序创建。 • ② 程序执行。 • ③ I/O设备的访问。 • ④ 控制对文件的访问。 • ⑤ 系统访问。 • ⑥ 查错和纠错。 • ⑦ 簿记。
作为资源管理者 作为资源管理器的操作系统:
主要内容 1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题
1.2 操作系统的演变 操作系统发展至今已有三十多年。设计操作系统主要有两个目的:第一,为程序的开发和执行提供一个方便的环境;第二,为保证计算机系统顺利执行,操作系统对各个计算活动进行调度。
操作系统发展历史 • 第一代 1945 - 1955 • 电子管,插件板 • 第二代 1955 - 1965 • 晶体管,批处理系统 • 第三代 1965 – 1980 • 集成电路(IC)和多道程序设计 • 第四代 1980 – 现在 • VLSI, 个人计算机,网络操作系统
操作系统家族 • 大型机操作系统(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)
串行处理系统 最早的计算机,从20世纪40年代末到50年代中期,程序员直接与硬件接触,根本没有OS。计算机运行在一个集成了指示器、各种开关、一些输入设备以及一个打印机的控制台之上。早期的这种系统存在两个问题: • (1)上机安排 • (2)启动时间
简单批处理系统 • 将卡片装入 1401机的读卡机 • 将卡片中的程序读入磁带 • 将磁带装入 7094机, 完成计算 • 将磁带装入 1401机,打印结果
简单批处理系统(续) 简单批处理系统是专业计算机操作员(或机器)按作业的性质将作业按类分成若干组,然后一组一组地来运行作业。 在早期计算机系统中,引进简单批处理系统可以减少安装磁带、装入程序和返绕磁带等有关的工序浪费的时间,因此,也就减少了计算机的空闲时间。 批处理系统实质上不提供用户和程序之间的交互功能。程序中的所有问题必须事先安排好,也不能进行联机修改。 。
简单批处理系统(续) 简单批处理系统的中心思想是,通过应用一种被称为监控器的软件,使用户不必再直接接触机器,而是先通过卡片机和纸带机向计算机控制器提交作业,由监控器将作业组织在一起构成一批作业,然后将整批作业放入由监控器管理的输入设备上,每当一个程序执行完毕返回监控器时,监控器已自动装入下一个程序。
简单批处理系统(续) 批处理系统存在很多不方便之处,主要有:用户不能与其作业交互以捕捉程序中的问题。用户程序中的所有问题必须事先安排好,否则程序的排错就可能在转储信息上盲目地进行。此外,对一个用户作业而言,可能需要较长的周转时间。 在批处理系统中,为了避免有意或无意地读取他人的卡片,必须建立监控和用户两种操作态,使其只有在监控态下才能读控制卡。通过建立一组仅能在监控态下执行的特权指令,操作系统就能保证在任何时候都能控制整个系统。
多道程序批处理系统 多道程序设计技术就是在内存中同时保持若干道程序,系统按某种调度策略交替执行这些程序,使CPU保持最少的空闲时间。 多道程序设计的主要优点是通过将用户的CPU请求和I/O请求重叠起来的办法来有效地使用CPU。它设法让CPU总有事情可做,以此来提高CPU的利用率。
多道程序批处理系统(续) 设想一台电脑配备256KB的可用内存空间(未被OS占用的),一个磁盘,一个终端和一台打印机。3个程序JOB1、JOB2和JOB3,同时被提交执行,如下表所列。
多道程序批处理系统(续) 多道程序设计在提高资源利用率方面产生的效果
分时系统 分时系统是一种由调度策略和多道程序设计技术所构成的、同时供两个或多个用户使用的一种经济实惠的系统。 分时系统的主要优点是:当程序正在执行时,允许用户与计算机交互,从而大大缩短了系统的响应时间,增加了用户调试程序和控制程序运行的灵活性。
分时系统(续) 分时系统通常采用的实现方法是:先对每一用户作业分定一个时间片,再按轮转方式来执行这些作业。用户作业可以继续运行直至其时间片执行完或发生一个(I/O)中断,才暂停此作业的运行而让另一作业运行,暂停的作业则等到再次轮到它时又可继续运行下去,系统中的作业都用这种方式轮转执行。
实时系统 实时系统是在响应时间方面有严格制约的专用系统。实时系统与其他普通的系统之间的最大不同之处就是要满足处理与时间的关系。 实时系统与分时系统的区别在于:在分时系统中,快速响应是需要的,但不是必需的;在实时系统中,处理事务必须在适合于此系统的特定时间限额内完成。
实时系统(续) 实时操作系统主要是为联机实时任务服务的,相比分时系统它有其自身的特点: • (1)与分时系统一样具有多路性和独立性。 • (2)对外部实时信号必须能及时响应,响应的时间间隔要足以控制发出实时信号的那个环境。 • (3)整体性强。 • (4)有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。 • (5)要求有高可靠性和安全性,系统的效率则放在第二位。
分布式操作系统 分布式系统中的客户/服务器(client/server)模型 • 位置透明性
分布式操作系统(续) • “一个分布式系统是若干个独立的计算机的集合,但是对该系统的用户来说,系统就像一台计算机一样。” • 硬件方面:各个计算机都是自治的 • 软件方面:用户将整个系统看作是一台计算机
主要内容 1.1 操作系统的作用 1.2 操作系统的演变 1.3 操作系统的主要研究课题
操作系统的主要成就 操作系统是现有软件系统中最复杂的系统软件之一。到目前为止,操作系统已取得了5项主要成就:进程、内存管理、信息的保护与安全性、调度与资源管理、系统结构。 。
进程 • 进程是操作系统结构的基础。进程就是:可并发执行的程序在一个数据集合上的运行过程。进程由以下3部分组成: ①一个可执行的程序; ②该程序所需的相关数据(变量、工作空间,缓冲区等); ③该程序的执行上下文(Context)。
进程(续) 典型的进程实现
进程(续) 进程管理 • 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 */ } }
进程管理 • 进程树( process tree) • 进程A 创建两个子进程: B和 C • B 又创建三个子进程: D, E,和 F
进程调度与同步 (a) 潜在死锁 (b) 实际的死锁.
进程间通信(IPC) 连接两个进程的管道( pipe)
存储管理 操作系统的5条存储管理原则: • 进程隔离。 • 自动分配和管理。 • 支持组件编程。 • 长时间存储。 • 保护和存取控制。
存储管理(续) 看待存储系统的两种不同观点 (a) 用户观点 (b) 操作系统设计者观点
存储管理(续) • 进程的三种段: text, data, stack
文件管理 计算机系的文件系统结构
I-node 文件管理(续) • 在连接之前的两个目录 • 在执行连接调用link( “/usr/jim/memo”,”/usr/ast/note”) 之后的两个目录
信息保护和安全性 • 同计算机系统和存储在其中的信息的存取控制有关的4种保护策略: ①不共享。 ②共享原始程序或数据文件。 ③无存储子系统。 ④控制信息的分布。
信息保护和安全性(续) • 同操作系统有关的安全和保护工作可分为以下3类: ①访问控制。 ②信息流控制。 ③确认。
调度和资源管理 操作系统的核心任务之一就是管理各种可获得的资源以及合理地调度它们。任何资源分配和调度策略都必须考虑公平性、不同敏感性以及效率。
操作系统的系统调用 POSIX操作系统 进程管理