深入理解计算机基础
shijunwang
这个作者很懒,什么都没留下…
展开
-
《深入理解计算机系统》笔记(一)栈(本篇)
欢迎查看《深入理解计算机系统》系列博客《深入理解计算机系统》笔记(一)栈(本篇)《深入理解计算机系统》笔记(二)内存和高速缓存的原理《深入理解计算机系统》笔记(三)链接知识《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】——————————————————————————————————————–读后感转载 2018-05-06 19:21:33 · 1690 阅读 · 0 评论 -
深入理解计算机系统笔记总结(一)
1. hello wordl我们还是从hello world程序说起吧:#include <stdio.h>int main(){ printf("hello, world! \n"); return 0;}12345678让我们看看从源码到可执行文件,再到运行输出结果之间到底经历了怎么样的过程吧:编译阶段2.1 预处理 gcc -E test.c -o test.i 或 gc转载 2018-05-06 19:47:16 · 378 阅读 · 0 评论 -
深入理解计算机系统:并发编程(7)
如果逻辑控制流在时间上是重叠的,那么它们就是并发的。应用级并发可以发生在:访问慢速I/O设备。当一个应用正在等待来自慢速I/O设备(例如磁盘)的数据到达时,内核会运行其他进程,使CPU保持繁忙。这是通过交替执行I/O请求和其他有用的工作来使用并发。与人交互。用户希望计算机有同时执行多个任务的能力。每次用户请求某种操作(如单击鼠标)时,一个独立的并发逻辑流被创建来执行这个操作。通过推迟工作来降低转载 2018-05-06 19:45:51 · 206 阅读 · 0 评论 -
深入理解计算机系统:链接(6)
链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(拷贝)到存储器中并执行。链接可以执行于编译时,也就是源代码翻译成机器码时,也可以执行于加载时,也就是程序被加载到存储器并执行时,甚至执行于运行时,由应用程序来执行。链接是由叫做链接器的程序自动执行的。 链接器的出现,使得分离编译成为可能,我们不用将一个大型的应用程序组织为一个巨大的源文件,而是把它分解成更小、更好管理转载 2018-05-06 19:44:15 · 230 阅读 · 0 评论 -
深入理解计算机系统:存储器层次结构(5)
存储技术随机访问存储器(RAM)RAM分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多。一个系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆字节。SRAMSRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的。这个电路有这样一个属性:它可以无限期地保持在两个不同的电压状态之一。其他任何状态都是不稳定的,电路会迅速转移到转载 2018-05-06 19:43:10 · 616 阅读 · 0 评论 -
深入理解计算机系统:网络编程(4)
所有的网络应用都是基于相同的基本编程模型,有着类似的整体逻辑结构,并且依赖相同的编程接口。 网络应用依赖很多系统研究中的概念:进程、信号、字节顺序、存储器映射以及动态存储分配。还有一些诸如客户端-服务器编程模型的新概念。客户端-服务器编程模型每个网络应用都是基于客户端-服务器模型的。在该模型中,一个应用是由一个服务器进程和一个或多个客户端进程组成的。 服务器管理某种资源。一个Web服务器管理了一转载 2018-05-06 19:41:41 · 235 阅读 · 0 评论 -
深入理解计算机系统:优化程序性能(3)
编写高效程序需要几类活动:选择合适的算法和数据结构;编写出编译器能够有效优化以转换成高效可执行代码的源代码;针对运算量特别大的计算,将一个任务分成多个部分,在多核和多处理器的某种组合上并行地计算。优化编译器的能力和局限性现代编译器运用复杂精细的算法来确定一个程序中计算的是什么值,以及它们是如何被使用的,从而简化表达式、减少运算。大多数编译器,包括GCC,向用户提供了一些对它们所使用的优化的控转载 2018-05-06 19:40:34 · 208 阅读 · 0 评论 -
深入理解计算机系统:程序的机器级表示(2)
本章基于两种相关的机器语言:Intel IA32和x86-64。前者是32位计算机上的语言,后者是前者在64位机器上的拓展。 32位计算机的虚拟内存有4GB,而64位计算机高达256TB。程序编码假设一个C程序有两个文件p1.c和p2.c,在32位计算机上用Unix命令行编译这些代码如下:unix> gcc -01 -o p p1.c p2.c1命令gcc就是Linux上的默认编译器:GCC C。转载 2018-05-06 19:36:34 · 182 阅读 · 0 评论 -
现代操作系统/深入理解计算机系统:虚拟存储管理(1)
一个理想内存(RAM)应该是:私有的、容量无限大的、速度无限快的、永久非易失的。但技术所限,并不存在这样的内存。 分层存储器体系包括: - 若干兆(MB)快速、昂贵且易失性的高速缓存(cache); - 数GB速度与价格适中且同样易失性的内存; - 数TB低速、廉价、非易失性的磁盘存储; - 诸如U盘等可移动存储装置。操作系统中管理分层存储器体系的部分称为存储管理器,它的任务是有转载 2018-05-06 19:32:33 · 333 阅读 · 0 评论 -
《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】
欢迎查看《深入理解计算机系统》系列博客《深入理解计算机系统》笔记(一)栈《深入理解计算机系统》笔记(二)内存和高速缓存的原理《深入理解计算机系统》笔记(三)链接知识《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】(本篇)——————————————————————————————————————–该书中第转载 2018-05-06 19:26:29 · 710 阅读 · 0 评论 -
《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收
欢迎查看《深入理解计算机系统》系列博客《深入理解计算机系统》笔记(一)栈《深入理解计算机系统》笔记(二)内存和高速缓存的原理《深入理解计算机系统》笔记(三)链接知识《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收(本篇)《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】——————————————————————————————————————–概述转载 2018-05-06 19:25:35 · 535 阅读 · 0 评论 -
《深入理解计算机系统》笔记(三)链接知识【附图】
欢迎查看《深入理解计算机系统》系列博客《深入理解计算机系统》笔记(一)栈《深入理解计算机系统》笔记(二)内存和高速缓存的原理《深入理解计算机系统》笔记(三)链接知识(本篇)《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】——————————————————————————————————————–概述转载 2018-05-06 19:24:18 · 671 阅读 · 0 评论 -
《深入理解计算机系统》笔记(二)内存和高速缓存的原理【插图】
欢迎查看《深入理解计算机系统》系列博客《深入理解计算机系统》笔记(一)栈《深入理解计算机系统》笔记(二)内存和高速缓存的原理(本篇)《深入理解计算机系统》笔记(三)链接知识《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】——————————————————————————————————————–转载 2018-05-06 19:23:00 · 477 阅读 · 0 评论 -
深入理解计算机系统学习笔记(二)
引言深入理解计算机系统,对我来说是部大块头。说实话,我没有从头到尾完完整整的全部看完,而是选择性的看了一些我自认为重要的或感兴趣的章节,也从中获益良多,看清楚了计算机系统的一些本质东西或原理性的内容,这对每个想要深入学习编程的程序员来说都是至关重要的。只有很好的理解了系统到底是如何运行我们代码的,我们才能针对系统的特点写出高质量、高效率的代码来。这本书我以后还需要多研究几遍,今天就先总结下书中我已学转载 2018-05-06 19:52:47 · 327 阅读 · 0 评论