操作系统原理_庞丽萍_第十章UNIX操作系统_第1页
操作系统原理_庞丽萍_第十章UNIX操作系统_第2页
操作系统原理_庞丽萍_第十章UNIX操作系统_第3页
操作系统原理_庞丽萍_第十章UNIX操作系统_第4页
操作系统原理_庞丽萍_第十章UNIX操作系统_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 (一) UNIX操作系统的类型 (二) UNIX操作系统的界面 (三) UNIX系统的进程 (四) UNIX系统进程调度算法 (五) UNIX系统的存储管理 (六) UNIX系统的设备管理 (七) UNIX系统的文件系统 第十章第十章 UNIXUNIX操作系统操作系统 2 一一. UNIX操作系统的类型操作系统的类型 UNIX操作系统是一个交互式的多用户分时系统。 二二. UNIX操作系统的特点操作系统的特点 1. 移植性好 2. 配置灵活 3. 良好的界面 4. 安全机制较为完善 5. 网络功能比较完备 3 三三. UNIX操作系统的结构操作系统的结构 1. UNIX系统体系结构系统体系

2、结构 4 2. UNIX核心结构核心结构 系 统 调 用 界 面 程 序 库 进程控制 子系统 进程通信 进程调度 存储管理 文件子系统 高速缓冲 字符设备 块设备 设备驱动程序 用户程序 硬 件 控 制 硬 件 5 一一. UNIX操作系统提供的用户界面操作系统提供的用户界面 1. 键盘命令shell 2. 系统调用 二二. shell 概述概述 shell不仅是命令语言,也是一种程序设计语言。 1. 命令语言命令语言 shell 称为命令解释程序。用户利用shell 提供的一组 操作命令,与操作系统核心进行通信 2. 程序设计语言程序设计语言 shell具有程序设计语言的特点: 具有控制语

3、句、循环语句、参数传递、变量和字符 替换等; 具有子程序调用及中断处理能力。 6 三三. UNIX的的系统调用系统调用 1. 有关进程管理的系统调用有关进程管理的系统调用 如:fork:建立一个进程 exec:执行一个文件 wait:等待子进程 exit: 进程中止 2. 与文件和外设管理有关的系统调用与文件和外设管理有关的系统调用 如:open:打开文件 close:闭文件 read: 读文件 write:写文件 lseek:修改读写指针 creat :建立并打开文件 3. 与系统状态有关的系统调用与系统状态有关的系统调用 如:getuid:取用户号 setuid:设置用户号 getgid:

4、取用户组号 setgid:设置用户组号 times: 取进程执行时间 stat: 读取文件状态(i节点) 7 一一. UNIX系统进程的定义及组成系统进程的定义及组成 1. UNIX系统中进程映像系统中进程映像 UNIX系统中的进程又称为进程映像(image) 它是如何组成的?它是如何组成的? 程序、数据、程序、数据、PCB结构结构 8 (1) 进程控制块结构进程控制块结构 基本控制块 proc结构结构 常驻内存,有关进程的重要信息 扩充控制块 user结构结构 非常驻内存,进程运行时,才调入内存 (2) 程序程序 正文段正文段由struct text 描述 proc结构中由p_textp指示

5、。 (3) 数据数据 用户数据区和用户栈用户数据区和用户栈 与系统栈和user结构一起构成进程数据段。 9 2. UNIX系统进程的组成系统进程的组成 进程基本控制块proc结构 正文段 数据段:用户栈 用户数据区 核心栈 user结构 proc 正 文 段 用户栈 用户数据区 核心栈 user 数 据 段 ppda 10 4. 进程基本控制块进程基本控制块proc结构的内容结构的内容 truct proc char p_stat; /* 进程状态 */ char p_flag; /* 进程特征 */ char p_pri; /* 进程优先数 */ char p_sig; /* 软中断号 */

6、 char p_ uid; /* 用户号 */ char p_time; /* 驻留时间 */ char p_cpu; /* 有关进程调度的时间变量 */ char p_nice; /* 用于计算优先数 */ int p_ ttyp; /* 控制终端tty结构的地址 */ int p_ pid; /* 进程号 */ int p_ ppid; /* 父进程号 */ int p_ addr; /* 数据段地址 */ int p_ size; /* 数据段大小 */ int p_wchan; /* 等待的原因 */ int p_ textp; /* 对应正文段的text项地址 */ procNPRO

7、C; 11 5. 进程扩充控制块进程扩充控制块user结构的内容结构的内容 struct user int u_ rsav2; /* 保留现场保护区指针 */ char u_ segflg; /* 用户/核心空间标志 */ int u_ procp; /* proc结构地址 */ char *u_ base; /* 主存地址 */ char *u_ count; /* 传送字节数 */ char *u_ offset2; / * 文件读写位移*/ int *u_ cdir; / * 当前目录i节点地址 */ char *u_ dirp; /* i节点当前指针 */ int u_ ofileNO

8、FILE;/* 用户打开文件表,NOFILE=15 */ int u_ tsize; /* 正文段大小 */ int u_ dsize; /* 用户数据区大小 */ int u_ ssize; /* 用户栈大小 */ int u_ utime; /* 用户态执行时间 */ int u_ stime; /* 核心态执行时间 */ int u_ cutime; /* 子进程用户态执行时间 */ int u_ cstime; /* 子进程核心态执行时间 */ u; 12 二二. UNIX的进程运行环境的进程运行环境 进程上下文进程上下文 1. 进程上下文的内容进程上下文的内容 UNIX系统称进程的运

9、行环境为进程上下文。包括: 用户地址空间进程的代码段、数据段、用户栈、 共享内存区; 与该进程有关的核心数据结构proc表、user结 构、页表、核心栈; 硬件寄存器的内容进程运行时各寄存器的内容。 2. UNIX系统进程的上下文具有三个不同的层次系统进程的上下文具有三个不同的层次 用户级上下文 寄存器上下文 系统级上下文 13 (1) 用户级上下文 用户级上下文 进程的代码、数据、共享内存、用户栈 该级上下文处于进程虚地址空间 在请求页式系统中,该级上下文内容不必全部进入 内存。 (2) 系统级上下文系统级上下文 进程表表项每个进程的proc结构 进程user结构 进程区表表项、页表 用于从

10、虚地址到物理地址的转换 进程核心栈 14 (3) 寄存器级上下文寄存器级上下文 进程运行时机器中各硬件寄存器的值 程序计数器PC 处理机状态寄存器PS 栈指针SP 通用寄存器组:保存进程运行过程中所产生的中间 结果 以上各寄存器在计算机系统中只有一组。 15 三三. UNIX系统进程的状态及变迁系统进程的状态及变迁 1. UNIX系统进程的状态系统进程的状态 (1) 运行状态运行状态 进程对应的程序正在处理机上运行。 状态 p_ stat设置为SRUN。 标志 p_ flag中的SLOAD=1,表示该进程映像全部在主 存中。 核心态下的主存管理机制正指向进程数据区ppda。 (2) 就绪状态就

11、绪状态 在主存中就绪:在主存中就绪: 状态 p_ stat设置为SRUN 标志 p_ flag中的SLOAD=1 核心态下的主存管理机制不指向该进程的ppda 16 就绪且换出就绪且换出 进程处于就绪状态,但它正存放在辅存上 状态 p_ stat设置为SRUN。 标志 p_ flag中的SLOAD=0 (3) 睡眠状态睡眠状态 进程为了等待某种事件发生而被迫暂时停止前进 高优先睡眠高优先睡眠 进程因等待较紧迫的事件而进入睡眠状态。 状态 p_ stat设置为SSLEEP 标志 p_ flag中SLOAD=1(或=0) 在什么情况下,进程进入高优先睡眠状态?在什么情况下,进程进入高优先睡眠状态?

12、 0#进程睡眠时,优先数= 100 因请求资源得不到满足的进程,优先数= 50 进程请求读写快速设备时,优先数= 50 17 低优先睡眠低优先睡眠 进程等待的事件不那么紧迫,则进入低优睡眠(或称 等待)状态 状态 p_ stat设置为SWAIT 标志 p_ flag中的SLOAD=1(或=0) 在什么情况下,进程进入低优先睡眠状态?在什么情况下,进程进入低优先睡眠状态? 进程在用户态下运行,进行同步操作时, 优先数=90 进程等待低速字符设备I/O操作而睡眠, 优先数=10 (4) 创建状态创建状态: 进程刚被创建时处于变迁状态 (5) 僵死状态僵死状态: 进程执行了系统调用exit后处于僵死

13、 (zombie)等待父进程作善后处理。其他资源都已放弃, 只剩下一个记录(包含:计时统计等) 等待父进程收集。 18 2. UNIX系统进程状态的变迁系统进程状态的变迁 运行 核心态 用户态 中断 自陷 返回 僵死 在主存 中就绪 高 优 先 睡 眠在主存 高优先睡 眠且换出 就绪 且换出 创建 fork 主存 充足 wakeup wakeup wakeup swtch sleep sleep exit 被抢占 换出换入 换出换出 主存不 充足 主存 盘交换区 低 优 先 睡 眠在主存 低优先睡 眠且换出 19 一一. UNIX进程调度算法进程调度算法 UNIX系统采用可强占式的进程优先数调

14、度算法。在进 程调度时机来到时,总是选取优先权最高的进程去运行。 二二. UNIX进程优先数的确定进程优先数的确定 1. 设置设置 当进程需睡眠时,设置其优先数。由不同的睡眠原因 决定其大小。 等待紧迫的事件,该进程的优先数设置为负值 等待慢速设备I/O、进程间同步,该进程的优先数设 置为正值。 20 2. 计算计算 (1) 当进程从核心态返回用户态时,或自陷返回时,系 统计算该进程的优先数 p_pri = (p_cpu / 2) + p_nice + 基值 (2) 在时钟中断处理程序中 每隔20ms,将正在运行的进程的p_cpu 计算一次, 算式为 p_cpu + 1 每隔1s ,时钟中断处

15、理程序对所有的就绪进程计 算 p_cpu 的衰减量。算式为 p_cpu / 2 然后,计算新的p_cpu,算式为: p_pri = (p_cpu / 2) + p_nice + 基值 21 三三. UNIX进程优切换调度程序进程优切换调度程序swtch 算法 swtch 输入:无 输出:无 保留现行进程的现场到其系统栈中; for (就绪队列中的每一个进程) 取在主存、就绪态、优先权最高的进程; if (没有找到满足条件的进程) 机器空闲等待; /* 下次中断使机器脱离空闲等待状态 */ 将选取的进程从就绪队列中移出; 切换到被选中进程的映像,恢复其运行; 22 一一. UNIX系统存储管理技

16、术系统存储管理技术 UNIX系统是一个多用户交互式分时操作系统 UNIX采用二种存储管理技术: 1. 对换技术对换技术(swap) 早期采用 在内存和交换设备之间传递整个进程 映像,而不是进程的一个部分。 2. 请求调页技术请求调页技术 在内存和交换设备之间传递存储页,而不是整个进程 的映像。 23 二二. UNIX系统请求调页数据结构系统请求调页数据结构 1. UNIX系统中的区和区表系统中的区和区表 UNIX system的核心把一个进程的虚地址空间分成若 干个逻辑区(region)。 (1) 区区 区是进程虚地址空间中的一段逻辑上独立的连续区 域。这个区域是可被共享和保护的独立实体。 区

17、的实例 进程的正文、数据、栈段 24 (2) 进程区表进程区表 每个进程有本进程区表,称为pregion表。每个区表 有若干个表项,表项的个数表示进程拥有的区的个数。 区表项的内容 该区在进程中的起始虚地址 该区的页表地址 区的大小,即为页表的页数 保护域,它指出了对应进程所允许的存取类型: 只读,读/写或读/执行。 25 (3) 进程区表的例进程区表的例 进程 A 区表 类别 区的起始 虚地址 大小和 保护 页表 始址 正文 8k 6 数据 14k 18 栈 32k 8 正文区页表 数据区页表 栈区页表 数据区页表 栈区页表 进程 B 区表 类别 区的起始 虚地址 大小和 保护 页表 始址

18、正文 6k 6 数据 12k 14 栈 26k 12 26 2. UNIX系统中的页和页表系统中的页和页表 UNIX system把一个进程的虚地址空间分成若干个 逻辑区,每个区又分若干个页面。 (1) 页面页面 页是UNIX进程虚地址空间的某个分区中的一个片。 每个区有一个页表,说明该区中的各页所在内存块 号及其他有关信息。 (2) 页表页表 页表的始地址由对应的区表表项中的页表始址指 示。 页表的大小 页表表项的数目为页表的的大小 27 (3) 页表内容页表内容 物理块号 保护位 指示该页是否允许进程读、写或执行 页号 块号 年龄 修改 访问 有效 保护 对换设备 磁盘块号 持请调而设的下

19、列位域: 有效位(valid bit) 指示该页的内容是否有效。 若为1,该页有效,即该页在主存 访问位 (reference bit) 指示该页最近是否被访问。 修改位 (modify bit) 指示最近是否有进程修改 了该页的内容。 年龄位 (age bit) 记录该页作为一个进程的工作 集中的一页有多长时间了。 28 二二. UNIX系统的地址变换系统的地址变换 1. 分页机构分页机构 p w 311090 P字段中的最高位:确定该地址所在的区段 P字段中余下的位:确定该地址在该区段中的页号 W字段:确定该地址所在的区段中页对应的块号 29 2. 例:例:某程序地址为68432,试说明地

20、址变换的步骤 68432=65536+2048+512+256+64+16 000010110 1010000 9 0 10 31 p=1000010,最高为1处为64K位,说明该地址在栈区内, 剩余的位说明页号,P=2。 页内位移 w=1101010000 = 848 以 p=2 为索引查栈区页表得块号为986K 最终的物理地址为986K848 30 一一. 缓冲技术缓冲技术 为了进一步解决CPU和I/O设备间速度不匹配的矛盾, 引入了缓冲技术。 1. 什么是缓冲什么是缓冲 缓冲是两种不同速度的设备之间传输信息 时平滑传输过程的常用手段。 2. 缓冲器缓冲器 缓冲器是用来暂时存放数据的一种存

21、储装置,它容量 较小,存取速度快。 31 一一. UNIX系统缓冲区管理缓冲技术系统缓冲区管理缓冲技术 1. 目的目的 加快系统响应、增强系统吞吐量 减少对磁盘的I/O操作次数 2. 主要思想主要思想 当进程要从磁盘读数据时,首先考虑从高速缓冲 中读 当进程要写数据到磁盘时,先写入高速缓冲中 预先缓存预先缓存 延迟发送延迟发送 32 3. 缓冲区管理数据结构缓冲区管理数据结构 一个缓冲区由两部分组成: 缓冲数组:含有磁盘上的数据的存储器数组 缓冲首部:描述缓冲区特性的数据结构 (1) 缓冲首部结构缓冲首部结构 设备号 dev 块号 blkno 状态 flag 指向数据区域的指针 传送字节数 返

22、回的I/O出错信息 b_forw 设备缓冲区队列前向指针 b_back 设备缓冲区队列后向指针 av_forw 空闲缓冲区队列前向指针 av_back 空闲缓冲区队列后向指针 33 设备号dev:缓冲区内所包含的信息所属设备的设备号 块号blkno:由设备号指出的设备上相对于第0块的物理块号 状态flag: 描述了缓冲区当前的状态 忙标志BUSY: 缓冲区当前正“忙”,或说是“上锁”状态 有效位AVE: 缓冲包含的数据有效 延迟写DELWR:核心在某缓冲区重新分配出去之前必须把缓 冲区内容写到磁盘上 写标志WRITE: 核心当前正把缓冲区的内容写到磁盘上 读标志READ: 核心当前正从磁盘往缓

23、冲区写信息 等待位WAIT: 一个进程当前正在等候缓冲区变为空闲 34 (2) 缓冲队列结构缓冲队列结构 设备缓冲区队列和空闲缓冲区队列 设备缓冲区队列与某类设备有关的所有缓冲区 组成的队列称为设备缓冲区队列,简称b链。 空闲缓冲区队列可供重新分配使用的缓冲区组 成的队列称为空闲缓冲区队列,简称av链。 av_forw av_back av_forw av_back av_forw av_back av_forw av_back 空闲缓冲区队列 b_forw b_back b_forw b_back b_forw b_back b_forw b_back 设备缓冲区队列 35 4. UNIX缓

24、冲管理算法缓冲管理算法 (1) 一个buf被分配用于读/写某设备上的块时: 置B_ BUSY=1,位于b链上,不在av链上; (2) 当读/写操作结束时: 释放该buf,置B_BUSY=0,仍留在b链上,并送入av链, 链入队尾; (3) 若进程需要的信息在buf中, 在该设备的b链上找到,置B_BUSY=1 从av链上摘除, 使用完后,又送入av链,链入队尾。 36 (4) 对空闲buf空队列的处理 当需要一个空闲buf时,总是取空闲buf队列(av链) 的首 元素; 一个使用过的buf释放时,插入到空闲buf队列(av链) 的 队尾。 实现了精确的最久未使用淘汰算法实现了精确的最久未使用淘

25、汰算法 (LRU算法算法) (5) 对延迟写的处理 当一个具有延迟写标记的buf移到av链头,要用于分配 时,立即进行写操作。从av链上摘除,使用完后,又送 入av链尾。 37 一一. UNIX文件系统的特点文件系统的特点 1. UNIX文件的特点文件的特点 树型文件目录结构 可安装拆卸的文件系统 基本文件系统:存储在根存储设备上 各子文件系统:存储在可拆卸的存储设备上 文件的逻辑结构是一个无结构的流式文件 将外部设备与文件一样对待 2. UNIX文件类型文件类型 (1) 普通文件: 用户程序、数据文件 (2) 目录文件 (3) 特别文件:与硬设备有关的文件。 块设备文件、字符设备文件 38

26、二二. UNIX系统文件卷结构系统文件卷结构 一个文件系统就是逻辑设备,每个逻辑设备占用一片 连续的磁盘存储空间。 文件卷上存放UNIX文件系统。文件卷结构图如下。 数据区 索引节点区引导块 超级块 1. 引导块 大小为一个磁盘块,包含引导程序。 2. 超级块 记录文件系统各种数据,如:文件系统大小、空闲块数目等。 3. 索引节点区 索引节点结构组成 4. 数据区 数据文件占用的区域。 39 三三. UNIX系统文件目录项结构系统文件目录项结构 UNIX每个目录项占16个字节,其中14个字节存放文件 名,2个字节存放i节点号。 四四. UNIX系统的索引节点系统的索引节点 UNIX系统把文件目录项中除了名字以外的信息全部 存放到一个数据块上,这种数据块就是文件索引节点 (index node),简称i节点。 文件名 i节点号 40 1. 磁盘索引节点的结构 文件所有者标识 i_uid,i_gid 地址索引表 i_addr13 文件类型 i_type 文件存取许可权 i_mode 联接计数 i_ilink 文件存取时间 i_time 文件长度 i_time 文件所有者标识:定义对一个文件具有存取权的用 户集合,分为文件所有者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论