版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京大学计算机科学技术系Peking University,Department of Computer Science return 0; , 程序执行系统调用,在文件描述符中写一字符串, 用户告诉操作系统执行hello程序, 操作系统找到该程序,检查其类型, 检查程序首部,找出正文和数据的地址, 文件系统找到第一个磁盘块, 父进程需要创建一个新的子进程,执行hello程序, 操作系统需要将执行文件映射到进程结构, 操作系统设置CPU上下文环境,并跳到程序开始处, 程序的第一条指令执行,失败,缺页中断发生, 操作系统分配一页内存,并将代码从磁盘读入,继续执行, 更多的缺页中断,读入更多的页面
2、, 操作系统检查字符串的位置是否正确, 操作系统找到字符串被送往的设备, 设备是一个伪终端,由一个进程控制, 操作系统将字符串送给该进程, 该进程告诉窗口系统它要显示字符串, 窗口系统确定这是一个合法的操作,然后将字符串转换成像素, 窗口系统将像素写入存储映像区, 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕), 显示器发射电子束, 你在屏幕上看到hello world,操作系统提供一系列服务: 多任务,内存保护,内存管理, 网络,文件存取,设备控制,用户界面 错误检测及恢复系统,硬件控制,安全,3.为什么学习操作系统?,设计操作系统 或者 修改现有的系统 存在人们意识不到的大量“
3、操作系统” 嵌入式系统(Embedded OS) 加深对使用的OS的理解,有利于深入编程 用户为了开发应用程序必须与操作系统打交道 编程时借鉴操作系统的设计思想和算法 操作系统中所用的许多概念和技巧可以推广应用到其他领域 选择购买操作系统 我们并不总使用Win95/NT/2000/XP,涉及到计算机科学的很多领域,计算机体系结构/硬件 软件设计 程序设计语言 数据结构 算法 网络 学习核心技术并能在其他地方应用之,抽象,操作系统具有一种魔力(magic) 提供了无限的CPUs 无限的内存 单一全球计算能力 等等,思维方式的学习,大型、复杂系统的系统设计, 性能 与 方便使用 性能 与 简单性
4、硬件 与 软件 折衷权衡 Trade Off,操作系统是目前最复杂的软件成分,(1)程序的执行 负责启动每个程序,以及结束程序的工作 (2)完成与硬件有关的工作 (3)完成与应用无关的工作 易于使用,基本服务,统一性 (4)计算机系统的效率与安全问题,4.操作系统的工作,硬件相关:,应用程序 - 虚机器界面 操作系统 - 物理机器界面 硬件,假如没有操作系统?怎样将目标代码送给硬件?怎样输出打印结果? 人们将对二进制程序操作 从二极发光管读答案,硬件相关(续1):,指实现代码中包含存储器的物理地址,包含对设备接口寄存器和设备接口缓冲区的读写等等 实现该工作的过程代码和硬件因素密切相关,即需要设
5、置与测试、使用物理地址、设备接口寄存器等等 硬件相关必然复杂繁琐、代码量大 硬件相关的工作,其实现代码不通用,硬件相关(续2):,由于操作系统承担了上述工作,在其之上的各类程序就没有必要直接同硬件打交道了。硬件改变时,操作系统相应变化即可,其他的程序不用作出改变 硬件相关还表现在有关硬件的状态必定带来对应代码的变化,与应用无关:,是指这些工作是任何一个程序都需要的、最基本的工作 它们具有共性,工作过程相同与具体应用无直接关系,即与用户所关心的应用目标无直接关系,基本目的,1介绍操作系统的基本概念、基本结构及运行环境 2介绍操作系统原理、设计方法和实现技术 3介绍操作系统的演化过程、发展研究动向
6、、新技术以及新思想 4介绍各种有代表性的、典型的操作系统实例 5培养学生分析问题、解决问题的基本能力,培养创造型人才,学习收获,1使学生对操作系统的基本概念、基本结构及运行环境有深入的认识,对操作系统这一课程有比较全面的把握 2使学生深入到操作系统内部,理解并掌握操作系统的基本原理、设计方法和实现技术 3使学生了解操作系统的演化过程、发展研究动向、新技术以及新思想,使学生具有透过变化看趋势、透过技术抓原理、把握学科发展脉搏的基本素质,为其今后在相关领域开展工作打下坚实的基础,第一章 操作系统概述,操作系统的基本概念 操作系统的特征 研究操作系统的几种观点 操作系统的技术发展过程 著名的操作系统
7、 操作系统的分类 操作系统的功能,一、操作系统的地位,计算机系统由硬件和软件组成 操作系统在硬件基础上的第一层软件 是其他软件和硬件之间的接口,操作系统设计者,应用软件设计者,应用软件设计者,二、操作系统的定义,操作系统是计算机系统中的一个系统软件, 是一些程序模块的集合,它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行。,有效:系统效率,资源利用率 (如:CPU利用的充足与否,内存、外部设备是否忙碌),合理: 公平与否,如果不公平则会产生“死锁”
8、或“饥饿”,方便: 用户界面,三、操作系统的特征,并发: 在计算机系统中同时存在多个程序 宏观上:这些程序是同时在执行的 微观上:任何时刻只有一个程序在执行 即微观上这些程序在CPU上轮流执行 并行:(与并发相似,但多指硬件支持),共享: 操作系统与多个用户的程序共同使用计算机系统中的资源,操作系统特征(续),随机性: 操作系统必须随时对以不可预测的次序发生的事件进行响应 如何考虑周密、设计适当,四、研究操作系统的几种观点,作为软件来看的观点,资源管理的观点,进程的观点,虚机器观点,服务提供者观点,1.作为软件来看的观点,软件的特性 外在特性: 软件是种语言,是界面 界面:使用方式 (命令,系
9、统调用等) 内在特性: 软件的结构 a.由有几部分组成 b.每个部分的功能 c.部分之间的关系,2.资源管理的观点,操作系统-资源管理者 硬件资源: CPU,内存,外部设备(I/O设备,外存,时钟,网络接口等) 软件资源: 硬盘上的文件,信息,管理资源,记录资源使用状况 如 哪些资源空闲,好坏与否,被谁使用,使用多长时间等 合理的分配资源 静态分配策略 (在程序运行前分配,但效率不高) 动态分配策略 (在程序运行过程中何时用资源,何时分配。其缺点是会出现死锁) 具体完成分配 回收资源,资源管理的目的,实现资源共享 提高资源利用率,操作系统功能,CPU(进程)管理,存储管理,文件管理,设备管理,
10、作业管理,3.进程的观点,是从操作系统运行的角度动态的观察操作系统 从这个观点来看: 操作系统是由一些可同时独立运行的进程和一个对这些进程进行协调的核心组成.,进程:,完成某一特定功能的程序 是程序的一次执行过程 是动态有生命的,当它执行时存在,否则消亡,4.虚机器观点,从操作系统内部结构来看: 把操作系统分成若干层 每一层完成其特定功从而构成一个虚机器,并对上一层提供支持 通过逐层功能扩充,最终完成整个操作系统虚机器 而操作系统虚机器向用户提供各种功能, 完成用户请求,5. 服务提供者的观点,在操作系统之外从用户角度来看: 操作系统为用户提供一组功能强大的、方便易用的命令或系统调用,6.其他
11、观点,操作系统作为 仲裁者(协调者) 使多个应用程序/用户高效,公平地一起工作 保护用户不互相干扰 例子:并发,存储保护,文件系统,网络,操作系统作为 管理程序 硬件平台扩展为运行平台 运行平台是承载应用程序的载体,平台之争 企业竞争的范围已经超出了市场、 资本和技术 竞争的焦点: 表面上:平台(标准) 实质上:争夺产业的制高点,操作系统作为 幻觉制造者(illusionist) 提供硬件的高层界面,取消硬件限制 操作系统提供无限的内存、无限的CPU,操作系统作为 管理者(government) 有效合理地分配资源,保护用户不受侵犯 提供安全、保密措施,操作系统作为 历史教员 学习过去,预测未
12、来,操作系统作为 标准服务提供者 提供每个用户需要的标准工具 如标准库、窗口系统,操作系统作为 A PARENT,程序创建和执行 存取I/O设备 控制对文件的存取 系统存取 错误检测和回应 统计,五、操作系统的发展,操作系统发展是随着计算机硬件技术、应用软件的发展而发展的 目标:充分利用硬件 提供更好的服务,1.概述 操作系统历史划分为4个阶段,控制台 一个用户,一次完成一个功能(计算,I/O,用户思考/反应),程序通过卡片装入 用户在控制台前调试程序,第 1 阶段 硬件非常昂贵,没有操作系统,工作效率非常低每一用户都要自行编写涉及到硬件的源代码工作量大,难度高,易出错,需要大量人力和物力,第
13、 2 阶段 硬件昂贵,人力便宜 简单批处理:装入程序、运行、打印结果、撤出、再重复 用户把程序(卡片或磁带)交给负责调度的操作员(系统管理员) 常驻监控程序自动地装入程序、运行、 撤出作业,多道程序批处理系统 在磁盘上多个作业等待运行 多道程序 - 同时运行多个作业 - 选择若干作业准备运行(调度) 并装入内存(存储管理) - 运行一个作业,当它等待时切换至内存中的另一个作业(如需安装磁带,等键按下),多道程序设计:多个用户共享系统,增加:存储保护,重定位 利用率高(多个作业) 有必要采用并发程序设计技术 操作系统成为研究焦点: 需要处理复杂性,首次面对重大失败:,- MULTICS 于 19
14、63 年开始, 直至 1969 年才发布,- IBM 的 OS/360 发布时, 带着已知的 1000 个错误,早期计算机:单控制方式,- CPU负责计算,也负责传输,早期计算机的使用方式,- 一个用户独占全部资源,- 浪费:CPU与外设速度不匹配 手工操作方式和高速机器之间的不匹配,提高资源利用率,- 多部件并行,多任务共享,通道引入:传输和CPU相对独立 中断引入:各部件的协调动作成为可能,体系结构的发展可以支持OS,多道程序运行模式,第 3 阶段 硬件较以前便宜,人力昂贵,交互式分时处理,一台计算机,多个便宜终端,- 所有用户可与系统立即交互,- 调试比较方便,磁盘便宜,故可在线存放程序
15、和数据,- 1 张穿孔卡片 = 100个字节,- 1 MB = 10K卡片,- OS/360 有若干英尺长度的卡片,新问题,- 易于使用,提高人的生产力,- 合理的响应时间,- 引入文件系统,使用户可存取数据,解决,- 需要抢占式调度以便保持 适当的响应时间,- 需要避免抖动(程序在内存中 过于频繁的对换),- 需要提供适用的安全检测,成功:,一群计算机迷 ( Tomson, Ritchie ) 在贝尔实验室发展出了UNIX。 (这样他们可以在一台无人使用的DEC PDP-7 小型计算机上玩星际探险游戏),成功:,Ken Thompson,Dennis Ritchie 1983年图灵奖获得者
16、1999年4月 美国国家技术金奖,第 4 阶段 硬件非常便宜,人力昂贵,目标: 充分利用人和时间,个人计算雏形,CPU 便宜到可在每台终端上安装,功能强大有效,- 成为大众的计算机,放弃多道程序、并发和保护机制,使 OS 回归简单,使用户再次与系统交互,增强文件系统,响应时间、保护更为重要,网络,允许不同机器很容易共享资源,- 共享,安全,操作系统的历史: 变化!,意味着技术总在改变 要适应、折衷权衡,2.历史上的操作系统,随历史线索,介绍一些重要的操作系统 真空管时代(1946年-1955年) 晶体管时代(1955年-1965年) 集成电路时代(1965年-1980年) 大规模集成电路时代(
17、1980年-至今),第一台数字计算机,英国数学家Charles Babbage(1792-1871)设计 Babbage投入了毕生精力 但却没能让它成功地运行起来 因为当时的技术不可能达到需要的精度 当然,这个分析机没有操作系统,二战对武器设计的需要 美国、英国和德国等国家 开始了电子数字计算机的研究工作 哈佛大学的Howard Aiken 普林斯顿高等研究院的John Neumann(冯诺依曼) 宾夕法尼亚大学的J.Presper Eckert和William Mauchley 德国电话公司的Konraad Zuse以及其他一些人 都使用真空管成功地建造了运算机器,真空管计算机(1945年-
18、1955年)时期,没有程序设计语言(甚至没有汇编),更谈不上操作系统 程序员提前预约一段时间,然后到机房将他的插件板插到计算机里 期盼着在接下来的时间中 几万个真空管不会烧断 从而可以计算自己的题目,ENIAC计算机(美国宾夕法尼亚大学),运算速度:5000次/每秒, 18000个真空管, 占地182平方米,重量130吨,功耗140kW,50年代早期 出现了穿孔卡片 程序写在卡片上然后读入计算机 但计算过程则依然如旧,晶体管计算机(1955年-1965年)时期,50年代晶体管发明 计算机比较可靠,可成批地生产 用户可指望计算机长时间运行,完成一些工作 FORTRAN 1954年提出,1956年
19、设计完成 ALGOL 1958年引入 COBOL 1959年引入 设计人员、生产人员、操作人员、程序人员和维护人员之间第一次有了明确的分工,要运行一个作业,先将程序写在纸上(用高级语言或汇编语言) 然后穿孔成卡片,再将卡片盒交给操作员 计算结果从打印机上输出 操作员到打印机上撕下运算结果送到输出室 程序员稍后可从取到结果 然后,操作员从输入室的卡片盒中读入另一个任务 如果需要FORTRAN编译器,还要把它取来读入计算机 机时在走来走去时被浪费,批处理操作系统 - 现代操作系统雏型,为了改进主存和I/O设备之间的吞吐量 IBM 7094机引入了I/O 处理机概念 其思想是:在输入室收集全部的作业
20、,用一台相对便宜的计算机 如IBM 1401计算机,将它们读到磁带上 另外用较昂贵的计算机,如IBM7094来完成真正的计算,第二代计算机典型的操作系统,FMS(FORTRAN Monitor System,FORTRAN监控系统) IBMSYS(IBM为7094机配备的操作系统) 这些操作系统由监控程序,特权指令,存储保护和简单的批处理构成,第三代集成电路计算机(1965年-1980年)时期,60年代初期,计算机开始采用集成电路,多数厂商有几条完全不同的生产线,生产不同的计算机。 产生的问题: 开发和维护完全不同的产品 对厂商来说是昂贵的 新用户在开始时只需要一台小计算机,后来可能需要一台大
21、的计算机,又希望能在新计算机上执行原有的程序 厂家和用户要求软件在不同型号的计算机之间兼容,1964 年IBM 宣布推出System/360计算机系统 第一个采用小规模集成电路的主流机型 试图一次性地解决上述两个问题 由于所有的计算机 都有相同的体系结 构和指令集 在理论上,为一型 号编写的程序可以 在其他型号机器上 运行,IBM System/360的若干问题,IBM无法写出同时满足互冲突需要的操作系统 其实别人也一样不能完成这项工作任务 IBM OS/360文件系统中有类型字段,定义文件的类型,有定长、不定长记录、块状和非块状文件 用户对于输出文件的大小,只有通过猜测 存储管理有基地址寄存
22、器寻址方式,程序也可以访问和修改基地址寄存器,但是CPU生成的却是绝对地址,虽然不用进行动态再分配 但程序却被钉死在调入内存时的物理地址上 (IBM 370体系结构:引入虚拟存储器。),IBM System/360, 庞大的软件怪兽,数千名程序员写的数百万行汇编语言代码 系统自身占据了大量存储空间和一半的CPU时间 数百万行汇编代码中有成千上万处错误 IBM不断发行新的版本试图更正这些错误 每个新版本在更正老错误的同时又引入新错误 所以随着时间的流逝,错误的数量大致保持不变,多道程序设计技术(multiprogramming),在IBM 7094机上,若当前作业因等待I/O而暂停, CUP只能
23、等待直至该I/O完成 对于CPU操作密集科学计算问题,浪费时间少 对于商业数据处理,I/O等待时间常占8090 解决办法 将内存分几个部分,每部分放不同的作业 当一个作业等待I/O时,另一个作业可以使用CPU 在主存中同时驻留多个作业需要硬件进行保护 以避免信息被窃取或攻击,Spooling 技术,程序卡片被拿到机房后 能够很快将一作业从卡片读入磁盘 任何时刻当一作业运行结束 操作系统就将一新作业从磁盘读出 装入空出的内存区运行 Spooling技术 (Simultaneous Peripheral Operation On Line) 该技术也用于输出,分时系统,第三代计算机实质是批处理系统
24、 而从一作业提交到结果取回, 往往长达数小时 一个逗号的误用会导致编译失败 而可能浪费程序员半天时间 问题的解决导致分时系统的出现 (CTSS,Compatible Time Sharing System) 分时系统实际上是多道程序的一个变种 提高计算机运算效率;改善人机交互界面,分时系统的思想于1959年在MIT提出 (IBM 7090,32k RAM,0.35 MIPS,350万美元) 每个用户有一个联机终端 在分时系统中,假设20个用户登录 其中17个在思考或谈论或喝咖啡 则CPU可给那三个需要的作业轮流分配服务 调试程序的用户常常只发出简短的命令 而很少有长的费时命令 所以计算机能够为
25、许多用户提供交互式快速服务 同时在CPU空闲时还能在后台运行大作业,第一个分时系统由 MIT的Fernando Corbato 等 1961年在一改装的IBM 7090/94机上开发成功 当时有32个交互式用户 IBM 7090/94计算机有32K内存,系统用5K,用户用27K,用户存储映象在内存和一台磁鼓之间切换 1962年Manchester大学的Atlas计算机投入运行 运行速度200k FLOPS 第一个有虚拟存储器(virtual memory)和页面调度(paging) 的机器 首次引进系统调用(system call) 指令执行是管道式的(pipelined),MULTICS的灾
26、难,1965年在ARPA的支持下MIT、AT&T(贝尔实验室)和通用电气公司决定开发一种“公用计算服务系统”, 希望能够同时支持整个波士顿所有的分时用户。该系统称作MULTICS。 (MULTiplexed Information and Computing Service ) MULTICS设计目标是:便利的远程终端使用,大量终端通过电话线接入计算机主机;高可靠的大型文件系统;大容量的用户信息共享;存储和构造层次化信息结构的能力;,MULTICS研制难度超出了所有人预料 长期研制工作达不到预期目标,1969年4月贝尔实验室退出,通用电气公司也退出了 但最终,经过多年的努力,MULTICS成功
27、地应用 运行MULTICS的计算机系统在九十年代中陆续被关闭 MULTICS引入了许多现代操作系统领域概念雏形,对随后操作系统特别是UNIX的成功有着巨大的影响,小型计算机,电子游戏和UNIX的成功,1969年,在贝尔退出MULTICS研制项目后,Ken Thompson和Dennis M. Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准 项目无着落,他们在一台无人用的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏 为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell 和汇编程序
28、 到了1970年,在一切完成后,给新系统起了个同MULTICS发音相近的名字UNIX 随后,UNIX用C语言全部重写,自此,UNIX诞生了,UNIX,UNIX是现代操作系统的代表。Unix运行时的安全性、可靠性以及强大的计算能力赢得广大用户的信赖 促使UNIX系统成功的因素: 首先,由于UNIX是用C语言编写,因此它是可移植的,UNIX 是世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统 第二,系统源代码非常有效,系统容易适应特殊的需求 最后,也是最重要的一点,它是一个良好的、通用的、多用户、多任务、分时操作系统,第四代大规模集成电路计算机(1980年-至今),CP/M 操
29、作系统 随着大规模集成电路发展,个人计算机时代到来了各种类型的个人计算机和软件层出不穷 1973年Gary Kildall看到对个人计算机操作系统的需求,设计了CP/M操作系统(Control Program/Microprocessor or Microcomputer) CP/M操作系统有较好的层次结构。它的BIOS把操作系统的其他模块与硬件配置分隔开,所以它的可移植性好, 具有较好的可适应性和易学易用性 到了1981年,CP/M操作系统成为世界上流行最广的8位操作系统之一,微软MS DOS,个人计算机的成功,逼得IBM采取紧急战略行动,决定要在1980年尽快生产出微型计算机,以应付挑战
30、但没有操作系统不行。要想快就是找现成系统配套,IBM公司洽谈 CP/M操作系统不顺利,机遇落到了微软公司 在关键时刻,开发新操作系统时间和人手上已经不可能,微软找到西雅图计算机产品公司,达成由微软经销西雅图计算机产品公司的QDOS操作系统的协议 当时西雅图公司并不知道QDOS将被转卖给IBM,否则历史将会怎样演变,谁也无法知晓,IBM在1981年推出个人计算机,宣布了PC-DOS操作系统 版权合同:没有限制MS-DOS 随着IBM PC和MS DOS普及,CP/M逐渐走向下坡路 MS DOS有优良的文件系统 但受到Intel x86体系结构的限制 缺乏以硬件为基础的存储保护机制 它属于单用户单
31、任务操作系统 从1981的 1.0版到1998年在Windows 95/98之下的7.0版,MS DOS历经了16个年头 迄今仍有MS DOS爱好者继续开发各种DOS软件产品 兼容机市场,Compaq 与 Micro Channel,拯救苹果公司的Macintosh(MAC OS),在推出IBM PC机后,市场卷起一股龙卷风 IBM自己也没有料到产品会有如此巨大的成功 IBM的成功说明必有其他公司失败。甚至连苹果公司也遇到了问题,销售数量落到了兰色巨人的后面 苹果公司推出Lisa机遭到失败,Apple III型也遭到失败 分析家们:微机市场上的战斗似乎兰色巨人要嬴了,施乐Palo Alto研究
32、中心-70年代的计算机研究思想库,世界上第一台个人计算机Alto,1972年在这里出现 图形界面,手持鼠标,面向对象程序设计 微机网络,桌面出版和激光打印等等 很多先进概念和技术的原型都首次出现在这里,1979年苹果公司允许施乐公司购买一百万股的苹果公司股票 作为回报,施乐公司允许苹果公司的少数人员,包括乔布斯,在有限的时间内考察施乐公司Palo Alto研究中心内部,并同该思想库的研究人员交谈 苹果公司对Palo Alto研究中心内的技术大感吃惊 他们更吃惊的是,施乐公司在拥有这些宝贵技术的同时竟然什么也没有做!,对Palo Alto研究中心这些科学家们而言,苹果公司的人是他们第一次遇到真正
33、理解他们技术的人 这些科学家们后来有的去了苹果公司,微软公司,有的最终创办了自己的公司 在访问的基础上,苹果决定立即开发采用这些新技术的个人计算机 苹果公司已看到 IBM PC机的技术有多么糟糕,但他们卖得又是特别的好,MAC OS、鼠标的新型个人计算机,1984年,人们看到一则广告:“What was that?”和对Macintosh的介绍, 这是配有图形界面操作系统 MAC OS和鼠标的新型个人计算机 MAC机一上市立即在市场上获得极大的成功 当年比尔.盖茨都说,这是一台他的妈妈也能使用的计算机 Macintosh把苹果公司从连续的失败中拯救出来 苹果公司又开始向前发展 正是Mac先进图
34、形界面操作系统技术,超前PC机若干年,造就了一批苹果的忠实追随者,一波三折的微软Windows操作系统,1983年10月,PC机竞争厂家的图形界面相关产品上市 面对市场压力,比尔.盖茨在1983年11月10日宣布推出Windows操作系统 然而宣布容易,交货就不简单了,Windows交货期的灾难,成了当年计算机界的笑柄 直到1985年11月20日,Windows 1.0才正式上市,Windows的历史记录,Windows在当时微软历史上创了几个记录:延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管人员最多 不过几年之后,Windows终于创造了销售成绩最佳的历史记录 1992年4月,
35、推出Windows 3.1, 1993年5月,发表Windows NT Windows 95,Windows CE,Windows 98,Windows 2000,Windows XP,.net 个人计算机采用Windows占90以上,微软公司成了垄断PC行业的同义词,基于微内核的Mach操作系统,1975年Rochester大学开发了RIG 操作系统 系统设计者之一Richard Rashid 移居到CMU后,在DARPA支持下,1984年开始了Mach的开发 希望Mach能与UNIX兼容,运行线程,更好的进程通信机制,支持多处理机及好的虚拟存储系统 Mach第一个版本是1986年为VAX
36、11/784四CPU多处理机发布 1988年的Mach 2.5版包含了大量的BSD UNIX的代码 1989年,Mach 内核中去掉了所有的BSD UNIX的代码,剩下了一个纯的Mach微内核,这就是Mach 3.0版本,它是OSF发布的基础,Mach中采用了许多当代操作系统使用的技术, 微内核、线程、进程间消息传递和面向对象的设计方法等等 在Mach的基础上,有不少用于微处理器、多处理器以及超级计算机的操作系统和实时嵌入式操作系统陆续设计和开发出来,如OSF/1,DCE Unix, NeXT等等,IBM大型计算机操作系统OS/390,90年代末期,电子商务发展刺激对计算能力的要求,导致大型机
37、市场的再度升温 三十年的改进,IBM S/390已成为有高可靠性、可扩展性、及安全可用性的现代大型计算机系统 支持即UNIX 95标准,UNIX应用程序可在IBM OS/390上运行 同时还可继续运行S/390应用程序,包括S/370上开发的应用程序 包括TCP/IP的多种通信协议,具有高网络安全性 采用面向对象程序设计、并行处理、分布式处理以及客户机/服务器技术,具有较强的互操作性、可移植性与可扩展性,由于历史渊源,OS/390有不同的系统运行方式: S/370本机模式,支持原先在S/370运行的程序 ESA/390模式,支持到10个240M处理器内存和256个通道 ESA/390 LPAR
38、模式,系统可分成最多十个部分,每个部分有自己的CPU,存储器和通道,且分别运行不同的操作系统,如S/370, ESA/370 和ESA/390等 在PC机时代,人们曾经估计大型计算机会衰亡 IBM S/390是大型计算机复活的一个典型 那么,在21世纪的Internet和后PC的时代,大型机还会有什么演化,只有让时间来说明,嵌入式操作系统的代表VxWorks,VxWorks支持各种工业标准,包括POSIX, ANSI C和TCP/IP网络协议 VxWorks运行系统的核心是一高效率的微内核 微内核支持各种实时功能,包括快速多任务处理,中断支持,抢占式和轮转式调度 微内核设计减轻了系统负载并可快
39、速响应外部事件 从只需几千字节存储器的深嵌式产品设计到复杂高端实时系统设计,开发人员有八十多个选件并可构成上百个不同的配置,VxWorks开发主机:Windows 9x,Windows NT, Sun Solaris, SunOS, HP-UX等 支持目标微处理器:86, 68k, PPC, CPU 32, i960, SPARC, SPARCLite, SH, ColdFire, R3000, R4000, C16X, ARM, MIPS等 在“极地登陆者”号,“深空二号”和火星气候轨道器等登陆火星探测器上,就采用了VxWorks VxWorks负责火星探测器全部飞行控制,包括飞行纠正、载体
40、自旋和降落时的高度控制等,而且还负责数据收集和与地球的通信工作 目前在国内也占据嵌入式开发系统市场主要份额,Internet时代与Linux,1990年秋天,Linus在芬兰首都赫尔辛基大学学习操作系统课程,因为上机需要排队等待,Linus买了台PC机,开发了第一个程序,程序包括两个进程,向屏幕上写字母,然后用定时器来切换进程 Linus需要终端仿真程序来存取Usenet新闻组的内容,于是他写了从调制解调器上接发信息的程序以及显示器、键盘和调制解调器的驱动程序 然后写了磁盘驱动程序,文件系统,一旦有了进程切换、文件系统和设备驱动程序,当然就拥有了一个操作系统原型,或者至少是它的一个内核 Lin
41、ux就以这样极其古怪但也极其自然式问世,操作系统领域中新的操作系统,有线电视机顶盒领域, PowerTV 移动通信领域,EPOC 掌上计算机领域,Palm OS 数字影像领域, Digita,研究中的新的操作系统,哈佛大学的VINO,使应用得以重用内核构件 犹他州大学的OSKit,提供构造操作系统所需的基础构件,也提供高层次构件。OSKit可用来构造新的OS MIT Exokernel,该系统只有一个极小的核。系统抽象通过Library Operating System完成 NASA空间飞行中心(GSFC)研制Beowulf项目开始于1994年,用商业化的微型计算机,Linux和以太网等构造集
42、群。已有世界各地的约六十个大学和研究机构在使用 加州大学伯克利分校NOW集群操作系统,100台Ultra SPARC-I处理机集群,排名于世界最快的200台超级计算机之内,加州大学伯克利分校Millennium项目,目的是在校园范围完成内一个“机群的机群(Cluster of Clusters)” 。在这个项目中,层次化的机群Millennium由五层构成,第一层,计算机工作站分布在十七个校园区内;第二层,多处理机服务器,提供各有关部门的计算服务;第三层, NOW组,每一个NOW都一个机群;第四层,一个非常大规模的NOW,供全校园共享;第五层,整体计算层,它在NOW组上构造,用于提供NOW组和
43、校园NOW的共享。 在Millennium项目基础上,又提出了一个Vineyard项目:一个面向未来的研究项目。作为Millennium的后续项目,它的目标超越了一个伯克利分校校园范围内的机群,它要通过高速网络连接其他工作站机群,从而构成了一个协同工作站机群联合体。,国内操作系统的研制状况,60年代末至70年代初 杨芙清院士主持 我国第一台百万次集成电路计算机(150)操作系统 支持多道程序运行,在石油勘探领域成功应用 70年代中后期 杨芙清院士主持 我国第一个全部用高级语言书写的DJS240机操作系统DJS200/XT2 层次管程结构模型,PCM设计方法,活跃管程结构模式,国内操作系统的研制
44、状况(续),GX73多机实时操作系统(1978年) 国防科技大学,1980年装在“远望”-I 号航天测量船上,完成了向太平洋发射运载火箭、潜水艇水下发射的测控任务;完成了我国第一颗同步地球卫星的测控、定轨、控制任务 “银河”-1 YHOS巨型操作系统(1983年)国防科技大学,用于YH-1、YH-2超级计算机,用于我国的石油勘探、天气预报和核物理研究 COSIX v 1.X/2.0 国产UNIX类操作系统(国家八五、九五重点科技攻关成果,以中软为首,联合国内18个单位共同完成) 微内核结构,安全级别超过B1,中文界面 嵌入式操作系统Hopen(女娲计划) Linux类操作系统,思考和回顾,个人
45、计算机的兴起,结束了IBM的霸主地位 Internet普及,Linux的成功,极大地推动了当代操作系统的研究发展活动 据不完全统计,当前在Internet上,有超过100个操作系统的项目在14个国家中进行着 一批批的程序设计员们自愿通过互联网组织成为研究小组,从事着各类操作系统的研究开发工作,在一些影响全球的操作系统的诞生和发展过程中,大师们设计那些知名操作系统的初始动机真是各不相同的 一个操作系统成功的缘由,似乎也在于某种机遇,往往是有心裁花花不开,无心插柳柳成行 未来操作系统的发展是否还会是这个模式? 在Internet时代,新概念、新思想、新原理和新技术层出不穷 谁又能预测,未来会有什么
46、样的新型操作系统在国际互联网上问世呢!,思考和回顾(续1),3.操作系统的分类,批处理操作系统(多道批处理),分时操作系统,实时操作系统 嵌入式操作系统,个人计算机操作系统,网络操作系统,分布式操作系统,批处理操作系统,工作方式: 用户将作业交给系统操作员 系统操作员将许多用户的作业组成一批作业 之后输入到计算机中,在系统中形成一个自动转接的连续的作业流 启动操作系统 系统自动、依次执行每个作业 最后由操作员将作业结果交给用户,卡片,早期批处理系统,IBM1401,IBM7094,IBM1401,输入磁带,磁带机,卡片阅读机,输出磁带,打印机,$END,$RUN,Data for progra
47、m,$LOAD,Fortran program,$FORTRAN,$JOB, 10,429754 Cherry Chen,典型的 FMS JOB 结构,批处理操作系统特点,多道: 多道指某个作业占用CPU,若由于某种原因暂时不用CPU 则系统让第二个作业占用CPU,成批处理: 用户自己不能干预自己作业的运行,一旦发现作业错误不能及时改正,并延长开发软件时间,所以适用于成熟的程序。,Spooling系统(技术) 1961年,英国曼彻斯特大学,Atalas机 Simultaneous Peripheral Operation On-Line 同时的外围设备联机操作-假脱机技术 利用磁盘作缓冲,将输
48、入、计算、输出分别组织成独立的任务流,使I/O和计算真正并行,Spooling系统工作原理 - 作业进入到磁盘上的输入井 - 按某种调度策略选择几种搭配得当的作业,并调入内存 - 作业运行的结果输出到磁盘上的输出井 - 再由磁盘上的输出井将结果送到打印机,批处理操作系统优缺点 - 优点:作业流程自动化 效率高,吞吐率高 吞吐量: 单位时间内处理作业的个数 - 缺点:无交互手段,调试程序困难,分时操作系统,工作方式: 一台主机连接了若干个终端 每个终端有一个用户在使用 交互式的向系统提出命令请求 系统接受每个用户的命令 采用时间片轮转方式处理服务请求 并通过交互方式在终端上向用户显示结果 用户根据上步结果发出下道命令,主机,终端,分时操作系统,时间片: 操作系统将CPU的时间划分成若干个片段,称为时间片 操作系统以时间片为单位,轮流为每个终端用户服务 每次服务一个时间片 (其特点是利用人的错觉,使人感觉不到),分时操作系统特点,多路性 交互性 “独占”性 及时性,同时有多个用户使用一台计算机 宏观上:是多个人同时使用一个CPU 微观上:多个人在不同时刻轮流使用CPU,用户根据系统响应结果进一步 提出新请求(用户直接干预每一步),用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育信息化的数据解析员求职全解
- 酒店客户服务专员面试指南
- 技术支持工作流程管理规定
- 社交平台用户反馈处理与解决方案研究
- 酒店管理集团前台接待员岗位职责与招聘要求解读
- 职工体育活动方案
- 铁路交通信号工程师面试指南
- 通信设备制造商的品牌专员面试全攻略
- 京东物流仓储管理岗位的面试技巧与策略
- 汽车制造企业销售部副总面试要点
- 《AIGC文案策划与写作》-教案
- 幼儿园公安安全教育课件
- 二年级下册生命生态安全课件
- 醉酒客人处理培训
- 2026年湖南石油化工职业技术学院单招职业适应性测试必刷测试卷附答案
- 考研学前教育2025年学前教育学真题试卷(含答案)
- 2026年山东理工职业学院单招职业技能测试必刷测试卷附答案
- 2026年潍坊环境工程职业学院单招综合素质考试必刷测试卷及答案1套
- 2025年硫氰酸红霉素行业分析报告及未来发展趋势预测
- 医院感染病例判定标准原则(2025年版)解读
- 【新教材】2025-2026学年人教版(2024)信息科技六年级全一册教案(教学设计)
评论
0/150
提交评论