簡介
一、英語簡寫介紹
GUI :Graphical User Interface 圖形用戶界面
GPU :Graphics Processing Unit 圖形處理器
CTSS : Compatible Time Sharing System 兼容分時系統
PDA :Personal Digital Assistant 個人數字助理
PSW :Program Status Word 程式狀態字
RAM :Random Access Memory 隨機訪問存盤器
ROM :Read Only Memory 只讀存盤器
EEPROM :Electrically Erasable PROM 電可擦除可編程ROM
SSD :Solid State Disk 固態硬碟
MMU : Memory Management Unit 存盤器管理單元
AT :Advanced Technology IBM第二代個人計算機高級技術
ATA :AT Attachment 高級技術附件
SATA :Serial ATA 串行高級技術附件
BIOS :Basic Input Output System 基本輸入輸出系統
IC : 集成電路
二、基本組成
底層硬體hardware
系統程式system programs(如Windows的office系列)
應用程式app
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-iNuglKzL-1642306228676)(C:\Users\林頤\Desktop\筆記\圖片庫\QQ圖片20220110085439.png)]
大型機會有多用戶接入,(類似云平臺)
硬體簡介
硬體特點
多個程式同時運行,提高計算機執行效率,
但是為什么我感覺是沒有多執行緒呢?
就是比如在A程式CPU內運行很快、在REM里相對而言比較慢,會有時間空閑,于是把這個時間利用一下,執行其他的程式,A把資料從硬體讀入buffer需要時間,
**記憶體保護,**記憶體分配前,需要保護作業系統不受用戶行程的影響,同時保護用戶行程不受其他用戶行程的影響,通過釆用重定位暫存器和界地址暫存器來實作這種保護,重定位暫存器含最小的物理地址值,界地址暫存器含邏輯地址值,每個邏輯地址值必須小于界地址暫存器;記憶體管理機構動態地將邏輯地址與界地址暫存器進行比較,如果未發生地址越界,則加上重定位暫存器的值后映射成物理地址,再送交記憶體單元,每一個邏輯地址都需要與這兩個暫存器進行核對,以保證作業系統和其他用戶程式及資料不被該行程的運行所影響,
**定時,**在給定時間內未執行完就停止下來不執行了,
1. CPU—計算機的大腦
對于CPU的主要作業是:從記憶體中取出指令并執行,
在CPU內還有各種各樣的暫存器,如下圖,
| 暫存器 | 功能 |
|---|---|
| 通用暫存器 | 保存變數和臨時資料 |
| 程式計數器 | 保存將要取出的下一條指令的記憶體地址(指令后繼) |
| 堆疊指標 | 指向堆疊頂、堆疊包含每個執行程序的堆疊幀 |
| 程式狀態字 | 對于系統呼叫以及 I/O 比較重要 |
CPU的模式:
在PSW中有二進制控制這兩種模式,
- 內核態:CPU執行指令集中每一條指令,并使用硬體的每種功能,
- 用戶態:僅允許整個指令集中的一個子集和訪問所有功能的一個子集,有關 I/O 和記憶體保護的所有指令被禁止,
多執行緒:它允許CPU保持在兩個不同的執行緒狀態、然后在 ns(納秒)的時間尺度內來回切換,但是并不提供真正的并行處理,而是在一個時刻只有一個行程在運行(只是切換時間過于短暫、看起來就像是一起運行一樣),
2. 存盤器—存盤資料
| 存盤器 | 訪問時間 | 容量 | 特點 |
|---|---|---|---|
| 暫存器 | 1 ns | < 10 KB | 訪問無時延、計算速度快 |
| 高速快取 | 2 ns | 4 MB | 高速快取命中通常需要兩個時鐘周期 |
| 主存 | 10 ns | 1~8 GB | 主力,有很多種:RAM、ROM、EEPROM、閃存、CMOS |
| 磁盤 | 10 ms | 1~4 TB | 成本低、速度慢 |
SSD:固態硬碟并不是磁盤,其資料存盤在存盤器(閃存 Flash Memory)中,
**虛擬記憶體:**將程式放在磁盤上、將主存作為一種快取(用以保存最頻繁使用的部分程式)它需要快速地映像記憶體地址,以便把程式生存地地址轉換成有關位元組在RAM中地物理地址,這種映像由MMU的部件來完成,
3. I/O設備
一般包括兩個部分:
- 設備控制器:為OS提供一個簡單介面,
- 設備本身:自身有相對簡單的介面,
**設備驅動程式 device driver:**專門與控制器對話、發出命令并接收回應的軟體,
將設備驅動系統裝入OS途徑:
- 在OS檔案中設定一個入口、并通知該檔案需要一個設備驅動程式,然后重啟動系統,
- 將內核與設備驅動程式重新鏈接,然后重啟動系統,
- OS在運行時接受新的設備驅動程式并立即安裝好,無須重啟動系統,
4. 總線
總線的意思是什么呢?與CPU進行互動?還是傳輸資料捏?
在發明 PCIe(是陳舊的PCI總線的繼承者) 之前,大多數的總線都是并行且共享的,即共享總線架構:多個設備使用一些相同的導線傳輸資料,
對于 PCIe 使用分離的端到端的鏈路,傳統PCI使用的并行總線架構:表示通過多條導線發送資料的每一個字,但是PCIe使用串行總線架構,
USB用以連接所有慢速 I/O 設備以及計算機,
計算機啟動程序—BIOS
在雙親板上有BIOS程式,而BIOS底層有底層的 I/O 軟體(←讀鍵盤、寫螢屏、進行磁盤 I/O 等等)
BIOS存放在閃速RAM中、非易失、在發現BIOS有錯時通過OS對它進行更新,
====計算機啟動!BIOS運行,
- 首先檢查所安裝的RAM數量、鍵盤以及其他基本設備是否已經安裝并正常回應,
- 掃描PCIe以及PCI總線并找出連在上面的所有設備,(包括即插即用設備)
- 嘗試存盤在CMOS存盤器中的設備清單確定啟動設備,
- 用戶可以在系統剛啟動之后進入BIOS配置程式對設備清單進行修改,
- 若存在CD-ROM(or USB)系統從中啟動;如果失敗,從硬碟啟動,
- 啟動設備上第一個扇區被讀入記憶體并執行,
- OS詢問BIOS以獲得配置資訊,檢查對于設備驅動程式是否存在,
- 有了全部的設備驅動程式,OS將它們調入內核,
- 初始化有關表格,創建需要的任何背景行程,并在每個終端上啟動登錄程式或GUI,
三、什么是作業系統(OS)?
作業系統是指控制和管理整個計算機系統的軟體和硬體資源,并合理地組織調度計算機的作業和資源的分配,
以提供給用戶和其他軟體方便的介面和環境,是計算機系統中最基本的系統軟體,
是一個程式,有兩個方面的功能:硬體擴充、資源管理,(Kernel:內核,對于OS的管理,)
1.硬體擴充—管理復雜性(抽象)
隱藏硬體細節:不需要太過了解底層磁盤什么的互動,
虛擬機硬體擴充
2.資源管理—實作多路復用(程式向作業系統申請記憶體、使用完畢歸還給作業系統)
時間復用:不同的程式或用戶輪流使用,
空間復用:分割記憶體、使盡可能多的運行程式可以同時入駐記憶體,
主要任務
在相互競爭的程式之間有序地控制對處理器、存盤器、以及其他 I/O 介面設備的分備,
記錄哪個程式在使用什么資源、對資源請求進行分配,評估使用代價,并為不同的程式和用戶調解互相沖突的資源請求,
一些重要的概念
1.行程
? 本質上是正在執行的程式,一個掛起的行程包括行程的地址空間以及對應的行程表項,
地址空間:從某個最小值的存盤位置(通常是0)到某個最大值的存盤位置的串列,
該地址空間中存放著可執行程式、程式的資料以及程式的堆疊,在該地址空間中,行程可以讀寫,
行程表:在許多OS中,與一個行程有關的所有資訊(除該行程自身地址空間的內容以外)均存放在OS的一張表中,
行程表是陣列(或鏈表)結構,當前存在的每個行程都要占用其中的一項,
子行程:一個行程可以創建一個或多個行程,而這些行程又可以創建子行程(←行程樹)
行程與執行緒的區別?
警告信號:該信號會引起行程的暫時掛起,無論該行程正在做什么,系統將其暫存器的值保存在堆疊,并開始運行一個特別的信號處理程序,(比如重新發送可能丟失的資訊)
UID (user identification):每個被啟動的行程都有一個啟動該行程的用戶ID,子行程與父行程的ID一樣,
值得一提的是:admin(管理員、超級用戶)具有特殊的權力、可以違背一些保護規則,
2.地址空間
? 主要來講解一下虛擬記憶體:部分地址空間裝入主存、部分留在磁盤上,在需要時來回交換它們,
需求:行程的地址空間比主存還大,
本質上:OS創建一個地址空間的抽象,作為行程可以參考地址的集合,
3.檔案系統
大多OS支持目錄的概念,把檔案分類成組,
行程和檔案層次都可以組成樹狀結構,但是二者存在一些不同,
目錄層結構中地每一個檔案都可以通過目錄的頂部(根目錄)開始的路徑來確定,在實體中,每一個行程下都有一個作業目錄,==對于沒有以斜線開頭給出的絕對地址的路徑,將在這個作業目錄下尋找,==行程可以通過使用系統呼叫指定新的作業目錄,從而變更作業目錄,
在讀寫檔案之前,首先需要打開檔案,檢查其訪問權限:
①若權限許可,系統將回傳一個小整數(檔案描述符)
②禁止訪問:系統回傳一個錯誤碼,
對于UNIX系統重要的概念:
(1)安裝檔案系統
大多數臺式機都有一個或多個光碟驅動器,可以插入CD-ROM、DVD、藍光光碟,
UNIX允許把光碟上的檔案系統接到主檔案樹上,
但是對于CD-ROM上的檔案系統,把其連接到程式所希望的根檔案系統上,
(2)特殊檔案
提供特殊檔案是為了使 I/O 設備看起來像檔案一樣,使得 I/O 設備也可以通過同樣的系統呼叫進行讀寫,
有兩類特殊檔案:塊特殊檔案和字符特殊檔案
塊特殊檔案:指那些可隨機存取的塊組成的設備
字符特殊檔案:用于列印機、調制解調器和其他接識訓輸出字符流的設備,
(3)管道
管道是一種虛檔案,可以連接兩個行程,如果需要這兩個行程可以通過管道對話,那么必須提前設定該管道,
4.輸入/輸出:每個OS都有管理其 I/O 設備的 I/O 子系統,某些 I/O 軟體是設備獨立的(可以同樣應用于許多或全部的 I/O 設備上)
5.保護:在計算機中具有大量的資訊,用戶希望可以對其進行保護并保守秘密,管理系統的安全性完全依靠OS,
6.shell:命令解釋器,shell本身不是OS的一部分,體現許多OS的特性,并很好地說明了系統呼叫的具體用法,
系統呼叫(程式介面)
命令介面:允許用戶直接使用,分為聯機命令介面(一句)和脫機命令介面(一堆)
程式介面:允許用戶通程序式間接使用,(即由一組系統呼叫組成)
GUI:圖形用戶介面,
**系統呼叫:**是OS提供給應用程式(程式員)使用的介面,是一種可供呼叫的特殊函式,應用程式可以發出系統呼叫請求來獲得OS的服務,
由于應用程式通過系統呼叫來請求OS的服務,系統中各種共享資源都是由OS掌握,因此在應用程式中,凡是與資源有關的操作(存盤分配、I/O 操作、檔案管理等),都必須通過系統呼叫的方式向OS提出服務請求,由OS代為完成,這樣可以保證系統的穩定性以及安全性,防止用戶非法操作,
傳遞系統呼叫引數→執行陷入指令(用戶態)→執行系統呼叫相應服務程式(核心態)→回傳用戶程式
注意:
-
陷入指令在用戶態執行,但是執行完陷入指令后會立即引發一個內中斷,從而CPU接入核心態,
-
發出系統呼叫請求在用戶態,而對系統呼叫的相應處理在核心態下進行,
-
陷入指令是唯一一個只能在用戶態執行,而不可在核心態執行的指令,
分類:(需要在核心態下完成)
- 設備管理:完成設備的請求/釋放/啟動等功能,
- 檔案管理:完成檔案的讀寫/創建/洗掉等功能,
- 行程控制:完成行程的創建/撤銷/阻塞/喚醒等功能,
- 行程通信:完成行程之間的訊息傳遞/信號傳遞等功能,
- 記憶體管理:完成記憶體的分配/回收等功能,
四、作業系統的特征
并發和共享是OS中最基本的兩個特征,
1.并發 (Multiprogramming)
宏觀上:(大的時間跨度上講)一起執行
微觀上:(一個個指令上)一個個執行
微觀串行,宏觀并行
區分并行:指兩個或多個時間在同一時刻同時發生
2.共享
即資源共享,指系統中的資源可供記憶體中多個并發執行的行程共同使用,
分為兩種:
-
互斥共享:一個時間段內僅允許一個行程訪問該資源,
-
同時共享:允許一個時間段內由多個行程“同時”對它們進行訪問,(宏觀上同時)
3.虛擬
虛擬指的是一個物理物體變為若干個邏輯上的對應物,物理物體是實際存在的,邏輯上對應物是用戶感受到的,
采用了“空分復用技術”以及“時分復用技術”,
4.異步
指多道程式環境下,允許多個程式并發執行,但是由于資源有限,行程的執行不是一貫到底的,而是走走停停,
五、OS的種類
1. 大型機OS
大型機與PC的區別是其 I/O 處理能力,用于大型機的OS主要面向多個作業的同時作業,多數這樣的作業需要巨大的 I/O 處理能力,系統主要提供三種服務:批處理、事務處理和分時,
2. 服務器OS
服務器OS在服務器上運行,它們通過網路同時為若干分用戶服務,并允許用戶共享硬體和軟體資源,(服務器可以是大型的PC、作業站、甚至是大型機)
3.多處理器OS
獲取大量聯合計算能力的常用方式是將多個CPU連接成單個的系統,根據連接和共享的方式不同,這些系統被成為:并行計算機、多計算機或多處理器,它們通常采用的OS是配有通信、連接和一致性等專門功能的服務器OS的變體,
4.個人計算機OS
特點是:為單個用戶提供良好的支持,廣泛用于字處理、電子表格、游戲和Internet訪問,
5.掌上計算機OS
PDA,如IPad或智能手機,主導的是Android和IOS系統,
6.嵌入式OS
在用來控制設備的計算機中運行,這種計算機并不是一般意義上的計算機,且不允許用戶安裝軟體,
特點是:不可信的軟體不能在嵌入式系統上運行,
7.傳感器節點OS
有許多用途需要配置微小傳感器節點網路,這些節點是一種可以彼此通信且可以使用無線通信基站的微型計算機,可用于建筑物周邊保護、國土邊界保護、森林火災探測、氣象預測等等,
每個傳感器節點是一個配有CPU、RAM、ROM以及一個或多個環境傳感器的計算機,該OS小而簡單、設計簡化,
實時OS(Real-Time System)
分時OS-省時互動-同時共享:
-
對于CPU的不斷復用
-
對于加載卸載memory
-
人機在線互動
-
在線的及時的處理資料和代碼
但是對于所有的用戶都是完全公平的,不能優先處理緊急任務,
實時OS:緊急任務不需時間片排隊,
- 要在嚴格的時限內處理完事件,
- 主要特點是:及時性以及可靠性,
實時OS又分為:硬實時OS(嚴格不準違反時間規定)以及軟實時OS(偶爾違反)
9.智能卡OS(Smart-Card)
智能卡是一種包含一塊CPU芯片的信用卡,它有非常嚴格的運行能耗和存盤空間的限制,其中,有些智能卡只具有單項功能;有些具有多項功能,它們會有專門的智能卡OS,
六、OS運行機制及體系結構
指令:不同于我們利用高級語言撰寫的程式,指令是機器語言利用二進制撰寫的指令,是CPU能夠識別的、最基本命令,
指令分為:特權指令(不允許用戶程式使用)及非特權指令,
當CPU位于用戶態時只能執行非特權指令,位于核心態則均可執行,
OS中哪些功能需要在內核態下使用呢?
時鐘管理、中斷處理、原語(設備驅動、CPU切換)以及行程管理、存盤器管理、設備管理等功能,
體系結構
-
大內核:將OS的主要功能模塊都作為系統內核、運行在核心態,高性能但是內核代碼龐大難以維護,
-
微內核:只保留了最基本的功能,內核功能少、結構清晰、方便維護,但是需要頻繁的切換于核心態與用戶態之間,性能低,
單體系統
在大多數常見的組織中,整個OS在內核態中以單一程式的方式運行,整個OS以程序集合的方式撰寫,鏈接成一個大型可執行的二進制程式,對于這種技術,系統中每個程序都可以自由呼叫其他程序,只要后者提供了前者所需要的一些有用的計算作業,呼叫任何一個你所需要的程序或許會非常高效,但是上千個可以不受限制彼此呼叫的程序常常導致系統笨拙且難以理解,任何一個程序的崩潰都會連累整個系統,
對于單體系統,有如下的結構:
- 主程式:處理服務程序請求,
- 服務程序:執行系統呼叫,
- 實用程序:輔助服務程序,
除了計算機初啟時所安裝的核心OS系統外,許多OS支持可裝載的擴展(I/O 設備和檔案系統什么的)如UNIX中的共享庫、Window中的元件,

層次式系統
把上圖的單體系統結構模型進一步通用化,就變成了一個層次結構的OS,它的上層軟體都是在下一層軟體的基礎之上構建的,
虛擬機
虛擬記憶體:通過RAM和磁盤中反復移動資訊塊的方式,提供了運行比機器物理記憶體大的能力,
虛擬記憶體還可使程式可以在運行時動態地鏈接庫,而不是必須在編譯時鏈接,
VM/370的核心稱為虛擬機監控程式,它在裸機上運行且具備了多道程式功能,該系統向上層提供了若干臺虛擬機,
該虛擬機僅是裸機硬體的精確復制品,包含了內核態/用戶態、I/O 功能、中斷及其他真實硬體所應該具有全部內容,
由于每臺虛擬機都與裸機相同、所以在虛擬機上都可以運行一臺裸機所能夠運行的任何型別的作業系統,不同的虛擬機可以運行不同的OS,在早期的VM/370系統上,有一些系統運行OS/360或者其他大型批處理或事物處理OS,而另一些虛擬機運行單用戶、互動式系統供分時用戶使用,這個系統稱為會話監控系統,
外核:與虛擬機不同,其對機器進行磁區,給每個用戶整個資源的一個子集,外核的程式會在內核態運行,它的任務是為虛擬機分配資源,并檢查使用這些資源的企圖,以確保沒有機器會使用他人的資源,
外核機智的優點是:減少了映像層,外核只需要記錄已經分配給各個虛擬機的有關資源即可,它可以將多道程式(外核內)與用戶作業系統代碼(用戶空間內)加以分離,而相應的負載并不重(保持虛擬機彼此不發生沖突)
七、中斷
中斷機制的產生
? 早期計算機內程式串行執行,系統資源利用率極低,因此為了提高系統資源利用率,引入了中斷機制,實作了多道程式并發執行,
本質:發生中斷意味著需要OS介入來開展管理作業,
當中斷發生后,CPU會立即進入核心態,(使用特權指令)當前運行行程暫停運行,由OS介入對中斷進行處理,對于不同的中斷信號,OS擁有不同的處理方式,、
用戶態與核心態的切換如何實作?
1.對于用戶態→核心態:通過中斷實作,且是唯一途徑,
2.對于核心態→用戶態:將PSW標志位設定為用戶態,
中斷分類:
-
內中斷(例外、例外、陷入)信號來源于CPU內部,與當前指令的執行有關,
又分為自愿中斷(指令中斷)及強迫中斷(分為硬體故障或軟體中斷)
-
外中斷:信號來源于CPU外部,與當前指令的執行無關,
外設請求以及人工干預,
對于內中斷分類:陷阱(trap)、故障(fault)、終止(abort)
對于外中斷的處理程序:
- 每條指令執行結束后,CPU都需要檢查是否有外部中斷信號
- 若有外部中斷信號,則需要保護被中斷行程的CPU環境(存檔)
- 根據中斷信號,轉入相應的中斷處理程式
- 恢復原行程的CPU環境并退出中斷,回傳原行程繼續往下執行
八、歷史
介紹一些相關的東西,(才不是正經的歷史啊喂)
手工操作哦階段–單道批處理–多道批處理–
1.批處理(Batch System)
早期的批處理の目的:減少機時,避免浪費,
- 在輸入室收集全部的作業,
- 使用相對便宜的計算機(適合讀卡片、復制磁帶、輸出列印)讀到磁帶上,
- 使用適合計算且比較昂貴的計算機完成計算,
- 那個相對便宜的計算機(脫機)列印輸出,
在大型機OS中,批處理系統處理不需要互動式用戶干預的周期性作業,
2.X86
X86代表的是所有使用指令集體系結構家族的現代處理器,源頭追溯至20世紀70年代8086芯片,
【詳細介紹請追更,并且向鴿子精博主發送點贊光波】
七、小結
作業系統的功能、概念:
作業系統是指控制和管理整個計算機=系統的軟體和硬體資源,并合理地組織調度計算機的作業和資源的分配,
以提供給用戶和其他軟體方便的介面和環境,是計算機系統中最基本的系統軟體,
是一個程式,有兩個方面的功能:硬體擴充、資源管理,]
掌握一些硬體知識:
自我感覺重點是存盤器、有關快取那些事兒,如果不是當我沒說捏,
行程繼續往下執行
八、歷史
介紹一些相關的東西,(才不是正經的歷史啊喂)
手工操作哦階段–單道批處理–多道批處理–
1.批處理(Batch System)
早期的批處理の目的:減少機時,避免浪費,
- 在輸入室收集全部的作業,
- 使用相對便宜的計算機(適合讀卡片、復制磁帶、輸出列印)讀到磁帶上,
- 使用適合計算且比較昂貴的計算機完成計算,
- 那個相對便宜的計算機(脫機)列印輸出,
在大型機OS中,批處理系統處理不需要互動式用戶干預的周期性作業,
2.X86
X86代表的是所有使用指令集體系結構家族的現代處理器,源頭追溯至20世紀70年代8086芯片,
【詳細介紹請追更,并且向鴿子精博主發送點贊光波】
七、小結
作業系統的功能、概念:
作業系統是指控制和管理整個計算機=系統的軟體和硬體資源,并合理地組織調度計算機的作業和資源的分配,
以提供給用戶和其他軟體方便的介面和環境,是計算機系統中最基本的系統軟體,
是一個程式,有兩個方面的功能:硬體擴充、資源管理,]
掌握一些硬體知識:
自我感覺重點是存盤器、有關快取那些事兒,如果不是當我沒說捏,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413668.html
標籤:其他
