已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章 UNIX系统内核结构,主要内容,概述 进程控制子系统 文件子系统,10.1 概述,UNIX系统是多用户、多任务OS,可用在微型、小型、大型和多处理机系统。 UNIX最初用汇编语言编写,后用B语言重写,现在使用的是C语言版。 UNIX在不同公司使用不同的名字。 在UNIX系统上最早使用了TCP/IP网络协议。,UNIX系统的特征,开放性 所谓开放性是指系统遵循国际标准规范; 多用户、多任务环境 功能强大,实现高效 提供了丰富的网络功能 支持多处理器功能,UNIX系统的内核结构,最低层是硬件 次低层是OS核心 上面第二层是OS与用户的接口Shell以及编译程序等 最高层是应用程序,核心层:包括进程管理、存储器管理、设备管理和文件管理。整个核心层又可分为两个子系统:进程控制子系统和文件子系统 接口:核心与硬件的接口;核心与Shell的接口,进程控制子系统,进程控制 fork;exit等 进程通信 存储器管理 采取段页式及虚拟存储管理 进程调度 按动态优先数轮转调度算法,文件子系统,文件管理 高速缓冲机制 设备驱动程序,10.2 进程的描述与控制,在UINIX 5中采用了段页式存储管理方式 在该系统中段称为区(Region),包括:正文程序区,数据区,栈区和共享存储区等. 每个区又分成若干个页. 每个进程配置一个进程控制块,10.2.1 进程控制块PCB,进程表项 包括最常用的核心数据 U区 用于存放进程表项的一些扩充数据 进程区表 用于存放各区的起始虚地址及指向系统区表中对应区表项的指针 系统区表 存放各个区在物理存储器中的地址信息等,1.进程表项,进程标识符 用户标识符 进程状态 事件描述符 进程和U区在内存或外存的地址 软中断信息 计时域 进程的大小,1.进程表项(续),偏置值nice P-Link指针 指向U区进程正文、数据及栈在内存区域的指针,2.U区,进程表项指针 真正用户标识符 有效用户标识符 用户文件描述符表 当前目录和当前根 计时器 内部I/O参数 限制字段 差错字段 返回值 信号处理数组,3.系统区表,区的类型和大小 区的状态 区在物理存储器中的位置 引用计数 指向文件索引结点的指针,4.本进程区表,为了记录进程的每个区在进程中的虚地址,并通过它找到该区在物理存储器中的实地址,系统为每一个进程配置了一张进程区表 表中的每一项记录一个区的起始虚地址及指向系统区表中对应的区表项的指针.,正文,数据,栈,正文,数据,栈,A 进 程 区 表,B 进 程 区 表,a,b,c,d,e,进程区表、系统区表项和区的关系,10.2.2 进程状态与进程映像,1.进程状态,执行状态 就绪状态 睡眠状态 “创建”与“僵死”状态 “被抢占”状态,说明: 执行状态又分为用户态和核心态 就绪又分为内存中就绪和就绪且换出 睡眠又分为内存睡眠和睡眠且换出,2.进程映像,用户级上下文 主要成分是用户程序,在系统中分为正文区和数据区 寄存器上下文 系统级上下文 包括OS为管理该进程所用的信息,分为静态和动态两部分,10.2.3 进程控制,fork 用于创建一个新进程 exec 改变进程的原有代码 exit 实现进程的自我中止 wait 将调用进程挂起、等待子进程中止 getpid 获取进程标识符 nice 改变进程的优先级,1.fork系统调用,为新进程分配一个进程表项和进程标识符 检查同时运行的进程数目 拷贝进程表项中的数据 子进程继承父进程的所有文件 为子进程创建进程上下文 子进程执行,2.exec系统调用,对可执行文件进行检查 回收内存空间 分配存储空间 参数拷贝,3.exit系统调用,关闭软中断 回收资源 写记帐信息 置进程为“僵死”状态,10.2.4 进程调度与切换,1.引起进程调度的原因 1)每隔一定时间重新调度 2)执行了wait、exit及sleep后重新调度 3)从核心态返回到用户态时,若有更高优先级的优先调度 2.调度算法 采用动态优先数轮转调度算法 3.进程优先级的分类 4.进程优先数的计算 优先数最近使用CPU的时间/2+基本用户优先数 5.进程切换,10.3 进程的同步与通信,早期提供了sleep和wakeup同步机制、管道机制和信号机制 在UNIX V中增加了用于进程通信的软件包IPC,包括消息机制、共享内存机制及信号量机制,10.3.2 信号机制,信号机制与中断机制的相似之处: 同样采用异步通信方式,在检测出有信号或有中断请求时,两者都是暂停正在执行的程序而转去执行相应的处理程序 两者对信号或中断都可加以屏蔽,信号与中断的差异:,中断有优先级,而信号没有 信号处理程序是在用户态下运行的,中断处理程序是在核心态下运行 中断响应是及时的,对信号的响应通常有较长的时间延迟,10.3.3 管道机制,1.管道的类型,1)无名管道,无名管道是一个临时文件,只有调用pipe的进程 及其子孙进程才能利用无名管道进行通信,2)有名管道,利用mknod系统调用建立,在文件系统中长期存在.,10.4 存储器管理,提供了对换机制 支持请求调页存储管理方式,10.4.1 请求调页管理的数据结构,页表和磁盘描述表 页框数据表和对换使用表,1)页表,页框号 年龄位 访问位 修改位 有效位 写时拷贝 保护位,2)磁盘块描述表,对换设备号 设备块号 存储器类型 分为File和Disk,3)页框数据表,页状态 内存引用计数 逻辑设备 块号 指针1 指向空闲页链表中的下一个页框数据表的指针 指针2 指向散列队列中下一个页框数据表的指针,4)对换使用表,对换设备上的每一页占有对换使用表的一个表项,表项中含有一个引用计数,其数值表示有多少页表项指向该页.,10.4.2 换页进程,主要任务: 每隔一定时间,对内存中的所有有效页的年龄加1; 当有效页的年龄达到规定值后,将它换出,1.增加有效页的年龄,一个页的最大年龄取决于硬件 当年龄达到最大值时,便处于换出状态 若换出状态的页已被进程访问过,则将其年龄降为零,2.对换出页的几种处理方式,若对换设备上已有被换出页的拷贝,且该页内容未被修改 若对换设备上没有被换出页的拷贝 若对换设备上已有被换出页的拷贝,但该页的内容已被修改过,10.4.3 请求调页,缺页在可执行文件上 缺页在对换设备上 缺页在内存页面缓冲区中,10.5.1 字符设备缓冲区管理,1.空闲字符缓冲区队列: 每个缓冲区的大小为70个字节 cblock结构中包括四项内容:第一个字符和最后一个字符的位置 、指向下一个缓冲区的指针和存放字符的缓冲区 采用栈管理,2.空闲字符缓冲区的分配和回收 对空闲缓冲队列需互斥访问,10.5 设备管理,10.5.2 块设备缓冲区管理,1.盘块缓冲区及其首部,盘块缓冲区由两部分组成:一部分用于存放数 据本身,令一部分是缓冲控制块,也称缓冲首部, 用于存放对应缓冲区的管理信息.,缓冲首部包括:,设备号,块号,状态bflag,缓冲区指针,散列队列的前向指针,散列队列的后向指针,空闲表上的前向指针,空闲表上的后向指针,2.盘块缓冲池结构,(1)空闲链表 是一个双向链表 获得空闲区:getblk 释放缓冲区:brelse,(2)散列队列 为了加速对缓冲区的查找,系统把所有缓冲区按其块号所计算的散列值的不同组织成多个队列. 一个空闲缓冲区同时链入两个队列,10.5.3 内核与驱动程序接口,1.设备开关表 为了能方便地找到各函数的入口地址,使系统控制能方便地转向各函数,系统为每类设备提供了一个设备开关,其中含有各函数的地址,2.块设备开关表,函数,表项,0,1,open,close,strategy,gdopen,gdclose,gdstrategy,gtopen,gtclose,gtstrategy,10.5.5 磁盘读、写程序,1.磁盘的读写方式 1)读方式 一般读方式 由bread过程完成 提前读方式 由breada过程完成 2)写方式 一般写方式: 由bwrite完成,进程需等待 异步写方式:调用bawrite,进程无需等待 延迟写方式:调用bdwrite,10.6 文件管理,1.UNIX文件系统的特点 (1)采用树形结构 (2)物理结构为混合索引式文件结构 (3)采用成组链接法 (4)引入了索引结点的概念,2.文件系统的结构,10.6.1 UNIX文件系统概述,3.文件系统的资源管理,当文件处于未打开状态时,文件需占用三种资源: (1)一个目录项 (2)一个磁盘索引结点项 (3)若干个盘块,当文件被引用或打开时:,一个内存索引结点项 文件表中的一个登记项 用户文件描述符表中的一个登记项,对文件的管理包括:,(1)对索引结点的管理 (2)对空闲盘块的管理 (3)对目录文件的管理 (4)对文件表和描述符表的管理 (5)对文件的使用,10.6.2 文件的物理结构,1.寻址方式 直接寻址 一次间接寻址方式 多次间接寻址,2.地址转换,1)将字节偏移量转换为文件逻辑块号 2)把文件逻辑块号转换为物理盘块号,10.6.3 索引结点的管理,1.超级块 在UNIX系统中,0号盘块用于系统引导;1号为超级块. 超级块是专门用于记录文件系统中盘块和磁盘索引结点使用情况的一个盘块,超级块的内容:,文件系统的盘块数目 空闲盘块号栈 当前空闲盘块号数目 空闲磁盘i结点号栈 空闲磁盘i结点数目 空闲盘块编号栈的锁字段 空闲磁盘i结点栈的锁字段 超级块修改标志 修改时间,2.磁盘索引结点的分配和回收,1)分配过程ialloc (1)检查超级块是否上锁 (2)检查i结点栈空否 (3)从空闲i结点编号栈中分配一个i结点,并初始化 (4)分配内存i结点 (5)将磁盘i结点总数减1,并在置超级块的修改标志后返回.,2)回收过程,检查超级块是否上锁 检查I结点编号栈满否 若编号栈未满,便将回收的I结点的编号进栈 置超级块修改标志后返回,3.内存索引结点的分配与回收,1)分配过程iget 主要功能:是在打开文件时,为之分配内存I结点. 2)回收过程iput,10.6.4 空闲磁盘空间的管理,1.文件卷的组织,0#1#2#K#K+1#N#,1#块用于系统引导或空闲;2#块为超级块,用 于存放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《行政管理学》历年考研真题
- 广东省7月自学考试5现代公司管理试题答案
- 2023白云区社区工作者考试真题解析
- -2工业企业管理复习题
- 2025年吉林公务员行测考试真题及答案-甲级
- 健康疾病与安全用药试题2
- 山西水利职业技术学院教师招聘考试历年真题库
- 2025年大学生网络安全知识竞赛题库及答案(十一)
- 2025年安全员B证考试试卷附答案详解【黄金题型】
- 公务员行测资料分析基础题库及答案
- 头颈部鳞癌治疗现状及免疫治疗进展
- 海运出口流程图
- 吴《园林植物配置技术》课件
- 公路养护应急预案
- 隔膜泵真空泵工安全操作规程
- 水浒传人物吴用
- 2023年河南省安阳豫北水利勘测设计院有限公司招聘笔试题库含答案解析
- 2023 可靠性设计基础试卷
- 部编版小学道德与法治六年级下册第4课《地球-我们的家园》公开课课件
- 群落的演替课件
- GB/T 9995-1997纺织材料含水率和回潮率的测定烘箱干燥法
评论
0/150
提交评论