linux中进程上下文 中断上下文
来源:互联网 发布:心灵想要大声呼喊知乎 编辑:程序博客网 时间:2024/06/05 15:35
进程上下文是一种内核所处的操作模式,此时内核代表进程执行--例如执行系统调用或运行内核线程。
2.寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);
3.系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。
在进程上下文中,可以用current宏关联当前进程,也可以睡眠,也可以调用调度程序。
看《LInux内核设计与实现 第二版》时,看到一句 “当执行一个中断处理程序或下半部时,内核处于中断上下文。”
中断上下文和进程上下文是两个没有瓜葛的概念,尽管中断上下文的current宏会被指向被中断的进程。
因为没有进程的背景,所以中断上下文不可以睡眠,也不能调用会引起睡眠的函数,如kmalloc。中断上下文中的代码应该尽可能迅速简洁。
上下文context: 上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。
一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。
1.用户级上下文: 正文、数据、用户堆栈以及共享存储区;2.寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);
3.系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。
当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。而系统调用进行的模式切换(mode switch)。模式切换与进程切换比较起来,容易很多,而且节省时间,因为模式切换最主要的任务只是切换进程寄存器上下文的切换。
在进程上下文中,可以用current宏关联当前进程,也可以睡眠,也可以调用调度程序。
看《LInux内核设计与实现 第二版》时,看到一句 “当执行一个中断处理程序或下半部时,内核处于中断上下文。”
中断上下文和进程上下文是两个没有瓜葛的概念,尽管中断上下文的current宏会被指向被中断的进程。
因为没有进程的背景,所以中断上下文不可以睡眠,也不能调用会引起睡眠的函数,如kmalloc。中断上下文中的代码应该尽可能迅速简洁。
- linux中进程上下文 中断上下文
- linux中断--中断上下文&进程上下文
- Linux内核中进程上下文、中断上下文、原子上下文、用户上下文的理解
- Linux内核中进程上下文和中断上下文的理解
- Linux内核中进程上下文和中断上下文的理解
- Linux内核中进程上下文和中断上下文的理解
- 进程上下文,中断上下文
- 进程上下文&中断上下文
- 进程上下文 & 中断上下文
- 进程上下文 & 中断上下文
- 中断上下文、进程上下文
- 进程上下文、中断上下文
- 进程上下文 & 中断上下文
- 进程上下文 中断上下文
- 中断上下文、进程上下文
- 进程上下文 & 中断上下文
- linux 进程上下文和中断上下文
- Linux 进程上下文和中断上下文
- 传统table开发和当前流行的div+css开发模式的比较
- 主流android手机分辨率的调研情况
- uvaoj 321 - The New Villa
- python-django返回JSON,实用AJAX
- git,提交更新到本地 origin master 分支
- linux中进程上下文 中断上下文
- Java IO _压缩流
- java类型转换
- Non-blocking I/O and select()
- 一个通用的LINUX驱动Makefile
- Play Framework常用标签list,set,如何遍历list、map类型数据
- spring源码学习之路---AOP初探(六)
- oracle 11g的interval partition 如何按天\周\月\年分区
- JavaScript:原型和继承(上篇)