深入理解计算机系统
文章平均质量分 63
wyjvip333
这个作者很懒,什么都没留下…
展开
-
返回一段程序经过的CPU周期数
1,实例代码:[code="c"]#include #include #include static unsigned cyc_high=0;static unsigned cyc_low=0;//rstsc指令访问计数器,高32为保存在%edx,低32位保存在%axvoid access_counter( unsigned* hi, unsigned* l...原创 2010-05-10 10:44:15 · 202 阅读 · 0 评论 -
关于Tiny Web服务器
1,一个静态内容的http事务:kmplayer@kmplayer:~$ //客户端请求telnet www.baidu.com 80//网络应答Trying 119.75.213.51...Connected to www.a.shifen.com.Escape character is '^]'.//HTTP请求 形式:GET / HTTP/1.1hos...原创 2010-05-14 19:47:31 · 256 阅读 · 0 评论 -
内核对文件的管理
1,文件元数据。stat结构体:struct stat { mode_t st_mode; //文件对应的模式,文件,目录等 ino_t st_ino; //i-node节点号 dev_t st_dev; //设备号码 dev_t st_rdev; //特殊设备号码 nlink_t st_nlink; //文件的连接数 uid_t st_uid; //文件所...原创 2010-05-15 13:48:04 · 156 阅读 · 0 评论 -
关于链接
1,加载器创建了存储器映像,将可执行文件的相关内容拷贝到了代码和数据段。接下来加载器跳转到程序的入口点:_start的地址。_start处的启动代码是在目标文件ctrl.o中定义的,对所有的C程序都是一样的。0x080480c0 : call _libc_init_first call _init call atexit call main call _exit...原创 2010-05-17 11:35:36 · 102 阅读 · 0 评论 -
异常控制流
异常控制流(ECF)1,这里异常指允许程序进行非本地跳转(违反通常的调用/返回栈规则的跳转)。2,异常处理完成后,发生三种情况:(1)执行当前指令Icurr(2)执行下一条指令Inext(3)处理程序终止被中断的程序。3,每种异常=》惟一的非服整数的异常号。系统启动时,操作系统分配和初始化一张称为异常表的跳转表,使得表目k包含异常k的处理程序的地址。异常表的起始地址...原创 2010-05-18 12:17:05 · 95 阅读 · 0 评论 -
关于echo服务端和客户端
1,实现的基本功能:客户端:发送一行文本给服务器,服务器显示收到的字节数,并返回收到的内容给客户端。2,一个单进程的实现实例:file echo.c:[code="c"]#include "csapp.h"void echo(int connfd) { size_t n; char buf[MAXLINE]; rio_t rio...原创 2010-05-23 11:22:00 · 546 阅读 · 0 评论 -
虚拟存储器
1,虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核文件的完美交互.提供了三个重要的能力:(1)将主存看作一个存储在磁盘上的地址空间的高速缓冲,在主存中只保存活动区域,根据需要在主存和磁盘之间来回传送数据.(2)它为每个进程提供了一致的地址空间,简化了存储器管理.(3)保护每个进程的地址空间不会被其他进程破坏.2,一个简单的虚拟寻址系统:MMU(memory...原创 2010-06-02 10:13:10 · 76 阅读 · 0 评论