摘要:
本篇文章将介绍本人对以下问题的理解。1、进程、轻量级进程、线程、线程组之间的关系2、及它们的标识相关说明一、进程、轻量级进程、线程、线程组之间的关系借助上图说明:进程P0有四条执行流,即线程,主线程t0是它的第一个线程,且与进程P0相关联,之后衍生出t1、t2、t3三个线程,这三个线程与轻量级进程P1、P2、P3一一关联,所有的进程、轻量级进程、线程组成了线程组。轻量级进程也是进程,只不过它与某进程的某特定线程相关联。二、它们的标识相关说明pid是进程标识符,tgid是线程组标识符每个进程都有自己的pid,如图中:进程pid(P0)= a,轻量级进程pid(P1)= b /pid(P1)= c 阅读全文
摘要:
目前,互联网行业正在朝着移动互联网方向强劲地发展,而移动互联网的发展离不开背后的移动平台的支撑。众所周知,如今在移动平台市场上,苹果的iOS、谷歌的Android和微软的Windows Phone系统已经形成了三足鼎立的形势,而Android系统的市场占有率是最高的。Android系统之所以能够在市场上占据着第一的位置,一来是因为它依托着谷歌的品德效应和技术实力,二来是因为它是开放的,任何人都可以得到它的源代码,并且能够自由地使用它。既然Android系统是开放的,作为一个移动平台开发人员来说,当然希望能够深入地去分析和研究它的源代码了,然而,Android系统的源代码非常庞大,我们需要循序渐 阅读全文
摘要:
引入PAE机制后,分页模式是怎样的呢?首先,要搞明白几件事,2.6.11以上版本的linux内核中,存在4中页表(页全局目录,页上级目录,页中级目录,页表),这些页表结构是已经存在于硬盘中的,当进程被创建或这些页表被使用到时,将其调入物理内存(页框)中。而每一线性地址都与某目录项或表项对应,也就是说,根据每一线性地址都能特定地找到某一目录项,例如下面这个例子:当某进程被创建时,此进程的页全局目录被调入物理内存(页框)中,页全局目录的地址被存入到进程控制块中,假如此时采用二级页表,需要寻址进程线性地址0x12345678的物理地址,步骤如下:线性地址0x12345678的前10位为0x48,它就 阅读全文
摘要:
task state segment,任务状态段。关于每个cpu对应不同TSS段的问题,如下解释:TSS段主要用在当前的任务从用户态切入内核态时去找到该任务的内核堆栈。多核上的任务是真正的并发,每个核都可以同时运行不同的任务,所以“当前任务”的数量可能达到cpu数量这么多,所以要为每一个“当前任务”准备一个TSS。也就是有几个核就得有几个TSS。任务切换是通过中断实现的,中断时任务处于内核态,所以任务切换时,当前任务处于内核态,当切换到新任务时,当前任务的上上文先保存在它的内核栈。当切换回该任务时,先从任务描述符中得到它内核栈的栈顶指针,然后恢复上下文,之后再从内核栈中恢复到用户态。1、工作细 阅读全文
摘要:
《UNIX环境高级编程》,推荐指数:★★★★★《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。对于初学者,如果你能将《操作系统》这门课程结合着这本书来学习,试着用 Linux 程序实践《操作系统》这门书中讲的进程间通信、进程调度、进程同步等内容,相信这将是一个一举两得的事情。哦,忘了告诉大家,上次 CNN 采访 Google 总裁佩林的时候,就看到佩林的书架上就有这本 阅读全文