您的位置:首页 > 职场人生

最近遇到的比较重要的,面试可能会用到的知识

2016-04-07 15:53 411 查看
操作系统方面

一:进程和线程的区别?

 

进程是程序执行的实体,线程是进程内的一条执行路径,线程有自己的栈和局部变量,但没有单独的地址空间。

线程不能够独立执行,从操作系统的角度来看,线程并不是被看做独立的应用,来实现进程的调度和资源分配。

线程的执行过程与进程不同,每个独立的线程有一个程序运行的入口,顺序执行序列和出口。

线程的创建和切换比进程来说消耗的资源少,可以说是轻量级的进程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存。

(参考了的资料是博客http://blog.csdn.net/mxsgoden/article/details/8821936)。

二:死锁的必要条件以及怎么处理死锁

死锁的必要条件有三个1.互斥    2. 占有且等待   3.不允许抢占资源。4.循环等待(加上这个就是充分必要条件了)

处理死锁可以预防避免和检测;预防死锁可以通过打破死锁的三个必要条件,避免死锁可以通过银行家算法来避免。

一旦检测死锁时,最简单的就是取消所有与死锁有关的进程的,收回所有资源,。

或者是让进程回退到死锁未发生前,但是有可能会再次发生死锁。或者当死锁发生时由操作系统进行抢占该资源。

三:进程的几种状态。

简单的有三状态的进程模型,即就绪,执行,阻塞。二者转换关系如下图

还有五状态的进程模型

新建, 就绪 , 运行,退出,阻塞。

在这基础之上还有更为复杂的进程状态,添加了挂起状态的进程模型。

四:IPC几种通信方式

以linux为例,进程间通讯的方式有1.管道(包含有名管道和无名管道)2.信号3.消息队列4.共享内存(多个进程可以共同访问同一内存空间,最快的ipc形式)5.信号量6.套接口

五:windows、linux内存管理方式

六:什么是虚拟内存,虚拟地址,逻辑地址,线性地址,物理地址的区别?

虚拟内存是使应用程序认为它拥有连续可用的内存空间,但是事实上,通常是被分割成不同的物理内存,而且还有可能存储在磁盘上,只在需要(发生缺页中断时被调入内存)时进行数据交换。

逻辑地址 是指与段相关的偏移地址部分,也可以理解为在程序中取地址所得到的值。是相对与当前程序的数据段的地址,只有在实模式下逻辑地址才等同于物理地址。逻辑地址是相对与进程而言的。逻辑地址是段标识和段内偏移量偏移量
4000
组成的。

线性地址 是逻辑地址通过查询段表,将逻辑地址转化后的结果,如果没有分页机制那么转化后的线性地址就是物理地址,如果具有分页机制那么还有通过查询页表和页目录进行最后的线性地址到物理地址的转换。

虚拟地址 线性地址也叫作虚拟地址,当段基地址总是0时,逻辑地址在数值上等于线性地址也就等同与虚拟地址。

物理地址则是真实的内存条上的地址编号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统 面试