摘要: 前几天看System V AMD64 ABI标准的时候发现栈帧的顶部后面有一块“red zone”,在学cs:app3e/深入理解操作系统的时候并没有遇到这个,总结一下。 引用标准中的话: The 128-byte area beyond the location pointed to by %rs 阅读全文
posted @ 2017-11-03 13:13 QiuhaoLi 阅读(1561) 评论(0) 推荐(0) 编辑
摘要: 3.58 long decode2(long x, long y, long z) { int result = x * (y - z); if((y - z) & 1) result = ~result; return result; } 3.59 这个题考察的是2.3.4和2.3.5节的一个定理 阅读全文
posted @ 2017-10-29 13:12 QiuhaoLi 阅读(5365) 评论(0) 推荐(1) 编辑
摘要: 今天上计算机系统课的时候老师讲到了C中的聚合类型的数据结构。在解释数组名的时候说“数组名是一个指针,指向该数组的第一个元素”,附上ppt(第二行): 我觉得这是不正确的,是一个常见的由“简化”产生的错误,数组名 != 指针。数组名是一个标识符,它标识出我们之前申请的一连串内存空间,而且这个空间内的元 阅读全文
posted @ 2017-10-26 16:33 QiuhaoLi 阅读(6763) 评论(7) 推荐(4) 编辑
摘要: 详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取。 getbuf()实现为: unsigned getbuf() { char buf[BUFFER_ 阅读全文
posted @ 2017-10-22 17:44 QiuhaoLi 阅读(7764) 评论(1) 推荐(1) 编辑
摘要: From : http://www.linfo.org/process_state.html 译者:李秋豪 进程状态标识是指在进程描述符中状态位的值。 进程,也可被称为任务,是指一个程序运行的实例。 一个进程描述符是一个task_struct类型的数据结构,这个数据结构内保存了一个进程的所有相关信息 阅读全文
posted @ 2017-10-21 14:37 QiuhaoLi 阅读(2797) 评论(0) 推荐(0) 编辑
摘要: From : http://www.linfo.org/runnable_process.html 译者:李秋豪 一个可运行的进程是指该进程的进程状态为TASK_RUNNING。 进程,也可被称为任务,是指一个程序运行的实例。 进程状态是进程描述符的一个区域,这个区域可以有5个可能的标志(或者说值) 阅读全文
posted @ 2017-10-21 13:26 QiuhaoLi 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 进程 **主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php ** 译者:李秋豪 信号与进程几乎控制了操作系统的每个任务。 在shell中输入ps -ef命令,我们将得到如下结果: (译者注:-e Select al 阅读全文
posted @ 2017-10-18 22:58 QiuhaoLi 阅读(1984) 评论(1) 推荐(2) 编辑
摘要: 一直以来对于Linux/C中的流和流缓冲的概念一直不太理解,在实际使用过程中也碰到几个问题,翻译了几篇文章后大致弄明白了,写一篇博文总结一下。 之前碰到的两个问题 在学《C语言程序设计:现代方法》第二版22.2.7文件缓冲的时候,里面讲到了setvbuf这个函数,并说该函数的第三个参数指明了期望的缓 阅读全文
posted @ 2017-10-16 11:19 QiuhaoLi 阅读(2164) 评论(1) 推荐(2) 编辑
摘要: From : https://eklitzke.org/stdout-buffering 译者:李秋豪 大多数编程语言默认提供了i/o缓冲特性,因为这会使得输出更加有效率。这些缓冲功能大都是默默工作“Just work out of the box”(译者注:参考out of box.)——直到某天 阅读全文
posted @ 2017-10-15 10:52 QiuhaoLi 阅读(4268) 评论(0) 推荐(2) 编辑
摘要: From : http://www.pixelbeat.org/programming/stdio_buffering 译者:李秋豪 我发现找出标准流用的是什么缓冲是一件困难的事。 例如下面这个使用unix shell 管道的例子: $ command1 | command2 下图显示了shell 阅读全文
posted @ 2017-10-14 23:31 QiuhaoLi 阅读(1647) 评论(1) 推荐(3) 编辑