2014年7月26日 内核抢占和内核控制路径的设计
内核抢占的一种定义:如果进程正在内核态执行内核函数时,允许发生内核切换(就是被替换的进程是内核函数所在进程),这个内核就是抢占的。
linux内核提供了内核抢占的开启和关闭功能,在current_thread_info的preempt_count字段大于0时,内核就是不能抢占的。可以通过preempt_disable和preempt_...
分类:
系统相关 时间:
2014-07-27 11:29:02
阅读次数:
255
内核线程是直接由内核本身启动的进程。内核线程实际上是将内核函数委托给独立的进程,与系统中其他进程“并行”执行(实际上,也并行于内核自身的执行),内核线程经常被称为内核“守护进程”。它们主要用于执行下列任务:l 周期性地将修改的内存页与页来源块设备同步。l 如果内存页很少使用,则写入交换区。l 管理延...
分类:
系统相关 时间:
2014-07-24 21:34:22
阅读次数:
263
1.ASCII字符串和宽字符串打印一个ASCII字符串:CHAR* string = “Hello”;KdPrint((“%s\n”, string));//s为小写打印一个宽字符字符串WCHAR* string = L”Hello”;KdPrint((“%S\n”,string));//s为大写2...
1、中断处理程序与其他内核函数真正的区别在于,中断处理程序是被内核调用来相应中断的,而它们运行于中断上下文(原子上下文)中,在该上下文中执行的代码不可阻塞。中断就是由硬件打断操作系统。
2、异常与中断不同,它在产生时必须考虑与处理器时钟同步。异常被称为同步中断,例如:除0、缺页异常、陷入内核(trap)引起系统调用处理程序异常。
3、不同的设备对应的中断不同,而每个中断都通过一个唯一的数字(中...
分类:
系统相关 时间:
2014-07-22 00:08:34
阅读次数:
326
内核抢占无论在抢占还是非抢占内核中,运行在内核态的进程都可以自动放弃CPU.称为计划性进程切换.但是,抢占式内核在相应引起进程切换的异步事件的方式上有差异,称为强制性进程切换.抢占式内核的特点:
一个在内核态运行的进程,可能在执行内核函数期间被另一个进程取代.可抢占式的目的是减少用户态进程的分派延迟...
分类:
其他好文 时间:
2014-05-15 12:00:23
阅读次数:
209
内核抢占
即当进程位于内核空间时,有一个更高优先级的任务出现时,如果当前内核允许抢占,则可以将当前任务挂起,执行优先级更高的进程。抢占内核的主要特点是:一个在内核态运行的进程,可能在执行内核函数期间被另外一个进程取代。
举例说明抢占内核和非抢占内核的区别:
在进程A执行异常处理程序时(肯定是内核态),一个具有较高优先级的进程B变为可执行状态。如果内核是抢占的,就会发生强制性进程切换,让进程B...
分类:
其他好文 时间:
2014-05-13 14:00:24
阅读次数:
410
【摘要】本文主要介绍在ubuntu平台 + 自定义内核上如何安装systemtap工具包及解决编译加载运行过程中的一些问题,如何利用systemtap工具监测分析内核函数,内核模块及用户态程序。
【关键字】ubuntu, systemtap, utrace, backtrace, dtrace, callstack...
分类:
系统相关 时间:
2014-05-07 06:34:57
阅读次数:
1598