Brains


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

同步互斥锁.md

发表于 2016-02-21 | | 阅读次数:
这一篇文章主要讲述UNIX里面的锁机制,分为2类:一种主要用于多线程Thread之间的共享资源访问,另一种主要用于多进程Process之间的访问。参考资料《UNIX环境高级编程》,这是我自己的一些理解,以后还要继续补充。 线程Thread之间的锁 在多线程的环境中,涉及到共享变量的存取,就需要一定程度的同步,否则可能出现意想不到的情况。在UNIX中,用于多线程之间同步的锁分为以下几种: 互斥量 ...
阅读全文 »

探索Linux的SUID位

发表于 2016-01-24 | | 阅读次数:
在系统安全中,uid扮演了非常重要的角色,这里比较深入的叙述了Linux中的uid机制。 写在前面 本学期学习的信息安全课程中,接触到了Linux的uid方面的,关于访问权限控制的知识。由于从论文上得到的知识,总感觉有点虚幻,就想自己动手探索一下:Linux中uid的特性。以下实验均出自Ubuntu 12.04 64位机器。 ruid、euid、suid 一个程序,准确的说是一个进程,拥有着这 ...
阅读全文 »

动态内存分配器的一个简易实现

发表于 2016-01-12 | | 阅读次数:
堆是进程空间里很重要的一部分,有效的使用堆可以很大程度上提高程序的性能,本文参考《深入理解计算机系统》简要的实现了一个内存分配器。 介绍 这是用C语言实现的一个简易的动态内存分配器,模拟动态内存的分配与回收,是本学期CSAPP课程的第五个实验。它是基于mmlib包所提供的一个存储器系统模型,在对此进行的扩充。实现了用于堆Heap内存管理的动态分配功能。 内存管理与动态分配 内存管理 是在系统 ...
阅读全文 »

STL基础数据结构

发表于 2016-01-05 | | 阅读次数:
最近在刷LeetCode,一直在用C实现上面的算法。但经常遇到题目,需要维护动态二维数组,需要队列、栈、map等数据结构时,用C实现时,需要很长的时间来完成这些数据结构的原型。无奈为了提高效率(偷懒~)决定转型C++解决上面的题目。 std::deque 类的原型 1template < class T, class Alloc = allocator<T> > cla ...
阅读全文 »

Authentication

发表于 2015-12-20 | | 阅读次数:
This is a experiment of Information Security, about 7 exercises and challenges in this blog. May be a lot mistakes here, if you find it, please contact me. Lab 4 : Authentication Lab Environment Se ...
阅读全文 »

Red Black Tree

发表于 2015-12-10 | | 阅读次数:
本文参考算法导论书籍以及一些博客,实现了红黑树的插入删除算法。 简介 红黑树这个算法,以后可能会再次遇到,我就在此记录一下。这个算法使用的C语言实现的。 红黑树的原理讲解 我是通过参考枫叶博主关于对红黑树讲解,以及算法导论这本书大致了解了红黑树的实现细节。具体参见红黑树删除操作。 红黑树的C实现 123456789101112131415161718192021222324252627282 ...
阅读全文 »

平衡二叉树

发表于 2015-12-09 | | 阅读次数:
本文简要的实现了平衡二叉树的插入、删除操作。为了更新节点的平衡度,新增了parent指针。 简介 这个平衡二叉树使用C语言实现的,因为写的匆忙,加上智商捉急,可能某些地方没有考虑周全,会有一点小bug,尚在排查中。本算法能基本的实现平衡二叉树的插入、删除操作,有关平衡二叉树的原理及实现,参考AVL树(一)之 图文解析 和 C语言的实现。这位博主讲解的非常详细!!虽然他给的代码中有一些错误,但从他 ...
阅读全文 »

Privilege Separation

发表于 2015-11-21 | | 阅读次数:
This is a experiment of Information Security, about 7 exercises in this blog. May be a lot mistakes here, if you find it, please contact me. This lab consists of three parts: Lab 3 : Privilege Separ ...
阅读全文 »

C++基础语法

发表于 2015-11-18 | | 阅读次数:
本学期的工程实践基础课选修了C++,因为要考试,顺便把以前学的C盲点记录一下。这些都是C的基础知识,涉及一些语法,以及程序设计中易犯的错误。不是概括的包含所有知识点,这只是针对我个人的盲点… 2 从C到C++ 2.1 命名空间 使用命名空间(namespace)时,结尾处不能添加分号。 2.2 操作符 使用不带参数的操作符,如**(hex, endl),必须包含头文件iostream**;而 ...
阅读全文 »

计算数中二进制1的个数

发表于 2015-11-13 | | 阅读次数:
本文主要收集了一些很nice的方法,用来计算一个数,其二进制形式中1的位数。 简介 李明老师的C语言中级课程中,讲解了这一算法,无奈记性不好。。为了以后能时常看到,现记录下来。 简单相与法 比如一个二进制数 0b 1111 1111 = 0xFF,只需要: 1、与 0b 0000 0001 = 0x01 相与,如果为真,则个数加1; 2、与 0b 0000 0010 = 0x02 相与,如果 ...
阅读全文 »
1…456
Liu Chang

Liu Chang

Algorithm、Machine Learning、Search、Cloud computing

51 日志
48 标签
GitHub E-Mail
© 2015 — 2024 lecury
本站总访问量次 | 本站访客数人