当前位置:文档之家› 设备管理第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系统内核结构
相关主题