操作系統筆記——王道考研


1. 操作系統概述

1.1.1 操作系統的概念、功能和目標

大家熟悉的操作系統:Windows、Android、IOS、MacOS、Linux

image-20210802235227628

操作系統的概念

image-20210802235341638

  1. 硬件

    如CPU、內存、硬盤

  2. 操作系統

    • 負責管理協調硬件、軟件等計算機資源的工作
    • 為上層的應用程序、用戶提供簡單易用的服務
    • 操作系統的系統軟件,而不是硬件
  3. 應用軟件

    QQ、IE瀏覽器等

操作系統(OS)是指控制和管理整個計算機系統的硬件軟件資源,並合理地組織調用計算機的工作和資源的分配,以提供給用戶和其他軟件方便的接口和環境,它是計算機系統中最基本的系統軟件。

操作系統的功能和目標

image-20210803001527034

  • 操作系統作為系統資源的管理者,需要提供什么功能?
  • 操作系統作為用戶與計算機硬件之間的接口,要為其上層的用戶、應用程序提供簡單易用的服務,需要實現什么功能?
  • 操作系統作為最接近硬件的層次,需要在純硬件的基礎上實現什么功能?

作為系統資源的管理者

image-20210803000445865

補充知識:進程是一個程序的執行過程,執行前需要將該程序放到內存中,才能被CPU處理。

  • 文件管理

    文件中找到QQ安裝的位置

  • 存儲器管理

    雙擊打開QQ(需要將程序數據放入內存)

  • 處理器管理

    對應的進程被處機(CPU)處理

  • 設備管理

    視頻聊天,需要將設備(攝像頭)分配給處理機

作為用戶與計算機硬件之間的接口

image-20210803000613790

  • 命令接口:允許用戶直接使用

    • 聯機命令接口:”用戶說一句,系統做一句“

      例如通過Win+R運行命令行,一句一句的執行

    • 脫機命令接口:用戶說一堆,系統做一堆

      通過修改"*.bat"文件,批量處理

  • 程序接口:允許用戶通過程序間接使用

    由一組系統調用組成(程序接口=系統調用)

    例如程序員在程序中調用"user32.dll"

  • GUI:現代操作系統中最流行的圖形用戶接口

    如Windows、安卓、ios的圖形化操作界面

作為最接近硬件的層次

沒有任何軟件支持的計算機稱為裸機。在裸機上安裝的操作系統,可以提供資源管理功能和方便用戶的服務功能,將裸機改造成功能更強、使用更方便的機器。

通常把覆蓋了軟件的機器稱為擴展機器,又稱之為虛擬機

類比:

硬件:錘子、木鋸等

操作系統:木匠

1.1.2 操作系統的特征

image-20210804234044791

並發

並發是指兩個或多個事件在同一時間間隔內發生。這些事件宏觀上是同時發生的,但微觀上是交替發生的

並發的概念容易與並行混淆——指兩個或多個事件在同一時刻同時發生

舉例:

image-20210803001852853

操作系統的並發性,是指計算機系統中同時存在着多個運行着的程序

一個單核CPU同一時刻只能執行一個程序,因此操作系統會負責協調多個程序交替執行(宏觀上同時執行、微觀上交替執行)

共享

共享即資源共享,是指系統中的資源可供內存中多個並發執行的進程共同使用。

image-20210803002256010

注:所謂的“同時”往往是宏觀上的,而在微觀上,這些進程可能是交替地對該資源進行訪問的(即分時共享

互斥共享實例:QQ和微信視頻聊天

同時共享實例:使用QQ發送文件A、同時使用微信發送文件B。宏觀上,兩個進程都在訪問硬盤資源;微觀上,兩個進程是交替訪問硬盤的。

並發和共享的關系

並發性指計算機系統中同時存在多個運行着的程序。

共享性是指系統中的資源可供內存中多個並發執行的進程共同使用。

舉例:

使用QQ發送文件A,使用微信發送文件B

  1. 兩個進程正在並發執行(並發性
  2. 需要共享地訪問硬盤資源(共享性

(如果失去並發性,則系統中只有一個程序正在運行,則共享性失去存在的意義

如果失去共享性,則QQ、微信不能同時訪問硬盤,就無法實現並發性)

虛擬

虛擬是指把一個物理上的實體變成若干個邏輯上的對應物。物理實體(前者)是實際存在的,而邏輯上對應物(后者)是用戶感受到的。

image-20210804233659124

空分復用技術:同時可以運行的軟件容量可以大於內存值;

時分復用技術:單核處理器也可以同時運行多個進程(軟件)。

異步

異步是指,在多道程序環境下,允許多個程序並發執行,但由於資源有限,進程的執行並不是一貫到底的,而是走走停停,以不可預知的速度向前推進。

1.1.3 操作系統的發展和分類

image-20210804235813060

手工操作階段

紙帶機

image-20210804234319691

缺點:人機速度矛盾,收入輸出速度慢

批處理階段

單道批處理系統

image-20210804234509356

優點;一定程度上緩解了人機速度矛盾

缺點:內存中僅有一道程序運行,CPU資源利用率仍不高。

多道批處理系統

image-20210804234657150

優點:多道程序並發執行,共享計算機資源。資源利用率大幅提升

缺點:沒有人機交互功能。

分時操作系統

計算機以時間片為單位,輪流為各個用戶服務。

image-20210804235054856

缺點:不能優先處理一些緊急任務。操作系統對每個用戶平等對待。

實時操作系統

優點:能夠優先響應一些緊急任務,某些緊急任務不需要時間片排隊。

實時操作系統處理下,計算機要在嚴格的時限內處理完事件。

實時操作系統的主要特點是及時性和可靠性。

image-20210804235452988

其他幾種操作系統

網絡操作系統

能把網絡中各個計算機結合起來,實現數據傳送等功能。(Windows NT)

分布式操作系統

主要特點是分布性並發性

系統中各台計算機地位相同,任何工作都可以分布在這些計算機上,由它們並行、協同完成這個任務。

個人操作系統

如Windows 10、MacOS等

1.1.4 操作系統的運行機制、體系結構

image-20210805002114560

運行機制

兩種指令

指令——CPU能識別、執行的最基本命令

有的指令很普通,例如加減乘除之類的運算指令;(非特權指令)

有的指令有很高的權限,比如內存清零指令,用戶不可以隨意使用該指令。(特權指令)

image-20210805000648605

兩種處理器狀態

CPU如何判斷當前是否可以執行特權命令?

image-20210805000915125

(處理器狀態放在PSW寄存器中)

兩種程序

image-20210805001029056

操作系統內核

例如Windows操作系統,其自帶的軟件,例如記事本、任務管理器,這些功能並不是必不可少的。所以操作系統也可以細分成內核非內核功能

image-20210805001537297

內核是計算機上配置的底層軟件,是操作系統最基本、最核心的部分。

操作系統的體系結構

image-20210805001602786

內核就可以類比為企業的管理層,用戶態和核心態之間的切換相當於普通員工和管理層之間的工作交接

1.1.5 中斷和異常

image-20210823233926949

中斷機制的誕生

早期計算機的計算過程是串行執行,系統資源利用率低。

因此人們發明了操作系統,引入中斷機制,實現多道程序並發執行。

本質:發生中斷意味着需要操作系統介入,開展管理工作。

中斷的概念和作用

  1. 中斷發生時,CPU立即進入核心態
  2. 中斷發生后,當前運行的進程暫停運行,並由操作系統內核對中斷進行處理;
  3. 對於不同的中斷信號,會進行不同的處理。

遺留問題:用戶態和核心態之間如何切換?

用戶態->核心態:只能通過中斷

核心態->用戶態:通過執行特權指令,修改程序狀態字(PSW)的標志位

中斷的分類

image-20210823234850382

外中斷的處理過程

  1. 執行每個指令后,CPU都要檢查當前是否有外部中斷信號
  2. 檢測到外部中斷信號,則需要保護被中斷進程的CPU環境(程序狀態字等)
  3. 根據中斷信號類型轉入對應的中斷處理程序
  4. 恢復現場

1.1.6 系統調用

image-20210823235504674

什么是系統調用,有何作用?

操作系統提供給用戶的接口分為命令接口程序接口

  1. 命令接口(允許用戶直接使用)

    • 聯機命令接口
    • 脫機命令接口
  2. 程序接口(允許用戶簡介使用)

    由一組系統調用組成

image-20210823235948224

系統調用與庫函數的區別

image-20210824000237238

有些庫函數涉及系統調用,有些不涉及(如取絕對值)

系統調用背后的過程

image-20210824000511173

注:

  1. 陷入指令在用戶態,執行系統調用響應服務程序處於核心態(int指interrupt,即一個內中斷);
  2. 陷入指令是唯一一個只能在用戶態執行,而不能在核心態執行。

2. 進程

2.1.1 進程的定義、組成、組織方式、構成

image-20210824000931629

進程的定義

程序:就是一個指令序列

程序段、數據段、PCB(進程控制塊)三部分組成了進程實體(進程映像)

創建進程,實質上就是創建進程實體中的PCB;

撤銷進程,實質上就是撤銷進程實體中的PCB。

PCB是進程存在的唯一標志

進程的組成

  1. PCB

    • 進程描述信息
      • 進程標識符PID(用於區分不同進程,參考fork函數)
      • 用戶標識符UID
    • 進程控制和管理信息
      • 進程當前狀態
      • 進程優先級
    • 資源分配清單
      • 程序段指針
      • 數據段指針
      • 鍵盤
      • 鼠標
    • 處理機相關信息
      • 各種寄存器值
  2. 程序段

    存放要執行的代碼

  3. 數據段

    存放程序運行過程中處理的數據

進程的組織

image-20210824004211526

image-20210824004322778

image-20210824004339679

進程的特征

image-20210824004522585


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM