ch1.1第一章操作系统概论1.1操作系统概观1.2操作系统的形成和发展1.3操作系统提供的服务和用户接口1.4操作系统的结构设计1.5流行操作系统简介1.1操作系统概观操作系统的定义和目标操作系统的作用和功能操作系统的主要特性ch1.3随处可见的电子设备ch1.4所有的电子设备都有操作系统电子计算机(大型机,微型机…)汽车电子控制部件火星漫步者手持设备(手机,PDA)洗衣机,微波炉本课讨论范围限于计算机OSch1.5Altair8080如果我们没有操作系统…最基本的计算机由CPU,存储器以及输入/输出设备组成。SourceCodeCompilerObjectCodeHardware在没有操作系统的时代,人们是通过一个控制面板将ObjectCode输入内存并读出结果。0x2A3B0x20ch1.6现在我们是怎么做的?每按一个键系统都要字符回显示至显示器,直至输入回车,数据就被写入指定地址的内存了。谁将字符显示到显示器上?(屏显处理程序)它如何得知我的指令结束?(键盘处理程序)它怎么知道我是要写而不是读?(命令处理程序)Write0x2A3B0x20Write0x2A3B0x20ch1.7操作系统是什么?OS是屏显处理程序+键盘处理程序+命令处理程序?这样的OS太过简单,无法管理文件,无法上网,无法…OS是屏显处理程序+键盘处理程序+命令处理程序+文件管理程序+网络接入程序…?OS是N个提供服务程序的集合ch1.8人们希望OS完成哪些工作?方便地操作计算机使计算机的功能得到扩充有效管理我的文档尽可能地快速完成我下达的任务自己可以在其之上开发新功能OS就是一套能完成上述工作的软件ch1.9操作系统的定义操作系统是管理系统资源、控制程序执行,改善人机界面,提供各种服务,合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的一种系统软件(可以是硬件吗?)。硬件计算机系统系统软件软件应用软件ch1.10计算机系统的层次结构用户1用户2用户3用户4用户n财务系统航空订票上网浏览电子商务科学计算(应用程序)编译程序汇编程序编辑程序数据库(系统程序)操作系统计算机硬件………ch1.11Interface--接口(边界)接口提供了一条合理的边界,使接口的两边可以很好的对话。接口可分成硬-硬、软-硬、软-软几类,OS和硬件之间是软-硬接口。instructionsetsoftwarehardwarech1.12各种应用软件编译软件等操作系统裸机操作系统设计者系统软件设计者应用软件设计者ch1.13OS接管计算机的过程打开电源CPU将控制权交给BIOS(基本输入输出系统,存入于CMOS中)BIOS运行一个程序:通电自测试程序BIOS确认所有外部设备:硬盘或扩充卡BIOS找到磁盘的引导区(通常在磁盘的最开始的部分),将接下来的512Bytes主引导程序装入内存。(主引导程序是一段代码,它可以将OS余下部分装入内存)引导操作系统结束,操作系统接管计算机ch1.14用户如何透过OS支配硬件(VM)OS向用户提供一个容易理解和使用的“计算机”,用户对这个“计算机”的操作都将被转化成OS对计算机硬件的操作。E.g.在“我的电脑”中复制、粘贴文件。ApplicationOperatingSystemHardwarePhysicalMachineInterfaceVirtualMachineInterfacech1.15OS能做些什么?(OS的功能)OS是一个协调者和交通警察管理资源硬件资源(处理机,存储器,设备)信息资源(文件)解决申请资源时产生的冲突阻止错误的产生和对计算机不正当的使用OS是一个便利器提供良好的用户界面标准的函数库使得编程更加方便并且不容易出错ch1.16操作系统的主要功能处理器管理存储管理设备管理文件管理网络与通信管理用户接口ch1.17虚拟性:是指把物理实体变成逻辑对应物。如虚拟软驱、虚拟硬盘、虚拟光驱、虚拟内存、虚拟打印机、虚拟摄像头。操作系统的主要特性并发性共享性异步性虚拟性并发:在计算机系统中同时存在多个程序宏观上:这些程序是同时在执行的微观上:任何时刻只有一个程序在执行,即微观上这些程序在CPU上轮流执行并行:与并发相似,但多指硬件支持共享:计算机系统资源可被多个并发执行的程序共同使用。互斥共享如打印机、磁带机等同时访问如磁盘等异步性(随机性):AB终点BA1.2操作系统的形成和发展人工操作阶段管理程序阶段多道程序设计与操作系统的形成ch1.19人工操作阶段(没有OS的时代)穿孔卡片程序写在卡片上然后读入计算机ch1.20管理程序阶段(OS的软件雏形)操作员集中一批用户提交的作业,由管理程序将这批作业从纸带或卡片机输入到磁带上,每当一批作业输入完成后,管理程序自动把磁带上的第一个作业装入内存,并把控制权交给作业。当该作业执行完成后,作业又把控制权缴回管理程序,管理程序再调入磁带上的第二个作业到内存执行。ch1.21例题(p11)计算某个数据处理问题,输入500个字符(花78ms),经CPU处理52ms后,将结果2000个字符存到磁带上(花20ms),重复进行,直至输入数据全部处理完毕。ch1.22单道算题运行时处理器的使用效率78输入机处理器磁带机130150228280300378430450时间CPU利用率=52/(78+52+20)≈35%ch1.23多道程序设计多道程序设计是指允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。从宏观上看:并行从微观上看:串行引入多道程序设计技术的根本目的:提高CPU的利用率实现该目标的硬件保证:处理器和外围设备具可以并行工作ch1.24例题(p11-12)接上题,计算机还接受了另一算题:先从另一台磁带机上输入2000个字符(花20ms),经42毫秒的处理后,从行式打印机上输出两行(约花88ms)。ch1.25两道算题运行时处理器的使用效率78输入机处理器磁带机1130150228280300378430450时间磁带机2打印机P2P2P1P2P1P1P2CPU利用率=(52+42)/(78+52+20)≈63%ch1.26例题(p12)甲、乙两道程序,独占计算机单道运行时每道花一个小时,若此时处理器利用率为30%,粗略地说,甲(或乙)程序执行时所需要的处理器时间为:1小时×30%=18分钟假定按多道程序设计方法运行,处理器的利用率达50%,提供36分钟的CPU时间,约要运行72分钟。加上系统开销,若共花80分钟。单道运行时,甲、乙依次执行完需120分钟,采用多道程序设计方法后可以提高效率:(120-80)/120≈33%甲、乙两道程序,如果单道运行,它花60分钟就可得到结果,多道运行时,却要花80分钟才有结果,延长了20分钟,即延长了33%的时间。(80-60)/60≈33%ch1.27多道程序设计产生的问题采用多道程序设计提高了效率,即增长了单位时间的算题量,但对每道程序来说,却延长了计算时间。多道程序设计技术提高资源利用率和系统吞吐率是以牺牲用户的响应时间为代价的。ch1.28多道程序设计的道数问题多道程序设计的道数多少不是任意的(如两道程序都要用某一台打印机)内存储器的容量和用户的响应时间等因素也影响多道程序道数的多寡。一道程序等待I/O操作的时间占其运行时间的比例为p,当内存中有n道程序时,所有程序都等待I/O的概率是pn,那么,CPU利用率=1-pn其中n称多道程序的道数或度数,可见CPU的利用率是n的函数。注:解题时是否使用该公式请依题意ch1.29内存数量对CPU利用率的影响若计算机有1MB内存,操作系统占200KB,其余空间允许4道用户程序共享,每个占用200KB,如果进程平均花费80%的时间等待I/O操作。则(忽略操作系统开销时):CPU利用率=1-(0.8)4=59%当增加1MB内存后,多道程序可从4道增加到9道,因而,CPU的利用率=1-(0.8)9=87%,第二个1MB内存提高了28%的系统吞吐量。增加第三个1MB内存只将CPU的利用率从87%提高到96%,吞吐量仅提高了10%。ch1.30多道程序设计的优缺点优点:提高了CPU的利用率,提高了内存和I/O设备的利用率,改进了系统的吞吐率,充分发挥了系统的并行性。其主要缺点是:作业周转时间延长。ch1.31三个关键促成了操作系统的形成中断技术实现了多道程序的切换通道技术实现了硬件之间的并行性磁盘的问世高速高容量的存储器充当虚拟存储器如何获得课件和资料?U盘拷贝后续发布网站(可能)操作系统发展简史“微芯片上集成的晶体管数目每18个月翻一番”--戈登·摩尔ch1.34硬件发展带动操作系统的发展0.24,00025,0000.1110s23216110,0001Gb/s9600b/s100,0001TB10MB32,7684GB128KB1,2803200x410倍数20061981价格人力/机器时间总线位数网络带宽磁盘容量内存容量CPUMHzch1.35ENIAC:(1945—1955)这个家伙重30吨,并且要消耗200KW的电力~history/ENIAC.Richey.htmlch1.36第1阶段(1948—1970)人机矛盾突显用户在机器前操作一次只一个用户使用当用户在机器面前思考计算机空闲(浪费严重)批处理系统一次性处理多个作业如果其中一个作业出错,将导致人工干预硬件昂贵,人力便宜ch1.37磁心存储器(1950s&60s)CoreMemory将数据存储在被磁化的铁环中第1½阶段(60年代末70年代初)通道和中断:提供了I/O和计算的并行多道程序设计复杂性变得难以控制:Multics:耗费了1866people人力()图灵奖得主FernandoCorbató的获将演说:“Onbuildingsystemsthatwillfail”OS360:发布时就存在1000个已知bugs(APARs)“AnomalousProgramActivityReport”OS逐渐形成一门重要的学科:如何处理硬件的复杂性?UNIX基于Multics系统开发,但已经大大的简化。ch1.39MulticsSystem由MIT、通用电气公司以及贝尔实验室三家于1969年推出了著名的MULTICS,即多路信息计算系统(MultiplexedInformationandComputerSystem)。作为一种通用的操作系统,MULTICS能有效地把计算机资源分配给多个远程用户程序,同时解决了安全和保密等问题。磁盘的发展1973:1.7Mbit/sq.in140MBytes1979:7.7Mbit/sq.in2,300MBytesch1.41第2阶段(1970–1985)OS技术不断成熟和稳定分时操作系统:多个用户可以通过自己的终端同时与系统会话每个用户可以获得相同的CPU处理时间用户可以在线进行编程,调试以及其它操作第一个分时系统CTSS在1962年由MIT开发成功UsersResponsetime硬件成本下降,人力资源费用上升ch1.42第3阶段(1981—)人均拥有计算机数量1微机操作系统单用户单任务:CP/M,DOS多用户多任务:windows,OS2,MACOS,LinuxOS之间的战争(见附录)硬件十分便宜,人力资源费用昂贵ch1.43第4阶段(1989—)分布式操作系统不同的机器共享资源打印服务,文件服务,WEB服务客户-服务器模式提供计算和