《深入理解linux内核》笔记八

任何LINUX内核都要记录系统进行了多少CPU活动

 

监管器基于废话藏简单的蒙特卡洛算法,在每一次时钟中断发生时,内核确定该中断若发生在内核态,则内核从堆栈取回中断发生前的eip寄存器的值,并用这个值揭示中断发生前内核区在做什么

 

Linux依赖adjtimex()系统调用来实现

通常把系统配置成能在常规基准上运行时间同步协议,依赖网络定时协议NTP,以在每个节拍逐渐地调整时间

 

第七章、进程调度

LINUX的调度基于分时time sharing技术,多个进程以时间多路复用方式运行,因为CPU的时间被分为“片“slice,给每个可运行进程分配一片

 

交互式进程相对有较高的优先级

 

内核用从100(最高优先级)到139(最低优先级)的数来表示普通进程的静态优先级。优先级越高,基本时间片就越长

 

Runqueue数据结构中最重要的字段是与可运行进程的链表相关的字段

 

一个保持可运行状态的进程通常被限制在一个固定的CPU上

 

调度域schedualing domain实际上是一个CPU集合,他们的工作量应由内核保持平衡。调度域采取分层的组织形式

 

第八章、内存管理

RAM的其余部分称为动态内存dynamicmemory,这是进程内核所宝贵资源,系统资源取决于如何有效管理动态内存

 

对于每个CPU而言,内存都试图把耗时节点的访问次数减到最少

这就要小心地选择CPU最常用的引用的内核数据结构的存放位置

 

Linux2.6支持非。内存访问NCMA模型,在这模型中,给定CPU对不同内存单元的访问时间可能不一样

 

系统的物理内存被划分为几个节点node。在一个单独的节点内,任意给定CPU访问页面所需的时间都是相同的。然而对不同的CPU,这个时间可能就不同

 

每个节点中的物理内存又可以划分为几个管理区eone

 

循环缓冲区的作用是消除CPU负载的峰值

 

第十四章块设备驱动程序

 

块设备的主要特点是,CPU和总线读写数据所花时间与磁盘硬件的速度不匹配

 

块设备的评价访问时间很高

 

块设备中的数据存储设备涉及了许多内核组件。每个组件采用不同的块来管理:硬件块设备控制器采用“扇区”的固定长度来传送数据

 

虚拟文件系统,映射层文件系统将磁盘数据存放在“块”逻辑单元中

 

块设备驱动程序处理程序的“段“”,段是内存区或内存页的一部分,包含磁盘上物流相连的数据块

磁盘高速缓存作用于磁盘数据上的页,页正好装在一个页框中

 

通用块层将所有的上层和下层的组件组合在一起,因此它了解数据的扇区、块、段和页

 

应该把扇区作为传递数据的基本单元,而块是UFS和文件系统传送数据的基本单位

 

在linux中,块的大小必须是2的幂,而且不能超过一个页框,另,必须是扇区的整数倍

 

对磁盘的每个I/O操作,就是在磁盘与一些RAM单元之间相互传送一些相邻扇区的内容

 

磁盘是一个由通用块层处理的逻辑块设备

 

为了防止块设备驱动程序被挂起,每个I/O都是异步处理的

I/O调度程序也被称为电梯算法

 

Linux2.6提供了4种:

预期anticipatory算法、最后期限deadline算法、CFQ complete fairness queueing完全公平队列算法以及NOOP no operating算法。如果没有给定引导参数,缺省使用预期I/O调度程序

 

“最后期限”算法的基本机制:两个最后期限队列和两个排序队列;I/O调度程序在读和写之间交互扫描排序队列,不过更倾向于读请求。扫描基本上是连续的

 

块设备驱动程序是Linux块子系统中的最低层组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值