UNIX系统内核结构培训教材课件.ppt
1,第十章 UNIX系统内核结构,10.1 UNIX系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理 10.5 设备管理 10.6 文件管理,2,10.1 UNIX系统概述,10.1.1 UNIX系统的发展史,10.1.2 UNIX系统的特征,1、开放性2、多用户、多任务环境 3、功能强大,实现高效 4、提供了丰富的网络功能5、支持多处理器功能,3,10.1.3 UNIX系统的内核结构,图 10-1 UNIX核心的框图,4,1、进程控制子系统,进程控制(2)进程通信(3)存储器管理(4)进程调度,10.1.3 UNIX系统的内核结构,2、文件子系统,文件管理(2)高速缓冲机制(3)设备驱动程序,5,10.2 进程的描述和控制,10.2.1 进程控制块PCB,在UNIX系统中,把进程控制块分为四部分:(1)进程表项(2)U区(3)进程区表(4)系统区表,6,图 10-2 进程区表项、系统区表项和区的关系,4、本进程区表(Per Process Region Table),7,图 10-3 进程的数据结构,4、本进程区表(Per Process Region Table),8,10.2.2 进程状态与进程映像,1、进程状态,图 10-4 进程的状态转换,9,2、进程映像,(1)用户级上下文(2)寄存器上下文 程序寄存器 处理机状态寄存器(PSR)栈指针 通用寄存器(3)系统级上下文 静态部分 动态部分,10,10.2.3 进程控制,1、fork系统调用,为新进程分配一个进程表项和进程标识符;(2)检查同时运行的进程数目;(3)拷贝进程表项中的数据;(4)子进程继承父进程的所有文件;(5)为子进程创建进程上下文;(6)子进程执行。,11,2、exec系统调用,图 10-5 exec 的参数组织方式,12,3、exit系统调用,(1)关闭软中断;(2)回收资源;(3)写记账信息;(4)置进程为“僵死”状态。,4、wait系统调用,13,10.2.4 进程调度与切换,1、引起进程调度的原因,2、调度算法,3、进程优先级的分类,4、进程优先数的计算,5、进程切换,14,10.3 进程的同步与通信,1、sleep与wakeup同步机制2、信号(signal)机制 3、管道机制 4、消息机制 5、共享存储区机制6、信号量集机制,15,10.3.4 消息机制,图 10-6 消息机制中的数据结构,16,10.3.5 共享存储区机制,图 10-7 利用共享存储区进行通信,A,B,17,图 10-8 信号量集表与信号量表,10.3.6 信号量集机制,18,10.4 存 储 器 管 理,10.4.1 请求调页管理的数据结构,1、页表和磁盘描述表,图 10-9 页表项和磁盘描述表项,(a)页表项,(b)盘块说明,19,图 10-10 页框数据表项及其散列队列,2、页框数据表和对换使用表,20,图 10-11 四种数据结构之间的关系,21,10.4.2 换页进程,1、增加有效页的年龄,2、对换出页的几种处理方式,3、将换出页面写到对换设备上,10.4.3 请求调页,1、缺页在可执行文件上2、缺页在对换设备上 3、缺页在内存页面缓冲区中,22,10.5 设 备 管 理,10.5.1 字符设备缓冲区管理,1、空闲字符缓冲区队列,图 10-12 空闲字符缓冲区队列,2、空闲字符缓冲区的分配与回收,3、设备的字符缓冲区队列,23,10.5.2 块设备缓冲区管理,1、盘块缓冲区及其首部,图 10-13 缓冲首部,24,2、盘块缓冲池结构,图 10-14 空闲队列(链)及散列队列,3、盘块缓冲区的分配,4、盘块缓冲区的回收,25,10.5.3 内核与驱动程序接口,1、设备开关表的作用,图 10-15 设备开关表及系统调用和驱动程序间的接口,26,10.5.4 磁盘驱动程序,1、打开磁盘驱动器的过程gdopen,2、启动磁盘控制器的过程,3、磁盘中断处理过程 gdintr,27,10.5.5 磁盘读、写程序,1、磁盘的读写方式,2、读过程bread和breada,(1)一般读过程bread(2)提前读过程breada,3、写过程bwrite、bawrite和bdwrite,(1)一般写过程 bwrite(2)异步写过程 bawrite(3)延迟写过程 bdwrite,28,10.6 文 件 管 理,10.6.1 UNIX文件系统概述,1、UNIX文件系统的特点,文件系统的组织是分级树形结构;(2)文件的物理结构为混合索引式文件结构;(3)采用了成组链接法管理空闲盘块。,29,2、文件系统的结构,图 10-18 UNIX文件系统的结构,30,图 10-19 直接寻址和间接寻址,1、寻址方式,10.6.2 文件的物理结构,31,图 10-20 文件的地址映射示例,2、地址转换,32,10.6.3 索引结点的管理,1、超级块(Superblock),(1)文件系统的盘块数目(2)空闲盘块号栈(3)当前空闲盘块号数目(4)空闲磁盘i结点号栈(5)空闲磁盘i结点数目(6)空闲盘块编号栈的锁字段(7)空闲磁盘i结点栈的锁字段(8)超级块修改标志(9)修改时间,33,2、磁盘索引结点的分配与回收,(1)分配过程 ialloc(2)回收过程 ifree,3、内存索引结点的分配与回收,(1)分配过程 iget(2)回收过程 iput,34,10.6.4 空闲磁盘空间的管理,图 10-21 文件卷的组织,1、文件卷的组织,2、空闲盘块的组织,3、空闲盘块的分配与回收,35,2、空闲盘块的组织,图 10-22 空闲盘块的组织,36,10.6.5 文件表的管理,图 10-23 对文件的三种读/写方式,37,10.6.6 目录管理,1、构造目录 2、删除目录 3、检索目录,