2021年10月27日 2021-2022第一學期20212303《網路空間安全專業導論》第五週學習總結
作業系統層
第十章 作業系統
10.1作業系統的角色
系統軟體
系統軟體是指控制和協調計算機及外部裝置,支援應用軟體開發和執行的系統,是無需使用者干預的各種程式的集合,主要功能是排程,監控和維護計算機系統;負責管理計算機系統中各種獨立的硬體,使得它們可以協調工作。系統軟體使得計算機使用者和其他軟體將計算機當作一個整體而不需要顧及到底層每個硬體是如何工作的。
應用軟體
應用軟體(Application)是和系統軟體相對應的,是使用者可以使用的各種程式設計語言,以及用各種程式設計語言編制的應用程式的集合,分為應用軟體包和使用者程式。應用軟體包是利用計算機解決某類問題而設計的程式的集合,多供使用者使用。
應用軟體是為滿足使用者不同領域、不同問題的應用需求而提供的那部分軟體。 它可以拓寬計算機系統的應用領域,放大硬體的功能。
作業系統
作業系統是管理計算機硬體資源,控制其他程式執行併為使用者提供互動操作介面的系統軟體的集合。作業系統是計算機系統的關鍵組成部分,負責管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網路與管理檔案系統等基本任務。作業系統的種類很多,各種裝置安裝的作業系統可從簡單到複雜,可從手機的嵌入式作業系統到超級計算機的大型作業系統。
多道程式設計
多道程式設計是在計算機記憶體中同時存放幾道相互獨立的程式,使它們在管理程式控制之下,相互穿插的執行。 兩個或兩個以上程式在計算機系統中同處於開始到結束之間的狀態。
記憶體管理
記憶體管理是指軟體執行時對計算機記憶體資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,並且在適當的時候釋放和回收記憶體資源。
程序
程式執行過程中的動態表示法,正在執行的程式
記憶體管理
是指軟體執行時對計算機記憶體資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,並且在適當的時候釋放和回收記憶體資源。
程序管理
瞭解活動程序的資訊的動作
CPU排程
確定主存中那個程序可以訪問CPU以便執行的動作
批處理
批處理(Batch),也稱為批處理指令碼。顧名思義,批處理就是對某物件進行批量的處理。批處理檔案的副檔名為bat 。
分時
分時是指多個使用者分享使用同一臺計算機。多個程式分時共享硬體和軟體資源。分時作業系統是指在一臺主機上連線多個帶有顯示器和鍵盤的終端,同時允許多個使用者通過主機的終端,以互動方式使用計算機,共享主機中的資源。
10.2記憶體管理
實體地址
載入到記憶體地址暫存器中的地址,記憶體單元的真正地址。在前端總線上傳輸的記憶體地址都是實體記憶體地址,編號從0開始一直到可用實體記憶體的最高階。這些數字被北橋(Nortbridge chip)對映到實際的記憶體條上。實體地址是明確的、最終用在總線上的編號,不必轉換,不必分頁,也沒有特權級檢查(no translation, no paging, no privilege checks)。
邏輯地址
CPU所生成的地址。邏輯地址是內部和程式設計使用的、並不唯一。例如,你在進行C語言指標程式設計中,可以讀取指標變數本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前程序資料段的地址(偏移地址),不和絕對實體地址相干。
個人覺的原因在於邏輯地址分配更加靈活,可以允許不唯一,看起來也較為直觀,例如,一段程式碼中分配陣列,邏輯地址上是連續的,然而在實體地址上,這個陣列所佔用的頁可能分散開來,實體地址上就是不連續的,這樣對程式的可理解性上有影響。另外,有了邏輯地址這個概念,才能使用虛擬記憶體技術。摘自https://blog.csdn.net/genghaihua/article/details/89450057
地址聯編
邏輯地址和實體地址間的對映
記憶體管理的基本方式
1.單塊記憶體管理
2.分割槽記憶體管理
3.頁式記憶體管理
一.單塊記憶體管理
把應用程式載入一段連續的記憶體區域的記憶體管理辦法
優點:實現和管理都很簡單
缺點:大大佔用記憶體空間和CPU時間
二.分割槽記憶體管理
分割槽式儲存管理是把記憶體分為一些大小相等或不等的分割槽,作業系統佔用其中一個分割槽,其餘的分割槽由應用程式使用,每個應用程式佔用一個或幾個分割槽。分割槽式儲存管理雖然可以支援併發,但難以進行記憶體分割槽的共享。
固定分割槽(nxedpartitioning)
固定式分割槽的特點是把記憶體劃分為若干個固定大小的連續分割槽。分割槽大小可以相等:這種作法只適合於多個相同程式的併發執行(處理多個型別相同的物件)。分割槽大小也可以不等:有多個小分割槽、適量的中等分割槽以及少量的大分割槽。根據程式的大小,分配當前空閒的、適當大小的分割槽。
優點:易於實現,開銷小。
缺點主要有兩個:內碎片造成浪費;分割槽總數固定,限制了併發執行的程式數目。
動態分割槽的特點是動態建立分割槽:在裝入程式時按其初始要求分配,或在其執行過程中通過系統呼叫進行分配或改變分割槽大小。與固定分割槽相比較其優點是:沒有內碎片。但它卻引入了另一種碎片——外碎片。動態分割槽的分割槽分配就是尋找某個空閒分割槽,其大小需大於或等於程式的要求。若是大於要求,則將該分割槽分割成兩個分割槽,其中一個分割槽為要求的大小並標記為“佔用”,而另一個分割槽為餘下部分並標記為“空閒”。分割槽分配的先後次序通常是從記憶體低端到高階。動態分割槽的分割槽釋放過程中有一個要注意的問題是,將相鄰的空閒分割槽合併成一個大的空閒分割槽。
最先適配法(nrst-fit):
按分割槽在記憶體的先後次序從頭查詢,找到符合要求的第一個分割槽進行分配。該演算法的分配和釋放的時間效能較好,較大的空閒分割槽可以被保留在記憶體高階。但隨著低端分割槽不斷劃分會產生較多小分割槽,每次分配時查詢時間開銷便會增大
最佳適配法(best-fit):
按分割槽在記憶體的先後次序從頭查詢,找到其大小與要求相差最小的空閒分割槽進行分配。從個別來看,外碎片較小;但從整體來看,會形成較多外碎片優點是較大的空閒分割槽可以被保留。
最差適配法把最大能夠容納程式的分割槽分配給它,在固定分割槽法中沒有意義,但在動態分割槽法中,留下了儘可能大的空白分割槽
基址暫存器
存放當前分割槽起始地址的暫存器
界限暫存器
存放當前分割槽長度的暫存器
頁式記憶體管理
把程序劃分為大小固定的頁,載入記憶體時儲存在幀中的記憶體管理方法
幀
大小固定的一部分主存用於存放程序頁
頁
大小固定的一部分程序,儲存在記憶體幀中
頁對映表pmt
作業系統用於記錄頁和幀之間關係的表
請求分頁
頁式記憶體管理法的擴充套件,只有當頁面被引用時才會被載入記憶體
頁面交換
把一個頁面從二級儲存裝置載入記憶體,通常會使另一個頁面從記憶體中刪除
分頁系統的優缺點
優點:
1.不會產生外部碎片化,一個程序佔用的記憶體空間可以不是連續的,
2.一個程序的虛擬頁面在不需要時,可以存放在磁碟上。
3.可以共享小的地址,即頁面共享。只要給相應的頁表裡面做一個相應的記錄便可。
缺點:
1.頁表很大,佔用了大量的記憶體空間,32為定址空間頁面大小為4KB,頁表將會有2^20個。
關於優缺點的說明,摘用一篇部落格中的內容
————————————————
版權宣告:本文為CSDN博主「TheShyclear」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/genzld/article/details/83415508
虛擬記憶體
由於整個程式不必同時處於記憶體而造成程式大小沒有限制的假象
系統顛簸
連續的頁面交換造成的低效處理
10.3程序管理
程序控制快
作業系統管理程序資訊使用的資料結構
上下文切換
當一個程序移出CPU另一個程序取代它時發生的暫存器資訊交換
10.4 CPU排程
CPU排程演算法決定了把那個準備就緒狀態的程序移入程序狀態
非搶先排程
噹噹前執行的程序自願放棄了CPU時發生的CPU排程
搶先排程
當作業系統決定照顧另一個操作程序而搶佔當前執行程序的CPU資源時發生的CPU排程
週轉週期
從程序進入準備就緒狀態到它最終完成之間的時間間隔,是評估CPU排程演算法的標準
對於不同的系統和系統目標,通常採用不同的排程演算法:例如,在批處理系統中為照顧為數眾多的短作業,應採用短作業優先的排程演算法;又如在分時系統中,為了保證系統具有合理的響應時間,應採用輪轉法進行排程。
先來先服務排程演算法(FCFS)
是一種最簡單的排程演算法,既可用於作業排程,也可用於程序排程。
當在作業排程中採用FCFS演算法時,每次排程都是從後備作業佇列中,選擇一個或多個最先進入該佇列的作業,將它們調入記憶體,為它們分配資源、建立程序,然後放入就緒佇列;
在程序排程採用FCFS演算法時,則每次排程是從就緒佇列中選擇一個最先進入該佇列的程序,為之分配處理機,使之執行。
FCFS演算法比較有利於長作業(程序),而不利於短作業(程序)。
短作業(程序)優先演算法(SJ(P)F)
短作業優先(SJF)的排程演算法,是從後備佇列中選擇一個或若干個估計執行時間最短的作業,將它們調入記憶體執行。
短程序優先(SPF)排程演算法,是從就緒佇列中選出一估計執行時間最短的程序,將處理機分配給它,使它立即執行並一直執行到完成,或發生某事件而被阻塞放棄處理機時,再重新排程。
短作業(程序)優先演算法(SJ(P)F)
版權宣告:本文為CSDN博主「Orange#」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/weixin_43237362/article/details/105001131
輪詢法
CPU把處理時間平均分配給所有準備就緒的程序