代码改变世界

随笔档案-2011年01月

胡言乱语计算机一

2011-01-22 22:26 by curer, 6206 阅读, 收藏, 编辑
摘要: 操作系统是连接硬件和应用软件之间的纽带。至少目前是这样的。而操作系统这门课也是计算机专业的必修课之一。无奈当时混沌。并没有真正的上好这一门课,之所以叫胡言乱语。是因为这里面的水对我来说实在是太深了。任何一个小的问题背后都是一个深渊。所以第一篇,从最初的(大学课程最初)开始讲起。8086,应该是学计算机最开始的地方。可以说是我们现在x86系列的最简单,最基础的实现。里面的设计都或多或少的影响到了后面系列的实现。所以,学校从这里开始,的确是非常明智的,虽然当时我不这么认为。但是想要了解或是明白8086的设计,那么也就要带出另外的那些更为底层的,计算机指令集,机器语言,引脚,门,电压等等。当然我不是 阅读全文

SGI STL 学习笔记四 内存管理

2011-01-17 20:56 by curer, 992 阅读, 收藏, 编辑
摘要: SGI STL 在g++中默认的编译选项是构造2个分配器。 第一级分配器__malloc_alloc_template 这个一级分配器设计比较简单。由于SGI STL中分配内存没有使用C++推荐的 operator new/delete 而是使用malloc/delete。所以,并没有set_new_handler()。当面对内存不足的情况,这里模仿了c++的做法。 二级分配器 __default_alloc_template二级配置器多了很多机制,在分配小的内存上做了优化。 粗略的分配策略。 分配大小超过 _MAX_BYTES = 128bytes,使用一级分配器处理。当分配器大小小于128 阅读全文

SGI STL 学习笔记三 heap

2011-01-08 22:18 by curer, 1933 阅读, 收藏, 编辑
摘要: heap,大家都非常了解。大学学的时候必须会的内容,要不考试很难过关。只是当时并没有学习明白。只是被老师和考试强了。完全是机械的记忆。觉得真是太对不起自己这个专业了。最近再看STL,也就有了这一篇老生重弹。 在很多情况下,我们非常关心一个集合中的最大元素。并希望能够从集合中最快速度找到并删除。为了整体的效率,我们需要在这个集合中插入元素,查找最大元素,删除最大元素能够综合最快。使用binary heap便是一种不错的选择之一。而且能够在O(logN)插入,删除元素,查找最大元素在常数时间下。   Binary heap 是一种complete binary tree(完全二叉树)。所以我们可以 阅读全文

SGI STL 学习笔记二 vector

2011-01-01 11:06 by curer, 951 阅读, 收藏, 编辑
摘要: sequence containersArrayVectorHeapPriority_queueListsList(not in standard)DequeStackQueueSequence Containers 其中的元素 都是可序的(ordered),但并不一定有序(sorted)。STL 中有vector ,list ,deque,stack,queue,priority_queue等序列容器。Stack queue 由于只是将deque重新封装而成,在技术上被归类为一种配接器(adapter)。 VectorVector 的数据为动态空间,随着元素的加入。内部会通过机制自行扩充空间 阅读全文
点击右上角即可分享
微信分享提示