-
Xv6 笔记(三):锁
由于调度随时发生,而物理内存被多个 CPU 共享,所以两个 CPU 或线程有可能会同时访问同一个数据结构,如果不小心地限制并发访问,同时读写或同时写都可能会得到错误的结果、甚至损坏数据结构。有许多策略可以用来保持并发下代码的正确性,锁是其中常用的一种
-
关于提高效率
近段时间总结了一些提高效率的方法,写下来记录一下(可能不适用于任何人)
-
读《简单逻辑学》
最近读了一本关于逻辑的小书《简单的逻辑学》。这本书在豆瓣上褒贬不一,我觉得有一部分原因是书名的翻译,它不是一本严肃的逻辑学教科书,而是“一本现实应用指南,向那些初次接触逻辑学的人介绍逻辑学的基本原理”,原书名“Being Logical: A Guide to Good Thinking”更贴切地描述了它的内容。在我看来,学习逻辑更多的是关于如何思考和看待事物;更多关于说服自己,而不是说服别人,在这一点上,这本书是有所启发的
-
Xv6 笔记(二):调度
操作系统的一项主要工作是在多个程序间共享计算机的资源,让它们可以同时(或看起来像同时)运行。程序是在进程中执行的,同时运行多个程序实际上就是同时运行多个进程。进程往往比 CPU 多,所以就需要一个机制来让多个进程间分时共享 CPU(time-sharing)
-
Xv6 笔记(一):隔离
当一个应用程序执行出错时,我们不希望操作系统或其他不相关的程序因此也出错,相反,操作系统应该要能发现并清理掉出错的程序,并继续运行其他程序。要实现有效的隔离首先要求操作系统和应用程序之间有明确的界限,普通程序不能写(甚至读)系统的数据结构和指令,也不能访问其他进程的内存