操作系统10-1的.pptVIP

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

教材及参考文献 《Understanding the Linux Kernel second edition》Daniel P. BovetMarco Cesati,O’REILLY,2002 《深入理解Linux内核》第二版,陈莉君等译,中国电力出版社,2004 《Linux内核代码情景分析》上下册,胡希明 毛德操,浙江大学出版社,2001 《边学边干-Linux内核指导》李善平等,浙江大学出版社,2002 ·源码阅读网站http://lxr.Linux.no/source ·源码网站:/pub/linux/kernel ;命令解释器;内核概貌 内核程序嵌在一个用户进程的上下文中运行(因系统调用,中断入核)也有部分程序是以几个独立的纯内核线程运行的。 进程运行在用户态时各进程空间分离(如果要共享需要shmget等系统调用支持),各进程运行核心程序时共享内核空间。 ;用户级程序;实验 增加系统调用实现内核参数读写。 利用建立proc文件系统的文件实现内核参数读写。 利用动态加载内核模块将特定功能函数插入open及close系统调用处理过程,以记录用户对资源的使用信息。 设计事件同步系统调用,当一个事件发生时,等事件的所有进程被就绪。 建立一个简单只有一级目录的内存文件系统。 设计一个内存设备驱动程序。 设计USB驱动程序 ;第十章 Linux操作系统 本章内容:进程管理;存储管理;文件系统;设备管理;中断、异常及系统调用;进程通讯。 10.1??进程管理;10.1.1 进程与进程描述符 1 进程概念 LINUX进程与传统UNIX进程的概念没有多大区别 LINUX通过clone()系统调用支持轻权进程(相当于内核级线程) LINUX还支持内核线程的概念,内核线程永远在核心态运行,没有用户空间 2 进程描述符(进程控制块) 由一个task_struct结构表示。task_struct结构是一个复杂的结构,占一千多字节,其各个成员用来准确描述进程在各方面的信息.主要有以下几个部分:;Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.;(1) 进程标识 包括进程的标识号(pid)、进程的用户标识、进程的组标识等。每个进程的标识号是唯一的。 (2) 调度相关信息 这部分内容与进程调度有关,一部分信息见后面的第5节。进程描述符中还需要有结构保存当进程被剥夺处理机时???存器的状态,该进程恢复运行时便可从正确的状态继续运行。 (3) 进程虚拟空间信息 LINUX的进程都在自己的私有地址空间中运行,task_struct的成员mm指向一个mm_struct结构,该结构描述进程空间。 ;(4) 信号处理信息 LINUX支持传统的UNIX信号语义。该部分记录了信号的处理函数及信号掩码等信息。 (5)文件相关信息 包含进程与文件系统交互的信息。主要分为两部分,一部分描述进程进行文件访问时用到的当前目录、根目录信息。另一部分描述被进程正在使用的文件信息,该部分主要有一个file结构数组,数组中的有效项指向某个文件对象。 (6)记帐信息及统计信息 资源是有限的,每个进程对每种资源的使用都有一个限值。另外,还有统计信息来记录系统需要的信息,如页面异常次数、CPU使用时间等。;(7) 描述进程间关系的指针 所有的进程通过一个双向链表链接在一起。通过宏for_each_task可以对每个进程操作。 指向其父进程、子进程、兄弟进程描述符的指针 需要根据pid号能够快速找到进程,系统以pid为关键字建立了一个哈希表, 哈希函数值相同的进程通过进程描述符的pidhash_next和pidhash_pprev成员链在一起。 ;10.1.2 核心态与核心栈 LINUX的运行分为两种模式──核心态和用户态。内核总在核心态下运行,而普通进程通常在用户模式下运行,只有通过系统调用/中断才能切换到核心态运行。 进程拥有两个栈,用户模式栈与核心模式栈,分别在相应模式下使用。进程描述符和进程核心栈的空间分配在一起,内核为它们分配两个连续的物理页面。 ;因为进程描述符已经占用了1KB多的空间,所以核心栈的有效空间是6KB多一点,合理的设计使得这个容量已经足够了;10.1.3 进程状态及状态转换图 LINUX的进程状态有五种,它们分别是: TASK_RUNNING:表示进程具备运行的资格,要么正在运行,要么就是等待被调度执行。进程描述符有一个run_list成员,所有处于TASK_RUNNING状态的进程都通过该成员链在一起,称之为可运行队列。 TASK_INTERRUP

文档评论(0)

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

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

1亿VIP精品文档

相关文档