计算机操作系统原理培训及实操第6章.pdf
《计算机操作系统原理培训及实操第6章.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统原理培训及实操第6章.pdf(140页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 UNIX系统内核第6章 UNIX系统内核6.1 概述概述6.2 进程管理进程管理6.3 文件系统文件系统6.4 存储管理存储管理6.5 设备管理设备管理第6章 UNIX系统内核6.1 概概 述述6.1.1 UNIX系统简介系统简介 1UNIX的诞生及发展的诞生及发展 UNIX系统是一个通用的、多用户、多任务分时操作系统,于1969年诞生于美国贝尔实验室,是由Ken.Thompson和Dennis.Ritchie共同研制成功的。研制该系统的目的是为了在贝尔实验室内构造一个程序设计研究和开发的良好环境。UNIX系统包括UNIX操作系统内核和运行在内核之上的用户程序集、库,以及其它实用工具,
2、UNIX操作系统内核为这些应用提供运行环境和各种系统服务。第6章 UNIX系统内核 贝尔实验室完成了UNIX的早期开发和发行,随着许多公司和大学对UNIX系统的青睐,市场上UNIX的各种版本广为流行,它们都支持一套基本的UNIX系统所拥有的接口、应用及其特征。这些版本在其内部实现接口的具体语义以及它们提供的“增值”特征方面千差万别,较为著名的有Novell公司的System V Release4(SVR4),加州大学伯克利分校软件发行(4.XBSD)以及卡内基梅隆大学的Mach,另外还有商业实现版本,如Sun Microsystem公司的SunOS和Solaris、IBM公司的AIX以及惠普公
3、司的HPUX。第6章 UNIX系统内核 UNIX系统的研制和开发过程简介如下:1969年,Ken Thompson开始在PDP7机上开发UNIX,1970年该系统投入运行。1973年,Dennis Richie研制成C程序设计语言,并用它改写原来用汇编语言编写的UNIX,即第四版UNIX。1973年,Ken Thompson和Dennis Ritchie合写“The UNIX Time-Sharing System一文,提交美国计算机协会(ACM)和第四次操作系统原理讨论会。该文经修改后刊登于1974年7月的Cunmunication of ACM杂志上,至此,UNIX操作系统正式向外披露。第
4、6章 UNIX系统内核 1975年,第六版(V6)正式发表,并开始广泛配备于各大学的PDP11系列机上。1978年,第七版(V7)发表。1979年,32 V版发表,该版本适用于VAX11机。1981年,AT&T公司(贝尔实验室的母公司)发表S3(System)。1983年,AT&T公司发表System。第6章 UNIX系统内核 UNIX在发展过程中产生了众多版本。这些版本在实现功能、采用技术、代码数量等方面都存在差异。早期的系统核心是无序结构,模块(函数)直接相互调用;而现在的UNIX版本都采用层次结构。为了便于系统移植,实现了功能的可裁剪性和规模的可伸缩性,Mach系统采用了微内核结构和线程
5、概念,支持Client/Server模型。第6章 UNIX系统内核 2UNIX版本简介版本简介 1)BSD 1974年12月,加州大学伯克利分校获得了UNIX许可证,在其后几年,Bill Joy和Chuck Haley等一组研究生为UNIX开发了几个实用工具,包括ex编辑器(后来发展为vi编辑器)和一个Pascal编译器。他们将这些软件绑定成一个称作“伯克利软件发行(BSD)”,的软件包,于1978年春以每个许可证50美元出售。最初的BSD仅包括应用程序和实用工具,并没有对操作系统进行修改。Bill Joy还开发了C Shell,它比Bourne Shell增加了作业控制、命令历史等功能。第6
6、章 UNIX系统内核 1978年伯克利得到一台VAX11/780以及贝尔实验室移植的UNIX/32V,VAX11/780采用了32位体系结构,可以有4 GB的地址空间,而物理内存仅仅为2 MB。此时,Ozalp Baobaoglu为VAX设计了一个分页式的虚存系统,并将其加入到UNIX系统中,这就是1979末发行的3BSD,是伯克利发行的第一个操作系统。在技术方面,伯克利小组做出了许多贡献,包括虚拟存储、TCP/IP的集成、快速文件系统(FFS)、可靠的信号机制以及Socket等先进技术,尤其是将TCP/IP网络协议族集成到了UNIX中,以此得到了美国国防部高级研究项目署(DARPA)的资助,
7、推动了Internet的发展。在DARPA的支持下,伯克利相继推出了4.0BSD4.4BSD。并通过伯克利软件设计公司(BSDI)将其进行了商业化,用伯克利开发的新源代码替代了原来的UNIX源代码。第6章 UNIX系统内核 2)System V System V是在贝尔实验室早期UNIX版本基础上发展起来的。AT&T致力于拓广UNIX市场,分别于1982年和1983年发行了System 和System V,1984年发行了System V Release2(SVR2),1987年发行了SVR3。许多商业UNIX的实现都是基于System V,较新版本是AT&T公司和Sun Microsyste
8、m公司联合开发的SVR4,于1989年首次发行。在技术上,System V引入了许多新特征和新设施,“区”结构的虚存实现与BSD截然不同。SVR3增加了进程间通信设施(共享内存、信号量和消息队列)、远程文件共享、共享库以及用于设备驱动程序和网络协议的STREAMS框架;SVR4则集成了SVR3、4BSD、SUNOS以及XENIX的一些特征,增加了新的功能,如实时调度、Kon Shell,并对STREAMS系统进行了改进。第6章 UNIX系统内核 1991年,Novell公司收购了AT&T的UNIX实验室,联合投资开发SVR4的桌面版,并集成了Novell的Netware PC机网络操作系统,称
9、作UNIX Ware,于1992年末发行。之后新的SVR4发行,较新的是SVR4.2/ES/MP,支持多处理机并增强了系统安全性。1994年Sun Microsystem公司向Novell公司购买了SVR4代码使用权,其基于SVR4的发行称作Solaris,较新版本是Solaris2.5。Solaris提供了许多先进功能,包括全抢占多线程内核和对多处理机的全面支持等。第6章 UNIX系统内核 3)Mach Mach是由卡内基 梅隆大学的研究人员开发的一个全新的操作系统,支持4BSDUNIX编程接口,可以在单处理机或多处理机上运行,适用于分布式环境。Mach的设计目标是微内核,内核仅提供必要功能
10、的最小集,同时提供一个在用户级实现其它操作系统功能的框架,基本的方案是让微内核对外开放几个简单的抽象概念,然后用一组称为服务器的用户级任务提供大部分操作系统的功能。Mach 3.0是第一个实现微内核的系统。第6章 UNIX系统内核 4)UNIX系统的商业版本 UNIX的不断发展吸引了许多计算机公司,他们迫切希望将UNIX商业化,出售自己的UNIX版本。这些版本都是以AT&T公司的System V或伯克利的BSD为蓝本,将它们移植到自己的硬件上,并加上一些自己的“增值”功能,主要版本有基于4BSD的SUN OS和基于SVR4的Solaris、微软与SCO合作发行的XENIX、SCO UNIX(S
11、VR3在386上的移植版本)以及IBM公司的AIX、HP公司的HPUX和Digital公司的UITRIX(Digital UNIX)等。此外,还有目前广泛流行的可运行于多种硬件平台、源码公开且可免费使用的Linux操作系统。第6章 UNIX系统内核6.1.2 UNIX系统的特点系统的特点 UNIX系统在相当短的时间内取得这样大的成功,有其内部和外部原因。从外部观察,UNIX问世之时,正是人们开始普遍使用分时操作系统,并还在寻求一个功能齐备、使用方便、大小适中的系统之时,所以UNIX生逢其时。另外,这一系统是在PDP11系列机上开发出来的,而当时这种机型在世界各国已得到广泛应用,并曾占据小型机的
12、主要市场,这就为UNIX的广泛配置创造了物质条件。这些外部原因都非常重要,但起决定性作用的因素是内部原因,即UNIX的小巧、稳定、简单内核、网络功能强等特点和性能决定了它的成败。与Microsoft的Windows NT相比,UNIX系统具有以下特点。第6章 UNIX系统内核 1开放性开放性 开放性是指遵循国际标准规范,特别是遵循了开放系统互连OSI国际标准的系统能彼此兼容,可方便地实现互连。人们普遍认为,UNIX是目前开放性最好的操作系统,它能广泛地配置在从微机到大、中型机等各种机器上,而且还能方便地将已配置了UNIX操作系统的机器互连成计算机网络,这也是它被广泛应用的有力证明。2多用户、多
13、任务环境多用户、多任务环境 UNIX系统是一个多用户、多任务操作系统,它既可以同时支持数十个乃至数百个用户,通过各自的联机终端同时使用一台计算机,而且还允许每个用户同时执行多个任务。例如,在进行字符、图形处理时,用户可建立多个任务,分别用于处理字符的输入、图形的制作和编辑等任务。第6章 UNIX系统内核 3简洁的内核与丰富的核外程序有机结合简洁的内核与丰富的核外程序有机结合 UNIX的设计思想着眼于向用户提供包含有多种工具,而且便于综合应用它们的程序设计环境,也就是构成一个能够提供各种服务的基础。在这样的设计思想提导下,UNIX系统在结构上分成两大层:内核和核外程序。内核部分就是一般所说的UN
14、IX操作系统,它包括进程管理、存储管理,设备管理、文件系统管理等几个部分。UNIX设计者对内核功能作了仔细考虑,对其中包含的数据结构和程序进行了精心设计,使其非常精干简洁。因此内核只需占用很小的存储空间,并且能够常驻内存,这就从根本上保证了系统能够以较高效率运行。第6章 UNIX系统内核 UNIX系统的核外部分包含有非常丰富的语言处理程序、系统实用程序和开发软件的工具性软件。在语言处理程序方面,UNIX提供有十几种常见程序设计语言的编译和解释程序,如C、FORTRAN、C+、JAVA等;语言开发工具有YACC、LEX等。所有这些程序都作为文件存放在文件系统中,用户通过Shell命令使用这些程序
15、。正是这些系统软件给用户提供了相当完备的程序设计环境。UNIX的系统设计特别注意了内核和核外程序的有机结合。内核向核外程序提供了充分而强有力的支持;核外程序则以内核为基础,灵活而恰到好处地运用了内核的支持。两者结合起来作为一个整体,向用户提供各种良好的服务,其功能可以与某些大型系统媲美。第6章 UNIX系统内核 4树形结构的文件系统且将文件和设备统一处理树形结构的文件系统且将文件和设备统一处理 UNIX具有一个树形结构的文件系统,它由基本文件系统和可装卸的若干子文件系统组成。它既能扩大文件存储空间,又有利于安全和保密。在UNIX中,文件是无结构的字符序列,用户可以按需任意组织其文件格式,对文件
16、既可进行顺序读、写,也可随机存取。另一方面,普通数据文件、文件目录表和外部设备都统一做文件处理,它们在用户面前有相同的语法语义,使用相同的保护机制,这样既简化了系统设计,又便于用户使用。第6章 UNIX系统内核 5系统用高级语言编写,可移植性好系统用高级语言编写,可移植性好 UNIX操作系统和核外程序基本上用C语言编写,使得系统易于理解、修改和扩充,而且使系统具有非常良好的可移植性。UNIX的可移植性有两方面的含义,首先指的是UNIX系统易于移植到别的硬件系统上去;其次,在UNIX系统下开发的应用软件比较易于移植到其它配置有UNIX的计算机系统上去。第6章 UNIX系统内核 5系统用高级语言编
17、写,可移植性好系统用高级语言编写,可移植性好 UNIX操作系统和核外程序基本上用C语言编写,使得系统易于理解、修改和扩充,而且使系统具有非常良好的可移植性。UNIX的可移植性有两方面的含义,首先指的是UNIX系统易于移植到别的硬件系统上去;其次,在UNIX系统下开发的应用软件比较易于移植到其它配置有UNIX的计算机系统上去。第6章 UNIX系统内核 6强大的网络功能强大的网络功能 早期的UNIX系统是在单机上运行的,彼此不能通信。伯克利受DARPA资助,将TCP/IP协议族集成到4BSD中。目前UNIX系统支持许多网络接口、协议和远程过程调用(RPC)机制,集成了网络文件系统(NFS)和分布式
18、计算环境(DCE)等网络信息共享服务,为连网、网络应用和基于网络的应用软件开发提供了强有力的支持。第6章 UNIX系统内核6.1.3 UNIX系统的核心结构系统的核心结构 UNIX系统可分为三层:硬件层、核心层和应用层。靠近硬件的是核心,即UNIX操作系统常驻内存部分;用户在应用层通过核心对外提供的系统调用和库函数接口来使用核心的功能。图6-1展示出UNIX的三个层次。第6章 UNIX系统内核图6-1 UNIX系统的内核结构程序库系统调用接口文件系统进程通信调度内存管理进程控制系统缓冲区管理块设备字符设备设 备 驱 动硬 件 控 制硬 件用户程序trap核心层应用层核心层硬件层第6章 UNIX
19、系统内核 核心是UNIX操作系统的主要部分,它实现进程管理、存储管理、文件系统和设备管理等功能,从而为核外的所有程序提供运行环境。UNIX核心可分为文件子系统和进程控制子系统两大功能部分。文件系统部分涉及操作系统中各种信息的保存,它相当于核心的“静态”部分。进程控制系统部分涉及操作系统中各种活动的调度和管理,通常以进程形式展现其生命活力。它相当于核心的“动态”部分。文件子系统管理文件、分配文件空间、管理空闲空间、控制对文件的访问并为用户检索数据。进程通过一组特定的系统调用(如open、close、read、write、chmod等)与文件系统交互作用。第6章 UNIX系统内核 文件子系统利用缓
20、冲机制访问文件数据。缓冲机制与块设备驱动程序相互作用以启动从核心向块设备写数据或者从块设备向核心传送(读)数据。文件系统也直接与字符设备驱动程序相互作用,这包括终端I/O和打印机输出等管理。进程控制系统用于进程管理、进程通信、进程调度和内存管理等。控制进程的系统调用包括进程的创建、终止、执行、等待、空间扩充及信号传送等。进程间采用多种形式进行通信,如sleep、wakeup,异步进程发信号,进程间消息同步传送等。第6章 UNIX系统内核 存储管理控制内存分配与回收。系统采用两种策略管理内存:对换和请求分页。根据系统中物理内存空间的使用情况,将进程映象在内存和辅存(磁盘)之间换入/换出。利用请求
21、分页技术提供虚拟存储器。进程调度模块为进程分配CPU。为保证各分时用户进程都得到公平的运行机会,进程调度采用多级反馈队列轮转法。核心底层的硬件控制负责处理中断和与机器通信。外部设备(如磁盘或终端等)在完成某个工作或遇到某种事件时会中断CPU执行,由中断处理系统进行相应分析、处理。处理之后将恢复被中断进程的执行。第6章 UNIX系统内核6.2 进进 程程 管管 理理6.2.1 UNIX进程映象和进程状态进程映象和进程状态 1UNIX进程映象进程映象 在UNIX中,进程被描述为映象(image)的执行,而映象则是计算机的执行环境,进程映象包括一个存储映象、通用寄存器的值、打开文件的状态以及当前目录
22、等。System V中进程的存储器映象包括正文段、数据段、共享内存段、系统栈、用户栈和进程控制块(PCB)。第6章 UNIX系统内核 正文段是进程映象中可由多个进程共享的区域,其中包括纯代码形式的程序和常量等。正文段从进程虚拟地址空间的0单元开始,在执行期间这个段受到保护。数据段中含有属于进程私有的程序和数据,可被用户态进程读、写或执行。该段的大小可通过一个系统调用加以扩充或压缩。共享内存段为多个进程共享同一数据区提供了可能。该段为可选择部分,当进程需要与其它进程共享某一内存段时,使用系统调用将其连入本进程,用过后又可以使其脱离本进程。第6章 UNIX系统内核 进程的用户栈和核心栈分别是进程在
23、用户态和核心态下运行时的工作区,主要用于函数调用时传递参数、保留现场、存放返回地址以及为局部变量提供存储区等。核心栈仅为核心态进程所存取。当进程在用户态方式下运行时,其核心栈是空的。这两个栈是自动创建的,其大小由核心在进程运行期间动态调整。进程控制块分两个部分:常驻内存部分和非常驻内存部分,前者构成的数据结构为proc,后者构成的数据结构为user。需要注意,proc中的表项对核心来说必须是可存取的,而user区的字段只能由正在运行的进程来存取,也就是说,只有当前占据CPU的进程才能访问属于当前进程私有的user区。第6章 UNIX系统内核 属于不同进程的user区形式上有相同的虚地址,但其物
24、理地址是随不同的运行进程而变化。每个进程都有一个专用的user区,核心访问user区时就好像系统中仅有一个user区,即当前进程的user区。根据进程页表,通过地址映射机构来访问与当前进程相联系的user区。如果页表不同,即使核心用相同的虚地址访问user,但实际物理地址还是不一样的。进程在核心态运行时能够访问user区,但在用户态却不能。user区在某种程度上决定了系统中运行的进程的上下文。下面给出proc结构和user结构的说明。第6章 UNIX系统内核 (1)proc结构中的主要域如下:进程标识:每个进程有一个惟一的进程ID(PID)。用户标志号(UID):确定不同进程的特权。当前进程和
25、它的user结构在内存或外存上的位置。进程状态。进程睡眠原因,即等待事件的描述字。调度优先级和相关信息,包括优先数、进程使用CPU的情况、用户设置的优先数偏置值等。核心利用这些参数来确定调度次序。第6章 UNIX系统内核 调度队列、阻塞队列或睡眠队列的前、后向指针。信号处理信息:各种信号,包括忽略信号、阻塞信号、已发送信号及已处理信号的掩码。进程的大小。将这个结构链接到活动进程、空闲进程或僵尸进程队列的指针。第6章 UNIX系统内核 (2)user结构中的主要区域如下:指向本进程proc结构的指针。真实和有效的用户标志号。当前系统调用的参数、返回值或错误状态。信号处理程序及处理方式表。由程序头
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 原理 培训 实操第
限制150内