您好,欢迎访问三七文档
PART1基础知识第一章什么是操作系统1什么是操作系统在计算机发展史上,操作系统出现的比较晚,比高级语言出现的还要晚。在上世纪六七十年代前,计算机用户主要是专业人员,包括程序员,他们写的每个程序都要直接参与机器硬件资源的管理,比如CPU的分配,内存的分配,文件的存取,打印机的管理等等。这些工作是非常困难和繁琐的。后来他们发现,尽管他们写的程序功能用途各不相同,但其中对机器硬件资源管理这部分程序却是大同小异的,为什么不能把这部分抽象(通用化)出来,做成一个可重复使用的单独的程序?这样,程序员就不要重复的写机器硬件资源管理程序了,只需重复使用这个单独的程序即可。这个单独的程序就叫操作系统,它代替程序员和用户管理计算机硬件资源。换句话说,操作系统是管理计算机硬件资源的程序,是计算机系统最基础的软件。有了操作系统,使计算机软硬件体系结构得到合理分层,操作系统将用户和应用程序与硬件隔离开,不仅省缺了用户和应用程序直接管理硬件的负担,而且由操作系统对硬件进行“专业化”管理,有专门的公司或组织负责操作系统的开发,有利于使硬件性能得到更充分的发挥。下图是现代计算机软硬件体系结构的大致分层应用程序中间件(90年代后出现)及基础软件操作系统计算机硬件【课后调研与思考:】你知道的操作系统有哪些?中间件和基础软件有哪些?这些软件国内处于什么研发水平,有哪些典型产品?操作系统的出现使硬件工程师和软件工程师的工作范围更加明确,对软件工程师成为单独的职业起到一定推动作用。近年来,在操作系统和应用程序之间,又划分出一层“中间件(middleware),使软件的分层更加细致,相应的,软件工程师可以明确划分为系统软件工程师和应用软件工程师。【课后调研与思考:】你知道那些种类的系统软件和应用软件?系统软件工程师和应用软件工程师有什么主要区别?分层是计算机软硬件体系结构设计的常用方法,比如树形数据结构、面向对象的继承关系、软件模块划分、网络七层结构以及操作系统等等。分层是软件工程的核心思想之一。从经济学的观点,分层体现了社会分工。分层观点不仅对软件,对其它科学和工程研发,乃至日常生活也适用,科学技术的基本思想并不神秘,它与经济学及日常生活的常识有密切的联系,想一想我们还能不能举出其它分层的例子?2操作系统的主要功能及特点前面讨论了操作系统的概念:操作系统是管理计算机硬件的程序,同时它也为用户提供简单易用的操作接口。现有的操作系统五花八门,很难对其应该具有的功能进行精确界定,一般认为,一个操作系统应该具有以下功能:2.1操作系统内核首先是操作系统的内核部分,内核部分是用户看不到的,甚至因为安全的原因,很多操作系统不允许程序员直接访问操作系统内核,只能间接访问。操作系统的内核一般包括进程管理、存储管理、文件管理、I/O设备管理四大部分。(1)进程管理:主要负责管理程序的运行。其基本问题主要是:进程的创建和撤销、进程的状态管理。程序并发执行及CPU调度(在一个CPU上“同时”运行多个程序,或在多个CPU上“同时”运行更多的程序)。进程并发执行时,同步、互斥、死锁等问题的处理。【注:】进程,是一个运行的程序。(2)存储管理:其基本问题主要是:为进程分配内存,用尽量少的内存容纳更多的进程。当物理内存不够时,如何使用虚拟内存。(3)文件管理:其基本问题主要是文件存储空间(硬盘等)的分配、文件目录管理、文件读写管理等。(4)I/O设备管理:其基本问题主要是I/O缓冲、设备分配、物理设备与逻辑设备的映射等等。上述操作系统的四大部分,是本课后面要讲解的主要内容。2.2操作系统外壳其次是操作系统的外壳部分,外壳提供操作系统与使用者的接口。对于普通的用户,一般提供图形用户界面或字符操作界面,对于开发人员,一般提供API函数库或系统调用库,开发人员可以用C语言或其它语言调用这些库,呼叫操作系统底层的功能。2.3其它功能现代操作系统往往还提供网络功能和安全功能,有的操作系统将这些功能做在内核里,有的做在外壳。还有的操作系统提供一些应用程序,比如Windows光盘包含写字版、计算器、画图、屏保、IE浏览器等很多程序,这些程序即不属于操作系统内核,也不属于操作系统外壳,只是一些附送的应用程序而已。2.4操作系统的基本特性一个操作系统除了(大致上)应具备上述功能外,还应该体现出以下特性:2.4.1并发性(concurrency)所谓程序并发是指在计算机系统中同时存在有多个程序,宏观上看来,这些程序是同时向前推进的。程序的并发性具体体现在如下两个方面:(1)用户程序与用户程序之间并发执行;(2)用户程序与操作系统程序之间并发执行.这里我们需要区别两个相关但不完全相同的概念:即程序并发与程序并行。程序并行要求微观上的同时,即在绝对的同一时刻有多个程序同时向前推进,要实现N个程序并行必需要有N个处理机;而程序并发并不要求微观上的同时,只需要在宏观上看来多个程序都在向前推进,所以在单处理机环境中也可实现程序并发,此时这些并发执行的程序是按照某种次序交替地获得处理机并运行的,由于处理机的速度很快,因而宏观上看来,这些程序都在向前走,仿佛每个程序都拥有一台属于自己的处理机,即所谓的虚处理机。在算法研究范畴通常使用并行这个术语,而在实际工程上通常使用并发这个术语。但是,有些操作系统是不支持并发的,比如微软早期的DOS操作系统,和现在一些嵌入式操作系统。2.4.2资源共享性(resourcesharing)所谓资源共享是指操作系统程序与多个用户程序共用系统中的各种资源,这些资源包括处理机、内存、外存、设备等。2.4.3虚拟性将一个设备(比如CPU)虚拟成多个设备,或将物理设备虚拟成逻辑设备然后映射到另一个物理设备(比如将打印机虚拟成逻辑打印机然后映射到硬盘)。虚拟是计算机软件常用的技术,比如JAVA虚拟机、游戏虚拟机、光盘虚拟等等。2.4.4异步性异步要求是程序并发带来的附加要求,并发的异步程序简单可靠且效率高。什么是同步程序?当AB两个相关联的程序并发运行时,它们之间可能存在同步要求,比如A运行到某处停止,给B发信号,A必需要等到B的回送信号才能继续运行。并发程序的同步运行非常难以控制,可靠性低,而且影响并发效率。操作系统的异步性是指要尽量避免或消除程序之间的同步要求。除了操作系统外,很多应用程序也是异步的,比如电子邮件和网络聊天程序,这些程序是并发的,同时又是异步的。3操作系统的主要种类既然操作系统是管理计算机硬件的程序,那么硬件体系结构的不同肯定对操作系统的设计有影响。的确,现在计算机的硬件体系结构有很多种,其中大部分我们都没见过;相应的,操作系统也有很多种,其中大部分我们也没听说过。下面分类简要说明一下:3.1MainframeSystems主机系统我们很少有机会看到这种系统,但我们一定听说过我国的银河机系列,它们是大型机,是主机系统的一种。在银行、航空等大型企业,也有很多主机系统。主机系统有很高的配置(许多的CPU、内存、外存),有很强的并行能力。用户通过终端机登录主机系统,传统上终端机只有显示器和键盘而没有CPU和内存,终端机使用主机的CPU和内存(这与计算机网络中的PC是不同的),一台主机可同时为多个终端用户服务。现在的一些个人操作系统,比如Windows操作系统也含有主机系统的影子,Windows有终端仿真程序telnet,可使PC机仿真成终端机登录主机系统。终端机和网络PC的区别是:终端机运行的程序是在主机上(使用主机的内存和CPU),而网络PC则是在本机上。绝大多数主机系统运行的是UNIX操作系统(UNIX有数不清的变种和版本适应各种各样的主机系统),主机系统有以下几种工作模式:SimpleBatchSystem(简单批处理系统):将作业(job,一个job含有一至多个进程或程序)提交给主机,主机依次执行每个作业,但同时只能执行一个作业。MultiprogrammedBatchSystems(多道批处理系统)::将作业(job,一个job含有一至多个进程或程序)提交给主机,主机可以同时执行多个作业,大大提高了CPU的利用率。在OS发展史上,多道批处理OS占有重要地位,现代OS的很多概念和设计思想是从那时建立起来的。Time-SharingSystems(分时系统)–InteractiveComputing前面的两种批处理系统缺乏与用户的交互,比如用户在终端上输入一个命令,主机不能及时响应。解决的办法是采用Time-Sharing,假如多个终端用户同时登录主机,那主机CPU用很段的时间片,轮流为各个终端服务,每个终端用户感觉是他自已在独占主机。Time-SharingSystems对操作系统的发展也起过重要作用。3.2DesktopSystems桌面系统以Windows为代表的桌面操作系统,是上世纪70年代后,随着个人电脑的普及而兴起的。3.3MultiprocessorSystems多处理机系统(ParallelSystems)以往只有主机系统有多处理机,现在个人电脑也有多处理机(比如Intel双核CPU)。多处理机操作系统不在本课范围内,属于研究生某些专业方向的课程。3.4DistributedSystems分布式系统分布式系统是随着网络的普及而兴起的。很少有专门的“分布式操作系统”,它一般是作为其他操作系统的一部分。分布式操作系统不在本课范围内,属于研究生某些专业方向的课程。问题:分布式系统和网络系统有何联系和区别?答:网络系统是基础设施,分布式系统是网络系统之上的应用。3.5ClusteredSystem集群系统关于什么是集群系统,目前还没有准确定义,一般认为,使用网络技术,将多台主机连接成一个整体,使它们象一台主机那样工作,就是一个集群。集群系统应用非常广泛,因为它廉价而有效。一些小型机构的网络中心可以使几台低档服务器(或PC)组成一个小集群,作为一个服务器使用,即提高了吞吐量又提高了可靠性。Windows高级服务器版支持集群系统。3.6Real-TimeSystems实时系统Oftenusedasacontroldeviceinadedicatedapplicationsuchascontrollingscientificexperiments,medicalimagingsystems,industrialcontrolsystems,andsomedisplaysystems.Well-definedfixed-timeconstraints.Real-Timesystemsmaybeeitherhardorsoftreal-time.Hardreal-time:Ahardreal-timeguaranteesthatcriticaltasksbecompletedontime.Secondarystoragelimitedorabsent,datastoredinshorttermmemory,orread-onlymemory(ROM).Conflictswithtime-sharingsystems,notsupportedbygeneral-purposeoperatingsystems.Softreal-timeAlessrestrictiveofreal-timesystemisasoftreal-timesystem.Limitedutilityinindustrialcontrol.Usefulinapplications(multimedia,virtualreality)requiringadvancedoperating-systemfeatures.现在的通用操作系统或多或少都支持软实时(比如视频在线播放)。专用的实时操作系统一般属于嵌入式操作系统。3.7嵌入式操作系统主要用于一些小型智能设备,比如手机、电视机顶盒、科学仪器等等。常见嵌入式操作系统:WindowsCE,PalmOS,嵌入式Linux,目前很流行的Andiords。嵌入式操作系通常比较简单,适合个人爱好者研究。3.8Summary本小节按硬件体系的不同,分类
本文标题:第1章操作系统
链接地址:https://www.777doc.com/doc-2244838 .html