当前位置: 首页 > Linux kernrl, 进程/线程 > 正文

linux内核基础进程管理(是什么,简明)

进程管理

进程:

处于执行期的程序(目标码存放在内存中),进程是其所用的资源和打开的文件描述符,CPU的使用情况,挂起的信号,内核的内部数据等等一系列的信息与资源的总称。

执行线程:

简称线程,是在进程中活动的对象,每一个线程都拥有一个独立的程序计数器,进程栈,和一组进程寄存器。

在内核看来,线程只是一种特殊的进程,所以内核的调度对象是线程,而不是进程。

进程提供两种虚拟机制:

虚拟处理器和虚拟内存,其实就是一种假象,给进程提供的一种假象,好像进程正在独立的使用所有的内存资源与整个处理器,假象一直是计算机的一个重要问题,在《深入理解计算机系统》一书中有更详细的描述。

进程描述符及任务结构:

内核把进程的列表放在一个叫做任务队列的双向链表中,其中的每一项是一个结构体,task_struct这是一个称为进程描述符的结构这个结构包含一个进程所需的所有信息。在32位机器上就有1.7KB已经不小了。

分配进程描述符:

linux通过slab分配器分配进程描述符。现在一般建立一个struct thread_info 结构体来记录进程描述符的,这个结构体是为了减少对寄存器的依赖,尤其是像X86 这种寄存器较少的结构,一般进程描述符是提前分配并且在一个进程死亡后它的描述符还可以再次使用所以linux的进程创建非常迅速。


进程描述符的存放:

内核通过唯一的进程标识值或者PID来标识每一个进程。PID其实是一个整形,可以通过改变系统代码的宏值来改变进程ID的上限。

进程状态:

运行,可中断,不可中断,被跟踪,停止。


内存屏障:
内存屏障,也称内存栅栏,内存栅障,屏障指令等, 是一类同步屏障指令,使得CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作。
大多数现代计算机为了提高性能而采取乱序执行,这使得内存屏障成为必须。 
语义上,内存屏障之前的所有写操作都要写入内存;内存屏障之后的读操作都可以获得同步屏障之前的写操作的结果。因此,对于敏感的程序块,写操作之后、读操作之前可以插入内存屏障。



版权声明:本文为博主原创文章,未经博主允许不得转载。

]]>

本文固定链接: http://zmrlinux.com/2015/06/05/linux%e5%86%85%e6%a0%b8%e5%9f%ba%e7%a1%80%e8%bf%9b%e7%a8%8b%e7%ae%a1%e7%90%86%ef%bc%88%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%8c%e7%ae%80%e6%98%8e%ef%bc%89/ | Kernel & Me

该日志由 root 于2015年06月05日发表在 Linux kernrl, 进程/线程 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: linux内核基础进程管理(是什么,简明) | Kernel & Me
【上一篇】
【下一篇】