
深入理解计算机系统
文章平均质量分 93
鱼思故渊
这个作者很懒,什么都没留下…
展开
-
《深入理解计算机系统》--并发编程
这也是一本很出名的书,在很早的时候读过一些,这次从后面开始读,看有没有新的体会。 如果逻辑流在时间上重叠,那么他们就是并发的,硬件异常处理程序、进程和UNIX信号处理程序都是熟悉的例子。并发现象不仅在内核中存在,在应用级别的程序中也存在。访问慢速的I/O设备与人交互通过推迟工作以降低延迟服务多个网络客户端在多核机器上进行并行计算进程原创 2013-10-13 14:09:58 · 2607 阅读 · 0 评论 -
可重如函数 不可重入函数 线程安全函数 线程不安全函数
一、第一个说法可重入函数 在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不安全函数。原创 2013-10-13 21:05:40 · 2072 阅读 · 0 评论 -
linux下静态库和动态库的创建
linux静态链接库与动态链接库的区别及动态库的创建一、引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static原创 2013-10-15 08:54:49 · 3704 阅读 · 2 评论 -
《深入理解计算机系统》--系统级I/O
关于I/O可以先参考这些文章,但是这里可能还是有所不同。分析系统级别的I/O有什么不一样的地方。文件I/O高级I/O标准库I/O 开篇介绍了三个级别的I/O的区别之处。所有语言的运行时系统都提供执行I/O的较高级别的工具。例如,标准I/O库;在UNIX系统中,是通过使用由内核提供的系统级I/O函数来实现这些较高级别的I/O函数的。介绍UNIX I/O和标准I/O的一般概念,展原创 2013-10-14 16:46:38 · 3161 阅读 · 1 评论 -
《深入理解计算机系统》--虚拟存储器
它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。它为每个进程提供了一致的地址空间,从而简化了存储器管理它保护了每个进程的地址空间不被其他进程破坏。在硬件异常、汇编器、链接器、加载器、共享对象、文件和进程的设计中扮演着重要角色。存储器让应用程序有了原创 2013-10-15 10:36:31 · 2852 阅读 · 0 评论 -
静态库和动态库的区别
注意:Linux 静态编译时将动态库也编入文件中。文件预览文件目录树如下,如你所见,非常简单。 1. libtest/ 2. |-- lt.c 3. |-- lt.h 4. `-- test.c 代码#lt.c 1. /* lt.c 2. * 3. */ 4. 5. #include原创 2013-10-15 08:52:11 · 3862 阅读 · 0 评论 -
大端模式和小端模式
在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。一、什转载 2015-09-05 10:01:13 · 2079 阅读 · 0 评论 -
生产者消费者模型(Linux系统下的两种实现方法)
生产者消费者问题是同步问题中的一种常见情况,借用一下维基百科的话生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中转载 2015-09-07 14:32:19 · 9594 阅读 · 2 评论