版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-7-12UNIX系统内核结构概述1 9.1 UNIX9.1 UNIX系统概述系统概述 9.2 9.2 进程的描述和控制进程的描述和控制 9.3 9.3 进程的同步与通信进程的同步与通信 9.4 9.4 存储器管理存储器管理 9.5 9.5 设备管理设备管理 9.6 9.6 文件管理文件管理 2021-7-12UNIX系统内核结构概述2 9.1.1 UNIX系统的发展史系统的发展史 1. UNIX系统的发展系统的发展 2. 两大集团对峙两大集团对峙 OSF集团与集团与UI集团集团 3. 网络操作系统网络操作系统UNIX 2021-7-12UNIX系统内核结构概述3 开放性 2) 多用户
2、、 多任务环境 3) 功能强大, 实现高效 4) 提供了丰富的网络功能 5) 支持多处理器功能 2021-7-12UNIX系统内核结构概述4 u硬件硬件 uOS核心核心 u进程控制子系统(进程控制子系统(负责为将要执行的程序和数据文件分负责为将要执行的程序和数据文件分 配内存空间,并负责调度、控制并发进程的执行、进程通配内存空间,并负责调度、控制并发进程的执行、进程通 信和内存管理)信和内存管理) u文件子系统(存放、管理暂时不被处理机执行的程序文件子系统(存放、管理暂时不被处理机执行的程序 和数据,分配空间,控制文件存取和为用户检索信息和数据,分配空间,控制文件存取和为用户检索信息 ) uS
3、hell接口与编译程序接口与编译程序 u应用程序应用程序 2021-7-12UNIX系统内核结构概述5 字符设备块设备 设备驱动程序 硬件控制 高速缓存 文件子系统 系统调用接口 进程间通信 调度 存储管理 进程控制 子系统 核心级 硬件级 硬件 核心级 用户级 库函数 用户程序 捕俘 图 9-1 UNIX核心的框图 2021-7-12UNIX系统内核结构概述6 进程控制 (2) 进程通信 (3) 存储器管理 (4) 进程调度 2021-7-12UNIX系统内核结构概述7 文件管理 高速缓冲机制 (3) 设备驱动程序 2021-7-12UNIX系统内核结构概述8 9.2.1 进程控制块进程控制
4、块PCB 在在UNIX系统系统中,中, 把进程控制块分为四部分:把进程控制块分为四部分: (1) 进程表项(常驻内存)进程表项(常驻内存) (2) U区(非内存区)区(非内存区) (3) 进程区表进程区表 (4) 系统区表系统区表 2021-7-12UNIX系统内核结构概述9 u进程表项(进程表项( Proc结构)结构)常驻内存常驻内存 u存放的是系统感知进程存在所必需的数据和存放的是系统感知进程存在所必需的数据和 信息信息 u进程的唯一标识进程的唯一标识 uU区区(User结构)结构)非常驻内存非常驻内存 u存放的是进程执行时所需的各种控制数据和存放的是进程执行时所需的各种控制数据和 信息信
5、息 u存放在该进程的数据段中存放在该进程的数据段中 2021-7-12UNIX系统内核结构概述10 u系统区表系统区表 u区(区(Region ) u进程虚拟地址空间上的一段连续区域,它是被共进程虚拟地址空间上的一段连续区域,它是被共 享、保护以及进行内存分配和地址变换的独立实享、保护以及进行内存分配和地址变换的独立实 体。体。 u系统区表的内容系统区表的内容P325 u本进程区表本进程区表 u记录进程的每个区在进程中的虚地址,并通过它找记录进程的每个区在进程中的虚地址,并通过它找 到该区在物理存储器中的实地址。到该区在物理存储器中的实地址。 2021-7-12UNIX系统内核结构概述11 区
6、号类型长度内存 地址 状态共享 计数 文件 指针 在系统创建新进程时,核心将从区表中 分配相应的表项给所创建的进程。 2021-7-12UNIX系统内核结构概述12 62 37 984 5 唤醒 换 出 换 出 换 入 内存中 睡眠 睡眠 且换出 睡眠 调度 核心态 执行 1 抢夺 被抢夺 内存中就绪 内存足 内存不足 创建fork 用户态 执行 返回到用户态 系统调用 中断 中断 中断返回 返回 僵死 唤醒 就绪且换出 图 9-4 进程的状态转换 2021-7-12UNIX系统内核结构概述13 用户级上下文用户级上下文 (用户的程序)(用户的程序) 2) 寄存器上下文(寄存器上下文(CPU的
7、状态)的状态) 程序寄存器。程序寄存器。 (2) 处理机状态寄存器处理机状态寄存器(PSR)。 (3) 栈指针。栈指针。 (4) 通用寄存器。通用寄存器。 3) 系统级上下文(系统级上下文(OS管理该进程所用的信息)管理该进程所用的信息) (1) 静态部分。静态部分。 (2) 动态部分。动态部分。 2021-7-12UNIX系统内核结构概述14 2021-7-12UNIX系统内核结构概述15 2021-7-12UNIX系统内核结构概述16 (1)为新进程分配一个进程表项喝酒)为新进程分配一个进程表项喝酒inch标识符标识符 (2)检查同时运行的进程数目)检查同时运行的进程数目 (3)拷贝进程表
8、项中的数据)拷贝进程表项中的数据 (4)子进程继承父进程的所有文件)子进程继承父进程的所有文件 (5)为子进程创建进程上下文)为子进程创建进程上下文 (6)子进程执行)子进程执行 2021-7-12UNIX系统内核结构概述17 u如果是用户创建的子进程,它将继承父进程在如果是用户创建的子进程,它将继承父进程在 创建时刻所拥有的全部资源,包括所有已经打创建时刻所拥有的全部资源,包括所有已经打 开的文件和程序。开的文件和程序。 u子进程映像与父进程映像是存储在两个不同的子进程映像与父进程映像是存储在两个不同的 地址空间中内容相同的程序副本。地址空间中内容相同的程序副本。 u父进程和子进程在各自的存
9、储空间上运行着内父进程和子进程在各自的存储空间上运行着内 容相同的程序。容相同的程序。 2021-7-12UNIX系统内核结构概述18 uExec的功能 u将制定的可执行文件加载到指定的进程映像中,覆将制定的可执行文件加载到指定的进程映像中,覆 盖该进程映像中原有的程序。盖该进程映像中原有的程序。 u过程 u根据给定的路径名找到制定的可执行文件,检查是根据给定的路径名找到制定的可执行文件,检查是 否是可执行否是可执行 u加载覆盖原来的进程映像加载覆盖原来的进程映像 u为该程序的执行设置参数和环境为该程序的执行设置参数和环境 u启动该进程进入新的程序入口点去执行启动该进程进入新的程序入口点去执行
10、 2021-7-12UNIX系统内核结构概述19 u创建一个子进程,并加载程序,其功能显示创建一个子进程,并加载程序,其功能显示 “I am a child”,加载的程序路径名为,加载的程序路径名为./chld u#include #include main() printf(“I am a childn”); exit(0); chld.c 2021-7-12UNIX系统内核结构概述20 #include #include main( ) int p; /存放子进程存放子进程pid号号 while (p=fork( )= =-1); /创建子进程创建子进程 if (p= =0) /子进程返回
11、子进程返回 exec(“./chld”,0); /加载子进程的程序加载子进程的程序 else /父进程返回父进程返回 wait(0); /等待子进程终止等待子进程终止 exit(0); 2021-7-12UNIX系统内核结构概述21 内核须为内核须为exit完成以下操作:完成以下操作: (1) 关闭软中断。关闭软中断。 (2) 回收资源。回收资源。 (3) 写记账信息。写记账信息。 (4) 置进程为置进程为“僵死僵死”状态。状态。 (5)转进程调度)转进程调度 2021-7-12UNIX系统内核结构概述22 进程的调度由进程的调度由0#进程完成进程完成 0#进程的组成进程的组成 swtch:
12、负责处理机的分配负责处理机的分配 sched:负责进程映像在内存和对换区之间的对换:负责进程映像在内存和对换区之间的对换 调度的算法调度的算法 多级反馈轮转调度法(基于时间片多级反馈轮转调度法(基于时间片+优先级)优先级) 2021-7-12UNIX系统内核结构概述23 u进程调度由进程调度由swtch 过程实现过程实现 u实质实质 u完成一个进程之间的上下文切换过程完成一个进程之间的上下文切换过程 u过程过程 u保存当前进程的上下文保存当前进程的上下文 u从内存就绪队列中寻找一优先级最高进程从内存就绪队列中寻找一优先级最高进程 u将选中进程的上下文调入将选中进程的上下文调入 2021-7-1
13、2UNIX系统内核结构概述24 9.3.1 低级通信低级通信 9.3.2 管道机制管道机制 9.3.3 IPC 2021-7-12UNIX系统内核结构概述25 u低级通信低级通信 u主要用来传递进程间的控制信号主要用来传递进程间的控制信号 u方法方法 u原语:睡眠原语原语:睡眠原语sleep和唤醒原语和唤醒原语wakeup u软中断:是通信进程之间用来模拟硬中断的软中断:是通信进程之间用来模拟硬中断的 一种信号通信方式。一种信号通信方式。 2021-7-12UNIX系统内核结构概述26 u要求:编写一个程序,循环显示字符串要求:编写一个程序,循环显示字符串“Hello!”,当,当 键盘键入键盘
14、键入Ctrl+C时终止循环,显示时终止循环,显示“OK!”后结束。后结束。 u#include #include #include void int_func(int sig); int k; void int_func(int sig) /定义软中断处理函数定义软中断处理函数 k=0; 2021-7-12UNIX系统内核结构概述27 uMain( ) signal(SIGINT,int_func); /设置软中断信号对应的处理函设置软中断信号对应的处理函 数数 k=1; /循环显示,等待键入循环显示,等待键入Ctrl+C,获取该软中断信号后处理,获取该软中断信号后处理 while(k= =1
15、) printf(“Hello!n”); printf(“Ok!n”); /软中断处理函数返回软中断处理函数返回 exit(0); 2021-7-12UNIX系统内核结构概述28 管道的类型管道的类型 无名管道无名管道(Unnamed Pipes) 2) 有名管道有名管道(Named Pipes) 2021-7-12UNIX系统内核结构概述29 比较项目比较项目无名管道无名管道有名管道有名管道 服务对象服务对象进程及其子孙进程进程及其子孙进程任意关系的进程任意关系的进程 实现机制实现机制逻辑上是管道文件,逻辑上是管道文件, 物理上是高速缓存,物理上是高速缓存, 与外设无关与外设无关 逻辑上是管
16、道文件,逻辑上是管道文件, 物理上依赖于文件系物理上依赖于文件系 统实现,是物理设备统实现,是物理设备 文件文件 永久性永久性临时创建于内存临时创建于内存存在于文件系统中存在于文件系统中 名称名称无文件名,用文件描无文件名,用文件描 述符存取述符存取 有文件名有文件名 创建方式创建方式pipemkfifo 2021-7-12UNIX系统内核结构概述30 u要求:父进程创建一个子进程和一个无名管道要求:父进程创建一个子进程和一个无名管道fd,由,由 子进程向管道写入信息子进程向管道写入信息“This is a message!”,然后终,然后终 止执行;父进程接收到子进程终止信号后从管道中读止执
17、行;父进程接收到子进程终止信号后从管道中读 出并显示信息后结束。出并显示信息后结束。 u#include #include main() int p1,fd2; char outpipe50; char inpipe50=“This is a message!”; pipe(fd); /创建无名管道创建无名管道fd 2021-7-12UNIX系统内核结构概述31 uWhile (p1=fork()= =-1); if (p1= =0) /子进程返回子进程返回 write(fd1,inpipe,50); /写信息到管道写信息到管道 exit(0); else /父进程返回父进程返回 wait(0
18、); /等待子进程终止等待子进程终止 read(fd0,outpipe,50); /从管道读信息从管道读信息 printf(“%sn”,outpipe); exit(0); 2021-7-12UNIX系统内核结构概述32 u内存管理概述内存管理概述 u段页式管理中的请求分页管理段页式管理中的请求分页管理 u交换技术交换技术 u内存空间的分配和回收单位:页内存空间的分配和回收单位:页 2021-7-12UNIX系统内核结构概述33 u交换进程交换进程 u0#进程中的交换进程进程中的交换进程sched u功能功能 u对交换空间的管理对交换空间的管理 u进程换出进程换出 u进程换入进程换入 u交换区
19、的管理交换区的管理 u数据结构:映射图数据结构:映射图 u空闲盘块的起始地址空闲盘块的起始地址 u以该地址起始的可分配的连续块数以该地址起始的可分配的连续块数 u采用首次适应算法采用首次适应算法 2021-7-12UNIX系统内核结构概述34 u虚地址结构 uUNIX的区表 区号Q 页号P页内位移W 03130 2910 9 区名区起始 虚地址 大小状态保护权引用计 数 页表起始地 址 正文 数据 栈 U 2021-7-12UNIX系统内核结构概述35 1. 页表和磁盘描述表页表和磁盘描述表 页表页表 (每个区分配一个页表)(每个区分配一个页表) 物理页号物理页号年龄年龄写时拷贝写时拷贝修改位
20、修改位访问位访问位有效位有效位保护保护 对换设备号对换设备号设备块号设备块号存储器类型存储器类型 磁盘描述表(描述一页的磁盘副本)磁盘描述表(描述一页的磁盘副本) 2021-7-12UNIX系统内核结构概述36 图 9-10 页框数据表项及其散列队列 2021-7-12UNIX系统内核结构概述37 页表项 页框号794 磁盘块描述项 对换 设备1 块号 2743 引用数1 对换设备 1 块号2743 物理页794 引用数 1 对换设备块 2743 对换使用表项 页框数据表项 794 虚地址 1493K 图 9-11 四种数据结构之间的关系 2021-7-12UNIX系统内核结构概述38 u页表
21、页表 有效位有效位V=0 u进程要访问的页不在内存,可能在下述三种介进程要访问的页不在内存,可能在下述三种介 质之一质之一 u外存交换区中外存交换区中 u外存可执行文件中外存可执行文件中 u缓冲区的空闲队列中缓冲区的空闲队列中 2021-7-12UNIX系统内核结构概述39 2021-7-12UNIX系统内核结构概述40 u任务任务 u将页表中年龄大于某个阈值的页换出内存将页表中年龄大于某个阈值的页换出内存。 u工作方式工作方式 u当系统中可用的空闲页面少于下限阈值时,唤醒当系统中可用的空闲页面少于下限阈值时,唤醒 换页进程换页进程 u该进程首先检查每个活动的、没有封锁的区,增该进程首先检查每
22、个活动的、没有封锁的区,增 加所有有效页(在内存)的年龄值加所有有效页(在内存)的年龄值 u当某页的年龄大于阈值时,将其换出当某页的年龄大于阈值时,将其换出 2021-7-12UNIX系统内核结构概述41 u换页进程工作的步骤换页进程工作的步骤 u换页进程找出应该换出的内存页面,将其页号放入换页进程找出应该换出的内存页面,将其页号放入 换出页面链表换出页面链表 u当换出页面链表中满当换出页面链表中满64页时,申请交换区中的空闲页时,申请交换区中的空闲 空间,将空间,将64页换出页换出 u好处好处 u换满换满64页才写盘一次,减少了写盘的次数,提高了页才写盘一次,减少了写盘的次数,提高了 I/O
23、速度速度 u某个被换出的页面无论其是否换出,在没有被重新某个被换出的页面无论其是否换出,在没有被重新 分配之前被访问时无须读盘,减少了读盘的次数。分配之前被访问时无须读盘,减少了读盘的次数。 2021-7-12UNIX系统内核结构概述42 u思考?思考? u换页进程和交换进程的区别?换页进程和交换进程的区别? Answer:交换进程换出的是进程映像中除交换进程换出的是进程映像中除proc结构以结构以 外的所有页面,而换页进程换出的是各个进程中年龄外的所有页面,而换页进程换出的是各个进程中年龄 大的页面,而不是所有的页面。大的页面,而不是所有的页面。 2021-7-12UNIX系统内核结构概述4
24、3 9.5.1 UNIX文件系统概述 9.5.2 文件的物理结构 2021-7-12UNIX系统内核结构概述44 1. UNIX文件系统的特点文件系统的特点 文件系统的组织是分级树形结构。文件系统的组织是分级树形结构。 (2) 文件的物理结构为混合索引式文件结构。文件的物理结构为混合索引式文件结构。 (3) 采用了成组链接法管理空闲盘块。采用了成组链接法管理空闲盘块。 (4) 引入索引结点。引入索引结点。 2021-7-12UNIX系统内核结构概述45 uUNIX文件目录项文件目录项 u目录项(文件名和文件目录项(文件名和文件i结点的指针)结点的指针) ui结点结点 u文件目录实质是文件内部标
25、识和外部标识的一个映射文件目录实质是文件内部标识和外部标识的一个映射 uUNIX文件文件i结点结点 u描述文件信息的数据结构描述文件信息的数据结构 u存放在磁盘上(磁盘索引结点或磁盘存放在磁盘上(磁盘索引结点或磁盘i结点结点) u文件内部标识,类型,存取权限,共享连接数,文件内部标识,类型,存取权限,共享连接数, 文件存取时间,文件长度,文件物理地址索引表文件存取时间,文件长度,文件物理地址索引表 i_addr13 2021-7-12UNIX系统内核结构概述46 i binusrdev iii bin的目录表usr的目录表dev的目录表 root目录表 ii lettertesttestrep
26、ort Wang Wang 图图 9-18 UNIX文件系统的结构文件系统的结构 2021-7-12UNIX系统内核结构概述47 当文件处于当文件处于“未打开未打开”状态时,状态时, 文件需占用三种资文件需占用三种资 源:源: 一个目录项。一个目录项。 (2) 一个磁盘索引结点项。一个磁盘索引结点项。 (1) (3) 若干个盘块。若干个盘块。 当文件被引用或当文件被引用或“打开打开”时,时, 须再增加三种资源:须再增加三种资源: (1) 一个内存索引结点项。一个内存索引结点项。 它驻留在内存中。它驻留在内存中。 (2) 文件表中的一个登记项。文件表中的一个登记项。 (3) 用户文件描述符表中的
27、一个登记项。用户文件描述符表中的一个登记项。 2021-7-12UNIX系统内核结构概述48 1. 寻址方式寻址方式 (1) 直接寻址。直接寻址。 (2) 一次间接寻址方式。一次间接寻址方式。 (3) 多次间接寻址。多次间接寻址。 2021-7-12UNIX系统内核结构概述49 i.addr(0) i.addr(1) i.addr(2) i.addr(9) i.addr(10) i.addr(11) i.addr(12) 一次间接块 数据块 二次间接块 三次间接块 直接寻址 一次间址 二次间址 三次间址 2021-7-12UNIX系统内核结构概述50 将字节偏移量转换为文件逻辑块号将字节偏移量
28、转换为文件逻辑块号 2) 把文件逻辑块号转换为物理盘块号把文件逻辑块号转换为物理盘块号 P384 直接寻址。直接寻址。 (2) 一次间址。一次间址。 (3) 多次间址。多次间址。 2021-7-12UNIX系统内核结构概述51 图 9-20 文件的地址映射示例 i.addr(0) i.addr(1) i.addr(2) i.addr(10) i.addr(11) i.addr(12) 数据块 二次间接块 直接寻址 一次间址 二次间址 三次间址 367 428 91563313333 952 2021-7-12UNIX系统内核结构概述52 uUNIX文件系统的组成文件系统的组成 u引导块引导块
29、u用于系统的引导用于系统的引导 u超级块超级块 u文件系统的控制块,用于存放对空闲块和文件系统的控制块,用于存放对空闲块和i结点结点 等资源的管理信息等资源的管理信息 u索引结点块索引结点块 u存放文件的说明信息存放文件的说明信息 u数据区数据区 u存放文件目录和文件数据存放文件目录和文件数据 2021-7-12UNIX系统内核结构概述53 u超级块超级块(Superblock) u系统用来描述磁盘使用状态的数据结构。系统用来描述磁盘使用状态的数据结构。 u磁盘索引结点分配磁盘索引结点分配 u分配过程分配过程 ialloc u 回收过程回收过程 ifree u内存索引结点的分配与回收内存索引结
30、点的分配与回收 u分配过程分配过程 iget u回收过程回收过程 iput 2021-7-12UNIX系统内核结构概述54 u文件卷的组织文件卷的组织 P387 10-21 u空闲盘块的组织空闲盘块的组织 u空闲盘块的分配与回收空闲盘块的分配与回收 2021-7-12UNIX系统内核结构概述55 u用户文件描述符表用户文件描述符表 u又称为:进程打开文件表又称为:进程打开文件表 u进程控制块的进程控制块的U区区 u给出了该进程所打开的每一个文件的内部标识与其给出了该进程所打开的每一个文件的内部标识与其 在系统打开文件表中对应的一个表项之间的索引,在系统打开文件表中对应的一个表项之间的索引, 是
31、面向进程的。是面向进程的。 u记录和控制打开文件的用户进程记录和控制打开文件的用户进程 2021-7-12UNIX系统内核结构概述56 u内容内容 u打开文件的描述符打开文件的描述符fd u系统打开文件表的入口指针系统打开文件表的入口指针fp 2021-7-12UNIX系统内核结构概述57 u问题问题 u进程和文件之间存在多对多的关系进程和文件之间存在多对多的关系 u引入一个关联实体,将多对多转换为两个一对多引入一个关联实体,将多对多转换为两个一对多 u作用作用 u指明打开同一文件的不同进程和不同进程所使用的指明打开同一文件的不同进程和不同进程所使用的 不同打开路径,以及不同进程和不同打开路径
32、所对不同打开路径,以及不同进程和不同打开路径所对 应的读写指针。应的读写指针。 u图示图示 P388 10-23 2021-7-12UNIX系统内核结构概述58 u内容内容 uf_flag 打开方式打开方式 uf_offset 读写位置指针读写位置指针 uf_count 描述父进程的共享计数描述父进程的共享计数 uf_inode 指向用户文件描述表指向用户文件描述表 2021-7-12UNIX系统内核结构概述59 9.6.1 字符设备缓冲区管理字符设备缓冲区管理 1. 空闲字符缓冲区队列空闲字符缓冲区队列 cblock0 c_nextc_nextc_next cblock1cblock2 c_
33、next cblockN1 cfreelist 图 9-12 空闲字符缓冲区队列 2021-7-12UNIX系统内核结构概述60 2. 空闲字符缓冲区的分配与回收空闲字符缓冲区的分配与回收 getcf putcf 2021-7-12UNIX系统内核结构概述61 (1) getc过程过程 该过程用于从一个clist结构的队首指针所指示的字符缓冲 队列中,取出为首的字符,然后修改该队列的可用字符计数 和队首指针。当取完一个缓冲区中的所有字符时,将释放该 缓冲区。该过程的返回值是取出的字符。 (2) putc过程过程 该过程用于将一个字符C放入设备的指定字符缓冲区队列 的末尾。若此时该队列空、或队列
34、的最后一个缓冲区已满, 且空闲字符缓冲区队列也空,该过程无法将字符放入队列中, 则返回“-1”。 2021-7-12UNIX系统内核结构概述62 (3) getcb过程过程 该过程用于从指定的设备字符缓冲区队列中, 取出第 一个缓冲区,并将该队列的可用字符计数减去第一个缓冲 区中的字符数,然后返回指向该缓冲区的指针bp。若该缓 冲区已是该队列中惟一的缓冲区, 则置队尾指针为空。 (4) putcb过程过程 该过程用于将由bp所指向的缓冲区放入指定的设备字符 缓冲区队列的末尾,然后将该队列的可用字符计数加上bp 缓冲区中的字符数后返回。 2021-7-12UNIX系统内核结构概述63 1. 盘块
35、缓冲区及其首部盘块缓冲区及其首部 设备号设备号 块号块号 状态状态 缓冲区指针缓冲区指针 散列队列的前向指针散列队列的前向指针 散列队列的后向指针散列队列的后向指针 空闲表上的前向指针空闲表上的前向指针 空闲表上的后向指针空闲表上的后向指针 图 9-13 缓冲首部 2021-7-12UNIX系统内核结构概述64 blkno 0 mod 4 blkno 1 mod 4 blkno 2 mod 4 blkno 3 mod 4 28 17 98 3 464 597 5010 3599 空 闲 表 头 标 图 9-14 空闲队列(链)及散列队列 2021-7-12UNIX系统内核结构概述65 3. 盘
36、块缓冲区的分配盘块缓冲区的分配 (1) getblk( )过程。过程。 (2) getblk(dev, blkno)过程。过程。 4. 盘块缓冲区的回收盘块缓冲区的回收 当核心用完某缓冲区时,可调用当核心用完某缓冲区时,可调用brelse过程将之收回。过程将之收回。 2021-7-12UNIX系统内核结构概述66 1. 设备开关表的作用设备开关表的作用 图 9-15 设备开 关表及系统调 用和驱动程序 间的接口 openclosereadwriteioctl 字符设备开关表 open mount close unmount readwrite 块设备开关表 高速缓冲 调用 opencloser
37、eadwriteioctl 驱动程序 设备中断处理程序 openclosestrategy 驱动程序 设备中断处理程序 中断向量中断向量 设备中断 文件子系统 2021-7-12UNIX系统内核结构概述67 函数 表项 open close strategy 0 1 gdopen gtopen gdclose gtclose gdstrategy gtstrategy 图 9-16 块设备开关表 2021-7-12UNIX系统内核结构概述68 函数 表项 openclosereadwriteIoctl 0ConopenConcloseConrdadConwriteConioctl 1Dzbop
38、enDzbcloseDzbreadDzbwriteDzbioctl 2Syopennulldevsyreadsywritesyioctl 图 9-17 字符设备开关表 2021-7-12UNIX系统内核结构概述69 1. 打开磁盘驱动器的过程打开磁盘驱动器的过程gdopen 在在UNIX系统中,设备被看作是一种特殊类型的文件,系统中,设备被看作是一种特殊类型的文件, 因而在使用该文件之前,也须先将它打开。因而在使用该文件之前,也须先将它打开。 (1)检查系统中是否有由输入参数)检查系统中是否有由输入参数dev所指定类型的磁所指定类型的磁 盘驱动器,若有,再检查它是否已被打开,盘驱动器,若有,再
39、检查它是否已被打开, 如果尚未打开,如果尚未打开, 便将此驱动器打开,(将该磁盘控制器表中的标志便将此驱动器打开,(将该磁盘控制器表中的标志b-flag设置设置 为为B-ONCE) (2)调用)调用gdtimer过程启动对应的控制器和设备短期时钟过程启动对应的控制器和设备短期时钟 闹钟,用于控制磁盘驱动器的执行时间。闹钟,用于控制磁盘驱动器的执行时间。 2021-7-12UNIX系统内核结构概述70 输入参数是控制器号输入参数是控制器号ctl,无输出参数。,无输出参数。 先从磁盘设备控制表中找到先从磁盘设备控制表中找到I/O队列的队首指针,若它为队列的队首指针,若它为0, 表示表示I/O队列空
40、,无队列空,无I/O缓冲区可取,于是返回;否则,缓冲区可取,于是返回;否则, 将控将控 制器表中的忙闲标志制器表中的忙闲标志b-active置置“1”。 设置磁盘控制器中的各寄存器,如磁盘地址寄存器、内存设置磁盘控制器中的各寄存器,如磁盘地址寄存器、内存 总线地址寄存器、控制状态寄存器、字计数器等。总线地址寄存器、控制状态寄存器、字计数器等。 最后启动磁盘控制器读最后启动磁盘控制器读(或写或写)后返回。而后返回。而gdstartegy过程的过程的 主要功能,则是把指定的缓冲首部排在磁盘控制器主要功能,则是把指定的缓冲首部排在磁盘控制器I/O队列队列 的末尾,并启动磁盘控制器。的末尾,并启动磁盘控制器。 2021-7-12UNIX系统内核结构概述71 当磁盘当磁盘I/O传送完成并发出中断请求信号时,传送完成并发出中断请求信号时,CPU响应后响应后 将通过中断总控程序进入磁盘中断处理过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题六 蒙版(课件)-职教高考电子与信息《图形图像处理》专题复习讲练测
- 我国民事法律责任制度
- 打字员管理责任制度
- 执纪目标责任制度
- 2026三年级数学上册 正方形的周长
- 抖音网络安全责任制度
- 护理首问责任制制度
- 持枪人管理责任制度
- 接警员首接责任制度
- 搜一下防汛责任制度
- 2026年陕西航空职业技术学院单招职业技能考试题库附答案详解(完整版)
- 2025年内科主治医师(呼吸内科学)考试题库(含答案)
- 2026江苏南京卧中资环新源城市更新(江苏)有限公司招聘电梯事业部市场开拓岗2人笔试备考试题及答案解析
- 统编版一年级下册道德与法治《第1课 有个新目标(第1课时)》教学课件
- 中级消防设施操作员(监控方向)理论考试题库资料(含答案)
- 2026吉林农业大学三江实验室办公室招聘工作人员笔试参考题库及答案解析
- 2026年中考语文常考考点专题之古诗词赏析(选择题)
- 2025肿瘤科护理指南
- 九师联盟2025-2026学年高三核心模拟卷英语(中) (二)(含答案)
- 2026年春季教科版(2024)三年级下册科学教学计划附教学进度表
- 三年级数学下册计算题大全(每日一练共18份)
评论
0/150
提交评论