操作系统原理PrinciplesofOperatingSystem第一章操作系统引论课程介绍课程的层次。计算机课程的大致划分(专业基础、专业理论、应用型)本课程所处层次(专业理论)课程的特点。理论知识在理解的基础上记忆注重实践环节(实验、课程设计)经典算法必须掌握(理解、习题)与本课程有关的课程:1)计算组成原理2)C程序设计3)数据结构开课篇2第一章操作系统引论为什么学习操作系统?•设计操作系统或者修改现有的系统存在人们意识不到的大量“操作系统”嵌入式系统(EmbeddedOS)•加深对使用的OS的理解,有利于深入编程用户为了开发应用程序必须与操作系统打交道•编程时借鉴操作系统的设计思想和算法操作系统中所用的许多概念和技巧可以推广应用到其他领域•选择购买操作系统•我们并不总使用Win95/NT/2000/XP第一章操作系统引论学什么、教什么?1.本课程的主要知识体系包括:操作系统引论(第一章)进程管理(第二章)处理机调度与死锁(第三章)存储器管理(第四章)设备管理(第五章)文件管理(第六章)开课篇4第一章操作系统引论学习本课程的收获通过理论课:深入理解操作系统原理通过实践课:熟悉一种具体操作系统Linux,为毕业设计、今后就业、进一步深入研究操作系统打下基础。开课篇5第一章操作系统引论学习方法、态度-如何学1、学习方法注重理论教学,理论与实践紧密结合,互为补充,相辅相成。在学习过程中,注意对基本概念,基本方法的理解和掌握。充分利用上机实习条件,加深对课堂知识的理解并提高动手能力。要求:认真做好上机前准备,独立完成上机实践。2、学习态度及时与教师交流。开课篇6教材计算机操作系统汤小丹西安电子科技大学出版社参考教材操作系统:设计与实现王鹏译电子工业出版社自己动手写操作系统于渊著电子工业出版社Unix/Linux编程实践教材杨宗源译清华大学出版社Windows操作系统原理机械工业出版社第一章操作系统引论第一章操作系统引论1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特性1.4操作系统的主要功能1.5操作系统的结构设计第一章操作系统引论1.1操作系统的目标和作用1.1.1操作系统的目标目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目1.有效性2.方便性3.可扩充性4.开放性第一章操作系统引论1.1.2操作系统的作用1.OS作为用户与计算机硬件系统之间的接口用户应用程序系统调用命令图标、窗口操作系统计算机硬件图1-1OS作为接口的示意图第一章操作系统引论2.OS作为计算机系统资源的管理者归纳起来可将资源分为四类:处理器、存储器、I/O设备以及信息(数据和程序)。相应地,OS的主要功能也正是针对这四类资源进行有效的管理,即:处理机管理;存储器管理;I/O设备管理;文件管理。可见,OS确是计算机系统资源的管理者。3.OS实现了对计算机资源的抽象虚拟机:覆盖了软件的机器第一章操作系统引论例:操作系统做什么?#includestdio.hintmain(intargc,char*argv[]){puts(helloworld);return0;}第一章操作系统引论用户告诉操作系统执行hello程序操作系统找到该程序,检查其类型检查程序首部,找出正文和数据的地址文件系统找到第一个磁盘块父进程需要创建一个新的子进程,执行hello程序操作系统需要将执行文件映射到进程结构操作系统设置CPU上下文环境,并跳到程序开始处程序的第一条指令执行,失败,缺页中断发生操作系统分配一页内存,并将代码从磁盘读入,继续执行更多的缺页中断,读入更多的页面程序执行系统调用,在文件描述符中写一字符串第一章操作系统引论操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备设备是一个伪终端,由一个进程控制操作系统将字符串送给该进程该进程告诉窗口系统它要显示字符串窗口系统确定这是一个合法的操作,然后将字符串转换成像素窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)显示器发射电子束你在屏幕上看到helloworld第一章操作系统引论操作系统提供一系列服务:多任务,内存保护,内存管理,网络,文件存取,设备控制,用户界面错误检测及恢复系统,硬件控制,安全第一章操作系统引论什么是操作系统?•定义:存在形式,在计算机系统中的位置,作用。定义一:操作系统是一组控制和管理计算机软硬件资源,合理地对各类作业进行调节,以及方便用户使用的程序的集合.定义二:操作系统是能够在核心态运行,并能够根据程序要求对计算机软硬件资源进行直接控制和管理的,有着一定复杂逻辑算法关系的一组程序集合定义三:操作系统是计算机系统中的一个系统软件,管理和控制计算机系统中硬件和软件资源,合理地组织计算机的工作流程,以便有效利用这些资源为用户提供一个功能强、使用方便的工作环境,从而在计算机与用户之间起到接口的作用第一章操作系统引论1.1.3推动操作系统发展的主要动力•操作系统的研发过程就是计算机科技不断创新的过程•操作系统发展动力源:矛盾.归结为四个方面:–不断提高计算机资源利用率;–方便用户;–器件的不断更新换代;–计算机体系结构的不断发展•发展的足迹:不足新的需求新的理论与设计第一章操作系统引论1.2操作系统的发展过程•操作系统的产生–无操作系统时代(45年到50年代中期)–单道批处理系统(50年代)•操作系统的形成–多道批处理系统(60年代初)–分时系统(60年代中)–实时系统(60年代中)第一章操作系统引论1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.人工操作方式人工操作方式有以下两方面的缺点:(1)用户独占全机。(2)CPU等待人工操作。第一章操作系统引论2.脱机输入/输出(Off-LineI/O)这种脱机I/O(1)减少了CPU的空闲时间。(2)提高I/O速度。输入设备外围机磁盘主机外围机输出设备图1-2脱机I/O示意图第一章操作系统引论1.2.2单道批处理系统1.单道批处理系统(SimpleBatchProcessingSystem)的处理过程图1-3单道批处理系统的处理流程把下一个作业的源程序转换为目标程序源程序有错吗?否装配目标程序还有下一个作业?是否停止运行目标程序是开始第一章操作系统引论2.由于系统对作业的处理都是成批进行的,且在内存中始终只保留一道作业,故称为单道批处理系统.单道批处理系统是最早出现的一种OS,严格地说,它只能算作是OS的前身而并非是现在人们所理解的OS。该系统的主要特征如下:(1)自动性。(2)顺序性。(3)单道性。第一章操作系统引论1.2.3多道批处理系统1.多道程序设计的基本概念为了进一步提高资源的利用率和系统吞吐量,在60年代中期又引入了多道程序设计技术,由此而形成了多道批处理系统(MultiprogrammedBatchProcessingSystem)。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。第一章操作系统引论多道程序设计技术::在内存中放一个以上的作业或程序,使它们在管理程序的控制下相互穿插地运行,共享处理机时间和外部设备等其他资源。在OS(1)提高CPU的利用率。(2)可提高内存和I/O设备利用率。(3)增加系统吞吐量。第一章操作系统引论2.多道批处理系统的特征(1)多道性。(2)无序性。(3)调度性。宏观上并行:同时有多道程序有内存运行,某一时间段上,各道程序不同程度地向前推进。微观上串行:任一时刻最多只有一道作业占用CPU,多道程序交替使用CPU。第一章操作系统引论3.多道批处理系统的优缺点(1)资源利用率高。(2)系统吞吐量大。(3)平均周转时间长。(4)无交互能力。第一章操作系统引论4.多道批处理系统需要解决的问题(1)处理机管理问题。(2)内存管理问题。(3)I/O设备管理问题。(4)文件管理问题。(5)作业管理问题。第一章操作系统引论1.2.4分时系统1.分时系统(Time-SharingSystem)如果说,推动多道批处理系统形成和发展的主要动力,是提高资源利用率和系统吞吐量,那么,推动分时系统形成和发展的主要动力,则是用户的需求。或者说,分时系统是为了满足用户需求所形成的一种新型OS。用户的需求具(1)人—机交互。(2)共享主机。(3)便于用户上机。第一章操作系统引论2.分时系统实现中的关键问题为实现分时系统,其中,最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。此后,用户可继续键入下一条命令,此即人—机交互。应强调指出,即使有多个用户同时通过自己的键盘键入命令,(1)及时接收。(2)及时处理。第一章操作系统引论分时系统主机终端第一章操作系统引论3.分时系统的特征(1)多路性。(2)独立性。(3)及时性。(4)交互性。第一章操作系统引论1.2.5实时系统所谓“实时”,是表示“及时”,而实时系统(Real-TimeSystem)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。1.应用需求(1)实时控制。(2)实时信息处理。第一章操作系统引论3.实时系统与分时系统特征的比较(1)多路性。(2)独立性。(3)及时性。(4)交互性。(5)可靠性。第一章操作系统引论批处理、分时、实时系统是三种基本的操作系统类型。一个实际的操作系统可能兼有三者或其中两者的功能则被称为通用操作系统。第一章操作系统引论嵌入式操作系统什么是嵌入式系统?在各种设备、装置或系统中,完成特定功能的软硬件系统它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”通常工作在反应式或对处理时间有较严格要求环境中由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统第一章操作系统引论第一章操作系统引论嵌入式操作系统,是运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件在嵌入式系统中的OS,称为嵌入式操作系统第一章操作系统引论典型嵌入式操作系统的特性•完成某一项或有限项功能;不是通用型的•在性能和实时性方面有严格的限制•能源、成本和可靠性通常是影响设计的重要因素•占有资源少、易于连接•系统功能可针对需求进行裁剪、调整和生成以便满足最终产品的设计要求第一章操作系统引论嵌入式操作系统的应用智能卡移动通信计算机外设机顶盒零售设备印刷机复印机互联网服务器电话交换设备第一章操作系统引论操作系统的分类批处理操作系统(多道批处理)分时操作系统实时操作系统嵌入式操作系统个人计算机操作系统网络操作系统分布式操作系统第一章操作系统引论1.2.6微机操作系统的发展•单用户单任务操作系统•单用户多任务操作系统•多用户多任务操作系统第一章操作系统引论1.3操作系统的基本特性•并发(Concurrence)•共享(Sharing)•虚拟(Virtual)•异步性(Asynchronism)第一章操作系统引论并发(Concurrence)•并发:是指在内存中放多道作业,在一个时间段上来看,每一道作业都能不同程度地向前推进。但在任何一个时间点上只能有一道占用CPU。•与并发相关的两个概念:–串行:在内存中每次只能放一道作业,只有它完全执行完后别的作业才能进入内存执行。–并行:存在于有多个CPU的环境中,在内存中放多道作业,在任一时间点上都可能有多道作业在不同的CUP上同时执行。第一章操作系统引论1.3.2共享(Sharing)在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。由于资源属性的不同,进程对资源共享的方式也不同,目前主要有以下两种资源共享方式。1.互斥共享方式2.同时访问