代码改变世界

各大计算机公司 笔试及面试 题目 - 联发科(内核线程、轻量级进程、用户线程和LinuxThreads库)

2011-09-28 21:00 by CSWolf, 827 阅读, 1 推荐, 收藏, 编辑
摘要:在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集和资源集。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。线程有自己的私有数据:程序计数器,栈空间以及寄存器。Why Thread?(传统单线程进程的缺点)1.现实中有很多需要并发处理的任务,如数据库的服务器端、网络服务器、大容量计算等。2.传统的UNIX进程是单线程的,单线程意味着程序必须是顺序执行,不能并发;既在一个时刻只能运行在一个处理器上,因此不能充分利用多处理器框架的计算机。3.如果采用多进 阅读全文

各大计算机公司 笔试及面试 题目 - 深信服(八皇后问题)

2011-09-28 20:18 by CSWolf, 399 阅读, 0 推荐, 收藏, 编辑
摘要:八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当n= 1 或n≥ 4 时问题有解。在n×n格的棋盘上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,求解满足条件的棋盘布局。n-皇后问题是典型的可以使用回溯算法求解的问题。如果你明白了问题的具体执行过程,也就对该问题的特点有了把握,从而选择合 阅读全文

各大计算机公司 笔试及面试 题目 - 阿里巴巴、深信服(Linux的启动流程 V2)

2011-09-28 16:10 by CSWolf, 365 阅读, 0 推荐, 收藏, 编辑
摘要:引:本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程。并且介绍了启动中涉及到的各种文件。阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入的剖析Linux 的启动过程,所以其中也简单涉及到部分相关的Linux源代码,Linux启动这部分的源码主要使用的是C语言,也涉及到了少量的汇编。而启动过程中也执行了大量的shell(主要是bash shell)所写脚本。为了方便读者阅读,笔者将整个Linux启动过程分成以下几个部分逐一介绍,大家可以参考下图:当用户打开 阅读全文

各大计算机公司 笔试及面试 题目 - 阿里巴巴、深信服(Linux的启动流程 V3)

2011-09-28 16:10 by CSWolf, 344 阅读, 0 推荐, 收藏, 编辑
摘要:·启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所 阅读全文

Eclipse常用快捷键

2011-03-24 09:34 by CSWolf, 150 阅读, 0 推荐, 收藏, 编辑
摘要:Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2. 【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。3. 【Ctrl+/】快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。4. 【Ctrl+D 阅读全文

各大计算机公司 笔试及面试 题目 - 百度(一)

2010-09-10 16:27 by CSWolf, 510 阅读, 0 推荐, 收藏, 编辑
摘要:备注:转载于http://blog.csdn.net/ustc_dylan/article/details/5451227百度面试题,仅提供一些参考。1 完成函数size_t foo(unsigned int *a1, size_t al1, unsigned int* a2, size_t al2)其中a1和a2都为无符号数组,al1和al2为数组的长度,数组的长度为偶数。无符号数组由一对数字区间组成。 如下例:a1 为 0,1,3,6,10,20a2 为 0,1,20,50,4,5则 a1表示以下区间[0,1] [3,6] [10,20]a2表示以下区间[0,1] [20,50] [4,5 阅读全文