
深入理解计算机系统
文章平均质量分 76
nikoong
宇宙再宏阔,真理共微尘一色
展开
-
CSAPP3e proxy实验(part1)
前言 我们要实现一个简单的网络代理,只需要转发HTTP请求事件。网络代理其实就是从客户端到服务器路途中间的一个中间站。网络代理既要像服务器一样接收客户端发送来的数据,也要像客户端一样向服务器发送消息。这么看来,我们弄懂了网络代理,就能同时搞懂客户端和服务器。我估计,这就是为什么网络编程这一章实验的内容,会选为实现网络代理了。我们的实验目标分三步走:一、实现一个单线程的网络代理;二、多线程;三...原创 2018-03-22 23:31:24 · 2128 阅读 · 0 评论 -
虚拟内存
虚拟内存 虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核文件的完美交互。它提供了三个重要的能力:将主存看成磁盘的高速缓存简化进程内存管理保护每个进程的地址空间虚拟内存与物理内存虚拟寻址:CPU生成一个虚拟地址,通过 MMU(Memory management unit)把虚拟地址(Virtual Address)转换为物理地址(Physical Address)。再从主存上对应的原创 2018-03-21 20:36:23 · 202 阅读 · 0 评论 -
异常控制流
异常控制流目的 学习异常控制流,可以让我们了解程序和操作系统是怎么交互的。在其中可以真正理解计算机系统的一个经典抽象——进程,还可以遇到并发编程最经典的“竞争”现象。我们从基本概念入手,好好捋一捋异常控制流。基本概念控制流: 程序计数器记录一个个指令的地址。从一个地址转移到另一个地址,这样组成的序列,叫做处理器的控制流。“平滑”的控制流是执行的指令在内存中是相邻的。异...原创 2018-05-16 17:46:04 · 530 阅读 · 0 评论 -
CSAPP3e shell实验 ——在ubuntu下,亲手做一个tiny shell
(未完待续) 上一篇博客学习了异常控制流。从底层来看,异常就是程序计数器序列的突变。正是有了异常控制流机制的存在,我们的计算机才能实现进程之间的切换。进程之间可以相互通过信号进行通信工程,信号处理程序和主程序并发运行,他们共享全局变量。其中还可能遇到所谓竞争的经典问题。 使用linux的人都知道,每当我们打开终端,就自动进入了shell程序。shell有很多内置的命令,更可以直接运行可...原创 2018-05-16 17:47:43 · 1930 阅读 · 0 评论