第十章-UNIX系统内核结构课件.ppt
《第十章-UNIX系统内核结构课件.ppt》由会员分享,可在线阅读,更多相关《第十章-UNIX系统内核结构课件.ppt(191页珍藏版)》请在三一办公上搜索。
1、第十章UNIX系统内核结构,10.1UNIX系统概述10.2进程的描述和控制10.3进程的同步与通信10.4存储器管理10.5设备管理 10.6文件管理,1,谢谢观赏,2019-5-18,10.1UNIX系统概述,10.1.1UNIX系统的发展史1UNIX系统的发展UNIX系统是美国电报电话公司(AT&T)Bell实验室的Ennis Ritchie和Ken Thompson合作设计和实现的。他们在设计时,充分地吸取了以往OS(其中包括著名的CTSS和MULTICS系统)设计和实践中的各种成功经验和教训。在DEC公司的小型机PDP7上实现并于1971年正式移植到PDP11计算机上。,2,谢谢观赏
2、,2019-5-18,最初的UNIX版本是用汇编语言编写的。不久,Thompson用一种较高级的B语言重写了该系统。1973年Ritchie又用C语言对UNIX进行了重写,形成了最早的正式文件UNIX V5 版本。1976年正式公开发表了UNIX V6版本,还开始向美国各大学及研究机构颁发了使用UNIX的许可证,并提供了源代码,以鼓励他们对UNIX加以改进,因而又推动了UNIX 的迅速发展。,3,谢谢观赏,2019-5-18,1978年发表了UNIX V7版本,它是在PDP 11/70上运行的,后来移植到DEC公司的VAX系列计算机上。1982至1983年期间,又先后宣布了UNIX Syste
3、m 和UNIX System;1984年推出了UNIX System 2.0;1987年发布了UNIX System 3.0版本,分别称为UNIX SVR 2和UNIX SVR 3;1989年宣布了UNIX SVR 4;1992年又发表了UNIX SVR 4.2版本。,4,谢谢观赏,2019-5-18,2两大集团对峙在UNIX系统的发展史上必须说明的是,由于UNIX的开放性、发展概念和商业利益等因素,使UNIX呈现出“百家争鸣”的盛况,后又进一步形成了两大阵营对峙的局面。此即,由IBM和DEC等公司于1988年5月结成了开放软件基金会OSF集团,以及由AT&T、SUN和NCR等公司于同年12月
4、结成了UI集团。他们分别推出了自己的UNIX系统产品。其中,UI推出的是“SVR 4”,而OSF推出的是“OSF/I”。虽然两者都是UNIX,但它们在系统构架、命令操作以及管理方式上,都有所不同。两者在市场上展开了激烈的竞争。,5,谢谢观赏,2019-5-18,应当看到,虽然两种UNIX系统并存,但在他们之间并不相互兼容,这对用户非常不利。因而,这无疑会影响到UNIX对用户的吸引力,加之,随着Microsoft公司的迅速崛起,并以惊人的速度由传统的PC机市场向工作站和网络市场扩张,迫使UI和OSF两大集团不得不相互让步、携手言和,从而共同制定了应用程序接口API(Application Pro
5、gram Interface)标准技术规范,并联合开发共同开放软件环境COSE(Common Open Software Enviroment)。,6,谢谢观赏,2019-5-18,由于UNIX这一名字已被X/Open用作注册商标,因而其他公司所开发的UNIX产品不能再用UNIX这一名字,致使不同的UNIX系统在不同的公司,甚至是在不同的机器上,都各用自己的名字,如IBM RS/6000上的“AIX”(System)操作系统、Sun公司的“Sun OS”(4.3 BSD或SVR 4)和“Solarix”操作系统、HP公司的“HPUX”(System)以及SCO公司的“SCO UNIX”(SVR
6、 3.2)操作系统等。,7,谢谢观赏,2019-5-18,3网络操作系统UNIXUNIX凭借其“开放性”、“先进性”以及先入为主的优势,使20世纪70年代成为UNIX时代。70年代同时也是网络的萌芽时代,相应地,1976年人们便开发了一个UNIX网络应用程序。该程序随着UNIX V7版本一并发行。1980年9月Bell实验室等又为美国国防部在Berkeley的UNIX上开发了TCP/IP协议系统,于1983年8月对外发行,该协议得以很快发表和普及,从而成为后来的Internet上最重要的网络协议。到80年代中期,他们已在UNIX System 上开发出多种基于TCP/IP的网络软件,并将它们构
7、成一个TCP/IP协议软件包。,8,谢谢观赏,2019-5-18,20世纪80年代是LAN快速发展的10年。1984年,Novell公司推出了以LAN为环境的Netware V1.0,继之它经过了不断的改进并增强了其功能,相应的版本由V1.0经过V2.X到V3.X。仅经历短短的3年,到1987年时,其销量已占居全球第一位,并由于此后它长期保持优势而使之成为网络工业界的标准。,9,谢谢观赏,2019-5-18,进入90年代后,企业网络和Internet得到极其迅速的发展和广泛应用,致使计算机网络已经无所不在,也形成了巨大的网络软件市场。此时,一些主要的UNIX系统开发商也加强了在网络方面更深入的
8、研究,于是也不断地推出用于企业网络的UNIX网络OS版本,如SCO公司的Unixware NOS和Sun公司的Solaris NOS等。,10,谢谢观赏,2019-5-18,10.1.2UNIX系统的特征1开放性UNIX系统最本质的特征是开放性。所谓开放性,是指系统遵循国际标准规范;凡遵循国际标准所开发的硬件和软件,均能彼此兼容,并可方便地实现互连。开放性已成为20世纪90年代计算机技术的核心问题,也是一个新推出的系统或软件能否被广泛应用的重要因素。人们普遍认为:UNIX是目前开放性最好的OS,是目前惟一能稳定运行在从微型机到大、中型等各种机器上的OS,而且还能方便地将已配置了UNIX OS的
9、机器互连成计算机网络。,11,谢谢观赏,2019-5-18,2多用户、多任务环境UNIX系统是一个多用户、多任务OS,它既可以同时支持数十个乃至数百个用户通过各自的联机终端同时使用一台计算机,而且还允许每个用户同时执行多个任务。例如,在进行字符图形处理时,用户可建立多个任务,分别用于处理字符的输入、图形的制作和编辑等任务。,12,谢谢观赏,2019-5-18,3功能强大且高效UNIX系统提供了精选的、丰富的系统功能,使用户可方便、快速地完成许多其它OS所难于实现的功能。UNIX已成为世界上功能最强大的操作系统之一,而且它在许多功能的实现上还有其独到之处,并且是高效的。例如,UNIX的目录结构、
10、磁盘空间的管理方式、I/O重定向和管道功能等。其中,不少功能及其实现技术已被其它OS所借鉴。,13,谢谢观赏,2019-5-18,4丰富的网络功能UNIX系统还提供了十分丰富的网络功能。作为Internet网络技术基础的TCP/IP协议,便是在UNIX系统上开发出来的,并已成为UNIX系统不可分割的部分。UNIX系统还提供了许多最常用的网络通信协议软件,其中包括网络文件系统NFS软件、客户/服务器协议软件Lan Manager Client/Server及IPX/SPX软件等。通过这些产品可以实现在各UNIX 系统之间,UNIX与Novell的Netware,以及MS-Windows NT、I
11、BM LAN Server等网络之间的互连和互操作。,14,谢谢观赏,2019-5-18,5支持多处理器功能与Windows NT及Netware等OS相比较,UNIX是最早提供支持多处理器功能的OS,它所能支持的多处理器数目也一直处于领先水平。例如,1996年推出的NT 4.0只能支持14个处理器,而Windows 2000最多也只支持16个处理器,然而UNIX系统在20世纪90年代中期便已能支持3264个处理器,而且拥有数百个乃至数千个处理器的超级并行机也普遍支持UNIX。,15,谢谢观赏,2019-5-18,10.1.3UNIX系统的内核结构可以把整个UNIX系统分成四个层次。其最低层是
12、硬件,作为整个系统的基础。次低层是OS核心,包括前面所介绍的进程管理、存储器管理、设备管理和文件管理四大资源管理功能。上面第二层是OS与用户的接口Shell以及编译程序等。最高层是应用程序。作为OS的核心,它应具有两方面的接口:一方面是核心与硬件的接口,它通常是由一组驱动程序和一些基本的例程所组成的;另一方面就是核心与Shell的接口,它由两组系统调用及命令解释程序等所组成。核心本身又可分成两大部分:一部分是进程控制子系统;另一部分则是文件子系统。两组系统调用分别与这两大子系统交互。图10-1示出了UNIX核心的框图。,16,谢谢观赏,2019-5-18,图10-1UNIX核心的框图,17,谢
13、谢观赏,2019-5-18,1进程控制子系统进程控制子系统负责对四大资源中的两大资源处理机和存储器进行管理。进程控制子系统的功能可分成以下几个方面:(1)进程控制。在UNIX系统中提供了一系列用于对进程进行控制的系统调用,例如,应用程序可利用系统调用fork创建一个新进程;用系统调用exit结束一个进程的执行。(2)进程通信。在UNIX系统中提供了许多进程间通信的手段,例如,用于实现进程之间通信的消息机制,用于在同一用户的各进程之间通信的“信号”通信工具以及性能优良的信号量机制等。,18,谢谢观赏,2019-5-18,(3)存储器管理。该功能用于为进程分配物理存储空间。为了提高内存利用率且方便
14、用户,可采用段页式存储管理方式;可利用请求调页法实现虚拟存储器功能,以便从逻辑上扩充内存。此外,还实现了外存与内存间的对换功能。(4)进程调度。在UNIX系统中所采用的进程调度算法,是动态优先数轮转调度算法。系统按优先数最小者优先的策略,为选中的某一进程分配一个CPU时间片。当进程运行完一个时间片后,内核便把它送回就绪队列的末尾。,19,谢谢观赏,2019-5-18,2文件子系统文件子系统用于有效地管理系统中的所有设备和文件。其功能可分成以下三个方面:(1)文件管理。该功能用于为文件分配存储空间、管理空闲磁盘块、控制对文件的存取以及为用户检索数据。用户可通过一组系统调用来实现对文件的各种操作。
15、(2)高速缓冲机制。为使核心与外设之间的数据流在速率上相匹配,设置了多个缓冲区,每个缓冲区的大小与一个盘块的大小相当。这些缓冲区被分别链入各种链表中,如空闲缓冲区链表等。,20,谢谢观赏,2019-5-18,(3)设备驱动程序。UNIX系统把设备分成块设备(如磁盘、磁带等)和字符设备(如打印机)两类。相应地,也把驱动程序分成两类,文件子系统将在缓冲机制的支持下,与块设备的驱动程序之间交互作用。,21,谢谢观赏,2019-5-18,10.2进程的描述和控制,10.2.1进程控制块在UNIX系统中,把进程控制块(PCB)分为四部分:(1)进程表项,其中包括最常用的核心数据。(2)U区,用于存放用户
16、进程表项的一些扩充数据。(3)系统区表,存放各个区在物理存储器中的地址信息等。(4)进程区表,用于存放各区的起始虚地址及指向系统区表中对应区表项的指针。,22,谢谢观赏,2019-5-18,1进程表项(Process Table Entry)用于描述和控制一个进程的信息通常都很多,其中有些是经常要被访问的,如进程标识符、进程状态等。为了提高对这些信息访问的效率,系统设计者将这些信息放在进程表项中,又称之为Proc表或Proc结构,使之常驻内存。在每个进程表项中,含有下述一些具体信息:(1)进程标识符(PID),也称内部标识符,为方便用户使用,这里惟一地标识一个进程的某个整数。(2)用户标识符(
17、UID),标识拥有该进程的用户。,23,谢谢观赏,2019-5-18,(3)进程状态,表示该进程的当前状态。(4)事件描述符,记录使进程进入睡眠状态的事件。(5)进程和U区在内存或外存的地址,核心可利用这些信息做上、下文切换。(6)软中断信息,记录其它进程发来的软中断信号。(7)计时域,给出进程的执行时间和对资源的利用情况。(8)进程的大小,这是核心在为进程分配存储空间时的依据,包括正文段长度和栈段长度等。,24,谢谢观赏,2019-5-18,(9)偏置值nice,供计算该进程的优先数时使用,可由用户设置。(10)P_Link指针,这是指向就绪队列中下一个PCB的指针。(11)指向U区进程正文
18、、数据及栈在内存区域的指针。,25,谢谢观赏,2019-5-18,2U区(U Area)为了存放用于描述和控制进程的另一部分信息,系统为每一个进程设置了一个私用的U区,又称之为User结构,这部分数据并非常驻内存,其中含有下述信息:(1)进程表项指针,指向当前(正在执行)进程的进程表项。(2)真正用户标识符u-ruid(real user ID),这是由超级用户分配给用户的标识符,以后,每次用户在登录进入系统时,均须输入此标识符。,26,谢谢观赏,2019-5-18,(3)有效用户标识符u-euid(effective user ID),在一般情况下,它与ruid相同,但在其他用户允许的情况下
19、,可用系统调用setuid将它改变为其他用户标识符,以获得对该用户的文件进行操作的权力。(4)用户文件描述符表,其中记录了该进程已打开的所有文件。(5)当前目录和当前根,用于给出进程的文件系统环境。(6)计时器,记录该进程及其后代在用户态和核心态运行的时间。,27,谢谢观赏,2019-5-18,(7)内部I/O参数,给出要传输的数据量、源(或目标)数据的地址、文件的输入/输出偏移量。(8)限制字段,指对进程的大小及其能“写”的文件大小进行限制。(9)差错字段,记录系统调用执行期间所发生的错误。(10)返回值,指出系统调用的执行结果。(11)信号处理数组,用于指示在接收到每一种信号时的处理方式。
20、,28,谢谢观赏,2019-5-18,3系统区表(System Region Table)系统把一个进程的虚地址空间划分为若干个连续的区域:正文区、数据区、栈区等。这些区是可被共享和保护的独立实体。多个进程可共享一个区,例如,多个进程共享一个正文区,即几个进程将执行同一个(子)程序。同样,多个进程也可共享一个数据区。为了对区进行管理,在核心中设置了一个系统区表(简称区表),在各表项中记录了以下有关描述活动区的信息:,29,谢谢观赏,2019-5-18,(1)区的类型和大小。(2)区的状态。一个区有这样几种状态:锁住、在请求中、在装入过程、有效(区已装入内存)。(3)区在物理存储器中的位置。(4
21、)引用计数,即共享该区的进程数。(5)指向文件索引结点的指针。,30,谢谢观赏,2019-5-18,4进程区表(Process Region Table)为了记录进程的每个区在进程中的虚地址,并通过它找到该区在物理存储器中的实地址,系统为每个进程配置了一张进程区表。表中的每一项记录一个区的起始虚地址及指向系统区表中对应的区表项的指针。这样,核心可通过查找进程区表和系统区表,将区的逻辑地址变换为物理地址。可见,进程区表和系统区表用于对区地址进行映像(射)。这里用两张区表实现地址映射,是为了便于实现对区的共享。,31,谢谢观赏,2019-5-18,图10-2示出A和B两个进程的进程区表和系统区表。
22、在A进程区表中的正文区、数据区和栈区中的指针,分别指向相应于a、b、c区的系统区表项。由于A和B进程共享正文区,故它们都指向同一个正文区a。一个进程的数据结构是由上述的进程表项、U区、进程区表与系统区表项所组成的,它们之间的关系如图10-3所示。,32,谢谢观赏,2019-5-18,图10-2进程区表项、系统区表项和区的关系,33,谢谢观赏,2019-5-18,图10-3进程的数据结构,34,谢谢观赏,2019-5-18,10.2.2进程状态与进程映像1进程状态在UNIX内核中,为进程设置了如图10-4所示的9种状态。,35,谢谢观赏,2019-5-18,图10-4进程的状态转换,36,谢谢观
23、赏,2019-5-18,(1)执行状态。这表示进程已获得处理机而正在执行。UNIX系统把执行状态又进一步分为两种:一种是用户态执行,表示进程正处于用户状态中执行;另一种是核心态执行,表示一个应用进程执行系统调用后,或I/O中断、时钟中断后,进程便处于核心态执行。这两种状态的主要差别在于:处于用户态执行时,进程所能访问的内存空间和对象受到限制,其所占有的处理机是可被抢占的;而处于核心态执行中的进程,则能访问所有的内存空间和对象,且所占用的处理机是不允许被抢占的。,37,谢谢观赏,2019-5-18,(2)就绪状态。这是指进程处于一种只需再获得处理机便可执行的状态。由于UNIX内核提供了对换功能,
24、因而又可把就绪状态分为“内存中就绪”和“就绪且换出”两种状态。当调度程序调度到“内存中就绪”状态的进程时,该进程便可立即执行;而调度到“就绪且换出”状态的进程时,则须先将该进程映像全部调入内存后,再使其执行。,38,谢谢观赏,2019-5-18,(3)睡眠状态。使一个进程由执行状态转换为睡眠状态的原因有许多,如因进程请求使用某系统资源而未能得到满足时;又如进程使用了系统调用wait()后,便主动暂停自己的执行,以等待某事件的出现等。在UNIX中把睡眠原因分为64种,相应地,最多也可设置64个睡眠队列。同样,由于对换功能的原因又可将睡眠状态分为“内存睡眠”状态和“睡眠且换出”状态。当内存紧张时,
25、在内存中睡眠的进程可被内核换出到外存上,相应地,此时进程的状态便由“内存睡眠”状态转换为“睡眠且换出”状态。,39,谢谢观赏,2019-5-18,(4)“创建”与“僵死”状态。创建状态是指利用fork系统调用来创建子进程时,被创建的新进程所处的状态;僵死状态是在进程执行了exit系统调用后所处的状态,此时该进程实际上已不存在,但还留下一些信息供父进程搜集。(5)“被抢占”状态,也称为“被剥夺状态”。当正在核心态执行的进程要从核心态返回到用户态执行时,如果此时已有一优先级更高的进程在等待处理机,则此时内核可以抢占(剥夺)已分配给正在执行进程的处理机,去调度该优先级更高的进程执行。这时,被抢占了处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 UNIX 系统 内核 结构 课件

链接地址:https://www.31ppt.com/p-3866292.html