随笔分类 -  学习笔记

摘要:《现代操作系统》系列博文第六篇。本文主要介绍:鸵鸟算法,假脱机(spooling)的打印机仍可能死锁,死锁、活锁、饥饿的区别。 阅读全文
posted @ 2013-12-11 11:23 五岳 阅读(1916) 评论(0) 推荐(0) 编辑
摘要:《现代操作系统》系列博文第五篇,本文主要介绍代码描述的三种I/O方式(程序、中断、DMA)、为何厂商宣传与系统显示的磁盘空间不符合、0~5级RAID的比较。 阅读全文
posted @ 2013-12-09 16:56 五岳 阅读(1959) 评论(1) 推荐(1) 编辑
摘要:《现代操作系统》系列博文第四篇,本章没有符合摘录要求的内容,因此仅仅是两道课后题目的解答。 阅读全文
posted @ 2013-11-21 23:42 五岳 阅读(1447) 评论(0) 推荐(1) 编辑
摘要:《现代操作系统》系列博文第三篇,本文重点介绍TLB的几个常见名、倒排页表的使用情形和原理、LRU算法的译名和内涵探讨及几种实现、NFU算法的实现、页面大小的分析与确定。 阅读全文
posted @ 2013-11-16 18:22 五岳 阅读(6319) 评论(0) 推荐(0) 编辑
摘要:《现代操作系统》的阅读笔记第二篇。本文重点介绍:进程数&I/O频率&CPU利用率的关系、Peterson解法、实时系统任务可调度性的推导、哲学家进餐问题的一个高并行性解等。 阅读全文
posted @ 2013-11-11 13:12 五岳 阅读(4302) 评论(1) 推荐(3) 编辑
摘要:本系列博文是《现代操作系统》(Modern Operating Systems)的阅读笔记,定位是正文精要部分的摘录和课后习题精解,因此不会事无巨细的全面摘抄,仅仅根据个人情况进行记录和推荐。本节重点介绍:系统调用的发生过程、shell的基本原理、link原理等。 阅读全文
posted @ 2013-11-02 18:45 五岳 阅读(8480) 评论(1) 推荐(6) 编辑
摘要:以《C程序设计语言》(K&R)为主线,把《C语言参考手册》和C99标准作为参考和补充,同时考虑到自身平台,对常见的C语言编程细节进行测试和总结,尽量不涉及过于边缘的内容,力图简洁并正确。 阅读全文
posted @ 2013-09-13 17:03 五岳 阅读(8004) 评论(8) 推荐(3) 编辑
摘要:使用SftpDrive和SourceInsight在Windows图形环境下,对存放在Linux虚拟机及其他支持SSH的主机的磁盘上的代码进行阅读和修改的配置方法 阅读全文
posted @ 2013-08-09 18:14 五岳 阅读(7898) 评论(2) 推荐(3) 编辑
摘要:对于以往写就的一些博文,可能在之后发现当时的观点不尽正确,或是处理方法不够全面,又或是有更多值得引申的内容可以补充。首先对之前可能造成的误导表示歉意;另一方面,虽然已经对相应博文进行了更新,并标明了更新时间,但可能已读过的读者并不能很容易地看出来。修改创建时间同样不够明显,而在标题中提示又可能会导致 阅读全文
posted @ 2013-07-29 22:15 五岳 阅读(850) 评论(0) 推荐(0) 编辑
摘要:本文来自于《编程之美》4.3节买票找零问题的启发,和网络上多如牛毛的介绍卡特兰数的文章不同,本文的主要目的不是向读者再一次介绍它的性质和应用,也不是相关内容的简单复制粘贴拼凑,而是一个完整的体系,帮助读者跨越《编程之美》留下的陷阱,找寻一般化的卡特兰数,从而解决更一般的问题,并给出证明和程序实现。 阅读全文
posted @ 2013-07-16 09:57 五岳 阅读(25743) 评论(10) 推荐(25) 编辑
摘要:简单介绍判别两个链表在无环/有环情况下是否相交的判别法,并收集了找出相交的第一个节点、求链表倒数第k个结点等相关问题,然后对单链表找环算法和找单链表环入口算法给出形式化的证明 阅读全文
posted @ 2013-07-14 09:21 五岳 阅读(8491) 评论(7) 推荐(4) 编辑
摘要:估算的数据主要依赖于所能获得的数据和常识,有时还包括实践而不仅仅是理论。它常常作为一个大问题中的子问题,恰当地估算可以省去精确计算的时间和开销。在计算机领域,所谓常识的内容很宽泛,比如硬盘的传输速度、CPU每秒能执行多少指令、各种数据结构的大小甚至每分钟录入的单词数。有些数据是能够从各种资料中查得的,但仅仅靠记忆总难免遗漏;如果有经过学习而建立起的系统的知识结构,那便能很方便地把这些常识组织起来,除此以外,还可以靠平时经验的积累和一些面试题上的启发了。这里将进行一个收集,随时更新。 Little定律深入了估算所依赖的法则的细节:总花费等于各个部分的花费再乘以总的部分数,它在计算机系统方面... 阅读全文
posted @ 2013-06-26 08:32 五岳 阅读(1858) 评论(5) 推荐(0) 编辑
摘要:或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇文章希望能帮你彻底解决这个苦恼,让你彻底记住它们。 如果你在工作中经常使用到大端和小端以至于对它们十分熟悉,或者你的记忆力在保持时间的长度和精准度上都十分优秀,以至于不需要借助其他的方法,那么这篇文章不适合你。 如果你... 阅读全文
posted @ 2013-06-08 16:03 五岳 阅读(108447) 评论(4) 推荐(30) 编辑
摘要:提示:本文是一篇个人读书笔记,并不是对原书内容的系统总结整理,除了两处标红部分,可能对作者以外的读者没有太大的参考意义。 每条准则都有例外第1章 假想的编译程序使用编译程序所有可选警告设施在使用nginx时深切地体会到了这一点的好处:有一行语句在编码时漏掉了,由于这个语句是唯一使用某个变量的地方,而且默认开启了-Werror=unused-value,才发现了这个错误。使用函数原型来检查参数(现在不使用也可以);必要的空语句用NULL代替,以防while()后多打的分号造成的bug相等判断反着写以防写成赋值:'t' == char使用lint来查出编译程序漏掉的错误如果有单元测 阅读全文
posted @ 2013-05-31 21:48 五岳 阅读(766) 评论(0) 推荐(0) 编辑
摘要:用于内存管理的malloc/free这对函数,对于使用C语言的程序员应该很熟悉。前段时间听说有的IT公司以“实现一个简单功能的malloc”作为面试题,正好最近在复习K&R,上面有所介绍,因此花了些时间仔细研究了一下。毕竟把题目做出来是次要的,了解实现思想、提升技术才是主要的。本文主要是对malloc/free实现思路的介绍,蓝色部分文字是在个人思考中觉得比较核心的东西;另外对于代码的说明,有一些K&R上的解释,使用绿色加亮。 在研究K&R第八章第七节的实现之前,不妨先看看其第五章第四节的alloc/afree实现,虽然这段代码主要目的是展示地址运算。alloc实现#d 阅读全文
posted @ 2013-05-03 21:09 五岳 阅读(10801) 评论(4) 推荐(9) 编辑
摘要:提示:本文是一篇个人读书笔记,并不是对原书内容的系统总结整理,可能对作者以外的读者没有太大的参考意义。 目前对C++的了解还处于入门阶段,这本书真正看懂的内容大概只有一半左右。大部分条款和机制先建立一个印象,希望能在未来实际使用中再来回顾和加深理解。条款02:不允许在class内对static const类型变量赋值?替代方案是使用enum{NumTurns = 5}; (P14)条款03:1.const与指针(P17~18)char greeting[]="Hello";const char* p = greeting;//non-const pointer, const 阅读全文
posted @ 2013-04-26 16:21 五岳 阅读(498) 评论(0) 推荐(0) 编辑
摘要:提示:本文是一篇个人读书笔记,并不是对原书内容的系统总结整理,可能对作者以外的读者没有太大的参考意义。第一章 C++编程基础1. 构造函数语法(P8),除了一般的等式初始化外的另一种初始化方法 int num_tries(0)2.case标签的向下穿越(P19),比较后会一直执行符合的case语句以及下面的所有语句。3.vector的两种初始化方式(P24-25) 单个元素逐一指定;利用一个已经初始化的array赋值4.while(infile>>name)何时结束?(P32) 读到文件尾端,infile>>name返回false5.cin中的setw()(习题,P20 阅读全文
posted @ 2013-04-21 14:33 五岳 阅读(613) 评论(0) 推荐(0) 编辑
摘要:前言: 这算是第二次系统地阅读UNPv1,正如副标题,不希望写成书摘、缩写版,尽量多写写个人体会和获得的经验,因此很多地方都会从全书的角度来说明,而不仅仅限于某个章节内部。 SCTP、信号驱动I/O、广播和多播等内容不包括在内。准备工作: 为了适应在命令行界面编写代码,我先进行了vim环境的配置和Xshell的配置。在读书过程中还学习了gdb调试程序的方法(见这里)。(1)vim插件搭建 从别人那里拷贝现成的的.vimrc和插件,分别放于/home/用户名 和/home/用户名/vim文件夹下就行了。(2)Xshell远程登录 下载安装Xshell。由于是用VMware装的Ubu... 阅读全文
posted @ 2013-03-31 17:36 五岳 阅读(1328) 评论(0) 推荐(0) 编辑
摘要:之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读《Python学习手册(第三版)》。如果只是想快速入门,我在这里推荐了几篇文章,有其他语言编程经验的人简单看一看就可以很快地开始编写Python程序了。 黑体表示章节, 下划线表示可以直接在原文对应位置查到的专有技术名词。 原书配套答案请到http://www.hzbook.com/Books/4572.html下载,简单注册即可。第三章 如何运行程序 import进行模块导入只能运行一次,多次运行需使用reload。 模块往往是变量名的封装,被认为是命... 阅读全文
posted @ 2013-02-26 22:09 五岳 阅读(29454) 评论(2) 推荐(3) 编辑
摘要:(学习的参考资料主要是《算法导论》。) 首先是红黑树的性质。一棵二叉查找树满足以下的红黑性质,则为一棵红黑树。 1)每个结点或是红的,或是黑的。 2)根结点是黑的。 3)每个叶结点(NIL)是黑的。 4)红结点的两个孩子都是黑的。 5)对任意结点,从它到其子孙结点所有路径上包含相同数目的黑结点。 初学时并不在意,但是仔细研究相关算法就会知道,算法都是围绕保持这些性质来进行的。性质5)保证了红黑树使用时的高效。定理证明了n个内结点的红黑树高度至多为2lg(n+1)。 不同于一般二叉查找树,红黑树一般采用一个哨兵结点代表NIL,这对算法的使用提供了很多方便,具体编写时可以体会的到。... 阅读全文
posted @ 2012-09-28 17:12 五岳 阅读(501) 评论(0) 推荐(0) 编辑

回到顶部