操作系统回忆录:进程、线程、资源调度
此篇為操作系統的學習、回憶篇:
一、進程
??? 1、意義:只是一些資源的集合。
??? 2、進程間通訊的方法:共享存儲系統、消息傳遞系統、管道:以文件系統為基礎。
??? 3、進程間同步的策略:原子操作、信號量機制、自旋鎖、管程、會合、分布式系統。
?
二、線程
??? 1、cpu和內存真正的使用者。
??? 2、線程同步的方法:信號量、臨界區、互斥量、事件(windows編程)。
??? 3、線程的狀態與變換:
??????? 就緒:除了CPU的時間片,其他資源都已經準備好了。萬事俱備,只欠“cpu”了。
??????? 阻塞:如I/O操作,會引起線程阻塞。即運行的好好的,突然有“人”來了,人往往比較慢,cpu只好先把你阻塞了,如果“人離開了”(I/O操作完成),會計入 就緒狀態。
??????? 掛起:我的理解是,人為的或者外部因素,使得線程退出競爭cpu,但并不釋放所占資源,進入睡眠狀態,需要喚醒。
??????? 運行:運行得到cpu的線程。
??????? 這4個是線程最基本的狀態,還可以進一步細分的。
?
??? 4、死鎖產生的原因及解決辦法:
????????? (1) 因為系統資源不足。
????????? (2) 進程運行推進的順序不合適。
????????? (3) 資源分配不當等。
?? ? ?? 產生死鎖的四個必要條件:
(1)?互斥條件:一個資源每次只能被一個進程使用。
(2)?請求與保持條件:一個進程因請求資源而阻塞時,對已獲得的資源保持不放。
(3)?不剝奪條件:進程已獲得的資源,在末使用完之前,不能強行剝奪。
(4)?循環等待條件:若干進程之間形成一種頭尾相接的循環等待資源關系。
這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之
?? 一不滿足,就不會發生死鎖。
???? ?
??????? 解決辦法:
??????? 1.忽略該問題。例如鴕鳥算法,該算法可以應用在極少發生死鎖的的情況下。
??????? 2.檢測死鎖并且恢復。
??????? 3.仔細地對資源進行動態分配,以避免死鎖。
???? ?? 4.通過破除死鎖四個必要條件之一,來防止死鎖產生
轉載于:https://www.cnblogs.com/jamesmile/archive/2010/03/11/1683826.html
總結
以上是生活随笔為你收集整理的操作系统回忆录:进程、线程、资源调度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XML文件读取
- 下一篇: 富友电子商务系统的四大优势助网商轻松赚钱