
笔面试
文章平均质量分 64
vincew
这个作者很懒,什么都没留下…
展开
-
僵尸进程
在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait /waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程…… 一个进程在调用exi转载 2011-10-24 00:08:36 · 583 阅读 · 0 评论 -
Cache 的write back和write through
为了保证cache和memory的数据一致性,通常有三种方法: 1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。 2〉post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对memory进行更新。这转载 2011-10-24 00:10:02 · 725 阅读 · 0 评论 -
可视化数据结构和算法(zz)
还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下面并翻译了一下,大家可以直接点击了。 不知道国内的教育有没有相关的教学课件,至少在我大学的时候是没有的。 基础 Stack栈: 数组实现Stack栈: 链表实现Queues队列: 数组实现转载 2011-10-24 00:18:11 · 566 阅读 · 0 评论 -
Windows下 Critical Section、Event、Mutex、Semaphore
临界区(Critical Section) 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共 享资源的目的。 临界区包含两个操作原转载 2011-10-24 00:07:44 · 803 阅读 · 0 评论 -
位域
位域是指信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域转载 2011-10-24 00:09:15 · 1003 阅读 · 0 评论 -
U-Boot (abstract)
U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。 简介 U-Boot不仅仅支持嵌入式Linux系统的转载 2011-10-24 00:10:55 · 602 阅读 · 0 评论 -
C/C++中的可变形参
C语言中的printf,scanf就是最常见的可变形参函数,定义一个可变形参的函数很简单,如void print(int n, ...) ,函数中对参数的处理主要是通过对栈进行操作,而c函数的实参都是自右向左压入栈的. 主要的栈操作(都是宏)有va_list,va_start ,va_arg,va_end, 定义如下: typedef char * va_list;转载 2011-10-24 14:58:51 · 1059 阅读 · 0 评论 -
C语言异常处理机制, setjmp() and longjmp()
1、什么是异常 异常一般指的是程序运行期(Run-Time)发生的非正常情况。 异常一般是不可预测的,如:内存不足、打开文件失败、范围溢出等。 UNIX 使用信号给出异常,并当发生异常时转跳到信号处理过程进行异常处理。DOS下的信号对比UNIX系统而言相对较少。 C标准库提供两个特殊的函数:setjmp() 及 longjmp(),这两个函数是结构化异转载 2011-10-29 12:48:56 · 747 阅读 · 0 评论 -
cpu中的RING,ring0 和ring3
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。 Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用。 如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。转载 2011-10-24 15:38:51 · 1219 阅读 · 0 评论