2024-2025-1 20241417 《計算機基礎與程式設計》第九周學習總結

20241417罗若元發表於2024-11-24

2024-2025-1 20241417 《計算機基礎與程式設計》第九周學習總結

作業資訊

這個作業屬於哪個課程 2024-2025-1-計算機基礎與程式設計
這個作業要求在哪裡 2024-2025-1計算機基礎與程式設計第九周作業
這個作業的目標 <作業系統責任、記憶體與程序管理、分時系統、CPU排程、檔案、檔案系統、檔案保護、磁碟排程>
作業正文 https://www.cnblogs.com/lry666666/p/18565434

教材學習內容總結

作業系統責任

作業系統作為計算機系統的核心軟體,肩負著多重重要責任。一方面,它需要對硬體資源進行全面管理,涵蓋了 CPU、記憶體、磁碟、輸入輸出裝置等各個關鍵硬體部件。例如,它合理地分配 CPU 時間,確保各個程序都能有序獲得計算資源;對記憶體空間進行有效的劃分與調配,滿足不同程式執行時的記憶體需求。另一方面,它要為各類應用程式打造一個穩定且適宜的執行環境,處理應用程式之間的複雜關係,比如協調多工的併發執行,避免相互衝突和干擾。同時,作業系統也是連線使用者與計算機硬體的橋樑,負責處理使用者的各種互動操作,像接收使用者的指令、反饋相應的資訊等,以此保障整個計算機系統高效、穩定且安全地執行,為使用者提供良好的使用體驗。

記憶體與程序管理

  • 記憶體管理
    記憶體管理在作業系統中至關重要。它要動態地分配記憶體空間給不同的程序,當程序啟動時,為其申請合適的記憶體區域來存放程式碼、資料等;在程序結束後,及時回收所佔用的記憶體,以便重新分配給其他程序使用。虛擬記憶體技術更是一大亮點,它透過在磁碟等外部儲存裝置上開闢一部分空間作為記憶體的延伸,讓程序在執行時彷彿擁有比實際實體記憶體更大的空間,按照需求將部分資料在實體記憶體和磁碟之間進行交換。例如,當多個大型程式同時執行而實體記憶體緊張時,虛擬記憶體能確保這些程式依然可以正常運轉,同時也能保證不同程序的記憶體空間相互隔離,避免一個程序誤訪問或篡改其他程序的資料,提高了記憶體使用的安全性和整體利用率。
  • 程序管理
    程序管理涉及程序從建立到結束整個生命週期的管控。首先,作業系統依據使用者啟動應用程式等操作來建立程序,為其分配必要的資源,如記憶體、CPU 時間片等,並設定初始狀態為就緒狀態,等待 CPU 排程。在程序執行過程中,會因等待某些事件(如輸入輸出操作完成)而進入阻塞狀態,當等待條件滿足後又重新回到就緒狀態,繼續競爭 CPU 資源,這個過程中作業系統負責協調程序狀態的準確轉換。而且,為了讓多個程序能協同工作,作業系統還要管理程序間的同步與通訊,比如透過訊號量機制確保多個程序對共享資源的互斥訪問,或者利用訊息傳遞機制讓不同程序能交換資料,從而實現多程序在系統中的併發執行,提高系統的整體執行效率。

分時系統

分時系統旨在實現多個使用者對計算機系統資源的共享,且讓每個使用者感覺像是獨佔系統一樣方便使用。它把 CPU 的執行時間劃分成一個個極小的時間片,通常以毫秒甚至微秒為單位。系統按照一定的輪轉策略,將這些時間片依次分配給各個聯機的使用者終端所對應的程序。例如,假設有三個使用者同時登入系統並執行各自的程式,分時系統會輪流給這三個使用者的程序分配時間片,每個程序在自己的時間片內執行一小段任務,然後暫停等待下一次輪到自己,如此迴圈往復。這種方式充分利用了 CPU 資源,避免了因某個使用者長時間佔用 CPU 而導致其他使用者無法使用的情況,極大地提高了系統資源的利用率,同時也保證了每個使用者的互動操作都能得到及時響應,使用者可以隨時輸入指令並快速看到系統反饋,增強了系統的互動性和實用性。

CPU 排程

CPU 排程是作業系統中最佳化 CPU 使用效率的關鍵環節。其核心在於從眾多處於就緒狀態的程序佇列中,依據特定的排程演算法來挑選合適的程序分配 CPU 資源。常見的排程演算法有多種,比如先來先服務演算法,按照程序到達就緒佇列的先後順序依次分配 CPU,簡單直觀但可能導致短程序等待時間過長;短作業優先演算法,則優先選擇預計執行時間短的程序,能有效減少平均週轉時間,但可能存在長程序飢餓的問題;時間片輪轉演算法,像前面分時系統裡提到的那樣,給每個程序分配固定的時間片,輪流使用 CPU,公平地對待各個程序,不過時間片大小的設定很關鍵,若設定不當會影響系統整體效能。透過這些不同的排程演算法,作業系統根據實際情況合理選擇應用,旨在提升 CPU 的利用率,縮短程序的平均週轉時間,保證各個程序能公平地獲得 CPU 資源,進而提升整個系統的執行效能,滿足不同使用者和應用程式的需求。

檔案

檔案是計算機系統中用於長期儲存資料資訊的一種基本單位,它本質上是有特定名稱的資料集合,這些資料可以是文字、影像、音訊、影片等各種形式,儲存在磁碟、光碟等外部儲存裝置上。使用者和應用程式透過檔名來對檔案進行識別、訪問和操作。例如,我們日常使用的文件檔案(如.docx、.txt 格式)儲存著文字內容,圖片檔案(如.jpg、.png 格式)儲存著影像資訊,它們都作為獨立的檔案存在,方便使用者根據自己的需求進行建立、修改、刪除、複製等操作,是計算機系統中資訊儲存和傳遞的重要載體。

檔案系統

檔案系統是作業系統中專門用於管理檔案的一套機制,其功能涵蓋了多個方面。在檔案的儲存方面,它負責將檔案按照一定的邏輯結構和物理結構儲存到磁碟等儲存介質上,比如常見的樹形目錄結構,透過根目錄、子目錄等層級關係對檔案進行分類組織,方便使用者快速定位和查詢檔案。在檢索功能上,提供了諸如按檔名、檔案型別、建立時間等多種檢索方式,讓使用者能迅速找到所需檔案。同時,它還負責檔案的更新操作,像修改檔案內容後能準確地將新資料寫回到儲存位置,以及刪除檔案時對相關儲存區域進行合理的清理回收。而且,檔案系統向使用者和應用程式提供了統一的、標準化的檔案操作介面,無論底層硬體如何變化,使用者和應用程式都可以使用諸如開啟、關閉、讀寫等常規操作來處理檔案,極大地簡化了檔案管理的複雜性,提高了檔案管理的效率和便利性。

檔案保護

檔案保護旨在確保檔案的安全性和保密性,防止檔案被非法訪問、篡改或破壞。作業系統透過多種手段來實現檔案保護。其中,設定訪問許可權是最常見的方式,例如為檔案定義讀、寫、執行等不同許可權,對於不同的使用者或使用者組賦予相應的許可權組合,像某個檔案可能只允許檔案所有者進行讀寫操作,而其他使用者只能讀取,這樣就限制了非授權使用者對檔案的不當操作。此外,還會結合使用者認證機制,要求使用者在訪問檔案前透過輸入使用者名稱和密碼等方式進行身份驗證,只有透過驗證的合法使用者才能依據其許可權對檔案進行相應操作。同時,還可以利用加密技術對檔案內容進行加密處理,即使檔案資料被非法獲取,沒有正確的解密金鑰也無法讀懂檔案內容,全方位地保障檔案在儲存和使用過程中的安全。

磁碟排程

磁碟排程主要針對磁碟的讀寫請求進行最佳化管理。由於磁碟讀寫速度相對較慢,而且磁碟臂在不同磁軌間移動尋道時間佔據了磁碟 I/O 操作的大部分時間,所以磁碟排程演算法顯得尤為重要。常見的磁碟排程演算法包括先來先服務演算法,即按照磁碟讀寫請求到達的先後順序依次處理,簡單但可能導致磁碟臂頻繁大幅度移動,效率較低;最短尋道時間優先演算法,優先選擇距離當前磁頭位置最近的磁軌對應的讀寫請求進行處理,能有效減少尋道時間,但可能出現某些請求長時間被“餓死”的情況;掃描演算法及其變種(如迴圈掃描演算法),磁頭按照一個固定方向掃描磁軌,依次處理經過磁軌上的讀寫請求,到達一端後再折返,這種方式在一定程度上兼顧了公平性和效率。透過合理運用這些磁碟排程演算法,作業系統能夠對眾多磁碟讀寫請求進行有序安排,儘量減少磁碟臂的移動距離和移動次數,從而提高磁碟 I/O 的效率,加快資料的讀寫速度,提升整個計算機系統的執行效能。

教材學習中的問題和解決過程(先問 AI)

(一個模板:我看了這一段文字 (引用文字),有這個問題 (提出問題)。 我查了資料,有這些說法(引用說法),根據我的實踐,我得到這些經驗(描述自己的經驗)。 但是我還是不太懂,我的困惑是(說明困惑)。【或者】我反對作者的觀點(提出作者的觀點,自己的觀點,以及理由)。 )

  • 問題 1:如果記憶體空間不足,作業系統可能會採取什麼措施?
  • 問題 1 解決方案:作業系統可能會啟動虛擬記憶體機制,將記憶體中暫時不使用的資料交換到磁碟空間,以騰出記憶體給當前需要執行的程序使用。同時,也可能會對一些長時間未使用且優先順序較低的程序進行記憶體回收操作,釋放其佔用的記憶體資源。
  • 問題 2:在分時系統中,如果某個使用者的程序在時間片用完時正好處於等待輸入的狀態,會發生什麼?
  • 問題 2 解決方案:該程序會被暫時掛起,作業系統會將 CPU 時間片分配給其他就緒程序。當該程序等待的輸入完成後,它會重新進入就緒佇列,等待下一次被分配 CPU 時間片繼續執行。
  • 問題 3:一個檔案被設定了只讀許可權,普通使用者嘗試對其進行修改會怎樣?
  • 問題 3 解決方案:普通使用者會收到許可權不足的提示,無法對該檔案進行修改操作。因為只讀許可權只允許使用者讀取檔案內容,而禁止任何寫入或修改操作。

程式碼除錯中的問題和解決過程

  • 問題1:在case分支後面之間宣告瞭變數,導致編譯錯誤
  • 問題1解決方案:查閱課本後解決
  • 問題2:swich每個分支結束後忘加break
  • 問題2解決方案:查閱課本後解決
  • 問題3:在主函式將陣列傳遞給其他函式時只用寫陣列名,不用加中括號
  • 問題3解決方案:詢問AI後解決

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 200/200 2/2 20/20
第二週 300/500 0/2 18/38
第三週 500/1000 1/3 22/60
第四周 300/1300 1/4 30/90
第五週 300/1600 1/5 30/120
第六週 300/1900 1/6 30/150
第七週 300/2200 1/7 30/180
第八週 300/2500 1/8 30/210
第九周 300/2800 1/9 30/240

相關文章