微软亚洲技术中心面试题

 

转自: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 机器上运行,而进程则可以跨机器迁移。

来源:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值