####操作系统涉及的知识不止这几部分,下面是比较常提问的问题。
进程和线程的区别,如何通信
进程是计算机资源分配的基本单位,线程是调度的基本单位,
一个进程中有一个或多个线程,它们共享这个进程的资源
栈和程序计数器除外
拥有资源,调度,系统开销,通信
资源管理方式,
进程调度算法:先来先服务,短作业优先,时间片轮转,优先级调度,多级反馈
举个实际的例子进程和线程的区别
工厂车间机器人
QQ和浏览器
LRU代码
向前看,使用栈
线程同步方法
多个线程中只有一个能对共享的数据进行修改
临界区:一时刻一线程
互斥量:
信号量:最大资源数
事件:通知线程有事件发生,启动后继任务
进程:无名管道、有名管道、信号、共享内存、消息队列、信号量
线程:互斥量、读写锁、自旋锁、线程信号、条件变量
死锁
无限等待
- 必要条件:
循环等待
互斥条件
不可剥夺
请求和保持
- 死锁避免,系统安全状态,银行家算法
死锁预防,破坏条件
死锁检测,资源分配图
- 解除:资源剥夺,撤销进程
内存管理:页面置换算法
先进先出
LRU最近最少使用,向前看
CLOCK时钟轮转算法
最佳置换算法OPT,向后看
并发和并行区别
并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。
并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行