计算机底层知识拾遗
文章平均质量分 92
这个主题是对计算机的底层知识进行总结,整理,深入计算机组成原理,操作系统,网络等基础知识,并和上层应用层进行结合,打通底层知识和应用层知识的通道
iter_zc
关注互联网架构方向
展开
-
计算机底层知识拾遗(十)理解进程调度
这篇说说内核的进程调度机制,进程调度是内核的一个重要工作,由调度器完成。调度器主要解决两个问题1. 决定为每个进程分配多少运行时间,何时切换到下一个进程,下一个进程是什么2. 从进程A切换到进程B时,要保证进程B的执行环境和上次被撤销执行时完全一致,比如寄存器的内容,虚拟地址空间的各个数据结构。内核调度器调度的实体(KSE, kernal schedule entry)是进程和原创 2015-03-18 15:00:53 · 5101 阅读 · 1 评论 -
计算机底层知识拾遗(九)深入理解内存映射mmap
内存映射mmap是Linux内核的一个重要机制,它和虚拟内存管理以及文件IO都有直接的关系,这篇细说一下mmap的一些要点。mmap和虚拟内存管理先来看看Linux内核的用户进程虚拟内存管理。内核定义了mm_struct结构来表示一个用户进程的虚拟内存地址空间。1. start_code, end_code指定了进程的代码段的边界,start_data, end_dat原创 2015-03-16 17:08:18 · 8449 阅读 · 0 评论 -
计算机底层知识拾遗(八)理解物理内存管理
内存管理是Linux内核最复杂的组件。内存管理包括虚拟内存机制和物理内存管理。这篇说说物理内存管理的一些要点。说到虚拟内存的时候我们知道虚拟内存地址空间分为两部分:内核地址空间和用户进程地址空间。这两个地址空间都使用虚拟地址,也就是说程序使用的都是虚拟地址。从虚拟地址映射到实际物理地址时有所区别:1. 内核使用物理内存时可以直接通过虚拟地址和内核地址空间的起始值的偏移量来计算得到实际物理内原创 2015-03-12 15:18:56 · 4910 阅读 · 0 评论 -
计算机底层知识拾遗(七)页缓存数据同步和页回收机制
这篇说说Linux的页缓存数据同步和页回收机制。数据同步和页回收是两个独立的概念,数据同步处理的是内存/缓存的数据和后备设备的数据一致问题,页回收处理的是在内存空间不足时如何回收已分配的物理内存页,来获得足够空间分配干净页,支持优先级更高的工作。数据同步在任意时刻都有可能触发,页回收则是在物理内存使用达到一定阀值的时候触发。数据同步就是把物理内存和页缓存中的脏页写回到后备设备的文件中去原创 2015-03-12 13:27:41 · 3918 阅读 · 0 评论 -
计算机底层知识拾遗(六)理解页缓存page cache和地址空间address_space
在这篇计算机底层知识拾遗(五)理解块IO层 中讲了块缓存buffer cache块缓存,这篇说说页缓存page cache以及相关的地址空间address_space的要点。在Linux 2.4内核中块缓存buffer cache和页缓存page cache是并存的,表现的现象是同一份文件的数据,可能即出现在buffer cache中,又出现在页缓存中,这样就造成了物理内存的浪费。Linux原创 2015-03-11 10:48:54 · 18914 阅读 · 5 评论 -
计算机底层知识拾遗(五)理解块IO层
上一篇讲了文件系统计算机底层知识拾遗(四)理解文件系统,说了文件按照inode-block的结构存储在磁盘上。这篇说说操作系统是如何来读取磁盘上的块的Linux把设备分为三种1. 块设备,用来永久存储文件信息的,支持顺序访问和随机访问(按块号访问),比如磁盘,光盘等2. 字符设备,只能顺序访问,比如键盘3. 网络设备,只能顺序访问,比如网卡,蓝牙设备我们常说的一原创 2015-01-29 14:15:15 · 9484 阅读 · 0 评论 -
计算机底层知识拾遗(四)理解文件系统
操作系统的很多核心组件都是相互关联的,比如虚拟内存管理,物理内存管理,文件系统,缓存系统,IO,设备管理等等,都要放在一起来看才能从整体上理解各个模块到底是如何交互和工作的。这个系列的目的也就是从整体上来理解计算机底层硬件和操作系统的一些重要的组件是如何工作的,从而来指导应用层的开发。这篇讲讲文件系统的重要概念,为后面的IO系统做铺垫。文件系统主要有三类1. 位于磁盘的文件系统,在原创 2015-01-29 13:25:38 · 8205 阅读 · 0 评论 -
计算机底层知识拾遗(三)理解磁盘的机制
磁盘是一种重要的存储器,位于主存结构的下方,是永久存储的介质。在计算机底层知识拾遗(一)理解虚拟内存机制 这篇中说了虚拟内存是面向磁盘的,理解磁盘的工作原理对理解计算机的很多概念有很大的帮助。尤其是在数据库和分布式存储领域,要经常和磁盘打交道。磁盘这块主要有几个部分的概念:1. 磁盘的基本结构和工作原理2. 如何在虚拟内存机制下与内存高效地交换数据3. 磁盘如何保证数据存储原创 2015-01-22 18:45:39 · 7051 阅读 · 0 评论 -
计算机底层知识拾遗(二)深入理解进程和线程
关于进程和线程,大家总是说的一句话是“进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元”。这句话理论上没问题,我们来看看什么是所谓的“资源”呢。什么是计算机资源经典的冯诺依曼结构把计算机系统抽象成 CPU + 存储器 + IO,那么计算机资源无非就两种:1. 计算资源2. 存储资源CPU是计算单元,单纯从CPU的角度来说它是一个黑盒,它只对原创 2015-01-16 11:16:43 · 9794 阅读 · 3 评论 -
计算机底层知识拾遗(一)理解虚拟内存机制
这个系列会总结计算机,网络相关的一些重要的底层原理。很多底层原理大家上学的时候都学过,但是在学校的时候大部分的同学都是为了应付考试而学习,过几天全忘了。随着工作的时间越久,越体会到这些基础知识的重要性。做技术和练武功一样,当你到了一定的阶段,也会遇到一个瓶颈,突破了你的眼界就会大不同,突破不了,只能困在原地无法成长。我自己深有体会,这些基础知识,底层原理是助你打破瓶颈的灵丹妙药。当理解了一些底层原原创 2015-01-12 16:33:34 · 18846 阅读 · 5 评论