第二章Linux内核分析_第1页
第二章Linux内核分析_第2页
第二章Linux内核分析_第3页
第二章Linux内核分析_第4页
第二章Linux内核分析_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章Linux内核分析第一页,共26页。2.2Linux进程管理

操作系统的重要任务之一是管理计算机的软、硬件资源。因而操作系统最核心的概念就是进程:即正在运行的程序。进程是一个动态的实体,Linux的进程具有独立的权限与职责,它在生命期内将使用系统中的资源,Linux支持多种类型的可执行文件格式,如ELF,JAVA等。

2.2.1描述进程的数据结构

2.2.2进程调度

2.2.3创建进程

2.2.4进程通信机制2第二页,共26页。图2-2进程可运行度量函数流程图

根据进程的调度策略区分实时进程和普通进程若是实时进程,则考虑进程的实时优先级;若是普通进程,则只考虑counter返回weight作为衡量进程p的权值goodness()开始p->policy分类返回weight作为衡量依据

SCHED_OTHER

SCHED_FIFO

SCHED_RR

weight=p->counterweight=1000+rt_priority3第三页,共26页。图2-3进程的可运行队列task_struct

task_struct

idle_task

…………

4第四页,共26页。图2-4进程通信的结构图

系统调用接口FileIPCpipesfifoNetIPCDomainSocketsFileIPCSharedMemory

MessagesQueuesSemaphoresKernelIPCWaitQueues

Signals

Linux操作系统支持以下几种进程间通信的机制:信号(Signals)、管道(Pipe)和命名管道(NamedPipe)、SystemV的IPC机制(包括信号量(Semaphore)、消息队列机制(MessageQueuesMechanism)和共享内存(SharedMemory))、用于网络通信的套节字机制(SocketsMechanism)和全双工管道机制。5第五页,共26页。2.3Linux存储管理图2-5内存管理器之间的关系

内存管理子系统是操作系统的重要组成部分,它的主要任务是:高效地管理系统中的内存资源,提供对内存资源快速的分配和回收;提高内存的利用率,减少内存的浪费,充分发挥内存的作用。Linux将内存管理的工作划分开,实现了5个不同的内存管理器。它们分别是:

6第六页,共26页。

一.数据结构附:free_area数据结构

二.页分配

unsignedlong_get_free_pages(intgfp_mask,unsignedlongorder)

三.页释放

voidfree_pages(unsignedlongaddr,unsignedlongorder)

四.页回收

当物理内存短缺时,物理内存管理器必须尝试回收某些物理页,Linux创建了一个内核交换守护进程kswapd,专门负责物理页的回收,当然,页分配函数自己也会强行回收物理页,而且两者的方法也是一致的。2.3.1物理内存管理器7第七页,共26页。图2-6free_area数据结构8第八页,共26页。2.3.2内核内存管理器图2-7slab分配器的结构

内核在运行过程需要大量而频繁地使用内存。这些内存有以下特点:

1、因为是内核使用,因此不参与交换;2、使用时间一般都比较短;3、要求动态分配和回收;4、要求响应时间快,分配速度慢的管理器会导致整个系统性能的下降;5、尺寸一般都比较小,远远小于一页,如果直接使用物理内存管理器按页管理,其利用率会非常低。9第九页,共26页。图2-8高速缓存描述符与Slab描述符之间的关系10第十页,共26页。2.3.3虚拟内存管理器图2-9Linux虚拟内存的实现结构11第十一页,共26页。图2-10虚拟内存实现机制之间的关系12第十二页,共26页。图2-11Linux的三级页表结构13第十三页,共26页。图2-12虚拟内存区域及其操作集的结构14第十四页,共26页。空闲页面活跃页面不活跃且修改的页面不活跃且没修改的页面图2-13Linux的页面交换机制分配换出换出换入换入回收释放变为内存空间15第十五页,共26页。2.3.4Linux的高速缓冲机制

一.缓冲区高速缓冲(BufferCache)

二.页面高速缓冲(PageCache)

三.交换高速缓冲(SwapCache)

四.转换后援缓冲器(TLB)16第十六页,共26页。2.4Linux设备管理

2.4.1Linux设备管理结构字符设备块设备

驱动程序硬件设备控制器图2-14Linux设备管理层次图

用户程序

系统调用

文件系统

高速缓存

17第十七页,共26页。

2.4.2I/O控制方式

轮询方式、中断方式、直接内存访问(DMA)

2.4.3Linux设备驱动程序

2.4.4字符设备驱动程序

对于设备的描述可通过device_struct数据结构来实现,如下所示: structdevice_struct{ constchar*name;//设备驱动程序注册的设备名称 structfile_operations*fops;//设备的标准操作例程集,其中的操作例程由设 //备驱动程序定义,并分别完成指定的设备操作 }18第十八页,共26页。2.4.5块设备驱动程序在fs/block_dev.h中有如下定义: staticstruct{ constchar*name; structblock_device_operations*bdops;}blkdevs[MAX_BLKDEV];19第十九页,共26页。图2-15块设备读写请求

blk_dev_structblk_devrequest_fricurrent_request……requestdevcmd……bhbhlailnextrequestdevcmd……bhbhlailnextbuffer_headb_devb_blocknr……b_rpeb_prev_freeb_requexl20第二十页,共26页。2.5Linux文件系统

2.5.1Linux文件系统概述

图2-16文件系统的结构

文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构。文件系统负责在外存上管理文件,并把对文件的存取、共享和保护等手段提供给操作系统和用户。它不仅方便了用户使用,保证了文件的安全性,还可以大大地提高系统资源的利用率。21第二十一页,共26页。2.5.2虚拟文件系统VFS

图2-17Linux文件系统的层次结构VFS的功能:1、记录可用的文件系统的类型; 2、将设备同对应的文件系统联系起来; 3、处理一些面向文件的通用操作; 4、涉及到针对文件系统的操作时,VFS把他们映射到与控制文件、目录、以及inode相关的物理文件系统。22第二十二页,共26页。图2-18VFS与具体文件系统之间的关系示意图23第二十三页,共26页。2.5.3EXT2文件系统

EXT2(第二代扩展文件系统)由ReyCard设计,它是Linux界中设计最成功的文件系统,它很好地继承了Unix文件系统的主要特色,如普通文件的三级索引结构,目录文件的树型结构和把设备作为特别文件等。

Linux文件系统是一个逻辑的自包含的实体,它含有inode,目录和数据块。Linux将整个磁盘划分成若干分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论