計算機系統的層次結構

操作系統的定義

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

  1. 操作系統是系統資源(硬件和軟件)的管理者
  2. 向上層提供方便易用的服務
  3. 是最接近硬件的一層軟件

操作系統的功能和目標

作為系統資源的管理者

  • 提供的功能:

    • CPU(處理機)管理
    • 內存(存儲器)管理
    • 文件管理
    • 設備管理
  • 目標:安全、高效

向上層提供方便易用的服務

封裝思想:操作系統把一些硬件功能封裝成簡單易用的服務,使用戶能更方便地使用計算機,用戶無需關心底層硬件的原理,只需要對操作系統發出命令即可

  • 直接給用戶使用的

    • GUI
    • 命令接口:聯機命令接口、脫機命令接口
  • 給軟件/給程序員使用

    • 程序接口:可以在程序中進行系統調用來使用程序接口。普通用戶不能直接使用程序接口,只能通過程序代碼間接使用

作為最接近硬件的層次

  • 需要實現對硬件機器的拓展:操作系統將 CPU、內存、磁盤、顯示器、鍵盤等硬件合理地組織起來,讓各種硬件能夠相互協調配合,實現更多更復雜的功能,普通用戶無需關心這些硬件在底層是怎么組織起來工作的,只需直接使用操作系統提供的接口即可

操作系統的四個特征

并發和共享是兩個最基本的特征(沒有并發和共享,就談不上虛擬和異步),二者互為存在條件

并發

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

并行:指兩個或多個事件在同一時刻同時發生

  • 操作系統的并發性指計算機系統中“同時”運行著多個程序,這些程序宏觀上看是同時運行著的,而微觀上看是交替運行的。操作系統就是伴隨著“多道程序技術”而出現的。因此,操作系統和程序并發是一起誕生的
    • 單核 CPU 同一時刻只能執行一個程序,各個程序只能并發地執行
    • 多核 CPU 同一時刻可以同時執行多個程序,多個程序可以并行地執行

共享

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

  • 兩種資源共享方式

    • 互斥共享方式:系統中的某些資源,雖然可以提供給多個進程使用,但一個時間段內只允許一個進程訪問該資源
    • 同時共享方式:系統中的某些資源,允許一個時間段內由多個進程“同時”(宏觀上)對它們進行訪問

虛擬

  • 虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。物理實體(前者)是實際存在的,而邏輯上對應物(后者)是用戶感受到的。
    • 空分復用技術(如虛擬存儲技術)
    • 時分復用技術(如虛擬 CPU 技術)

顯然,如果失去了并發性,則一個時間段內系統中只需運行一道程序,那么就失去了實現虛擬性的意義了。因此,沒有并發性,就談不上虛擬性

異步

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

如果失去了并發性,即系統只能串行地運行各個程序,那么每個程序的執行會一貫到底。只有系統擁有并發性,才有可能導致異步性。

操作系統的發展與分類

  1. 手工操作階段:紙帶機

  2. 批處理階段——單道批處理系統:引入脫機輸入/輸出技術(用外圍機 + 磁帶完成),并由監督程序負責控制作業的輸入、輸出

    • 主要優點:緩解了一定程度的人機速度矛盾,資源利用率有所提升
    • 主要缺點:內存中僅能有一道程序運行,只有該程序運行結束之后才能調入下一道程序。CPU 有大量的時間是在空閑等待 I/O 完成,資源利用率依然很低
  3. 批處理階段——多道批處理系統:每次往內存中讀入多道程序,操作系統正式誕生,用于支持多道程序并發運行

    • 主要優點:多道程序并發執行,共享計算機資源。資源利用率大幅提升,CPU 和其他資源更能保持“忙碌”狀態,系統吞吐量增大。
    • 主要缺點:用戶響應時間長,沒有人機交互功能(用戶提交自己的作業之后就只能等待計算機處理完成,中間不能控制自己的作業執行。eg:無法調試程序/無法在程序運行過程中輸入一些參數)
  4. 分時操作系統:計算機以時間片為單位輪流為各個用戶/作業服務,各個用戶可通過終端與計算機進行交互。

    • 主要優點:用戶請求可以被即時響應,解決了人機交互問題。允許多個用戶同時使用一臺計算機,并且用戶對計算機的操作相互獨立,感受不到別人的存在。
    • 主要缺點:不能優先處理一些緊急任務。操作系統對各個用戶/作業都是完全公平的,循環地為每個用戶/作業服務一個時間片,不區分任務的緊急性。
  5. 實時操作系統: 在實時操作系統的控制下,計算機系統接收到外部信號后及時進行處理,并且要在嚴格的時限內處理完事件。實時操作系統的主要特點是及時性可靠性

    • 主要優點:能夠優先響應一些緊急任務,某些緊急任務不需時間片排隊。
    • 分類:硬實時操作系統:必須在絕對嚴格的規定時間內完成處理;軟實時操作系統:能接受偶爾違反時間規定
  6. 其他幾種操作系統:

    • 網絡操作系統:是伴隨著計算機網絡的發展而誕生的,能把網絡中各個計算機有機地結合起來,實現數據傳送等功能,實現網絡中各種資源的共享(如文件共享)和各臺計算機之間的通信。(如:Windows NT 就是一種典型的網絡操作系統,網站服務器就可以使用)
    • 分布式操作系統:主要特點是分布性和并行性。系統中的各臺計算機地位相同,任何工作都可以分布在這些計算機上,由它們并行、協同完成這個任務
    • 個人計算機操作系統:如 Windows XP、MacOS,方便個人使用

操作系統的運行機制

  1. 如何區分 CPU 處于用戶態還是內核態:CPU 中有一個寄存器叫程序狀態字寄存器(PSW),其中有個二進制位,1 表示內核態,0 表示用戶態(有的 CPU 也可能相反)

  2. 內核態=核心態=管態,用戶態=目態

  3. 內核態和用戶態的切換

    • 剛開機時,CPU 為內核態,操作系統內核程序先在 CPU 運行
    • 開機完成后,用戶可以啟動某個應用程序
    • 操作系統內核程序在合適的時候主動讓出 CPU,讓該應用程序上 CPU 運行(操作系統內核在讓出 CPU 之前,會用一條特權指令把?PSW?的標志位設置為用戶態)
    • 應用程序運行在用戶態
    • CPU 發現要執行的指令是特權指令,但是處在用戶態,這個非法事件會引發一個中斷信號
    • CPU 檢測到中斷信號后,會立即變為內核態,并停止運行當前的應用程序,轉而運行處理中斷信號的內核程序
    • 操作系統獲取 CPU 的控制權,直到處理完中斷后再將 CPU 使用權轉給應用程序
  • 內核態——用戶態:執行一條特權指令——修改?PSW?的標志位為用戶態,這個動作意味著操作系統將主動讓出 CPU 使用權
  • 用戶態——內核態:由中斷引發,硬件自動完成變態過程,觸發中斷信號意味著操作系統將強行奪回 CPU 的使用權(除了非法使用特權指令之外,還有很多事件會觸發中斷信號。一個共性是,但凡需要操作系統介入的地方,都會觸發中斷信號

中斷和異常

  • 中斷是讓操作系統內核奪回 CPU 使用權的唯一途徑

中斷的作用

沒有中斷機制,就不可能實現操作系統,不可能實現程序并發

  1. 讓操作系統內核強行奪回 CPU 的控制權
  2. 使 CPU 從用戶態變為內核態

中斷類型

  • 內中斷(異常、例外):與當前執行的指令有關,中斷信號來源于?CPU 內部

    • 陷阱、陷入:執行陷入指令,意味著應用程序主動地將 CPU 控制權還給操作系統內核。 系統調用就是通過陷入指令完成(陷入指令)(注意不是特權指令,能再用戶態使用)
    • 故障:由致命錯誤引起,內核程序無法修復該錯誤,因此一般不再將 CPU 使用權還給引發終止的應用程序, 而是直接終止該應用程序。如:整數除 0、非法使用特權指令
    • 終止:由錯誤條件引起的,可能被內核程序修復。內核程序修復故障后會把 CPU 使用權還給應用程序,讓它繼續執行下去。如:缺頁故障。
  • 外中斷:與當前執行的指令無關,中斷信號來源于?CPU 外部

    • 時鐘中斷
    • I/O 中斷請求

每一條指令執行結束時,CPU 都會例行檢查是否有外中斷信號

中斷機制的基本原理

不同的中斷信號,需要用不同的中斷處理程序來處理

  1. 檢查中斷信號

    • 內中斷:CPU 在執行指令時會檢查是否有異常發生
    • 外中斷:每個指令末尾,CPU 都會檢查是否有外中斷信號需要處理
  2. 找到相應的中斷處理程序

    • 根據中斷信號的類型去查詢中斷向量表,以此來找到相應的中斷處理程序在內存中的存放位置

系統調用

系統調用是操作系統提供給應用程序使用的接口,可以理解為一種可供應用程序調用的特殊函數,應用程序可以通過系統調用來請求獲得操作系統內核的服務(和庫函數類似,但有區別)

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

系統調用的分類

系統中的各種共享資源都由操作系統內核統一掌管,因此凡是與共享資源有關的操作(如存儲分配、I/O 操作、文件管理等),都必須通過系統調用的方式向操作系統內核提出服務請求,這樣可以保證系統的穩定性和安全性,防止用戶進行非法操作。

系統調用過程

操作系統的內核

宏內核和微內核

操作系統結構

分層結構

最底層是硬件,最上層是用戶接口,每層可單向調用更低一層的接口(不能跨層調用)

模塊化

將操作系統按功能劃分為若干個具有一定獨立性的模塊

內核 = 主模塊(進程、內存)+ 可加載內核模塊(驅動)

外核

外核能夠給用戶分配未經抽象的硬件資源(沒有虛擬化映射),用戶看到的是物理內存,可以提高訪存效率(在一些頻繁使用的物理地址可以這樣分配)

操作系統引導(開機過程)

  • 操作系統引導(boot):開機的時候,讓操作系統運行起來

虛擬機

虛擬機:使用虛擬化技術,將一臺物理機器虛擬化為多臺虛擬機器,每個虛擬機器都可以獨立運行一個操作系統;需要使用到虛擬機管理程序(虛擬機監控程序/VMM/Hypervisor)

  • 第一類 VMM,直接運行在硬件上,只有 VMM 是運行在內核空間中的,操作系統是運行在用戶空間的,只不過是它自己以為運行在內核空間中,VMM 提供操作系統執行特權指令的功能

  • 第二類 VMM,直接運行在宿主操作系統上(VMware)

  • 兩類 VMM 對比

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14257.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14257.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14257.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GBase 8s 如何查看回滾的事務 和對應的SQL

描述: 如何查看當前數據庫中是否有事務在回滾, 如果有, 具體是哪條 SQL 在回滾? 解決辦法: 方法1: 通過 onstat -u|grep RP; 可以獲取相關的 sessionid。 通過 onstat -g ses sid 獲取 SQL&a…

【多模態融合】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

論文鏈接:Cross Modal Transformer: Towards Fast and Robust 3D Object Detection 代碼鏈接:https://github.com/junjie18/CMT 作者:Junjie Yan, Yingfei Liu, Jianjian Sun, Fan Jia, Shuailin Li, Tiancai Wang, Xiangyu Zhang 發表單位…

字符串的周期:每一期都有那么幾位

【題目描述】 如果一個字符串可以由某個長度為k的字符串重復多次得到,則稱該串以k為周期。例 如,abcabcabcabc以3為周期(注意,它也以6和12為周期)。 輸入一個長度不超過80的字符串(不含空格),輸出其最小周期。 輸入第一行表示有T組數據,后續是T行字符串。輸出的每組…

性能測試工具

性能測試工具 1.Jmeter 環境搭建1.安裝JDK2.安裝Jmeter1.下載2.安裝3.環境配置 3.Jmeter 文件目錄介紹1.bin目錄2.docs 目錄3.printable_docs目錄4.lib目錄 4.修改默認配置1.漢化配置2.修改主題 5.元件的基本介紹6.元件的作用域作用域的原則 7.元件的執行順序 1.Jmeter 環境搭建…

Linux基礎-目錄命令

目錄文件命令 一、概述二、文件目錄1. 目錄信息1. pwd:顯示當前目錄2. cd :切換目錄3. ls:顯示目錄中的文件信息 2. 操作目錄1. mkdir : 創建目錄2. rm : 刪除目錄3. mv : 移動、重命名目錄4. cp :拷貝命令 一、概述 這里記錄一下…

【Pytorch】16.使用ImageFolder加載自定義MNIST數據集訓練手寫數字識別網絡(包含數據集下載)

數據集下載 MINST_PNG_Training在github的項目目錄中的datasets中有MNIST的png格式數據集的壓縮包 用于訓練的神經網絡模型 自定義數據集訓練 在前文【Pytorch】13.搭建完整的CIFAR10模型我們已經知道了基本搭建神經網絡的框架了,但是其中的數據集使用的torchvision…

Flutter 中的 WidgetInspector 小部件:全面指南

Flutter 中的 WidgetInspector 小部件:全面指南 Flutter 的 WidgetInspector 是一個強大的工具,它允許開發者在運行時檢查和操作他們的 widget 樹。這在調試復雜的布局和 widget 結構時尤其有用。本文將為您提供一個全面的指南,幫助您了解如…

Excel 按順序去重再編號

Excel的A有重復數據: A1Cow2Chicken3Horse4Butterfly5Cow 現在要去除重復,用自然數按順序進行編號,結果寫在相鄰列: AB1Cow12Chicken23Horse34Butterfly45Cow1 使用 SPL XLL,輸入公式并向下拖: spl(&q…

RISC-V壓縮指令擴展測試

概述 RISC-V定義了壓縮指令擴展(compressed instruction-set extension ),命名為“C”擴展。壓縮指令使用16位寬指令替換32位寬指令,從而減少代碼量。這個C擴展可運用在RV32、RV64和RV128指令集上,通常使用“RVC”來表…

Double 4 VR情景實訓教學系統在商務洽談課堂上的應用

隨著科技的不斷發展,VR(虛擬現實)技術已經逐漸滲透到各個領域。在商務洽談課堂上,Double 4 VR情景實訓教學系統不僅可以為學生提供身臨其境的模擬環境,還可以通過互動和交互式學習方式,增強學生的學習體驗和…

貝銳向日葵打造農機設備遠程運維支持方案

當物聯網“萬物互聯”的概念向第一產業賦能,農機設備的智能化程度也越來越高。 所謂農業物聯網,即在應用層將大量的傳感器節點構成監控網絡,通過各種傳感器采集信息,以幫助農民及時發現問題,并準確地判定發生問題的位…

QT 使用QZipReader 進行文件解壓縮

目錄 1、QZipReader 概述 2、解壓示例 3、說明 1、QZipReader 概述 QZipReader 是一個方便的工具,用于在 Qt 應用程序中解壓 ZIP 壓縮包。它提供了讀取 ZIP 文件的接口,并能提取其中的內容。以下是如何使用 QZipReader 解壓 ZIP 文件的示例代碼&#…

List、IList、ArrayList 和 Dictionary

List 類型: 泛型類命名空間: System.Collections.Generic作用: List<T> 表示一個強類型的對象列表&#xff0c;可以通過索引訪問。提供了搜索、排序和操作列表的方法。特點: 類型安全&#xff0c;性能較好&#xff0c;適用于需要強類型和高效操作的場景。例子: List<…

每日一練 - BGP Keepalive 報文詳解

01 真題題目 關于 BGP 的 Keepalive 報文消息的描述,錯誤的是&#xff1a; A.Keepalive 周期性的在兩個 BGP 鄰居之間發送 B.缺省情況下,Keepalive 的時間間隔是 180s C.Keepalive 報文主要用于對等路由器間的運行狀態和鏈路的可用性確認 D.Keepalive 報文的組成只包含一個…

Web安全:SQL注入之時間盲注原理+步驟+實戰操作

「作者簡介」&#xff1a;2022年北京冬奧會網絡安全中國代表隊&#xff0c;CSDN Top100&#xff0c;就職奇安信多年&#xff0c;以實戰工作為基礎對安全知識體系進行總結與歸納&#xff0c;著作適用于快速入門的 《網絡安全自學教程》&#xff0c;內容涵蓋系統安全、信息收集等…

ICML2024高分論文!大模型計算效率暴漲至200%,來自中國AI公司

前段時間&#xff0c;KAN突然爆火&#xff0c;成為可以替代MLP的一種全新神經網絡架構&#xff0c;200個參數頂30萬參數&#xff1b;而且&#xff0c;GPT-4o的生成速度也是驚艷了一眾大模型愛好者。 大家開始意識到—— 大模型的計算效率很重要&#xff0c;提升大模型的token…

前端加載excel文件數據 XLSX插件的使用

npm i xlsx import axios from axios; axios //這里用自己封裝的http是不行的&#xff0c;踩過坑.get(url,{ responseType: "arraybuffer" }).then((re) > {console.log(re)let res re.datavar XLSX require("xlsx");let wb XLSX.read(r…

黑龍江大學文學院古代文學教研室安家琪副教授

女&#xff0c;生于1990年。蘭州大學文學學士、碩士&#xff0c;上海交通大學文學博士&#xff0c;曾赴臺灣東華大學交流&#xff0c;研究方向為明清詩文與唐代文學。 在《文藝理論研究》、《蘇州大學學報》、《唐史論叢》、《中國社會科學報》等期刊發表論文20余篇&#xff0…

2024年 電工杯 (A題)大學生數學建模挑戰賽 | 園區微電網風光儲協調優化配置 | 數學建模完整代碼解析

DeepVisionary 每日深度學習前沿科技推送&頂會論文&數學建模與科技信息前沿資訊分享&#xff0c;與你一起了解前沿科技知識&#xff01; 本次DeepVisionary帶來的是電工杯的詳細解讀&#xff1a; 完整內容可以在文章末尾全文免費領取&閱讀&#xff01; 問題重述…

干就對了!

成年人的世界哪有那么容易&#xff0c;不過都在負重前行&#xff0c;誰不是一邊抱怨著&#xff0c;一邊咬牙堅持&#xff0c;一邊崩潰&#xff0c;一邊還要自我安慰。 想改變&#xff0c;想更好&#xff0c;我們都有很多想法。 想再多不如動手做一次。一旦開始做了&#xff0…