CSAPP 第十二章 多线程

CSAPP 第十二章 多线程

线程 线程包的接口 多线程echo server 多线程程序中的共享变量 信号量 - 线程同步的理论 信号量 - 接口 信号量 - 二元信号量 信号量 - 生产者/消费者模型 信号量 - 读者/写者模型 线程实际使用 - 预线程服务器 线程 线程有点像上边两个方

CSAPP 第十二章 多进程与I/O多路复用

CSAPP 第十二章 多进程与I/O多路复用

终于站在CSAPP最后一章的门前了, 一年以前买这本书的时候还看不进去, 现在竟然已经全部看完而且看懂了. 内心还是有点小小的激动, 这种力量正不断涌现的感觉... 并发 多进程程序 I/O多路复用 - select 函数 I/O多路复用 - 事件驱动的并发 I/O多路复用 - 优缺点 并发 在第八

CSAPP 第十一章 Web服务器的实现

CSAPP 第十一章 Web服务器的实现

这一节来编写一个简单的Web服务器, 一切都是从一个简单的原型开始的. 套接字读写的客户端与服务端 微型Web服务器 - 主程序 doit 函数 clienterror 函数 read_requesthdrs 函数 parse_uri 函数 server_static 函数 函数 serve_dyn

CSAPP 第十一章 套接字接口函数

CSAPP 第十一章 套接字接口函数

套接字接口函数一般都是由系统实现, 所以必须掌握, 应用程序全部要使用系统调用来进行套接字操作. 通用 - socket 客户端 - connect 服务端 - bind 服务端 - listen 服务端 - accept getaddrinfo getnameinfo open_clientfd

CSAPP 第十一章 网络编程基础概念

CSAPP 第十一章 网络编程基础概念

网络编程要依赖于一直依赖学习的几乎所有系统概念, 包括进程, 信号, 处理字节, 内存映射和动态内存分配. 除此之外, 就是一些关于网络的概念, 包括最基础的客户端-服务器模型, 因特网的基础概念. CS模型 Internet - 抽象模型 Internet - IP地址 Internet - 域名

CSAPP 第十章 重定向I/O

CSAPP 第十章 重定向I/O

读取文件元数据 读取文件目录 共享文件 I/O重定向 标准输入输出函数 读取文件元数据 在第九章的练习 9.5 里使用了一个通过元数据获取文件长度的方法, 当时使用的是 fstat 函数. 还有一个 stat 函数, 共同构成了获取文件元数据的方法. #include <unistd.h> #inc

CSAPP 第十章 系统级I/O

CSAPP 第十章 系统级I/O

终于来到了CSAPP的最后三章, 也是最后一个部分, 程序间的交互和通信. 终于从机器级的程序表示, 操作系统底层, 一直走到了应用级别. UNIX I/O 文件 打开和关闭文件 读和写文件 编写健壮的I/O包 Unix I/O Linux的一大特点是一切皆文件. 一个文件就是一个字节序列, 所有的

CSAPP 第九章 内存映射与分配

CSAPP 第九章 内存映射与分配

内存映射 共享对象与 fork execve 函数的本质 较低层次的分配内存函数 - mmap 函数和 munmap 函数 动态内存分配 mmap sbrk 和malloc的关系 垃圾收集 C程序中与内存相关的编程错误 内存映射 在这里说的虚拟内存区域, 就是通常意义上的一片虚拟内存的意思. 内存映

CSAPP 第九章 虚拟内存

CSAPP 第九章 虚拟内存

虚拟内存了, 到了CSAPP的最后三分之一了. 虚拟内存看了一下, 类似高速缓存是内存的映射, 虚拟内存也是一个映射的集合. 地址 页表 管理内存和保护内存 地址翻译机制 多级页表 地址翻译示例 Linux虚拟内存系统 地址 虚拟内存和异常控制机制一样, 也是软硬结合的, 由硬件异常, 硬件地址翻译

CSAPP 第八章 编写信号处理程序的要点

CSAPP 第八章 编写信号处理程序的要点

安全的信号处理的原则 正确的信号处理 可移植的信号处理 信号处理中的同步问题 显式的等待信号 非本地跳转 安全的信号处理的原则 由于信号处理程序和主程序 共享同样的变量, 所以如何与主程序通信, 处理信号又不影响主程序运行, 就很重要了. 一般有如下原则: 处理程序尽可能简单. 简单并不是说程序要短