




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统(OperatingSystem)教材:《现代操作系统》ModernOperatingSystems(SecondEdition)AndrewS.Tanenbaum1第一章绪论1.1什么是操作系统1.2操作系统历史1.3操作系统大观1.4计算机硬件回忆1.5操作系统概念1.6系统调用1.7操作系统结构1.8操作系统的研究2教学要求讲课+上机=94学时讲课:50个学时上机:44个学时成绩平时成绩(40%):平时练习+考勤考试成绩(60%):闭卷课程导论3课程建设目标逃脱应试教育,投奔素质教育清晰完整的体验OS的神奇深刻准确的把握IT的方向培养良好的案例学习方法僵化死板的记忆——没有前途照猫画虎的实践——成功之路课程导论4教学用书核心教材《现代操作系统》,机械工业出版社,Tanenbaum著参考书目《操作系统:设计与实现》,电子工业出版社,中译本《操作系统-内核与设计原理》,电子工业出版社,WilliamStallings著,英文原版《Windows操作系统原理》,机械工业出版社,陈向群著课程导论5其他教学用书 操作系统教程 王素华人民邮电出版社
计算机操作系统教程 张尧学史美林清华大学出版社
计算机操作系统教程 周长林左万历高等教育出版社
操作系统根底 屠立德屠祁清华大学出版社
操作系统教程 孟庆昌西安电子科大出版社
计算机操作系统 汤子瀛等西安电子科大出版社
操作系统原理DOS篇 张昆苍清华大学出版社
操作系统教程 孙钟秀主编高等教育出版社
操作系统原理技术与编程 蒋静徐志伟 机械工业出版社 OperatingSystemConcept AbrahanSilberschatz,etc
AppliedOperatingSystemConcept AbrahanSilberschatz,etc课程导论6IT体系知识的层次关系黄色为Level1的内容,绿色为Level2的内容,暗红色为Level3的内容7Windows2K/XP结构图课程导论8Minix系统结构图磁盘任务终端任务时钟任务系统任务以太网任务……内存管理器文件系统网络服务器……Init进程用户进程用户进程用户进程用户进程……第一层第二层第三层第四层I/O任务效劳器进程用户进程系统核心进程管理课程导论9OS原理讲授内容分布操作系统开展综述与硬件相关环境进程管理I/O设备的管理内存管理文件系统多媒体操作系统多处理机系统平安实例研究1:UNIX和Linux实例研究2:Windows2000课程导论10软件的根本概念课程导论11操作系统的作用计算机硬件设备如何使用?底层硬件控制用户输入处理结果课程导论12操作系统的作用课程导论OS硬件硬件抽象,屏蔽底层硬件差异应用集成,提供通用方法工具高级管理,维护环境稳定平安13操作系统的作用课程导论最专业的底层设计人员绝大多数从业人员14绪论计算机系统包括:硬件系统程序应用程序15绪论现代计算机系统由一个或多个处理器、假设干存储器、磁盘、打印机、键盘、网络接口以及其他输入/输出设备组成。总之,是一个复杂的系统。编写程序来掌握所有这些部件并且正确使用它们,即使不考虑优化问题,也是一件极其困难的任务。正因为此,计算机都装配了称为操作系统的一层软件,用于管理所有的设备以及提供给用户具有简易硬件接口的程序。16什么是操作系统?操作系统的定义操作系统〔OperatingSystem〕是管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件17什么是操作系统?作为扩展机器的操作系统操作系统的作用就是提供给用户的一个扩展的机器或者虚拟的机器等价物,这样就比根本的硬件要易于编程。对程序员隐匿硬件真相,并且提供一个简洁的可以读写的命名文件视图,毫无疑问,这种程序就是操作系统。操作系统给出的抽象都比根本的硬件要简单和易于使用。这种概念是一个自上而下的观点。18什么是操作系统?作为资源管理器的操作系统自底向上的观点那么认为,操作系统是管理复杂系统的所有局部的。操作系统的任务就是在多个竞争资源的程序之间,为处理器、存储器以及I/O设备提供有序的、受控的分配。简而言之,这种观点认为操作系统其主要任务就是记录下谁在使用哪个资源、批准资源请求、统计使用情况以及协调来自不同程序和用户的请求冲突。资源管理有两种方式:按时间和按空间。19什么是操作系统?作为用户与计算机硬件之间的接口改造硬件设施,屏蔽使用细节,方便用户使用提供原语或广义指令,扩展机器的指令系统合理组织计算机的工作流程,协调各个部件有效工作,为用户提供一个良好的运行环境20操作系统开展历程简介操作系统出现与开展的本质目的充分利用硬件,提供更好的效劳根本的硬件开展历程大型机时代——PC机时代——后PC时代操作系统的开展历史阶段共分为五个阶段课程导论21石器时代:奇迹和灾难并存时代环境:硬件昂贵、人工廉价大型机时代:1948-1970年主要特点:极其复杂,缺少人机交互控制台:一次允许一个用户使用批处理:装入程序——运行——打印输出数据通道与中断:I/O与计算重叠多道程序设计:存储保护技术的出现重大失败:OS与计算机软件设计的危机MULTICS系统:1963年开始研发,拖延至1969年发布IBMOS/360系统:发布时就带着的1000多个Bug课程导论22ENIAC计算机运算速度:5000次/每秒,18000个真空管,占地182平方米,重量130吨,功耗140kW2324ENIAC计算机25穿孔卡片26早期的批处理系统课程导论卡片早期批处理系统IBM1401IBM7094IBM1401输入磁带磁带机卡片阅读机输出磁带打印机27分时操作:充分利用硬件资源课程导论主机终端28大型机OS:恐怖的软件怪兽课程导论29工业时代:新纪元的开始时代环境:硬件廉价、人工昂贵提倡人机交互与效劳:1970-1985年主要特点:加强人机交互,保证系统性能分时交互概念:虚拟和分布的概念出现用户使用体验:提供更强大的用户操作能力系统性能危机:如何保证稳定的系统性能甜蜜岁月:Unix、Minux、Linux的起源Unix系统:贝尔实验室,游戏迷在DECPDP-7上的杰作KenThompson,DennisRitchie:1983图灵奖,1999美国国家技术金奖图灵奖是美国计算机协会〔ACM〕于1966年设立的,是计算机界最负盛名的奖项,有“计算机界诺贝尔奖〞之称。目前为止,获此殊荣的华人仅有一位,2000年图灵奖得主姚期智,课程导论30现代OS根底:玩出来的精彩课程导论31UNIX家族:比超女还火爆课程导论32摩登时代:IT产业的黄金岁月时代环境:硬件廉价、人工非常昂贵PC与个人计算时代:1981-现在主要特点:传统概念的重用与回归软件怪兽的恐怖记忆:OS是极为复杂的例程库Unix的美好时光:回归简单、专业的系统结构个人计算的必然需求:GUI界面、回归复杂的OS底层本质特点:最大限度满足每个人的要求科学开展的必然:树型知识体系的延伸个人PC的OS设计:强调友好操作、傻瓜式效劳分布与共享:网络应用引发C/S、B/S、网格计算革命广泛的领域应用:数据库、网络传输、智能信息处理课程导论33梦想时代:超越有限、飞向无限时代环境:移动计算、无线计算、嵌入式计算后PC时代:1995-现在主要特点:小型、移动、便捷、有限能力移动计算的新潮:PDA、智能、高性能笔记本电脑工业智能化的趋势:形形色色的嵌入式系统科技对世界的概念:超小型计算工具〔平安、国防…〕科技缔造文明:没有想不到,只有做不到智能化的生活环境:集顶盒、无线通信网络…更先进的生产工具:机器人技术的蓬勃开展更无限的开展空间:信息时代的终极魅力课程导论34DOS开展史DOS其前身是蒂姆·帕特森编写的SCP-DOS。当时的个人电脑开展非常迅速,逐渐成为广泛的消费市场。由于个人电脑尤其是苹果电脑的成功,电脑界的巨头IBM公司坐不住了。1980年,IBM决定开发自己的个人计算机系统,并命名为PersonalComputer。为了缩短开发周期,IBM决定找一家软件公司与之合作开发PC机的操作系统。这家幸运的小公司就是Microsoft公司,也就是现在的微软公司。微软公司以5万美元价格从买下了X86操作系统软件的使用权,再将其改写成为公司的磁盘操作系统软件(MSDOS〕。35DOS开展史这给了微软迅速开展的时机,微软公司对86-DOS进行了较大的改进,并改名为Microsoft-DOS。1981年,随着IBM的IBMPC机的正式发布,微软的MSDOS1.0也诞生了。当时的MSDOS远不如现在的强大,可用的命令也很少,甚至连目录的概念也不支持。但比照当时的个人操作系统,已经是非常先进的。36DOS开展史最重要的是,DOS从一开始就是全开放的系统,这为第三方厂商开发的应用程序提供了方便可靠的接口,又由于有IBM的强大后盾,吸引了越来越多的开发商投入到DOS应用程序的开发中来,而这以后的DOS获得了空前的开展,成为PC机的绝对主流操作系统。37DOS开展史在DOS发布之后的十几年中,微软公司不断推出DOS的新版本,到目前为止,MSDOS的最高版本是7.0。由于Windows操作系统的成功,微软今后将不再对DOS升级。38DOS开展史下面是各个DOS版本的主要功能:DOS1.0:以单面软盘为根底的第一个操作系统;DOS1.1:支持双面软盘并可实现错误定位,该系统可支持兼容机;DOS2.0:支持带硬盘的PC/XT机并从UNIX操作系统中吸收了许多功能;DOS2.11:改进了国际支持,对错误的定位更加准确;DOS3.0:支持以80286为CPU的PC/AT机,支持1.2M软盘及更大容量的硬盘;39DOS开展史DOS3.1:支持Microsoft网络,并扩展了错误检测功能;DOS2.25:增加了扩展的字符集并参加了新的错误检查;DOS3.3:是应用相当广泛的一个系统,增加了一些新命令,支持高密3英寸盘;DOS3.31:COMPAQ机器用,允许硬盘容量超过32M;DOS4.0:增加DOSSHELL,可管理大于32M的硬盘;40DOS开展史DOS5.0:支持2.88M软盘,增加了任务切换和全屏幕编辑器Editor,扩充了DOS的外部命令;DOS6.0:增加了磁盘压缩增容工具DoubleSpace,提供了防病毒程序。Config.sys具有多重配置块命令,提供了系统内存管理优化程序;DOS6.2:增加了拷贝文件的平安性;由于专利原因,DoubleSpace改名为DriveSpace,并增强了Edit全屏幕编辑的功能;41DOS开展史DOS6.21:增强了DriveSpace,完善了TSR管理等功能;DOS6.22:最后一个独立存在的MS-DOS版本,支持中文内码,加强了DriveSpace功能;DOS7.0:它不是单独存在的,它实际是Windows95/98的底层引导程序。微软为了推进Windows产品的开展,已经公开表示不再对DOS的版本进行升级,尽管Windows98下的DOS与Windows95下的DOS并不完全相同。42胚胎重演律(OntogenyRecapitulatesPhylogeny)胚胎重演律:一个胚胎重复着种系进化的过程。换句话说就是,受精后,人类的卵子在变成人类婴儿之前经历了鱼、猪等等之类的阶段。现代生物学家认为该论点过于简单化,不过其中仍旧包含着真理的内核。计算机工业领域也发生着类似的事情。每个新的种系(大型机、小型机、个人计算机、嵌入式计算机、智能卡等等)似乎都经历了其前辈的开展阶段。43操作系统大观大型机操作系统效劳器操作系统多处理机操作系统个人计算机操作系统实时操作系统嵌入式操作系统智能卡操作系统44大型机操作系统操作系统的高端是针对大型机的,这些房间大小般的计算机仍然可以在大型公司的数据中心找到。大型机也被用于高端的Web效劳器(大型电子商务站点的效劳器)以及b2b(business-to-business)事务的效劳器。大型机的操作系统主要面向同时处理许多作业,而这些作业绝大局部都需要海量的I/O。它们一般提供三种效劳:批处理、事务处理和分时。45效劳器操作系统它们运行与效劳器上,这些效劳器可能是大型的个人计算机、工作站,甚或是大型机。它们通过网络同时为多个用户效劳,并且允许用户共享硬件和软件资源。效劳器可以提供打印效劳、文件效劳或者Web效劳。Internet提供商运行许多效劳器以支持他们的客户,Web站点使用效劳器贮存网页以及处理呼入(incoming)请求。典型的效劳器操作系统有UNIX和Windows2000。Linux也在效劳器领域逐渐普及了。46多处理机操作系统在一个系统中连接多个CPU,这些系统称为并行计算机、多计算机系统或者多处理机系统,这取决于如何连接以及共享哪些设备。它们需要特殊的操作系统,不过通常都采用效劳器操作系统的变种,加上有关通信和连通性方面的特性。47个人计算机操作系统它们的任务就是为单个用户提供良好的界面。他们广泛用于字处理、电子表格和Internet访问。一般的例子有Windows9x/Me/2000/XP、Macintosh操作系统以及Linux。个人计算机操作系统是如此的众所周知,几乎无需再作介绍。事实上,许多人甚至不知道还有其他类型的操作系统。48实时操作系统这些系统的特征就是把时间作为一个关键参数。通常它们必须符合严格的时间界限。如果动作确定必须在确定的时刻(或者在一个确定的范围内)发生,如不满足将会引起灾难性的后果,这就是硬实时系统(hardreal-timesystem)。
另外一种实时系统是软实时系统(softreal-timesystem),在这种系统中,偶尔错过时间界限是可以接受的,只造成系统性能下降而不会带来严重恶果。数字音频或者多媒体系统就属于此列。VxWork和QNX是著名的实时操作系统。49嵌入式操作系统嵌入式系统运行于控制设备的计算机上,而这些计算机通常并不被认为是计算机,例如电视机、微波炉和移动。它们通常具有实时系统的特征,不过同时由于受到尺寸、内存以及能量限制而使得它们更为特殊。这种操作系统的例子有PalmOS和WindowsCE(ConsumerElectronics)。50嵌入式操作系统51嵌入式操作系统智能卡移动通信计算机外设机顶盒零售设备印刷机复印机互联网服务器电话交换设备52智能卡操作系统最小的操作系统运行于智能卡(SmartCard)上。智能卡是一种信用卡大小的、包含CPU芯片的设备。它们有着非常苛刻的处理能力和内存约束。很多智能卡只能处理单个功能,例如电子支付,不过其他的可以处理多个功能。通常这些系统都是专利系统。53计算机硬件回忆操作系统与运行它的计算机硬件是密切相关的。它扩展了计算机的指令集,并且管理着计算机的资源。为了能够工作,它必须知道有关硬件的大量信息,至少要知道硬件如何在程序中出现。从概念上说,一台简单的个人计算机可以抽象成如下模型:CPU、内存和I/O设备都联结在系统总线上,并且通过它进行通信。54计算机硬件回忆简单的个人计算机的组成局部55CPU最重要的硬件就是CPU计算机的“大脑〞就是CPU。它从内存中读取指令,并且执行它们。程序计数器(programcounter)堆栈指针(stackpointer):堆栈指针总是指向栈顶元素的下一个位置。所以数据入栈的时候,先压栈,栈顶指针再增加一。出栈的时候栈顶指针先减去一,在弹出数据PSW(ProgramStatusWord,程序状态字):程序状态字包含状态位,反响CPU的当前状态管线(pipeline):流水线,为了执行指令而归纳出的“下一步需要做的事情〞。每一个指令的执行都必须经过相同的步骤,最根底的CPU管线可以被分为5级:1、取指令2、译解指令3、演算出操作数4、执行指令5、存储到高速缓存超标量(superscalar):超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间系统调用(systemcall)56计算机硬件回忆(a)三级流水线(b)超标量计算机体系结构CPU57存储器第二个主要的组件是存储器存储器应该异常迅捷(比执行一条指令还快,这样CPU就不会因为存储器而阻碍)、容量巨大而且非常廉价。现在还没有技术可以满足所有这些要求,因此只能采取其他的方法。存储器系统是一个层次结构。58计算机硬件回忆存储器典型的存储器层次。图中数字只是近似的估计59计算机硬件回忆磁盘驱动器的结构60计算机硬件回忆(a)一个基址-界限对(b)两个基址-界限对61I/O设备I/O设备I/O设备与操作系统的相互作用非常频繁。I/O设备一般有两个局部组成:控制器和设备自身。每种类型的控制器需要不同的软件来控制。实现输入和输出有三种不同的方式:忙等待(busywaiting)中断(interrupt)DMA(DirectMemoryAccess,直接存储器存取)62什么是中断?是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件效劳的程序中去,效劳完毕,再返回去执行暂时中断的程序。中断分硬件中断和软件中断两种。中断为计算机的硬件设备和软件"部件"提供了一种相互交流的途径,这就是它的作用。63什么是DMA?DMA〔DirectMemoryAccess〕,即直接存储器存取,是一种快速传送数据的机制。数据传递可以从I/O设备到内存,从内存到I/O设备或从一段内存到另一段内存。利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。64计算机硬件回忆(a)启动I/O设备和获得中断的步骤(b)CPU的中断方式65总线大型Pentium系统的结构66总线该系统有八条总线(cache、局部、内存、PCI、SCSI、USB、IDE和ISA),每一条的传输速率和功能都不一样。操作系统必须知晓所有这些总线,以便于配置和管理。两条主要的总线是原始的IBMPCISA(IndustryStandardArchitecture,工业标准结构)总线和它的后继PCI(PeripheralComponentInterconnect,外设部件互连)总线。67几个概念PCI桥那么用于对PCI总线进行扩展,使多个PCI总线形成多层次结构,以减轻单个PCI总线的负载。IDE总线:连接磁盘、CD-ROM一类的的外围设备和系统相连接。USB:连接慢速I/O设备,例如鼠标、键盘,速度为1.5MB/s。所有的USB设备共享一个USB设备驱动程序,不需为新的USB设备安装新设备驱动程序SCSI:连接需要较大带宽的设备,例如高速硬盘、扫描仪,最高可达160MB/sIEEE1394:苹果公司提出,适合数码相机等多媒体设备连接计算机68操作系统概念进程Processes死锁Deadlocks内存管理MemoryManagement输入/输出Input/Output文件Files平安Security外壳TheShell概念的循环使用RecyclingofConcepts69进程进程根本上就是正在执行的程序。进程的定义:程序在并发环境中的执行过程。70进程进程和程序是两个完全不同的概念,它们之间的主要区别是:程序是静态概念;进程是程序的一次执行过程,是动态概念。进程是一个能独立运行的单位,它作为资源申请和调度单位存在;程序是不能作为一个独立运行的单位而并发执行的。程序和进程无一一对应关系各个进程在并发执行过程中会产生相互制约的关系71进程每个进程都有其地址空间(addressspace),从某个最小值(一般为0)到某个最大值的内存位置列表,这是进程可以读写的范围。该地址空间包括可执行程序、程序数据以及它的堆栈。同样,每个进程还有许多存放器,包括程序计数器、堆栈指针和其他硬件存放器,以及运行该程序的所有其他信息。72进程进程树进程A创立了两个子进程,B和C。进程B创立了三个子进程,D,E和F。73死锁两个或多个进程相互影响时,有时候会使得它们自己陷入无法自拔的僵局。这种情形称为死锁(deadlock)。74死锁死锁(a)潜在的死锁(b)实际的死锁75存储管理每台计算机都有一些主存,用于容纳执行程序。在非常简单的操作系统中,一个时刻只有一个程序在内存中。要运行第二个程序,必须将第一个移去,把第二个放入内存。76存储管理更高级的操作系统允许多个程序同时在内存中。为了阻止它们相互阻碍,需要某些保护机制。尽管这些机制必须放在硬件中,但是都是由操作系统来控制。另一个不同但同样重要的、与内存相关的问题就是进程的地址空间的管理。通常,每个进程都有某些地址可以使用,一般从0到某个最大值。77输入/输出所有的计算机都由物理设备来获取输入,并产生输出。毕竟,用户不能告诉计算机做什么,也不能得到要求它工作所产生的结果。输入和输出设备有很多,包括键盘、显示器、打印机等等。管理这些设备都取决于操作系统。因此,每个操作系统都有一个I/O子系统来管理I/O设备。某些I/O软件是设备无关的,也就是说,可以同样地应用于许多或者所有的I/O设备。而其他的那么是针对特定的I/O设备,例如设备驱动程序。78文件所有实际操作系统都支持的另一个重要概念就是文件系统。正如前面所提到的,操作系统的一个主要功能就是隐藏磁盘和其他I/O设备的特性,给程序员提供一个合意的、干净的、关于设备无关文件的抽象模型。显然,需要系统调用来创立文件、删除文件、读文件和写文件。在读文件之前,必须先定位和翻开文件,而读完之后,应该关闭它,因此需要提供调用来完成这些事情。79文件系统文件系统大学中一个系的文件系统80文件系统(a)装配前软盘上的文件是不可访问的(b)将软盘装配到b上软盘上的文件成为文件层次中的一局部81操作系统概念两个进程通过管道连接82平安计算机包含大量的、用户通常希望保密的信息。这些信息可能包括电子邮件、商业方案、回复等等。这都要由操作系统来管理系统平安,这样,文件只能由授权用户访问(方法之一)。除了文件保护之外,还有许多其他的平安问题。保护系统不受到人类或者非人类的(比方病毒)的有害入侵就是其中之一。83外壳UNIX的命令解释器,也称为外壳(shell)。尽管它不是操作系统的一局部,但是它利用了大量操作系统的特性,因而也很好的说明了系统调用是如何使用的。同时,它还是终端用户和操作系统之间的主要接口,除非用户使用图形用户界面。外壳程序有很多,包括sh,csh,ksh和bash。84WindowsShellWindowsShell为Windows用户界面提供根本框架,用户最常体验到的WindowsShell形式是Windows桌面。除了桌面之外,WindowsShell还提供了许多其他功能,使计算体验中的外观和感受始终保持一致。WindowsShell可用于以下用途:通过Windows资源管理器查找文件和文件夹;通过“开始〞菜单中的快捷方式提供启动应用程序的一致方式;通过桌面主题及颜色提供一致的界面。85概念的循环使用计算机科学和许多领域一样,都是极大地受到技术的驱动。正如古罗马人没有汽车并不是因为他们喜欢走路,而是因为他们不知道怎么制造汽车。个人计算机的存在也不是因为人们长时间地渴望拥有自己的电脑,而是因为可以生产廉价的电脑。技术上的改变可能恢复某些所谓的“废弃的概念〞。技术并不是推动系统和软件进步的唯一因素。经济也同样扮演着主要角色。86系统调用操作系统和用户程序之间的接口是由一组操作系统提供的系统调用来定义的。这些接口中的系统调用因操作系统不同而不同(尽管其根本概念上是类似的)。87系统调用系统调用是操作系统提供给编程人员的唯一接口。编程人员通过系统调用使用操作系统内核所提供的各种功能。系统调用的执行不同于一般用户程序的执行。系统调用执行是在核心态下执行系统于程序,而用户程序那么是在用户态下执行。一般来说,操作系统提供的系统调用越多,功能也就越丰富,系统也就越复杂。88系统调用OS核心中都有一组实现系统功能的过程〔子程序〕,系统调用就是对上述过程的调用。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。WindowsAPI(ApplicationProgrammingInterface)提供了功能众多的函数,可让程序员深入控制Windows操作系统的绝大局部内容。Windows有一个软件开发包〔SDK,softwaredevelopmentkit〕提供相应的文档和工具89系统调用为了更清楚地了解系统调用的机制,下面简要地介绍read系统调用。它有三个参数:第一个指定文件,第二个指向缓冲区,第三个给出读的字节数。与几乎所有系统调用一样,也是通过调用库函数从C语言来调用的,使用和系统调用同样的名称:read。C语言的调用就像这样:count=read(fd,buffer,nbytes);系统调用(和例程调用)将实际读的字节数返回给count。它的值一般和nbytes相同,不过也可能小一些,例如读的时候正好碰到文件结束。90系统调用系统调用的步骤系统调用read(fd,buffer,nbytes)的11个步骤91陷阱在系统中为控制系统调用效劳的机构称为陷阱〔trap〕处理机构.与之相应,把由于系统调用引起处理机中断的指令称为陷阱指令〔或称访管指令〕。92系统调用的主要类型设备管理:该类系统调用被用来请求和释放有关设备、以及启动设备操作等。文件管理:包括对文件的读、写、创立和删除等。进程控制:进程是一个在功能上独立的程序的一次执行过程。进程控制的有关系统调用包括进程创立、进程执行、进程撤消、执行等待和执行优先级控制等。93系统调用的主要类型进程通信:该类系统调用被用在进程之间传递消息或信号。存储管理:包括调查作业占据内存区的大小、获取作业占据内存区的始址等。线程管理:包括线程的创立、调度、执行、撤销等。94POSIX进程管理的系统调用终止进程运行并返回状态exit(status)替换一个进程的核心映射s=execve(name,argv,environp)等待一个子进程睐终止pid=waitpid(pid,&statloc,options)在同一双亲下创建一个子进程pid=fork()描述调用POSIX是PortableOperatingSystemInterfaceofUnix的缩写。在源代码级别上定义了一组最小的Unix(类Unix)操作系统接口95文件系统的系统调用移动文件指针position=lseek(fd,offset,whence)获取文件的状态信息s=stat(name,&buf)从缓冲区将数据写到文件n=write(fd,buffer,nbytes)从文件读取数据到缓冲区n=read(fd,buffer,nbytes)关闭一个打开的文件s=close(fd)打开文件以读、写或读写fd=open(file,how,…)描述调用96目录管理的系统调用装配文件系统s=mount(special,name,flag)卸载文件系统s=umount(special)删除目录入口s=unlink(name)创建新入口name2指向name1s=link(name1,name2)删除空目录s=rmdir(name)创建新目录s=mkdir(name,mode)描述调用97其他任务的系统调用向进程发送信号s=kill(pid,signal)从1970年1月1日起的秒数seconds=time(&seconds)改变文件保护位s=chmod(name,mode)改变工作目录s=chdir(name)描述调用98进程管理的系统调用简单的外壳程序:while(TRUE){ //无限循环type_prompt(); //显示提示read_command(command,parameters) //从终端输入
if(fork()!=0){ //关闭子进程 //父进程代码 waitpid(-1,&status,0); //等待子进程退出 }else{ //子进程代码 execve(command,parameters,0); //执行命令 }}99进程管理的系统调用接着看如下的一条命令:cpfile1file2上面的命令用于将file1复制到file2。在外壳程序派生后,子进程定位并执行文件cp,而且将源文件名和目标文件名传递给它。cp的主程序(以及大多数其他C语言的主程序)都包含如下的声明:main(argc,argv,envp)其中argc是指命令行中有多少个条目,包括程序名在内。如上面的命令,argc为3。第二个参数argv是一个数组的指针。元素i是指命令行中第i个字符串。在上面的例子中,argv[0]指向字符串“cp〞,argv[1]指向字符串“file1〞,而argv[2]指向字符串“file2〞。main的第三个参数envp是指向环境的指针,包含形如name=value格式的赋值字符串数组,用于诸如终端类型以及程序的原目录名之类的信息。在图1‑19中,没有环境传递给子进程,因此execve的第三个参数为0。100进程管理的系统调用UNIX中进程的内存被分为三段:文本段(textsegment)(即程序代码),数据段(datasegment)(即变量)以及堆栈段(stacksegment)。其中数据段向上增长,而堆栈段向下增长,如图1‑20所示。堆栈段〔stacksegment〕通常是指采用堆栈方式工作的一段内存区域。在采用段式内存管理方式进行程序内存分配的架构中,堆栈段用来存放局部变量和函数返回地址。堆栈段是在程序运行时动态分配使用,只需要通过栈顶指针即可访问。目前大多数CPU中都有专用存放器可以被用来存放栈顶地址。它们之间为未使用的地址空间间隔。如果需要的话,堆栈自动向间隔增长;而数据段的扩展要通过系统调用brk来显式地实现。brk用于指定数据段结束的新地址。101进程管理的系统调用进程有三个段:正文、数据和堆栈102文件管理的系统调用读或写一个文件,首先要用open翻开该文件。该文件指定要翻开的文件名(绝对路径名或相对路径名都可以),以及使用O_RDONLY,O_WRONLY和RDWR代码表示翻开读、写或者读写。要创立新文件,使用O_CREAT。返回的文件描述符可以用于随后的读或写操作。然后,通过close可以关闭文件。而文件描述符还可以再次用于open操作。103目录管理的系统调用有两个用户,ast和jim,每个人都有其自己的目录,内有一些文件。现在,如果ast执行一个程序包含下面的系统调用:link(“/usr/jim/memo〞,“/usr/ast/note〞);jim目录下的文件memo现在就进入ast的目录中了,并且名字为note。此后,/usr/jim/memo和/usr/ast/note就是指同一个文件。104目录管理的系统调用link(“/usr/jim/memo〞,“/usr/ast/note〞);(a)两个目录链接之前。(b)链接后的目录105目录管理的系统调用mount系统调用可以把两个文件系统合并为一个。一般情形是将公用命令的二进制(可执行)版本和其他经常使用的文件包含在硬盘的根文件系统中。然后用户可以在软盘驱动器中插入软盘进行读操作。执行mount系统调用,软盘文件可以连接到根文件系统上,如图1‑22所示。典型的执行mount的C语句如下:mount(“/dev/fd0〞,“/mnt〞,0);其中第一个参数是驱动器0的块特殊文件名,第二个参数是装配在树中的位置,而第三个参数告知装配上的文件系统是可以读写还是只读的。注:/dev/fd0表示软驱106目录管理的系统调用mount(“/dev/fd0〞,“/mnt〞,0);(a)文件系统装配之前(b)文件系统装配之后107其他系统调用chdir改变当前的工作目录,执行如下调用之后:chdir(“/usr/ast/test〞);翻开文件xyz,就会翻开/usr/ast/test/xyz文件。工作目录的概念可以始终省略键入(长的)绝对路径名。108其他系统调用在UNIX中每个文件都有一个模式用于保护。该模式对拥有者、同组成员和其他人都有读-写-执行位。chmod系统调用可以改变一个文件的模式。例如,执行以下调用可以使文件对除了拥有者之外的所有人都只读:chmod(“file〞,0644);109系统调用一些Win32API调用获取当前时间GetLocalTimetimeWin32不支持信号(none)killWin32不支持安全性(尽管NT可以)(none)chmod改变当前工作目录SetCurrentDirectorychdirWin32不支持装配(none)umountWin32不支持装配(none)mount删除已有文件DeleteFileunlinkWin32不支持链接(none)link删除空目录RemoveDirectoryrmdir创建新目录CreateDirectorymkdir获取文件属性GetFileAttributesExstat移动文件指针SetFilePointerlseek写数据到文件中WriteFilewrite从文件中读取数据ReadFileread关闭文件CloseHandleclose创建文件或打开已有文件CreateFileopen中止运行ExitProcessexitCreateProcess=fork+execve(none)execve等待进程退出WaitForSingleObjectwaitpid创建新进程CreatePrrocessfork描述Win32UNIX110WindowsAPI分类〔一〕根底效劳(BaseServices):提供对Windows系统可用的根底资源的存取接口。比方象:档案系统〔filesystem〕、外部装置〔device〕、,进程〔process〕、线程〔thread〕以及存取登录〔Windowsregistry〕和错误处理机制〔errorhandling〕。这些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系统档案中;以及32位Windows下的kernel32.dll和advapi32.dll中。图形装置接口〔GDI〕,提供功能为:输出图形内容到显示器、打印机以及其它外部输出装置。位于gdi32.dll。111WindowsAPI分类〔二〕图形化使用者接口〔GUI〕:提供的功能有创立和管理屏幕和大多数根本控件〔control〕,比方按钮和卷轴。接收鼠标和键盘输入,以及其它与GUI有关的功能。这些调用界面位于user32.dll。从WindowsXP版本之后,根本控件和通用对话框控件〔CommonControlLibrary〕的调用接口放在comctl32.dll中。通用对话框库〔CommonDialogBoxLibrary〕:为应用程序提供标准对话框,比方开启/保存档案对话框、颜色对画框和字型对话框等等。该库位于comdlg32.dll中。112WindowsAPI分类〔三〕通用控件库〔CommonControlLibrary〕:为应用程序提供接口来存取操作系统提供的一些高阶控件。比方像:状态列〔statusbar〕、进度条〔progressbars〕、工具列〔toolbar〕和标签〔tab〕。该库位于comctl32.dll中Windows外壳〔WindowsShell〕:作为WindowsAPI的组成局部,不仅允许应用程序存取操作系统shell提供的功能,还对之有所改进和增强。它位于shell32.dll中。网络效劳〔NetworkServices〕,为存取操作系统提供的多种网络功能提供接口。它包括NetBIOS、Winsock、NetDDE及RPC等。113单体系统目前为止,最常用的组织形式就是单体结构〔整体式系统〕,该方法可以加上副标题“大杂烩〞。这种结构其实就是没有结构。这种操作系统就是一堆例程的集合,每个例程都可以随意地调用其他的例程。整体式系统一个用于激活被请求的效劳例程的主程序一组用于执行系统调用的效劳例程一组支持效劳例程的实用例程114单体系统整体式系统的简单结构模型115分层系统层次式系统THE操作系统结构处理器分配和多道程序0内存和磁盘管理1操作员-进程通信2输入/输出管理3用户程序4操作员5116分层系统第0层涉及处理器分配,当中断发生或者计时器中止时切换进程,提供了根本的CPU多道程序功能。第1层是用于存储器管理的。第2层处理每个进程与操作员控制台之间的通信。第3层管理I/O设备以及缓冲进出设备的信息流。在第3层上,进程只于具有良好属性的抽象I/O设备打交道,而不用管实际设备的物理特性。第4层为用户程序。它们不用担忧进程、存储器、控制或者I/O管理。系统操作员进程在第5层。117虚拟机虚拟机监控程序(virtualmachinemonitor)运行于裸机上,具有多道程序功能,为上一层提供了多个虚拟机,如图1‑26所示。不过,与其它操作系统不同,虚拟机不是具有文件和其他良好特性的扩展机器。相反,虚拟机就是裸机的精确拷贝,包括内核/用户态、I/O、中断和其他所有真正计算机有的东西。由于每个虚拟机与裸机是相同的,所以每个虚拟机都可以直接在裸机上运行任何可以在该裸机上运行的操作系统。不同的虚拟机可以而且也经常运行不同的操作系统。118虚拟机虚拟机带CMS的VM/370的结构119虚拟机虚拟机的思想现在常用于另外一种环境:在Pentium(或者其他32位IntelCPU)上运行老的MS-DOS。在设计Pentium及其软件时,Intel和Microsoft都意识到会有大量老的软件运行于新的硬件上。有鉴于此,Intel在Pentium上提供了虚拟8086模式。在该模式中,机器像8086(从软件角度和8088相同)一样动作,包括1MB限制的16位寻址。120虚拟机虚拟机还用于另一个领域,不过方式略有不同,那就是用于运行Java程序。SunMicro-system创造Java时,同时也创造了一个虚拟机,称为JVM(JavaVirtualMachine,Java虚拟机)。Java编译程序为JVM产生代码,然后,一般由软件JVM解释程序来执行。该方法的好处是:JVM代码可以通过Internet传输到任何装有JVM解释程序的计算机上运行。121外核在最底层的程序称为外核(exokernel),运行于核心态。它的任务就是给虚拟机分配资源,然后确保没有哪个虚拟机试图使用其他虚拟机的资源。每个用户级的虚拟机可以运行其自己的操作系统,就像在VM/370和Pentium的虚拟8086上一样,只不过每个虚拟机都被限制在只能使用它申请并获分配的资源上。122客户机-效劳器模型现代操作系统的一个开展趋势就是采用如下的思想:进一步将代码移到更高层次上,尽可能多地从核心态删除东西,只留下一个最小的微核(microkernel)。通常的方法是由用户进程实现操作系统的大局部功能。为了获得一个效劳,比方读文件块,用户进程(现在称为客户机进程(clientsprocess))将请求发送给效劳器进程(serverprocess),然后效劳器进程完成工作,并且把结果发送回去。123客户机-效劳器模型客户机-效劳器模型124客户机-效劳器模型在如图1‑27的模型中,内核所做的全部工作就是处理客户机和效劳器之间的通信。通过把操作系统分成多个局部,每个局部仅处理系统的一个方面,例如文件效劳、进程效劳、终端效劳或者存储器效劳,这样每个局部变得更小,更易于管理。而且,由于所有效劳器都以用户进程的方式运行,而不是运行于核心态,它们不用直接访问硬件。这样,如果文件效劳器有bug,文件效劳器可能崩溃,但是这通常不会导致整个机器死机。125客户机-效劳器模型客户机-效劳器模型的另一个优点是,它适用于分布式系统(参见图1‑28)。如果客户机通过发送消息与效劳器通信,客户机无需知道该消息是由本地机处理,或者是通过网络发送给远程机器进行处理。对客户机而言,两种情况是一样的:发送一个请求,回来一个应答。126客户机-效劳器模型分布式系统的客户机-效劳器模型127操作系统的研究计算机科学是一个飞速开展的领域,而且难于预测它将走向何处。ACM ://IEEEComputerSociety ://USENIX ://128操作系统的研究哈佛大学的VINO,使应用得以重用内核构件犹他州大学的OSKit,提供构造操作系统所需的根底构件,也提供高层次构件。OSKit可用来构造新的OSMITExokernel,该系统只有一个极小的核。系统抽象通过LibraryOperatingSystem完成NASA空间飞行中心(GSFC)研制Beowulf工程开始于1994年,用商业化的微型计算机,Linux和以太网等构造集群。已有世界各地的约六十个大学和研究机构在使用加州大学伯克利分校NOW集群操作系统,100台UltraSPARC-I处理机集群,排名于世界最快的200台超级计算机之内129操作系统的研究加州大学伯克利分校Millennium工程目的是在校园范围完成内一个“机群的机群(ClusterofClusters)〞。在这个工程中,层次化的机群Millennium由五层构成,第一层,计算机工作站分布在十七个校园区内;第二层,多处理机效劳器,提供各有关部门的计算效劳;第三层,NOW组,每一个NOW都一个机群;第四层,一个非常大规模的NOW,供全校园共享;第五层,整体计算层,它在NOW组上构造,用于提供NOW组和校园NOW的共享。130操作系统的研究在Millennium工程根底上,又提出了一个Vineyard工程:一个面向未来的研究工程。作为Millennium的后续工程,它的目标超越了一个伯克利分校校园范围内的机群,它要通过高速网络连接其他工作站机群,从而构成了一个协同工作站机群联合体。131操作系统的研究有线电视机顶盒领域,PowerTV移动通信领域,EPOC掌上计算机领域,PalmOS数码影像领域,Digita132操作系统的研究60年代末至70年代初杨芙清院士主持,我国第一台百万次集成电路计算机(150)操作系统支持多道程序运行,在石油勘探领域成功应用70年代中后期杨芙清院士主持,我国第一个全部用高级语言书写的DJS240机操作系统DJS200/XT2,层次管程结构模型,PCM设计方法,活泼管程结构模式133操作系统的研究GX73多机实时操作系统(1978年)国防科技大学,1980年装在“远望〞-I号航天测量船上,“银河〞-1YHOS巨型操作系统(1983年)国防科技大学,用于YH-1、YH-2超级计算机,用于我国的石油勘探、天气预报和核物理研究COSIXv1.X/2.0国产UNIX类操作系统嵌入式操作系统Hopen〔女娲方案〕Linux类操作系统134操作系统的研究国产效劳器操作系统“麒麟〞〔Kyli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车覆盖件模具合作协议书
- 高中物理实验教学设计与创新案例
- 小学语文教学公开课课件制作
- 零售店面库存管理及盘点方案
- 冻干工艺操作标准及技术培训教材
- 三年级英语课标及教学重点分析
- 安全电压测试题及答案解析
- 安全生产法线上答题题库及答案解析
- 考研英语真题解析及答题技巧分享
- t3出行岗前考试及答案解析
- 食品抽检不合格行政复议申请书合集3篇
- (2024版)小学六年级数学考试命题趋势分析
- 2024年海南省成考(专升本)大学政治考试真题含解析
- 米其林餐厅服务流程
- 油浸式变压器电抗器检修检查与处理规范
- 英语FCE语用词汇-必备词缀
- 写字楼物业服务投标方案
- 蒋廷黻中国近代史
- 组团儿上春晚《八戒返乡》小品台词
- 河津市兴耿福利煤化有限公司煤焦油项目环境影响报告书
- 湖北省荆州市《公共基础知识》国考招聘考试真题含答案
评论
0/150
提交评论