面试|操作系统常见面试题

目录

1.进程与线程的区别
2.进程切换与线程切换
3.进程通讯方式(具体解释)
4.线程通讯方式(具体解释)
1.进程与线程的区别 调度:线程是系统调度和分派的基本单位,进程是系统资源分配的基本单位
并发性:多进程之间可并发执行,一个进程的多个线程之间也可以并发执行
资源分配:进程是系统资源分配的基本单位,而一个进程中的多个线程共享该进程中的资源
系统开销:系统在创建和撤销进程的时候,需要进行分配和回收系统资源,因此进程的系统开销会更大。
关系:一个线程只能隶属于一个进程,而一个进程可以拥有多个线程,至少拥有一个线程。
处理机是分配给线程的,在处理机上运行的是线程。
2.进程切换与线程切换 进程切换与线程切换最主要的区别是进程切换需要切换进程的虚拟内存空间,而线程的切换则不需要,因为每个进程都有自己独立的虚拟内存空间,而一个进程中的多个线程是共享该进程中的资源的,也就共享同一个虚拟内存空间,所以线程切换则不需要进行虚拟内存空间的切换。
3.进程通讯方式(具体解释) 管道:是一个半双工的通讯方式,允许具有亲属关系的进程进行通讯,亲属关系一般是指父子进程关系。
命名管道:也是半双工的通讯方式,但是允许不具有亲属关系的进程进行通讯。
信号:是一种复杂的进程通讯方式,是在软件层面对中断机制的模拟,用来告诉一个进程某个事件的发生
消息队列:是具有消息的链表,存储在内存中,并有消息队列标识符来标识
共享内存:允许多个进程共享同一个内存空间,一个进程对公共内存中的数据的操作可被其他进程所看到
套接字:允许不同设备之间的进程进行通讯,
信号量:是一个计数器,用来控制多个进程之间对共享资源的访问
4.线程通讯方式(具体解释) 使用volatile公共变量
使用等待/唤醒机制
【面试|操作系统常见面试题】使用join方法
使用ThreadLocal

    推荐阅读