作業系統知識點總結(一)作業系統概述
《作業系統概述》
作業系統結構圖:
(1)作業系統的基本概念:作業系統(Operating System, OS)是指控制和管理整個計算機系統的硬體和軟體資源,併合理地組織
排程計算機的工作和資源的分配,以提供給使用者和其他軟體方便的介面和環境的程式集合。
(2)作業系統的特徵:併發(Concurrence);共享(Sharing);虛擬(Virtual); 非同步(Asynchronism)
【解釋】
併發:併發是指兩個或多個事件在同一時間間隔內發生。作業系統的併發性是指計算機系統中同時存在多個執行著的程式,
因此它具有處理和排程多個程式同時執行的能力。在作業系統 中,引入程序的目的是使程式能併發執行。
共享: 資源共享即共享,是指系統中的資源可供記憶體中多個併發執行的程序共同使用。
共享可分為以下兩種資源共享方式:1) 互斥共享方式 2) 同時訪問方式
虛擬:虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。
物理實體(前者)是實的,即實際存在的;而後者是虛的,是使用者感覺上的事物。用於實現虛擬的技術,稱為虛擬技術。
非同步:在多道程式環境下,允許多個程式併發執行,但由於資源有限,程序的執行不是一貫到底,而是走走停停,
以不可預知的速度向前推進,這就是程序的非同步性。
作業系統最基本的特徵是併發和共享。
(3)目標和功能:
作業系統作為計算機系統資源的管理者;
作業系統作為使用者與計算機硬體系統之間的介面(分為命令介面,程式介面,GUI);
作業系統用做擴充機器
(4)發展:批處理作業系統-》分時作業系統-》實時作業系統-》網路和分散式作業系統
(5)執行機制:1)中斷和異常;2)系統呼叫
(6)體系結構:大核心和微核心
【注】使用者態和核心態:
計算機系統中,通常CPU執行兩種不同性質的程式:一種是作業系統核心程式;另一種是使用者自程式設計序或系統外層的應用程式。
對作業系統而言,這兩種程式的作用不同,前者是後者的管理者,因此“管理程式”要執行一些特權指令,而“被管理程式”
出於安全考慮不能執行這些指令。所謂特權指令,是指計算機中不允許使用者直接使用的指令,如I/O指令、 置中斷指令,存取用
於記憶體保護的暫存器、送程式狀態字到程式狀態字暫存器等指令。作業系統在具體實現上劃分了使用者態(目態)和核心態(管態),
以嚴格區分兩類程式。
使用者態轉轉為核心態的例子:1.使用者程式要求作業系統的服務,即系統呼叫2.發生一次中斷3.使用者程式中產生了一個錯誤狀態
4.使用者程式中企圖執行一條特權指令5.從核心態轉向使用者態由一條指令實現,這條指令也是特權命令。一般是中斷返回指令
【注】核心包含的內容:
1)時鐘管理:在計算機的各種部件中,時鐘是最關鍵的裝置。時鐘的第一功能是計時,作業系統需要通過時鐘管理,
向用戶提供標準的系統時間。另外,通過時鐘中斷的管理,可以實現程序的切換。
2)中斷機制:引入中斷技術的初衷是提高多道程式執行環境中CPU的利用率,而且主要是針對外部裝置的。
3)原語:按層次結構設計的作業系統,底層必然是一些可被呼叫的公用小程式,它們各自完成一個規定的操作。其特點是:
它們處於作業系統的最底層,是最接近硬體的部分。
這些程式的執行具有原子性——其操作只能一氣呵成(這主要是從系統的安全性和便於管理考慮的)。
這些程式的執行時間都較短,而且呼叫頻繁。
4) 系統控制的資料結構及處理
【注】中斷和異常相關知識點
中斷(Interruption),也稱外中斷,指來自CPU執行指令以外的事件的發生,如裝置發出的I/O結束中斷,表示裝置輸入/輸出處
理已經完成,希望處理機能夠向裝置發下一個輸入 / 輸出請求,同時讓完成輸入/輸出後的程式繼續執行。時鐘中斷,表示一個
固定的時間片已到,讓處理機處理計時、啟動定時執行的任務等。這一類中斷通常是與當前程式執行無
關的事件,即它們與當前處理機執行的程式無關。
異常(Exception),也稱內中斷、例外或陷入(Trap),指源自CPU執行指令內部的事件,如程式的非法操作碼、 地址越界、算術溢
出、虛存系統的缺頁以及專門的陷入指令等引起的事件。對異常的處理一般要依賴於當前程式的執行現場,而且異常不能被遮蔽,
一旦出現應立即處理。
【注】系統呼叫
所謂系統呼叫就是使用者在程式中呼叫作業系統所提供的一些子功能,系統呼叫功能上可分為:裝置管理;檔案管理;程序控制;
程序通訊;記憶體管理。顯然,系統呼叫執行在系統的核心態。通過系統呼叫的方式來使用系統功能,可以保證系統的穩定性和
安全性,防止使用者隨意更改或訪問系統的資料或命令。系統呼叫命令是由作業系統提供的一個或多個子程式模組實現的。
《疑難點》
(1)並行性與併發性的區別和聯絡
答:並行性和併發性是既相似又有區別的兩個概念。並行性是指兩個或多個事件在同一時刻發生。併發性是指兩個或多個事件在
同一時間間隔內發生。
在多道程式環境下,併發性是指在一段時間內,巨集觀上有多個程式在同時執行,但在單處理器系統中每一時刻卻僅能有一道程式
執行,故微觀上這些程式只能是分時地交替執行。倘若在計算機系統中有多個處理器,則這些可以併發執行的程式便被分配到多
個處理器上,實現並行執行,即利用每個處理器來處理一個可併發執行的程式。
(2)特權指令與非特權指令
答:所謂特權指令是指有特殊許可權的指令,由於這類指令的許可權最大,如果使用不當,將導致整個系統崩潰。比如:清記憶體、置
時鐘、分配系統資源、修改虛存的段表或頁表、修改使用者的訪問許可權等。如果所有的程式都能使用這些指令,那麼你的系統一天
宕機《回就不足為奇了。為了保證系統安全,這類指令只能用於作業系統或其他系統軟體,不直接提供給使用者使用。因此,特權
指令必須在核心態執行。實際上,CPU在核心態下可以執行指令系統的全集。形象地說,特權指令就是那些兒童不宜的東西,而
非特權指令則是老少皆宜。
為了防止使用者程式中使用特權指令,使用者態下只能使用非特權指令,核心態下可以使用全部指令。當在使用者態下使用特權指令時,
將產生中斷以阻止使用者使用特權指令。所以把使用者程式放在使用者態下執行,而作業系統中必須使用特權指令的那部分程式在核心態
下執行,保證了計算機系統的安全可靠。從使用者態轉換為核心態的唯一途徑是中斷或異常。
(3)訪管指令與訪管中斷
答:訪管指令是一條可以在使用者態下執行的指令。在使用者程式中,因要求作業系統提供服務而有意識地使用訪管指令,從而產生一
箇中斷事件(自願中斷),將作業系統轉換為核心態,稱為訪管中斷。訪管中斷由訪管指令產生,程式設計師使用訪管指令向作業系統
請求服務。
為什麼要在程式中引入訪管指令呢?這是因為使用者程式只能在使用者態下執行,如果使用者程式想要完成在使用者態下無法完成的工作,
該怎麼辦?解決這個問題要靠訪管指令。訪管指令本身不是特權指令,其基本功能是讓程式擁有“自願進管”的手段,從而引起訪
管中斷。
當處於使用者態的使用者程式使用訪管指令時,系統根據訪管指令的運算元執行訪管中斷處理程式,訪管中斷處理程式將按系統呼叫的
運算元和引數轉到相應的例行子程式。完成服務功能後,退出中斷,返回到使用者程式斷點繼續執行。
相關推薦
作業系統知識點總結(一)作業系統概述
《作業系統概述》 作業系統結構圖: (1)作業系統的基本概念:作業系統(Operating System, OS)是指控制和管理整個計算機系統的硬體和軟體資源,併合理地組織 排程計算機的工作和資源的分配,以提供給使用者和其他軟體方便的介面和環境的程式集合。 (
作業系統知識點總結(十三)共享檔案(硬連結和軟連結)
檔案共享使多個使用者(程序)共享同一份檔案,系統中只需保留該檔案的一份副本。如果系統不能提供共享功能,那麼每個需要該檔案的使用者都要有各自的副本,會造成對儲存空間的極大浪費。隨著計算機技術的發展,檔案共享的範圍已由單機系統發展到多機系統,進而通過網路擴充套件到全球。這些檔案的分享是通過分散式檔案
計算機作業系統知識點彙總(一)
1、計算機系統是一個複雜系統,其包括硬體資源(中央處理器、主儲存器、各種外圍裝置)和軟體資源(程式、資料)。 2、計算機系統的硬體主要是中央處理器(CPU)、儲存器、輸入輸出控制系統和各種輸入輸出裝置
作業系統知識點總結(四)
一)程序同步的基本概念:臨界資源、同步和互斥 在多道程式環境下,程序是併發執行的,不同程序之間存在著不同的相互制約關係。為了協調程序之間的相互制約關係,引入了程序同步的概念。 臨界資源 雖然多個程序可以共享系統中的各種資源,但其中許多資源一次只能為一個程序所使用,我們把
react native 知識點總結(一)
修改 ltp 組件 改變 set 覆蓋 sta 一個 個數 一、關於react native 版本的升級 參照文檔:http://reactnative.cn/docs/0.45/upgrading.html react-native -v
Mybatis核心知識點總結(一)
nfa 邏輯 efault Go 不常用 pojo code ive 圖片 一、初識Mybatis框架 mybatis是一個持久層的框架,是apache下的頂級項目。 mybatis托管到goolecode下,再後來托管到github下(https://github
Android知識點總結(一)
1、android:layout_weight 屬性的意義 1、權重的值指的是每個部件所佔剩餘空間的大小,該值與同級部件所佔空間大小有關。 2、例如,我們定義一個權重為 2 的 View,另一個 View 的權重是 1,那麼總數就是 3;這時第一個 View 佔據 2/3 的空間,第二個佔據
關於javaweb的“網上書店”專案知識點總結(一)
這是本人第一次寫部落格,主要記錄用java作專案的一些技術點,方便自己日後回憶。 本次java專案是傳智播客的“網上書店”專案,用的架構是 jsp + servlet +javabean,這個專案是本人的第一個專案。 以下是自己在做專案的過程中自己覺得需要注意的知識點: 一、request.
dubbo實用知識點總結(一)
1. dubbo基礎架構 架構 特性 服務提供者 服務消費者 配置可以用dubbo.properties來替換 2. 註解配置 提供方(注意:serivce註解是dubbo的service) 消費者 3. API 服務提供者 服務消費者
Hadoop知識點總結(一)
HADOOP hadoop的概念 Hadoop是一個由Apache基金會所開發的分散式系統基礎架構。使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。 它主要有以下幾個優點: 高可靠性:Hadoop按位儲存和處理
IOS 知識點總結(一)
###IOS執行緒講解 對於單核的處理器,可以把多個操作放到不同的執行緒,當用戶操作完UI之後其他後續任務在其他執行緒操作,當CPU空閒時繼續其他操作; 對於多核操作,操作任務可以分散到多個空閒的CPU中繼續執行; 一個核(CPU)可以有多個執行緒,但其實
[學習筆記]菜鳥教程Swift知識點總結(一)
目錄基本語法資料型別變數、常量可選型別字面量運算子 基本語法 Swift 的多行註釋可以巢狀在其他多行註釋內部。寫法是在一個多行註釋塊內插入另一個多行註釋。第二個註釋塊封閉時,後面仍然接著第一個註釋塊
Android之Activity系列總結(一)--Activity概述
本文內容建立 Activity實現使用者介面在清單檔案中宣告 Activity啟動 Activity啟動 Activity 以獲得結果結束 Activity管理 Activity 生命週期實現生命週期回撥儲存 Activity 狀態處理配置變更協調 Activity 是一個應用元件,使用者可與其提供的螢幕進行
Javascript知識點總結(一)
詞法結構 1、Javascript是一種區分大小的弱型別語言 2、識別符號和保留字 識別符號:變數的名字。規則:可由字母、數字、下劃線和$組成,數字不能開頭 關鍵字:Javascript語言中本身使用的名字 常見的有 var、i
Java SE基礎知識點總結(一)
沒辦法了,從頭學起。不過還是要告誡自己戒驕戒躁,沉住氣,一步一步來,打好地基才是蓋高樓最好的捷徑!又是一部長篇連載,遂分享出來,與君共享~ 編譯、執行java程式需要經過哪些主要步驟? 編寫原始碼
C/C++面試知識點總結(一)
目錄: 一、基礎知識 1.C/C++ 2.STL 6.資料庫 一、基礎知識 1.C/C++ (1).struct大小的確定 由於記憶體對齊的原則,在32位機器上,記憶體是4位元組對齊,也就是說,不
for迴圈知識點總結(一)
C++的for迴圈語句格式: for (initialization; test-expression; update-expression) body 1、關鍵字for與括號通常要有空格,函式名與括號之間通常省略空格。 2、迴圈步驟 1)設定初始值。C++中括號內初始化部
前端知識點總結(一)盒子模型你是怎麼理解的?
從今天開始打算陸陸續續寫一些前端方面的知識點總結,也方便自己鞏固和複習。如果有人能看見還幫助了你,那也是極好的hhhh。分析與解答:1.盒子模型有兩種,W3C的標盒模型和IE的怪異盒模型(1)W3C定義的標準盒模型包括margin、border、padding、content
Oracle 資料庫基礎知識點總結(一)
1.資料庫表的完整性 ①實體完整性:靠主鍵來維護,資料唯一且不能為空 ②參照完整性:靠外來鍵來維護,主鍵表無記錄外見表則無法操作資料 ③域完整性:check()約束 not null 約
【軟考篇】--軟考知識點總結(一)
軟考到現在準備工作也做的差不多了,在做選擇題的過程中,發現了一些自己的薄弱點,總是愛出錯的幾個點, 這裡稍微進行一下總結。 編譯程式和解釋程式 編譯程式