
linux 0.11版本内核学习笔记
文章平均质量分 70
heiworld
school of software engineer , ustc
展开
-
对linux 0.11版本中switch_to()的理解
switch_to的代码在linux-0.11\include\linux中的sched.h。它是一个宏定义,代码如下:原创 2014-05-09 15:24:20 · 2790 阅读 · 0 评论 -
对于linux 0.11版本中睡眠和唤醒函数的理解
sleep_on()函数主要是为了在一个进程所请求的资源忙的时候进行进程调度,并把该进程放到等待队列上等待一段时间。代码如下:void sleep_on(struct task_struct **p){ struct task_struct *tmp; if (!p) return; if (current == &(init_task.task)) panic("task[原创 2014-05-09 18:15:27 · 1884 阅读 · 1 评论 -
对linux 0.11版本中进程调度源码的理解
刚看到有关进程调度的源码,记录下。部分源码如下:void schedule(void){ int i,next,c; struct task_struct ** p;/* check alarm, wake up any interruptible tasks that have got a signal */ for(p = &LAST_TASK ; p > &FIRST_TA原创 2014-05-09 13:56:54 · 1466 阅读 · 0 评论 -
linux 0.11版本内核中信号signal()和sigaction()的区别
记录下我对这两个有关信号程序的理解,signal()和sigaction()主要用来设置针对某一信号的处理程序,这两个系统调用会首先会在进程自己的任务数据结构中设置sigaction[]结构数组,该元素结构如下图所示:原创 2014-05-11 20:54:29 · 1547 阅读 · 0 评论 -
对linux 0.11版本中do_signal()的理解
do_signal()的做法蛮让人印象深刻的,在此记录下来。do_signal()函数式内核系统调用(int 0x80)中断处理程序中对信号预处理程序。假如看过系统调用或者时钟中断的源码,会发现他们在退出的时候总会检查下信号位图,假如有的会就会调用do_signal,它会把信号的处理函数插入到用户程序堆栈中,然后修改中断返回的环境,直接返回到用户态的信号处理函数中先,再从用户态中跳转到原先执行原创 2014-05-11 21:55:41 · 2450 阅读 · 0 评论 -
对linux 0.11版本内核中的进程退出和回收的理解
常常看到调用exit结束进程,那结束进程到底做了哪些事情叫结束进程呢?目前在看的linux 0.11版本的内核里面的exit()系统调用里面就是调用了do_exit(),它的源码如下:原创 2014-05-13 23:04:04 · 1681 阅读 · 0 评论 -
对linux 0.11版本内核的kill系统调用的理解
kill系统调用以前一直认为只是用来杀死某个进程的,看了源码纠正下自己的错误认识。源码如下:原创 2014-05-13 19:02:03 · 1568 阅读 · 0 评论 -
对linux 0.11版本内核中进程创建fork()的理解
首先来看一下fork的系统调用,源码如下:原创 2014-05-14 13:41:38 · 987 阅读 · 0 评论 -
电梯算法
在看linux 0.11版本的块设备驱动部分,里面提到了电梯算法,原创 2014-06-01 18:58:01 · 4150 阅读 · 0 评论