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

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

ID:51966009

大小:1.08 MB

页数:41页

时间:2020-03-26

操作系统原理与实践 邹鹏 第八章 Kylin操作系统实例.ppt_第1页
操作系统原理与实践 邹鹏 第八章 Kylin操作系统实例.ppt_第2页
操作系统原理与实践 邹鹏 第八章 Kylin操作系统实例.ppt_第3页
操作系统原理与实践 邹鹏 第八章 Kylin操作系统实例.ppt_第4页
操作系统原理与实践 邹鹏 第八章 Kylin操作系统实例.ppt_第5页
资源描述:

《操作系统原理与实践 邹鹏 第八章 Kylin操作系统实例.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章Kylin实例研究Kylin实例研究目的与要求:以Kylin操作系统为例,了解任务管理、内存管理以及Linux兼容等操作系统重要功能的实现细节。重点与难点:进程的运行状态,进程虚地址空间组织,Linux二进制兼容。第八章Kylin实例研究8.1Kylin操作系统概述8.2任务管理8.3存储管理8.4Kylin系统服务与Linux兼容8.1Kylin操作系统概述基于BSD操作系统开发的类UNIX操作系统。采用层次式体系结构基本内核层系统服务层核外工具层安全和网络功能增强8.2系统服务层任务管理8.2.

2、1Kylin进程概述8.2.2进程状态8.2.3进程切换8.2.4调度8.2.5进程的生命周期8.2.1Kylin进程概述为实现多任务支持,Kylin使用进程来表示系统中执行的每一个任务,进程模型在Kylin操作系统的系统服务层实现。重要的概念进程描述符内核线程轻量级进程8.2.2进程状态8.2.3进程切换主动切换和被动切换切换操作8.2.4调度调度类型基于单调度队列的调度8.2.5进程的生命周期进程创建程序执行进程终止进程删除8.3系统服务层存储管理8.3.1x86体系结构的页式存管和Kylin中的页表

3、管理8.3.2进程地址空间的基本架构8.3.3内核虚存动态分配函数8.3.4UMA分配系统8.3.5内核加载时的内存布局和虚存系统的初始化8.3.6进程的创建和执行8.3.7缺页和调页8.3.1x86体系结构的页式存管和页表管理X86体系结构的页式存储管理8.3.1x86体系结构的页式存管和页表管理Kylin进程页表的组织8.3.1x86体系结构的页式存管和页表管理Kylin进程页表的构造内核页表构造进程页表构造8.3.1x86体系结构的页式存管和页表管理反向页表使用页表可以使我们从虚拟地址定位物理页帧,

4、在操作系统的运行过程中还会存在另外一种需要:了解物理页帧被哪些虚拟地址所引用。为了有效的支持这种需求,引入了反向页表的机制。8.3.2进程地址空间的基本架构主要管理层次对应的数据结构及职能对虚存空间的分工管理vm_map和vm_map_entry对物理空间的分工管理vm_page对后备存储空间的分工管理vm_pager虚存页和物理页的纽带,数据存储的调度中心vm_object8.3.2进程地址空间的基本架构虚拟地址空间的组织8.3.2进程地址空间的基本架构上图显示的虚拟地址空间组织为系统提供了多种功能上的

5、便利地址空间隔离;高效关联虚存空间和物理空间,抽象了同后备存储之间的调页操作;使缺页操作容易实现;提供了内存共享机制。8.3.2进程地址空间的基本架构重要的例程和相关功能vm_map操作函数vm_object操作函数vm_page操作函数8.3.3内核虚存动态分配函数不可阻塞内存分配函数kmem_alloc()总是在kernel_map或子map中分配地址空间,分配过程不可阻塞,要么成功返回一个虚空间的首地址,要么失败返回NULL。该函数主要用于中断处理等函数的内存分配。8.3.3内核虚存动态分配函数可阻

6、塞内存分配函数内核中有些关于内存的需求是可被阻塞的,例如网络缓冲区分配等,kmem_malloc()实现了这种内存分配功能。8.3.4UMA分配系统设计思想吸纳了对象缓存分配思想,建立了UMA(UniformMemoryAllocation)分配器,它的目标是对于同类数据的地址空间管理达到时间和空间的高效性,具体说有如下两点:提高分配和释放速度;减少碎片,降低废虚存空间的比例。8.3.4UMA分配系统重要数据结构Item:待分配数据结构的抽象,一个item只是一块经过对齐的固定大小连续虚存空间。slab单

7、元:页面或连续页面,其中连续紧密排放item,描述slab单元的数据结构uma_slab可放也可不放在slab单元内。uma_zone:同类slab单元的描述,对slab单元中item所描述数据结构的“总容器”的抽象,提供了该类数据地址分配的构建和析构函数。uma_keg:zone的管理结构,其中描述了item的大小,包含了zone所描述的所有slab单元的分类链表。8.3.4UMA分配系统数据结构之间的关联关系8.3.4UMA分配系统Uma分配器的使用从数据结构请求者对应的zone中以zone/keg/

8、slab的解析顺序找到一个有空闲item的slab,然后使slab提供的item序号从hash表中查找到item对应的实际地址,这就是分配的数据结构的首地址。8.3.4UMA分配系统UMA分配器涉及函数keg_ctorzone_ctoruma_kcreateuma_zcreate8.3.4UMA分配系统UMA分配器初始化在UMA子系统初始化时,操作系统还没有做好虚存管理的全部准备。因此,UMA的“祖先”只能依赖系统设计者手工生

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。