1、2018/9/30,操作系统,操作系统 The Principles of Operating Systems,主讲教师:原仓周 辅导教师:刘芸 北航软件学院,2018/9/30,操作系统,教学目标和教学模式,操作系统是一门涉及较多硬件知识的计算机系统软件课程,在计算机软、硬件课程的设置上,起着承上启下的作用 本课程的目的与任务是 使学生理解操作系统的基本原理、组成、基本概念和主要功能 目前国内外操作系统课程的教学主要有两种模式: 侧重理论与原理的讲述,不局限于具体实例 结合具体实例,讲述操作系统的实现技术,2018/9/30,操作系统,本课程的教学目的,掌握操作系统的工作原理 学习软件设计
2、的思想方法 了解Linux/windows的技术方法,2018/9/30,操作系统,教材,操作系统原理 Linux篇 徐德明 编著 国防工业出版社 2004年1月第1版,2018/9/30,操作系统,参考书:理论部分,现代操作系统陈向群等译 机械工业出版社“Operating System:Internals and Design Principles” 中文版:电子工业出版社 英文版:清华大学出版社 “Operating System Concept” Abrahan Silberschatz,etc 计算机操作系统 汤子瀛等 西安电子科技大学出版社,2018/9/30,操作系统,参考书:具
3、体操作系统,操作系统原理DOS篇 张昆苍 清华大学出版社 Windows操作系统原理尤晋元等 机械工业出版社 Windows 内核实验教程陈向群等编著 机械工业出版社 Linux Kernel中文版,电子读物 深入分析Linux内核源代码陈莉君编著 人民邮电出版社,2018/9/30,操作系统,操作系统课程的特点,新概念多,涉及面广:并行程序,性能问题,结构问题,程序方法论,软件工程,等等 理论性强 实践性强:从实践总结出原理 结构复杂:各部分知识纵横交叉,密切相关,2018/9/30,操作系统,注意学习方法,掌握实质、忌讳死记硬背,要善于发现问题、提出问题,并要努力寻求问题的答案 提倡自主学
4、习、拓宽知识,要通过自学、研读参考书深入理解和掌握教师课堂指出的要点内容 理论与实践相结合,通过实验理解和验证所学理论,2018/9/30,操作系统,课程形式,主课,习题课,讨论课 作业,小论文及上机实验,2018/9/30,操作系统,平时成绩(30%):作业(10%) ,上机实验(10%) ,小论文(10%)期末考试(70%):笔试,考核方式和评分标准,2018/9/30,操作系统,本课程需要的基础知识,具备C语言程序设计的基础知识 粗通汇编语言编程 略知微机系统结构,尤其是保护模式,分段、分页机制。,2018/9/30,操作系统,第一章 操作系统概论,什么是操作系统? 为什么学习操作系统?
5、 操作系统的发展史及常用的操作系统介绍 操作系统做什么? 操作系统的分类 操作系统发展方向及影响因素 操作系统的特征 操作系统的功能 操作系统的结构,2018/9/30,操作系统,什么是操作系统?,操作系统的地位 引入操作系统的目标 操作系统的作用 操作系统的组成操作系统是计算机系统中的一个系统软件,是目前最复杂的软件成分,2018/9/30,操作系统,操作系统的地位,计算机系统的组成,2018/9/30,操作系统,操作系统的地位,操作系统的地位:紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境),2018/9/30,操作系统,引入操作系统的目标,提供一个计算机用户与计算机硬件系统之间
6、的接口,使用户能够灵活、方便、有效地使用计算机 有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用。 合理地组织计算机系统的工作流程,以改善系统性能(如响应时间、系统吞吐量)。 虚拟机的概念,2018/9/30,操作系统,引入操作系统的目标,有效: 系统效率(如CPU用的充足与否) 资源利用率(如内存,外部设备是否忙碌) 合理:公平与否,如果不公平则会产生“死锁”或“饥饿” 方便: 针对应用程序程序员和用户 可扩充性(开放的观点):硬件的类型和规模、操作系统本身的功能和管理策略、多个系统之间的资源共享和互操作,2018/9/30,操作系统,操作系统的作用(1),OS是计算机
7、硬件、软件资源的管理者 管理对象包括:CPU、存储器、外部设备、信息(数据和软件) 管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限),2018/9/30,操作系统,操作系统的作用(2),OS是用户使用系统硬件、软件的接口 系统命令(命令行、菜单式、命令脚本式、图形用户接口GUI) 系统调用(形式上类似于过程调用,在应用编程中使用),2018/9/30,操作系统,操作系统的作用(3),OS是扩展机(extended machine)/虚拟机(virtual machine) 在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机
8、管理(针对CPU) 另外,为合理组织工作流程:作业管理、进程管理操作系统的非形式化定义(关键点):系统软件,程序模块的集合,资源管理和用户接口功能,2018/9/30,操作系统,为什么学习操作系统?,反对学习操作系统的理由 世界上只需要很少的操作系统设计/实现者 Windows 的垄断不易改变 支持学习操作系统的理由 操作系统包括了所有软件设计/实现问题,包括资源共享/管理、 安全和身份验证、灵活性,健壮性、友好界面设计 加深对使用的OS的理解,有利于深入编程 编程时借鉴操作系统的设计思想和算法 存在人们意识不到的大量“操作系统”,嵌入式系统(Embedded OS) 操作系统的性能是支撑软件
9、和应用软件性能的基础 操作系统的安全是一切信息安全的基础,2018/9/30,操作系统,操作系统的发展的主要动力,推动操作系统发展的主要动力:“需求推动发展” 提高资源的利用率和系统性能:计算机发展的初期,计算机系统昂贵,用作集中计算 方便用户:用户上机、调试程序,分散计算时的事务处理和非专业用户(商业和办公、家庭) 器件的发展:CPU的位宽度(指令和数据)、快速外存。操作系统发展是随着计算机硬件技术的发展而发展的,目标:充分利用硬件,2018/9/30,操作系统,操作系统的历史,变化!意味着技术总在改变 要适应、折衷权衡,2018/9/30,操作系统,操作系统发展的四个阶段,第1阶段:电子管
10、时代(1946年-1955年) 手工计算 第2阶段 晶体管时代(1955年-1965年) 单道批处理系统 第3阶段:集成电路时代(1965年-70年代中) 多道批处理系统 第4代阶段:大规模集成电路时代(70年代中-) 分时系统、实时系统 操作系统新的发展方向 网络系统、分布式系统、嵌入式系统,2018/9/30,操作系统,第1阶段:电子管时代(1946年-1955年),手工操作,没有OS 集中计算(计算中心),计算机资源昂贵 程序通过插板或卡片装入,2018/9/30,操作系统,没有操作系统之前的程序运行过程,要运行一个作业,先将程序写在纸上(用高级语言或汇编语言) 然后穿孔成卡片,再将卡片
11、盒交给操作员 计算结果从打印机上输出 操作员到打印机上撕下运算结果送到输出室 程序员稍后可从取到结果 然后,操作员从输入室的卡片盒中读入另一个任务 如果需要FORTRAN编译器,还要把它取来读入计算机 机时在走来走去时被浪费,2018/9/30,操作系统,第1阶段的特点,工作方式 用户:用户既是程序员,又是操作员;用户是计算机专业人员 编程语言:为机器语言 输入输出:纸带或卡片 计算机的工作特点 用户独占全机:不出现资源被其他用户占用,资源利用率低; CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低 主要矛盾 计算机处理能力的提高,手工操作的低效率(造
12、成浪费); 用户独占全机的所有资源 提高效率的途径 专门的操作员,批处理,2018/9/30,操作系统,第2阶段:晶体管时代(1955年-1965年),利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理 程序设计语言诞生: FORTRAN 1954年提出,1956年设计完成 ALGOL 1958年引入 COBOL 1959年引入 设计人员、操作人员、程序人员和维护人员之间有了明确的分工,2018/9/30,操作系统,单道批处理操作系统- 现代操作系统雏型,批处理中的作业的组成 用户程序 数据 作业说明书(作业控制语言) 批 供一次加载的磁带或
13、磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带),2018/9/30,操作系统,单道批处理操作系统-联机批处理,用户提交作业:以纸带或卡片为介质; 操作员合成批作业:结果为磁带介质; 批作业处理:对批作业中的每个作业进行相同的处理:从磁带读入用户作业和编译链接程序,编译链接用户作业,生成可执行程序;启动执行;执行结果输出。 这时的问题:慢速的输入输出处理仍直接由主机来完成。输入输出时,CPU处于等待状态,2018/9/30,操作系统,单道批处理操作系统-脱机批处理,利用卫星机完成输入输出功能。主机与卫星机可并行工作 卫星机:完成面向用户的输入输出(纸带或卡片),中间结果暂
14、存在磁带或磁盘上。 作业控制命令由监督程序(monitor)来执行,完成如装入程序、编译、运行等操作。 优点:同一批内各作业的自动依次更替,改善了主机CPU和I/O设备的使用效率,提高了吞吐量。 缺点:磁带或磁盘需要人工装卸,作业需要人工分类,监督程序易遭到用户程序的破坏(由人工干预才可恢复),2018/9/30,操作系统,通道和中断技术,60年代初,发展了通道技术和中断技术,这些技术的出现使监督程序在负责作业运行的同时提供I/O控制功能。 通道:用于控制I/O设备与内存间的数据传输。启动后可独立于CPU运行,实现CPU与I/O的并行。 通道有专用的I/O处理器,可与CPU并行工作 可实现 I
15、/O联机处理 中断是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。 中断处理过程:中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点的现场并继续原有任务 可处理算术溢出和非法操作码,死循环(利用时钟中断进行超时限定) 监督程序发展为执行系统(executive system),常驻内存,2018/9/30,操作系统,典型的单道批处理操作系统,典型操作系统 FMS(FORTRAN Monitor System,FORTRAN监控系统) IBMSYS(IBM为7094机配备的操作系统) 这些操作系统由监控程序,特权
16、指令,存储保护和简单的批处理构成,2018/9/30,操作系统,单道批处理操作系统的不足,在IBM 7094机上,若当前作业因等待I/O而暂停, CUP只能踏步直至该I/O完成 CPU和I/O设备使用忙闲不均(取决于当前作业的特性) 对于CPU操作密集科学计算问题,浪费时间少 对于商业数据处理,I/O等待时间常占8090解决方案 多道批处理技术,2018/9/30,操作系统,第3阶段:集成电路时代(1965年-70年代),多道批处理操作系统 将内存分几个部分,每部分放不同的作业 当一个作业等待I/O时,另一个作业可以使用CPU 在主存中同时驻留多个作业需要硬件进行保护,以避免信息被窃取或攻击
17、多道批处理的运行特征 多道:内存中同时存放多道相互独立的程序 宏观上并行:宏观上,系统中的多道程序都在运行,在一定的时间间隔内都取得进展 微观上串行:在任意时刻,只有一道程序占有CPU,2018/9/30,操作系统,Spooling 技术,程序卡片被拿到机房后 能够很快将一作业从卡片读入磁盘 任何时刻当一作业运行结束 操作系统就将一新作业从磁盘读出 装入空出的内存区运行 Spooling技术 (Simultaneous Peripheral Operation On Line) 该技术也用于输出,2018/9/30,操作系统,多道批处理系统的特点,优点: 资源利用率高:CPU和内存利用率较高;
18、 作业吞吐量大:单位时间内完成的工作总量大; 缺点: 用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改; 作业平均周转时间长:短作业的周转时间显著增长; 问题的解决导致分时系统的出现,2018/9/30,操作系统,分时系统,分时系统实际上是多道程序的一个变种,分时系统的思想于1959年在MIT提出 “分时”的含义 分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源 多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户。有用户输入时由CPU执行,处理完一次用户输入后程序暂停,等待下一次用户输入时走时停 前台和后
19、台程序(foreground & background)分时:后台程序不占用终端输入输出,不与用户交互现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台 通常按时间片(time slice)分配:各个程序在CPU上执行的轮换时间,2018/9/30,操作系统,抢先式和非抢先式,抢先式和非抢先式(preemptive & non-preemptive):出让CPU是OS强迫或程序主动 抢先式:OS强近出让CPU; 非抢先式:程序主动出让CPU;,2018/9/30,操作系统,分时系统的特点,分时处理:用户与应用程序随时交互,控制程序运行,适于商业和办公事务处理缩短
20、响应时间 人机交互性好:在调试和运行程序时由用户自己操作 共享主机:多个用户同时使用 用户独立性:对每个用户而言好象独占主机现在的许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等,2018/9/30,操作系统,最初的从分时系统,第一个分时系统由 MIT的Fernando Corbato 等1961年在一改装的IBM 7090/94机上开发成功 当时有32个交互式用户 IBM 7090/94计算机有32K内存,系统用5K,用户用27K,用户存储映象在内存和一台磁鼓之间切换 1962年Manchester大学的Atlas计算机投入运行
21、运行速度200 kFLOPS 第一个有虚拟存储器(virtual memory)和页面调度(paging) 的机器,2018/9/30,操作系统,实时系统(real-time system),用于工业过程控制、军事实时控制、金融等领域,包括实时控制和实时信息处理两种 要求:响应时间短,在一定范围之内;系统可靠性高 任务的类型: 周期性实时任务: 非周期性实时任务:截止时间(deadline),开始截止时间(最晚开始时间)和完成截止时间(最晚完成时间)目前的操作系统,通常具有分时、实时和批处理功能,又称作通用操作系统。可适用于计算、事务处理等多种领域,能运行在多种硬件平台上,如 UNIX系统、W
22、indows NT等。通用化、小型化,2018/9/30,操作系统,系列机思想与IBM System/360系统,需求 多数厂商有几条完全不同的生产线,生产不同的计算机,开发和维护完全不同的产品,对厂商来说是昂贵的 另外,新用户在开始时只需要一台小计算机,后来可能需要一台大的计算机,而且希望能在新计算机上执行原有的程序。这样,厂家和用户需要软件在不同型号的计算机之间兼容 1964 年IBM 宣布推出System/360计算机系统 是第一个采用小规模集成电路的主流机型 所有的计算机都有相同的体系结构和指令集 在理论上,为一型号编写的程序可以在其他型号机器上 运行,2018/9/30,操作系统,I
23、BM System/360面临的困境,IBM无法写出同时满足互冲突需要的操作系统,其实别人也一样不能完成这项工作任务 数千名程序员写的数百万行汇编语言代码,系统自身占据了大量存储空间和一半的CPU时间 数百万行汇编代码中有成千上万处错误,IBM不断发行新的版本试图更正这些错误 每个新版本在更正老错误的同时又引入新错误,所以随着时间的流逝,错误的数量大致保持不变 IBM 的 OS/360 发布时,带着已知的 1000 个错误这便是软件危机, 软件工程应运而生,2018/9/30,操作系统,MULTICS的灾难,1965年MIT、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”, 希望能够
24、同时支持整个波士顿所有的分时用户。该系统称作MULTICS MULTICS设计目标是: 便利的远程终端使用,大量终端通过电话线接入计算机主机 MULTICS研制难度超出了所有人预料 长期研制工作达不到预期目标,1969年4月贝尔实验室退出,不久通用电气公司也退出了 MULTICS引入了许多现代操作系统领域概念雏形,对随后操作系统特别是UNIX的成功有着巨大的影响,2018/9/30,操作系统,提出的新问题,易于使用,提高人的生产力 合理的响应时间 引入文件系统,使用户可存取数据,2018/9/30,操作系统,解决办法,需要抢占式调度,以便保持适当的响应时间 需要避免抖动(程序在内存中过于频繁的
25、对换) 需要提供适用的安全检测,2018/9/30,操作系统,UNIX的诞生,1969年,在贝尔退出MULTICS研制项目后,Ken Thompson和Dennis M. Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准 项目无着落,他们在一台无人用的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏 为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell 和汇编程序 到了1970年,在一切完成后,给新系统起了个同MULTICS发音相近的名字UNIX 1972年,UNIX用C语言全部重写
26、,自此,UNIX诞生了,2018/9/30,操作系统,UNIX的崛起,贝尔实验室免费向各大学提供UNIX供教学、科研使用,版本6以前源代码公开,因此变得很流行 促使UNIX系统成功的因素: 首先,由于UNIX是用C语言编写,因此它是可移植的 第二,系统源代码非常有效,系统容易适应特殊的需求 最后,也是最重要的一点,它是一个良好的、通用的、多用户、多任务、分时操作系统 UNIX的典型版本 System V, BSD Solaris, AIX, HPUnix, IRIX, SCO,2018/9/30,操作系统,MINIX的出现,在AT&T公布版本7时开始认识到UNIX的商业价值,于是禁止在课程中研
27、究其源代码 为了教学的需要,1987年荷兰籍教授Andrew S. Tanenbaum编写了一个在PC机上运行的类“UNIX”的操作系统MINIX,用于教学目的 MINIX没有借用AT&T的一行源代码,其名称源于“小UNIX” 同样采用c语言编码,代码采用了比UNIX更模块化的组织方法 采用了微内核的结构,不包括Unix的Shell和许多工具程序,2018/9/30,操作系统,第4代阶段:大规模集成电路时代(1980年-),个人计算机的诞生 1975年4月,MITS公司推出了以8080为CPU的世界上第一台个人计算机Altair 8800,它的内存只有1K字节,当时的价格为375美元。Alta
28、ir 8800的BASIC语言解释器来自Bill Gates 1975年,MOS Technology公司推出了MC6501和MC6502两款8位微处理器芯片,它们的价格分别为20美元和25美元,而当时Intel 8080的价格为150美元。 日后Steve Jobs在组装Apple II微型计算机时,采用了比较便宜的MC6502。Apple II具有4KB RAM、16KB ROM、键盘、游戏杆、8个扩充插槽以及彩色显示器,是世界上第一台能够显示彩色图形的个人计算机。Apple II一经推出便在市场上迅速走红,为成立不久的Apple带来滚滚财源,Apple II的热潮一直持续到80年代初 P
29、C机的出现,推动了LAN的发展 网络:允许不同机器很容易共享资源,2018/9/30,操作系统,个人计算机操作系统,个人计算机操作系统的特征 放弃多道程序、并发和保护机制,使 OS 回归简单 使用户再次与系统交互 增强文件系统 响应时间、保护更为重要 常用的个人计算机操作系统 单用户单任务:MS DOS 单用户多任务:Windows 多用户多任务:Linux, UNIX, FreeBSD,2018/9/30,操作系统,MS,个人计算机的成功,逼得IBM采取紧急战略行动,决定要在1980年尽快生产出微型计算机,以应付挑战 但没有操作系统不行。要想快就是找现成系统配套,IBM公司洽谈 CP/M操作
30、系统不顺利,机遇落到了微软公司 在关键时刻,开发新操作系统时间和人手上已经不可能,微软找到西雅图计算机产品公司,用5万美圆的价格购买了西雅图计算机产品公司的QDOS操作系统 当时西雅图公司并不知道QDOS将被转卖给IBM,否则历史将会怎样演变,谁也无法知晓,2018/9/30,操作系统,MS DOS,IBM在1981年推出个人计算机,宣布了DOS操作系统 随着IBM PC和MS DOS普及,CP/M逐渐走向下坡路 MS DOS有优良的文件系统 但受到Intel x86体系结构的限制 缺乏以硬件为基础的存储保护机制 它属于单用户单任务操作系统 从1981的 1.0版到1998年在Windows
31、95/98之下的7.0版,MS DOS历经了16个年头,2018/9/30,操作系统,苹果公司的困境与机遇,在推出IBM PC后,市场非常成功,苹果公司推出Lisa机遭到失败,Apple III型也遭到失败 1979年苹果公司允许施乐公司购买一百万股的苹果公司股票 作为回报,施乐公司允许苹果公司的少数人员,包括乔布斯,在有限的时间内考察施乐公司Palo Alto研究中心内部,并同该思想库的研究人员交谈 苹果公司对Palo Alto研究中心内的技术大感吃惊:施乐公司在拥有这些宝贵技术的同时竟然什么也没有做!,2018/9/30,操作系统,Palo Alto70年代计算机研究思想库,图形界面 手持
32、鼠标 面向对象程序设计 微机网络 桌面出版和激光打印,2018/9/30,操作系统,Macintosh(MAC OS),在访问的基础上,苹果决定立即开发采用这些新技术的个人计算机 1984年,人们看到一则广告:“What was that?”和对Macintosh的介绍, 这是配有图形界面操作系统 MAC OS和鼠标的新型个人计算机 MAC机一上市立即在市场上获得极大的成功 当年比尔.盖茨曾经购买了一台Macintosh作为礼物送给母亲 Macintosh把苹果公司从连续的失败中拯救出来,苹果公司又开始向前发展 正是Mac先进图形界面操作系统技术,超前PC机若干年,造就了一批苹果的忠实追随者,
33、2018/9/30,操作系统,一波三折的微软Windows操作系统,1983年10月,PC机竞争厂家的图形界面相关产品上市 面对市场压力,比尔.盖茨在1983年11月10日宣布推出Windows操作系统 然而宣布容易,交货就不简单了,Windows交货期的灾难,成了当年计算机界的笑柄 直到1985年11月20日,Windows 1.0才正式上市,2018/9/30,操作系统,Windows的历史记录,Windows在当时微软历史上创了几个记录:延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管人员最多 不过几年之后,Windows终于创造了销售成绩最佳的历史记录 1992年4月,推出W
34、indows 3.1, 1993年5月,发表Windows NT Windows 95,Windows CE,Windows 98,Windows 2000,Windows XP,.net 个人计算机采用Windows占90以上,微软公司成了垄断PC行业的同义词,2018/9/30,操作系统,Windows操作系统的发展历程,2018/9/30,操作系统,IBM大型计算机操作系统OS/390,90年代末期,电子商务发展刺激对计算能力的要求,导致大型机市场的再度升温 三十年的改进,IBM S/390已成为有高可靠性、可扩展性、及安全可用性的现代大型计算机系统 支持即UNIX 95标准,UNIX应
35、用程序可在IBM OS/390上运行 同时还可继续运行S/390应用程序,包括S/370上开发的应用程序 包括TCP/IP的多种通信协议,具有高网络安全性 采用面向对象程序设计、并行处理、分布式处理以及客户机/服务器技术,具有较强的互操作性、可移植性与可扩展性,2018/9/30,操作系统,OS390的意义,由于历史渊源,OS/390有不同的系统运行方式: S/370本机模式,支持原先在S/370运行的程序 ESA/390模式,支持到10个240M处理器内存和256个通道 ESA/390 LPAR模式,系统可分成最多十个部分,每个部分有自己的CPU,存储器和通道,且分别运行不同的操作系统,如S
36、/370, ESA/370 和ESA/390等在PC机时代,人们曾经估计大型计算机会衰亡, IBM S/390是大型计算机复活的一个典型,那么,在21世纪的Internet和后PC的时代,大型机前景如何?,2018/9/30,操作系统,嵌入式操作系统的代表VxWorks,VxWorks支持各种工业标准,包括POSIX, ANSI C和TCP/IP网络协议 VxWorks运行系统的核心是一高效率的微内核 微内核支持各种实时功能,包括快速多任务处理,中断支持,抢占式和轮转式调度 微内核设计减轻了系统负载并可快速响应外部事件 从只需几千字节存储器的深嵌式产品设计到复杂高端实时系统设计,开发人员有八十
37、多个选件并可构成上百个不同的配置(根据需要定制),2018/9/30,操作系统,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负责火星探测器全部飞行控制,包括飞行纠正、载体自旋和降落时的高度控制
38、等,而且还负责数据收集和与地球的通信工作 目前在国内也占据嵌入式开发系统市场主要份额,2018/9/30,操作系统,Linux的产生基础,1991年初开始,因不满MINIX的缺乏实用性,芬兰大学生Linus详细研究386-MINIX,并逐步产生了编写一个新的386平台操作系统的想法 在开发新操作系统的过程,Linus使用了大量的GNU软件,包括gcc。GNU是FSF支持的免费操作系统开发计划 同时,他也实现了与POSIX标准兼容。 POSIX是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一
39、级上在多种操作系统上移植运行,2018/9/30,操作系统,Linux的诞生,1991 年10 月5 日,Linus 在comp.os.minix 新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT) Linus 申明他开发的操作系统没有使用一行minix 的源代码 Linux采用宏内核结构,Linus在设计时大量参考了系统V的,所以说Linux是UNIX的延续,2018/9/30,操作系统,Linux的技术特点(1),符合POSIX 1003.1标准,支持部分BSD和System V的系统接口 POSI
40、X 1003.1标准定义了一个最小的UNIX操作系统接口 支持多用户、多任务 采用虚拟内存管理技术 支持请求页式虚拟内存管理技术 支持缓冲机制(设备缓冲区缓存、页面缓存和交换缓存),2018/9/30,操作系统,Linux的技术特点(2),支持动态链接 支持多种文件系统 支持大部分GNU软件 可利用DOS/Windows模拟器运行DOS和Windows程序 全面支持TCP/IP网络,2018/9/30,操作系统,Linux和Linux内核的关系,通常所说的Linux是指Linux内核和运行于内核之上的各种管理程序和应用程序 内核只是Linux操作系统的一部分 Linux的商业发行版本很多,常见
41、的有Redhat、Turbo、嵌入式Linux、实时Linux等等,2018/9/30,操作系统,商业发行版的特点,商业发行版增加了 安装程序、X Windows、各种编程语言、网络支持软件、各种服务器软件、Java核心支持 中文平台、应用软件、游戏等 更重要的是可以提供技术支持 商业版本的版本号和内核的版本号没有统一的对应关系,2018/9/30,操作系统,Linux内核的版本,Linux内核的版本 版本号的格式:x.yy.zz x,y,z介于0到9之间 x表示内核的设计在技术上有重大改变; yy偶数时表示发行版,代码运行稳定,奇数进表示开发版本,技术最新; zz则表示仅对前一版本有些微小改
42、变 Linux内核的0.0.2版本在1991年公开发行,2.2版本1999年1月发行 目前最新版本是2.6,2018/9/30,操作系统,Linux内核的版权,尽管源代码公开,但受FSF(自由软件基金会)的版权规则GPL(General Public License)的制约 详细规定见/usr/src/linux/COPYING,2018/9/30,操作系统,Linux内核源代码的获取方式,商业发行版本附带的发行版内核,通常不是最新的 中国自由软件库http:/(最新版) 发行商网站 官方网站 http:/www.kernel.org,2018/9/30,操作系统,操作系统领域中新的操作系统
43、,有线电视机顶盒领域, PowerTV 移动通信领域,EPOC 掌上计算机领域,Palm OS 数字影像领域, Digita,2018/9/30,操作系统,研究中的新的操作系统,哈佛大学的VINO,使应用得以重用内核构件 犹他州大学的OSKit,提供构造操作系统所需的基础构件,也提供高层次构件。OSKit可用来构造新的OS MIT Exokernel,该系统只有一个极小的核。系统抽象通过Library Operating System完成 加州大学伯克利分校NOW集群操作系统,100台Ultra SPARC-I处理机集群,排名于世界最快的200台超级计算机之内 NASA空间飞行中心(GSFC)
44、研制Beowulf项目开始于1994年,用商业化的微型计算机,Linux和以太网等构造集群。已有世界各地的约六十个大学和研究机构在使用,2018/9/30,操作系统,国内操作系统的研制状况,60年代末至70年代初,杨芙清主持的我国第一台百万次集成电路计算机(150)操作系统支持多道程序运行,在石油勘探领域成功应用 70年代中后期,杨芙清的我国第一个全部用高级语言书写的DJS240机操作系统DJS200/XT2 GX73多机实时操作系统(1978年) 国防科技大学,1980年装在“远望”-I 号航天测量船上,完成了向太平洋发射运载火箭、潜水艇水下发射的测控任务;完成了我国第一颗同步地球卫星的测控
45、、定轨、控制任务,2018/9/30,操作系统,国内操作系统的研制状况(续),“银河”-1 YHOS巨型操作系统(1983年)国防科技大学,用于YH-1、YH-2超级计算机,用于我国的石油勘探、天气预报和核物理研究COSIX v 1.X/2.0 国产UNIX类操作系统(国家八五、九五重点科技攻关成果,以中软为首,联合国内18个单位共同完成) 微内核结构,安全级别超过B1,中文界面 嵌入式操作系统Hopen(女娲计划) Linux类操作系统,2018/9/30,操作系统,操作系统做什么?,#include int main(int argc, char *argv) printf(“%sn”,“
46、hello world“); return 0; 重要概念:进程,文件,系统调用,2018/9/30,操作系统,Hello执行过程(1),用户告诉操作系统执行hello程序 操作系统找到该程序,检查其类型 检查程序首部,找出正文和数据的地址 文件系统找到第一个磁盘块 父进程需要创建一个新的子进程,执行hello程序,2018/9/30,操作系统,Hello执行过程(2),操作系统需要将执行文件映射到进程结构 操作系统设置CPU上下文环境,并跳到程序开始处 程序的第一条指令执行,失败,缺页中断发生 操作系统分配一页内存,并将代码从磁盘读入,继续执行,2018/9/30,操作系统,Hello执行过
47、程(3),更多的缺页中断,读入更多的页面 程序执行系统调用,在文件描述符中写一字符串 操作系统检查字符串的位置是否正确 操作系统找到字符串被送往的设备 设备是一个伪终端,由一个进程控制,2018/9/30,操作系统,Hello执行过程(4),操作系统将字符串送给该进程 该进程告诉窗口系统它要显示字符串 窗口系统确定这是一个合法的操作,然后将字符串转换成像素 窗口系统将像素写入存储映像区,2018/9/30,操作系统,Hello执行过程(5),视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕) 显示器发射电子束 你在屏幕上看到hello world,2018/9/30,操作系统,测测你的
48、计算机基础知识,描述计算机的启动过程 描述两台连网计算机的数据传输过程 描述键盘输入到屏幕的显示过程,2018/9/30,操作系统,单道、多道、分时、实时的比较,2018/9/30,操作系统,单道和多道批处理的比较,共同目的是提高CPU的利用率,2018/9/30,操作系统,多道批处理系统上的技术,作业调度:作业的现场保存和恢复上下文切换 资源共享:资源的竞争和同步互斥(exclusion)和同步(synchronization)机制 内存使用:提高内存使用效率(为当前由CPU执行的程序提供足够的内存)覆盖(overlay),交换(swap)和虚拟存储(virtual memory) 内存保护
49、:系统存储区和各应用程序存储区不可冲突存储保护 文件非顺序存放、随机存取,出现:作业管理、处理机管理、存储管理、设备管理、文件系统管理(file system),2018/9/30,操作系统,分时,目的是提高响应速度(秒级),2018/9/30,操作系统,分时系统的类型,单道分时:调入-调出(Roll-in/Roll-out),I/O开销太大(在有卫星机处理I/O时,单道分时是有用的) 前台后台分时:后台存放批处理作业,内存的划分是固定的,不灵活 多道分时:需要解决加载程序时地址空间重定位的问题,2018/9/30,操作系统,实时,目的是进一步提高响应速度(毫秒、微秒级)响应时间:指用户发出命令,到系统完成用户命令所需的时间 批处理操作系统 没有 分时操作系统 秒级(一般情况) 实时操作系统 毫秒、微秒级 甚至更小,2018/9/30,操作系统,实时系统与批处理和分时系统的区别,专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统 实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构 高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统 事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。 可与通用系统结合成通用实时系统:实时处理前台作业,批处理为后台作业,