摘要: /************************************************************************* > File Name: pipe.c > Author: likeyi > Mail: likeyiyy@sina.com ... 阅读全文
posted @ 2014-04-17 18:01 李可以 阅读(1248) 评论(0) 推荐(0) 编辑
摘要: 关于条件变量这一节的知识几乎惹怒了我,不知道是原书就不好,还是翻译的不好,还是我笨的原因,总而言之就是看不懂。现在说一下我的理解:条件变量虽说是和某个谓词绑定,但是其实只是程序员的工作,并没有真正的绑定。使用条件变量的场景是,一个队列空了,我们要等待它不为空,虽然也不知道谁规定的,大家都用while... 阅读全文
posted @ 2014-04-17 11:16 李可以 阅读(370) 评论(1) 推荐(0) 编辑
摘要: 在学习操作系统概念的时候,我直到互斥量的概念是简单的,就是为了保护临界区代码。让一次只有一个线程访问临界区代码。在学习《POSIX多线程程序设计》的时候看到了不变量,临界区和谓词的概念才有所感悟。所谓临界区代码,就是那些影响了共享数据的代码。“由于大部分程序员习惯于思考程序功能而非程序数据,所以你会... 阅读全文
posted @ 2014-04-17 10:55 李可以 阅读(2166) 评论(0) 推荐(0) 编辑
摘要: 博客和笔记的区别:笔记大概可以写的随意一些,自己能看懂就好,而写博客就不一样了,写博客时会自觉的尝试把一个概念介绍清楚,这大概很锻炼人的语言组织能力,所以我想,技术人员确实应该多写点博客。起因:以前也进行过多线程编程,不过是在原来的代码的基础上,添加一点锁啊什么的,对多线程整个系统的知识了解的不多,... 阅读全文
posted @ 2014-04-17 10:38 李可以 阅读(299) 评论(0) 推荐(1) 编辑
摘要: 1 /************************************************************************* 2 > File Name: time_queue.h 3 > Author: likeyi ... 阅读全文
posted @ 2014-04-08 15:07 李可以 阅读(438) 评论(0) 推荐(1) 编辑
摘要: #ifndef DULIST_H#define DULIST_H/* 线性表的双向链表存储结构 */typedef void * elemtype;typedef struct dulnode{ elemtype data; struct dulnode *prior,*next;}dulnode,*dulinklist;/*带头结点的双向循环链表的基本操作(14个) */void list_init(dulinklist *l);void list_destory(dulinklist *l);void list_clear(dulinklist l); int ... 阅读全文
posted @ 2014-04-08 15:05 李可以 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 1.前言在目前的工作中,我遇到这样的一个工作情景,可以认为我要开发一个库,这个库的有多个模块,每个模块的.c放到src中,.h放到include中,这应该是个标准做法。drwxr-xr-x. 2 root root 4096 Mar 25 14:12 includedrwxr-xr-x. 2 root root 4096 Mar 25 16:08 objdrwxr-xr-x. 8 root root 4096 Mar 25 12:12 programsdrwxr-xr-x. 2 root root 4096 Mar 25 14:12 src然后希望产生的目标文件放到obj目录下。因为我要对各个 阅读全文
posted @ 2014-03-25 16:26 李可以 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 昨天同学聚会,真不容易啊,我和主席男人他们上球场打了一会球,却不小心把脚扭了,本来以为今天就能消肿,没想到竟然疼了起来,无奈只好去医院去看看。我好久不去医院了,甚至不知道流程该怎么办,所幸这家医院的服务很好,我刚走进大厅,就有一位护士走了过来,她大约二十出头的年纪,左手拿着一个记事薄,大概是病例之类的吧,右手扬起笔。(FUCK,我从来没关心过生活。)“先生,请问你有什么需要吗?”“是这样的”,我说,“我昨天打球,大概扭伤了脚,我该怎么办呢?”“呵呵”,护士掩起了嘴,轻轻的笑了起来,“怎么办是什么意思?你应该先挂号啊。”“哦,是的”,我说,“我就是想问我到哪里挂号呢?”“22楼1105室,骨科哦 阅读全文
posted @ 2014-02-16 21:45 李可以 阅读(563) 评论(2) 推荐(0) 编辑
摘要: 无论如何一个简易的CPU是写完成了,运行了一个简单的例子,1到100的和,最终得出结果5050,好激动。汇编程序sum.s如下:.org 0x7c00xor $r1,$r1,$r1ori $r1,$r1,1xor $r2,$r2,$r2xor $r3,$r3,$r3ori $r3,$r3,100load $r4,flagflag:add $r2,$r2,$r1 addi $r1,$r1,1 gt $r1,$r3,end jmp $r4end: int 1 halt首先,驱动程序例程(main.c)调用assembly把sum.s汇编成sum.o然后加载程序把su... 阅读全文
posted @ 2014-02-16 17:31 李可以 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 从零开始打造我的计算机系统交叉汇编器一、一些主要概念如同所有书中介绍的那样,汇编源文件经过汇编之后生成目标文件,目标文件经过链接器链接之后生成可执行文件,所以我们做如下的描述。目标文件:如同a.out的文件格式,有文件头,文本区,数据区,文本重定位区,数据重定位去,符号表,字符串表。可执行文件:除了动态链接之外,一个可执行文件不包含任何重定位信息,也不要符号表。只有文件头,文本区,数据区。二、本汇编器设计要点由于时间有限,所以本汇编器不再支持多源文件汇编。只有一个汇编源文件,没有静态库,也没有动态库,汇编器采用两趟汇编器。第一趟给所有的标号记载LC地址。第二趟汇编成二进制代码。生成的代码之中不 阅读全文
posted @ 2014-02-16 17:12 李可以 阅读(676) 评论(0) 推荐(0) 编辑