操作系统
tenacity-go
一个正在探索属于自己的道路的程序员
展开
-
深入理解计算机系统第八章shell实验
/* * unix shell with job control *内建命令是fg,bg,jobs,echo,quit,& * @copyright 官加文 */#include#include#include#include#include#include#include#include#include/* 宏定义一些常数 */#define MAXLINE原创 2015-08-29 16:48:04 · 1826 阅读 · 0 评论 -
虚拟存储器--虚拟地址与物理地址
计算机在运行程序时,需将代码加载入内存中,CPU读取内存中的代码并执行。早期的计算机在没有引入 虚拟存储器之前,需将整个待运行的程序加载到内存中,因为内存空间有限,当待加载的程序过大时就会出现问题(多进程,则需要占用更多的内存空间)。现代计算机引入虚拟存储器的概念,通过将对内存进行抽象,将其作为存储在硬盘上数据的高速缓存,只将当前进程部分代码缓存到主存中(当前进程的程序较少时,可以转载 2015-09-01 09:04:09 · 2080 阅读 · 0 评论 -
中断解析
一、中断是什么中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢?举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事,于转载 2015-08-03 21:56:44 · 1562 阅读 · 0 评论 -
《深入理解计算机系统》Tiny Web服务器实验
#include "csapp.h"/* *说明:在用telnet时,Host头域指定请求资源的Intenet主机和端口号 * 必须表示请求url的原始服务器或网关的位置。 * HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。 */void handler(int sig);void doit(int fd);void read_requesthdrs(rio原创 2016-01-26 21:31:07 · 3288 阅读 · 0 评论 -
进入实验室的一点感悟
最近加入石亮老师的实验室,我就从一个web开发者变成了一个伪研究人员,写了两年web项目,突然跑去研究linux内核,还是有点不习惯,但是who care?研究linux内核是一件很有趣的事,因为web项目这东西真的不需要太多数据结构和算法知识,所以大二的时候都没怎么学数据结构,所以...,看linux内核的时候简直是心累,各种高级数据结构,比如循环双向链表和哈希链表,还有红黑树,关键这些结构还不原创 2016-12-10 23:07:21 · 2410 阅读 · 0 评论 -
关于虚拟存储器、虚拟内存和交换空间的理解
虚拟存储器、虚拟内存和交换空间这三个概念从看CSAPP开始很长一段时间都在困扰着我,网上各说纷云,等快上完操作系统和计组课才算明白了!先说虚拟存储器,CSAPP上介绍的是虚拟存储器是对主存的抽象概念,为每一个进程提供了一致的地址空间形式,也就是虚拟地址空间(这个地址空间不是用什么数组存起来的,而是CPU要访问内存就产生一个虚拟地址,不断累积组成的虚拟地址空间),它是一种机制,一种将主存抽象成磁原创 2016-12-01 14:18:15 · 8127 阅读 · 1 评论