操作系统原理PrinciplesofOperatingSystem郑然华中科技大学计算机学院研究方向:高性能计算及应用(GPU计算、网格计算、集群计算医学图像处理、图像搜索应用)计算系统虚拟化联系方式:02787543529-8031zhraner@hust.edu.cn集群与网格计算湖北省重点实验室服务计算技术与系统教育部重点实验室使用过程中的问题遇到计算机运行或打开硬盘上的程序的速度变慢,该怎么办?原因:硬盘上的卷可能有过多的碎片,可能是由于最近创建了大量的文件或文件夹,或安装了新软件。解决方案:如果必要,分析并整理硬盘上的卷碎片。为什么要学习操作系统?游戏中的现象基本配置推荐配置CPUPentium3800MHz以上Pentium41GHz以上内存256M以上512M以上显卡GeForce2以上3D加速卡Geforce4Ti以上3D加速卡硬盘3G以上为什么要学习操作系统?操作系统做什么#includestdio.hintmain(intargc,char*argv[]){puts(helloworld);return0;}为什么要学习操作系统?操作系统读程序(正文和数据地址)-创建子进程执行(程序映射为进程)-分配内存、从磁盘读页面-系统调用、寻找字串、转换成像素-写入存储映像区-模拟信号-显示器发射电子束输出操作系统提供一系列服务:多任务,内存保护,内存管理,网络,文件存取,设备控制,用户界面错误检测及恢复系统,硬件控制,安全操作系统是目前最复杂的软件成分涉及到计算机科学的很多领域计算机体系结构/硬件软件设计程序设计语言数据结构算法抽象无限的CPUs、无限的内存、单一全球计算能力…大型、复杂系统的系统设计软件/硬件、性能、易用性、简单性综合权衡为什么要学习操作系统?基本目的介绍操作系统的基本概念、基本结构及运行环境介绍操作系统原理、设计方法和实现技术介绍操作系统的演化过程、发展研究动向、新技术以及新思想介绍各种有代表性的、典型的操作系统实例掌握操作系统的基本理论,具备开发核心系统软件的技能,设计操作系统或者修改现有的系统掌握并行处理的思想方法,加深对使用的OS的理解,有利于深入编程培养分析问题、解决问题的基本能力为后继课程打好基础——数据库、网络、分布式系统教材:操作系统原理(第四版)庞丽萍华中科技大学出版社参考教材:UNIX操作系统设计莫里斯·贝奇机械工业出版社计算机操作系统汤子瀛等西安电子科技大学出版社现代操作系统陈向群等译机械工业出版社计算机操作系统教程张尧学史美林清华大学出版社操作系统基础屠立德屠祁清华大学出版社应用软件用户程序操作系统裸机操作系统的工作:(1)程序的执行(2)完成与硬件有关的工作(3)完成与应用无关的工作(4)计算机系统的效率与安全问题操作系统课程特点涉及面广错综复杂实践性强怎样学习操作系统深入理解教学内容独立完成练习题做好阶段复习理论联系实际讲课学时安排章节内容学时第一章绪论4第二章操作系统的逻辑结构4第三章用户界面6第四章并发处理14第五章资源分配与调度2第六章处理机调度3第七章主存管理6第八章输入/输出管理4第九章文件系统5习题课452+12+4/4成绩评定教学方式:多媒体讲授、作业、上机,课程设计考试方式:闭卷笔试成绩评定:平时成绩=作业+上机最终成绩=平时30%+考试70%第一章绪论(一)操作系统在计算机系统中的地位(二)操作系统的形成和发展(三)操作系统的定义(四)操作系统的功能(五)操作系统的基本类型计算机系统的组成计算机系统(层次结构)软件硬件及固件(裸机)应用软件系统软件编辑软件、编译软件操作系统计算机系统的基础提高系统效率方便用户使用裸机(硬件)是僵尸软件是幽灵管理信息系统、飞机订票系统、银行系统、地理信息系统、CAD系统、数字计算软件包…管理信息系统、飞机订票系统、银行系统、地理信息系统、CAD系统、数字计算软件包…语言编译程序、连接装配程序、数据库管理系统、网络软件…操作系统(一)操作系统在计算机系统中的地位计算机硬件系统软件应用软件支撑软件用户用户用户用户与硬件的关系:控制CPU的工作、访问存储器、设备驱动、中断处理与用户及应用程序的关系:提供方便的用户界面、提供优质的服务(二)操作系统的形成和发展操作系统发展是随着计算机硬件技术的发展而发展的。目标:充分利用硬件,提供更好的服务手工操作阶段批处理联机批处理脱机批处理执行系统操作系统形成多道程序系统多道批处理系统分时系统实时系统个人计算机操作系统网络操作系统分布式操作系统第1阶段手工操作阶段硬件非常昂贵,没有操作系统算题过程1.人工把源程序用穿孔机穿制在卡片或纸带上2.将准备好的汇编解释程序或编译系统装入计算机3.汇编程序或编译系统读入人工装在输入机上的穿孔卡或穿孔带4.执行汇编过程或编译过程,产生目标程序,并输出目标卡片迭或纸带5.通过引导程序把装在输入机上的目标程序读入计算机6.启动目标程序执行,从输入机上读入人工装好的数据卡或数据带7.产生计算结果,执行结果从打印机上或卡片机上输出第1阶段手工操作阶段硬件非常昂贵,没有操作系统特点:工作效率极低:手工操作的慢速度与机器处理的高速度每一用户都要自行编写涉及到硬件的源代码工作量大,难度高,易出错,需要大量人力和物力独占性、串行性问题:人机矛盾机器速度计算所需时间人工操作时间操作时间:机器运行时间1万次/秒1小时3分钟1:2060万次/秒1分钟3分钟3:1第2阶段单道批处理阶段硬件昂贵,人力便宜,单任务自动批处理简单批处理:装入程序、运行、打印结果、撤出、再重复用户把作业(卡片或磁带)交给负责调度的操作员(系统管理员),由操作员按作业类型分类编成一个作业序列,送到输入设备上。常驻监督程序自动地装入程序、运行、撤出作业(1)联机批处理(2)脱机批处理(3)执行系统批处理1.联机批处理特点:有监督程序,作业自动过渡问题:CPU高速与IO慢速的矛盾解决:由卫星机负责IO2.脱机批处理特点:主机与卫星机并行操作问题:调度不灵活,保护问题解决:硬件技术的发展——通道技术、中断技术3.执行系统:定义:借助于通道与中断技术,由主机控制I/O工作。原有的监督程序不仅要负责调度作业自动的运行,而且还要提供I/O控制功能。它常驻内存,称为执行系统。特点:主机、外设并行操作;增加了保护能力问题:处理机仍有空闲等待现象硬件基础:60年代计算机硬件获得两个重大的进展•I/O中断:由I/O部件操作完成后通知处理机运行相应的处理程序.•通道:能够自主控制外设可与处理机并行工作的、交换数据的I/O装置(控制器).磁盘通道主机通道通道卡片机打印机SPOOLing系统图示用磁盘设备作为主机的直接输入输出设备,即主机从磁盘选取作业运行,结果也存在磁盘中.相应的通道则负责磁盘与慢速外设的传输.利用通道和中断机制,作业的输入输出与作业在处理机上的运行可很好并行起来作业1作业n预输入程序作业调度程序缓输出程序井管理读程序井管理写程序作业的执行作业1结果作业n结果打印机输入机作业1信息作业n信息:作业1结果作业n结果:输入井输出井磁盘:SPOOLing系统结构虚拟设备第3阶段多道批处理阶段硬件较以前便宜,人力昂贵处理过程在内存中同时存放几道相互独立的程序在管理程序控制之下,相互穿插地运行,处理机和外设尽量处于忙碌状态交互式分时处理一台计算机,多个便宜终端所有用户可与系统立即交互调试比较方便多道程序设计技术多道程序设计技术多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,在管理程序的控制下相互穿插地运行。当某道程序因某种原因不能继续运行下去时(如等待外部设备传输数据),管理程序便将另一道程序投入运行。多道运行的特征:多道宏观上并行微观上串行效果提高效率:增长了单位时间的算题量,但对每道程序来说,却延长了计算时间提高资源利用率和系统吞吐率:以牺牲用户的响应时间为代价多道程序设计技术甲、乙两道程序,独占计算机单道运行时每道花一个小时,若此时处理器利用率为30%,粗略地说,甲(或乙)程序执行时所需要的处理器时间为:1小时×30%=18分钟如果按多道程序设计方法运行,处理器的利用率将达50%,即提供36分钟的CPU时间,约要运行72分钟。加上系统开销,若共花80分钟。比较单道和采用多道程序设计技术分别运行两道程序的效率和响应时间。采用多道程序设计方法后可以提高效率:(120-80)/120≈33%单道运行,花60分钟就可得到结果;多道运行时,却要花80分钟才有结果,延长了20分钟,即延长了33%的时间。(80-60)/60=33%分时技术与分时处理①分时技术:把处理机的响应时间分成若干个大小相等(或不相等)的时间单位,称为时间片,每个终端用户获得CPU,就等于获得一个时间片,该用户程序开始运行,当时间片到(用完),用户程序暂停运行,等待下一次运行。②分时计算机系统:由于中断技术的使用,使得一台计算机能连接多个用户终端,用户可通过各自的终端使用和控制计算机,我们把一台计算机连接多个终端的计算机系统称为分时计算机系统,或称分时系统。实时处理什么是“实时”计算机对外来的信息能够以足够快的速度进行处理,并且在被控对象允许的时间范围内作出快速反应。实时处理以快速反应为特征,对实时信号能在截止期限之内处理并作出反应。第4阶段操作系统的进一步发展硬件非常便宜、人力昂贵嵌入式操作系统实时操作系统并行操作系统分布式操作系统(三)操作系统的定义操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——以尽量有效合理方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活,方便,有效的使用计算机,使整个计算机系统能高效的运行。资源共享:多个计算任务对计算机系统资源的共同享用。资源竞争:多个计算任务对计算机系统资源的争夺。操作系统做什么仲裁者(协调者)使多个应用程序/用户高效,公平地一起工作保护用户不互相干扰管理程序硬件平台扩展为运行平台运行平台是承载应用程序的载体幻觉制造者提供硬件的高层界面,取消硬件限制操作系统提供无限的内存、无限的CPU管理者有效合理地分配资源,保护用户不受侵犯提供安全、保密措施标准服务提供者提供每个用户需要的标准工具如标准库、窗口系统操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。操作系统是整个计算机系统的核心。操作系统的定义操作系统的特征并发:系统中同时存在多个程序处理多个同时性活动宏观上:这些程序是同时在执行的微观上:任何时刻只有一个程序在执行,即微观上这些程序在CPU上轮流执行共享:多个计算任务对系统资源的共同享用操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源)操作系统要对系统资源进行合理分配和使用资源在一个时间段内交替被多个进程所用不确定性:操作系统能处理大量的、随机的事件序列,使各用户的计算任务正确地完成。虚拟性虚拟性:操作系统的一种管理技术,把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术通过多道程序和分时技术,将物理上的一个CPU变成逻辑上的多个CPU通过Spooling技术把物理上的一台独占设备变成逻辑上的多台虚拟设备通过窗口技术把物理上的一个屏幕变成逻辑上的多个虚拟屏幕虚拟存储器把物理上的多个存储器(主存和辅存)变成逻辑上的一个虚存(四)操作系统的功能虚拟机观点裸机:没有装配任何软件的计算机称为裸机。虚拟机:装配有相应软件的机器称为虚拟机。命令解释、图形用户界面、用户程序系统调用文件系统处理机调度、内存管理设备驱动,