00_Class_1_第1页
00_Class_1_第2页
00_Class_1_第3页
00_Class_1_第4页
00_Class_1_第5页
已阅读5页,还剩170页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 操作系统概述,1.1 操作系统的地位,计算机系统由硬件和软件组成 操作系统在硬件基础上的第一层软件 是其它软件和硬件的接口,1.2 操作系统的定义,操作系统是计算机系统中的一个系统软件, 是一些程序模块的集合 它们能以尽量有效合理方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活,方便,有效的使用计算机,使整个计算机系统能高效的运行。,有效:系统效率 (如CPU用的充足与否) 资源利用率 (如内存,外部设备是否忙碌) 合理: 公平与否,如果不公平则会产生“死锁”或“饥饿” 方便: 用户界面,1.3 操作系统的特征,并发: 在计算机系统中同时存在多个程序, 从宏观上看这些程序是同时在执行的。 从微观上讲任何时刻只有一个程序在执行, 微观上说这些程序在CPU上轮流执行。 并行:(与并发相同,但多指硬件支持),共享: 操作系统与多个用户的程序 共同使用计算机上的资源,操作系统特征,随机性: 操作系统必须随时对以不可预测的次序发生的事件进行响应 考虑周密、设计适当,操作系统特征,1.4 操作系统的发展,操作系统发展是随着计算机硬件技术的发展而发展的 目标:充分利用硬件,1.4.1 概述 操作系统历史划分为4个阶段,第 0 阶段 硬件非常昂贵,没有操作系统,控制台 一个用户,一次完成一个功能(计算,I/O,用户思考/反应),程序通过卡片装入 用户在控制台前调试程序,工作效率非常低,每一用户都要自行编写涉及到硬件的源代码,工作量大,难度高,易出错,需要大量人力和物力,第 1 阶段 硬件昂贵,人力便宜,简单批处理:装入程序、运行、打印结果、撤出、再重复,用户把程序(卡片或磁带)交给负责 调度的操作员(系统管理员),常驻监控程序自动地装入程序、运行、 撤出作业,需要存储管理、重定位和保护机制,硬件使用较为高效, 但(从输出)调试困难,CPU 与 I/O 操作交叉覆盖,后期:Spool 数据到磁盘上,早期:将慢速设备转到同 CPU 相连的 快速磁带驱动器上,增加:缓冲, DMA, 中断处理 作业被送(spool)到磁盘 仍然是单个作业,利用率低,多道程序批处理系统,在磁盘上多个作业等待运行,多道程序 - 同时运行多个作业,- 选择若干作业准备运行(调度) 并装入内存(存储管理),- 运行一个作业,当它等待时 (如需安装磁带,等键按下) 切换至内存中的另一个作业,多道程序设计:多个用户共享系统,增加:存储保护,重定位 利用率高(多个作业) 有必要采用并发程序设计技术 操作系统成为研究焦点:需要处理复杂性,首次面对重大失败:,- MULTICS 于 1963 年开始, 直至 1969 年才发布,- IBM 的 OS/360 发布时, 带着已知的 1000 个错误,早期计算机:单控制方式,- CPU负责计算,也负责传输,早期计算机的使用方式,- 一个用户独占全部资源,- 浪费:CPU与外设速度不匹配 手工操作方式和高速机器之间的不匹配,提高资源利用率,- 多部件并行,多任务共享,通道引入:传输和CPU相对独立 中断引入:各部件的协调动作成为可能,体系结构的发展可以支持OS,多道程序运行模式,第 2 阶段 硬件较以前便宜,人力昂贵,交互式分时处理,一台计算机,多个便宜终端,- 所有用户可与系统立即交互,- 调试比较方便,磁盘便宜,故可在线存放程序和数据,- 1 张穿孔卡片 = 100个字节,- 1 MB = 10K卡片,- OS/360 有若干英尺长度的卡片,新问题,- 易于使用,提高人的生产力,- 合理的响应时间,- 引入文件系统,使用户可存取数据,解决,- 需要抢占式调度以便保持 适当的响应时间,- 需要避免抖动(程序在内存中 过于频繁的对换),- 需要提供适用的安全检测,成功:,一群计算机迷 ( Tomson, Ritchie ) 在贝尔实验室发展出了UNIX。 (这样他们可以在一台无人使用的DEC PDP-7 小型计算机上玩星际探险游戏),成功:,Ken Thompson,Dennis Ritchie 1983年图灵奖获得者 1999年4月 美国国家技术金奖,第 3 阶段 硬件非常便宜,人力昂贵,目标: 充分利用人和时间,个人计算,CPU 便宜到可在每台终端上安装, 功能强大有效,- 成为大众的计算机,放弃多道程序、并发和保护机制, 使 OS 回归简单,使用户再次与系统交互,增强文件系统,响应时间、保护更为重要,网络,允许不同机器很容易共享资源,- 共享,安全,操作系统的历史: 变化!,意味着技术总在改变 要适应、折衷权衡,1.4.2 历史上的操作系统,随历史线索,介绍一些重要的操作系统 真空管时代(1946年-1955年) 晶体管时代(1955年-1965年) 集成电路时代(1965年-1980年) 大规模集成电路时代(1980年-至今),第一台数字计算机,英国数学家Charles Babbage(1792-1871)设计 Babbage投入了毕生精力 但却没能让它成功地运行起来 因为当时的技术不可能达到需要的精度 当然,这个分析机没有操作系统,二战对武器设计的需要 美国、英国和德国等国家 开始了电子数字计算机的研究工作 哈佛大学的Howard Aiken 普林斯顿高等研究院的John Neumann(冯诺依曼) 宾夕法尼亚大学的J.Presper Eckert和William Mauchley 德国电话公司的Konraad Zuse以及其他一些人 都使用真空管成功地建造了运算机器,真空管计算机(1945年-1955年)时期,没有程序设计语言(甚至没有汇编),更谈不上操作系统 程序员提前预约一段时间,然后到机房将他的插件板插到计算机里 期盼着在接下来的时间中 几万个真空管不会烧断 从而可以计算自己的题目,ENIAC计算机,运算速度:1000次/每秒, 数万个真空管, 占地100平方米,50年代早期 出现了穿孔卡片 程序写在卡片上然后读入计算机 但计算过程则依然如旧,晶体管计算机(1955年-1965年)时期,50年代晶体管发明 计算机比较可靠,可成批地生产 用户可指望计算机长时间运行,完成一些工作 FORTRAN 1954年提出,1956年设计完成 ALGOL 1958年引入 COBOL 1959年引入 设计人员、生产人员、操作人员、程序人员和维护人员之间 第一次有了明确的分工,要运行一个作业,先将程序写在纸上(用高级语言或汇编语言) 然后穿孔成卡片,再将卡片盒交给操作员 计算结果从打印机上输出 操作员到打印机上撕下运算结果送到输出室 程序员稍后可从取到结果 然后,操作员从输入室的卡片盒中读入另一个任务 如果需要FORTRAN编译器,还要把它取来读入计算机 机时在走来走去时被浪费,批处理操作系统 - 现代操作系统雏型,为了改进主存和I/O设备之间的吞吐量 IBM 7094机引入了I/O 处理机概念 其思想是:在输入室收集全部的作业,用一台相对便宜的计算机 如IBM 1401计算机,将它们读到磁带上 另外用较昂贵的计算机,如IBM7094来完成真正的计算,基本控制卡片 是现代作业控制语言和命令解释器的先驱,第二代计算机典型的操作系统,FMS(FORTRAN Monitor System,FORTRAN监控系统) IBMSYS(IBM为7094机配备的操作系统) 这些操作系统由监控程序,特权指令,存储保护和简单的批处理构成,第三代集成电路计算机(1965年-1980年)时期,60年代初期,计算机开始采用集成电路 多数厂商有几条完全不同的生产线,生产不同的计算机 开发和维护完全不同的产品,对厂商来说是昂贵的 另外,新用户,在开始时只需要一台小计算机 后来可能需要一台大的计算机 而且希望能在新计算机上执行原有的程序 这样,厂家和用户需要软件在不同型号的计算机之间兼容,1964 年IBM 宣布推出System/360计算机系统 第一个采用小规模集成电路的主流机型 试图一次性地解决上述两个问题 由于所有的计算机 都有相同的体系结 构和指令集 在理论上,为一型 号编写的程序可以 在其他型号机器上 运行,IBM System/360的若干问题,IBM无法写出同时满足互冲突需要的操作系统 其实别人也一样不能完成这项工作任务 IBM OS/360文件系统中有类型字段,定义文件的类型,有定长、不定长记录、块状和非块状文件 用户对于输出文件的大小,只有通过猜测 存储管理有基地址寄存器寻址方式,程序也可以访问和修改基地址寄存器,但是CPU生成的却是绝对地址,虽然不用进行动态再分配 但程序却被钉死在调入内存时的物理地址上,IBM System/360, 庞大的软件怪兽,数千名程序员写的数百万行汇编语言代码 系统自身占据了大量存储空间和一半的CPU时间 数百万行汇编代码中有成千上万处错误 IBM不断发行新的版本试图更正这些错误 每个新版本在更正老错误的同时又引入新错误 所以随着时间的流逝,错误的数量大致保持不变,多道程序设计技术(multiprogramming),在IBM 7094机上,若当前作业因等待I/O而暂停, CUP只能踏步直至该I/O完成 对于CPU操作密集科学计算问题,浪费时间少 对于商业数据处理,I/O等待时间常占8090 解决办法 将内存分几个部分,每部分放不同的作业 当一个作业等待I/O时,另一个作业可以使用CPU 在主存中同时驻留多个作业需要硬件进行保护 以避免信息被窃取或攻击,Spooling 技术,程序卡片被拿到机房后 能够很快将一作业从卡片读入磁盘 任何时刻当一作业运行结束 操作系统就将一新作业从磁盘读出 装入空出的内存区运行 Spooling技术 (Simultaneous Peripheral Operation On Line) 该技术也用于输出,分时系统,第三代计算机实质是批处理系统 而从一作业提交到结果取回, 往往长达数小时 一个逗号的误用会导致编译失败 而可能浪费程序员半天时间 问题的解决导致分时系统的出现 (CTSS,Compatible Time Sharing System) 分时系统实际上是多道程序的一个变种,分时系统的思想于1959年在MIT提出 每个用户有一个联机终端 在分时系统中,假设20个用户登录 其中17个在思考或谈论或喝咖啡 则CPU可给那三个需要的作业轮流分配服务 调试程序的用户常常只发出简短的命令 而很少有长的费时命令 所以计算机能够为许多用户提供交互式快速服务 同时在CPU空闲时还能在后台运行大作业,第一个分时系统由 MIT的Fernando Corbato 等 1961年在一改装的IBM 7090/94机上开发成功 当时有32个交互式用户 IBM 7090/94计算机有32K内存,系统用5K,用户用27K,用户存储映象在内存和一台磁鼓之间切换 1962年Manchester大学的Atlas计算机投入运行 运行速度200 kFLOPS 第一个有虚拟存储器(virtual memory)和页面调度(paging) 的机器 指令执行是管道式(pipelined)的,MULTICS的灾难,1965年在ARPA的支持下MIT、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”, 希望能够同时支持整个波士顿所有的分时用户。该系统称作MULTICS (MULTiplexed Information and Computing Service ) MULTICS设计目标是:便利的远程终端使用,大量终端通过电话线接入计算机主机 高可靠的大型文件系统;大容量的用户信息共享;存储和构造层次化信息结构的能力,MULTICS研制难度超出了所有人预料 长期研制工作达不到预期目标,1969年4月贝尔实验室退出,通用电气公司也退出了 但最终,经过多年的努力,MULTICS成功地应用 运行MULTICS的计算机系统在九十年代中陆续被关闭 MULTICS引入了许多现代操作系统领域概念雏形,对随后操作系统特别是UNIX的成功有着巨大的影响,小型计算机,电子游戏和UNIX的成功,1969年,在贝尔退出MULTICS研制项目后,Ken Thompson和Dennis M. Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准 项目无着落,他们在一台无人用的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏 为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell 和汇编程序 到了1970年,在一切完成后,给新系统起了个同MULTICS发音相近的名字UNIX 随后,UNIX用C语言全部重写,自此,UNIX诞生了,UNIX,UNIX是现代操作系统的代表。Unix运行时的安全性、可靠性以及强大的计算能力赢得广大用户的信赖 促使UNIX系统成功的因素: 首先,由于UNIX是用C语言编写,因此它是可移植的,UNIX 是世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统 第二,系统源代码非常有效,系统容易适应特殊的需求 最后,也是最重要的一点,它是一个良好的、通用的、多用户、多任务、分时操作系统,第四代大规模集成电路计算机(1980年-至今),CP/M 操作系统 随着大规模集成电路发展,个人计算机时代到来了各种类型的个人计算机和软件层出不穷 1973年Gary Kildall看到对个人计算机操作系统的需求,设计了CP/M操作系统(Control Program/Microprocessor or Microcomputer) CP/M操作系统有较好的层次结构。它的BIOS把操作系统的其他模块与硬件配置分隔开,所以它的可移植性好, 具有较好的可适应性和易学易用性 到了1981年,CP/M操作系统成为世界上流行最广的8位操作系统之一,微软MS DOS,个人计算机的成功,逼得IBM采取紧急战略行动,决定要在1980年尽快生产出微型计算机,以应付挑战 但没有操作系统不行。要想快就是找现成系统配套,IBM公司洽谈 CP/M操作系统不顺利,机遇落到了微软公司 在关键时刻,开发新操作系统时间和人手上已经不可能,微软找到西雅图计算机产品公司,达成由微软经销西雅图计算机产品公司的QDOS操作系统的协议 当时西雅图公司并不知道QDOS将被转卖给IBM,否则历史将会怎样演变,谁也无法知晓,IBM在1981年推出个人计算机,宣布了DOS操作系统 随着IBM PC和MS DOS普及,CP/M逐渐走向下坡路 MS DOS有优良的文件系统 但受到Intel x86体系结构的限制 缺乏以硬件为基础的存储保护机制 它属于单用户单任务操作系统 从1981的 1.0版到1998年在Windows 95/98之下的7.0版,MS DOS历经了16个年头 迄今仍有MS DOS爱好者继续开发各种DOS软件产品,拯救苹果公司的Macintosh(MAC OS),在推出IBM PC机后,市场卷起一股龙卷风 IBM自己也没有料到产品会有如此巨大的成功 IBM的成功说明必有其他公司失败。甚至连苹果公司也遇到了问题,销售数量落到了兰色巨人的后面 苹果公司推出Lisa机遭到失败,Apple III型也遭到失败 分析家们认为,在微机市场上的战斗似乎兰色巨人要嬴了,施乐Palo Alto研究中心 -70年代的计算机研究思想库,世界上第一台个人计算机Alto,1972年在这里出现 图形界面,手持鼠标,面向对象程序设计 微机网络,桌面出版和激光打印等等 具有先进概念和技术的原型都首次出现在这里,1979年苹果公司允许施乐公司购买一百万股的苹果公司股票 作为回报,施乐公司允许苹果公司的少数人员,包括乔布斯,在有限的时间内考察施乐公司Palo Alto研究中心内部,并同该思想库的研究人员交谈 苹果公司对Palo Alto研究中心内的技术大感吃惊 他们更吃惊的是,施乐公司在拥有这些宝贵技术的同时竟然什么也没有做!,对Palo Alto研究中心这些科学家们而言,苹果公司的人是他们第一次遇到真正理解他们技术的人 这些科学家们后来有的去了苹果公司,微软公司,有的最终创办了自己的公司 在访问的基础上,苹果决定立即开发采用这些新技术的个人计算机 苹果公司已看到 IBM PC机的技术有多么糟糕,但他们卖得又是特别的好,MAC OS、鼠标的新型个人计算机,1984年,人们看到一则广告:“What was that?”和对Macintosh的介绍, 这是配有图形界面操作系统 MAC OS和鼠标的新型个人计算机 MAC机一上市立即在市场上获得极大的成功 当年比尔.盖茨都说,这是一台他的妈妈也能使用的计算机 Macintosh把苹果公司从连续的失败中拯救出来 苹果公司又开始向前发展 正是Mac先进图形界面操作系统技术,超前PC机若干年,造就了一批苹果的忠实追随者,一波三折的微软Windows操作系统,1983年10月,PC机竞争厂家的图形界面相关产品上市 面对市场压力,比尔.盖茨在1983年11月10日宣布推出Windows操作系统 然而宣布容易,交货就不简单了,Windows交货期的灾难,成了当年计算机界的笑柄 直到1985年11月20日,Windows 1.0才正式上市,Windows的历史记录,Windows在当时微软历史上创了几个记录:延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管人员最多 不过几年之后,Windows终于创造了销售成绩最佳的历史记录 1992年4月,推出Windows 3.1, 1993年5月,发表Windows NT Windows 95,Windows CE,Windows 98,Windows 2000 个人计算机采用Windows占90以上,微软公司成了垄断PC行业的同义词,基于微内核的Mach操作系统,1975年Rochester大学开发了RIG 操作系统 系统设计者之一Richard Rashid 移居到CMU后,在DARPA支持下,1984年开始了Mach的开发 希望Mach能与UNIX兼容,运行线程,更好的进程通信机制,支持多处理机及好的虚拟存储系统 Mach第一个版本是1986年为VAX 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年代末期,电子商务发展刺激对计算能力的要求,导致大型机市场的再度升温 三十年的改进,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模式,系统可分成最多十个部分,每个部分有自己的CPU,存储器和通道,且分别运行不同的操作系统,如S/370, ESA/370 和ESA/390等 在PC机时代,人们曾经估计大型计算机会衰亡 IBM S/390是大型计算机复活的一个典型 那么,在21世纪的Internet和后PC的时代,大型机还会有什么演化,只有让时间来说明,嵌入式操作系统的代表VxWorks,VxWorks支持各种工业标准,包括POSIX, ANSI C和TCP/IP网络协议 VxWorks运行系统的核心是一高效率的微内核 微内核支持各种实时功能,包括快速多任务处理,中断支持,抢占式和轮转式调度 微内核设计减轻了系统负载并可快速响应外部事件 从只需几千字节存储器的深嵌式产品设计到复杂高端实时系统设计,开发人员有八十多个选件并可构成上百个不同的配置,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负责火星探测器全部飞行控制,包括飞行纠正、载体自旋和降落时的高度控制等,而且还负责数据收集和与地球的通信工作 目前在国内也占据嵌入式开发系统市场主要份额,Internet时代与Linux,1990年秋天,Linus在芬兰首都赫尔辛基大学学习操作系统课程,因为上机需要排队等待,Linus买了台PC机,开发了第一个程序,程序包括两个进程,向屏幕上写字母,然后用定时器来切换进程 Linus需要终端仿真程序来存取Usenet新闻组的内容,于是他写了从调制解调器上接发信息的程序以及显示器、键盘和调制解调器的驱动程序 然后写了磁盘驱动程序,文件系统,一旦有了进程切换、文件系统和设备驱动程序,当然就拥有了一个操作系统原型,或者至少是它的一个内核 Linux就以这样极其古怪但也极其自然式问世,操作系统领域中新的操作系统,有线电视机顶盒领域, PowerTV 移动通信领域,EPOC 掌上计算机领域,Palm OS 数字影像领域, Digita,研究中的新的操作系统,哈佛大学的VINO,使应用得以重用内核构件 犹他州大学的OSKit,提供构造操作系统所需的基础构件,也提供高层次构件。OSKit可用来构造新的OS MIT Exokernel,该系统只有一个极小的核。系统抽象通过Library Operating System完成 加州大学伯克利分校NOW集群操作系统,100台Ultra SPARC-I处理机集群,排名于世界最快的200台超级计算机之内 NASA空间飞行中心(GSFC)研制Beowulf项目开始于1994年,用商业化的微型计算机,Linux和以太网等构造集群。已有世界各地的约六十个大学和研究机构在使用,思考和回顾,个人计算机的兴起,结束了IBM的霸主地位 Internet普及,Linux的成功,极大地推动了当代操作系统的研究发展活动 据不完全统计,当前在Internet上,有超过100个操作系统的项目在14个国家中进行着 一批批的程序设计员们自愿通过互联网组织成为研究小组,从事着各类操作系统的研究开发工作,在一些影响全球的操作系统的诞生和发展过程中,大师们设计那些知名操作系统的初始动机真是各不相同的 一个操作系统成功的缘由,似乎也在于某种机遇,往往是有心裁花花不开,无心插柳柳成行 未来操作系统的发展是否还会是这个模式? 在Internet时代,新概念、新思想、新原理和新技术层出不穷 谁又能预测,未来会有什么样的新型操作系统在国际互联网上问世呢!,思考和回顾,1.4.3 操作系统的分类,批处理操作系统(多道批处理),分时操作系统,实时操作系统 嵌入式操作系统,个人计算机操作系统,网络操作系统,分布式操作系统,1.4.3.1 批处理操作系统,工作方式: 用户将作业交给系统操作员 系统操作员将许多用户的作业组成一批作业 之后输入到计算机中,在系统中形成一个自动转接的连续的作业流 启动操作系统 系统自动、依次执行每个作业 最后由操作员将作业结果交给用户,卡片,早期批处理系统,IBM1401,IBM7094,IBM1401,输入磁带,磁带机,卡片阅读机,输出磁带,打印机,$END,$RUN,Data for program,$LOAD,Fortran program,$FORTRAN,$JOB, 10,429754 Cherry Chen,典型的 FMS JOB 结构,批处理操作系统 特点:,多道: (注:多道指某个作业占用CPU,若由于某种原因暂时不用CPU 则系统让第二个作业占用CPU) 成批处理:,批处理操作系统特点,成批处理: 用户自己不能干预自己作业的运行, 一旦发现作业错误不能及时改正, 并延长开发软件时间, 所以适用于成熟的程序。,Spooling系统(技术) 1961年,英国曼彻斯特大学,Atalas机 Simultaneous Peripheral Operation On-Line 同时的外围设备联机操作-假脱机技术 利用磁盘作缓冲,将输入、计算、输出分别组织成独立的任务流,使I/O和计算真正并行,Spooling系统工作原理 - 作业进入到磁盘上的输入井 - 按某种调度策略选择几种搭配得当的作业,并调入内存 - 作业运行的结果输出到磁盘上的输出井 - 再由磁盘上的输出井将结果送到打印机,批处理操作系统 - 优点:作业流程自动化 效率高,吞吐率高 吞吐量: 单位时间内处理作业的个数 - 缺点:无交互手段,调试程序困难,1.4.3.2 分时操作系统,工作方式: 一台主机连接了若干个终端 每个终端有一个用户在使用 交互式的向系统提出命令请求 系统接受每个用户的命令 采用时间片轮转方式处理服务请求 并通过交互方式在终端上向用户显示结果 用户根据上步结果发出下道命令,主机,终端,分时操作系统,时间片: 操作系统将CPU的时间划分成若干个片段,称为时间片 操作系统以时间片为单位,轮流为每个终端用户服务 每次服务一个时间片 (其特点是利用人的错觉,使人感觉不到),分时操作系统,特点 多路性 交互性 “独占”性 及时性,分时操作系统,多路性: 同时有多个用户使用一台计算机 宏观上看是多个人同时使用一个CPU 微观上是多个人在不同时刻轮流使用CPU,分时操作系统,交互性: 用户根据系统响应结果进一步提出新请求(用户直接干预每一步),分时操作系统,“独占”性: 用户感觉不到计算机为其他人服务 (OS提供虚机器,各个用户的虚机器互不干扰) 及时性 系统对用户提出的请求及时响应,分时操作系统,实现(条件): 终端设备 轮转算法 会话语言 一般资源独占,“滚进滚出”方法,分时操作系统,追求目标: 及时响应 (根据指标是响应时间) 响应时间: 从终端发出命令到系统给予回答所经历的时间,分时操作系统,影响响应时间的因素: - 机器处理能力 - 请求服务的时间长短 - 系统中连接的终端数目 - 服务请求的分布 - 调度算法(时间片的选取),通用操作系统,分时系统与批处理系统结合 原则:分时优先,批处理在后 “前台”:需频繁交互的作业 “后台”:时间性要求不强的作业,1.4.3.3 实时操作系统,分类: 第一类:实时过程控制 工业控制,军事控制,. 第二类:实时通信(信息)处理 电讯(自动交换),银行,飞机订票,实时操作系统,主要追求目标: 对外部请求在严格时间范围内作出反应 有高可靠性 完整性 实时系统必须和先进的技术装备相结合,1.4.3.4 个人计算机操作系统 (单用户多任务),计算机在某一时间内为单用户服务, 其追求目标是界面友好,使用方便,1.4.3.5 网络操作系统,它是基于计算机网络的, 是在各种计算机操作系统上, 按网络体系结构协议标准开发的软件, 包括网络管理,通讯,安全,资源共享 和各种网络应用。 目标:是相互通讯及资源共享,网络操作系统,网络服务 应用程序,通信软件(协议支持),单机 操作系统,用户应用程序,局域网操作系统的结构,通信软件(协议支持),1.4.3.6 分布式操作系统,它基于两种环境: 多机(CPU)系统或网络 是网络操作系统的更高级的形式, 它保持了网络操作系统的全部功能,分布式操作系统:,特征: 1.是一个统一的操作系统 2.资源进一步共享 3.透明性: 资源共享,分布.用户并不知道,对用户来讲是透明的. 4.自治性: 处于分布式系统的多个主机处于平等地位,网络和分布式的区别:,(1) 分布具有各个计算机间相互通讯, 无主从关系;网络有主从关系 (2) 分布式系统资源为所有用户共享; 而网络有限制地共享 (3) 分布式系统中若干个计算机可相互协作共同完成一项任务,1.4.3.7 嵌入式操作系统,什么是嵌入式系统? 在各种设备、装置或系统中,完成特定功能的软硬件系统 它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机” 通常工作在反应式或对处理时间有较严格要求环境中 由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统,嵌入式系统,软件:用于提供系统所需的功能和灵活性 硬件 = (处理器、ASIC、存储器) 用于提供所需的性能以及部分安全机制,专用门阵列,模拟I/O,处理器核,存储器,嵌入式操作系统,是运行在嵌入式智能芯片环境中, 对整个智能芯片以及它所操作、控制的各种部件装 置等等资源进行统一协调、调度、指挥和控制的系 统软件,在嵌入式系统中的OS,称为嵌入式操作系统,典型嵌入式操作系统的特性,完成某一项或有限项功能;不是通用型的 在性能和实时性方面有严格的限制 能源、成本和可靠性通常是影响设计的重要因素 占有资源少、易于连接 系统功能可针对需求进行裁剪、调整和生成 以便满足最终产品的设计要求,嵌入式操作系统开发环境,通常配有源码级可配置的系统模块设计 丰富的同步原语 可选择的调度算法 可选择内存分配策略 定时器与计数器 多方式中断处理支持 多种异常处理选择 多种通信方式支持 标准语言库 数学运算库和开放式应用程序接口,嵌入式操作系统的应用,嵌入计算的各种应用特点 掌上电脑: 运算速度: 100 KIPS 在大小上优化、支持手写、低能耗 工业设备: 运算速度: 1 MIPS 安全优先,控制流程为主 军事装备 运算速度 :1 GFLOPS 可靠性最重要,嵌入式操作系统的应用,1.5 研究操作系统的几种观点,作为软件来看的观点,资源管理的观点,进程的观点,虚机器观点,1.5.1 作为软件来看的观点,软件的特性 外在特性: 软件是种语言,是界面 界面:使用方式 (命令,系统调用等) 内在特性: 软件的结构 a.由有几部分组成 b.每个部分的功能 c.部分之间的关系,1.5.2 资源管理的观点,操作系统-资源管理者 硬件资源: CPU,内存, 外部设备(I/O设备,外存,时钟等) 软件资源: 硬盘上的文件,信息,管理资源,记录资源使用状况 如 哪些资源空闲,好坏与否,被谁使用,使用多长时间等 合理的分配资源 静态分配策略 (在程序运行前分配,但效率不高) 动态分配策略 (在程序运行过程中何时用资源,何时分配。其缺点是会出现死锁) 具体完成分配 回收资源,资源管理的目的,实现资源共享 提高资源利用率,1.5.3 进程的观点,是从操作系统运行的角度动态的观察操作系统 从这个观点来看: 操作系统是由一些可同时独立运行的进程和一个对这些进程进行协调的核心组成.,进程:,完成某一特定功能的程序 是程序的一次执行过程 是动态有生命的,当它执行时存在,否则消亡,1.5.4 虚机器观点,从操作系统内部结构来看: 把操作系统分成若干层 每一层完成其特定功从而构成一个虚机器,并对上一层提供支持 通过逐层功能扩充,最终完成整个操作系统虚机器 而操作系统虚机器向用户提供各种功能, 完成用户请求,在操作系统之外从用户角度来看: 操作系统为用户提供一组功能强大的、方便易用的命令或系统调用,1.6 操作系统功能,CPU(进程)管理,存储管理,文件管理,设备管理,作业管理,操作系统的硬件环境,操作系统在硬件之上,软件之下,直接与硬件打交道 CPU 中断 系统堆栈 通道 地址映射机制 存储保护设施,CPU,CPU状态 CPU状态的转换,CPU指令系统,两类指令 特权指令:允许操作系统使用,不允许一般用户使用 (如修改程序状态字;设置中断屏蔽;启动I/O设备;清内存;设置时钟;停机等) 非特权指令:一般用户可用的,CPU状态:,在PSW中专门设置一位,根据运行程序使用指令的权限而设置 PSW (Program Status Word ) 一个或一组寄存器: 条件码、状态信息位 允许中断位 管理(OS)/用户态位,CPU状态:,管态(特态,系统态):能执行指令全集(包括特权,非特权指令),具有改变CPU状态的能力,操作系统在管态下运行 目态(普态):只能执行非特权指令,用户程序在目态下运行.(如果在目态下用户执行了特态指令,则产生中断,由操作系统得到控制权,而特权指令被停止.) (这两种状态时可转换的),CPU状态的转换,目态-管态 其转换的唯一途径是通过中断 管态-目态 可用设置PSW(修改程序状态字)可实现,中断,特点: 中断系统的概念 中断源 中断类型 中断响应 中断处理 中断优先级 中断屏蔽 中断嵌套,中断概述,中断是现代计算机系统中基本设施之一,它起着通讯联络作用,协调系统对各种外部事件的响应和处理。中断是实现多道程序的必要条件。 引入中断的目的 解决主机与外设的并行工作问题 提高可靠性 实现多机联系 实现实时控制,中断定义: CPU对系统发生的某个事件作出的一种反应: CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序。,特点:,1) 中断随机的 2) 中断是可恢复的 3) 中断是自动处理的,中断系统的概念,中断由软硬件协同处理 中断装置:指发现中断,响应中断的硬件 中断处理程序:由软件来完成 中断系统=中断装置+中断处理程序,中断源:引起中断发生的事件 中断寄存器:记录中断 中断字:中断寄存器的内容 系统堆栈: 在内存开辟的一块区域,用于临时保存现场,中断类型,强迫性中断 正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的 自愿性中断 用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生,中断类型,强迫性中断 输入/输出(I/O)中断:主要来自外部设备通道 程序性中断:运行程序中本身的中断 (如溢出,缺页中断,缺段中断,地址越界) 时钟中断 控制台中断 硬件故障,中断类型,自愿性中断 执行I/O,创建进程,分配内存 信号量操作,发送/接收消息,中断响应: 发现中断、接收中断的过程 (由硬件完成),* 发现中断源(识别中断原因) * 保存现场,将中断向量推入系统堆栈 * 引出中断处理程序,中断响应具体做法:,CPU在执行每条指令后扫描中断寄存器,查看有无中断请求。 如果没有,则运行下一条指令; 如果有中断请求,则通过交换中断向量引出(进入)中断处理程序,硬件完成的工作,软件完成的工作,程序状态字,指令计数器,系统堆栈,PSW1 PC1,PSW2 PC2,PSW3 PC3,PSW4 PC4,PSW5 PC5,PC1,PC2,PC3,中断处理,* 保存现场(保存未被硬件保存的现场) * 识别中断的具体原因 * 根据中断原因处理中断事件 * 中断返回,强迫性中断事件,自愿性中断事件,保存现场信息,保存现场信息,取出中断码,取出访管号,分析中断原因,分析何种系统调用,转相应处理程序,是否中断嵌套,由系统恢复现场,由系统恢复现场,转低级调度程序,返回上层中断,返回目态程序,需要切换进程,T,F,F,T,输入输出中断处理 1、I/O正常结束 如果要继续传输,准备好数据,启动通道 如果有进程等待I/O结束,将其唤醒 2、I/O传输错误 进行I/O复执,多次不成功,通知系统操作员 设备故障,时钟中断处理 进行系统管理及维护有关的工作: 1、进程管理 2、作业管理 3、资源管理 4、事件处理 5、系统维护 6、实现软件时钟,控制台中断处理 系统操作员利用控制台向系统发出中断请求: 按下控制台上某一个按钮, 产生一个中断信号(相当于一个操作命令) 操作系统转到相应的处理程序 (与具体系统有关),硬件故障中断处理 主要工作是保存现场,并向系统操作员报告故障信息,以及估计对系统造成的破坏,对系统进行可能的恢复 排除故障必须有人工干预 电源故障处理 主存故障处理 内存校验线路发现奇偶校验错误或海明校验错误而引起的中断,停止相关进程的执行,向系统操作员报告错误及单元号,程序性中断处理 两种策略: 1、由系统处理 该中断事件可能影响其他进程或操作系统 (内存访问地址越界,执行非法特权指令, 缺页,缺段等) * 报告出错的进程号、出错位置和错误性质 * 调入段或页,2、由用户处理 该中断事件只影响其自身 (浮点溢出、阶码下溢、除数为零等) 如果用户程序不提供特定的处理程序,操作系统将按照标准处理方法进行处理 on 例:on devide_zero goto LA; 运行前,编译系统为每个用户生成一个中断续元入口表,规定好每个中断事件对应的表目,中断事件0:中断续元运行环境0 中断续元入口0 中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论