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