《UNIX内核分析》课件.ppt
《《UNIX内核分析》课件.ppt》由会员分享,可在线阅读,更多相关《《UNIX内核分析》课件.ppt(50页珍藏版)》请在三一办公上搜索。
1、UNIX 内核分析,参考教材:UNIX操作系统教程 尤晋元西安电子科技大学出版社,前 序,UNIX系统1969年诞生,以其特有的简洁性和开放性获得赞同与青睐,已经被移植到数十种硬件平台上。UNIX是通用的,交互式的分时系统。UNIX系统已远远超出一个OS软件所起的作用,它在方方面面潜移默化地影响着人们对软件的设计和开发,其蕴含的设计思想至今仍然是十分值得借鉴的。,UNIX系统特点,已有技术的精选、提炼和发展,简洁实用,短小精悍,功能强大具有分层、可装卸的文件卷系统任何一个程序可不加改变地在前台/后台异步运行将文件、目录和设备均统一看作文件提供I/O缓冲技术提供功能完备、使用灵活的命令语言丰富的
2、核外系统程序采用高级语言编写,可移植性好,UNIX系统结构,UNIX核心源程序结构,以UNIX V6为例,其内核源程序约一万行,按编译方式大致分3类44个文件:.c文件:28个文件,190个可单独编译的子程序.h文件:全局变量,14个文件.s文件:汇编程序文件,约1000条,2个文件33个子程序,进程描述 程序状态字和通用寄存器,PDP-11程序状态字组成,进程分Kernel/User 2种运行状态,区别进程处于不同地址空间:核心态/用户态空间可否执行特权指令使用不同的栈顶指针寄存器r6,进程描述 程序状态字和通用寄存器,通用寄存器 PDP-11/40有9个通用寄存器,长度16位,编号r0-r
3、7r0-r1:I/O参数传递r2-r4:存放过程执行时的局部变量 r5:环境指针 r6:堆栈指针,kernel/user态各1个 r7:PC,进程描述 进程与映像(Process&Image),进程是映像的执行映像是计算机的执行环境,一个映像包括存储映像通用寄存器的值打开文件的状态当前目录其他信息,进程描述 进程的存储影响,进程映像中最为关键的部分是存储映像。存储映像由5部分组成:进程控制块PCB共享正文段数据段共享内存段工作区,进程控制块PCB,Unix为了节省PCB所占主存,PCB分为2部分常驻内存部分:Proc结构。包含进程调度必须的信息;非常驻内存部分:User结构。包含进程运行时才要
4、用到的更多其他信息,它随用户程序和数据部分换进/换出主存。User区的字段只能由正在运行的进程存取。即只有占用CPU的进程才能访问属于当前进程的私有User区。整个系统有一个进程表,称为Proc数组。Unix系统最多有50个进程;每个进程有专用的User区,但核心根据进程页表,通过地址映射机构,可访问当前进程的User区。(好像系统中仅有一个User区),共享正文段,是指可由多个进程共享的区域,包括纯代码形式的程序参数一个进程的正文段也可以不存在,数据段,指进程执行时用到的数据,包括外部变量静态局部变量常数如果进程执行的程序为非共享的,也可以构成数据段的一部分,可被用户态进程读、写、执行,工作
5、区,进程的用户栈和核心栈分别为进程用户态和核心态下运行的工作区用于函数调用时的常数传递,现场保留,返回地址保存,局部变量存储等,进程映像在存储器中的分布,PDP-11/40最多配置248K内存,进程映像分为常驻/非常驻内存部分常驻部分:Proc,共享正文段的控制信息块非常驻部分:数据段,共享正文段,工作区。Unix将除了共享正文段以外的其他部分作为一个整体处理,(结构见下页)无论在主存还是在盘交换区,该部分占用连续存储区作为整体入/出主存Unix设置text数组(共40个元素)管理所有可共享正文段,表目内容主要有:共享正文段外存地址,段长度,共享该段的进程数等,非常驻部分的分布结构,ppda区
6、只有核心态进程可以访问,进程的数据结构 进程的基本控制块/Proc结构,Struct proc(主要部分)int p-pid;/*唯一标识一个进程的整数:0 215-1 int p-ppid;/*父进程标识数 char p-uid;/*用户标识符UID,由高级用户分配 char p-stat;/*进程当前状态 char p-flag;/*表示进程映像是否在主存/盘交换区 char p-pri;/*-100+127。值越小,优先权越高 char p-time;/*调度驻留时间:进程映像最近一次入/出主存后的时间 char p-cpu/*CPU使用情况 char p-nice;/*偏置值:计算进程
7、优先权时使用,可由用户设置 char p-sig;/*进程接收的信号类型数:0 19,0 13系统定义 int p-addr;/*ppda区的起址(单位是字符块数):内存64B/块,外存512B/块 int p-size;/*除共享正文段外,可交换映像长度 int p-wchan;/*睡眠原因:原因消失,则唤醒 int p-textp;/*指向text结构的指针 procNproc;/*Nproc是系统可容纳的最大进程数/50,进程的数据结构 进程的扩充控制块/User结构(1),每个进程User结构的虚拟起始地址都是u=14000。操作系统通过编译、链接给u变量赋值,其地址空间对应核心空间第
8、7页,其物理地址可以映射到主存中各进程的user结构。User结构含有当进程换出内存候不需要访问的所有数据,进程的数据结构 进程的扩充控制块/User结构(2),Struct user(主要部分)int u-rsav2;/*调度进程的正常保留区:r5,r6 int u-qsav2;/*中止系统调用的越级返回保留区 int u-ssav2;/*fork时恢复子进程运行的保留区 char u-segflg;/*I/O标志,0/1/2分别为:用户数据/系统/用户指令空间 char u-error;/*出错返回码 char u-uid;/*有效用户标识号 char u-gid;/*有效用户组标识号 c
9、har u-ruid/*实际用户标识号 char u-rgid;/*实际用户组标识号 int u-procp;/*指向本进程的proc结构指针 char*u-base;/*I/O基址,文件传输中表示主存地址,R/W-目标/信息源指针 char*u-count;/*I/O字节数 char*u-offset2;/*文件传输中表示文件内相对位移量(字节)char*u-cdir;/*当前目录项i节点指针 char u-dbufDIRSIZE;/*保留当前用到的文件路径名 char*u-dirp;/*当前目录文件名指针,进程的数据结构 进程的扩充控制块/User结构(3),Struct int u-in
10、o/*i结点号/*该结构保存一个文件目录项 char u-nameDIRSIZE;/*该文件路径名分量 u-dent;int*u-pdir;/*父目录项i结点指针 char u-uisa16;/*存放本进程用户空间地址寄存器内容 char u-uisd16;/*存放本进程用户空间说明寄存器内容 char u-ofileNOFILE;/*用户打开文件表,共15个表目 char u-arg5;/*用户传入的自变量 char u-tsize/*本进程正文段块数 char u-dsize;/*本进程数据段块数 int u-ssize;/*本进程堆栈段块数 char u-signalNSIG;/*软中断
11、处理程序入口表,20个表目 char u-utime;/*进程用户态下运行时间 char u-stime;/*进程核心态下运行时间 char u-cutime;/*已中止子进程用户态下运行时间总和 char u-cstime;/*已中止子进程核心态下运行时间总和 char u-intflag;/*系统调用是否执行完成标志u;,进程的数据结构 共享正文段/text结构,Struct text int x-daddr;/*共享正文段在盘交换区的起始地址 int x-caddr;/*共享正文段在内存中的起始块号(*64=起始地址)int x-size;/*共享正文段长度 char x-count/*
12、共享该正文段的进程数 char x-ccount;/*共享该正文段,且映像在内存的进程数 int*x-iptr;/*指向正文段所在文件的inode指针 textNTEXT;一般NTEXT=40如果有某正文段的共享进程映像在内存中,则该共享正文段一定在内存中,进程映像的基本结构图,进程的状态,进程在其生命周期的不同时刻有不同状态;同一时刻不同进程有不同状态Unix系统中,进城的完整状态有9种。(转换图见下一页)创建状态 内存就绪 就绪且换出:新创建/原就绪进程,因内存紧张而换出 核心态执行 用户态执行 内存中睡眠:执行I/O操作进程,等待 睡眠且换出:内存紧张时,睡眠进程首先被换出 被剥夺状态:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UNIX内核分析 UNIX 内核 分析 课件
链接地址:https://www.31ppt.com/p-6072148.html