UNIX内核分析1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNIX内核分析1

UNIX 内核分析 参考教材: UNIX操作系统教程 尤晋元 西安电子科技大学出版社 前 序 UNIX系统1969年诞生,以其特有的简洁性和开放性获得赞同与青睐,已经被移植到数十种硬件平台上。 UNIX是通用的,交互式的分时系统。 UNIX系统已远远超出一个OS软件所起的作用,它在方方面面潜移默化地影响着人们对软件的设计和开发,其蕴含的设计思想至今仍然是十分值得借鉴的。 UNIX系统特点 已有技术的精选、提炼和发展,简洁实用,短小精悍,功能强大 具有分层、可装卸的文件卷系统 任何一个程序可不加改变地在前台/后台异步运行 将文件、目录和设备均统一看作文件 提供I/O缓冲技术 提供功能完备、使用灵活的命令语言 丰富的核外系统程序 采用高级语言编写,可移植性好 UNIX系统结构 UNIX核心源程序结构 以UNIX V6为例,其内核源程序约一万行,按编译方式大致分3类44个文件: .c文件:28个文件,190个可单独编译的子程序 .h文件:全局变量,14个文件 .s文件:汇编程序文件,约1000条,2个文件33个子程序 进程描述 ——程序状态字和通用寄存器 PDP-11程序状态字组成 进程描述 ——程序状态字和通用寄存器 通用寄存器 PDP-11/40有9个通用寄存器,长度16位,编号r0-r7 r0-r1:I/O参数传递 r2-r4:存放过程执行时的局部变量 r5:环境指针 r6:堆栈指针,kernel/user态各1个 r7:PC 进程描述 ——进程与映像(Process Image) 进程是映像的执行 映像是计算机的执行环境,一个映像包括 存储映像 通用寄存器的值 打开文件的状态 当前目录 其他信息 进程描述 ——进程的存储影响 进程映像中最为关键的部分是存储映像。 存储映像由5部分组成: 进程控制块PCB 共享正文段 数据段 共享内存段 工作区 进程控制块PCB Unix为了节省PCB所占主存,PCB分为2部分 常驻内存部分:Proc结构。包含进程调度必须的信息; 非常驻内存部分: User结构。包含进程运行时才要用到的更多其他信息,它随用户程序和数据部分换进/换出主存。 User区的字段只能由正在运行的进程存取。即只有占用CPU的进程才能访问属于当前进程的私有User区。 整个系统有一个进程表,称为Proc数组。Unix系统最多有50个进程; 每个进程有专用的User区,但核心根据进程页表,通过地址映射机构,可访问当前进程的User区。(好像系统中仅有一个User区) 共享正文段 是指可由多个进程共享的区域,包括 纯代码形式的程序 参数 一个进程的正文段也可以不存在 数据段 指进程执行时用到的数据,包括 外部变量 静态局部变量 常数 如果进程执行的程序为非共享的,也可以构成数据段的一部分,可被用户态进程读、写、执行 工作区 进程的用户栈和核心栈分别为进程用户态和核心态下运行的工作区 用于函数调用时的常数传递,现场保留,返回地址保存,局部变量存储等 进程映像在存储器中的分布 PDP-11/40最多配置248K内存,进程映像分为常驻/非常驻内存部分 常驻部分:Proc,共享正文段的控制信息块 非常驻部分:数据段,共享正文段,工作区。 Unix将除了共享正文段以外的其他部分作为一个整体处理,(结构见下页) 无论在主存还是在盘交换区,该部分占用连续存储区 作为整体入/出主存 Unix设置text数组(共40个元素)管理所有可共享正文段,表目内容主要有:共享正文段外存地址,段长度,共享该段的进程数等 非常驻部分的分布结构 ppda区只有核心态进程可以访问 进程的数据结构 ——进程的基本控制块/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; /*偏置值:计算进程优先权时使用,可由用户设置 char p-sig; /*进程接收的信号类型数:0 ~19,0 ~13系统定义 int p-addr; /*

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档