第1讲操作系统概述1.1认识操作系统1.2操作系统的发展1.3操作系统的功能和特征1.4常用的操作系统1.5操作系统的结构第1讲操作系统概述1.1认识操作系统不同角度看到的操作系统操作系统整体看操作系统设计者使用者普通开发者认识操作系统打开计算机,首先跳入眼帘的是什么?要拷贝一个文件,具体的拷贝操作是谁完成的?你需要知道文件存放在何处吗?柱面、磁道、扇区描述什么?数据的搬动过程怎样进行繁琐留给自己,简单留给用户操作系统穿上华丽的外衣-图形界面操作系统穿上朴素的外衣-字符界面认识操作系统-从使用者的角度看拷贝命令的C语言实现片断inf=open(“/floppy/TEST”,O_RDONLY,0);out=open(“/mydir/test”,O_WRONLY,0600);do{l=read(inf,buf,4096);write(outf,buf,l);}while(l);close(outf);close(inf);认识操作系统-从程序开发者的角度看浏览器信息管理文件管理系统游戏编译程序编辑程序命令解释程序操作系统CPU、内存、I/O接口硬件内核认识操作系统-从所处位置看操作系统是其它所有用户程序运行的基础。#includestdio.hmain(){printf(“Helloworld\n”)}•用户告诉操作系统执行test程序•操作系统通过文件名找到该程序•检查其类型,检查程序首部,找出代码和数据存放的地址•文件系统找到第一个磁盘块•操作系统建立程序的执行环境•操作系统把程序从磁盘装入内存,并跳到程序开始处执行该程序的执行过程简述如下:•操作系统检查字符串的位置是否正确•操作系统找到字符串被送往的设备•操作系统将字符串送往输出设备窗口系统确定这是一个合法的操作,然后将字符串转换成像素•窗口系统将像素写入存储映像区•视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)•显示器发射电子束。你在屏幕上看到Helloworld。从中看到什么认识操作系统-从程序执行看从操作系统设计者的角度看操作系统的设计目标是什么?尽可能地方便用户使用计算机让各种软件资源和硬件资源高效而协调地运转起来。计算机的硬件资源和软件资源各指什么?假设在一台计算机上有三道程序同时运行,并试图在一台打印机上输出运算结果,必须考虑哪些问题?从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分操作系统接口CPU管理内存管理设备管理文件管理认识操作系统-从设计者角度看操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效、顺畅地运行。认识操作系统-定义§1.操作系统是系统软件还是应用软件?§2.你眼中的操作系统都有哪些作用?软件系统系统软件实用程序诊断程序排错程序等操作系统WindowsUnixLinux语言处理程序CPascalVB应用软件系统软件:控制和维护计算机的正常运行,管理计算机的各种资源,以满足应用软件的需要。应用软件:完成一个特定的任务,在系统软件的支持下,才能运行。软件包括了使计算机运行所需的各种程序、数据及其有关的文档资料。应用软件操作系统硬件人们通过为硬件逐层地添加各类系统软件与应用软件后,才能形成一个供用户使用的功能丰富而界面友善的计算机应用系统操作系统的作用①提高系统资源的利用率:使计算机系统资源更好、更充分地被用户利用。②高效:提高系统的效率③方便用户:使用户更方便地使用计算机。④可扩展:系统功能和结构的扩展不影响原有功能的使用。⑤开放:不同的计算机及设备能集成起来并有效、正确地被使用,实现应用程序的可移植性和互操作性。第1讲操作系统概述1.2操作系统的发展按用户个数单用户多用户按任务数分单任务多任务按CPU个数单CPU多CPU按使用环境及对作业的处理方式批处理操作系统分时操作系统实时操作系统个人计算机操作系统网络操作系统分布式操作系统操作系统的演变手工操作阶段46~50年代初人机串行,资源独占单道批处理系统58年前后串行执行预先组织好的一组任务提高了系统效率多道批处理系统65年前后可以交错运行多个程序再次提高系统效率。分时系统66年前后将处理器的运行时间分成数片,均分或依照一定权重派发给系统中的用户使用快速响应操作系统的发展操作系统的演变实时OS68年前后实时性,可靠性,安全性,专用性。适用范围:导弹发射,飞机飞行,钢水温度,发电,情报检索,银行帐目往来,飞机订票单用户OS,网络OS70年代分布式OS、嵌入式OS、智能OS90年代操作系统的发展§计算机硬件发展经历的哪几个阶段?§计算机软件发展经历哪些阶段?§操作系统设计与软硬件发展有哪些关系?硬件角度下的操作系发展轨迹年代硬件特点操作系统特点背景机械计算机时代17世纪~20世纪初1)纯机械结构,低速2)只能进行简单的数学运算纯手工操作从计算尺至差分机到分析机发展了数百年第一代计算机1946年~50年代末电子管计算机1)体积大、能耗高、故障多、价格贵2)难以普及应用无操作系统(程序按机器码编写,载体从插件板到卡片与纸带)1906年发明电子管1946ENIAC研制成功(第一台电子管计算机)年代硬件特点操作系统特点背景第二代计算机50年代末~60年代中期晶体管计算机1)采用印刷电路2)稳定性与可靠性大大提高3)批量生产成为可能4)进入实际应用领域但数量有限1)单道批处理系统2)操作系统以监督软件形式出现3)任务按顺序方式处理1947年发明晶体管第三代计算机60年代中期~70年代初集成电路计算机1)体积减小,性价比迅速提高2)小型计算机发展迅速3)进入商业应用4)尚不适合家庭应用的需求1)涌现大批操作系统多道批处理系统、分时系统和实时系统2)奠定了现代操作系统的基本框架1958年发明集成电路1971年INTEL发明微处理器硬件角度下的操作系统发展轨迹分析在硬件的性价比较低的时候,操作系统设计追求什么?在硬件性价比越来越高后,操作系统的设计开始追求的目标是什么?计算机开始普及后,操作系统的设计开始追求?从第三代到第四代计算机,操作系统的发展逐渐摆脱追随硬件发展的状况,形成自己的理论体系进入第四代系统后,分布式系统和多处理器系统虽然极大的扩充了操作系统理论,但系统结构并没有变化,只是各功能模块得以进一步完善。操作系统的发展硬件角度下操作系统发展的分析主流操作系统系统特点计算机语言背景无手工操作无编程语言直接使用机器代码1936年图灵提出图灵机单道批处理系统作业运行的监督程序编程语言雏形期1957年FORTRAN语言开发成功多道批处理分时系统实时系统多处理系统操作系统结构确立,分为处理机管理、内存管理、设备管理、文件管理等模块1)编程语言大量涌现2)结构化程序设计3)C语言逐渐60年代的软件危机导致软件工程的发展1969年Unix诞生1972年C语言推出主流操作系统系统特点计算机语言背景类Unix系列WINDOWS系列人机交互成为主题1)可视化界面2)多媒体技面向对象语言成为主流80年代中期开始面向对象技术逐步发展网络操作系统分布式操作系统微内核技术兴起1)JAVA语言2)脚本语言兴起1995年JAVA推出嵌入式系统单内核与微内核竞争激烈编程工具向跨平台方向发1991年免费的操作系统Linux发布软件角度下的操作系统发展轨迹分析程序设计理论约束着操作系统设计。操作系统的发展滞后于计算机语言的发展,从结构化设计到对象化设计,操作系统总是最后应用新编程理论的软件之一。至今操作系统对于是否需要彻底对象化(即微内核化),还处于徘徊时期,仍在探索单内核与微内核的最佳结合方式。人机交互技术主要是为用户考虑,这是对操作系统设计进行的变革。以Linux为代表的开源软件的出现,打破了带有神秘色彩的传统的封闭式开发模式。软件角度下的操作系统发展轨迹分析第1讲操作系统概述1.3操作系统的功能和特征操作系统的基本功能1)处理机管理实现进程控制、进程同步、进程通信和调度。2)内存管理负责内存的分配、保护和扩充及地址变换。3)设备管理实现设备分配、缓冲管理及设备虚拟。4)文件管理实现对文件的存储空间、目录、读/写等的管理。5)作业管理对作业进行调度和控制。操作系统的特征§现代操作系统具有以下四个主要特征1)并发性(Concurrence)2)共享性(Sharing)3)虚拟性(Virtual)4)不确定性(Nondeterministic)(1)并发(Concurrence)并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,故微观上这些程序分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序。(2)共享(Sharing)共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。1.互斥共享方式:系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源。把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。2.同时访问方式:允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件,也可以被“同时”共享,即若干个用户同时访问该文件。并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。(3)虚拟(Virtual)操作系统中的“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的东西。相应地,用于实现虚拟的技术,称为虚拟技术.虚拟处理机技术:通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理机的。一台处理机,同时为多个用户服务,使每个终端用户都认为是有一个CPU在专门为他服务。虚拟存储器技术:将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。虚拟设备技术:将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,这样便可使原来仅允许在一段时间内由一个用户访问的设备(即临界资源,如打印机),变为在一段时间内允许多个用户同时访问的共享设备。(4)异步性(Asynchronism)在多道程序环境下,允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。在单处理机环境下,由于系统中只有一个处理机,因而每次只允许一个进程执行,其余进程只能等待。当进程执行时需要的资源得不到,进程必须等待,且放弃处理机,直到资源空闲,并再次把处理机和资源分配给该进程,该进程才能继续执行。可见,由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。•进程是以人们不可预知的速度向前推进,此即进程的异步性。•只要运行环境相同,作业经多次运行,都会获得完全相同的结果。§现代操作系统有哪些主要的功能?§现代操作操作系统一般具有怎样的特征?基本功能1)处理机管理2)内存管理3)设备管理4)文件管理5)作业管理6)网络管理7)安全管理主要特征1)并