计算机操作系统学习培训课件参考培训课件_第1页
计算机操作系统学习培训课件参考培训课件_第2页
计算机操作系统学习培训课件参考培训课件_第3页
计算机操作系统学习培训课件参考培训课件_第4页
计算机操作系统学习培训课件参考培训课件_第5页
已阅读5页,还剩698页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操 作 系 统1.1 操作系统的地位、目标及作用计算机系统(层次结构)软件硬件(裸机)应用软件系统软件编辑软件,编译软件操作系统计算机系统的组成 :第1章 引论计算机硬件操作系统系统工具用户应用应用用户应用开发人员操作系统开发人员地位: 紧贴系统硬件之上,所有其它软件之下(是其它软件的支撑环境) 有效性(系统管理人员的观点):管理和分配硬件、软件资源,合理地组织计算机的工作流程。方便性(用户的观点):提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别。可扩充性(开放的观点):硬件的类型和规模、操作系统本身的功能和管理策略、多个系统之间的资源共享和互操作 。目标:作用 :几种观点 (1)O

2、S是计算机硬件、软件资源的管理者。系统调用(编程接口)命令 命令行图形界面(GUI)(2)OS是用户使用系统的接口(3) OS是扩展机(extended machine)/虚拟机(virtual machine)。在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理1.2 操作系统的发展史 1.2.1 推动操作系统发展的主要动力 需求推动了发展(1) 提高资源的利用率和系统性能(2) 方便用户 (3) 器件的发展1.2.2 早期的手工操作 时间 1946 50年代(电子管),集中计算(计算中心),计算机资源昂贵;需求 二战对武器设计的需要,美国、英国和德国等国家开始了电子数

3、字计算机的研究工作。 哈佛大学的Howard Aiken 普林斯顿高等研究院的John Neumann(冯诺依曼) 宾夕法尼亚大学的J.Presper Eckert和William Mauchley 德国电话公司的Konraad Zuse以及其他一些人都使用真空管成功地建造了运算机器。 没有程序设计语言(甚至没有汇编),更谈不上操作系统。 程序员提前预约一段时间,然后到机房将他的插件板插到计算机里。 期盼着在接下来的时间中几万个真空管不会烧断从而可以计算自己的题目。ENIAC计算机运算速度:1000次/每秒, 数万个真空管, 占地100平方米工作方式:用户:用户既是程序员,又是操作员;用户是计

4、算机专业人员;编程语言:机器语言;输入输出:纸带或卡片;工作特点:1) 用户独占全机:不出现资源被其他用户占用的现象,但资源利用率低;2)CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低;主要矛盾: 1)计算机处理能力的提高,手工操作的低效率(造成浪费); 2)用户独占全机的所有资源;提高效率的途径专门的操作员,批处理 1.2.3 单道批处理系统(simple batch processing) 时间 50年代末 60年代中(晶体管):利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理。可使用汇编语言

5、开发。批处理中的作业的组成:包括用户程序、数据和作业说明书(作业控制语言)批处理方式(1) 联机批处理 问题:输入输出时,CPU处于等待状态。 早期的联机批处理的硬件控制方式是:作业的输入、计算和输出都是在CPU直接控制下进行的。模型: 早期联机批处理 应用带 系统带主机卡片输入机打印机(2)脱机批处理(缓冲技术的一种) 增加卫星机完成输入/输出功能。主机与卫星机可并行工作。 系统带 应用带输出带输入带卫 星 机打印机主机卡片输入机1.2.4 多道批处理系统时间:60年代中 70年代中(集成电路) 60年代初期,计算机开始采用集成电路,多数厂商有几条完全不同的生产线,生产不同的计算机。开发和维

6、护完全不同的产品,对厂商来说是昂贵的。 另外,新用户,在开始时只需要一台小计算机,随着时间的推移,业务量的增加,到后来可能需要一台大的计算机,而且希望能在新计算机上执行原有的程序。这样,厂家和用户都需要软件在不同型号的计算机之间兼容。目的: 提高资源的利用率。特点:多道:内存中同时存放几个作业(用户程序);宏观上并行运行:都处于运行状态,但都未运行完;微观上串行运行:各作业交替使用CPU;tjop1jop2jop3调度程序jop1打印jop1再次运行jop2读数据使用cpu使用I/O优点: 资源利用率高:CPU和内存利用率较高;作业吞吐量大:单位时间内完成的工作总量大;缺点: 用户交互性差,不

7、利于调试和修改; 由于所有的计算机都有相同的体系结构和指令集在理论上,为一型号编写的程序可以在其它型号机器上运行。IBM试图一次性地解决上述问题代表机器: 1964 年IBM 宣布推System/360计算机系统,为第一个采用小规模集成电路的主流机型。IBM System/360的若干问题: IBM无法写出同时满足互冲突需要的操作系统,其实别人也一样不能完成这项工作任务。 IBM OS/360文件系统中有类型字段,定义文件的类型,有定长、不定长记录、块状和非块状文件,用户对于输出文件的大小,只有通过猜测。 存储管理有基地址寄存器寻址方式,程序也可以访问和修改基地址寄存器,但是CPU生成的却是绝

8、对地址,虽然不用进行动态再分配,但程序却被钉死在调入内存时的物理地址上。IBM System/360, 庞大的软件怪兽 数千名程序员写了数百万行汇编语言代码,系统自身占据了大量存储空间和一半的CPU时间。 数百万行汇编代码中有成千上万处错误 IBM不断发行新的版本试图更正这些错误,每个新版本在更正老错误的同时又引入新错误。 随着时间的流逝,错误的数量大致保持不变1.2.5 分时系统时间:70年代中期至今含义: 多个用户分享使用同一台计算机。每个用户给一定的时间运行,然后切换到另一个用户,一个轮转周期在宏观上相当短,用户感觉不到。主机终端 占用终端与系统用户交互的作业前台作业系统控制台不占用终端

9、的用户(作业)后台作业特点:(1)人机交互性好。在调试和运行程序时由用户自己操作。(2)共享主机:多个用户同时使用。(3) 用户独立性:对每个用户而言逻辑上独占主机。 目前许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。 1.2.6 实时系统(real-time system) 用于工业过程控制、军事实时控制、金融等领域,包括实时控制、实时信息处理。 要求:在一定范围之内,响应时间短; 系统可靠性高1.3 操作系统的特征和服务 1.3.1 操作系统的特征 并发(concurrency) 多个事件在同一时间段内发生。操作系统是一个并

10、发系统,各进程间的并发,系统程序与应用程序间的并发。操作系统要完成这些并发过程的管理。并行(parallel) 是指在同一时刻发生。在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。 程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程。 共享(sharing)多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。互斥共享(如音频设备):资源分配后到释放前,不能被其它进程所用。同时访问(如可重入代码,磁盘文件)虚拟(virtual)一个物理实体映射为若干个对应的逻辑实体分时或分空间。虚拟是操作系统管

11、理系统资源的重要手段,可提高资源利用率。CPU每个用户(进程)的“虚处理机”存储器每个进程都占有的地址空间(指令数据堆栈)显示设备多窗口或虚拟终端(virtual terminal)异步性(asynchronism)也称不确定性,指进程的执行顺序和执行时间的不确定性;进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程推进的快慢判据:无论快慢,应该结果相同通过进程互斥和同步手段来保证难以重现系统在某个时刻的状态(包括重现运行中的错误)性能保证:实时系统与分时系统相似,但通过资源预留以保证性能 1.3.2 操作系统的服务 (1)服务类型程序执行和终止(包括分配和回

12、收资源)I/O操作文件系统操作通信:本机内,计算机之间(通常通信服务的使用者为进程,而不是笼统说“主机”)配置管理:硬件、OS本身、其它软件差错检测(2)服务提供方式:系统命令和系统调用 1.4.1 存储管理 管理目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。(1)存储分配与回收(2)存储保护 (3)地址映射 (4)内存扩充(覆盖、交换和虚拟存储)1.4.2 处理机管理 完成处理机资源的分配调度等功能。(1)进程控制 (2)进程同步 (3)进程通信 (4)调度1.4 操作系统的功能 1.4.3 设备管理 目标:方便设备使用、提高CPU与I/O设备利用率;(1)设备操作

13、(2)设备独立性(3)设备分配与回收1.4.4 信息管理 解决软件资源的存储、共享、保密和保护。(1)文件存储空间管理(2)目录管理 (3)文件的读写管理和存取控制 (4)软件管理1.4.5 用户接口 目标:提供一个友好的用户访问操作系统的接口。 (1)系统命令:供用户用于组织和控制自己的作业运行。命令行、菜单式或GUI“联机”;命令脚本“脱机” (2)编程接口:供用户程序和系统程序调用操作系统功能。系统调用和高级语言库函数;(系统调用) 1.5 操作系统分类 1、微机OS 单用户单任务MS_DOS单用户多任务Window多用户多任务UNIX版本2、多处理机操作系统(Multi-process

14、or Operating System) 3、 网络操作系统(NOS, Network Operating System)4、分布式操作系统(Distributed Operating System)5、非Microsoft系列操作系统1)OS/2 OS/2最初是微软与IBM共同开发的,但后来微软推出Windows 3.x,并获得不错的市场反应,终到导致于微软与IBM分道扬镳,专心致力于Windows系列操作系统的研发。而此时由于OS/2的系统需求偏高,因此其市场接受程度偏低。直到IBM在1992年推出OS/2 2.0版,以及稍后的OS/2 Warp 3.0,才真正改变了大家对OS/2的观感。

15、而IBM在1996年,将OS/2Warp 3.0与LANServer 5.0整合,推出OS/2 Warp Server 4.0版。至此,OS/2 Warp与微软的Windows NT一样,已经分成Client和Server两种版本。 OS/2目前的版本是 4.0 Warp系列(96年),其特点如下: 真正、完全的多用户操作系统,其效率很高; 寻址能力高达64TB,使每个程序都可占用512MB的虚拟内存; 对象导向式操作环境,不同程序可通过SOM(System Object Model)共享及交换对象; 支持Java和语音识别,这是目前OS/2领先业界的先进技术; 内置DOS及Windows模拟

16、器,以运行传统的DOS或Windows应用程序; 完善的多媒体MMPM/2(Multimedia Presentation Manager/2)和3D图形支持; 高效率的文件系统(HPFS),文件名可长达255个字符。 参考网站:http:/os/warp/OS/2问题:1.合作矛盾Window 3.1后MS与IBM分道扬镳MS负责 OS/2 3.0 (Window NT) IBM负责 OS/2 2.02 .IBM进入PC领域后,仍然用大型机市场的思考模式,产品 价格贵,机器配置要求高,缺乏配套软件,非计算机人员不愿购买。 2002年12月IBM宣布,在2003年3月12日正式停止OS/2操作

17、系统的支持与销售,其服务还将持续到2004年12月31日。2)Mac OS 自1984年Macintosh上市以来,Mac OS几乎是大家公认唯一在Macintosh上运行的OS;不过除Mac OS之外,BeOS与Linux在Macintosh上也都有不错的表现。 User Friendly一直是电脑用户所企盼的。Mac OS在用户界面上跨了一大步,图形与鼠标导向的使用界面确实让人与电脑之间的交互达到了所谓的User Friendly。相比之下,直到1988年OS/2的Presentation Manager出现,IBM才推出具有相同能力的图形用户界面(GUI)解决方案;而微软直到1990年W

18、indows 3.x问世之后,才有图形用户界面。 Mac硬件结构的封闭性迫使其下游厂商不得不屈服于苹果公司,但是也正是该特性使MacOS本身和Mac硬件具有高度的集成性。它通过资源管理器、字型管理器、事件管理器、窗口管理器等一系列管理器,让整套操作系统相当人性化与合理化,用户在使用中根本感觉不到Mac OS的存在。 Mac OS 8.5是Macintosh系统史上的大翻新。系统核心主要针对PowerPC进行了改写,以提高Mac OS的运行效率;而重新改写的Macintosh系统绘图核心QuickDraw ,除了将绘图显示速度提高10%左右,还提供屏幕字体的柔边效果。新的Mac OS 8.5具有

19、以下特点: Sherlock搜索引擎提供强大的搜索界面,甚至可将用户面前的电脑变成一个功能强大的网站搜索引擎; 改写了AppleScript,系统组件也提供Apple Script描述功能,这使得AppleScript在Mac OS 8.5中能发挥更多更广的用途; 提高了网络文件传输速度,与Windows NT /98相比,Mac OS 8.5的网络传输速度甚至更快; 内置多国语言网络浏览功能。 参考网站:/ 最新为Mac OS 10 , 2005年4月29日出苹果最新Mac操作系统Tiger于出货,129美元3)UNIX 由于开放性、发展概念及商业利益等因素,Unix现已呈现出百家争鸣的盛况

20、。不过总体来说,Unix可分成System V和BSD两大流派。这两大派别虽然都是Unix,但在系统架构、命令操作以及管理方式上都有所不同。到了1988年,System V融入BSD与SunOS的主要特性,演变成为SVR4(System V Release 4)。 因为Unix当初是X/Open所使用的注册商标,基于版权考虑,不可以再使用Unix这个名字作为商业的操作系统名字。有影响的的UNIX系统:IBM RS/6000上的AIX(System V)SGI的IRIX(SVR4)Sun的SunOS(4.3BSD或SVR4)HP的HP-UX(System V) SCO的SCO Unix(SVR3

21、.2)发展历史: 为了解决批处理方式缺乏效率与使用不便,Dartmouth大学和麻省理工学院发明了分时系统, Dartmouth大学的分时系统只能运行BASIC,麻省理工学院的CTSS则具有通用性,在科研领域取得了巨大的成功。 1965年麻省理工学院、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”,希望能够同时支持整个波士顿所有的分时用户。该系统称作MULTICS(MULTiplexed Information and Computong Service) MULTICS设计目标是:便利的远程终端使用,大量终端通过电话线接入计算机主机。 高可靠的大型文件系统;大容量的用户信息共享;存

22、储和构造层次化信息结构的能力。 MULTICS研制难度超出了所有人预料,长期研制工作达不到预期目标,1969年4月贝尔实验室退出,其后通用电气公司也退出了。 但最终,经过多年的努力,MULTICS成功地应用。 运行MULTICS的计算机系统在九十年代中期陆续被关闭。MULTICS引入了许多现代操作系统领域概念雏形,对随后操作系统特别是UNIX的成功有着巨大的影响。PDP-11的UNIX 1969年,在贝尔退出MULTICS研制项目后,Ken Thompson和Dennis M. Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准,项目无着落, Thompson在一台无人用

23、的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏。其工作吸引了Dennis M. Ritchie ,为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell 和汇编程序。 因此他们重写了一个简化的MULTICS并加进了自己的一些思想(用汇编语言作为编程工具),被Brian Kerighan开玩笑的称为UNICS(UNIplexed Information and Computer Service)Dennis Ritchie及所在部门的加入,完成两件事情从PDP-7移植到PDP-11/20,后来又移植到PDP

24、-11/45,PDP-11/70Thompson决定用自己设计的语言“B”来重新写UNIX其后,Ritchie对B进行了改进,取名为C,接着又写了C的编译器 74年,Thompson和Richie发表了一篇关于UNIX的论文。84年被授予图灵奖。可移植的UNIX UNIX移植到非PDP11的第一个机器为Interdata 8/32小型机上,其后,又移植到了VAX和其它一些机器上。 贝尔实验室的Steve Johnson设计并实现了可移植的C语言编译器。只要修改少量的代码,它就能为相应的机器产生目标代码。从此以后,几乎所有的C编译器都是基于该可移植的编译器。85年推出System V 。伯克利的

25、UNIX 加州大学的伯克利分校在美国国防高级研究规划局的资助下,为PDP11设计并发布了一个改进的版本。取名为1BSD(First Berkeley software Distribution),很快有了2BSD。定型的是4BSD(4.1 BSD 4.2BSD,4.3BSD和4.4BSD)UNIX的标准化 80年代后期两个互不相同、互不兼容的UNIX版本 4.3BSD和System V Release 3都在广泛使用,另外,每个UNIX提供商事实上又在原有的UNIX系统的基础上加入了自己的非标准东西。 目前这些系统还都朝着各自的方向发展着,混乱依然存在。一般而言,Unix操作系统具有下列特点:

26、 灵活性,主要原因是Unix大部分以C语言写成。事实上,也正是由于发展Unix的需要, 才有C语言的问世; 多用户、多任务; 树状文件结构; 文件与设备独立,即输出、输入设备皆被视为文件; 完整的软件开发工具,便于开发软件系统和应用程序; 完整且强大的网络能力。 长久以来,初学者最头疼的是Unix的使用界面,但随着X-Window的发展,Unix用户也可以享受功能强大的图形用户界面。同时,不同的X-Window管理界面(如FVWM、AfterStep、CDE、MWM)更让您的X-Window有多种选择,也使您的电脑更具个人风格。此外,现在已经有许多应用软件可在Unix下运行。 参考网站:htt

27、p:/www.PLiG.org/xwinman/4)Solaris Solaris是Sun公司开发的以Unix为基础的使用环境。完整的Solaris包含Unix操作系统、源自X11的窗口系统以及ONC网络产品与服务等。简单来说,Solaris = SunOS + Open Windows(或CDE),不过SunOS 4.1.x是根据4.2/4.3 BSD开发的,而Solaris则是根据SVR4的SunOS 5.x开发的。 Solaris操作系统具有许多特点,如: 支持多种硬件平台,上至价值数百万的高端服务器,下至Intel x86个人电脑。如此完整的操作系统产品,可以轻易地进行硬件平台的升级;

28、 有数量庞大的应用软件支持,并提供完整的应用系统开发环境; Wabi(Windows Application Binary Interface)使用户在Solaris上可以执行大部分Microsoft Windows 的应用程序; 有功能强大的XGL(X-Window版的 OpenGL)及XIL图像处理程序库; 提供C2级系统安全防护。(虽然NT也号称是C2的系统,但仅限于单机状态下。) 参考网站:http:/solaris/新动态: 04年Sun Microsystems当地时间8月3日披露了新一代OS“Solaris 10”(开发代号:Project Janus)的新功能。 11月宣布完成

29、。 在Solaris 10中,Linux二进制程序不必修改即可直接运行。这样,“在多种OS环境下,就可以在不降低性能和易管理性的同时削减开发和管理成本” 此外,Solaris 10添加了600多种新功能。其它主要特点:实时问题分析及还原功能“Dynamic Tracing” 在线查测及自动修复功能“Predictive Self Healing” “具有相当于现有文件系统160亿倍的容量”(Sun)的自我管理文件系统技术“Dynamic File System” 5)MINIX 一个用于操作系统教学的与UNIX兼容的操作系统,由坦尼鲍姆完成。目的:解决操作系统课程只讲理论缺乏实例的情况,(UN

30、IX太大了,已超出一个人能全面理解的范畴) MINIX发布不久,就出现了一个面向它的新闻组,每天都有数百人提供建议、思想甚至代码。而作者几年来坚持不采纳这些建议,以保持MINIX的特点。人们最终意识到作者的立场,于是一个芬兰学生决定写一个面向实用而不是教学的MINIX系统LINUX。参考网站: http:/asw/6)Linux历史: Linux是1991年由芬兰大学生 Linus 编写的一套与Unix相容却又免费的Unix clone,后经Internet的传播,获得众多电脑玩家的响应和GNU基金会的支持,可以说是一套无国界的操作系统。 90年秋天,正在芬兰首都的赫尔辛基大学学习UNIX课程

31、的Linus为了实习使用了Minix,买了一台486微机,但很快发现许多功能很难满足自己的要求,于是自己开始动手编写一些代码,随后将这些代码结合起来,到次年的10月5日,发布了第一个“正式”版本,0.02版。当时并没有在Minix的新闻组中公布它,而只是在赫尔辛基大学的一台FTP服务器上发了一则消息,称用户可以下载Linux的公开版本。Linux是Linus的笔名,当时起的名字为Freax(free+freak(怪胎)+x),FTP管理员认为这是Linus的Minix,就建了一个Linux目录放源代码。94年3月14日,第一个正式版本1.0版发布。 Linux操作系统具有下列特点: Linux

32、是免费的软件,您可以自由安装及任意修改软件的原代码; Linux系统与System V及BSD Unix兼容,并且符合POSIX 1.0规格; 拥有数量庞大的GNU软件以及世界各地Linux高手所开发的软件; 支持Intel x86、680 x0、SPARC、Alpha及MIPS等平台,并广泛支持各种周边设备。 不论在哪里,只要有计算机的地方就有人为Linux写程序,这表示这套系统进步很快,但同时这也是它最大的缺点:系统缺乏严密性。由于它从系统核心到应用程序几乎都是集各家之大成,到底里面藏有多少问题,恐怕没有人可以给出一个答案。 目前在Linux世界里,已经有不少公司或组织有计划地收集有关Li

33、nux的软件,组合成一套完整的Linux发行版本上市,比较著名的有Slackware、RedHat、Caldera及GNU自己的Debian。 Linux的发展经历了三个阶段:(1)99-00年:快速发展阶段,十天半月就可能有一个新的发行版本“出炉”,在中国,八九个人就能成立一家Linux公司。 (2)00-01:随着互连网泡沫的破灭,Linux遭受了重创,虽然全球涌现了数百个Linux发行版本,但在它上面的应用软件很少,桌面用户很难找到合适的办公软件。对企业用户而言, Linux的可靠性、稳定性、后续的技术支持等都不能让人放心,“观望”是大多数企业用户当时的心态。对Linux厂商来说, Li

34、nux特有的“自由与开放”使他们找不到赢利的模式。(3)01起,IBM、Oracal,CA,Intel 、AMD等业界巨头纷纷宣布支持Linux,IBM豪赌了10亿美元,押宝Linux!支持Linux的数据库、中间件、应用方案纷纷“粉墨登场”; Linux厂商调整策略,重点移到提供应用解决方案上。巨头的支持,加上Linux的成熟,企业用户从质疑转向信任, Linux应用进入平稳的发展期。 但Linux厂商还没有走上赢利的阳关道,到目前为止,实现收支平衡并略有赢利的厂商还很少,更多的厂商仍然在艰难前进。未来发展:(1) Linux会演变成巨头们的“囊中物”?(2)是否支持LSB LSB是由Dan

35、 Quinlan和他的LSB小组发起的一个比较公认的标准,目前得到多数Linux厂商的支持。目标是各种不同的Linux发布版本能够在二进制上兼容。(3)桌面端还是大型机上发展参考网站:http:/ http:/ 目前LINUX的研究,使用基本上还以科研院所,大专院校为主。7)FreeBSD FreeBSD是一个在Intel x86(含兼容的AMD、Cyrix等CPU)个人电脑上执行的Unix操作系统,它能使个人电脑轻易地变成功能强大的工作站,或是网络服务器。 FreeBSD具有下列特点: 完全32位操作系统; 提供多样化且简易的安装方式。除了可用CD-ROM安装外,还可以用软盘、MS_DOS分

36、区、FTP以及NFS等方式安装; FreeBSD是免费的PC Unix,它的开放原则不仅可免费使用,更提供完整的源程序代码供参考甚至修改; 内存保护模式确保用户不会干扰到其他人,而应用程序之间也不会相互干扰; 可直接执行在其它操作系统(如SCO、BSDI、Linux)上编译的程序; 动态共享函数库提供有效的硬盘空间及内存利用; 提供包括C、C+和FORTRAN等完整的应用程序开发环境。与Linux相比,FreeBSD拥有比较严谨的FreeBSD核心小组,他们有组织地维护、更新并发行整个系统,这使得FreeBSD系统比较稳定,但整体支持就没有Linux多样、活泼与新颖。FreeBSD目前最新的版

37、本是3.0,该版本支持更多、更新的架构,如多处理器、Secure RPC等。 参考网站:http:/参考书:1、Abraham Silberschatz,Peter Baer Galvin,Greg Gagne Operating System Concepts (6rd edition), 高等教育出版社,20022、Operating Systems Design And Implementation(2rd edition), 清华大学出版社, 19973、尤晋元,史美林等,Windows操作系统原理,机械工业出版社,2001第2章 进程的描述与控制 为了描述程序在并发执行时对系统资源的

38、共享,需要一个描述程序执行时动态特征的概念,这就是进程。2.1 程序执行特点1)顺序执行123特征:顺序性:按照程序结构所指定的次序(可能有分支或循环)封闭性:独占全部资源,计算机的状态只由该程序的控制逻辑所决定,结果不受外界因素的影响可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系。2)并发执行 具有许多新的特征,目的是为了提高资源利用率。并发执行的特征:I1I2I3I3C1C2C3C3P1P2P3P3T特征:间断性:表现为“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系;失去封闭性:共享资源,受其它程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程

39、序修改,失去原有的不变特征。失去可再现性:失去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。 并发执行的条件:达到封闭性和可再现性(正确性的要求)。2.2.1 进程的定义与特征 进程这个概念是为了描述系统中各并发活动而引入的。为了满足成千上万个用户的要求,现代操作系统正是围绕进程这个概念建造的。最早使用进程(process)概念进行操作系统设计的是美国的麻省理工学院在MULTICS系统和IBM公司的CTSS/360系统上实现的。只是IBM/360使用了另一个术语任务(task),但两者的实际含义是相同的。2.2 进程的描述 1. 进程的含义 一个具有一定独立

40、功能的程序在一个数据集合上的一次动态执行过程。 2. 进程的特征(1)动态性:创建产生,调度执行,撤销消亡。(2)并发性:多个进程同时存在于内存,宏观上同时运行。(3)独立性:独立运行的基本单位。(4)异步性:各进程各自独立的运行,以不可预知速度前进。(5)结构化:代码段,数据段和进程控制块组成。3. 进程与程序的区别1)进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。2)进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。3)进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。4)进程与程序的对应关系:通过多次执行,一个程序可对

41、应多个进程。2.2.2 进程的基本状态 运行态就绪态阻塞态时间片用完进程调度等待某个事件发生某个事件已经发生1、三个基本状态 就绪状态:进程已获得除处理机外的所需资源,等待分配处理机资源;只要分配到CPU就可执行。在某一时刻,可能有若干个进程处于该状态2.2.2 进程的基本状态 运行态就绪态阻塞态时间片用完进程调度等待某个事件发生某个事件已经发生1、三个基本状态运行状态:占用处理机资源运行;处于此状态的进程的数目小于等于CPU的数目。2.2.2 进程的基本状态 运行态就绪态阻塞态时间片用完进程调度等待某个事件发生某个事件已经发生1、三个基本状态 阻塞态:由于进程等待某种条件(如I/O操作或进程

42、同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。void main() int i; cini; couti;创建态:进程刚创建,但还不能运行(一种可能的原因是OS对并发进程数的限制);如:分配和建立PCB表项(可能有数目限制)、建立资源表格(如打开文件表)并分配资源,加载程序并建立地址空间表。结束态(Exit):进程已结束运行,等待OS做善后工作。2、增加创建、与结束的状态进程调度时间片完事件完成等待事件进程完成fork()接纳创建态就绪态运行态结束态阻塞3、引入挂起状态静止就绪挂起激活挂起静止阻塞释放挂起目的:(1)调整系统负荷(2)用户程序调试进程调

43、度时间片完事件完成等待事件进程完成fork()接纳创建态就绪态运行态结束态阻塞2.2.4进程控制块(PCB, process control block) 1. 作用记录系统管理进程全部信息。一般常驻于内存,由OS维护。每个进程都有唯一的一个PCB。不能由应用程序自身的代码来直接访问。2. 包含信息 不同的操作系统差别很大,随系统复杂性而异 。共性的有: 1)进程描述信息 进程标识符(process ID,内部标识符,具有唯一性,通常是一个整数); 用户标识符(user ID); 进程组标识符(process group) 2)在进程进行切换时的处理机及其相关现场。(CPU,程序状态字,通用寄

44、存器,栈指针)3)为保证进程再次运行的:进程调度信息、控制信息3、进程表的组织以线性表的方式管理1)顺序存储2)静态链表,具有相同状态的进程形成一个链3)索引表,建立若干个索引,如就绪索引,阻塞索引2.3 进程控制 术语:核心态(系统态、管态、 特权态)和用户态(目态)(supervisor mode monitor mode system mode Privileged mode user mode)核心态:可执行所有机器指令。OS运行在核心态,可以访问所有资源。用户态:用户进程运行在用户态。无法直接访问硬件资源,不可直接访问受保护的OS代码,只可以访问OS指定的寄存器和存储区域及有关资源。

45、 现代的计算机的程序状态字中都至少有一个位,其值为0或1。这样区分出两种状态。分别称为核心态和用户态。机器的一部分指令只能在核心态下运行,这样的指令称为特权指令。1)现代某些计算机的状态多于一位(80386以后的芯片),因此能提供更强的保护机制(如2位,形成四种方式,称为保护环,操作系统在0环,DB等在1环等)2)用户进程在用户态运行,在需要操作系统为其服务时,将转到OS,从用户态转到核心态;OS完成任务后回到用户进程,也就是用户态。实现:计算机提供一条陷阱指令,如在SUN公司的机器中为trap指令,指令格式样为:指令码参数1参数2其中,参数1为本次系统调用的调用号,这由编译解决转换 参数2为

46、一个地址,给出了调用参数表的首地址trap码102文件号缓冲地址0字节数在trap指令执行后,状态位自动从用户态转到核心态2.3.1操作系统内核 出于结构上的考虑,将OS分为若干层次。内核:程序模块的集合,这些模块通常为与硬件紧密相关的(如中断处理、设备驱动程序)或执行频率较高的(如处理机调度)程序模块。它们常驻内存,不会被交换出去。内核的功能: 支撑功能:中断处理、时钟管理、原语操作。 资源管理功能:进程管理、存储器管理、设备管理等。 原语操作:由若干条指令构成的“原子操作(atomic operation)”过程 ,作为一个整体而不可分割要么全都完成,要么全都不做。在执行其间不能被中断。(

47、实现时,屏蔽所有中断,执行完,开中断) 注意问题:原语执行时间尽可能短;若由于忘记开中断,则系统无法正常运行。2.3.2 进程的创建(Creation of Process) 在创建一个进程中,不应有外界干扰,所以系统中一般都有进程创建原语(如UNIX的newproc( )1.进程图(Process Graph)进程可以创建子进程,个数一般系统都没有限制(只取决于系统当前的资源),所以会构成树状结构进程树。2.引起创建进程的事件 用户登录 作业调度 提供服务 应用请求:用户程序自己创建子进程3、进程的创建的步骤: 申请空白PCB 为子进程分配资源初始化进程控制块 资源往往继承父进程将新进程插入

48、就绪队列进程创建父进程创建子进程,子进程还可创建子进程,从而形成进程树。父子进程关系:资源继承共享父子进程共享所有的资源.子进程共享父进程资源的子集.父进程和子进程之间不共享资源.执行关系:父进程和子进程并发执行.父进程等待执行结束.地址空间子进程是父进程的复制(克隆).子进程将自己代码装入其中。Windows NT支持两种例子:UNIXfork 系统调用:创建一个子(新)进程。精确复制父进程exec系统调用: 在 fork 之后执行,用来用新的代码替换原父进程的代码。2.3.3 进程的终止 1. 引起终止的事件正常结束异常结束越界错误保护错特权指令错非法指令错运行超时等待超时算数运算错I/O

49、故障外界干预操作员或系统干预父进程请求父进程终止2、 进程终止时应做的工作终止所有子进程回收资源若本身是运行的,通知调度程序进行CPU的调度unix进程终止过程进程执行完最后一条语句,请求操作系统删除进程(通过执行exit系统调用)。将子进程运行数据传递给父进程(通过 wait系统调用)。回收的系统资源由操作系统再另行分配父进程也可以终止子进程的执行(通过abort系统调用)。原因:子进程超额使用资源.分配给子进程执行的任务不在需要执行.父进程退出。如果父进程终止,操作系统不再允许子进程继续执行。1.引起阻塞的事件:所需资源得不到满足(如申请内存暂时无法满足)启动输入/输出后同步关系在等待其它

50、进程的消息无事可做2.3.3 进程的阻塞和唤醒 2. 进程阻塞所做工作(block) 进程自身调用阻塞原语,进入等待队列(是进程的主动性行为),然后进行处理机调度。3.进程的唤醒过程(wakeup) 唤醒原因:等待的事件产生。 由阻塞队列转入就绪队列,状态标志改动。若干unix进程的调用(1) fork() fork创建一个新进程(子进程),fork()是UNIX中建子进程的唯一方法。子进程继承了父进程的所有环境,甚至开始执行的执行位置(子进程不从main()开始执行,而是从fork()的后继语句处执行)void main() fork(); printf(“This is testn”);

51、void main() fork(); printf(“This is testn”); 进程p1P1就绪进程:void main() fork(); printf(“This is testn”); 子进程p2fork()P2This is test.This is test.调用fork()会返回不同的值:子进程返回:0父进程返回:子进程的id号返回0返回子进程号void main() if(fork()= =0) printf(“This is the childn”); else printf(“This is the parentn”);This is the parent. Thi

52、s is the child. 在UNIX中子进程建立后,先执行子进程还是父进程是不定的。(对于特定的一个UNIX是确定的)This is the child. This is the parent. (2)wait() wait(变量地址),等待子进程结束,并将系统结束码放在给定的单元中,若为空则不保存结束状态。void main() if(fork()= =0) printf(“This is the childn”); else wait(NULL); printf(“This is the parentn”); (3)exec() 改变原有进程的代码 用一个新代码覆盖原有代码。它的参数

53、包括新代码对应的文件和命令行参数。成功调用时,不再返回;否则,返回出错原因。(exec有多种格式)void main() if(fork()= =0) exec(文件,参数); else wait(NULL); . 2.4 线程(threads)的基本概念 在OS中,进程的引入提高了计算机资源的利用率。但在进一步提高进程的并发性时,进程切换开销的比重越来越大,同时进程通信的效率也受到限制。引入线程的目的是用它来提高系统内程序的并发程度,提高系统效率,增大系统作业的吞吐量。例子:(1)网页浏览器:含有图象、文本等 (2)网页服务器:同时可能有数百个客户在访问进程的两个基本属性: 资源分配单位 处

54、理机调度单位。线程模型: 线程作为处理机调度单位。只拥有必不可少的资源,如:线程状态、寄存器状态和栈同样具有就绪、阻塞和执行三种基本状态优点:减小并发执行的时间和空间开销(线程的创建、退出和调度),因此容许在系统中建立更多的线程来提高并发程度。一个进程中可以有多个线程 由于同一进程内各线程都可以访问整个进程的所有资源,因此线程之间的通信比进程间的通信要方便;而同一进程内的线程间切换也会由于许多上下文的相同而简化线程:一个动态对象,它是处理机调度的基本单位,表示进程的一个控制点,执行一系列的指令。同一进程内各线程的差异体现:线程状态、寄存器上下文和堆栈等环境上。优点:1)线程创建的时间比进程短2

55、)线程的终止时间比进程短3)同一进程的线程切换时间比进程短4)同一个进程的线程可直接进行通信。进程和线程的比较:1)不同进程的地址空间是相互独立的,而同一进程下的各线程共享同一地址空间。一个进程中的线程在另一个进程中是不可见的。2)同一进程下的线程可以通过读写进程数据段(如全局变量)来进行通信;进程间通信必须用操作系统提供的进程间的通信机制。3)同一进程中的线程上下文切换比进程上下文切换要快得多。2.4.3用户级线程和内核支持线程 1、由操作系统内核实现,内核线程(kernel-level thread),OS知道每个进程有多少线程,一个线程阻塞时,OS会选则另一个线程,它们可能属于同一个进程

56、,也可能属于不同进程。 2、操作系统感觉不到线程存在,它们在用户空间进行管理用户级线程。(用户级线程软件包:POSIX-P,MACH C, 数据库informix,图形处理Aldus PageMaker )两者性能上差异很大:用户级线程的调度发生在同一个进程中,也不需通过中断进入核心,所以切换快这个事实有力的支持将线程管理放在用户级。用户级的线程阻塞后,整个进程阻塞,因为内核无法知道其它线程的存在这个事实有力的支持将线程管理放在核心。最后两种都用,1992 Anderson,现在SUN的Solaris 同时支持两者 不管线程在核心还是用户空间,都有一堆新问题,这些问题在相当的程度上改变了编程模

57、型。如: 若父进程创建子进程,子进程的线索和父进程一样多吗? 需一样,否则可能无法工作但一样又会产生:若一个线程阻塞于键盘输入语句,那么两个线程都阻塞?从键盘读入的一行数据是每个线程都有拷贝,还是只有父进程有。一个线程关闭文件而另一个正在读,怎么办?一个线程要求内存分配而此时正好线程切换,新线程同样发现内存不够而要求内存分配,这里算几次? 问题本身是可以克服的,但表明仅仅向现有系统引入线程而不进行重新设计是根本不行的。第 3章 进程的同步与通信 目的:为了改善资源的利用率和提高系统的吞吐量,引入了进程,但同时失去了程序的封闭性及可再现性。本章讨论OS保证并发程序的封闭性和可再现性的机制及策略。

58、3.1 进程同步的基本概念 由于多进程在操作系统中的并发执行,诸进程之间存在相互制约的关系,表现为: 1)进程互斥:由于共享资源所要求的排它性,进程间要相互竞争,以获得这些资源的使用权。 2)进程同步:多个进程中发生的事件存在某种时序关系,必须协同工作、相互配合,以共同完成一项任务。 在多进程系统中,可以把进程的相互制约关系按感知程度分成下标所列的三种类型: 相互感知的程度交互关系一个进程对其他进程的影响潜在的控制问题相互不感知(完全不了解其它进程的存在)竞争一个进程的操作对其它进程的结果无影响互斥,死锁(可释放的资源),饥饿间接感知(双方都与第三方交互,如共享资源)通过共享进行协作一个进程的

59、结果依赖于从其它进程获得的信息互斥,死锁(可释放的资源),饥饿,数据一致性直接感知(双方直接交互,如通信)通过通信进行协作一个进程的结果依赖于从其他进程获得的信息死锁,饥饿3.1.1 临界资源 临界资源: 必须互斥使用的资源。 可以是硬件,也可以是软件(如外设、共享代码段、共享数据结构),多个进程在对其进行访问时(主要指进行写入或修改),必须互斥地进行。(有些共享资源可以同时访问,如只读数据。)例:共享变量的修改冲突DB存10万取5万10111 -510111 +10服务器程序process(id,m) 在DB中取记录id; 帐号id +m; 修改记录送回DB; 10111 10例:共享变量的

60、修改冲突DB存10万取5万10111 -510111 +10process(10111,+10) 在DB中取记录10111; 帐号10111 +10; 修改记录送回DB; process(10111,-5) 在DB中取记录10111; 帐号10111 -5; 修改记录送回DB; 10111 10例:共享变量的修改冲突DB存10万取5万10111 -510111 +10process(10111,+10) 在DB中取记录10111; 帐号10111 +10; 修改记录送回DB; process(10111,-5) 在DB中取记录10111; 帐号10111 -5; 修改记录送回DB; 10111

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论