操作系统的思考
小栎
从事软件开发
展开
-
操作系统思考 第一章 编译
第一章 编译作者:Allen B. Downey原文:Chapter 1 Compilation译者:飞龙协议:CC BY-NC-SA 4.01.1 编译语言和解释语言人们通常把编程语言描述为编译语言或者解释语言。前者的意思是程序被翻译成机器语言,之后由硬件执行;而后者的意思是程序被软件解释器读取并执行。例如,C被认为是编译语言,而Python被认为是解释语翻译 2016-07-13 09:28:42 · 895 阅读 · 0 评论 -
操作系统思考 第十一章 C语言中的信号量
第十一章 C语言中的信号量作者:Allen B. Downey原文:Chapter 11 Semaphores in C译者:飞龙协议:CC BY-NC-SA 4.0信号量是学习同步的一个好方式,但是它们实际上并没有像互斥体和条件变量一样被广泛使用。尽管如此,还是有一些同步问题可以用信号量简单解决,产生显然更加合适的解决方案。这一章展示了C语言用翻译 2016-07-18 09:06:32 · 3516 阅读 · 1 评论 -
操作系统思考 第十章 条件变量
第十章 条件变量作者:Allen B. Downey原文:Chapter 10 Condition variables译者:飞龙协议:CC BY-NC-SA 4.0像上一章所展示的那样,许多简单的同步问题都可以用互斥体解决。这一章中我会介绍一个更大的挑战,著名的“生产者-消费者”问题,以及一个用于解决它的新工具,条件变量。10.1 工作队列在一些多线翻译 2016-07-16 15:18:29 · 1090 阅读 · 0 评论 -
操作系统思考 第九章 线程
第九章 线程作者:Allen B. Downey原文:Chapter 9 Threads译者:飞龙协议:CC BY-NC-SA 4.0当我在2.3节提到线程的时候,我说过线程就是一种进程。现在我会更仔细地解释它。当你创建进程时,操作系统会创建一块新的地址空间,它包含text段、static段、和堆区。它也会创建新的“执行线程”,这包括程序计数器和其它硬件状态翻译 2016-07-16 11:27:49 · 1029 阅读 · 0 评论 -
操作系统思考 第八章 多任务
第八章 多任务作者:Allen B. Downey原文:Chapter 8 Multitasking译者:飞龙协议:CC BY-NC-SA 4.0在当前的许多系统上,CPU包含多个核心,也就是说它可以同时运行多个进程。而且,每个核心都具有“多任务”的能力,也就是说它可以从一个进程快速切换到另一个进程,创造出同时运行许多进程的幻象。操作系统中,实现多任务的这部翻译 2016-07-16 09:09:02 · 2038 阅读 · 1 评论 -
操作系统思考 第七章 缓存
第七章 缓存作者:Allen B. Downey原文:Chapter 7 Caching译者:飞龙协议:CC BY-NC-SA 4.07.1 程序如何运行为了理解缓存,你需要理解计算机如何运行程序。你应该学习计算机体系结构来深入理解这个话题。这一章中我的目标是给出一个程序执行的简单模型。当程序启动时,代码(或者程序文本)通常位于硬盘上。操作系统创建新翻译 2016-07-15 13:57:07 · 2684 阅读 · 0 评论 -
操作系统思考 第六章 内存管理
第六章 内存管理作者:Allen B. Downey原文:Chapter 6 Memory management译者:飞龙协议:CC BY-NC-SA 4.0C提供了4种用于动态内存分配的函数:malloc,它接受表示字节单位的大小的整数,返回指向新分配的、(至少)为指定大小的内存块的指针。如果不能满足要求,它会返回特殊的值为NULL的指针。ca翻译 2016-07-15 09:40:15 · 928 阅读 · 0 评论 -
操作系统思考 第五章 更多的位与字节
第五章 更多的位与字节作者:Allen B. Downey原文:Chapter 5 More bits and bytes译者:飞龙协议:CC BY-NC-SA 4.05.1 整数的表示你可能知道计算机以二进制表示整数。对于正数,二进制的表示法非常直接。例如,十进制的5表示成二进制是0b101。对于负数,最清晰的表示法使用符号位来表明一个数是正数翻译 2016-07-14 17:55:20 · 1220 阅读 · 0 评论 -
操作系统思考 第四章 文件和文件系统
第四章 文件和文件系统作者:Allen B. Downey原文:Chapter 4 Files and file systems译者:飞龙协议:CC BY-NC-SA 4.0当一个进程运行完毕(或崩溃)时,任何储存在主存的数据都会丢失。但是储存在机械硬盘(HDD)或固态硬盘(SSD)的数据是“持久”的。也就是说,它在进程结束之后,甚至关机之后仍旧存在。机翻译 2016-07-14 17:26:35 · 1214 阅读 · 0 评论 -
操作系统思考 第三章 虚拟内存
第三章 虚拟内存作者:Allen B. Downey原文:Chapter 3 Virtual memory译者:飞龙协议:CC BY-NC-SA 4.03.1 简明信息理论比特是二进制的数字,也是信息的单位。一个比特有两种可能的情况,写为0或者1。如果是两个比特,那就有四种可能的组合,00、01、10和11。通常,如果你有b个比特,你就可以表示2 **翻译 2016-07-13 17:49:42 · 1259 阅读 · 0 评论 -
操作系统思考 第二章 进程
第二章 进程作者:Allen B. Downey原文:Chapter 2 Processes译者:飞龙协议:CC BY-NC-SA 4.02.1 抽象和虚拟化在我们谈论进程之前,我打算先定义几个东西:抽象(Abstraction):抽象是复杂事物的简单表示。例如,如果你开车的话,应该知道车轮向左转的时候车也会向左行驶,反之亦然。当然,方向盘由一系翻译 2016-07-13 17:11:23 · 1045 阅读 · 0 评论 -
操作系统思考 第零章 前言
第零章 前言作者:Allen B. Downey原文:Chapter 0 Preface译者:飞龙协议:CC BY-NC-SA 4.0在许多计算机科学的课程中,操作系统都是高级话题。学生在上这门课之前,它们已经知道了如何使用C语言编程,他们也可能上过计算机体系结构(组成原理)的课程。通常这门课的目标是让学生们接触操作系统的设计与实现,并带有一些他们未来在该领域所研究翻译 2016-07-18 09:56:30 · 510 阅读 · 0 评论