操作系统原理与实践-邹鹏-第八章 Kylin操作系统实例.pptVIP

操作系统原理与实践-邹鹏-第八章 Kylin操作系统实例.ppt

  1. 1、本文档共41页,可阅读全部内容。
  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文档。上传文档
查看更多
第八章 Kylin实例研究 Kylin实例研究 目的与要求:以Kylin操作系统为例,了解任务管理、内存管理以及Linux兼容等操作系统重要功能的实现细节。 重点与难点:进程的运行状态,进程虚地址空间组织,Linux二进制兼容。 第八章 Kylin实例研究 8.1 Kylin操作系统概述 8.2 任务管理 8.3 存储管理 8.4 Kylin系统服务与Linux兼容 8.1 Kylin操作系统概述 基于BSD操作系统开发的类UNIX操作系统 。 采用层次式体系结构 基本内核层 系统服务层 核外工具层 安全和网络功能增强 8.2 系统服务层任务管理 8.2.1 Kylin进程概述 8.2.2 进程状态 8.2.3 进程切换 8.2.4 调度 8.2.5 进程的生命周期 8.2.1 Kylin进程概述 为实现多任务支持,Kylin使用进程来表示系统中执行的每一个任务 ,进程模型在Kylin操作系统的系统服务层实现。 重要的概念 进程描述符 内核线程 轻量级进程 8.2.2 进程状态 8.2.3 进程切换 主动切换和被动切换 切换操作 8.2.4 调度 调度类型 基于单调度队列的调度 8.2.5 进程的生命周期 进程创建 程序执行 进程终止 进程删除 8.3 系统服务层存储管理 8.3.1 x86体系结构的页式存管和Kylin中 的页表管理 8.3.2 进程地址空间的基本架构 8.3.3 内核虚存动态分配函数 8.3.4 UMA分配系统 8.3.5内核加载时的内存布局和虚存系统的初始化 8.3.6 进程的创建和执行 8.3.7 缺页和调页 8.3.1 x86体系结构的页式存管和页表管理 X86体系结构的页式存储管理 8.3.1 x86体系结构的页式存管和页表管理 Kylin进程页表的组织 8.3.1 x86体系结构的页式存管和页表管理 Kylin进程页表的构造 内核页表构造 进程页表构造 8.3.1 x86体系结构的页式存管和页表管理 反向页表 使用页表可以使我们从虚拟地址定位物理页帧,在操作系统的运行过程中还会存在另外一种需要:了解物理页帧被哪些虚拟地址所引用。为了有效的支持这种需求,引入了反向页表的机制 。 8.3.2 进程地址空间的基本架构 主要管理层次对应的数据结构及职能 对虚存空间的分工管理vm_map和vm_map_entry 对物理空间的分工管理vm_page 对后备存储空间的分工管理vm_pager 虚存页和物理页的纽带,数据存储的调度中心vm_object 8.3.2 进程地址空间的基本架构 虚拟地址空间的组织 8.3.2 进程地址空间的基本架构 上图显示的虚拟地址空间组织为系统提供了多种功能上的便利 地址空间隔离; 高效关联虚存空间和物理空间,抽象了同后备存储之间的调页操作; 使缺页操作容易实现; 提供了内存共享机制。 8.3.2 进程地址空间的基本架构 重要的例程和相关功能 vm_map操作函数 vm_object操作函数 vm_page操作函数 8.3.3 内核虚存动态分配函数 不可阻塞内存分配函数 kmem_alloc()总是在kernel_map或子map中分配地址空间,分配过程不可阻塞,要么成功返回一个虚空间的首地址,要么失败返回NULL。该函数主要用于中断处理等函数的内存分配。 8.3.3 内核虚存动态分配函数 可阻塞内存分配函数 内核中有些关于内存的需求是可被阻塞的,例如网络缓冲区分配等,kmem_malloc()实现了这种内存分配功能。 8.3.4 UMA分配系统 设计思想 吸纳了对象缓存分配思想,建立了UMA(Uniform Memory Allocation)分配器,它的目标是对于同类数据的地址空间管理达到时间和空间的高效性,具体说有如下两点: 提高分配和释放速度; 减少碎片,降低废虚存空间的比例。 8.3.4 UMA分配系统 重要数据结构 Item:待分配数据结构的抽象,一个item只是一块经过对齐的固定大小连续虚存空间。 slab单元:页面或连续页面,其中连续紧密排放item,描述slab单元的数据结构uma_slab可放也可不放在slab单元内。 uma_zone:同类slab单元的描述,对slab单元中item所描述数据结构的“总容器”的抽象,提供了该类数据地址分配的构建和析构函数。 uma_keg:zone的管理结构,其中描述了item的大小,包含了zone所描述的所有slab单元的分类链表。 8.3.4 UMA分配系统 数据结构之间的关联关系 8.3.4 UMA分配系统 Uma分配器的使用 从数据结构请求者对应的zone中以zone/keg

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档