第8章内核的总体构成.PDFVIP

  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文档。上传文档
查看更多
第8章内核的总体构成

作者:杜勇(StephenDu) All rights reserved ·1 · 第 8 章 内核的总体构成 本章进入内核的总体构成分析阶段,着重系统性介绍内核的各种机制以及各个子系统。阅读本章需 要读者具有一定的内核基础知识。对于一些常识性的概念、方法,此处不做介绍。 为了达到对系统硬件资源的管理以及对上提供一个统一的运行环境,科学家发明了迄今为止最为复 杂的软件系统——操作系统。而操作系统的核心部分我们称之为内核。本书的核心内容在于介绍迄今最 流行的开源操作系统 Linux 的内核。Linux 内核具有开发活跃、发展速度快、配套软件齐备、应用广泛 的特点。因而,受到了大量软、硬件厂商的大力支持,尤其是在嵌入式领域。赫赫有名的Android 操作 系统就是基于 Linux 内核的。后面我们将利用Android 的系统平台做一些实践性的操作,以让读者能够 在实践中理解内核的设计。以下的章节是按照前一章节为下一章节做铺垫的方式安排的。因此读者在阅 读的时候可以适当的翻看前一章节的内容来理解当前阅读的章节内容。 8.1 线程,进程及内存描述符 我们知道,计算机中主要的硬件资源,诸如:CPU,内存,输入,输出等设备都是共享资源。也就是 说在同一个时间点不可能实现两个 “任务”同时占用这些硬件资源。为了达到看上去 “同时”占用分享 的效果,人们发明了基于 “时分复用”①思想的多任务操作系统。也就是说操作系统作为整个系统软硬 件资源的管理者,具有生杀予夺的大权。下面我们来看看Linux 是如何实现这种管理的。 图 8-1 内核需要实现对硬件资源的共享 8.1.1 内核接受任务请求的最小单位-进程 内核作为计算机系统软硬件的管理者,对用户而言却是一个服务人员。这个服务员的服务质量对用户 而言至关重要。我们先从服务的基本单位介绍-进程介绍起。进程是用户向内核请求的最小单位,也是 Mail:stephenacer@ ·2 · 作者:杜勇(StephenDu) All rights reserved 资源管理的最小单元。也就是说,当用户需要系统做事时,至少有一个进程来完成这件事情而内核也是 将进程作为分配,管理软硬件资源的一个单位 (图8-1 中的每一个请求都是由一个或多个进程组成)。 对于绝大多数人而言进程是一个说不清的东西,但是却在软硬件开发中时时打交道的一个家伙!其实进 程本身并不神秘,在内核中是通过一个 语言中的 struct task_stuct (进程控制块即PCB )来描述的。后 面的一章节我们会介绍,进程就是如下的产物: 进程 = struct stask_struct + 调度器 也就是说进程是一个静态的 struct task_struct 结合动态的调度器的一个综合体,读者不必深究此处“调 度器”是什么,后面我们会介绍。打个比方:整个计算机系统好像一个大型公司,里面有很多员工,每 个人可以完成一份工作,就像进程可以完成一个用户的请求一个道理,每个员工必须接受公司的管理才 能共同完成一个产品的开发,调度器就是公司的管理制度。 图 8-1-1 内核对strct task_struct(即PCB)用链表组织管理 在此处我们着重介绍 struct task_struct。以下是struct task_struct 在内核中的定义,我们简要介绍一下 各个字段的作用,对于一些非主要字段留给读者自行学习。 struct task_stru

文档评论(0)

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

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

1亿VIP精品文档

相关文档