Linux系统中一个进程可以在内核态或用户态下执行,并且分别使用各自独立的内核态和用户态堆栈。
用户堆栈用于进程在用户态下临时保存调用函数的参数和局部变量等数据;内核堆栈则含有内核程序执行函数调用时的信息。
Linux进程数据结构的一些字段:
state:进程状态字段。
TASK_RUNNING,正在执行;TASK_INTERRUPTIBLE,TASK_UNINTERRUPTIBLE,因等待而处于空闲状态,区别是能否被信号唤醒;
TASK_STOPPED,停止状态,比如DEBUG时候走到断点;TASK_ZOMBIE,进程已被终止,但进程数据结构项仍然存在于任务结构表。
utime,stime,cutime,cstime:
Linux的time命令和Ruby的Benchmark会产生一个结果,其中含有utime和stime的属性,这两个属性其实对应的是进程的数据结构中的utime和stime。
cutime和cstime则是进程的子进程分别在用户态和内核态运行的时间(滴答数)。
counter(滴答数):进程数据结构中的counter字段,进程刚建立时初始值由priority赋值。该字段单位为系统时钟周期,
该字段含义为,正常情况下,切换到另一个进城之前,但前进程还可以执行counter个时钟周期。
很多语言或者脚本的最后一个方法都会写exit(n),exit也是进程数据结构的一个属性字段,表示程序中止时的退出码,
很多子进程用这个字段告诉父进程它的执行结果状态。
alarm:如果进程使用系统调用alarm(x秒)来设置该字段的值,那当x秒(转换为系统滴答数)过去后,系统将向该进程发送一个SIGALRM信号,
默认会终止该进程执行。windows下面有个定时操作命令我每天都会用,shutdown -s -t 1200,意思是20分钟后自动关机,之前我一般躺在床上,电脑则在放音乐。
pwd:进程启动时会将当前工作目录的路径写入pwd字段,然后根据相对路径就可以拼成绝对路径,该字段可以通过系统调用chdir实现。
executable:进程运行的执行文件在内存中i节点结构指针。如果executable->i_count大于1,我们就知道这个可执行文件同时被多个进程执行。
程序可以通过这个来保证对一个用户同时只启动一个。
tss:这个重要,当进程被切换前,该进程用tss_struct保存当前处理器的所有寄存器值。当进程重新执行时,CPU利用tss恢复寄存器状态。
分享到:
相关推荐
Linux内核完全注释最新版2.01(2007-6-6修改)<br>带书签<br>内含Linux 0.11注释的源代码<br>赵炯编写,里面有详细的注释,十分适合初学者
Linux内核完全注释-赵炯pdf Linux内核完全注释
赵炯编著的0.11版linux内核完全注释
0.12版源码注释。非常详细。
linux内核完全注释根据linux0.11编写的。搭配内核设计的艺术2版,学习linux内核的神组合。学习内核建议从linux0.11看起,初始版本内容比较简单,但包含的都是内核的精髓。先上手,学到了方法,后面再看最新版本就更...
《Linux 0.11内核完全注释》
Linux内核0.11完全注释 PDF+WORD版本,阅读方便。
linux-0.11内核完全注释 v1.9.5
Linux内核完全注释-修正版1.9.5.rar
本书对早期的linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和说明,旨在让读者能够在短时间内对linux的工作机理获得全面而深刻的理解,为进一步学习和研究linux系统打下坚实的基础。书中首先介绍了...
Linux内核0.11完全注释-V3.0.pdf 是学习linux原始精髓的利器
增加书签版本的Linux内核完全注释,可编辑,方便阅读。
linux内核详细注释,文件为pdf格式,学习linux的会有帮助。
本书对linux早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间内对linux的工作机理 获得全面而深刻的理解。 注:配合我的资源中提供的linux-0.11源码阅读更+。
赵炯老师的书,Linux0.11内核完全注释,V3.1版本
本资源为linux0.12源码文件,<<LINUX内核完全剖析:基于0.12内核>>的随书源码。
linux0.11内核源码 + linux内核完全注释(配套) linux0.11内核源码和linux内核完全注释配套阅读。
0.11内核代码的阅读,理解系统的 架构
Linux内核完全注释(带源码中文注释).zip
linux 内核完全注释(linux内核剖析) 深入理解linux 内核(chm 英文:重咸,慎入) linux0.11 代码(也许可以编译) linux 0.11 代码阅读(chm) 这个包里面汇集了linux0.11版的几个主要资料,深入理解linux内核...