计算机操作系统.ppt

上传人:少林足球 文档编号:4143150 上传时间:2019-10-22 格式:PPT 页数:703 大小:4.02MB
返回 下载 相关 举报
计算机操作系统.ppt_第1页
第1页 / 共703页
计算机操作系统.ppt_第2页
第2页 / 共703页
计算机操作系统.ppt_第3页
第3页 / 共703页
计算机操作系统.ppt_第4页
第4页 / 共703页
计算机操作系统.ppt_第5页
第5页 / 共703页
点击查看更多>>
资源描述

《计算机操作系统.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统.ppt(703页珍藏版)》请在三一文库上搜索。

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

2、S是用户使用系统的接口,(3) OS是扩展机(extended machine)/虚拟机(virtual machine)。 在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理,1.2 操作系统的发展史,1.2.1 推动操作系统发展的主要动力,需求推动了发展 (1) 提高资源的利用率和系统性能 (2) 方便用户 (3) 器件的发展,1.2.2 早期的手工操作,时间 1946 50年代(电子管),集中计算(计算中心),计算机资源昂贵; 需求 二战对武器设计的需要,美国、英国和德国等国家开始了电子数字计算机的研究工作。 哈佛大学的Howard Aiken 普林斯顿高等研究院的

3、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;,t,jop1 jop2 jop3 调度程序,使用cpu,使用I/O,优点: 资源利用率高:CPU和内存利用率较高;作业吞吐量大:单位时间内完成的工作总量大; 缺点: 用户交互性差,不利于调试和修改;,由于所有的计算机都有相同的体系结构和指令集在理论上,为一型号编写的程序可以在其它型号机器上运行。IBM试图一次性地解决上述问题,代表机器: 1

7、964 年IBM 宣布推System/360计算机系统,为第一个采用小规模集成电路的主流机型。,IBM System/360的若干问题: IBM无法写出同时满足互冲突需要的操作系统,其实别人也一样不能完成这项工作任务。 IBM OS/360文件系统中有类型字段,定义文件的类型,有定长、不定长记录、块状和非块状文件,用户对于输出文件的大小,只有通过猜测。 存储管理有基地址寄存器寻址方式,程序也可以访问和修改基地址寄存器,但是CPU生成的却是绝对地址,虽然不用进行动态再分配,但程序却被钉死在调入内存时的物理地址上。,IBM System/360, 庞大的软件怪兽 数千名程序员写了数百万行汇编语言代

8、码,系统自身占据了大量存储空间和一半的CPU时间。 数百万行汇编代码中有成千上万处错误 IBM不断发行新的版本试图更正这些错误,每个新版本在更正老错误的同时又引入新错误。 随着时间的流逝,错误的数量大致保持不变,1.2.5 分时系统,时间: 70年代中期至今 含义: 多个用户分享使用同一台计算机。每个用户给一定的时间运行,然后切换到另一个用户,一个轮转周期在宏观上相当短,用户感觉不到。,主机,终端,占用终端与系统用户交互的作业前台作业,系统控制台,不占用终端的用户(作业) 后台作业,特点: (1)人机交互性好。在调试和运行程序时由用户自己操作。 (2)共享主机:多个用户同时使用。 (3) 用户

9、独立性:对每个用户而言逻辑上独占主机。 目前许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。,1.2.6 实时系统(real-time system),用于工业过程控制、军事实时控制、金融等领域,包括实时控制、实时信息处理。 要求:在一定范围之内,响应时间短; 系统可靠性高,1.3 操作系统的特征和服务,1.3.1 操作系统的特征,并发(concurrency) 多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统程序与应用程序间的并发。操作系统要完成这些并发过程的管理。 并行(parallel) 是指在同一时

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

11、令数据堆栈) 显示设备多窗口或虚拟终端(virtual terminal),异步性(asynchronism) 也称不确定性,指进程的执行顺序和执行时间的不确定性; 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程推进的快慢 判据:无论快慢,应该结果相同通过进程互斥和同步手段来保证难以重现系统在某个时刻的状态(包括重现运行中的错误) 性能保证:实时系统与分时系统相似,但通过资源预留以保证性能,1.3.2 操作系统的服务,(1)服务类型 程序执行和终止(包括分配和回收资源) I/O操作 文件系统操作 通信:本机内,计算机之间(通常通信服务的使用者为进程,而不是

12、笼统说“主机”) 配置管理:硬件、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)设备操作 (2)设备独立性 (3)设备分配与回收,1.4.4 信息管理,解决软件资

13、源的存储、共享、保密和保护。 (1)文件存储空间管理 (2)目录管理 (3)文件的读写管理和存取控制 (4)软件管理,1.4.5 用户接口,目标:提供一个友好的用户访问操作系统的接口。 (1)系统命令:供用户用于组织和控制自己的作业运行。命令行、菜单式或GUI“联机”;命令脚本“脱机” (2)编程接口:供用户程序和系统程序调用操作系统功能。系统调用和高级语言库函数;(系统调用),1.5 操作系统分类,2、多处理机操作系统(Multi-processor Operating System),3、 网络操作系统(NOS, Network Operating System),4、分布式操作系统(Di

14、stributed 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的观感。而IBM在1996年,将OS/2Warp 3.0与LANServer 5.0整合,推出OS/2 Warp Server 4.0版。至此,OS/

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

16、)和3D图形支持; 高效率的文件系统(HPFS),文件名可长达255个字符。 参考网站:http:/ 1.合作矛盾 Window 3.1后MS与IBM分道扬镳 MS负责 OS/2 3.0 (Window NT) IBM负责 OS/2 2.0 2 .IBM进入PC领域后,仍然用大型机市场的思考模式,产品 价格贵,机器配置要求高,缺乏配套软件,非计算机人员不愿购买。,2002年12月IBM宣布,在2003年3月12日正式停止OS/2操作系统的支持与销售,其服务还将持续到2004年12月31日。,2)Mac OS 自1984年Macintosh上市以来,Mac OS几乎是大家公认唯一在Macinto

17、sh上运行的OS;不过除Mac OS之外,BeOS与Linux在Macintosh上也都有不错的表现。 “User Friendly“一直是电脑用户所企盼的。Mac OS在用户界面上跨了一大步,图形与鼠标导向的使用界面确实让人与电脑之间的交互达到了所谓的“User Friendly“。相比之下,直到1988年OS/2的Presentation Manager出现,IBM才推出具有相同能力的图形用户界面(GUI)解决方案;而微软直到1990年Windows 3.x问世之后,才有图形用户界面。 Mac硬件结构的封闭性迫使其下游厂商不得不屈服于苹果公司,但是也正是该特性使MacOS本身和Mac硬件具

18、有高度的集成性。它通过资源管理器、字型管理器、事件管理器、窗口管理器等一系列管理器,让整套操作系统相当人性化与合理化,用户在使用中根本感觉不到Mac OS的存在。,Mac OS 8.5是Macintosh系统史上的大翻新。系统核心主要针对PowerPC进行了改写,以提高Mac OS的运行效率;而重新改写的Macintosh系统绘图核心QuickDraw ,除了将绘图显示速度提高10%左右,还提供屏幕字体的柔边效果。新的Mac OS 8.5具有以下特点: Sherlock搜索引擎提供强大的搜索界面,甚至可将用户面前的电脑变成一个功能强大的网站搜索引擎; 改写了AppleScript,系统组件也提

19、供Apple Script描述功能,这使得AppleScript在Mac OS 8.5中能发挥更多更广的用途; 提高了网络文件传输速度,与Windows NT /98相比,Mac OS 8.5的网络传输速度甚至更快; 内置多国语言网络浏览功能。 参考网站:http:/ 最新为Mac OS 10 , 2005年4月29日出苹果最新Mac操作系统Tiger于出货,129美元,3)UNIX 由于开放性、发展概念及商业利益等因素,Unix现已呈现出“百家争鸣“的盛况。不过总体来说,Unix可分成System V和BSD两大流派。这两大派别虽然都是Unix,但在系统架构、命令操作以及管理方式上都有所不同

20、。到了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.2),发展历史: 为了解决批处理方式缺乏效率与使用不便,Dartmouth大学和麻省理工学院发明了分时系统, Dartmout

21、h大学的分时系统只能运行BASIC,麻省理工学院的CTSS则具有通用性,在科研领域取得了巨大的成功。 1965年麻省理工学院、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”,希望能够同时支持整个波士顿所有的分时用户。该系统称作MULTICS(MULTiplexed Information and Computong Service),MULTICS设计目标是:便利的远程终端使用,大量终端通过电话线接入计算机主机。 高可靠的大型文件系统;大容量的用户信息共享;存储和构造层次化信息结构的能力。,MULTICS研制难度超出了所有人预料,长期研制工作达不到预期目标,1969年4月贝尔实验室退

22、出,其后通用电气公司也退出了。 但最终,经过多年的努力,MULTICS成功地应用。 运行MULTICS的计算机系统在九十年代中期陆续被关闭。 MULTICS引入了许多现代操作系统领域概念雏形,对随后操作系统特别是UNIX的成功有着巨大的影响。,PDP-11的UNIX,1969年,在贝尔退出MULTICS研制项目后,Ken Thompson和Dennis M. Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准,项目无着落, Thompson在一台无人用的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏。其工作吸引了Dennis M. Ritchie

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

24、进行了改进,取名为C,接着又写了C的编译器,74年,Thompson和Richie发表了一篇关于UNIX的论文。 84年被授予图灵奖。,可移植的UNIX UNIX移植到非PDP11的第一个机器为Interdata 8/32小型机上,其后,又移植到了VAX和其它一些机器上。,贝尔实验室的Steve Johnson设计并实现了可移植的C语言编译器。只要修改少量的代码,它就能为相应的机器产生目标代码。从此以后,几乎所有的C编译器都是基于该可移植的编译器。 85年推出System V 。,伯克利的UNIX 加州大学的伯克利分校在美国国防高级研究规划局的资助下,为PDP11设计并发布了一个改进的版本。取

25、名为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操作系统具有下列特点: 灵活性,主要原因是Unix大部分以C语言写成。事实上,也正是由于发展Unix的需要, 才有C语言的问

26、世; 多用户、多任务; 树状文件结构; 文件与设备独立,即输出、输入设备皆被视为文件; 完整的软件开发工具,便于开发软件系统和应用程序; 完整且强大的网络能力。 长久以来,初学者最头疼的是Unix的使用界面,但随着X-Window的发展,Unix用户也可以享受功能强大的图形用户界面。同时,不同的X-Window管理界面(如FVWM、AfterStep、CDE、MWM)更让您的X-Window有多种选择,也使您的电脑更具个人风格。此外,现在已经有许多应用软件可在Unix下运行。 参考网站:http:/www.PLiG.org/xwinman/,4)Solaris Solaris是Sun公司开发的

27、以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个人电脑。如此完整的操作系统产品,可以轻易地进行硬件平台的升级; 有数量庞大的应用软件支持,并提供完整的应用系统开发环境;, Wabi(Windows Applic

28、ation Binary Interface)使用户在Solaris上可以执行大部分Microsoft Windows 的应用程序; 有功能强大的XGL(X-Window版的 OpenGL)及XIL图像处理程序库; 提供C2级系统安全防护。(虽然NT也号称是C2的系统,但仅限于单机状态下。) 参考网站:http:/ 04年Sun Microsystems当地时间8月3日披露了新一代OS“Solaris 10”(开发代号:Project Janus)的新功能。 11月宣布完成。 在Solaris 10中,Linux二进制程序不必修改即可直接运行。这样,“在多种OS环境下,就可以在不降低性能和易管

29、理性的同时削减开发和管理成本” 此外,Solaris 10添加了600多种新功能。 其它主要特点: 实时问题分析及还原功能“Dynamic Tracing” 在线查测及自动修复功能“Predictive Self Healing” “具有相当于现有文件系统160亿倍的容量”(Sun)的自我管理文件系统技术“Dynamic File System”,5)MINIX 一个用于操作系统教学的与UNIX兼容的操作系统,由坦尼鲍姆完成。 目的:解决操作系统课程只讲理论缺乏实例的情况,(UNIX太大了,已超出一个人能全面理解的范畴) MINIX发布不久,就出现了一个面向它的新闻组,每天都有数百人提供建议、

30、思想甚至代码。而作者几年来坚持不采纳这些建议,以保持MINIX的特点。人们最终意识到作者的立场,于是一个芬兰学生决定写一个面向实用而不是教学的MINIX系统LINUX。 参考网站: http:/minixl.hampshire.edu/asw/,6)Linux 历史: Linux是1991年由芬兰大学生 Linus 编写的一套与Unix相容却又免费的Unix clone,后经Internet的传播,获得众多电脑玩家的响应和GNU基金会的支持,可以说是一套无国界的操作系统。 90年秋天,正在芬兰首都的赫尔辛基大学学习UNIX课程的Linus为了实习使用了Minix,买了一台486微机,但很快发现

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

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

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

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

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

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

37、eeBSD目前最新的版本是3.0,该版本支持更多、更新的架构,如多处理器、Secure RPC等。 参考网站:http:/www.freebsd.org/,参考书: 1、Abraham Silberschatz,Peter Baer Galvin,Greg Gagne Operating System Concepts (6rd edition), 高等教育出版社,2002 2、Operating Systems Design And Implementation(2rd edition), 清华大学出版社, 1997 3、尤晋元,史美林等,Windows操作系统原理,机械工业出版社,2001

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

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

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

41、状态信息)。 4) 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程。,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、增加创建、与结束的状态,3、引入挂起状态,目的: (1)调整系统负荷 (2)用户程序调试,2.2.4进程控制块(PCB, process control block),1. 作用 记录系统管理进程全部信息。 一般常驻于内存,由OS维护。 每个

43、进程都有唯一的一个PCB。 不能由应用程序自身的代码来直接访问。,2. 包含信息 不同的操作系统差别很大,随系统复杂性而异 。 共性的有: 1)进程描述信息 进程标识符(process ID,内部标识符,具有唯一性,通常是一个整数); 用户标识符(user ID); 进程组标识符(process group),2)在进程进行切换时的处理机及其相关现场。(CPU,程序状态字,通用寄存器,栈指针),3)为保证进程再次运行的:进程调度信息、控制信息,3、进程表的组织,以线性表的方式管理,1)顺序存储,2)静态链表,具有相同状态的进程形成一个链,3)索引表,建立若干个索引,如就绪索引,阻塞索引,2.3

44、 进程控制,术语:核心态(系统态、管态、 特权态)和用户态(目态) (supervisor mode monitor mode system mode Privileged mode user mode),核心态:可执行所有机器指令。OS运行在核心态,可以访问所有资源。 用户态:用户进程运行在用户态。无法直接访问硬件资源,不可直接访问受保护的OS代码,只可以访问OS指定的寄存器和存储区域及有关资源。,现代的计算机的程序状态字中都至少有一个位,其值为0或1。这样区分出两种状态。分别称为核心态和用户态。机器的一部分指令只能在核心态下运行,这样的指令称为特权指令。,1)现代某些计算机的状态多于一位(

45、80386以后的芯片),因此能提供更强的保护机制(如2位,形成四种方式,称为保护环,操作系统在0环,DB等在1环等),2)用户进程在用户态运行,在需要操作系统为其服务时,将转到OS,从用户态转到核心态;OS完成任务后回到用户进程,也就是用户态。,在trap指令执行后,状态位自动从用户态转到核心态,2.3.1操作系统内核,出于结构上的考虑,将OS分为若干层次。 内核:程序模块的集合,这些模块通常为与硬件紧密相关的(如中断处理、设备驱动程序)或执行频率较高的(如处理机调度)程序模块。它们常驻内存,不会被交换出去。 内核的功能: 支撑功能:中断处理、时钟管理、原语操作。 资源管理功能:进程管理、存储

46、器管理、设备管理等。,原语操作:由若干条指令构成的“原子操作(atomic operation)”过程 ,作为一个整体而不可分割要么全都完成,要么全都不做。在执行其间不能被中断。(实现时,屏蔽所有中断,执行完,开中断),注意问题:原语执行时间尽可能短;若由于忘记开中断,则系统无法正常运行。,2.3.2 进程的创建(Creation of Process),在创建一个进程中,不应有外界干扰,所以系统中一般都有进程创建原语(如UNIX的newproc( ),1.进程图(Process Graph) 进程可以创建子进程,个数一般系统都没有限制(只取决于系统当前的资源),所以会构成树状结构进程树。 2

47、. 引起创建进程的事件 用户登录 作业调度 提供服务 应用请求:用户程序自己创建子进程,3、进程的创建的步骤: 申请空白PCB 为子进程分配资源 初始化进程控制块 资源往往继承父进程 将新进程插入就绪队列,进程创建,父进程创建子进程,子进程还可创建子进程,从而形成进程树。 父子进程关系: 资源继承共享 父子进程共享所有的资源. 子进程共享父进程资源的子集. 父进程和子进程之间不共享资源. 执行关系: 父进程和子进程并发执行. 父进程等待执行结束.,地址空间 子进程是父进程的复制(克隆). 子进程将自己代码装入其中。 Windows NT支持两种 例子:UNIX fork 系统调用:创建一个子(

48、新)进程。精确复制父进程 exec系统调用: 在 fork 之后执行,用来用新的代码替换原父进程的代码。,2.3.3 进程的终止,1. 引起终止的事件 正常结束 异常结束 越界错误 保护错 特权指令错 非法指令错 运行超时 等待超时 算数运算错 I/O故障 外界干预 操作员或系统干预 父进程请求 父进程终止,2、 进程终止时应做的工作 终止所有子进程 回收资源 若本身是运行的,通知调度程序进行CPU的调度,unix进程终止过程,进程执行完最后一条语句,请求操作系统删除进程(通过执行exit系统调用)。 将子进程运行数据传递给父进程(通过 wait系统调用)。 回收的系统资源由操作系统再另行分配

49、 父进程也可以终止子进程的执行(通过abort系统调用)。原因: 子进程超额使用资源. 分配给子进程执行的任务不在需要执行. 父进程退出。 如果父进程终止,操作系统不再允许子进程继续执行。,1.引起阻塞的事件: 所需资源得不到满足(如申请内存暂时无法满足) 启动输入/输出后 同步关系在等待其它进程的消息 无事可做,2.3.3 进程的阻塞和唤醒,2. 进程阻塞所做工作(block) 进程自身调用阻塞原语,进入等待队列(是进程的主动性行为),然后进行处理机调度。,3.进程的唤醒过程(wakeup) 唤醒原因:等待的事件产生。 由阻塞队列转入就绪队列,状态标志改动。,若干unix进程的调用,(1) fork() fork

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1