二級公共基礎知識--計算機系統

贊同,喜歡,關註可以交換PDF,MD的文件哦~

有問題歡迎指正!


1.1 計算機概述

1.1.1計算機的發展歷程

目前公認的第一臺電子數字計算機是 ENIAC(Electronic Numerical Integrator And Computer)。

(ENIAC的計算速度是每秒5000次加法或300多次乘法。(不重要))

根據計算機本身采用的物理器件不同,將其發展分為4個階段。

階段 時間
電子管計算機時代 1946年到20世紀50年代後期
晶體管計算機時代 20世紀50年代後期到20世紀60年代中期
中小規模集成電路計算機時代 20世紀60年代中期到20世紀70年代初期
大規模和超大規模集成電路計算機時代 20世紀70年代初期至今

1.1.2計算機體系結構

ENIAC 的後繼優化。

以美籍匈牙利數學傢馮·諾依曼(John von Neumann)為首的研制小組於1946年提出瞭“存儲程序控制”的思想,並開始研制存儲程序控制的計算機EDVAC(Electronic Discrete Variable Automatic Computer)。

1951年,EDVAC問世。

EDVAC的主要特點如下。

  • 在計算機內部,程序和數據采用二進制數表示。
  • 程序和數據存放在存儲器中,即采用程序存儲的概念。計算機執行程序時,無須人工幹預,能自動、連續地執行程序,並得到預期的結果。
  • 計算機硬件由運算器、控制器、存儲器、輸入設備及輸出設備5大基本部件組成。

直到今天,計算機基本結構的設計仍采用馮·諾依曼提出的思想和原理,人們把符合這種設計的計算機稱為“馮·諾依曼機”。馮·諾依曼也被譽為“現代電子計算機之父”。

1.1.3計算機系統的組成

計算機系統由硬件系統和軟件系統兩大部分組成,如圖所示

vXo35T.png

硬件系統是由借助電、磁、光、機械等原理構成的各種物理部件的有機組合,是計算機系統賴以工作的實體。硬件系統也被稱為裸機,裸機隻能識別由0和1組成的機器代碼。

軟件系統是為運行、管理及維護計算機而編制的各種程序、數據及文檔的總稱。軟件是計算機的核心,沒有軟件的計算機毫無實用意義。軟件是用戶與硬件之間的接口,用戶可以通過軟件使用計算機硬件上的數據信息資源。

1.2 計算機硬件系統

計算機硬件系統主要包含中央處理器、存儲器、其他外部設備。它們之間通過總線連接在一起。

(存儲器包括,主存儲器,高速緩沖存儲器及輔助存儲器)

1.2.1 中央處理器(Central Processing Unit,CPU)

計算機的運算和控制核心,“大腦”。

功能:主要是解釋計算機指令和處理軟件中的數據。

CPU 主要包括運算器和控制器兩個部件。它們都包含寄存器,並通過總線連接起來。

  • 運算器負責對數據進行加工處理(對數據進行算術運算和邏輯運算)。
  • 控制器負責對程序所規定的指令進行分析,控制並協調輸入、輸出操作或對主存儲器的訪問。
  • 寄存器是高速存儲區域,用來暫時存放參與運算的結果。

CPU 主要技術性能指標: 字長、主頻、運算速度。

  • 字長:CPU 一次能處理的二進制數據的位數。(其餘條件不變的情況下,字節越長,CPU 處理速度越快。)
  • 主頻:CPU 的時鐘頻率,計算機的操作在時鐘信號的控制下分步執行,每個時鐘信號周期完成一步操作。主頻越高,CPU的運算速度就越高。
  • 運算速度:CPU每秒鐘所能執行的加法指令數目,常用百萬次/秒(Million Instructions Per Second,MIPS)來表示。這個指標能更直觀地反映計算機的運算速度。

1.2.2 存儲器

存儲器是存儲程序和數據的部件,它可以自動完成程序或數據的存取。

(1)存儲器的分類。

  • 按存儲介質分類:半導體存儲器、磁表面存儲器、磁芯存儲器、光盤存儲器等。
  • 按存取方式分類:隨機存儲器(Random Access Memory,RAM)、隻讀存儲器 (Read Only Memory,ROM)、串行訪問存儲器、直接存取存儲器等。
  • 按在計算機中的作用分類:主存儲器(又稱內存)、高速緩沖存儲器(Cache)、輔助存儲器(又稱外存)等。

(2)主存儲器。

存儲器中最重要的是主存儲器,它一般采用半導體存儲器,包括RAM和ROM兩種。

①RAM。

RAM具有可讀寫性,即信息可讀、可寫,當寫入時,原來存儲的數據被擦除;具有易失性,即斷電後數據會消失,且無法恢復。RAM又分為靜態RAM和動態RAM。

  • 靜態RAM(Static RAM,SRAM)的特點是集成度低,價格高,存儲速度快,不需要刷新。
  • 動態RAM(Dynamic RAM,DRAM)的特點是集成度高,價格低,存儲速度慢,需要刷新。

DRAM目前被各類計算機廣泛使用,內存條采用的就是DRAM。

②ROM。

ROM中信息隻能讀出不能寫入,ROM具有內容永久性,斷電後信息不會丟失。

(3)高速緩沖存儲器(緩存 cache)

高速緩沖存儲器是介於CPU和內存之間的一種小容量、可高速存取信息的芯片,用於解決它們之間速度不匹配的問題。高速緩沖存儲器一般用速度高的SRAM元件組成,其速度與CPU相當,但價格較高。

(4)輔助存儲器。

輔助存儲器的容量一般都比較大,而且大部分可以移動,便於不同計算機之間進行信息交流。輔助存儲器中數據被讀入內存後,才能被CPU讀取,CPU不能直接訪問輔助存儲器。

( 速度:CPU > cache > 內存 > 硬盤 > U盤 > 光盤 ·······)

存儲器主要有3個性能指標:速度、容量和每位(bit)價格。一般來說,速度越快,價格越高;容量越大,位價格越低,容量越大,速度越慢。

1.2.3 外部設備

(1)外部設備的分類。

計算機中CPU和主存儲器構成主機。

除主機以外,圍繞著主機設置的各種硬件裝置稱為外部設備(外設)。

外設的種類很多,應用比較廣泛的有輸入/輸出(Input/Output,I/O)設備、輔助存儲器及終端設備。

(2)硬盤。

硬盤是計算機主要的外部存儲設備。

優點:容量大、存取速度快等。

硬盤的分類

根據磁頭是否可移動,硬盤可以分為固定磁頭硬盤和活動磁頭硬盤兩類。

磁頭和磁臂是硬盤的重要組成部分,磁頭安裝在磁臂上,負責讀/寫各磁道上的數據。

固定磁頭硬盤中,每個磁道對應一個磁頭。工作時,磁頭無徑向移動,其特點是存取速度快,省去瞭磁頭尋找磁道的時間,但造價比較高。

活動磁頭硬盤中,每個盤面隻有一個磁頭,在存取數據時,磁頭在盤面上做徑向移動。由於增加瞭“尋道”時間,其存取速度比固定磁頭硬盤要慢。目前常用的硬盤都是活動磁頭的。

②硬盤的信息分佈。

  • 記錄面。硬盤通常由重疊的一組盤片構成,每個盤片的兩面都可用作記錄面,每個記錄面對應一個磁頭,所以記錄面號就是磁頭號。
  • 磁道。當盤片旋轉時,磁頭若保持在一個位置上,則每個磁頭都會在記錄面上劃出一個圓形軌跡,這些圓形軌跡就是磁道。一條條磁道形成一組同心圓,最外圈的磁道為0號,往內則磁道號逐步增加。
  • 圓柱面。在一個硬盤中,各記錄面上相同編號的磁道構成一個圓柱面。例如,某硬盤有8片(16面),則16個0號磁道構成0號圓柱面,16個1號磁道構成1號圓柱面……硬盤的圓柱面數就等於一個記錄面上的磁道數,圓柱面號就對應磁道號。
  • 扇區。通常將一個磁道劃分為若幹弧段,每個弧段稱為一個扇區或扇段,扇區從1開始編號。

因此,硬盤尋址用的磁盤地址應該由硬盤號(一臺計算機可能有多個硬盤)、記錄面(磁頭)號、圓柱面(磁道)號、扇區號等字段組成。

磁盤存儲器的主要性能指標包括存儲密度、存儲容量、平均存取時間及數據傳輸率等。

(3)I/O接口。

I/O接口(I/O控制器)用於主機和外設之間的通信,通過接口可實現主機和外設之間的信息交換。

①I/O接口的功能。

  • 實現主機和外設的通信聯絡控制。
  • 進行地址譯碼和設備選擇。
  • 實現數據緩沖以匹配速度。
  • 信號格式的轉換(如電平轉換、並/串或串/並轉換、模/數或數/模轉換等)。
  • 傳輸控制命令和狀態信息。

②I/O方式。

I/O方式包括程序查詢方式、程序中斷方式、直接存儲器存取(Direct Memory Access,DMA)方式及I/O通道控制方式等。

  • 程序查詢方式:

一旦某一外設被選中並啟動,主機將查詢這個外設的某些狀態位,看其是否準備就緒,若未準備就緒,主機將再次查詢;若外設已準備就緒,則執行一次I/O操作。這種方式控制簡單,但系統效率低。

  • 程序中斷方式:

在主機啟動外設後,無須等待查詢,繼續執行原來的程序。外設在做好輸入/輸出準備時,向主機發送中斷請求,主機接到請求後就暫時中止原來執行的程序,轉去執行中斷服務程序對外部請求進行處理,在中斷處理完畢後返回原來的程序繼續執行。

  • DMA方式:

在內存和外設之間開辟直接的數據通道,可以進行基本上不需要CPU介入的內存和外設之間的信息傳輸,這樣不僅保證瞭CPU的高效率,也能滿足高速外設的需要。

  • I/O 通道控制方式:

是DMA方式的進一步發展,在系統中設有通道控制部件,每個通道有若幹外設。主機執行I/O指令啟動有關通道,通道執行通道程序,完成輸入輸出操作。通道是一種獨立於CPU的專門管理I/O的處理機制,它控制設備與內存直接進行數據交換。通道有自己的通道指令,通道指令由CPU啟動,並在操作結束時向CPU發出中斷信號。

1.2.4 總線

定義:總線是一組能被多個部件分時共享的公共信息傳輸線路。

註:分時是指同一時刻總線上隻能傳輸一個部件發送的信息;共享是指總線上可以掛接多個部件,各個部件之間相互交換的信息都可以通過這組公共線路傳輸。

(1)總線的分類。

總線按功能層次可以分為3類。

  • 片內總線:指芯片內部的總線,如在CPU芯片內部寄存器與寄存器之間、寄存器與算術邏輯單元(Arithmetic and Logic Unit,ALU)之間都由片內總線連接。
  • 系統總線:指計算機硬件系統內各功能部件(CPU、內存、I/O接口)之間相互連接的總線,也稱內部總線。系統總線按傳輸的信息不同,又分為數據總線(雙向傳輸)、地址總線(單向傳輸)及控制總線(部分“出”、部分“入”)。
  • 通信總線:用於計算機之間或計算機與其他設備(遠程通信設備、測試設備)之間信息傳輸的總線,也稱外部總線。依據總線的不同傳輸方式又分為串行通信總線和並行通信總線。

(2)總線的基本結構。

從系統總線的角度出發,總線的基本結構如下。

  • 單總線結構:隻有一條系統總線,CPU、內存、I/O設備都掛在該總線上,允許I/O設備之間、I/O設備與CPU之間或I/O設備與內存之間直接交換信息。
  • 雙總線結構:將低速I/O設備從單總線上分離出來,實現瞭內存總線與I/O總線分離。
  • 三總線結構:各部件之間采用3條各自獨立的總線來構成信息通道。

內存總線用於CPU和內存之間傳輸地址、數據及控制信息;

I/O總線用於CPU和外設之間通信;

直接內存訪問總線用於內存和高速外設之間直接傳輸數據。

(3)總線的性能指標。

  • 總線周期:

定義:一次總線操作(包括申請階段、尋址階段、傳輸階段及結束階段)所需的時間簡稱總線周期。

總線周期通常由若幹總線時鐘周期構成。

  • 總線時鐘周期:即計算機的時鐘周期。
  • 總線的工作頻率:總線上各種操作的頻率,為總線周期的倒數。若總線周期=N×時鐘周期,則總線的工作頻率=時鐘頻率/N。
  • 總線寬度:通常指數據總線的根數,用位表示,如32根稱為32位總線。
  • 總線帶寬:總線的數據傳輸率,即單位時間內總線上傳輸數據的位數,通常用每秒傳輸信息的字節數來衡量,單位可用兆字節每秒(MB/s)表示。

例如,總線工作頻率為33MHz,總線寬度為32位(4B),則總線帶寬為33×(32÷8)=132MB/s。

  • 時鐘同步/異步:數據與時鐘同步工作的總線稱為同步總線,數據與時鐘不同步工作的總線稱為異步總線。
  • 總線復用:一種總線在不同的時間傳輸不同的信息。
  • 信號線數:地址總線、數據總線及控制總線3種總線數的總和。

(4)總線仲裁。

為瞭保證同一時刻隻有一個申請者使用總線,總線控制機構中有總線判優和仲裁控制邏輯,即按照一定的優先次序來決定哪個部件首先使用總線,隻有獲得總線使用權的部件才能開始數據傳輸。總線判優按其仲裁控制機構的設置可分為兩種。

  • 集中式控制:總線控制邏輯基本上集中於一個設備(如CPU)中。將所有的總線請求集中起來,利用一個特定的裁決算法進行裁決。
  • 分佈式控制:不需要中央仲裁器,即總線控制邏輯分散在連接於總線上的各個部件或設備中。

(5)總線操作。

在總線上的操作主要有讀和寫、塊傳輸、寫後讀或讀後寫、廣播和廣集等。

(6)總線標準。

總線標準是國際上公佈或推薦的連接各個模塊的標準,是把各種不同的模塊組成計算機系統時必須遵守的規范。

常見的系統總線標準
工業標準體系結構(Industry Standard Architecture,ISA)
擴展的ISA(Extended Industry Standard Architecture,EISA)
視頻電子標準協會(Video Electronics Standards Association,VESA)
外部設備互連(Peripheral Component Interconnect,PCI)
加速圖形接口(Accelerated Graphics Port,AGP)
常見的外部總線標準
集成設備電路(Integrated Drive Electronics,IDE)
小型計算機系統接口(Small Computer System Interface,SCSI)
美國電子工業協會推行的串行通信總線標準(Recommended standard-232C,RS-232C)
通用串行總線(Universal Serial Bus,USB)

1.2.5計算機的工作原理

計算機在執行程序時,須將要執行的相關程序和數據先放入內存中,在執行時CPU根據當前程序指針寄存器的內容取出指令並執行,然後再取出下一條指令並執行,如此循環直到程序結束時才停止執行。

其工作過程就是不斷地取指令和執行指令,最後將計算的結果放入指令指定的存儲器地址中。

計算機工作的本質:取指令、分析指令和執行指令。

(1)計算機指令格式。

定義:指令,是指計算機完成某個基本操作的命令。

指令能被計算機硬件理解並執行。一條計算機指令是用一串二進制代碼表示的,它通常包括兩方面的信息:操作碼和操作數(地址碼),如下圖所示。

33fdbee75bfed6a823592944f58c9d37vXo6Re.png

操作碼指明指令所要完成操作的性質和功能,即指出進行什麼操作。

操作碼也是二進制代碼。對於一種類型的計算機來說,各種指令的操作碼互不相同,分別表示不同的操作。

因此,指令中操作碼的二進制位數決定瞭該類型計算機最多能具有的指令條數。

操作數指明操作碼執行的操作對象。

操作數可以是數據本身,也可以是存放數據的內存單元地址或寄存器名稱。

根據指令中操作數的性質,操作數又可以分為源操作數和目的操作數兩類。例如,減法指令中減數和被減數為源操作數,它們的差為目的操作數。

如果指令中的操作碼和操作數共占n個字節,則稱該指令為n字節指令。

(2)計算機指令的尋址方式。

定義:指找到當前正在執行指令的數據地址和下一條將要執行指令的地址的方法。

尋址方式被分為兩大類:

  • 指令尋址:找到下一條將要執行指令的地址
    • 順序尋址
  • 跳躍尋址
  • 數據尋址:找到當前正在執行指令的數據地址。
  • 立即尋址、直接尋址、隱含尋址、間接尋址、寄存器尋址、寄存器間接尋址、基址尋址、變址尋址、相對尋址及堆棧尋址等。

(3)計算機指令系統。

定義:一臺計算機所能執行的全部指令的集合。

無論哪種類型的計算機,指令系統都應該具有以下功能指令。

  • 數據傳輸類指令:用來實現數據在內存和CPU之間的傳輸。
  • 運算類指令:用來進行數據的運算。
  • 程序控制類指令:用來控制程序中指令的執行順序。
  • 輸入/輸出指令:用來實現外設與主機之間的數據傳輸。
  • 處理器控制和調試指令:用來實現計算機的硬件管理等。

(4)指令的執行過程。

指令的執行過程可分為取指令、分析指令和執行指令3個步驟。

  • 取指令:按照程序規定的次序,從內存取出當前執行的指令,並送到控制器的指令寄存器中。
  • 分析指令:對所取的指令進行分析,即根據指令中的操作碼確定計算機應進行什麼操作。由指令中的地址碼確定操作碼存放的地址。
  • 執行指令:根據指令分析結果,由控制器發出完成操作所需的一系列控制電位,以便指揮計算機有關部件完成這一操作,同時,為取下一條指令作好準備。

一般把計算機完成一條指令所花費的時間稱為一個指令周期。指令周期越短,指令執行就越快。

1.3 數據的內部表示

1.3.1 介紹瞭二進制,高中知識

1.3.2 介紹瞭進制轉換,高中知識

1.3.3無符號數和帶符號數

在計算機中,采用數字化方式來表示數據,數據有無符號數和帶符號數之分。

(1)無符號數

定義:指整個機器字長的全部二進制位均表示數值位(沒有符號位),相當於數的絕對值。

字長為 n 的無符號數的表示范圍為 0 ~ 2^n-1。若機器字長為8位,則數的表示范圍為0 ~ 2^8-1,即0 ~ 255

(2)帶符號數

日常生活中,把帶有“+”或“-”符號的數稱為真值。在機器中,數的“+”“-”是無法識別的,因此需要把符號數字化。通常,約定二進制數的最高位為符號位,0表示正號,1表示負號。

這種把符號數字化的數稱為機器數。

常見的機器數有原碼、反碼、補碼及移碼等不同的表示形式。

  • 原碼。原碼是機器數中最簡單的一種表示形式,符號位為0表示正數,符號位為1表示負數,數值位即真值的絕對值。用原碼實現乘除運算的規則很簡單,但實現加減運算的規則很復雜。
  • 反碼。正數的反碼與原碼相同;負數的反碼是對該數的原碼除符號位外的各位取反。
  • 補碼。正數的補碼與原碼相同;負數的補碼是在該數的反碼的最低位(即最右邊一位)加1。
  • 移碼。一個真值的移碼和補碼隻差一個符號位,若將補碼的符號位由0改為1,或由1改為0,即可得該真值的移碼。

1.3.4機器數的定點表示和浮點表示

根據小數點的位置是否固定,在計算機中有兩種方法表示小數點,即定點表示和浮點表示。定點表示的機器數稱為定點數,浮點表示的機器數稱為浮點數。

(1)定點表示。

定點表示即約定機器數中的小數點位置是固定不變的,小數點不再使用“.”表示,而是約定它的位置。

在計算機中通常采用兩種簡單的約定:

  • 將小數點的位置固定在最高位之前、符號位之後,常稱為定點小數(純小數)。
  • 將小數點的位置固定在最低位之後,稱為定點整數(純整數)。

定點數的運算除瞭加、減、乘、除外,還有移位運算。移位運算根據操作對象的不同分為算術移位(帶符號數的移位)和邏輯移位(無符號數的移位)。

(2)浮點表示。

浮點表示是指以適當的形式將比例因子表示在數據中,讓小數點的位置根據需要而浮動。

例如,679.32=6.7932×10^2=6793.2×10^{-1}=0.67932×10^3。

通常,浮點數被表示成 N=S×R^j 其中,N為浮點數,S為其尾數,j為其階碼,R是浮點數階碼的底(隱含,在機器數中不出現)。

通常R=2jS 都是帶符號的定點數。可見,浮點數由階碼和尾數兩部分組成,如下圖所示。

vXTFy9.png

階碼是整數,階符 j_f 和階碼的位數 m 共同反映浮點數的表示范圍和小數點的實際位置;

數符S_f反映浮點數的正/負;尾數的 n 位反映浮點數的精度。

為瞭提高運算的精度,浮點數的尾數必須為規格化數(即尾數的最高位必須是一個有效值)。

如果不是規格化數,需要修改階碼並左/右移尾數,使其變成規格化數。

將非規格化數轉換為規格化數的過程稱為規格化操作。

例如,二進制數0.0001101可以表示為0.001101×2^{-01}0.01101×2^{-10}0.1101×2^{-11}……而其中隻有0.1101×2^{-11}是規格化數。

現代計算機中,浮點數一般采用IEEE 754標準。IEEE 754標準浮點數的格式如右圖所示。

413023f2622ede40e1801fa350d15dd4vXTEe1.png

這種標準規定常用的浮點數格式有短浮點數(單精度,即float型)、長浮點數(雙精度,即double型)、臨時浮點數,如表所示。

除臨時浮點數外,短浮點數和長浮點數的尾數用隱藏位的原碼表示,階碼用移碼表示。

vXTZo6.png

以短浮點數為例,最高位為數符位;其後是8位階碼,以2為底,用移碼表示,階碼的偏置值為2^{8-1}-1=127;其後23位是原碼表示的尾數數值位。

對於規格化的二進制浮點數,數值的最高位總是“1”,為瞭能使尾數多表示一位有效位,將這個“1”隱藏,因此尾數數值實際是24位。

隱藏的“1”是一位整數。在浮點數格式中表示的23位尾數是純小數。例如,(12)_{10}=(1100)_2,將它規格化後結果為1.1×2^3,其中整數部分的1將不存儲在23位尾數內。

1.4 操作系統

1.4.1操作系統概述

(1)操作系統的功能與任務。

操作系統是現代計算機系統中最基本和最核心的系統軟件之一,所有其他的軟件都依賴於操作系統的支持。

操作系統是配置在計算機硬件上的第1層軟件,是對硬件系統的首次擴充。

主要作用:

  • 管理好硬件設備
  • 提高它們的利用率和系統的吞吐量
  • 為用戶和軟件提供一個簡單的接口,便於用戶使用。

如果把操作系統看成計算機系統資源的管理者,則操作系統的任務及其功能主要有以下5個方面。

  • 處理器(CPU)管理:對進程進行管理。其主要功能有創建和撤銷進程,對多個進程的運行進行協調,實現進程之間的信息交換,以及按照一定的算法把處理器分配給進程等。
  • 存儲器管理:為多道程序的運行提供良好的環境,提高存儲器的利用率,方便用戶使用,並能從邏輯上擴充內存。因此,存儲器管理應具有內存分配和回收、內存保護、地址映射及內存擴充等功能。
  • 設備管理:完成用戶進程提出的I/O請求,為用戶進程分配所需的I/O設備,並完成指定的I/O操作;提高CPU和I/O設備的利用率,提高I/O速度,方便用戶使用I/O設備。因此,設備管理應具有緩沖管理、設備分配、設備處理以及虛擬設備等功能。
  • 文件管理:對用戶文件和系統文件進行管理以方便用戶使用,並保證文件的安全性。因此,文件管理應具有對文件存儲空間的管理、目錄管理、文件的讀/寫管理以及文件的共享與保護等功能。
  • 提供用戶接口:為瞭方便用戶使用計算機和操作系統,操作系統向用戶提供瞭“用戶和操作系統的接口”。

(2)操作系統的發展。

操作系統的發展過程
手工操作(無操作系統)
批處理系統
多道程序系統
分時系統
實時操作系統
個人計算機操作系統

(3)操作系統的分類。

根據使用環境和對作業處理方式的不同,操作系統分為多道批處理操作系統、分時操作系統、實時操作系統、網絡操作系統、分佈式操作系統、嵌入式操作系統等。

1.4.2進程管理

(1)程序的並發執行。

程序隻有經過執行才能得到結果。程序的執行又分為順序執行和並發執行。

一個具有獨立功能的程序獨占處理器直至執行結束的過程稱為程序的順序執行。

順序執行特點:順序性、封閉性、可再現性、系統資源的利用率等特點。

順序程序不具有並發性。

在系統中引入瞭多道程序技術,使程序或程序段間能並發執行。

程序的並發執行是指一組在邏輯上互相獨立的程序或程序段在執行過程中,其執行時間在客觀上互相重疊,即一個程序段的執行尚未結束,另一個程序段的執行已經開始的執行方式。

並發程序在執行過程中有以下幾個特點。

  • 失去瞭封閉性。
  • 不可再現性。
  • 間斷性,即程序之間可以互相制約。

並發程序具有並行性和共享性,而順序程序則以順序性和封閉性為基本特征。

(2)進程的基本概念。

定義:進程是指一個具有一定獨立功能的程序關於某個數據集合的一次運行活動。

簡單地說,進程是指可以並發執行的程序的執行過程。

進程與程序有關,但它與程序又有本質的區別,主要反映在以下幾個方面。

  • 進程是程序在處理器上的一次執行過程,它是動態的概念。程序隻是一組指令的有序集合,其本身沒有任何運行的含義,是一個靜態的概念。
  • 進程具有一定的生命周期,它能夠動態地產生和消亡。程序可以作為一種軟件資源長期保存,它的存在是永久的。
  • 進程包括程序和數據,還包括記錄進程相關信息的“進程控制塊”。
  • 一個程序可能對應多個進程。
  • 一個進程可以包含多個程序。

(3)進程的狀態及其轉換。

進程從創建、產生、撤銷至消亡的整個生命周期,有時占有處理器並運行,有時雖可運行但分不到處理器,有時雖有空閑處理器但因等待某個事件發生而無法運行,這說明進程是活動的且有狀態變化。一般來說,一個進程的活動情況至少可以劃分為以下5種基本狀態。

  • 運行狀態:進程占有處理器、正在運行的狀態。
  • 就緒狀態:進程具備運行條件、等待系統分配處理器以便運行的狀態。
  • 等待狀態(阻塞狀態、睡眠狀態):指進程不具備運行條件、正在等待某個事件完成的狀態。
  • 創建狀態:進程正在創建過程中、尚不能運行的狀態。
  • 終止狀態:進程運行結束的狀態。

處於運行狀態的進程個數不能大於處理器個數,處於就緒和等待狀態的進程可以有多個。進程的幾種基本狀態之間在一定的條件下是可以互相轉換的。下圖表示瞭進程的5種基本狀態之間在一定條件下的轉換。

3db7a54e9f1cea0d86777a5bbcb8d8f5vXTmFK.png

(4)進程控制塊。

每個進程有且僅有一個進程控制塊(Process Control Block,PCB)。

它是進程存在的唯一標識,是操作系統用來記錄和刻畫進程狀態及環境信息的數據結構,是進程動態特征的匯集,也是操作系統掌握進程的唯一資料結構和管理進程的主要依據。PCB包括進程執行時的狀況,以及進程讓出處理器之後所處的狀態、斷點等信息。

PCB中通常應包括以下基本內容。

  • 進程名:唯一標識對應進程的一個標識符或數字,系統根據該標識符來識別一個進程。
  • 特征信息:反映該進程是不是系統進程等信息。
  • 執行狀態信息:說明對應進程當前的狀態。
  • 通信信息:反映該進程與其他進程之間的通信關系。
  • 調度優先數:用於分配處理器時參考的一種信息,它決定在所有就緒的進程中,究竟哪一個進程先得到處理器。
  • 現場信息:在對應進程放棄處理器時,將處理器的一些現場信息(如指令計數器值、各寄存器值等)保留在該進程的PCB中,當下次恢復運行時,隻要按保存值重新裝配即可繼續運行。
  • 系統棧:主要反映對應進程在執行時的一條嵌套調用路徑上的歷史。
  • 進程映像信息:用以說明該進程的程序和數據存儲情況。
  • 資源占有信息:指明對應進程所占有的外設種類、設備號等。
  • 族關系:反映該進程與其他進程間的隸屬關系。

除此之外,PCB中還包含文件信息、工作單元等內容。

(5)進程的組織。

進程的物理組織方式通常有線性方式、鏈接方式及索引方式。

  • 線性方式:

將系統中所有的PCB都組織在一個線性表中,將該表的首地址存放在內存的一個專用區域中。該方式實現簡單、開銷小,但每次查找時都需要掃描整個表,因此適合進程數目不多的系統。

  • 鏈接方式:

把具有相同狀態進程的PCB通過PCB中的鏈接字鏈接成一個隊列,這樣可以形成就緒隊列、若幹個阻塞隊列及空白隊列等。在就緒隊列中,往往按進程的優先級將PCB從高到低進行排列,將優先級高的進程的PCB排在隊列的前面。

  • 索引方式:

系統根據所有進程不同的狀態,建立幾個索引表,如就緒索引表、阻塞索引表,並把各索引表在內存的首地址記錄在內存的一些專用單元中。在每個索引表的表目中,記錄具有相應狀態的某個PCB在PCB表中的地址。

(6)進程調度。

進程調度是指按一定策略動態地把CPU分配給處於就緒隊列中的某一進程並使之執行的過程。進程調度亦可稱為處理器調度或低級調度,相應的進程調度程序可稱為分配程序或低級調度程序。進程調度僅負責對CPU進行分配。

進程調度方式有搶占方式和非搶占方式。

  • 搶占方式:就緒隊列中一旦有優先級高於當前正在運行的進程出現時,系統便立即把CPU分配給高優先級的進程,並保存被搶占瞭CPU的進程的有關狀態信息,以便以後恢復。
  • 非搶占方式:一旦CPU分給瞭某進程,即使就緒隊列中出現瞭優先級比它高的進程,高優先級進程也不能搶占現行進程的CPU。

基本的進程調度算法有先來先服務調度算法、時間片輪轉調度算法、優先級調度算法等。

進程調度僅負責對CPU進行分配。

(7)其他概念。

  • 線程。線程是比進程更小的能獨立運行的基本單位,用它來提高程序的並行程度,減少系統開銷,可進一步提高系統的吞吐量。
  • 死鎖。各進程互相獨立地動態獲得,不斷申請和釋放系統中的軟硬件資源,這就有可能使系統中若幹個進程均因互相“無知地”等待對方所占有的資源而無限地等待。這種狀態稱為死鎖。

1.4.3存儲管理

存儲管理是操作系統的重要組成部分,管理的主要對象是內存。

操作系統的主要任務之一是盡可能方便用戶使用和提高內存利用率。此外,有效的存儲管理也是多道程序設計技術的關鍵支撐。

(1)存儲管理的功能。

  • 地址變換。
  • 內存分配。
  • 存儲共享與保護。
  • 存儲器擴充。

(2)地址重定位。

地址變換:當用戶程序進入內存執行時,必須把用戶程序中的所有相對地址(邏輯地址)轉換成內存中的實際地址(物理地址)。

地址重定位:在進行地址轉換時,必須修改程序中所有與地址有關的項,也就是要對程序中的指令地址以及指令中有關地址的部分(有效地址)進行調整。

地址重定位建立用戶程序的邏輯地址與物理地址之間的對應關系,實現方式包括靜態地址重定位和動態地址重定位。

  • 靜態地址重定位:在程序執行之前將操作系統的重定位裝入程序,程序必須占用連續的內存空間,且一旦裝入內存後,程序便不再移動。
  • 動態地址重定位:在程序執行期間進行,由專門的硬件機構來完成,通常采用一個重定位寄存器,在每次進行存儲訪問時,將取出的邏輯地址加上重定位寄存器的內容形成物理地址。

動態地址重定位的優點是不要求程序裝入固定的內存空間,在內存中允許程序再次移動位置,而且可以部分地裝入程序運行,同時也便於多個作業共享同一程序的副本。動態地址重定位技術被廣泛采用。

(3)存儲管理技術。

  • 連續存儲管理。

基本特點:內存空間被劃分成一個個分區,一個作業占一個分區,即系統和用戶作業都以分區為單位享用內存。

在連續存儲管理中,地址重定位采用靜態地址重定位,分區的存儲保護可采用上、下界寄存器保護方式。分區分配方式分為固定分區和可變分區。

固定分區存儲管理的優點是簡單,要求的硬件支持少;缺點是容易產生內部碎片。可變分區避免瞭固定分區中每個分區都可能有剩餘空間的情況,但由於它的空閑區域仍是離散的,因此會出現外部碎片。

  • 分頁式存儲管理。在分頁式存儲管理中,當作業提出存儲分配請求時,系統首先根據存儲塊大小把作業分成若幹頁,每一頁可存儲在內存的任意一個空白塊內。

這樣,隻要建立起程序的邏輯頁和內存的存儲塊之間的對應關系,借助動態地址重定位技術,分散在不連續物理存儲塊中的用戶作業就能夠正常運行。

分頁式存儲管理的優點是能有效解決碎片問題,內存利用率高,內存分配與回收算法也比較簡單;缺點是采用動態地址變換機構增加瞭硬件成本,也降低瞭處理器的運行速度。

  • 分段式存儲管理。在分段式存儲管理中,作業的地址空間由若幹個邏輯段組成,每一段是一組邏輯意義完整的信息集合,並有自己的名字(段名)。每一段都是以0開始的、連續的一維地址空間,整個作業則構成瞭二維地址空間。

分段式存儲管理是以段為基本單位分配內存的,且每一段必須分配連續的內存空間,但各段之間不要求連續。由於各段的長度不一樣,因此分配的內存空間大小也不一樣。

分段式存儲管理較好地解決瞭程序和數據的共享以及程序動態鏈接等問題。與分頁式存儲管理一樣,分段式存儲管理采用動態重定位技術來進行地址轉換。

分頁式存儲管理的優點體現在內存空間的管理上,而分段式存儲管理的優點體現在地址空間的管理上。

  • 段頁式存儲管理。段頁式存儲管理是分頁和分段兩種存儲管理方式的結合,它同時具備兩者的優點。段頁式存儲管理是目前使用較多的一種存儲管理方式,它有如下特點。
    • 將作業地址空間分成若幹個邏輯段,每段都有自己的段名。
  • 每段再分成若幹大小固定的頁,每段都從0開始為自己的各頁依次編寫連續的頁號。
  • 對內存空間的管理仍然和分頁存儲管理一樣,將其分成若幹個與頁面大小相同的物理塊,對內存空間的分配是以物理塊為單位的。
  • 作業的邏輯地址包括3個部分:段號、段內頁號及頁內位移。
  • 虛擬存儲器管理。

背景:連續存儲管理和分頁分段式存儲管理技術必須為作業分配足夠的內存空間,裝入其全部信息,否則作業將無法運行。把作業的全部信息裝入內存後,實際上並非同時使用這些信息,有些部分運行一次,有些部分暫時不用或在某種條件下才使用。讓作業全部信息駐留於內存是對內存資源的極大浪費,會降低內存利用率。

基本思路:把內存擴大到大容量外存上,把外存空間當作內存的一部分,作業運行過程中可以隻讓當前用到的信息進入內存,其他當前未用的信息留在外存;而當作業進一步運行,需要用到外存中的信息時,再把已經用過但暫時還不會用到的信息換到外存,把當前要用的信息換到已空出的內存中,從而給用戶提供一個比實際內存空間大得多的地址空間。

這種大容量的地址空間並不是真實的存儲空間,而是虛擬的,因此,這樣的存儲器稱為虛擬存儲器。虛擬存儲器管理主要采用請求頁式存儲管理、請求段式存儲管理及請求段頁式存儲管理技術實現。

1.4.4文件管理

在操作系統中,無論是用戶數據,還是計算機系統程序和應用程序,甚至各種外設,都是以文件形式提供給用戶的。文件管理就是對用戶文件和系統文件進行管理,方便用戶使用,並保證文件的安全性,提高外存空間的利用率。

(1)文件與文件系統的概念。

文件是指一組帶標識(文件名)的、具有完整邏輯意義的相關信息的集合。用戶作業、源程序、目標程序、初始數據、輸出結果、匯編程序、編譯程序、連接裝配程序、編輯程序、調試程序及診斷程序等,都是以文件的形式存在的。

各個操作系統的文件命名規則略有不同,文件名的格式和長度因系統而異。一般來說,文件名由文件名和擴展名兩部分組成,前者用於識別文件,後者用於區分文件類型,中間用“.”分隔開。

操作系統中與管理文件有關的軟件和數據稱為文件系統。它負責為用戶建立、撤銷、讀/寫、修改及復制文件,還負責對文件的按名稱存取和存取控制。常用的、具有代表性的文件系統有EXT2/4、NFS、HPFS、FAT、NTFS等。

(2)文件類型。

文件依據不同標準可以有多種類型,如右表所示。

劃分標準 文件類型
按用途劃分 系統文件、庫文件、用戶文件
按性質劃分 普通文件、目錄文件、特殊文件
按保護級別劃分 隻讀文件、讀寫文件、可執行文件、不保護文件
按文件數據的形式劃分 源文件、目標文件、可執行文件

(3)文件系統模型。

文件系統的傳統模型為層次模型,該模型由許多不同的層組成。每一層都會使用下一層的功能來創建新的功能,為上一層服務。層次模型比較適合支持單個文件系統。

(4)文件的組織結構。

  • 文件的邏輯結構。文件的邏輯結構是用戶可見結構。根據有無邏輯結構,文件可分為記錄式文件和流式文件。在記錄式文件中,每個記錄都用於描述實體集中的一個實體。各記錄有著相同或不同數目的數據項,記錄的長度可分為定長和不定長兩類。流式文件內的數據不再組成記錄,隻是一串有順序的信息集合(有序字符流)。這種文件的長度以字節為單位。可以把流式文件看作記錄式文件的一個特例:一個記錄僅有一個字節。
  • 文件的物理結構(文件的“存儲結構”)。

文件按不同的組織方式在外存上存放,就會得到不同的物理結構。文件在外存上有連續存放、鏈接塊存放及索引表存放3種不同的存放方式,其對應的存儲結構分別為順序結構、鏈接結構及索引結構。

(5)文件目錄管理。

①文件目錄的概念。

為瞭能對一個文件進行正確的存取,必須為文件設置用於描述和控制文件的數據結構,稱為文件控制塊(File Control Block,FCB)。FCB一般應包括以下內容。

  • 有關文件存取控制的信息:文件名、用戶名、文件主存取權限、授權者存取權限、文件類型及文件屬性等。
  • 有關文件結構的信息:記錄類型、記錄個數、記錄長度、文件所在設備名及文件物理結構類型等。
  • 有關文件使用的信息:已打開文件的進程數、文件被修改的情況、文件最大長度及文件當前大小等。
  • 有關文件管理的信息:文件建立日期、最近修改日期及最後訪問日期等。

文件與FCB一一對應,而人們把多個FCB的有序集合稱為文件目錄,即一個文件控制塊就是一個文件目錄項。通常,一個文件目錄也被看作一個文件,可稱為目錄文件。

對文件目錄的管理就是對FCB的管理。對文件目錄的管理除瞭要解決存儲空間的有效利用問題外,還要解決快速搜索、文件命名沖突以及文件共享等問題。

②文件目錄結構。

文件目錄根據不同結構可分為單級目錄、二級目錄、多層級目錄、無環圖結構目錄及圖狀結構目錄等。

  • 單級目錄的優點是簡單,缺點是查找速度慢,不允許重名,不便於實現文件共享。
  • 二級目錄提高瞭檢索目錄的速度;在不同的用戶目錄中,可以使用相同的文件名;不同用戶還可以使用不同的文件名訪問系統中的同一個共享文件。但對同一用戶目錄,也不能有兩個同名的文件存在。
  • 多層級目錄(樹結構目錄),既可以方便用戶查找文件,又可以把不同類型和不同用途的文件分類;允許文件重名,不但不同用戶目錄可以使用相同名稱的文件,同一用戶目錄也可以使用相同名稱的文件;利用多級層次結構關系,可以更方便地設置保護文件的存取權限,有利於文件的保護。其缺點為不能直接支持文件或目錄的共享等。
  • 為瞭使文件或目錄可以被不同的目錄所共享,出現瞭結構更復雜的無環圖結構目錄和圖狀結構目錄等。

③存取權限。

存取權限可以通過建立訪問控制表和存取權限表來實現。

大型文件系統主要采用兩個措施來進行安全性保護:一是對文件和目錄進行權限設置,二是對文件和目錄進行加密。

(6)文件存儲空間管理。

存儲空間管理是文件系統的重要任務之一。文件存儲空間管理實質上是空閑塊管理問題,它包括空閑塊的組織、空閑塊的分配及空閑塊的回收等問題。

空閑塊管理方法主要有空閑文件項、空閑區表、空閑塊鏈、位示圖、空閑塊成組鏈接法(UNIX操作系統中)等。

1.4.5 I/O設備管理

I/O設備類型繁多,差異又非常大,因此I/O設備管理是操作系統中最龐雜和瑣碎的部分之一。

(1)I/O軟件的層次結構。

I/O軟件的設計目標是:

將I/O軟件組織成一種層次結構,每一次都是利用其下層提供的服務,完成I/O功能中的某些子功能,並屏蔽這些功能實現的細節,向上層提供服務。

通常把I/O軟件組織成4個層次,如下圖所示,圖中的箭頭表示I/O的控制流。各層次功能如下。

  • 用戶層軟件:用於實現與用戶交互的接口,用戶可直接調用該層所提供的、與I/O操作有關的庫函數對設備進行操作。
  • 設備獨立性軟件:用於實現用戶程序與設備驅動器的統一接口、設備命名、設備的保護以及設備的分配與釋放等,同時為設備管理和數據傳送提供必要的存儲空間。
  • 設備驅動程序:與硬件直接相關,用於具體實現系統對設備發出的操作指令,驅動I/O設備工作。
  • 中斷處理程序。用於保持被中斷進程的CPU環境,轉入相應的中斷處理程序進行處理,處理完畢再恢復被中斷進程的現場,並返回到被中斷進程。

vXTnJO.png

(2)中斷處理程序。

當一個進程請求I/O操作時,該進程將被“掛起”,直到I/O設備完成I/O操作後,設備控制器向CPU發送一個中斷請求,CPU響應後便轉向中斷處理程序。中斷處理過程如下。

  • CPU檢查響應中斷的條件是否滿足。
  • 如果條件滿足,CPU響應中斷,則CPU關中斷,使其進入不可再次響應中斷的狀態。
  • 保存被中斷進程的CPU環境。
  • 分析中斷原因,調用中斷處理子程序。
  • 執行中斷處理子程序。
  • 退出中斷,恢復被中斷進程的CPU現場或調度新進程占用CPU。
  • 開中斷,CPU繼續執行。

I/O操作完成後,驅動程序必須檢查本次I/O操作中是否發生瞭錯誤,並向上層軟件報告,最終向調用者報告本次I/O的執行情況。

(3)設備驅動程序。

設備驅動程序是驅動物理設備和DMA控制器或I/O控制器等直接進行I/O操作的子程序的集合。它負責啟動I/O設備進行I/O操作,指定操作的類型和數據流向等。設備驅動程序有如下功能。

  • 接收由設備獨立性軟件發來的命令和參數,並將命令中的抽象要求轉換為與設備相關的低層次操作序列。
  • 檢查用戶I/O請求的合法性,瞭解I/O設備的工作狀態,傳遞與I/O設備操作有關的參數,設置設備的工作方式。
  • 發出I/O命令,如果設備空閑,便立即啟動I/O設備,完成指定的I/O操作;如果設備忙碌,則將請求者的請求塊掛在設備隊列上等待。
  • 及時響應由設備控制器發來的中斷請求,並根據其中斷類型,調用相應的中斷處理程序進行處理。

(4)設備獨立性軟件。

為瞭實現設備獨立性,必須在設備驅動程序之上設置一層軟件,稱為與設備無關的I/O軟件,或設備獨立性軟件。其主要功能①向用戶層軟件提供統一接口;②設備命名;③設備保護;④提供一個獨立於設備的塊;⑤緩沖技術;⑥設備分配和狀態跟蹤;⑦錯誤處理和報告等。

(5)用戶層軟件。

用戶層軟件在層次結構的最上層,它面向用戶,負責與用戶和設備無關的I/O軟件通信。當接收到用戶的I/O指令後,該層會把具體的請求發送到與設備無關的I/O軟件進一步處理。它主要包含用於I/O操作的庫函數和SPOOLing系統。此外,用戶層軟件還會用到緩沖技術。

(6)設備的分配與回收。

由於設備、控制器及通道資源的有限性,因此不是每一個進程隨時隨地都能得到這些資源。進程必須首先向設備管理程序提出資源申請,然後,由設備分配程序根據相應的分配算法為進程分配資源。如果申請進程得不到它所申請的資源,將被放入資源等待隊列中等待,直到所需要的資源被釋放。如果進程得到瞭它所需要的資源,就可以使用該資源完成相關的操作,使用完之後通知系統,系統將及時回收這些資源,以便其他進程使用。

发表回复

相关推荐

小小的書虱,能把人逼瘋?

體型微小的爬蟲,它們經常出現在倉庫、洗手間、廚房等,當你發現的是數量已經不少,仔細觀察可能已經到處都是,不勝其擾。如...

· 5分钟前

《杀戮追踪》完整解析➕漫画细节(未更新

先开个楼 ,佛系更。(很认真在思考 看这个漫画五年多了,还是爱不释手。 狗头镇楼 专门研究温暖男孩吴尚宇 更新不易 先简 ...

· 14分钟前

美西景點攻略:死亡谷國傢公園(Death Valley National Park)

前往理由 (Reason to go):1. 死亡谷國傢公園是除阿拉斯加外最大的國傢公園,幾近深不可測。公園占地面積 330萬英畝/134萬公...

· 36分钟前

《草虫的村落》试讲稿【初级】

一、导入 同学们,听,这是—-夏日虫鸣的声音。大自然的声音和色彩总能让人陶醉,走进去又使人流连忘返。让我们跟随作 ...

· 37分钟前

以宁蓉线为例,对长江沿江地带东西向铁路的分析

越过四川盆地的一座座山丘,南方夏天的草木生长得非常茂盛,从成都开往全国各地的列车在朦胧的雨后蜿蜒行驶在沱江之畔,驶过 ...

· 40分钟前