计算机底层知识拾遗(一)理解虚拟内存机制 这个系列会总结计算机,网络相关的一些重要的底层原理。很多底层原理大家上学的时候都学过,但是在学校的时候大部分的同学都是为了应付考试而学习,过几天全忘了。随着工作的时间越久,越体会到这些基础知识的重要性。做技术和练武功一样,当你到了一定的阶段,也会遇到一个瓶颈,...
在聊聊高并发(三十四)Java内存模型那些事(二)理解CPU高速缓存的工作原理这篇中说了CPU高速缓存的一些原理,虚拟内存也是缓存原理的应用,它是单机系统管理内存的手段,很多设计非常经典,在分布式存储系统中可以看到这些原理和设计的应用。 虚拟内存是单机系统最重要的几个底层原理之一,它由底层硬件和操作系统两者软硬件结合...
存储资源就是内存,磁盘这些存储设备的资源。在这篇计算机底层知识拾遗(一)理解虚拟内存机制我们说了操作系统使用了虚拟内存机制来管理存储器,从缓存原理的角度来说,把内存作为磁盘的缓存。进程是面向磁盘的,为什么这么说呢,进程表示一个运行的程序,程序的代码段,数据段这些都是存放在磁盘中的,在运行时加载到内存中。...
需要记住的是,对于文件操作的系统调用来说,比如read(), write(),它们是直接面向页缓存和缓冲区高速缓存的,页缓存和缓冲区高速缓存对进程来说就是一个存储系统,进程不需要关注底层的设备的读写,由页缓存和缓冲区高速缓存来喝底层设备交互。 计算机底层知识拾遗(三)理解磁盘的机制 中说了磁盘的基本工作原理,计算机底...
计算机底层知识拾遗(十)理解进程调度【转】 转自:http://www.cnblogs.com/zfyouxi/p/4504042.html 这篇说说内核的进程调度机制,进程调度是内核的一个重要工作,由调度器完毕。 进程状态 内核调度器调度的实体(KSE, kernal schedule entry)是进程和线程。内核必须知道全部进程和线程的状态,比方把时间片给一个堵塞...
计算机底层知识拾遗(十)理解进程调度 这篇说说内核的进程调度机制,进程调度是内核的一个重要工作,由调度器完毕。 进程状态 内核调度器调度的实体(KSE, kernal schedule entry)是进程和线程。内核必须知道全部进程和线程的状态,比方把时间片给一个堵塞的进程是没有意义的。从内核的角度来看,进程的状态有3种:...
计算机底层知识拾遗(十)理解进程调度 这篇说说内核的进程调度机制,进程调度是内核的一个重要工作,由调度器完毕。 进程状态 内核调度器调度的实体(KSE, kernal schedule entry)是进程和线程。内核必须知道全部进程和线程的状态,比方把时间片给一个堵塞的进程是没有意义的。从内核的角度来看,进程的状态有3种:...
在这篇计算机底层知识拾遗(五)理解块IO层 中讲了块缓存buffer cache块缓存,这篇说说页缓存page cache以及相关的地址空间address_space的要点。 在Linux 2.4内核中块缓存buffer cache和页缓存page cache是并存的,表现的现象是同一份文件的数据,可能即出现在buffer cache中,又出现在页缓存中,这样就造成了物理内存的浪费...
计算机底层知识拾遗 计算机底层知识拾遗
计算机底层知识拾遗(九)深入理解内存映射mmap 内存映射mmap是Linux内核的一个重要机制,它和虚拟内存管理以及文件IO都有直接的关系,这篇细说一下mmap的一些要点。 修改(2015-11-12):Linux的虚拟内存管理是基于mmap来实现的。vm_area_struct是在mmap的时候创建的,vm_area_strcut代表了一段连续的虚拟地址,这些虚拟地址...