月度归档:2016年12月

Memory Barriers in A Nutshell

并发编程相关的一些代码如Linux内核有时候会遇上对内存屏障的调用,本文简单说明了下为什么会存在这个东西,会带来哪些问题以及要如何处理.

1. 什么是内存指令乱序
内存乱序是指在保证程序在单线程环境下行为正确的前提下,程序指令的实际执行顺序可以调换(相对源码).
这里行为正确是指乱序后产生......

继续阅读

《Linux System Programming 2e》

cover_lsp

Rovert Love的这本书,以内核开发者的身份,站在系统编程的角度出发,简单扼要地说明了Linux各个主要API的功能和使用场景,非常适合入门者学习,对有经验的开发者也有复习梳理和提高的作用,文笔和风格也都很舒畅,十分值得一读.

这里记录下本人较少接触的一些相对较新或少用的AP......

继续阅读

操作系统概念——保护、安全性和虚拟机

第十四章 保护
这里的保护主要指的是系统内部各对象间使用的保护和资源权限控制.
一个通用的Mechanism模型是访问矩阵(如何保护),好处是概念上与Policy(保护什么)完全独立.
但很多系统实现都相对简单,如一种简化的访问矩阵实现是角色组控制,
而且主要集中在用户、内存、文件系统等方面......

继续阅读

操作系统概念——文件系统和IO

第十二章 文件系统实现
12.1 文件系统结构
磁盘上有很多种类的文件系统实现,主要是因为磁盘支持随机任意读写.
文件系统主要关注2个问题:
1) 对用户的展示和接口,如文件有什么属性,目录结构如何组织等.
2) 采用什么数据结构和算法来将逻辑文件映射到物理设备上.

文件系统本身是按......

继续阅读