操作系统八股文
书山有路勤为径,学海无涯苦作舟。
1、进程和线程的区别
调度:进程是资源管理的基本单位,线程是程序执行的基本单位;
切换:线程上下文的切换比进程上下文切换要快得多;
拥有资源:进程是拥有资源的独立单位,线程不拥有资源,只有自己的堆栈和局部变量;
系统开销:创建和撤销进程时,系统要为之分配和回收系统资源。进程切换的开销远大于线程切换的开销。
2、协程和线程的区别
线程和和进程是同步机制,协程是异步机制;
线程是抢占式,协程是非抢占式;
一个线程可以有多个协程,一个进程可以有多个协程;
协程完全由程序控制,线程是被分割的CPU资源,协程是组织好的代码流程,线程是协程的资源。
协程能保留上一次调用时的状态。
3、并行和并发的区别
并发是在一段时间内,多个任务都会被处理,但是在某一时刻,只有一个任务在执行。单核处理器可以做到并发;
并行是在同一时刻,有多个任务在执行,需要多核处理器才能完成,不同的程序被放到不同的处理器上运行。
4、进程和线程的切换流程
1、切换页面使用新的地址空间,一旦切换上下文,处理器中所有已经缓存的内存地址都作废了;
2、切换内核栈和硬件上下文。
5、为什么虚拟地址空间切换比较耗时
进程有自己的虚拟地址空间&#