- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
个人收集整理 勿做商业用途
个人收集整理 勿做商业用途
PAGE / NUMPAGES
个人收集整理 勿做商业用途
Minix进程实现
2.5~2.6概述:
本部分内容主要从两个部分介绍进程在Minix中的实现的:第一部分是介绍整个Minix的系统结构的,其中包括了Minix的内部结构以及各种头文件,其主要是对于各个头文件以及进程有关的数据结构的介绍的;第二部分讲的是Minix中进程的实现,其中包括Minix的系统初始化、中断处理、进程间的通信和进程调度。精品文档收集整理汇总
Minix系统结构介绍:
包括Minix内部结构以及各种头文件。
Minix内部四层结构
最底层捕获所有的中断和陷入,完成进程调度,并向高层提供一个采用消息进行通信的独立顺序进程模型。包含完成以下功能的函数:系统初始化、中断、消息传递以及进程调度。精品文档收集整理汇总
第二层包括了I/O进程,每类设备都有一个I/O进程,我们称之为任务(task)。只有一个任务,即系统任务与众不同,它不对应于任何I/O设备。精品文档收集整理汇总
第三层包含向用户进程提供有用服务的进程。这些服务器进程在低于内核和任务的特权级上运行,不能直接访问I/O端口,也不能访问属于自己段以外的内存。精品文档收集整理汇总
第四层包含了所有的用户进程——shell、编译器、编辑器以及用户的a.out 程序。
Minix四层结构之间的联系:
操作系统主要完成的两件事情:管理资源和通过系统调用方式提供扩展的计算机。其中,资源管理主要是在内核(第一、二层)完成的,系统调用的解释在第三层。第三层的各种服务进程被单独的设计成“服务器”,这样可以增加整个系统的可扩展性。如果要是加入一个新的服务器进程,需要重新编译内核。精品文档收集整理汇总
Minix源代码的组织
源代码从逻辑上分成两个目录:/usr/include/和/usr/src/,记做:include/和/src/。精品文档收集整理汇总
include/目录包含了许多符合POSIX标准的头文件,它又包含了三个子目录:
sys/ 包含POSIX头文件
minix/ 包含操作系统使用的头文件
ibm/ 包含IBMPC特有定义的头文件。
src/目录包含了三个重要的子目录,其中包括了操作系统的源代码
kernel/ 第一层和第二层的(进程、消息和驱动程序)
mm/ 内存管理器代码
fs/ 文件系统代码
公共头文件
其中,编译用户程序时可能用到的头文件放在include/目录下,而传统上include/sys/目录放那些编译系统程序和程序所用的头文件。精品文档收集整理汇总
include/目录:
主控头文件src/kernel/kernel.h、src/mm/mm.h以及src/fs/fs.h分别对应于MINIX的三个主要部分,而这三个部分必定包含在MINIX的每一个编译版本中。精品文档收集整理汇总
include/ansi.h:这是编译MINIX系统任何一部分都要处理的第二个文件。其作用是测试编译器是否符合ISO规定的标准C的要求。其中重要的一个宏是_PROTOTYPE。精品文档收集整理汇总
include/limits.h:间接包含在每一个MINIX源文件中的头文件。定义了许多基本的大小值。精品文档收集整理汇总
include/errno.h:被所有的主控头文件包含。它包含了系统调用失败时从全局变量errno返回给用户程序的错误码。同时,errno也用来标识一些内部错误。精品文档收集整理汇总
include/unistd.h、include/string.h、include/signal.h:没有包含在每一个主控头文件中,但是在MINIX三个部分的许多源文件中使用。unistd.h定义了许多常量,其中多数是POSIX需要的,也包含了许多函数原型,其中包括了所有用于进行系统调用的C函数原型;string.h包含了许多用于串操作的C函数原型;signal.h定义了标准信号名,同时包含一些与信号相关的函数原型。精品文档收集整理汇总
include/fcntl.h:采用符号方式定义了文件控制操作使用的许多参数。
include/stdlib.h:定义了大多数C程序(除最简单的以外)编译时要用到的类型、宏和函数原型。它是编译用户程序时使用最频繁的头文件之一。精品文档收集整理汇总
include/termios.h:定义了控制终端类型的I/O设备所用到的常量、宏和函数原型。最重要的数据结构是termios。精品文档收集整理汇总
include/a.out.h:定义了可执行文件在磁盘上的存储格式,包括启动文件执行的文件头结构和编译产生的符号表。只有文件系统引用。精品文档收集整理汇总
include/sys/目录
sys/types.h:定义了
文档评论(0)