考研複試面試準備 作業系統篇

2022-07-10 03:03:14 字數 3828 閱讀 7974

目錄第2章——程序管理

第三章——記憶體管理(重點看書)

第4章——檔案管理

第5章——輸入/輸出管理

控制和管理整個計算機系統硬體和軟體資源,合理組織、排程計算機的工作與資源分配,進而為使用者和其他軟體提供方便介面和環境的程式集合

管理計算機資源(處理機、儲存器、檔案、裝置)

作為使用者和硬體之間的介面

用作擴充機器

將作業成批送進記憶體,並由作業排程程式自動選擇作業執行

特點:多道、巨集觀並行、微觀序列、無人機互動、響應時間長

將處理器執行時間分成很短的時間片,按時間片輪流把處理器分配給各聯機作業使用

特點:多使用者、人機互動、響應時間短

並行指同一時刻發生,併發指同一時間段發生

使用者在使用者態執行訪管指令,產生訪管中斷,進入核心態

在使用者態下執行的是非特權指令,在核心態下執行的是特權指令

異常(內中斷):源於cpu執行指令內部的事件(缺頁、訪管指令,算數溢位)

中斷(外中斷):來自cpu執行指令以外的事件,與當前執行的程式無關(時鐘中斷)

指使用者在程式中呼叫作業系統提供的子功能,通過執行訪管指令來發起系統呼叫

避免使用者直接執行系統特權指令

多道程式技術背景下,多個程式的併發執行會產生相互制約的問題,此時,程式這一靜態的概念無法描述這一併發過程中的狀態,因此引入程序,更好地描述和控制程式的併發執行,實現作業系統的併發性和共享性

程序是具有獨立功能的程式在乙個資料集合上執行的過程,是系統進行資源分配和排程的乙個獨立單位,是動態的

程序映像是由程式段、相關資料段和pcb構成,是靜態的,代表某一時刻程序的狀態

pcb是用於描述程序狀態的資料結構,是程序存在的唯一標誌

程序是程式及其資料在計算機上執行的一段過程,是動態的。程式是一組有序指令集合,是靜態的

程序是程式的一次執行過程,是暫時存在的。程式則可永久儲存

乙個程序可以執行乙個或幾個程式。乙個程式也可以構建多個程序

低階通訊:pv操作

高階通訊:傳輸大量資料

為了減少程式在併發執行時所付出的時空開銷,程序切換開銷大,執行緒更輕量化,切換開銷小

是程式執行的最小單元,是排程的基本單位,不擁有資源

程序是擁有資源的基本單位,執行緒是獨立排程的基本單位

程序切換開銷大,執行緒切換開銷小

程序位址空間相互獨立,同一程序的執行緒共享程序的資源

程序間通訊需要pv操作,執行緒間通訊不需要

核心級執行緒:執行緒管理由核心完成

使用者級執行緒:執行緒管理由應用程式完成

作業排程:從外存上挑選作業,為其分配資源,建立程序,送入就緒佇列

記憶體排程:將記憶體中暫時不能執行的程序調至外存等待,稱為掛起,當具備執行條件時,重新調回記憶體,送入就緒佇列。可以提高記憶體利用率和系統吞吐量

程序排程:從就緒佇列中選乙個程序,分配處理機給它執行

系統吞吐量:單位時間cpu完成左右的數量

周轉時間 = 作業完成時間 - 作業提交時間

帶權周轉時間 = 作業周轉時間 / 作業實際執行時間

先來先服務:長作業有利,利於cpu繁忙型

短作業優先:長作業不利,飢餓,平均周轉時間最少

優先順序排程

高響應比優先

響應比 =(等待時間+要求服務時間)/要求服務時間

要求服務時間短,響應比高:短作業有利

等待時間長,響應比高:克服飢餓

時間片輪轉

多級反饋佇列

臨界資源:被多個程序共享,但一次只能由乙個程序使用的資源

臨界區:程序中訪問臨界資源的那段**

空閒讓進

忙則等待

有限等待

讓權等待

在兩個或多個併發程序中,如果每個程序持有某種資源又等待其他程序釋放它保持的資源,在未改變這種狀態前都不能向前推進,稱這一組程序構成死鎖。

通俗說,是兩個或多個程序無限期阻塞、相互等待的狀態

互斥條件:程序競爭的必須是獨佔的資源,只能由乙個程序訪問

不剝奪條件:程序自己的資源不可以被強行奪走,只能自己釋放

請求並保持條件:程序可以在保留資源的同時,請求別的資源

迴圈等待條件:存在乙個迴圈等待鏈

死鎖預防:破壞死鎖產生必要條件中的一條即可

死鎖避免

檢查當前是否處於安全狀態,銀行家演算法

死鎖檢測和解除

先檢測出死鎖,再解除當前死鎖狀態(資源剝奪、撤銷程序、程序回退)

死鎖至少是兩個程序,但飢餓可以只有乙個程序

處於飢餓狀態的可以是乙個就緒程序,處於死鎖狀態的一定是阻塞程序

多道程式併發執行時,共享記憶體,如果不管理,則會導致記憶體資料的混亂,從而限制併發

編譯:編譯程式將原始碼編譯成若干目標模組

裝入:裝入程式將裝入模組裝入記憶體中

記憶體保護:保護作業系統不受使用者程序的影響,同時保護使用者程序不受其他使用者程序的影響

方法:在cpu中設定上下限暫存器,存放使用者作業在主存中的上下限位址

採用重定位暫存器(用來加)和界位址暫存器(用來比)

覆蓋:不用把程式全部讀入記憶體才能執行,而是按呼叫關係分段(因此對程式設計師是不透明的),覆蓋區中存放需要的程式段,其他段放在外存中,用於同乙個程式

交換:將等待狀態的程式從記憶體換到外存中,將準備好的程式調回記憶體,用於不同程式

單一連續分配

固定分割槽分配

動態分割槽分配

首次適應

最佳適應:產生最多外部碎片

最壞適應

臨近適應

分頁、分段、段頁

段是資訊的邏輯單位,根據使用者需求劃分,對使用者可見

頁是資訊的物理單位,為了方便管理主存劃分,對使用者透明

段的大小不固定,由其功能決定

頁的大小固定,由系統決定

段向使用者提供二維位址空間

頁提供一維位址空間

快表:放在快取記憶體中的部分頁表

作用:訪問記憶體頁面只需至少訪問一次快取記憶體,一次記憶體,而使用頁表則要至少訪問兩次記憶體

最佳(opt)

先進先出(fifo)

最近最久未使用(lru)

時鐘(clock)

計算頁號p=a/l,頁內偏移量w=a%l

比較頁號p和頁表長度m,若p>m則越界中斷

頁表項位址=f+頁表項長度*p,取出其中的主存塊號b

e=b*l+w

tlb——>頁表(tlb未命中)——>cache——>主存(cache未命中)——>外存

取出段號s和段偏移量w

比較段號s和段表長度m,若s>m則越界中斷

段表項位址=f+段號*段表項長度,取出段長c和基址b,如果w>c,則越界中斷

e=b+w

先來先服務(fcfs)

最短尋找時間優先(sstf):會產生飢餓

電梯排程(scan):

迴圈掃瞄(c-scan)

程式直接控制:cpu對i/o裝置迴圈檢查,cpu利用率低

中斷驅動方式:當某程序要啟動某個 i/o 裝置工作時,便由cpu 向相應的裝置控制器發出一條 i/o 命令,然後立即返回繼續執行原來的任務。僅當傳輸完乙個字時,才需 cpu 花費極短的時間去做些中斷處理。

dma方式:dma控制器直接與儲存器互動,只有在資料塊傳送開始和結束才需要cpu

通道控制方式:cpu給通道乙個i/o指令,通道來完成任務,一次可以傳輸多個資料塊,完成後中斷通知cpu

將獨佔裝置變為共享裝置的技術

輸出的過程:

輸出程序的資料——>輸出井——>輸出緩衝區——>輸出裝置

輸入的過程:

輸入裝置的資料——>輸入緩衝區——>輸入井——>cpu

考研複試面試準備 資料結構篇

一些資料物件以及附加在這些資料物件上的集合的操作 尾插法建立單鏈表,n個元素儲存在陣列a中 void createlistr lnode c,int a,int n r next null 頭插法 void createlistf lnode c,int a,int n 棧 只能在一端進行插入或刪除...

作業系統 面試準備

併發 併發指兩個或多個事件同時發生,這些事件巨集觀上是同時發生的,但微觀上還是交替發生的 併發和並行的區別 併發 指在某段時間內多個任務都會被處理,但某一時刻,只有乙個任務執行,單個處理器可以做到併發,如果有ab兩個程序,只能保證ab之間切換速度夠快,在巨集觀上體現為一段時間內能執行多個程式 並行 ...

計算機考研的調劑 複試面試準備

選擇比努力更加重要。這大概是今年考研非常遺憾的一句話,但既然選了就不要後悔。複試的綜合面試是比較廣,但是問的問題都比較淺,基本上與本科的學習十分掛鉤,問題比較淺,所以有方向性的複習非常重要,當時複試的時候查了很多資料,記錄了一些學習筆記,如果你覺得有用的話,麻煩點讚 收藏喔 有需要的可以 75168...