深入理解计算机系统
文章平均质量分 65
xy913741894
这个作者很懒,什么都没留下…
展开
-
CSAPP笔记(概括)
截取一段书评 这本书的书名叫”Computer Systems: A Programmer’s Perspective”,从程序员的角度去理解计算机系统,也暗示了书中讲的任何内容都会和程序员所做的事情联系起来。就这点看来,书的中文名取的不好。第二章回顾了整数浮点数的二进制表示,以前学过,但是恐怕很多也忘得差不多了。这章感觉最深的是无符号和有符号数,在代码中尤其要注意两种数据计算时上溢下溢的问题。原创 2017-04-24 10:16:14 · 890 阅读 · 0 评论 -
计算机系统的基本组成(CSAPP笔记1)
这是在计算机组成原理会讲到的部分内容,计算机的基本组件以及对应的功能如下:为了便于理解,我们做个类比,计算机可以看作是一个工厂,运算器,控制器相当于车间,存储器相当于仓库,输入相当于原料,输出相当于成品,这样子是不是好理解了一点了?hhh原创 2017-04-24 10:51:02 · 763 阅读 · 0 评论 -
helloworld背后发生了什么?(CSAPP笔记2)
任何一个学过C语言的同学,第一个程序应该都是写一个“hello world“。我们编辑好一个hello world,一般来说,只需要轻轻一点编译器的“编译”“运行”,屏幕上就会出现一句hello world,然而在这背后都发生了什么?CSAPP在第一章给出了解释:计算机需要将源文件转为可执行目标文件,一般在Linux下,需要执行gcc hello.c -o hello从而生成一个hello可执行文件原创 2017-04-24 17:00:14 · 757 阅读 · 0 评论 -
了解栈帧
一、 什么是栈帧? 什么是栈帧,相信很多从事C编程的童鞋还是没有搞明白,首先引用百度百科的经典解释:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。”。 实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关信息的记录单元。也许这样感觉更复杂了,好吧,让我们从栈开始来理解什么是栈帧... 二、 栈(用户转载 2017-05-08 20:28:47 · 362 阅读 · 0 评论 -
理解unix 系统I/O --csapp读书笔记
昨天,面百度,其中有一个问题是:open的返回值是什么?从你调用open函数到Linux下出现了一个文件,这中间发生了什么?第二个问题,当时就懵逼了,后来仔细想想,发现自己其实看过,其实讲文件描述符相关~为此,自己又重新看了APUE第二章,同时对应看了CSAPP第10章,因此做一个总结~IO是什么?i/o是input,output的缩写,也就是输入输出的意思。在计算机中,I/O就是在主存和外部设备(原创 2017-06-24 22:02:12 · 918 阅读 · 2 评论 -
网络编程(编写一个小型服务器)--csapp11章
网络应用随处可见,表现的形式也各不相同,有趣的是,在不同的表现形式之下都是基于相同的编程模型,依赖于相同的编程接口,因此学习网络还是比较保值的,因为这么多基础设备还在运行着,基本机制也在短时间内很难改变。网络编程的知识很多,包括进程,线程,信号等等,同时需要读者了解TCP/IP协议,本文假定读者已经了解熟悉这些相关知识,如果没有可能需要学习APUE,计算机网络这些基础知识了。本文的最终目标就是编写一原创 2017-06-26 15:41:15 · 1064 阅读 · 0 评论 -
基于tcp的小型服务器(多线程多进程)
在深入理解计算机系统第11章中,讲到一个echo服务器,基于tcp字节流的小型服务器,利用socket套接字接口,完成了一个简易的服务器。具体细节可参考网络编程(编写一个小型服务器)–csapp11章。不过这个小型服务器有一个难以接受的缺点在于:它是单进程的服务器,也就是它只能服务一个客户,我们先不去讨论这个功能强弱,我们知道在现实生活中,一个网站,一个服务器必须要能够服务多个用户,如果只能服务一个原创 2017-06-27 16:41:05 · 873 阅读 · 0 评论