转自:http://www.ncss.org.cn/news_files/118009/2009116857.html
1. 进程和线程的差别。
线程是指进程内的一个执行单元 , 也是进程内的可调度实体 .
与进程的区别 :
(1) 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2) 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
(3) 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源 .
(4) 系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。
2. 测试方法
人工测试:个人复查、抽查和会审
机器测试:黑盒测试和白盒测试
2.Heap 与 stack 的差别。
Heap 是堆, stack 是栈。
Stack 的空间由操作系统自动分配 / 释放, Heap 上的空间手动分配 / 释放。
Stack 空间有限, Heap 是很大的自由存储区
C 中的 malloc 函数分配的内存空间即在堆上 ,C++ 中对应的是 new 操作符。
程序在编译期对变量和函数分配内存都在栈上进行 , 且程序运行过程中函数调用时参数的传递也在栈上进行。
3.Windows 下的内存是如何管理的 ?
4. 介绍 .Net 和 .Net 的安全性。
5. 客户端如何访问 .Net 组件实现 Web Service?
6.C/C++ 编译器中虚表是如何完成的 ?
7. 谈谈 COM 的线程模型。然后讨论进程内 / 外组件的差别。
8. 谈谈 IA32 下的分页机制
小页 (4K) 两级分页模式,大页 (4M) 一级
9. 给两个变量,如何找出一个带环单链表中是什么地方出现环的 ?
一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方
10. 在 IA32 中一共有多少种办法从用户态跳到内核态 ?
通过调用门,从 ring3 到 ring0 ,中断从 ring3 到 ring0 ,进入 vm86 等等
11. 如果只想让程序有一个实例运行,不能运行两个。像 winamp 一样,只能开一个窗口,怎样实现 ?
用内存映射或全局原子 ( 互斥变量 ) 、查找窗口句柄 ..
FindWindow ,互斥,写标志到文件或注册表 , 共享内存。 .
12. 如何截取键盘的响应,让所有的 ‘a’ 变成 ‘b’?
键盘钩子 SetWindowsHookEx
13.Apartment 在 COM 中有什么用 ? 为什么要引入 ?
14. 存储过程是什么 ? 有什么用 ? 有什么优点 ?
我的理解就是一堆 sql 的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行 SQL 快很多
15.Template 有什么特点 ? 什么时候用 ?
16. 谈谈 Windows DNA 结构的特点和优点。
17. 网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别 ?
1 ,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
2 ,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护 ; 而进程正相反。同时,线程适合于在 SMP 机器上运行,而进程则可以跨机器迁移。
来源: