优先队列与Heap的小结

2017-08-25
阅读 5 分钟
9.3k
优先队列是一种使用比较广泛的数据结构。不同于一般的队列,优先队列的元素都具有优先级,优先级高的元素会被优先选取。利用这个特点,我们可以根据元素值的大小来设置优先级,值最大/最小的拥有最高的优先级。这样,我们就可以快速地获取队列中最大/最小的元素。这篇文章我将着重比较三种常见的,构造优先队列的数据结...

ucore操作系统实验笔记 - 重新理解中断

2017-05-25
阅读 4 分钟
5.2k
在上一篇文章ucore操作系统实验笔记 - Lab1中,我已经比较详细地记录了中断的使用。那篇文章关于中断的重点是如何使用IDT、中断描述符和中断向量表等。这篇文章我将把重点放到另外一个地方,也就是中断的过程中如何保存和恢复现场。

ucore操作系统实验笔记 - Lab2

2017-05-17
阅读 14 分钟
10k
Lab2光就实验而言并不难, 但实验外的东西还是很值得研究的。指导书上也说了,Lab1和Lab2对于初次接触这门课的同学来说是一道坎,只要搞懂了这两Lab的代码,接下来的其他Lab就会相对容易很多。所以除了做实验,我还大致地阅读了每一部分的代码。通过阅读代码,对系统内存的探测,内存物理页的管理, 不同阶段的地址映射...

ucore操作系统实验笔记 - Lab1

2017-05-12
阅读 8 分钟
9.8k
最近一直都在跟清华大学的操作系统课程,这个课程最大的特点是有一系列可以实战的操作系统实验。这些实验总共有8个,我在这里记录实验中的一些心得和总结。

一文搞懂C语言回调函数

2017-02-09
阅读 5 分钟
56.2k
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

Linux编程学习笔记 | Linux IO学习[2] - 标准IO

2017-01-30
阅读 7 分钟
3.5k
在上一篇Linux编程学习笔记 | Linux IO学习[1] - 文件IO中,我总结了Linux下的文件IO。文件IO是偏底层的IO操作,在平时的日常工作中,使用文件IO的频率还是比较低的。我们每天使用的 printf() 就不是文件IO,而是另一类IO - 标准IO。在这篇文章中,我将介绍Linux下的标准IO并通过实例来说明如何使用它们。

Linux编程学习笔记 | Linux IO学习[1] - 文件IO

2017-01-20
阅读 6 分钟
5k
在Linux操作系统中,为了提高系统的稳定性,保证内核的安全,程序运行时的内存空间被分为了用户空间和内核空间。普通应用程序工作在用户空间,不能直接访问内核空间。它们需要使用Linux系统提供给用户的一些"特殊接口" - 系统调用来安全地访问内核空间。

Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步

2017-01-13
阅读 6 分钟
4k
当有多个线程要同时对一个共享的内存空间进行读写时,我们要保证这个内存空间对于多个线程来说是一致的。当多个线程同时读/写这个内存空间时,就需要对线程进行同步,以确保任何时刻只有一个线程能修改该内存空间,这样才能保证线程不会访问到无效的数据。我通过下面这幅图解释下线程同步的重要性:

《C专家编程》读书笔记(4-10章)

2017-01-11
阅读 4 分钟
3.2k
在上一篇《C专家编程》的读书笔记中,我分享了我对前3章的一些心得体会,没有看过的朋友可以去这里先阅读那篇文章。这篇文章虽然是从第4章开始,但我只对其中的4、9、10这三章感兴趣。因此我只写了这3章的读书笔记,如果不足,还请大家多多指出。

《C专家编程》读书笔记(1-3章)

2017-01-09
阅读 4 分钟
8.8k
这本书分为11章,比较有趣也是吸引我的主要还是数组,指针以及声明的那几章节。因为我自己的背景是偏硬件的,所以对于内存等偏硬件的章节并不是那么感兴趣。因此在笔记上我也会更侧重前者。本篇文章是前3章的读书笔记,我准备通过2篇文章来完成整本书的读书笔记。

Linux编程学习笔记 | Linux多线程学习[1] - 线程的创建和基本控制

2017-01-06
阅读 3 分钟
6k
2017年年初,我给自己定了一个小小的目标:学习Linux编程,并通过网络来分享自己的学习心得。为了完成这个小小的目标,我开始用通过写文章来记录我的学习心得,希望在年底时,我能完成24篇Linux相关的学习文档,以实现我这个小小的目标。这是这个系列的第一篇文章,是我对最近学习Linux多线程的总结。

《C缺陷与陷阱》读书笔记

2017-01-02
阅读 4 分钟
4.9k
最近因为工作需要开始重新拾起C语言,虽然说基本语法什么的没有太大问题(不行就网上搜索),但复习巩固下C语言也是不错的。正好身边有《C缺陷与陷阱》这本书,于是就有了这篇读书笔记。

C函数调用过程原理及函数栈帧分析

2016-12-31
阅读 3 分钟
34.3k
在x86的计算机系统中,内存空间中的栈主要用于保存函数的参数,返回值,返回地址,本地变量等。一切的函数调用都要将不同的数据、地址压入或者弹出栈。因此,为了更好地理解函数的调用,我们需要先来看看栈是怎么工作的。