操作系统简明教程

上传人:平*** 文档编号:48825183 上传时间:2018-07-21 格式:PPT 页数:31 大小:258.86KB
返回 下载 相关 举报
操作系统简明教程_第1页
第1页 / 共31页
操作系统简明教程_第2页
第2页 / 共31页
操作系统简明教程_第3页
第3页 / 共31页
操作系统简明教程_第4页
第4页 / 共31页
操作系统简明教程_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《操作系统简明教程》由会员分享,可在线阅读,更多相关《操作系统简明教程(31页珍藏版)》请在金锄头文库上搜索。

1、第6章 UNIX系统内核1 1l6.1 概 述UNIX系统是一个通用的、多用户、多任务分时操作系统.UNIX系统包括UNIX操作系统内核和运行 在内核之上的用户程序集、库,以及其它实用 工具,UNIX操作系统内核为这些应用提供运 行环境和各种系统服务。早期的系统核心是无序结构,模块(函数) 直接相互调用;而现在的UNIX版本都采用层 次结构。为了便于系统移植,实现了功能的可裁剪性 和规模的可伸缩性,Mach系统采用了微内核 结构和线程概念,支持Client/Server模型。2 2UNIX版本简介1) BSD伯克利小组做出了许多贡献,包括虚拟存储 、TCP/IP的集成、快速文件系统(FFS)、

2、可 靠的信号机制以及Socket等先进技术,尤其是 将TCP/IP网络协议族集成到了UNIX中.用伯克 利开发的新源代码替代了原来的UNIX源代码。3 32) System V在技术上,System V引入了许多新特征 和新设施,“区”结构的虚存实现与BSD截然不 同。SVR3增加了进程间通信设施(共享内存 、信号量和消息队列)、远程文件共享、共享 库以及用于设备驱动程序和网络协议的 STREAMS框架;SVR4则集成了SVR3、 4BSD、SUNOS以及XENIX的一些特征,增加 了新的功能,如实时调度、Kon Shell,并对 STREAMS系统进行了改进。4 41991年,Novell公

3、司收购了AT&T的UNIX实验 室,联合投资开发SVR4的桌面版,并集成了 Novell的Netware PC机网络操作系统,称作 UNIX Ware,于1992年末发行。之后新的 SVR4发行,较新的是SVR4.2/ES/MP,支持 多处理机并增强了系统安全性。1994年Sun Microsystem公司向Novell公司 购买了SVR4代码使用权,其基于SVR4的发行 称作Solaris,较新版本是Solaris2.5。 Solaris提供了许多先进功能,包括全抢占多 线程内核和对多处理机的全面支持等。5 53) MachMach是由卡内基 梅隆大学的研究人员开 发的一个全新的操作系统,支

4、持4BSDUNIX编 程接口,可以在单处理机或多处理机上运行, 适用于分布式环境。Mach的设计目标是微内核,内核仅提供必要功 能的最小集,同时提供一个在用户级实现其它 操作系统功能的框架,基本的方案是让微内核 对外开放几个简单的抽象概念,然后用一组称 为服务器的用户级任务提供大部分操作系统的 功能。Mach 3.0是第一个实现微内核的系统 。6 64) UNIX系统的商业版本UNIX的不断发展吸引了许多计算机公司,他们迫 切希望将UNIX商业化,出售自己的UNIX版本。这些版本都是以AT&T公司的System V或伯克 利的BSD为蓝本,将它们移植到自己的硬件上,并加 上一些自己的“增值”功

5、能,主要版本有基于4BSD的 SUN OS和基于SVR4的Solaris、微软与SCO合作发 行的XENIX、SCO UNIX(SVR3在386上的移植版本 )以及IBM公司的AIX、HP公司的HPUX和Digital 公司的UITRIX(Digital UNIX)等。此外,还有目前广泛流行的可运行于多种硬件平 台、源码公开且可免费使用的Linux操作系统。7 7l6.1.2 UNIX系统的特点 UNIX的小巧、稳定、简单内核、网络功能强等特 点和性能决定了它的成败。与Microsoft的 Windows NT相比,UNIX系统具有以下特点:1开放性开放性是指遵循国际标准规范,特别是遵循 了开

6、放系统互连OSI国际标准的系统能彼此兼容 ,可方便地实现互连。人们普遍认为,UNIX是 目前开放性最好的操作系统,它能广泛地配置在 从微机到大、中型机等各种机器上,而且还能方 便地将已配置了UNIX操作系统的机器互连成计 算机网络,这也是它被广泛应用的有力证明。8 8补充了解:POSIX标准是电子电气工程协会(IEEE)开发的一个独 立的Unix标准,这个新的ANSIUnix标准被称为 计算机环境的可移植性操作系统界面(PSOIX) 。这个标准限定了Unix系统如何进行操作,对系 统调用也做了专门的论述。PSOIX限制所有 Unix版本必须依赖大众标准,现有大部分Unix 和流行版本都是遵循P

7、OSIX标准的,而Linux从 一开始就遵循POSIX标准。9 92多用户、多任务环境UNIX系统是一个多用户、多任务操作系统 ,它既可以同时支持数十个乃至数百个用户, 通过各自的联机终端同时使用一台计算机,而 且还允许每个用户同时执行多个任务。例如, 在进行字符、图形处理时,用户可建立多个任 务,分别用于处理字符的输入、图形的制作和 编辑等任务。10103简洁的内核与丰富的核外程序有机结合UNIX的设计思想着眼于向用户提供包含有多 种工具,而且便于综合应用它们的程序设计环境 ,也就是构成一个能够提供各种服务的基础。在 这样的设计思想提导下,UNIX系统在结构上分 成两大层:内核和核外程序。1

8、111内核部分就是一般所说的UNIX操作系统,它包括进程管理、存储管理,设备管理、文 件系统管理等几个部分。UNIX设计者对内核功能作了仔细考虑,对 其中包含的数据结构和程序进行了精心设计, 使其非常精干简洁。因此内核只需占用很小的 存储空间,并且能够常驻内存,这就从根本上 保证了系统能够以较高效率运行。1212UNIX系统的核外部分包含有非常丰富的语 言处理程序、系统实用程序和开发软件的工具 性软件。在语言处理程序 UNIX提供有十几种常见程序设计语言的编 译和解释程序,如C、FORTRAN、C+、 JAVA等;语言开发工具 有YACC、LEX等。所有这些程序都作为 文件存放在文件系统中,用

9、户通过Shell命令 使用这些程序。正是这些系统软件给用户提供 了相当完备的程序设计环境。 13134树形结构的文件系统且将文件和设备统一处理UNIX具有一个树形结构的文件系统,它由 基本文件系统和可装卸的若干子文件系统组成。 它既能扩大文件存储空间,又有利于安全和保密 。在UNIX中,文件是无结构的字符序列,用户 可以按需任意组织其文件格式,对文件既可进行 顺序读、写,也可随机存取。另一方面,普通数据文件、文件目录表和外 部设备都统一做文件处理,它们在用户面前有相 同的语法语义,使用相同的保护机制,这样既简 化了系统设计,又便于用户使用。14145系统用高级语言编写,可移植性好UNIX操作系

10、统和核外程序基本上用C语言 编写,使得系统易于理解、修改和扩充,而且 使系统具有非常良好的可移植性。UNIX的可移植性有两方面的含义:首先指的是UNIX系统易于移植到别的硬件 系统上去;其次,在UNIX系统下开发的应用软件比较 易于移植到其它配置有UNIX的计算机系统上去 。15156强大的网络功能早期的UNIX系统是在单机上运行的,彼此 不能通信。伯克利受DARPA资助,将TCP/IP 协议族集成到4BSD中。目前UNIX系统支持许 多网络接口、协议和远程过程调用(RPC)机 制,集成了网络文件系统(NFS)和分布式计 算环境(DCE)等网络信息共享服务,为连网 、网络应用和基于网络的应用软

11、件开发提供了 强有力的支持。1616l6.1.3 UNIX系统的核心结构 UNIX系统可分为三层:硬件层、核心层和应用层。靠近硬件的是核心,即UNIX操作系统常驻内 存部分;用户在应用层通过核心对外提供的系统调用 和库函数接口来使用核心的功能。1717l6.2 进 程 管 理 l6.2.1 UNIX进程映象和进程状态1UNIX进程映象进程被描述为映象(image)的执行,而映 象则是计算机的执行环境,进程映象包括一 个存储映象、通用寄存器的值、打开文件的 状态以及当前目录等。System V中进程的存储器映象包括正文 段、数据段、共享内存段、系统栈、用户栈 和进程控制块(PCB)。进程控制块分

12、两个部分:常驻内存部分和 非常驻内存(proc和user)。 1818l2UNIX进程状态1919l6.2.2 进程控制1进程的创建(fork)2020fork算法要做下列操作: 取一个空闲的proc表项,指定惟一的PID号码; 标记子进程状态为“正被创建”; 从父进程的proc结构中复制数据到新建子进程的proc 结构中; 增加当前目录i节点和“更改过的文件根”(如可用的话) 上的计数值; 增加系统打开文件表中的计数值; 在内存建一个父进程映象的副本(包括user结构、正文 段、数据段和栈); 把各寄存器内容构成的系统环境记入子进程的运行环境 中,以后子进程被调度,就从此开始执行; 将子进程

13、状态改为“就绪”,子进程的PID号返回给父进 程。21212进程的等待(wait)wait算法是: 如果父进程没有子进程,则出错返回; 如果发现有一个终止的子进程,则取出 子进程的进程号,把子进程的CPU使用时间 等加到父进程上,释放子进程占用的proc表 项,以供新进程使用; 如果发现有子进程,但都不处于终止态 ,则父进程睡眠,等待由相应信号唤醒。22223进程的终止(exit) 其实现算法如下: 忽略所有的信号; 如果本进程是与控制终端相关的进程组中的“首领”,则向该 进程组的所有成员发送“挂起”信号,把所有成员的进程组号 置为0; 关闭全部打开文件; 释放当前目录; 释放与该进程有关的各

14、分区及其内存; 做统计记录(全局帐目文件); 置进程状态为“终止态”; 指定它所有子进程的父进程ID为初启进程(1#); 如果有任何子进程终止了,则向1# 进程发出子进程终止的信 号; 向它的父进程发送子进程终止的信号; 执行进程调度。23234进程映象的更换(exec) 原因:如子进程不改变其映象,就必然重复父进程 的过程。为此,要改变子进程的映象,使其执行 另外的特定程序(如命令所对应的程序)。改换进程映象的工作很复杂,是由系统调用exec 实现的,它用一个可执行文件的副本来覆盖该进 程的内存空间。其基本算法如下: 取文件i节点; 验证文件的可执行性,即用户有权执行它; 读文件头,检查该文

15、件是否可执行; 根据文件头中的信息,对隶属该进程的全部分 区(正文段、数据段等)分配新的分区;2424 将这些分区链接到进程;如果适宜,则把分区装 入内存。 把exec参数复制到新的用户栈区; 设置用户寄存器(如用户栈指针、程序计数器等 ),以便返回到用户态; 释放文件的i节点。2525l6.2.3 进程调度 1调度的策略、时机和算法动态优先级的多级反馈队列轮转法即从可运行的优先数最小(优先权最大) 的队列中选取一个进程映象投入运行。核心为该 运行进程分配一个时间片,当时间片用完后, CPU被另外的进程抢占,而原进程被送回次高优 先级队列的末尾,核心动态调整用户态进程的优 先级。2626核心进

16、行进程调度的时机:(1) 进程调用sleep程序;(2) 进程终止;(3) 进程在内存中暂停;(4) 进程从系统调用返回到用户态时,但它并不 是最适宜运行的进程;(5) 核心处理完中断后,进程回到用户态,但存 在比它更适宜运行的进程。2727调度进程的算法如下:调度进程算法 输入:无输出:无while(没有进程被选中执行)for(所有在就绪队列中的进程)选出优先级最高且在内存的一个进程;if(没有合适进程可以执行)机器作空转;/ *当中断发生后,使机器摆脱空转*/从就绪队列中移走该选中进程;切换选中进程的上、下文,令其运行;28282进程优先级的确定和优先数的计算2929System V进程优先数计算公式为:PPri=Pcpu/2+PUSER+Pnice+NZERO以上进程优先数计算方法体现了如下策略:正在运行的进程占用CPU的时间越久,其优 先数越大,优先级越低;内存就绪态进程排队时 间越长,其优先数逐渐降低

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号