设备管理第10章UNIX系统内核结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文件子系统
open close open close read write ioctl mount unmount
read write
字符设备开关表
高速缓冲 调用
块设备开关表
open close read write ioctl
驱动程序 设备中断处理程序
open closestrategy
驱动程序 设备中断处理程序
本进程区表
系统区表
U区 a
b
进程表
c
a
b
c
图 10-3 进程的数据结构
设备管理第10章UNIX系统内核结构
10.2.2 进程状态与进程映像
1、进程状态
僵死
中断 中断返回
系统调用 中断
5
返回
用户态 执行 返回到用户态
9 睡眠 内存中 睡眠 6
换 出 睡眠 且换出 7
4 核心态 执行 唤醒
唤醒
抢夺 调度
f_offest f_inode
…
第k个内存索引结点
…
第 三 种
E
用 户
fp
…
f_of源自文库est f_inode
第 l个内存索引结点
…
情F
况
用 户
fp
f_offest f_inode
图 10-23 对文件的三种读/写方式
设备管理第10章UNIX系统内核结构
10.6.6 目录管理
1、构造目录 2、删除目录 3、检索目录
设备管理第10章UNIX系统内核结构
2、exec系统调用
trap path arg v
0 arg 2p arg 1p arg 0p
文件名字符串 参数字符串
图 10-5 exec Ⅴ的参数组织方式
设备管理第10章UNIX系统内核结构
3、exit系统调用
(1) 关闭软中断; (2) 回收资源; (3) 写记账信息; (4) 置进程为“僵死”状态。 4、wait系统调用
设备管理第10章UNIX系统内核结构
10.1.3 UNIX系统的内核结构 捕俘
用户级 核心级
图
用户程序
库函数
系统调用接口
- UNIX
10
1
文件子系统
进程间通信
进程控制
调度
高速缓存
子系统
核
存储管理
心
字符设备
块设备
的
设备驱动程序
框
图
硬件控制
核心级
硬件级
硬设件备管理第10章UNIX系统内核结构
10.1.3 UNIX系统的内核结构
设备管理第10章UNIX系统内核结构
10.2.4 进程调度与切换
1、引起进程调度的原因 2、 调度算法 3、进程优先级的分类 4、 进程优先数的计算
5、进程切换
设备管理第10章UNIX系统内核结构
10.3 进程的同步与通信
1、sleep与wakeup同步机制 2、信号(signal)机制 3、管道机制 4、消息机制 5、共享存储区机制 6、信号量集机制
数据块 367
428 一次间接块
952
952
一次间址 二次间址 三次间址
i.addr(10) i.addr(11) i.addr(12)
9156
331
二次间接块 331
3333
3333
图 10-20 文件的地址映射示例
设备管理第10章UNIX系统内核结构
10.6.3 索引结点的管理
1、超级块(Superblock) (1) (2) 空闲盘块号栈 (3) 当前空闲盘块号数目 (4) 空闲磁盘i结点号栈 (5) 空闲磁盘i结点数目 (6) 空闲盘块编号栈的锁字段 (7) 空闲磁盘i结点栈的锁字段 (8) 超级块修改标志 (9) 修改时间
sem 6 sem 7
sem 8 0 信 sem 9 1 号 sem 10 2 量 sem 11 0 集
…
图 10-8 信号量集表与信号量表
设备管理第10章UNIX系统内核结构
10.4 存 储 器 管 理 10.4.1 请求调页管理的数据结构
1、页表和磁盘描述表
物理页号 年龄 写时拷贝 修改位 访问位 有效位 保护
设备管理第10章UNIX系 统内核结构
2020/12/8
设备管理第10章UNIX系统内核结构
10.1 UNIX系统概述
10.1.1 UNIX系统的发展史 10.1.2 UNIX系统的特征
1. 1、开放性 2. 2、多用户、 多任务环境 3. 3、功能强大, 实现高效 4. 4、提供了丰富的网络功能 5. 5、支持多处理器功能
i
i
bin的目录表
usr的目录表
Wang
i dev的目录表
i
Wang letter test
i test report
i
图 10-18 UNIX文件系统的结构
设备管理第10章UNIX系统内核结构
10.6.2 文件的物理结构
1、寻址方式
直接寻址
i.addr(0) i.addr(1) i.addr(2)
10.6 文 件 管 理
10.6.1 UNIX文件系统概述 1、UNIX文件系统的特点 (1) 文件系统的组织是分级树形结构; (2) (2) 文件的物理结构为混合索引式文件结构; (3) (3) 采用了成组链接法管理空闲盘块。
设备管理第10章UNIX系统内核结构
2、文件系统的结构
Root目录表 bin usr dev
设备管理第10章UNIX系统内核结构
10.2.3 进程控制
1、 fork系统调用
(1) 为新进程分配一个进程表项和进程标识符; (2) (2) 检查同时运行的进程数目; (3) (3) 拷贝进程表项中的数据; (4) (4) 子进程继承父进程的所有文件; (5) (5) 为子进程创建进程上下文; (6) (6) 子进程执行。
设备管理第10章UNIX系统内核结构
3rew
演讲完毕,谢谢听讲!
再见,see you again
2020/12/8
设备管理第10章UNIX系统内核结构
(a)页表项
对换设备号
设备块号
存储器类型
(b)盘块说明 图 10-9 页表项和磁盘描述表项
设备管理第10章UNIX系统内核结构
2、页框数据表和对换使用表
图 10-10 页框数据表项及其散列队列
设备管理第10章UNIX系统内核结构
虚地址 1493K
页表项 页框号 794
磁盘块描述项
对换 块号 设备 1 2743
一次间接块
数据块
…
…
一次间址 二次间址 三次间址
i.addr(9) i.addr(10) i.addr(11) i.addr(12)
二次间接块 三次间接块
图 10-19 直接寻址和间接寻址
设备管理第10章UNIX系统内核结构
… …
2、地址转换
直接寻址
i.addr(0) i.addr(1) i.addr(2)
8 被抢夺
2 内存中就绪
换换 出入
内存足 创建fork 1
内存不足
3 就绪且换出
图 10-4 进程的状态转换
设备管理第10章UNIX系统内核结构
2、 进程映像 1. (1)用户级上下文 (2)寄存器上下文 ➢ 程序寄存器 ➢ 处理机状态寄存器(PSR) ➢ 栈指针 ➢ 通用寄存器 (3)系统级上下文 ➢ 静态部分 ➢ 动态部分
设备管理第10章UNIX系统内核结构
10.5.2 块设备缓冲区管理
1、盘块缓冲区及其首部
设备号 块号 状态
缓冲区指针 散列队列的前向指针 散列队列的后向指针 空闲表上的前向指针 空闲表上的后向指针
图 10-13 缓冲首部
设备管理第10章UNIX系统内核结构
2、盘块缓冲池结构
blkno 0 mod 4
设备管理第10章UNIX系统内核结构
4、 本进程区表(Per Process Region Table)
A 正文 进 程 数据 区 表栈
B 正文 进 程 数据 区 表栈
a b c d e
系统区表
a b
c d
e
图 10-2 进程区表项、系统区表项和区的关系
设备管理第10章UNIX系统内核结构
4、 本进程区表(Per Process Region Table)
1 (1) 进程控制
(2) (2) 进程通信 2、 文件子系统 (3) (3) 存储器管理 (1) 文件管理
(4) (4) 进程调度
(2) (2) 高速缓冲机制
(3) (3) 设备驱动程序
设备管理第10章UNIX系统内核结构
10.2 进程的描述和控制
10.2.1 进程控制块PCB
在UNIX系统Ⅴ中, (1) (2) U区 (3) 进程区表 (4) 系统区表
页框数据表项794 引用数 1 对换设备 1 块号 2743
对换使用表项 引用数 1
物理页794
对换设备块 2743
图 10-11 四种数据结构之间的关系
设备管理第10章UNIX系统内核结构
10.4.2 换页进程
1、增加有效页的年龄 2、对换出页的几种处理方式 3、将换出页面写到对换设备上
10.4.3 请求调页 1、缺页在可执行文件上 2、缺页在对换设备上 3
图 10-21 文件卷的组织 2、空闲盘块的组织 3、 空闲盘块的分配与回收
设备管理第10章UNIX系统内核结构
2、空闲盘块的组织
超级块表
109 106 103 100 95
211 208 205 202
310 307 304 301
409 406 403 400
图 10-22 空闲盘块的组织
设备管理第10章UNIX系统内核结构
进程 的虚空间 A 正文
数据
A
内存空间
A′ 共享存储区 栈
进程 的虚空间 B 正文
数据 B B′ 栈
图 10-7 利用共享存储区进行通信
设备管理第10章UNIX系统内核结构
10.3.6 信号量集机制 信号量集表
信号量表
sem 0 sem 1
sem 2 0 信 sem 3 1 号 sem 4 2 量 sem 5 3 集
10.6.5 文件表的管理
用户文件描述符表
A
第 一
用 户
fp
种
情B
况用 户
fp
文件表
f_offest f_inode f_flag f_count f_offest f_inode f_flag
…
…
内存索引结点 第i个内存索引结点 第j个内存索引结点
第 二 种
C
用 户
fp
情D
况用 户
fp
…
…
f_count
28
4
64
blkno 1 mod 4
17
5
97
blkno 2 mod 4
98
50
10
blkno 3 mod 4
3
35
99
空闲表头标
图 10-14 空闲队列(链)及散列队列 3、盘块缓冲区的分配 4、盘块缓冲区的回收
设备管理第10章UNIX系统内核结构
10.5.3 内核与驱动程序接口
1、设备开关表的作用
1、磁盘的读写方式 2、读过程bread和breada
1. (1)一般读过程bread 2. (2) 提前读过程breada 3、 写过程bwrite、 bawrite和bdwrite (1)一般写过程 bwrite (2)异步写过程 bawrite (3)延迟写过程 bdwrite
设备管理第10章UNIX系统内核结构
设备管理第10章UNIX系统内核结构
2、磁盘索引结点的分配与回收 1. (1)分配过程 ialloc 2. (2)回收过程 ifree
3、内存索引结点的分配与回收 (1)分配过程 iget (2)回收过程 iput
设备管理第10章UNIX系统内核结构
10.6.4 空闲磁盘空间的管理
1、文件卷的组织
设备管理第10章UNIX系统内核结构
…
…
10.3.4 消息机制
队列 i 队列 n
0 消息首部
msgh 0
消息 缓冲区
m 消息首部
3 消息首部
msgh 3
消息 缓冲区
2 消息首部
msgh 2
消息 缓冲区
…
消息队列头表
消息 缓冲区
图 10-6 消息机制中的数据结构
设备管理第10章UNIX系统内核结构
10.3.5 共享存储区机制
中断向量
设备中断
中断向量
图 10-15 设备开关表及系统调用和驱动程序间的接口
设备管理第10章UNIX系统内核结构
10.5.4 磁盘驱动程序
1、打开磁盘驱动器的过程gdopen 2、启动磁盘控制器的过程 3、磁盘中断处理过程 gdintr
设备管理第10章UNIX系统内核结构
10.5.5 磁盘读、写程序
设备管理第10章UNIX系统内核结构
10.5 设 备 管 理
10.5.1 字符设备缓冲区管理
1、空闲字符缓冲区队列
cblock[0] cfreelist c_next
cblock[1] c_next
cblock[2] c_next
cblock[N1]
…
c_next
图 10-12 空闲字符缓冲区队列 2、 空闲字符缓冲区的分配与回收 3、 设备的字符缓冲区队列