Linux 2.6.xx内核分析
文章平均质量分 67
CToday
这个作者很懒,什么都没留下…
展开
-
Linux内核调度策略与算法分析 (2)
转自http://hi.baidu.com/mychaoyue2011/blog/item/6df45895c3d63243d0135e01.html4 Linux内核调度策略与算法分析 c = -1000;list_for_each(tmp, &runqueue_head) { /* 从runqueue中选择一个最佳进程来运行转载 2012-03-07 23:25:18 · 542 阅读 · 0 评论 -
wait_on_buffer 解析
Linux-0.12代码如下:static inline void wait_on_buffer(struct buffer_head * bh){ cli(); /*关中断*/ while (bh->b_lock) /*判断刚才申请的缓冲区是否加锁了*/ sleep_on(&bh->b_wait); /*由于进程1接下来的执行需要改缓冲块原创 2014-07-19 18:08:36 · 2169 阅读 · 1 评论 -
Linux 0.12内核从开机加电到执行main函数之前的过程
1.启动BIOS,准备实模式下中断向量表和中断服务程序在按下电源按钮的瞬间,CPU硬件逻辑强制将CS:IP设置为0xFFFF:0x0000,指向内存地址的0xFFFF0位置,此位置属于BIOS的地址范围。关于硬件如何指向BIOS区,这是一个纯硬件动作,在RAM实地址空间中,属于BIOS地址空间部分为空,硬件只要见到CPU发出的地址属于BIOS地址范围,直接从硬件层次将访问重定向到BIOS的原创 2014-06-28 18:16:22 · 1136 阅读 · 0 评论 -
Linux 0.12 switch_to切换过程
switch_to源代码:/* * switch_to(n) should switch tasks to task nr n, first * checking that n isn't the current task, in which case it does nothing. * This also clears the TS-flag if the task we sw原创 2014-07-18 12:53:50 · 1421 阅读 · 1 评论 -
Linux cgroup机制分析之cpuset subsystem 【转】
一:前言前面已经分析了cgroup的框架,下面来分析cpuset子系统.所谓cpuset,就是在用户空间中操作cgroup文件系统来执行进程与cpu和进程与内存结点之间的绑定.有关cpuset的详细描述可以参考文档: linux-2.6.28-rc7/Documentation/cpusets.txt.本文从cpuset的源代码角度来对cpuset进行详细分析.以下的代码分析是基于linu原创 2014-03-09 12:15:33 · 784 阅读 · 0 评论 -
Linux cgroup机制分析之框架分析 【转】
一: 前言前段时间,一直在写操作系统和研究Solaris kernel.从而对linux kernel关心甚少.不久前偶然收到富士通的面试,由于诸多原因推辞掉了这次机会.不过招聘要求给我留下了较深的印像.其中涉及到了cgroup机制.cgroup对我来说并不陌生,在LKML上看到过它的path.在2008 AKA大会上也有人对它做为专题分析.不过一直都没有深入代码研究.这段时间打算将kerne原创 2014-03-09 12:12:29 · 795 阅读 · 0 评论 -
保留的页框池
Motivation:有两种方法来满足内存分配请求:当有足够的空闲内存可用时,请求会被立刻满足否则,内核会回收一些内存,并将发出请求的内核控制路径阻塞,直到有内存被释放但是当请求内存时,一些内核控制路径不能被阻塞。比如在处理中断或执行临界区的代码时的原子请求。原子请求从来不会被阻塞:如果没有足够的空闲页,则仅仅是分配失败而已。尽管内核无法保证一个原子内存分配请求绝不失败,但原创 2014-03-09 11:21:18 · 831 阅读 · 0 评论 -
页框管理
对内存的管理涉及两个部分:对物理内存的管理对虚拟内存的管理对物理内存的管理 是指对“RAM的管理”,对虚拟内存的管理 是指对进程地址空间的管理,它们两者通过page fault(缺页处理)联系起来。在RAM管理部分,主要包括页框管理和内存区管理;内存管理包括内存区管理、内存映射、伙伴系统、slab和内存池等部分。对于i386这种32位的处理器结构,Linux采用4KB页框大原创 2014-03-07 10:57:46 · 1842 阅读 · 0 评论 -
do_fork实现分析
进程复制的三个机制fork、vfork和clone最终都是调用do_fork来实现子进程的产生的,不同的产生方式通过传递给do_fork的不同参数来控制。其代码执行流程如下:代码: if (unlikely(clone_flags & CLONE_STOPPED)) { static int __read_mostly count = 100; if原创 2014-03-07 11:32:12 · 1581 阅读 · 0 评论 -
Linux内核调度策略与算法分析 (1)
转自http://hi.baidu.com/mychaoyue2011/blog/item/6df45895c3d63243d0135e01.html本报告分析Linux 2.6内核的调度策略及算法。Linux内核支持多CPU,每个CPU执行类似的策略,但在必要时(例如CPU负载不平衡等时刻),还会进行更高层的CPU间调度,由此还会引出CPU间的同步等问题。为了简化问题,此转载 2012-03-07 23:22:52 · 661 阅读 · 0 评论 -
TSS描述符表的作用
任务状态描述符表TSS用来记录当前进程执行时所对应的寄存器的数据,这些数据主要在进程切换时发挥作用,比如,现在要由当前进程"进程A"切换到进程B,那么系统就要将此时各个寄存器的数值,保存在进程A的任务状态描述符表中,以便将来进程A再次执行时接着使用而不至于出现混乱;之后,再用进程B中TSS里面的寄存器值,来设置相应的寄存器,以此支持进程B接下来的执行。局部数据描述符表LDT中,记录着当前进程对原创 2014-07-11 17:47:57 · 2435 阅读 · 0 评论