《深入理解计算机系统》09——用C语言制作Web服务器
背景知识 客户端-服务器编程模型 使用socket处理请求与响应 HTTP协议与静/动态网页 关键代码解析 实验效果与源码 背景知识 Web服务器使用HTTP协议与客户端(即浏览器)通信,而HTTP协议又基于TCP/IP协议。因此我们要做的...
背景知识 客户端-服务器编程模型 使用socket处理请求与响应 HTTP协议与静/动态网页 关键代码解析 实验效果与源码 背景知识 Web服务器使用HTTP协议与客户端(即浏览器)通信,而HTTP协议又基于TCP/IP协议。因此我们要做的...
什么是存储器层次结构? 局部性 什么是存储器层次结构 这个词大家也许并不陌生,计算机中的存储器从寄存器、缓存到内存、硬盘,形成了一个层次结构。为什么不用单一的一种存储设备,比如只用硬盘呢?因为每一种存储设备都有它的优缺点,硬盘虽然存储空间大...
为什么要优化程序性能? 衡量性能的指标 未优化版本 提取重复操作 减少函数调用 避免内存读写 还能进一步优化吗? 循环展开 提高并行性 重结合变换 总结 为什么要优化程序性能? 对于c代码而言,从源代码到汇编代码再到机器指令,这中间是有一个...
本文,我们要做一件大胆的事情,从零开始实现一个全新的指令集架构,以此深入理解处理器的工作原理。 指令集发展历史概况 Y86指令集 指令集及其编码 硬件控制语言HCL 存储器和时钟 指令的分阶段执行 SEQ的状态改变周期 SEQ的各阶段实现 ...
联合体 数据对齐 栈帧为什么必须16字节对齐? 缓冲区溢出攻击 联合体 在C语言中有这么一个不常用的数据类型union,往往被人们遗忘。它就是联合体。 与结构体类似,都是用来封装多种数据类型,但含义不同。结构体会将各个字段按顺序分配各自独立...
栈帧结构 寄存器使用惯例 这段代码的含义? 栈帧结构 在计算机系统概述中我们介绍了虚拟地址空间,其中有一部分是栈,用于函数调用和存放局部变量。本文将详细介绍这部分栈空间是如何使用的。 首先引入一个概念:栈帧。栈帧是指为一个函数调用单独分配的...
复合型类型转换的内在原理 局部变量一定进内存? 奇葩的加载有效地址指令leal if…else和三元运算符 复合型类型转换的内在原理 上一篇文章的最后,我们讲解了复合型类型转换,比如从short到unsigned相当于分两步,先...
基本数据类型 大小端模式 整型数范围与C标准 复合型类型转换——从short到unsigned 基本数据类型 让我们复习一下C语言中基本数据类型的字节数 名称 32位 64位 char 1 1 short int 2 2 int 4 4 l...
信息是什么 文件 Hello World程序的生命周期 开始运行Hello World 虚拟地址空间 总结 信息是什么? 信息就是位+上下文。 怎么理解呢?其实计算机系统中的所有信息都是一个一个的二进制位,不论是硬盘上的文件、内存中的代码还...