摘要: Linux对内核态内存分配请求与用户态内存分配请求处理上分别对待Linux本身信任自己,因此Linux内核请求分配多少内存,就会马上分配相同数量的内存出来。但内核本身不相信应用程序,而且通常应用程序分配了一段内存,其实只是预定,并不是马上就去访问。由于应用程序的数目比较多,那么这部分只分配了但是没有... 阅读全文
posted @ 2014-01-02 16:55 Daniel King 阅读(2709) 评论(0) 推荐(0) 编辑
摘要: 缓存为什么会有冷热? 究其原因,是因为对于内存的访问,可能是CPU发起的,也可以是DMA设备发起的。 如果是CPU发起的,在CPU的硬件缓存中,就会保存相应的页内容。如果这个页本来没有存在于硬件缓存中,那么它的到来,势必会将原本为其他的页缓存的内容挤出硬件缓存。 但是,如果对于内存的访问是由DMA设备发起的,那么该页不会被CPU访问,就不需要在CPU的硬件缓存中进行缓存,也不会对已经缓存在硬件缓存... 阅读全文
posted @ 2014-01-02 16:35 Daniel King 阅读(1212) 评论(0) 推荐(0) 编辑
摘要: TLS(Thread Local Storage) 线程局部存储。 在Linux操作系统中,TLS保存成GDT中描述的一个段。 1: /* 2: * This creates a new process as a copy of the old one, 3: * but does not actually start it yet. 4: * 5: * It ... 阅读全文
posted @ 2014-01-02 15:11 Daniel King 阅读(4697) 评论(0) 推荐(0) 编辑
摘要: 参见文章:http://blog.chinaunix.net/uid-22695386-id-272098.html linux2.4之前的内核有进程最大数的限制,受限制的原因是,每一个进程都有自已的TSS和LDT,而TSS(任务描述符)和LDT(私有描述符)必须放在GDT中,GDT最大只能存放8192个描述符,除掉系统用掉的12描述符之外,最大进程数=(8192-12)/2, 总共4090个进... 阅读全文
posted @ 2014-01-02 14:33 Daniel King 阅读(4144) 评论(0) 推荐(0) 编辑
摘要: DPL: Descriptor Privilege Level 1) GDT/LDT表中的描述符 GDT/LDT表中的描述符,描述的是一段内存。 其中的DPL代表着GDT/LDT中的描述符描述的内存段的特权级别。 比如,当前正在执行的代码,它的特权级别就是当前的CS段选择子指向的段描述符中的DPL所决定的。 即DPL是描述一段内存的特权级别。 2) IDT表中的描述符 IDT表中的描述符,描述... 阅读全文
posted @ 2014-01-02 11:27 Daniel King 阅读(1956) 评论(0) 推荐(0) 编辑