计算机系统面试题
进程和线程的区别
-
进程: 是系统进行资源分配和调度的一个独立单位,是最小的资源管理单位。
-
线程: 是进程的一个实体,是
CPU
调度和分派的基本单位,是最小的CPU
执行单元。线程自己不拥有任何系统资源,但是它可以访问其隶属进程的全部资源。所以线程创建、撤销、切换的开销远小于进程,一个进程可以拥有多个线程。
进程间的通信
- 管道(内核缓存区)、命名管道(内核缓存区,磁盘节点)、消息队列(内核,消息的链表)、信号量(计数器)、信号、共享内存(效率高)、套接字
线程间的通信
内存区域分配
进程的几种状态以及什么条件下可以转换
-
三态模型: 一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以划分,根据三态模型,进程的生命周期可分为如下三种进程状态:
-
运行态(
running
):占有处理器正在运行; -
就绪态(
ready
):具备运行条件,等待系统分配处理器以便运行; -
阻塞态(
blocked
):不具备运行条件,正在等待某个事件的完成。 -
处于运行态的进程由于出现等待事件而进入阻塞态,直到事件结束则由阻塞态进入就绪态,而处理器的调度策略有会引起运行态和就绪态之间的切换【比如进程被选中进入运行态,时间片用完进入就绪态】