进程上下文 & 中断上下文

转载 2012年03月23日 16:32:21
请问进程上下文是什么意思?

1.
进程上下文一般在进程切换中提到,也就是当进程要切换时关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息。

2.
同意楼上的,就是很多书本上提到的进程控制块PCB,保存着进程的很多详细信息

3.

补充(LINUX完全注释中的一段话):
当一个进程在执行时,CPU的所有寄存器中的值、进程的状态以及堆栈中的内容被称为该进程的上下文。当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的上下文,以便在再次执行该进程时,能够得到切换时的状态执行下去。在LINUX中,当前进程上下文均保存在进程的任务数据结构中。在发生中断时,内核就在被中断进程的上下文中,在内核态下执行中断服务例程。但同时会保留所有需要用到的资源,以便中继服务结束时能恢复被中断进程的执行。

4.

非常正确,补充一点,当一个进程运行时 ,产生了一个中断, CPU转而执行中断处理程序 , 虽然CPU当时保存了被中断进程的上下文, 但这和中断处理丝毫没有关系 , 也就是 说, 中断处理程序 没有进程上下文,   但是 ,你却可以得到current的值!
5.
进程上下文就是表示进程信息的一系列东西,包括各种变量、寄存器以及进程的运行的环境。这样,当进程被切换后,下次再切换回来继续执行,能够知道原来的状态。
同理,中断上下文就是中断发生时,原来的进程执行被打断,那么就要把原来的那些变量保存下来,以便中断完成后再恢复。
6.

进程上下文 & 中断上下文

处理器总处于以下状态中的一种:
1、内核态,运行于进程上下文,内核代表进程运行于内核空间;
2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;
3、用户态,运行于用户空间。
进程上下文:

在Linux中,用户程序装入系统形成一个进程的实质是系统为用户程序提供一个完整的运行环境。进程的运行环境是由它的程序代码和程序运行所需要的数据结构以及硬件环境组成的。进程的运行环境主要包括:
1.进程空间中的代码和数据、各种数据结构、进程堆栈和共享内存区等。
2.环境变量:提供进程运行所需的环境信息。
3.系统数据:进程空间中的对进程进行管理和控制所需的信息,包括进程任务结构体以及内核堆栈等。
4.进程访问设备或者文件时的权限。
5.各种硬件寄存器。
6.地址转换信息。
从以上组成情况可以看到,进程的运行环境是动态变化的,尤其是硬件寄存器的值以及进程控制信息是随着进程的运行而不断变化的。在Linux中把系统提供给进程的的处于动态变化的运行环境总和称为进程上下文。

系统中的每一个进程都有自己的上下文。一个正在使用处理器运行的进程称为当前进程(current)。当前进程因时间片用完或者因等待某个事件而阻塞时,进程调度需要把处理器的使用权从当前进程交给另一个进程,这个过程叫做进程切换。此时,被调用进程成为当前进程。在进程切换时系统要把当前进程的上下文保存在指定的内存区域(该进程的任务状态段TSS中),然后把下一个使用处理器运行的进程的上下文设置成当前进程的上下文。当一个进程经过调度再次使用CPU运行时,系统要恢复该进程保存的上下文。所以,进程的切换也就是上下文切换。

在系统内核为用户进程服务时,通常是进程通过系统调用执行内核代码,这时进程的执行状态由用户态转换为内核态。但是,此时内核的运行是为用户进程服务,也可以说内核在代替当前进程执行某种服务功能。在这种情况下,内核的运行仍是进程运行的一部分,所以说这时内核是运行在进程上下文中。内核运行在进程上下文中时可以访问和修改进程的系统数据。此外,若内核运行在进程上下文中需要等待资源和设备时,系统可以阻塞当前进程


中断上下文:


硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。所谓的“中断上下文”,其实也可以看作就是硬件传递过来的这些参数和内核需要保存的一些其他环境(主要是当前被打断执行的进程环境)。中断时,内核不代表任何进程运行,它一般只访问系统空间,而不会访问进程空间,内核在中断上下文中执行时一般不会阻塞。

进程上下文与中断上下文的理解

一.什么是内核态和用户态内核态:在内核空间执行,通常是驱动程序,中断相关程序,内核调度程序,内存管理及其操作程序。用户态:用户程序运行空间。二.什么是进程上下文与中断上下文1.进程上下文:(1)进程上...
  • liusirboke
  • liusirboke
  • 2015年11月06日 17:03
  • 3226

Linux内核之进程上下文和中断上下文

进程在执行的过程中始终会处于用户态和内核态中的一种,而内核态又分为运行于进程上下文(内核代表进程运行于内核空间)和中断上下文(内核代表硬件运行于内核空间)。 进程上下文 所谓的进程上下文就是进程在执行...
  • woshijidutu
  • woshijidutu
  • 2017年04月03日 15:23
  • 345

进程上下文和中断上下文、原子上下文的区别

内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而 用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下...
  • yuesichiu
  • yuesichiu
  • 2014年03月26日 20:03
  • 3057

kernel中断分析七——tasklet

Abstract 在Kernel 中断分析六——softirq中,分析了软中断的处理流程,那么bottom half还剩下tasklet与waitqueue。tasklet是在软中断基础上实现的一种...
  • yin262
  • yin262
  • 2017年01月10日 09:58
  • 254

Linux进程上下文和中断上下文总结

在Linux系统下,CPU总是处于下面三种状态之一: 1、内核态,运行进程上下文。 2、内核态,运行于中断上下文。 3、用户态,运行进程上下文。   进程上下文和中断上下文是Linux系统一个比较重要...
  • gary531
  • gary531
  • 2013年09月05日 15:17
  • 2260

Linux内核中进程上下文、中断上下文、原子上下文、用户上下文的理解

进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停...
  • laoliu_lcl
  • laoliu_lcl
  • 2014年10月10日 22:42
  • 863

linux中断--中断上下文&进程上下文

内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所...
  • yusiguyuan
  • yusiguyuan
  • 2013年09月30日 07:53
  • 4123

linux 上下文和自旋锁

因此,中断(或软中断)禁止用于防止同一CPU上中断(或软中断)对共享资源的非同步访问。而自旋锁则防止在不同CPU上的执行单元对共享资源的同时访问,以及不同进程上下文互相抢占导致的对共享资源的非同步访问...
  • jincm13
  • jincm13
  • 2014年02月20日 14:40
  • 1107

进程上下文 中断上下文

进程上下文 中断上下文  原本是想明白进程上下文和中断上下文的含义,总结了一部分内容,发现一篇总结的很好,http://www.cnblogs.com/Anker/p/3269106.html。  ...
  • zxc995293774
  • zxc995293774
  • 2015年07月08日 20:52
  • 373

中断上下文、进程上下文

介绍什么是上下文,为什么要引入上下文。内核的几种运行状态,中断上下文和进程上下文的区别,已经中断一些特有的属性。...
  • jin13277480598
  • jin13277480598
  • 2016年03月21日 16:28
  • 1020
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:进程上下文 & 中断上下文
举报原因:
原因补充:

(最多只允许输入30个字)