进程与线程的区别
- 进程
进程是系统中运行的应用程序
- 线程
线程负责当前程序的执行
区别
根本区别:进程是OS资源分配的基本单位,而线程是处理器调度和执行任务的基本单位
资源开销:同一个进程中的线程共享资源,线程之间切换的开销小,而进程切换开销大
依赖关系:线程依赖于进程执行,每个独立的进程有程序的入口和出口,线程必须在这里面执行。
死锁
多个进程之间运行过程中因为争夺资源而造成的一种僵局
-
产生死锁的原因=>
1.竞争不可剥夺资源(例如打印机这种单一资源)
2.出现请求环路 P1(R1) P2(R2) P1=>R2 P1=>R1 -
产生死锁的条件
1.互斥条件:某资源只能由一个进程所拥有
2.请求和保持条件:当进程请求某一类资源的时候,自己嗦拥有的资源不释放
3.不可剥夺条件:资源只能由进程自己释放,不可被剥夺
4.环路条件 -
预防死锁的办法
1.资源一次性分配:这样就不会有请求了(破坏请求条件)
2.只要有一个资源得不到分配,就不给这个进程分配其他资源(破坏保持条件)
3.可剥夺资源
页面置换算法
在程序运行的时候,若访问的页面不在内存而需要将其调入,但内存已无空闲空间的时候,从内存调出一页程序或者数据,进入磁盘的对换区
1.FIFO 置换的是队列的首个页面,添加到队尾
2.OPT 最佳置换算法 与LRU相反,看得是将来最长事件不再访问的予以淘汰
3.LRU 最近最少使用算法,选择最近最长时间未访问过的页面予以淘汰