20241313 劉鳴宇 《計算機基礎與程式設計》第九周學習總結

Camellia×發表於2024-11-24

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

作業資訊

這個作業屬於哪個課程 <班級的連結>(如2024-2025-1-計算機基礎與程式設計
這個作業要求在哪裡 <作業要求的連結>(如2024-2025-1計算機基礎與程式設計第一週作業)
這個作業的目標 <寫上具體方面>
作業正文 ... 本部落格連結

教材學習內容總結

《電腦科學概論》
第十章——作業系統
作業系統的角色與定義
定義:
作業系統是一種管理計算機硬體與軟體資源的程式,它為計算機使用者和應用程式提供了一個方便且高效的互動介面,同時協調計算機各個部件有條不紊地工作。
作用:
作業系統扮演著資源管理者的角色,負責管理計算機系統中的多種資源,比如處理器(CPU)、記憶體、輸入輸出裝置以及儲存裝置等,確保各個程式和使用者任務都能合理地使用這些資源,提高整個系統的執行效率。
作業系統的功能模組
處理器管理(CPU 管理)
程序的概念:
程序是正在執行的程式例項,它包含了程式程式碼、相關的資料以及執行時所需的系統資源等資訊。例如,當我們同時開啟瀏覽器、文書處理軟體,作業系統會為它們分別建立程序,每個程序獨立執行,但又由作業系統來協調排程它們對 CPU 的使用。
程序排程:
作業系統需要決定哪個程序在何時使用 CPU,常用的排程演算法有先來先服務、短作業優先、時間片輪轉等。例如時間片輪轉演算法,會給每個程序分配一個固定的時間片(如每個程序輪流使用 CPU 10 毫秒),時間一到,無論該程序是否執行完,都暫停該程序,將 CPU 分配給下一個程序,以此保證各個程序都能得到及時響應。
多工處理:
現代作業系統支援多工,也就是能同時執行多個程式,讓使用者感覺這些程式是在 “同時” 執行,實際上是作業系統快速地在各個程序間切換 CPU 資源,實現併發執行的效果。
記憶體管理
記憶體分配:
作業系統負責為正在執行的程式分配記憶體空間,把實體記憶體劃分為不同的區域分配給不同的程序使用。例如,當啟動一個遊戲程式,作業系統會根據遊戲的需求從空閒記憶體中劃分出合適的空間給該遊戲程序存放資料和程式碼。
記憶體保護:
確保各個程序只能訪問分配給自己的記憶體區域,防止一個程序誤操作或者惡意訪問其他程序的記憶體,保障系統的穩定性和資料安全。比如不同的應用程式不能隨意篡改彼此在記憶體中的資料。
虛擬記憶體:
利用磁碟空間來擴充套件實體記憶體的容量,當實體記憶體不夠用時,作業系統會將暫時不用的記憶體資料交換到磁碟上的虛擬記憶體區域(通常是磁碟上的分頁檔案),等需要時再將其換回實體記憶體,使得程式可以執行比實際實體記憶體更大的應用,不過頻繁的記憶體資料交換會影響系統執行速度。
裝置管理
裝置驅動程式:
是作業系統與硬體裝置之間的橋樑,不同的硬體裝置(如印表機、滑鼠、鍵盤等)都需要對應的驅動程式,以便作業系統能正確識別並控制它們工作。例如,安裝印表機時需要安裝相應的印表機驅動,這樣作業系統才能指揮印表機進行文件列印操作。
輸入輸出(I/O)控制:
作業系統協調裝置與記憶體、CPU 之間的資料傳輸,管理裝置的輸入輸出操作順序,提高裝置使用效率。比如,當多個程式都需要從硬碟讀取資料時,作業系統會合理安排讀取順序,避免裝置衝突,最佳化資料傳輸過程。
作業系統的型別
批處理作業系統:
早期的一種作業系統型別,使用者將一批作業(程式和相關資料)提交給計算機系統,作業系統按照一定的順序依次處理這些作業,在作業處理過程中使用者不需要進行互動,常用於大型資料處理等場景,優點是系統資源利用率高,但缺乏互動性。
分時作業系統:
允許多個使用者透過終端同時連線到計算機系統,作業系統將 CPU 時間劃分成很短的時間片,輪流分配給各個使用者的任務,使得每個使用者都感覺自己獨佔計算機系統,像現在的多使用者伺服器系統常採用分時作業系統的原理,具有良好的互動性。
實時作業系統:
主要用於對時間響應要求嚴格的應用場景,比如工業控制、航空航天等領域,要求作業系統能夠在規定的時間內對外部事件做出準確響應,保障系統的實時性和可靠性,往往優先順序排程機制更為關鍵,優先處理緊急的實時任務。
個人計算機作業系統:
像 Windows、macOS、Linux 等,專為個人計算機設計,注重使用者體驗、易用性以及對多種軟體和硬體裝置的相容性,支援多工處理、圖形化介面等,方便使用者日常辦公、娛樂等使用。
作業系統的使用者介面
命令列介面(CLI):
使用者透過輸入特定的命令文字與作業系統進行互動,命令有嚴格的語法格式,比如在 Linux 系統中,使用者可以輸入 “ls” 命令檢視當前目錄下的檔案列表,適合專業技術人員,能夠高效地完成複雜操作。
圖形使用者介面(GUI):
透過圖形化的介面元素,如視窗、選單、圖示、按鈕等,讓使用者使用滑鼠等裝置進行操作,直觀易懂,方便普通使用者使用,像 Windows 作業系統中,使用者可以透過點選 “開始” 選單,選擇相應的程式來啟動執行,極大地降低了使用門檻。
思維導圖:
作業系統

├── 作業系統概念
│ ├── 定義
│ │ - 介於硬體和使用者之間的介面
│ │ - 管理計算機系統中每個部件的活動
│ │ - 控制和管理整個計算機系統的硬體和軟體資源
│ └── 特徵
│ ├── 併發
│ │ - 多個程式同時執行的能力
│ │ - 並行性與併發性的區別
│ ├── 共享
│ │ - 資源可供多個程序共同使用
│ │ - 互斥共享方式
│ ├── 虛擬
│ │ - 透過虛擬化技術擴充硬體功能
│ └── 非同步
│ - 程序執行走走停停,不可預知的速度

├── 作業系統功能
│ ├── 處理器管理
│ │ ├── 程序控制
│ │ ├── 程序同步
│ │ ├── 程序通訊
│ │ └── 處理器排程
│ ├── 儲存器管理
│ │ ├── 記憶體分配
│ │ ├── 地址對映
│ │ ├── 記憶體保護
│ │ └── 記憶體擴充
│ ├── 檔案管理
│ │ ├── 檔案儲存空間管理
│ │ ├── 目錄管理
│ │ ├── 檔案讀寫管理
│ │ └── 檔案保護
│ └── 裝置管理
│ ├── 裝置分配
│ ├── 裝置傳輸控制
│ └── 裝置獨立性

├── 使用者介面
│ ├── 命令列介面(CLI)
│ ├── 圖形使用者介面(GUI)
│ └── 系統呼叫[14]

└── 作業系統型別
├── 單使用者單任務作業系統
├── 單使用者多工作業系統
├── 多使用者作業系統
└── 分時作業系統[14]
第十一章——檔案系統和目錄
檔案系統概述
定義與作用:檔案系統是作業系統用於組織、儲存和管理檔案及目錄的一套機制,它在磁碟等儲存裝置上構建起一種邏輯結構,使得使用者和應用程式能夠方便地對資料進行訪問、儲存和操作,相當於給儲存裝置裡的資料搭建了一個有序的管理框架。
重要性:透過檔案系統,能夠高效地定位、讀取、寫入以及刪除檔案,保障資料的完整性和安全性,並且可以靈活地分配磁碟空間,讓不同的使用者、不同的應用程式都能合理利用儲存資源。
檔案相關知識
檔案型別:
文字檔案:主要由字元編碼組成,內容可以直接透過文字編輯器檢視和編輯,比如常見的.txt 檔案,像我們寫的文章、程式碼等以純文字形式儲存的就是文字檔案。
二進位制檔案:以二進位制格式儲存資料,其內容不能直接被人讀懂,需要特定的應用程式來解讀,例如.exe 可執行檔案、.jpg 影像檔案、.mp3 音訊檔案等,這些檔案內部的資料是按照特定的二進位制結構來組織的,只有對應的軟體(如圖片檢視器看.jpg 檔案、音樂播放器聽.mp3 檔案)才能正確解析並展示其內容。
檔案操作:
建立:使用者或應用程式可以透過作業系統提供的功能建立新檔案,比如在 Windows 作業系統中,在某個資料夾內右鍵點選空白處,選擇 “新建”,再選擇具體的檔案型別(如新建文字文件)就能建立一個新檔案。
開啟:藉助相應的軟體工具來開啟檔案,以讀取或修改其內容。不同型別的檔案通常需要對應的應用程式來開啟,如用 Word 軟體開啟.docx 檔案,用 Adobe Reader 開啟.pdf 檔案等。
讀取:從檔案中獲取資料,比如一個程式要讀取配置檔案中的引數設定,就會按照檔案系統的規則從相應的檔案裡提取所需的文字或數值資訊。
寫入和修改:向檔案中新增新內容或者更改原有內容,像我們在編輯文件時對文字的增刪改操作就是在對檔案進行寫入和修改。
刪除:將檔案從儲存裝置中移除,不過一般作業系統會先把檔案移到回收站(在有回收站機制的系統中),只有清空回收站或者直接徹底刪除時,檔案才真正從磁碟上被刪除,釋放其所佔的磁碟空間。
檔案屬性:
檔名:用於唯一標識一個檔案,方便使用者和作業系統識別、查詢,檔名通常由主檔名和副檔名兩部分組成,副檔名往往代表了檔案的型別,例如 “report.docx” 中 “report” 是主檔名,“docx” 是副檔名,表示這是一個 Word 文件檔案。
檔案大小:表明檔案佔用儲存裝置的空間量,通常以位元組(Byte)、千位元組(KB)、兆位元組(MB)、吉位元組(GB)等為單位,不同的檔案根據其內容多少會有不同的大小,比如一個簡單的幾行字的文字檔案可能只有幾 KB,而一部高畫質電影檔案可能達到幾個 GB。
建立時間、修改時間和訪問時間:這些時間戳記錄了檔案從建立開始的相關時間資訊,建立時間就是檔案最初生成的時間,修改時間是檔案最後一次被更改內容的時間,訪問時間則是最近一次開啟檢視檔案的時間,有助於瞭解檔案的使用歷史和變化情況。
目錄(資料夾)相關知識
目錄結構:
層次結構(樹形結構):
大多數現代檔案系統採用樹形的目錄結構,以根目錄為起點,像一棵樹的樹幹,往下分支形成各級子目錄(資料夾),每個子目錄下又可以包含檔案以及再下級的子目錄,例如在 Windows 系統中,“C 盤” 就是一個根目錄分割槽,下面有 “Program Files”“Users” 等資料夾作為一級子目錄,“Users” 目錄下又有各個使用者的資料夾等,這種結構便於組織和分類管理大量的檔案。
絕對路徑和相對路徑:
絕對路徑是從根目錄開始完整描述檔案或目錄位置的路徑表示方式,比如在 Linux 系統中,“/home/user/documents/report.txt” 就是檔案 “report.txt” 的絕對路徑,表示它位於根目錄下 “home” 目錄的 “user” 子目錄下的 “documents” 資料夾內;相對路徑則是相對於當前所在目錄來描述其他目錄或檔案的位置,比如當前目錄是 “/home/user”,要訪問 “documents” 資料夾內的檔案,相對路徑就是 “documents/report.txt”,相對路徑在編寫程式、進行命令列操作等場景下方便快捷地定位檔案。
目錄操作:
建立:
可以在已有的目錄下建立新的子目錄,用於對檔案進一步分類存放,如在 Windows 資源管理器中,選中某個資料夾後右鍵點選,選擇 “新建”->“資料夾” 就能建立新的目錄。
重新命名:改變目錄的名稱,便於更好地體現其包含檔案的類別等資訊,不過要注意重新命名可能會影響到一些基於原目錄名的程式操作或檔案路徑引用。
移動和複製:移動目錄可以改變其在檔案系統中的位置,複製則是生成一個和原目錄及其內容完全相同的副本到其他位置,方便備份或者調整檔案組織方式,比如在作業系統的檔案管理器中,透過拖曳操作或者選單中的 “剪下”“複製”“貼上” 功能來實現目錄的移動和複製。
刪除:
移除不需要的目錄,但要注意只有當目錄為空(即目錄下沒有檔案和子目錄)或者在刪除時選擇同時刪除其包含的所有內容時才能成功刪除,否則需要先清空目錄內的檔案和子目錄後再刪除該目錄。
磁碟管理與檔案系統效能
磁碟分割槽:
把物理磁碟劃分為多個邏輯分割槽,每個分割槽可以採用不同的檔案系統,也方便對不同用途的資料(如系統檔案、使用者檔案等)進行分別管理,例如可以把硬碟分為 C 盤用於安裝作業系統,D 盤用於存放使用者文件、軟體安裝檔案等,不同分割槽的大小可以根據實際需求來設定。
磁碟排程演算法:
當有多個檔案讀寫請求時,作業系統採用磁碟排程演算法來確定讀寫磁碟扇區的順序,以減少磁碟臂移動等帶來的時間損耗,提高磁碟讀寫效率,常見的演算法有先來先服務、最短尋道時間優先、掃描演算法(電梯演算法)等。例如掃描演算法就類似於電梯執行,磁頭沿著磁碟表面單向移動,在移動過程中處理經過的讀寫請求,到達磁碟邊緣後再反向移動繼續處理,以此提高磁碟讀寫的整體效率。
檔案系統的維護與最佳化:
包括磁碟碎片整理(在部分檔案系統中),隨著檔案的不斷寫入、刪除和修改,檔案在磁碟上的儲存可能會變得零散,碎片整理就是把檔案的各個部分重新排列整合,使其連續存放,從而加快檔案的讀取速度;還有磁碟空間清理,定期刪除無用的檔案,釋放磁碟空間,保障檔案系統的高效執行。
思維導圖:
檔案系統和目錄

├── 檔案系統基礎
│ ├── 檔案定義
│ ├── 檔案屬性
│ │ ├── 基本屬性(大小、型別、建立日期等)
│ │ └── 許可權(讀、寫、執行)
│ └── 檔案分類
│ ├── 普通檔案
│ ├── 目錄檔案
│ └── 特殊檔案

├── 檔案儲存
│ ├── 儲存介質
│ │ ├── 硬碟
│ │ └── SSD
│ ├── 檔案分配
│ │ ├── 連續分配
│ │ ├── 鏈式分配
│ │ └── 索引分配
│ └── 空閒空間管理
│ ├── 點陣圖
│ └── 連結串列

├── 檔案目錄
│ ├── 目錄結構
│ │ ├── 線性目錄
│ │ ├── 樹形目錄
│ │ └── 通用目錄
│ ├── 目錄項
│ │ ├── 檔名
│ │ ├── 檔案屬性
│ │ └── 檔案位置
│ └── 路徑
│ ├── 絕對路徑
│ └── 相對路徑

├── 檔案操作
│ ├── 建立檔案
│ ├── 刪除檔案
│ ├── 讀取檔案
│ ├── 寫入檔案
│ ├── 重新命名檔案
│ └── 複製檔案

├── 檔案訪問控制
│ ├── 使用者身份驗證
│ ├── 許可權檢查
│ └── 審計日誌

├── 檔案系統效能
│ ├── 快取
│ ├── 預讀和後寫
│ └── 檔案系統最佳化

└── 檔案系統安全
├── 加密
├── 完整性檢查
└── 防病毒
《C語言程式設計》第八章
主要講解了陣列(包含一維陣列、二維陣列等)介紹其定義、初始化、元素訪問方式以及字元陣列與字串處理知識,同時涵蓋演算法基礎相關內容,透過本章的學習,熟練掌握運用陣列進行資料處理及理解基礎演算法思路。

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

基於AI的學習

相關文章