2024-2025-1 20241415《計算機基礎與程式設計》第九周學習總結
作業資訊
這個作業屬於哪個課程 | 2024-2025-1-計算機基礎與程式設計 |
---|---|
這個作業要求在哪裡 | 2024-2025-1計算機基礎與程式設計第九周作業 |
這個作業的目標 | 作業系統責任,記憶體與程序管理,分時系統,CPU排程,檔案、檔案系統,檔案保護,磁碟排程 |
作業正文 | https://www.cnblogs.com/zhaoshaoning/p/18565817 |
教材學習內容總結
作業系統(Operating System,OS)主要有以下幾方面責任:
1. 程序管理
- 程序建立與撤銷
- 作業系統負責根據使用者請求或系統需要建立新的程序。例如,當使用者雙擊一個應用程式圖示時,作業系統會為該應用程式建立一個程序。在程序結束任務後,作業系統要回收程序所佔用的資源,如記憶體空間、開啟的檔案描述符等,然後撤銷這個程序。
- 程序排程
- 作業系統需要在多個程序之間分配CPU時間。它採用不同的排程演算法,如先來先服務(FCFS)、短作業優先(SJF)、時間片輪轉(RR)等。例如,在時間片輪轉演算法中,作業系統會給每個程序分配一個固定的時間片,當時間片用完後,就會暫停該程序,轉而執行下一個程序,確保每個程序都能得到合理的CPU使用機會。
- 程序同步與通訊
- 作業系統要協調多個程序對共享資源(如記憶體、檔案、印表機等)的訪問,避免出現衝突。例如,透過訊號量機制來控制多個程序對印表機的訪問。同時,作業系統還提供程序間通訊(IPC)的機制,如管道、訊息佇列、共享記憶體等,使不同程序能夠相互交換資料和資訊。
2. 記憶體管理
- 記憶體分配
- 作業系統要為程序分配記憶體空間。它有多種分配方式,如連續分配方式(包括單一連續分配、固定分割槽分配、動態分割槽分配)和離散分配方式(如分頁儲存管理、分段儲存管理、段頁式儲存管理)。例如,在動態分割槽分配中,作業系統根據程序的大小動態地劃分記憶體分割槽給程序。
- 記憶體保護
- 作業系統要防止一個程序非法訪問另一個程序的記憶體空間,以及防止程序對作業系統核心空間的非法訪問。它透過設定記憶體保護機制,如基址暫存器和限長暫存器,來確保每個程序只能在自己的合法記憶體範圍內進行操作。
- 記憶體擴充
- 當實體記憶體不足時,作業系統可以採用虛擬儲存技術來擴充記憶體。例如,透過請求分頁儲存管理系統,將部分暫時不用的頁面置換到外存(如磁碟)中,當需要訪問這些頁面時,再將它們調入記憶體,這樣在邏輯上擴充了記憶體的容量。
3. 檔案系統管理
- 檔案儲存與組織
- 作業系統負責將檔案儲存在儲存裝置(如硬碟、隨身碟等)上。它採用一定的檔案組織方式,如順序檔案、索引檔案、索引順序檔案等。例如,在檔案系統中,作業系統會為每個檔案分配一定的磁碟空間,並透過檔案目錄來組織和管理這些檔案,使使用者能夠方便地找到和訪問檔案。
- 檔案操作支援
- 作業系統提供了一系列檔案操作的介面,如檔案的建立、開啟、讀取、寫入、關閉、刪除等。使用者或應用程式可以透過這些介面來操作檔案。例如,當使用者在文字編輯器中儲存檔案時,文字編輯器會呼叫作業系統提供的檔案寫入操作來將檔案內容儲存到磁碟上。
- 檔案安全與保護
- 作業系統要確保檔案的安全性,防止檔案被非法訪問、修改或刪除。它可以透過設定檔案訪問許可權(如只讀、讀寫、執行等)來控制不同使用者或程序對檔案的訪問。例如,在多使用者系統中,作業系統可以為每個使用者分配不同的檔案訪問許可權,只有具有相應許可權的使用者才能對檔案進行操作。
4. 裝置管理
- 裝置驅動程式管理
- 作業系統要管理各種裝置的驅動程式。驅動程式是作業系統與硬體裝置之間的介面,它使得作業系統能夠識別和控制裝置。例如,當使用者插入一個新的USB裝置時,作業系統會自動載入相應的驅動程式,以便能夠正確地使用這個裝置。
- 裝置分配與回收
- 作業系統要根據程序的請求分配裝置資源。例如,當多個程序都需要使用印表機時,作業系統會按照一定的策略(如先來先服務)來分配印表機。在裝置使用完畢後,作業系統要及時回收裝置資源,以便其他程序能夠使用。
- 裝置緩衝與快取
- 為了提高裝置的使用效率,作業系統會採用緩衝和快取技術。例如,在磁碟I/O操作中,作業系統會設定磁碟緩衝區,將從磁碟讀取的資料暫時儲存在緩衝區中,當後續需要使用這些資料時,可以直接從緩衝區中獲取,而不必再次從磁碟讀取,從而減少磁碟I/O次數,提高系統效能。
記憶體與程序管理
- 記憶體管理與程序管理的關係
- 程序是程式在計算機中的一次執行過程,每個程序都需要佔用一定的記憶體空間來儲存程式碼、資料和執行時的堆疊等資訊。記憶體管理和程序管理緊密相關,記憶體為程序提供了執行的物理空間,而程序管理則決定了如何在記憶體中合理地分配和使用這些空間。
- 記憶體分配給程序的方式
- 連續分配方式
- 單一連續分配:這是最簡單的記憶體分配方式。將記憶體分為系統區和使用者區,系統區用於存放作業系統,使用者區全部分配給一個使用者程序使用。這種方式只適用於單使用者、單任務的作業系統,如早期的DOS作業系統。因為在這種情況下,記憶體空間不會被其他程序搶佔,簡單高效,但資源利用率較低。
- 固定分割槽分配:把記憶體空間劃分為若干個固定大小的分割槽,每個分割槽可以裝入一個程序。分割槽大小可以相同也可以不同。例如,記憶體為64KB,劃分為4個16KB的分割槽或者2個10KB和2個22KB的分割槽。當有程序需要執行時,系統按照一定的策略(如最先適應、最佳適應、最壞適應)將一個空閒分割槽分配給它。這種方式可以支援多程序,但存在內部碎片問題,即分割槽劃分後,可能會有部分分割槽由於大小不合適而無法被充分利用。
- 動態分割槽分配:根據程序的實際需要動態地劃分記憶體空間。當一個程序申請記憶體時,系統從空閒記憶體區域中劃分出一塊合適大小的記憶體給它。例如,程序A需要20KB記憶體,系統就在空閒記憶體中找到一塊至少20KB的區域分配給它。回收記憶體時,系統將回收的空間與相鄰的空閒空間合併,形成更大的空閒區域。這種方式沒有內部碎片,但會產生外部碎片,即經過多次分配和回收後,記憶體中會出現許多分散的小空閒塊,難以滿足大程序的需求。
- 離散分配方式
- 分頁儲存管理:將記憶體空間和程序的地址空間劃分成固定大小的頁。例如,記憶體被劃分為每頁4KB大小的單元,程序的虛擬地址空間也按照同樣大小劃分。在進行記憶體分配時,以頁為單位進行分配。程序的每頁可以儲存在記憶體的不同位置,透過頁表來記錄程序的頁與記憶體頁框的對映關係。這種方式可以有效減少外部碎片,但會產生頁內碎片,因為頁的大小是固定的,最後一頁可能無法被完全利用。
- 分段儲存管理:按照程式的邏輯結構,將程序的地址空間劃分為若干個段,如程式碼段、資料段、堆疊段等。每個段的長度可以不同,並且可以根據需要動態增長。例如,一個程式的程式碼段可能是10KB,資料段是20KB。記憶體分配時,以段為單位進行分配,透過段表來記錄段的起始地址、長度和其他屬性。這種方式可以更好地滿足程式的邏輯需求,但也會產生外部碎片。
- 段頁式儲存管理:結合了分段和分頁的優點。先將程序的地址空間按照邏輯段劃分,然後每個段再劃分成若干頁。記憶體同樣劃分成頁框。在進行記憶體分配時,先找到對應的段,再在段內以頁為單位進行分配。這種方式管理複雜,但綜合效能較好,在現代作業系統中應用廣泛。
- 連續分配方式
- 程序在記憶體中的狀態變化對記憶體管理的影響
- 程序在執行過程中有多種狀態,如就緒、執行、阻塞等。當程序從就緒狀態轉變為執行狀態時,作業系統需要確保該程序能夠正確地訪問其所需的記憶體空間。如果記憶體不足,可能需要採用頁面置換等策略來騰出空間。例如,在請求分頁儲存管理系統中,當一個正在執行的程序需要訪問一個不在記憶體中的頁面時,就會產生缺頁中斷。作業系統會根據一定的頁面置換演算法(如先進先出、最近最少使用等)將記憶體中的某個頁面置換到磁碟交換區,然後將所需頁面調入記憶體,使程序能夠繼續執行。
- 當程序從執行狀態變為阻塞狀態(如等待I/O操作完成)時,作業系統可以考慮將該程序佔用的部分記憶體空間暫時換出到磁碟交換區,以騰出空間給其他就緒程序使用。當程序再次變為就緒狀態時,再將其換回記憶體。
- 記憶體保護與程序隔離
- 記憶體保護是記憶體管理的重要任務之一,其目的是防止一個程序非法訪問另一個程序的記憶體空間或者作業系統核心空間。作業系統透過硬體支援(如基址暫存器和限長暫存器)和軟體機制(如記憶體訪問許可權檢查)來實現記憶體保護。
- 例如,在採用基址暫存器和限長暫存器的系統中,基址暫存器存放程序在記憶體中的起始地址,限長暫存器存放程序的長度。當程序訪問記憶體時,硬體會自動將訪問地址與基址暫存器和限長暫存器的值進行比較。如果訪問地址超出了程序的合法範圍,就會產生越界中斷,作業系統會採取相應的措施(如終止該程序)來防止非法訪問。
- 程序隔離也是透過記憶體保護機制來實現的,它確保每個程序都在自己獨立的記憶體空間中執行,就好像系統中只有它一個程序一樣,這樣可以提高系統的安全性和穩定性。
分時系統
-
分時系統的定義與基本概念
- 分時系統是一種多使用者互動式作業系統。它允許多個使用者同時透過終端裝置(如顯示器、鍵盤)連線到計算機系統上,並且每個使用者在感覺上好像獨佔整個計算機系統。系統把CPU時間劃分成很短的時間片(例如,幾十毫秒),輪流地分配給各個聯機使用者使用。
- 例如,假設有三個使用者A、B、C正在使用一個分時系統。系統會將CPU時間劃分為時間片,先把一個時間片分配給使用者A的程序,讓其執行一部分任務;然後把下一個時間片分配給使用者B的程序;接著再分配給使用者C的程序,如此迴圈往復。由於時間片的切換速度非常快,每個使用者都感覺自己的程式是在連續地執行。
-
分時系統的特點
- 多路性:允許多個使用者同時使用計算機系統。可以同時連線多個終端裝置,這些終端裝置對應的使用者程式都可以在系統中執行。例如,在一個大型的分時計算機系統中,可以同時連線幾十甚至上百個終端,這些終端的使用者可以同時進行文字編輯、資料處理、程式開發等操作。
- 獨立性:每個使用者在使用計算機系統時感覺不到其他使用者的存在,好像自己獨佔整個系統一樣。每個使用者的程式在各自分配到的時間片內獨立執行,不會受到其他使用者程式的干擾。例如,使用者A在編寫程式時,不會因為使用者B的程式出現錯誤而受到影響。
- 及時性:系統能夠在較短的時間內對使用者的請求做出響應。一般來說,系統對使用者命令的響應時間應該在幾秒鐘之內。例如,當使用者在終端上輸入一個命令後,系統會在短時間內執行這個命令並返回結果,讓使用者能夠及時地得到反饋。
- 互動性:使用者可以透過終端裝置與計算機系統進行互動。使用者可以隨時輸入命令、資料等,系統會根據使用者的輸入及時做出響應。例如,使用者在文字編輯過程中,可以隨時輸入文字、修改內容、儲存檔案等操作,系統會按照使用者的要求進行相應的處理。
-
分時系統的實現原理
- 時間片輪轉排程演算法:這是分時系統實現的核心演算法。系統把CPU時間劃分成固定大小的時間片,每個時間片的長度通常根據系統的效能和使用者的需求來確定。例如,時間片長度可以是10 - 100毫秒。所有就緒程序按照先來先服務的順序排成一個佇列,系統將時間片依次分配給佇列中的程序。當一個程序的時間片用完後,系統會暫停這個程序,將其放到佇列的末尾,然後把下一個時間片分配給佇列中的下一個程序。
- 程序切換機制:當時間片用完或者程序由於其他原因(如等待I/O操作)需要暫停時,系統需要進行程序切換。程序切換涉及到儲存當前程序的上下文(包括程式計數器、暫存器內容等),然後載入下一個程序的上下文,使下一個程序能夠從上次暫停的地方繼續執行。這個過程需要作業系統和硬體的配合,並且會產生一定的系統開銷。例如,在每次程序切換時,需要將當前程序的狀態資訊儲存到記憶體中的特定區域,然後從另一個區域讀取下一個程序的狀態資訊,這個過程需要消耗一定的CPU時間和記憶體空間。
-
分時系統的應用場景與優勢
- 應用場景:廣泛應用於多使用者計算機環境,如大學計算機實驗室、企業辦公網路等。在大學計算機實驗室中,學生們可以透過終端裝置同時使用計算機系統進行課程學習、程式設計實踐等活動。在企業辦公網路中,員工們可以使用終端裝置訪問公司內部的分時系統,進行文件處理、財務資料處理等工作。
- 優勢:
- 資源共享高效:多個使用者可以共享計算機系統的硬體資源(如CPU、記憶體、磁碟等),提高了資源的利用率。例如,透過分時系統,多個使用者可以共享一臺高效能伺服器的資源,而不必為每個使用者都配備一臺獨立的計算機。
- 使用者體驗良好:由於具有互動性和及時性的特點,使用者能夠方便地與系統進行互動,並且能夠及時得到系統的反饋,提供了較好的使用者體驗。例如,使用者在進行圖形設計時,可以隨時調整設計引數,系統會及時顯示調整後的效果。
-
CPU排程的基本概念
- CPU排程是指作業系統決定哪個程序可以在CPU上執行以及執行多長時間的過程。在多道程式環境下,多個程序處於就緒狀態等待CPU資源,CPU排程程式的任務就是從這些就緒程序中選擇一個程序,並將CPU分配給它。
- 例如,在一個計算機系統中有程序A、B、C都處於就緒狀態。CPU排程演算法會根據一定的規則來選擇其中一個程序(如選擇程序A),然後將CPU的使用權交給程序A,使得程序A能夠執行它的指令序列。
-
CPU排程的目標
- 提高CPU利用率:CPU是計算機系統中最關鍵的資源之一,透過合理的排程,儘量減少CPU的空閒時間。例如,在一個繁忙的伺服器系統中,透過高效的CPU排程,可以使CPU長時間處於工作狀態,處理大量的使用者請求。
- 提高系統吞吐量:系統吞吐量是指單位時間內系統完成的程序數量。良好的CPU排程可以讓更多的程序在單位時間內完成,從而提高系統的吞吐量。例如,在一個批處理系統中,透過合理的排程,可以使更多的作業在一天內完成。
- 減少程序的等待時間:每個程序都希望能夠儘快得到CPU資源進行執行。減少程序的等待時間可以提高使用者的滿意度和系統的響應速度。例如,在一個互動式系統中,使用者希望自己的操作(如開啟檔案、執行程式)能夠快速得到響應,這就需要減少程序等待CPU的時間。
- 保證公平性:對每個就緒程序提供公平的機會獲取CPU資源。例如,在一個多使用者分時系統中,每個使用者的程序都應該有機會在CPU上執行,不能因為某些原因而使得某些程序一直無法得到CPU資源。
-
CPU排程演算法的型別
- 先來先服務(FCFS)排程演算法
- 這是一種最簡單的排程演算法。按照程序到達就緒佇列的先後順序來分配CPU資源。例如,有程序A、B、C依次到達就緒佇列,那麼先將CPU分配給程序A,當程序A完成或者阻塞後,再將CPU分配給程序B,以此類推。這種演算法的優點是簡單易懂,易於實現;缺點是對短程序不利,如果長程序先到達,那麼短程序可能會等待很長時間。
- 短作業優先(SJF)排程演算法
- 根據程序的預計執行時間來分配CPU資源,優先選擇預計執行時間最短的程序。例如,在就緒佇列中有程序A預計執行時間為10秒,程序B預計執行時間為5秒,程序C預計執行時間為15秒,那麼先將CPU分配給程序B。這種演算法的優點是可以提高系統的平均週轉時間和吞吐量;缺點是長程序可能會出現“飢餓”現象,即長時間得不到CPU資源,而且難以準確預估程序的執行時間。
- 時間片輪轉(RR)排程演算法
- 把CPU時間劃分成固定大小的時間片,每個程序輪流使用一個時間片。例如,時間片長度為20毫秒,就緒程序按照順序輪流在CPU上執行,當一個程序的時間片用完後,就將CPU分配給下一個程序。這種演算法的優點是可以保證每個程序都能在一定時間內得到CPU資源,適用於分時系統;缺點是時間片大小的選擇比較關鍵,如果時間片太小,會導致程序切換過於頻繁,增加系統開銷;如果時間片太大,就會退化成先來先服務演算法。
- 優先順序排程演算法
- 為每個程序分配一個優先順序,優先順序高的程序優先獲得CPU資源。例如,系統程序的優先順序通常高於使用者程序,在就序佇列中有高優先順序的程序A和低優先順序的程序B,那麼先將CPU分配給程序A。優先順序可以是靜態的(在程序建立時就確定),也可以是動態的(根據程序的執行情況進行調整)。這種演算法的優點是可以靈活地根據程序的重要性來分配資源;缺點是可能會出現低優先順序程序“飢餓”的現象,並且確定優先順序的標準比較複雜。
- 先來先服務(FCFS)排程演算法
-
CPU排程的上下文切換
- 當CPU從一個程序切換到另一個程序時,需要儲存當前程序的上下文(包括程式計數器、暫存器內容、棧指標等),並載入下一個程序的上下文。這個過程稱為上下文切換。例如,當程序A正在執行,CPU要切換到程序B時,需要將程序A的程式計數器(記錄當前執行到的指令位置)、暫存器內容(如通用暫存器、狀態暫存器)等儲存到程序A的程序控制塊(PCB)中,然後從程序B的PCB中讀取相應的上下文資訊載入到CPU中,使程序B能夠從上次暫停的地方繼續執行。上下文切換會帶來一定的系統開銷,包括儲存和載入上下文資訊的時間以及記憶體訪問的時間等。
-
檔案的概念
- 檔案是計算機系統中資訊儲存的基本單位。它是一組相關資訊的集合,這些資訊可以是程式程式碼、文字、影像、音訊、影片等資料。例如,一個Word文件是一個檔案,它包含了文字、格式、圖片等資訊;一個可執行程式也是一個檔案,儲存著計算機能夠理解和執行的指令序列。
- 檔案通常由檔名和檔案內容兩部分組成。檔名用於標識檔案,方便使用者和系統進行識別和管理。檔名一般包括主檔名和副檔名,副檔名可以幫助使用者和系統快速瞭解檔案的型別,如“.txt”表示文字檔案,“.exe”表示可執行檔案。
-
檔案的屬性
- 檔案型別:透過副檔名或檔案內部的格式標識來區分不同型別的檔案。常見的檔案型別有文字檔案、二進位制檔案、影像檔案、音訊檔案、影片檔案等。例如,文字檔案可以用記事本等工具直接開啟和編輯,二進位制檔案(如可執行檔案)則需要特定的程式來解釋和執行。
- 檔案大小:表示檔案所包含的資料量,通常以位元組(Byte)為單位。檔案大小會影響檔案的儲存、傳輸和處理。例如,一個大型的影片檔案可能有幾個GB大小,而一個簡單的文字檔案可能只有幾KB。
- 檔案的建立時間、修改時間和訪問時間:這些時間戳記錄了檔案從建立到後續操作的時間資訊。系統可以根據這些時間來進行檔案的排序、備份等操作。例如,在檔案管理器中,使用者可以按照檔案的修改時間來檢視檔案的更新順序。
- 檔案所有者和許可權:檔案所有者是建立檔案的使用者或者被指定的使用者。檔案許可權規定了哪些使用者或使用者組可以對檔案進行讀、寫、執行等操作。例如,在多使用者系統中,一個使用者可能對自己建立的檔案有讀寫許可權,而其他使用者只有讀許可權。
-
檔案系統的概念和功能
- 檔案系統是作業系統中用於組織、儲存和管理檔案的軟體模組。它提供了一種邏輯結構,將儲存裝置(如硬碟、隨身碟等)的物理空間劃分為一個個檔案和目錄,使得使用者可以方便地訪問和操作這些檔案。
- 檔案儲存與組織:檔案系統會將檔案儲存在儲存裝置的特定位置。它採用不同的組織方式,如樹形結構。在樹形結構的檔案系統中,有一個根目錄,從根目錄開始可以有多個子目錄和檔案,每個子目錄又可以包含自己的子目錄和檔案。例如,在Windows系統中,“C:\”是根目錄,下面有“Program Files”“Users”等目錄,這些目錄中又包含各種應用程式檔案和使用者檔案。
- 檔案操作支援:檔案系統提供了一系列基本的檔案操作介面,如檔案的建立、開啟、讀取、寫入、關閉和刪除等。當使用者透過應用程式(如文字編輯器)進行檔案操作時,應用程式會呼叫檔案系統提供的這些介面來完成相應的任務。例如,當使用者在文字編輯器中儲存檔案時,文字編輯器會呼叫檔案系統的寫入操作將檔案內容儲存到儲存裝置中。
- 檔案安全與保護:檔案系統透過設定檔案許可權來保護檔案的安全。它可以根據使用者身份、使用者組等因素來限制對檔案的訪問。例如,在Linux系統中,可以使用“chmod”命令來設定檔案的許可權,確保檔案只能被授權的使用者訪問和修改。
- 檔案的空間管理:檔案系統要負責管理儲存裝置的空間。它會跟蹤哪些空間已經被檔案佔用,哪些是空閒的。當需要儲存新檔案時,檔案系統會尋找合適的空閒空間來分配給檔案。例如,採用磁碟碎片整理技術來最佳化磁碟空間的利用,將分散的空閒空間合併成較大的空閒塊。
-
磁碟排程的基本概念
- 磁碟是計算機系統中用於長期儲存資料的裝置。磁碟排程是指作業系統決定磁碟I/O請求(讀或寫操作)的執行順序的過程。由於磁碟的機械特性,讀寫頭在磁碟碟片上移動需要時間,而且不同的磁碟排程策略會對磁碟I/O效能產生顯著影響。
- 例如,當有多個程序同時向磁碟發出讀寫請求時,如程序A請求讀取磁碟扇區100的資料,程序B請求讀取磁碟扇區200的資料,磁碟排程程式就需要決定先處理哪個請求,以達到較好的效能。
-
磁碟的結構與磁碟I/O操作特點
- 磁碟主要由碟片、讀寫頭、電機等部件組成。碟片是儲存資料的介質,被劃分為多個同心圓環,稱為磁軌,每個磁軌又被劃分為多個扇區,扇區是磁碟儲存資料的基本單位。讀寫頭負責在碟片上進行資料的讀寫操作。
- 磁碟I/O操作包括尋道時間、旋轉延遲和傳輸時間。尋道時間是指讀寫頭從當前位置移動到目標磁軌所需的時間,這是磁碟I/O操作中最長的延遲部分。旋轉延遲是指碟片旋轉到目標扇區位於讀寫頭下方所需的時間。傳輸時間是指將資料從磁碟傳輸到記憶體或從記憶體傳輸到磁碟所需的時間。
- 例如,當需要讀取磁碟上的一個檔案時,首先讀寫頭要移動到檔案所在磁軌(尋道時間),然後等待檔案所在扇區旋轉到讀寫頭下方(旋轉延遲),最後進行資料傳輸(傳輸時間)。
-
常見的磁碟排程演算法
- 先來先服務(FCFS)磁碟排程演算法
- 按照磁碟I/O請求到達的先後順序進行處理。例如,有請求序列為R1(讀取扇區10)、R2(讀取扇區30)、R3(讀取扇區20),如果按照FCFS演算法,就先處理R1,然後R2,最後R3。這種演算法簡單公平,但效能較差,因為它沒有考慮磁碟讀寫頭的移動距離,可能會導致頻繁的長距離尋道,增加尋道時間。
- 最短尋道時間優先(SSTF)磁碟排程演算法
- 每次選擇離當前讀寫頭位置最近的磁碟I/O請求進行處理。例如,讀寫頭當前位於磁軌10,有請求讀取磁軌20、磁軌5和磁軌30的請求,那麼會先處理磁軌20的請求,因為它離當前位置最近。這種演算法可以減少尋道時間,提高磁碟I/O效能,但可能會導致某些請求長時間得不到處理,產生“飢餓”現象。
- 掃描(SCAN)磁碟排程演算法(電梯演算法)
- 讀寫頭從磁碟的一端開始,向另一端移動,在移動過程中處理經過的磁碟I/O請求。當到達磁碟的另一端時,讀寫頭改變移動方向,繼續處理請求。例如,讀寫頭從磁碟最內層磁軌開始向外層移動,在移動過程中處理請求,到達最外層磁軌後,再從外向內移動處理請求。這種演算法避免了SSTF演算法的飢餓問題,同時也在一定程度上減少了尋道時間。
- 迴圈掃描(C - SCAN)磁碟排程演算法
- 與掃描演算法類似,但讀寫頭只在一個方向上移動進行掃描,當到達磁碟的一端後,讀寫頭直接回到磁碟的另一端,而不是反向掃描。例如,讀寫頭從磁碟最內層磁軌開始向外層移動,處理請求,到達最外層磁軌後,直接回到最內層磁軌,重新開始向外層移動處理請求。這種演算法可以提供更穩定的等待時間,適用於對實時性要求較高的系統。
- 先來先服務(FCFS)磁碟排程演算法
-
磁碟排程演算法的效能評估與應用場景
- 效能評估指標:主要包括平均尋道長度、吞吐量和響應時間。平均尋道長度是指所有磁碟I/O請求的尋道距離的平均值,尋道長度越短,磁碟I/O效能越好。吞吐量是指單位時間內完成的磁碟I/O運算元量。響應時間是指從發出磁碟I/O請求到請求完成所花費的時間。
- 應用場景:不同的磁碟排程演算法適用於不同的應用場景。FCFS演算法適用於磁碟I/O請求較少且對效能要求不高的簡單系統。SSTF演算法適用於磁碟讀寫操作比較頻繁,對尋道時間敏感的系統,但要注意防止飢餓現象。SCAN和C - SCAN演算法適用於磁碟負載較重,對效能和公平性都有要求的系統,如大型伺服器系統。
教材學習中的問題和解決過程
- 問題1:分時系統有什麼優勢?
- 問題1解決方案:
-
高效的資源共享
- 硬體資源利用最大化:分時系統允許多個使用者同時使用計算機系統,使得昂貴的硬體資源(如CPU、記憶體、磁碟等)能夠在多個使用者之間共享。例如,在一個企業的分時系統中,透過分時共享,一臺高效能伺服器的CPU可以同時處理多個員工的任務,如文書處理、資料分析等。這避免了為每個使用者單獨配置計算機,從而降低了硬體成本,提高了硬體資源的整體利用率。
- 軟體資源共享便捷:多個使用者可以共享系統中的軟體資源。例如,在大學的計算機實驗室中,學校購買的專業軟體(如繪圖軟體、程式設計工具等)可以透過分時系統供多個學生同時使用。使用者只需透過終端登入系統,就可以訪問和使用這些軟體,無需在每個終端裝置上都安裝軟體副本,這不僅節省了軟體購買成本,還便於軟體的管理和更新。
-
良好的使用者互動體驗
- 及時性響應使用者需求:分時系統具有很強的互動性,能夠及時響應使用者的操作。系統將CPU時間劃分為很短的時間片,並快速地在多個使用者之間輪流分配,使得每個使用者的請求都能在較短時間內得到處理。例如,當使用者在終端輸入一個命令(如查詢檔案、編輯文件等)後,系統會在幾秒內(通常響應時間在1 - 3秒)返回結果。這種及時性讓使用者感覺自己獨佔計算機系統,提高了使用者滿意度。
- 支援多工處理:使用者可以同時執行多個任務。例如,使用者可以在一個終端視窗中編輯文件,同時在另一個視窗中執行資料查詢程式,還可以在第三個視窗中進行檔案傳輸操作。系統透過合理的排程,為每個任務分配時間片,讓使用者能夠高效地進行多種工作,極大地提高了工作效率。
-
增強系統的可靠性和靈活性
- 系統容錯性較好:由於分時系統是多使用者共享,當某個使用者的程式出現錯誤(如程式崩潰、陷入死迴圈等)時,一般不會影響其他使用者的正常使用。例如,在一個有多個使用者同時使用的分時系統中,如果使用者A的程式出現異常,系統可以暫停該使用者的程序,而繼續為其他使用者提供服務。這種隔離性使得系統能夠保持穩定執行,減少因單個使用者程式故障導致系統整體癱瘓的風險。
- 易於擴充套件和調整:分時系統可以很方便地根據使用者數量和需求進行擴充套件。例如,當企業規模擴大,需要增加新的使用者接入分時系統時,只需增加終端裝置和相應的使用者賬號即可。同時,系統管理員可以根據使用者的不同需求靈活地調整資源分配,如為對效能要求較高的使用者分配更多的CPU時間片或記憶體空間。
- 問題2:分時系統什麼缺陷?
- 問題2解決方案:
- 效能方面的侷限
- 響應時間的波動:儘管分時系統的設計目標是提供快速響應,但在系統負載較高時,響應時間可能會顯著增加。因為系統是將CPU時間劃分成時間片分配給多個使用者程序,當使用者數量增多或者某些程序執行復雜任務佔用較多時間片時,每個使用者能夠獲得的CPU時間相對減少。例如,在一個同時有幾十個使用者執行大型計算任務的分時系統中,每個使用者可能會感覺到系統響應變得遲緩,之前可能在1 - 2秒內得到響應的操作,現在可能需要5 - 10秒甚至更長時間。
- 整體效能受硬體限制:分時系統的效能很大程度上依賴於硬體資源。如果硬體配置較低,如CPU處理速度慢、記憶體容量小或者磁碟I/O速度慢,那麼在多使用者環境下,系統效能會受到嚴重影響。即使採用了高效的排程演算法,也難以彌補硬體效能的不足。例如,一個老舊的分時系統伺服器,其CPU頻率較低,當使用者數量稍微增加時,就會出現系統卡頓的現象。
- 資源分配的問題
- 資源競爭導致效率降低:多個使用者共享系統資源(如CPU、記憶體、I/O裝置等)會導致資源競爭。當多個使用者同時請求使用同一資源(如印表機)或者對資源的需求超過系統實際可提供的資源量時,就需要排隊等待。這種等待會浪費時間,降低系統的整體執行效率。例如,在一個辦公室的分時系統中,多個員工同時提交列印任務,印表機只能逐個處理,後面的任務就需要等待,而且在等待過程中可能會佔用其他系統資源,影響其他程序的執行。
- 公平性難以絕對保證:雖然分時系統的排程演算法(如時間片輪轉)旨在保證公平性,即每個使用者都有機會使用CPU,但在實際情況中,很難做到絕對公平。例如,一些使用者程序可能因為優先順序設定(如系統程序優先順序高於普通使用者程序)或者時間片分配策略的細微差異,導致部分使用者在資源分配上獲得更多的優勢,而其他使用者可能會覺得自己沒有得到公平的對待。
- 安全和隱私方面的隱患
- 使用者間資料安全風險:由於多個使用者共享系統,存在使用者資料被其他使用者非法訪問的風險。儘管作業系統會採取一些安全措施(如設定檔案訪問許可權),但如果安全機制被突破或者配置不當,一個使用者可能會訪問到其他使用者的敏感資料。例如,在一個分時系統中,如果一個惡意使用者透過系統漏洞獲取了其他使用者的檔案訪問許可權,就可以讀取甚至篡改其他使用者的檔案內容。
- 系統安全維護複雜:分時系統需要維護多個使用者的安全,相比單使用者系統,安全管理的複雜性大大增加。系統管理員需要不斷更新安全策略、安裝安全補丁、監控使用者行為等,以防止系統被入侵。例如,要防止外部網路攻擊,同時還要確保內部使用者不會濫用許可權,這需要投入大量的時間和精力來進行安全維護。
- 問題3:常見的檔案保護方法有哪些?
- 問題三解決:
- 訪問控制列表(ACL)
- 概念及原理:訪問控制列表是一種基於使用者或使用者組來控制對檔案訪問許可權的方法。它詳細地列出了每個使用者或使用者組對檔案或目錄的訪問許可權,包括讀(Read)、寫(Write)、執行(Execute)許可權。例如,在Linux系統中,透過“ls -l”命令可以檢視檔案的許可權資訊,其中包含了檔案所有者、所屬組以及其他使用者的許可權位。
- 應用場景和優勢:在多使用者環境下非常有用,如企業的檔案伺服器或者共享儲存系統。系統管理員可以根據不同部門、不同使用者角色來精細地分配檔案訪問許可權。例如,財務部門的檔案可以設定為只有財務人員有讀寫許可權,其他部門人員只有讀許可權,這樣可以有效地保護敏感資訊。而且ACL可以靈活地修改,適應組織內使用者角色和許可權的變化。
- 使用者認證與授權
- 使用者認證:
- 概念及原理:這是驗證使用者身份的過程,確保只有合法的使用者能夠訪問檔案系統。常見的認證方法包括使用者名稱/密碼組合、智慧卡、生物識別技術(如指紋識別、虹膜識別)等。例如,當使用者登入作業系統時,輸入使用者名稱和密碼,系統會將其與儲存在認證資料庫中的資訊進行比對,如果匹配成功,則允許使用者進入系統。
- 應用場景和優勢:廣泛應用於各種需要保護檔案安全的系統。使用使用者名稱/密碼方式簡單易行,智慧卡和生物識別技術則提供了更高的安全性。例如,在銀行的檔案系統中,對於高安全級別的檔案訪問,可能會採用生物識別技術進行使用者認證,以確保只有授權的銀行工作人員能夠訪問客戶的財務資訊。
- 授權:
- 概念及原理:在使用者認證成功後,授權過程決定了使用者能夠訪問哪些檔案以及進行何種操作。授權通常基於使用者的角色、許可權級別等因素。例如,在一個軟體開發專案中,專案負責人可能被授權可以修改所有專案檔案,而普通開發人員只能修改自己負責的部分檔案。
- 應用場景和優勢:在複雜的組織架構和系統環境中,能夠根據具體的業務需求合理地分配許可權。透過明確的授權機制,可以防止使用者越權訪問檔案,提高檔案系統的安全性。
- 使用者認證:
- 加密技術
- 檔案加密:
- 概念及原理:透過加密演算法將檔案內容從明文轉換為密文,只有擁有正確金鑰的使用者才能將密文還原為明文。常見的加密演算法有對稱加密演算法(如AES)和非對稱加密演算法(如RSA)。例如,在使用對稱加密時,傳送方和接收方使用相同的金鑰對檔案進行加密和解密。傳送方用金鑰將檔案加密後傳送,接收方收到密文後,使用相同的金鑰進行解密,從而恢復檔案的原始內容。
- 應用場景和優勢:適用於需要高度保密的檔案,如企業的商業機密、個人的隱私檔案等。即使檔案被非法獲取,如果沒有金鑰,也無法檢視檔案內容。例如,一些雲端儲存服務提供商允許使用者對儲存在雲端的檔案進行加密,這樣即使使用者的賬戶被攻破,檔案內容依然是安全的。
- 金鑰管理:
- 概念及原理:金鑰管理涉及金鑰的生成、儲存、分發、更新和銷燬等環節。良好的金鑰管理是保證加密技術有效性的關鍵。例如,在企業環境中,可能會使用金鑰管理系統(KMS)來集中管理金鑰,確保金鑰的安全性和可用性。
- 應用場景和優勢:可以有效防止金鑰丟失、洩露等情況。透過安全的金鑰儲存方式(如硬體安全模組)和嚴格的金鑰分發流程,可以提高整個加密系統的安全性。
- 檔案加密:
- 備份與恢復策略
- 備份策略:
- 概念及原理:定期對檔案進行備份,以防止檔案因硬體故障、人為誤操作、惡意攻擊等原因丟失或損壞。備份可以採用完全備份(備份所有檔案)、增量備份(只備份自上次備份以來修改過的檔案)或差異備份(備份自上次完全備份以來修改過的檔案)等方式。例如,企業的檔案伺服器可能會每天進行一次增量備份,每週進行一次完全備份,這樣在遇到問題時可以最大限度地恢復檔案。
- 應用場景和優勢:在各種檔案系統中都非常重要。對於企業的關鍵業務檔案、資料庫檔案等,備份策略可以確保業務的連續性。即使發生災難事件,如伺服器硬碟損壞,也可以透過備份檔案快速恢復資料。
- 恢復策略:
- 概念及原理:恢復策略是指在檔案丟失或損壞後,如何利用備份檔案將其恢復到可用狀態的方法。它包括確定恢復的順序、驗證恢復後的檔案完整性等步驟。例如,在從備份中恢復檔案時,需要按照備份的時間順序和備份型別(完全備份、增量備份)進行恢復操作,並且要檢查恢復後的檔案是否能夠正常使用。
- 應用場景和優勢:和備份策略緊密配合,是保證檔案可用性的重要環節。透過有效的恢復策略,可以在最短時間內恢復檔案系統的正常執行,減少因檔案丟失造成的損失。
- 備份策略:
基於AI的學習