【作業系統】作業系統學習總結
1,概念
1)作業系統特徵
併發性
共享性
虛擬性(把一個物理實體變成若干個邏輯上的對應物)
非同步性
2)OS體系結構
單體結構
層次結構
虛擬機器結構
C/S結構
微核心架構
3)進位制轉換
4)全域性變數和區域性變數
全域性變數分配在全域性資料段並且在程式開始執行的時候被載入, 區域性變數則分配在堆疊裡面。
2,
3,記憶體管理
1)頁式記憶體管理
執行程序的實體地址空間連續。頁面的大小由硬體的地址結構決定。
①基本原理
把使用者程式的地址空間劃分為若干個大小相等的頁,頁號從0開始把記憶體空間劃分為若干和頁面大小相等的物理塊,即記憶體塊。每個物理塊有編號,從0開始。
②地址對映
頁表
通常 儲存再記憶體中。
頁號,物理塊號。
實現了邏輯地址到實體地址的對映。
地址結構
邏輯地址由頁號和頁內偏移地址組成。
實體地址為:塊號*塊大小 + 偏移地址。
計算
邏輯地址2052,頁大小1KB,頁表如下,求實體地址。
如圖:2052/1024(1KB) = 2;2015%1024=4;分頁機構為頁號p=2、偏移w=4。
根據頁表可知第二頁對應物理塊號為7.
則實體地址為7*1024+w = 7172
③頁面置換策略
④優缺點
分頁記憶體管理不會產生外部碎片,但是會產生內部碎片。
如果程序要求的記憶體不是頁大小的整數倍,那麼最後一個物理塊就用不完,從而導致頁內碎片。
另一個有點是可以共享共同的程式碼。
⑤快表(聯想暫存器)
為了加快邏輯地址和實體地址轉換過程中地址變換速度,在地址變換機構中增設一個有並行查詢能力的特殊告訴緩衝 儲存器,即快表。
快表用來存放當前訪問的那些頁表項。
變換步驟:
i>在CPU給出的有效地址後,地址變換機構自動將頁號p送入高速緩衝暫存器中,並將此頁號與快取記憶體中的所有頁號進行比較。
ii>如果其中有與此頁號匹配的,便表示所要訪問的頁表項在快表中。
iii>直接從快表中讀出該頁號所對應的物理塊號,並送到實體地址暫存器中。
iv>如果在快表中未找到相同的頁表號,則必須再訪問記憶體中的頁表,從頁表中找到該頁號所對應的頁表項後,把頁表項中獨處的物理塊號送入地址暫存器。
v>同時,將此頁號所對應的頁表項存入快表中,即重新修改快表。
⑥頁面更新演算法
2)段式記憶體管理
3)虛擬記憶體
能加快虛實地址轉換的是:I .增大塊表 (TLB) 容量 II .讓頁表常駐記憶體
4)交叉儲存器
交叉儲存器實質上是一種模組式儲存器,它能並行執行多個獨立的讀寫操作。
交叉儲存器的每個模組都有自己的MAR和MDR。
交叉儲存器的每個模組的地址是不連續的,相鄰地址的單元位於相鄰的模組。
4,I/O管理
5,檔案管理
6,死鎖
1)死鎖原因
程序間競爭資源和程序推進順序非法。
2)死鎖必要條件
滿足以下4個條件,就會引起死鎖。
①互斥條件
指程序對所分配到的資源進行排他性使用,即一個資源每次只能被一個程序使用。
②佔有且等待
一個程序在請求新資源而阻塞時,對已獲得資源又保持不放。
即:程序不是一次性獲得所需所有資源,而是在佔有一部分時申請新資源。
③不可搶佔條件
以及分配的資源不能從相應的程序中被強制搶佔。
即:資源只能在程序完成任務後自動釋放。
④環路等待條件
存在一個程序-資源的環狀鏈,迴圈等待。
不發生死鎖的條件:至少保證一個程序獲得全部資源。
舉例:N個程序共享11臺印表機,每個程序要3臺,N的取值不超過多少時,系統不會發生死鎖?
最壞的情況是1個程序獲取3臺印表機資源,另外N-1個程序獲取到2臺印表機,等待獲取第3臺。所以3+(N-1)*2 = 11,N=5
3)無死鎖策略
①死鎖的預防
破壞產生死鎖的4個條件之一。
②死鎖的避免
在資源動態分配過程中使用某種演算法防止系統進入不安全狀態,從而避免死鎖發生。
③死鎖的檢查
採取適當措施,從系統中將已發生的死鎖清除掉。
④死鎖的解除
撤銷或掛起一些程序,以便回收一些資源,再將這些資源分配給已處於阻塞態的程序,使之轉為就緒態,以繼續執行。
4)死鎖演算法
A.避免死鎖
銀行家演算法
B.解除死鎖
消程序法
C.預防死鎖
資源靜態分配法
D.檢測死鎖
資源分配圖簡化法。
所謂化簡是指一個程序的所有資源請求均能被滿足的話 , 可以設想該程序得到其所需的全部資源 , 最終完成任務 , 執行完畢 , 並釋放所佔有的全部資源 . 這種情況下 , 則稱資源分配圖可以被該程序化簡 . 加入一個資源分配圖可被其所有程序化簡 , 那麼稱改圖是可化簡的 , 否則稱改圖是不可化簡的
化簡的方法如下 :
(1) 在資源分配圖中 , 找出一個既非等待又非孤立的程序結點 Pi, 由於 Pi 可獲得它所需要的全部資源 , 且執行完後釋放它所佔有的全部資源 , 故可在資源分配圖中消去 Pi 所有的申請邊和分配邊 , 使之成為既無申請邊又無分配邊的孤立結點 .
(2) 將 Pi 所釋放的資源分配給申請它們的程序 , 即在資源分配圖中將這些程序對資源的申請邊改為分配邊 .
(3) 重複 (1),(2) 兩步驟 , 直到找不到符合條件的程序結點
經過化簡後 , 若能消去資源分配圖中的所有邊 , 使所有程序都成為孤立結點 , 則改圖是可完全化簡的 , 否則不可化簡的 .
相關推薦
【Java】【web】session學習總結 2018-9-28
session學習總結 Session概念: Session是伺服器端技術,利用這個技術,伺服器在執行時可以為每一個使用者的瀏覽器建立一個其獨享的session物件,由於session為使用者瀏覽
【POCO】POCO學習總結(四)——MinGW編譯poco
在window下使用MinGW編譯poco 使用MSYS 下載MSYS 安裝 執行mingw-get-setup.exe,只選擇安裝msys-base(mingw我使用Qt中自帶的) 配置 開啟C:\MinGW\msys\1.0\ms
【POCO】POCO學習總結(三)——交叉編譯
最小功能編譯 編譯選項:–minimal :只構建XML, JSON, 工具 and 網路 1 修改配置檔案 $ vi poco-1.7.8p3-all/build/config/ARM-Linux 13 LINKMODE ?
【POCO】POCO學習總結(一)--下載與編譯
原始碼下載 POCO 官網 原始碼下載地址 原始碼共有4個版本:Windows基本版本和完整版本、類linux基本 版本和完整版本。 基本版本(Basic Edition)不需要外部依賴 完整版本(Complete Edition):
【作業系統】作業系統學習總結
1,概念 1)作業系統特徵 併發性 共享性 虛擬性(把一個物理實體變成若干個邏輯上的對應物) 非同步性 2)OS體系結構 單體結構 層次結構 虛擬機器結構 C/S結構 微核心架構 3)進位制轉換 4)全域性變數和區域
【作業系統】重點知識點總結
作業系統的基本特徵 併發:同一段時間內多個程式執行(注意區別併發和並行,前者是同一時刻的多個事件,後者是統一時間段內的多個事件) 共享:系統中的資源可以被記憶體中多個併發執行的進執行緒共同使用 虛擬:通過時分複用(如分時系統)以及空分複用(如虛擬記憶
【前端】react學習階段總結,學習react、react-router與redux的這些事兒
行程 clas 目前 webpack body src 控制 return 體驗 前言 借用阮一峰的一句話:真正學會 React 是一個漫長的過程。 這句話在我接觸react深入以後,更有感觸了。整個react體系都是全新的,最初做簡單的應用,僅僅使用react-to
【經驗】前段學習經驗總結
ima 視頻 com src 了吧 log 分享 不知道 png 1.第一遍不會,第二遍,第二遍不會,第三遍總會了吧。(視頻+音頻+書籍) 2.看三遍,不如敲一遍。 3.不要半桶水,要麽不知道,要麽真正理解它。 【經驗】前段學習經驗總結
【java微職位】51CTO學習總結
【java微職位】51CTO學習總結【java微職位】51CTO學習總結通過半年的學習終於學完了本課程按時結業,通過這個課程的學習自己感覺很有收獲,回想這半年來的學習時間還是有些感慨,做下小的總結。一、 學習習慣的養成。學習是一個連貫的過程,也是一件需要持之以恒的事情。java微職位這個課程涵蓋的東西非常廣
【Java菜鳥學習總結】Java基礎知識(類)
個數 修飾符 trac 空間 釋放 set 大小 成員方法 的區別 目錄 【Java菜鳥學習總結】Java基礎知識(類) 1、面向對象編程 2、類 3、static關鍵字 4、final關鍵字 【Java菜鳥學習總結】Java基礎知識(類) 1、面向對象編程 1.1
【轉】Nginx學習---Nginx&&Redis&&hcache三層緩存架構總結
inux 次循環 地址 本地緩存 lin 同步等待 獲取數據 分發 到來 【原文】https://www.toutiao.com/i6594307974817120782/ 摘要: 對於高並發架構,毫無疑問緩存是最重要的一環,對於大量的高並發,可以采用三層緩存架構來實現,n
UE4 Behavior Tree 行為樹【1】基礎學習-行為書節點彙總和意義總結
是從左往右執行,要配合AIController、Nav Mesh Bounds Volume使用,和Sequence、Selector、Black Board、Task、Decorator、Service配合使用! Sequence說明:從左往右執行,如果是Tures就迴圈下去一直執行,如
【機器學習模型】整合學習總結
整合學習 一. 同質整合 1. Boosting 2. Bagging 3. Stacking 二. 異質整合 1. 平均法 2. 投票法 3. 學習法(Stacking)
【作業系統】作業系統糾錯本
【作業系統】作業系統糾錯本 標籤(空格分隔):【考研糾錯本】 考研作業系統糾錯本 文章目錄 考研作業系統糾錯本 第一輪 1. 作業系統的基本概念 2. 作業系統的發展與分類 3. 作業系統的執
【 分類 】- 作業系統
專欄達人 授予成功建立個人部落格專欄
【 分類 】- 作業系統精髓與設計原理(原書第6版)
個人簡介 如果對測試比較感興趣的可以加QQ群:320542475! 如果你願意,我們可以聊聊測試的那點事,相互學習、互相成長,我相信只要不斷吸取自己所需營養,即使出生不那麼光彩,在未來依然會光芒萬丈,只是在前進的路上荊棘多了一點而已、、、
【Java】Java學習筆記總結(一)
2013-07-15 1. JDK、JRE和JVM分別是什麼,區別是什麼? 答: ①、JDK 是整個Java的核心,包括了Java執行環境、Java工具和Java基礎類庫。 ②、JRE(Java Runtime Environment,Java執行環境),執行JAVA程式所
程序和程式關係類比/ java中執行緒是哪種實現【清華大學】作業系統
本文分三個小節 1 執行緒模型 2 執行緒的實現 3 java中執行緒是使用者執行緒,核心執行緒,輕量級程序??? 3.1 臨界區 互斥 3.2 訊號量 管程 前兩小節是來自作業系統。 第三小節:看到作業系統中執行緒實現的三種方式,忽然想起我以
吳恩達《deeplearning深度學習》課程學習筆記【1】(精簡總結)
畢業以後就沒再寫過部落格,又想起來了。 Ps:本文只是個人筆記總結,沒有大段的詳細講解,僅僅是將自己不熟悉和認為重要的東西總結下來,算是一個大綱,用的時候方便回憶和查詢。 Ps2:部分筆記內容見圖片。 相關課程內容 一、神經網路和深度學習 第一週 深
【分析小白】sql學習總結
2019-9-7 ##【學習入門】 1 sql基本語法 sqlzoo:基本入門語法。不用裝sql環境,可以編寫sql語法,並在網頁上測試程式碼,有助於理解sql入門語句。 知識點:select,join,group by等 w3school:sql語法文件,有參考用例。 sql執行的