面试题

来源:互联网 发布:v2ex源码搭建 编辑:程序博客网 时间:2024/05/17 02:33

文章来源于:http://blog.chinaunix.net/uid-7921481-id-2948584.html

1、进程和线程有什么区别?
进程间是独立,这体现在内存空间,上下文环境上,线程运行在进程空间内;
一般而言(不使用特殊技术),进程无法突破进程边界存取其他进程内的存储空间,而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间;
同一进程中的两段代码不能够同时执行,除非引入线程;
线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程和线程都可以有优先级。

2、AND信号量集机制的基本思想是什么,它能解决什么问题?
AND同步机制的基本思想是,将进程在整个运行过程中所需要的所有临界资源一次性全部分配给进程,待该进程使用完后在一起释放。只要尚有一个资源未能分配 给该进程,其他所有可能为之分配的资源也不分配给它。亦即,对若干个临界资源的分配采取原子操作方式,要么全部分配到进程,要么一个也不分配。它能解决的 问题:避免死锁的发生。

3、进程间的通信方式?
信号量、信号、socket、管道、共享内存、消息队列

4、在网络编程中设计并发服务器,使用多进程与多线程有什么区别?
用多进程时每个进程有自己的地址空间,线程则共享地址空间。所有其他区别都是由此而来:
速度:线程产生的速度快,线程间的通信快、切换快等,因为它们在同一个地址空间内;
资源利用率:线程的资源利用率比较好也是因为它们在同一个地址空间内;
同步问题:线程使用公共变量/内存时需要使用同步机制,还是因为它们在同一个地址空间内。

5、进程进入等待状态有哪几种方式?
调用P操作,而信号量小于0;进程申请资源不能被分配;

6、CPU中的缓存和操作系统中的缓存分别是什么?
操作系统的缓存是指快表。在操作系统中,为提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器,即快表,用来存放当前访问最频繁的少数活动 页面的页号。当某用户需要存取数据时,根据数据所在的逻辑页号在快表中找到其对应的内存块号,再联系页内地址,形成物理地址。如果在快表中没有相应的逻辑 页号,则地址映射仍可以通过内存中的页表进行,得到空闲块号后必须将该块号填入快表的空闲块中。如果快表中没有空闲块,则根据淘汰算法淘汰某一行,再填入 新的页号和块号。快表查找内存块的物理地址消耗的时间大大降低了,使得系统效率得到了极大的提高。
CPU中的缓存是指高速缓存。CPU的执行速度越来越快,系统架构越来越先进,而主存的结构和存取速度改进则较慢,因此,高速缓存技术将越来越重要。
高速缓冲存储器是位于CPU和内存之间的临时存储器,它的容量比内存小但交换速度快。在高速缓冲存储器中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的。当CPU调用大量数据时,就可避开内存直接从高速缓冲存储器中调用,从而加快读取速度。

0 0
原创粉丝点击