当前位置:
文档之家› 设备管理第10章UNIX系统内核结构
设备管理第10章UNIX系统内核结构
第十章 UNIX系统内核结构
第十章 UNIX系统内核结构
10.1 UNIX系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理 10.5 设备管理 10.6 文件管理
1
第十章 UNIX系统内核结构
10.1 UNIX系统概述
10.1.1 UNIX系统的发展史 10.1.2 UNIX系统的特征
本章习题:
1、2、8、17
38
❖ ❖ ❖ ❖ ❖ ❖
第十章 踏实,奋斗,坚持,专业,努力成就未来。20.12.1020.12.10Thursday, December 10, 2020 弄 虚 作 假 要 不得, 踏实肯 干第一 名。09:34:4509:34:4509:3412/10/2020 9:34:45 AM 安 全 象 只 弓 ,不拉 它就松 ,要想 保安全 ,常把 弓弦绷 。20.12.1009:34:4509:34Dec-2010-Dec-20 重 于 泰 山 , 轻于鸿 毛。09:34:4509:34:4509:34Thursday, December 10, 2020 不 可 麻 痹 大 意,要 防微杜 渐。20.12.1020.12.1009:34:4509:34:45December 10, 2020 加 强 自 身 建 设,增 强个人 的休养 。2020年 12月 10日上 午9时34分 20.12.1020.12.10
信号量集
…
图 10-8 信号量集表与信号量表
17
第十章 UNIX系统内核结构
10.4 存 储 器 管 理 10.4.1 请求调页管理的数据结构
1、页表和磁盘描述表
物理页号 年龄 写时拷贝 修改位 访问位 有效位 保护
(a)页表项
对换设备号
设备块号
存储器类型
(b)盘块说明 图 10-9 页表项和磁盘描述表项
中断向量
设备中断
中断向量
图 10-15 设备开关表及系统调用和驱动程序间的接口
25
第十章 UNIX系统内核结构
10.5.4 磁盘驱动程序
1、打开磁盘驱动器的过程gdopen 2、启动磁盘控制器的过程 3、磁盘中断处理过程 gdintr
26
第十章 UNIX系统内核结构
10.5.5 磁盘读、写程序
1、磁盘的读写方式 2、读过程bread和breada
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、 设备的字符缓冲区队列
物理页794
对换设备块 2743
图 10-11 四种数据结构之间的关系
20
第十章 UNIX系统内核结构
10.4.2 换页进程
1、增加有效页的年龄 2、对换出页的几种处理方式 3、将换出页面写到对换设备上
10.4.3 请求调页 1、缺页在可执行文件上 2、缺页在对换设备上 3
21
第十章 UNIX系统内核结构
10.2.2 进程状态与进程映像
1、进程状态
僵死
中断 中断返回
系统调用 中断
5
返回
用户态 执行 返回到用户态
9 睡眠 内存中 睡眠 6
换 出 睡眠 且换出 7
4 核心态 执行 唤醒
唤醒
抢夺 调度
8 被抢夺
2 内存中就绪
换换 出入
内存足 创建fork 1
内存不足
3 就绪且换出
图 10-4 进程的状态转换
8
第十章 UNIX系统内核结构
2、 进程映像 1. (1)用户级上下文 (2)寄存器上下文 ➢ 程序寄存器 ➢ 处理机状态寄存器(PSR) ➢ 栈指针 ➢ 通用寄存器 (3)系统级上下文 ➢ 静态部分 ➢ 动态部分
9
第十章 UNIX系统内核结构
10.2.3 进程控制
1、 fork系统调用
(1) 为新进程分配一个进程表项和进程标识符; (2) (2) 检查同时运行的进程数目; (3) (3) 拷贝进程表项中的数据; (4) (4) 子进程继承父进程的所有文件; (5) (5) 为子进程创建进程上下文; (6) (6) 子进程执行。
2、地址转换
直接寻址
i.addr(0) i.addr(1) i.addr(2)
一次间址 二次间址 三次间址
i.addr(10) i.addr(11) i.addr(12)
… …
数据块 367
428 一次间接块
952
952
9156
二次间接块 331
3333
331
3333
图 10-20 文件的地址映射示例
字符设备
块设备
设备驱动程序
进程控制 子系统
进程间通信 调度
存储管理
硬件控制 核心级 硬件级
硬件 3
第十章 UNIX系统内核结构
10.1.3 UNIX系统的内核结构
1 (1) 进程控制
(2) (2) 进程通信 2、 文件子系统 (3) (3) 存储器管理 (1) 文件管理
(4) (4) 进程调度
(2) (2) 高速缓冲机制
进程 的虚空间 A 正文
数据
A
内存空间
A′ 共享存储区 栈
进程 的虚空间 B 正文
数据 B B′ 栈
图 10-7 利用共享存储区进行通信
16
信号量集
第十章 UNIX系统内核结构
10.3.6 信号量集机制 信号量集表
信号量表
sem 0 sem 1 sem 2 0 sem 3 1 sem 4 2 sem 5 3 sem 6 sem 7 sem 8 0 sem 9 1 sem 10 2 sem 11 0
1、寻址方式
直接寻址
i.addr(0) i.addr(1) i.addr(2)
一次间接块
数பைடு நூலகம்块
…
…
一次间址 二次间址 三次间址
i.addr(9) i.addr(10) i.addr(11) i.addr(12)
二次间接块 三次间接块
图 10-19 直接寻址和间接寻址
30
第十章 UNIX系统内核结构
(3) (3) 设备驱动程序
4
第十章 UNIX系统内核结构
10.2 进程的描述和控制
10.2.1 进程控制块PCB
在UNIX系统Ⅴ中, (1) (2) U区 (3) 进程区表 (4) 系统区表
5
第十章 UNIX系统内核结构
4、 本进程区表(Per Process Region Table)
A 正文 进 程 数据 区 表栈
31
第十章 UNIX系统内核结构
10.6.3 索引结点的管理
1、超级块(Superblock) (1) (2) 空闲盘块号栈 (3) 当前空闲盘块号数目 (4) 空闲磁盘i结点号栈 (5) 空闲磁盘i结点数目 (6) 空闲盘块编号栈的锁字段 (7) 空闲磁盘i结点栈的锁字段 (8) 超级块修改标志 (9) 修改时间
18
第十章 UNIX系统内核结构
2、页框数据表和对换使用表
图 10-10 页框数据表项及其散列队列
19
第十章 UNIX系统内核结构
虚地址 1493K
页表项 页框号 794
磁盘块描述项
对换 块号 设备 1 2743
页框数据表项794 引用数 1 对换设备 1 块号 2743
对换使用表项 引用数 1
open close open close read write ioctl mount unmount
read write
字符设备开关表
高速缓冲 调用
块设备开关表
open close read write ioctl
驱动程序 设备中断处理程序
open closestrategy
驱动程序 设备中断处理程序
14
第十章 UNIX系统内核结构
…
10.3.4 消息机制
0
消息首部 msgh 0
…
队列 i 队列 n
消息 缓冲区
m
消息首部
3 消息首部
msgh 3
消息 缓冲区
2 消息首部
msgh 2
消息 缓冲区
…
消息队列头表
消息 缓冲区
图 10-6 消息机制中的数据结构
15
第十章 UNIX系统内核结构
10.3.5 共享存储区机制
B 正文 进 程 数据 区 表栈
a b c d e
系统区表
a b
c d
e
图 10-2 进程区表项、系统区表项和区的关系
6
第十章 UNIX系统内核结构
4、 本进程区表(Per Process Region Table)
本进程区表
系统区表
U区 a
b
进程表
c
a
b
c
图 10-3 进程的数据结构
7
第十章 UNIX系统内核结构
34
第十章 UNIX系统内核结构
2、空闲盘块的组织
超级块表
109 106 103 100 95
211 208 205 202
310 307 304 301
409 406 403 400
图 10-22 空闲盘块的组织
35
第十章 UNIX系统内核结构
10.6.5 文件表的管理
用户文件描述符表
A
第 一
28
第十章 UNIX系统内核结构