Linux-0.12内核sleep_on函数分析
来源:互联网 发布:java程序结构解读 编辑:程序博客网 时间:2024/06/05 19:33
sleep_on用于进程休眠,原型如下:
void sleep_on(struct task_struct **p)
当进程访问某个互斥资源时,如果资源被另外进程占用,当前进程就需要休眠。
假设资源的结构如下:
struct res
{
....
struct task_struct *wait;
}
其实我们参考下文件系统的i节点就会发现,i节点也是一种资源,它的结构体中就有一个变量i_wait。那么我们就用i节点举例。如果进程访问某个i节点,发现i节点被锁住,当前进程就需要睡眠:sleep_on(&i_wait),这样当前进程就在i节点的i_wait队列上睡眠,那么重点是i_wait睡眠队列是如何形成的呢?用下面的图片叙述。
注意点:p和current是全局变量,tmp是进程私有,在进程栈中。i_wait=NULL,并且i_lock=1,代表inode被锁住没法访问。
0 0
- Linux-0.12内核sleep_on函数分析
- Linux内核0.11版本sched.c中sleep_on()函数分析
- Linux-0.11内核源码分析系列:进程调度sleep_on()函数分析
- linux-011中休眠函数以及唤醒函数的分析(sleep_on,wake_up)
- linux-0.11中进程睡眠函数sleep_on()解析
- linux0.11进程睡眠sleep_on函数和唤醒wake_up函数分析
- linux内核schedule函数分析
- linux内核--wait_event_interruptible_timeout()函数分析
- Linux0.11 由进程睡眠函数sleep_on()中的堆栈变量tmp引发的思考 关于进程内核堆栈
- linux内核分析之signal.c函数
- Linux内核中mktime()函数算法分析
- Linux内核中start_kernel函数的分析
- Linux内核中mktime()函数算法分析
- linux内核启动第二阶段分析-setup_arch()函数
- linux内核calibrate_delay函数实现分析
- linux内核启动第二阶段分析-setup_arch()函数
- Linux内核---8.filechk函数分析
- Linux内核0.11版本schedule()函数分析
- InnoDB: Error: Table "mysql"."innodb_table_stats" not found
- poj 1651 区间dp+矩阵连乘DP
- Linux 线程(1)线程创建
- iOS类实现里面怎么用属性
- JAVA的面向对象编程--------课堂笔记
- Linux-0.12内核sleep_on函数分析
- SQL SERVER资源性能监控-性能计数器监控点
- 主线程和子线程通讯,主线程用bundle发送数据到子线程
- Myeclipse project红叉
- eclipse中的常用基础设置
- sql语句 手记
- oracle 时间相减获取具体的天数、小时、分钟
- 后台接受前台数组的方式
- C#从头开始第一篇之C#与.Net框架