操作系統概述(3)

批處理系統

1.單道批處理系統

  • 單道批處理系統是成批地處理作用,并且始終只有一道作業在內存中的系統。
  • 優點:提高系統資源的利用率和系統吞吐量。
  • 缺點:系統中的資源得不到充分利用。

2.多道批處理系統

  • 引入多道程序設計技術,是為了進一步提高系統資源的利用率和系統吞吐量。
  • 優點:系統資源利用率高,系統吞吐量大。
  • 缺點:平均周轉時間長,無交互能力。

分時系統

  • 分時系統是指在一臺主機上連續若干個配有顯示器和鍵盤的終端,并由此組成的系統。
  • 分時系統允許若干個用戶同時通自己的終端以交互方式使用主機,共享主機中的資源。
分時系統的特性:

1.多路性系統按分時原則為每個用戶服務,宏觀上若干個用戶是同時工作的,微觀上每個作業輪流執行一個時間片。

2.獨立性:每個用戶都是獨立操作的,互不干擾。

3.及時性:用戶的請求能在很短的時間內獲得響應。

4.交互性:用戶可以通過自己的終端與系統進行交互。

實時系統

  • 實時系統是指能夠及時響應外部事件的請求,在規定時間內完成相應的處理,并且控制所有實時任務協調一致地運行的系統。
  • 實時系統的特征是將時間作為關鍵參數,具有多路性、獨立性、及時性、交互性、可靠性。
  • 常見的實時系統有工業控制系統、武器控制系統、信息查詢系統、多媒體系統、嵌入式系統。

微機操作系統

  • 微機操作系統是指配置在微型機上的操作系統。分為單用戶單任務操作系統、單用戶多任務操作系統、多用戶多任務操作系統。

網絡操作系統

  • 網絡操作系統是指在計算機網絡環境下,管理和控制網絡資源,實現數據通信,共享網絡資源,為用戶提供與網絡資源之間接口的一組軟件和規程的集合。
  • 由于現代操作系統通常具有上網功能,所以如今一般不再特指某個操作系統為網絡操作系統。

微內核結構的操作系統

微內核操作系統的主要特點:

  1. 足夠小的內核
  2. 基于客戶/服務器模式
  3. 利用“機制與策略分離”的原理,將控制放在操作系統的微內核中
  4. 采用面向對象技術

優點 :可擴展性高、可靠性高、可移植性強、支持分布式系統、采用面向對象技術、提高了系統性能、減少了開發系統的開銷。

操作系統的基本特征

1.并發性:并發性是指兩個或多個時間在同一時間間隔內發生。

2.共享性:共享性是指內存中并發執行的若干個進程共享系統中的各種系統。

3.虛擬性:虛擬是將一個物理實體變為若干個邏輯上的對應物。

4.異步性:異步性是指在多道程序環境下,每個進程何時進行、何時暫停未知,并以不可預知的速度向前推進。

  • 并發性和共享性是多用戶多任務操作系統的兩個基本特征。
  • 因為操作系統具有并發性,所以能極大地提高系統資源利用率并增大系統的吞吐量。
并發性和并行性的區別
  • 并發性:兩個或多個事件在同一時間間隔發生。
  • 并行性:兩個或多個事件在同一時刻發生。

操作系統的主要功能

操作系統的主要功能有:

處理機管理功能存儲器管理功能設備管理功能文件管理功能操作系統與用戶之間的接口現代操作系統的新功能

  1. ?處理機管理?對進程進行管理、包括進程控制、進程同步、進程通信、調度(包括作業調度、進程調度等)。對于引入了線程的操作系統,處理機管理也包含對線程進行管理。
  2. 存儲器管理:包括內存分配與回收、內存保護、地址映射、內存擴充等。存儲器管理功能可以為多道程序提供良好的運行環境,提高存儲器的利用率,減少內存碎片,便于用戶使用,從邏輯上擴充內存。
  3. 設備管理:包括緩沖管理、設備分配、設備處理、虛擬設備等。設備管理功能可以完成用戶進程的I/O請求,提高I/O速度,提高CPU與I/O設備的利用率,讓用戶更方便地使用I/O設備。
  4. 文件管理:包括文件存儲空間管理、目錄管理、文件讀/寫管理、文件共享、文件保護等。文件管理功能可以方便用戶管理用戶文件和系統文件,并提供了有效的存取控制功能,保證了文件的安全性。
  5. 操作系統與用戶之間的接口:操作系統向用戶提供了“操作系統與用戶之間的接口”,接口分為用戶接口和程序接口兩種類型。操作系統由于用戶之間的接口便于用戶使用操作子系統。

裸機應用編程

1.什么是裸機?

  • 無軟件的計算機硬件系統。

2.什么是裸機應用編程?

  • 編寫語言:直接使用CPU指令集。
  • 開發環境:基于硬件電路上的硬件接口。
3.所有臺式機,CPU一樣嗎?
  • 臺式計算機和手機的CPU就不同。
  • 即使家用電器里面都有不同的CPU。
4.不同類型CPU,指令集一樣嗎?
  • 指令集一樣,就不能叫不同類型CPU,即使同類型,也會有變化。
5.為什么計算機CPU不做成一樣?
  • 技術發展的差異:半導體技術水平導致制造過程的差異。
  • 應用發展的需求:成本控制和電路設計,例如家用電器、早期的手機。

裸機上機器語言編程

  • 裸機編程最早基于指令集結構(Instruction Set Architecture, ISA)編寫應用程序,即機器語言源程序
  • 提問:上面兩種機器語言代碼為什么不同,有哪些不同?這樣的編程你有什么感覺?
  • x-86指令長度可變,而MIPS定長,數據好像一樣,但字節順序顛倒。能不能讓編程更輕松?
兩種機器語言代碼不同的原因及不同點
  1. 根本原因:X86 與 MIPS 屬于不同的指令集架構(ISA),ISA 定義了指令格式、操作碼、寄存器使用等底層規則,導致機器語言代碼的編碼規則不同。

  2. 具體不同點

    • 指令長度:X86 指令長度可變(如不同指令碼字節數不同),MIPS 指令定長(通常為 4 字節)。
    • 字節順序:存在大端 / 小端存儲差異,如數據相同但字節順序顛倒。
    • 指令編碼規則:兩者操作碼、尋址方式的機器碼表示不同,反映了各自架構的硬件設計邏輯。
  3. 編程感受:直接使用機器語言編程繁瑣易錯,需記憶復雜的二進制 / 十六進制編碼,開發效率低,代碼可讀性、可維護性差。

讓編程更輕松的方法

可通過抽象層簡化編程:

  • 使用匯編語言:用助記符(如 ADD、MOV)替代機器碼,降低記憶成本,再通過匯編器轉換為機器語言。
  • 高級編程語言:利用 C、Python 等高級語言,通過編譯器 / 解釋器將代碼轉換為機器語言,程序員無需關注底層細節,聚焦邏輯實現,提升開發效率。

?裸機上匯編語言編程

  • 裸機編程基于匯編語言格式編寫應用程序,即匯編語言源程序代碼,即匯編程序自動轉換匯編指令成機器指令代碼
  • 通過機器語言與匯編語言代碼相比,其語言符號易于理解指令功能,而且匯編數據以10進制和字符為主,而機器語言以16進制編碼為主,CPU不一樣指令也不一樣,可能字節順序不同。
  • 能否通過C語言源程序追蹤發現邏輯編程中的指令處理的信息?
借助 C 語言源程序追蹤邏輯編程中的指令處理信息:
  1. 編譯生成匯編代碼:使用編譯工具(如gcc -S)將 C 語言源程序編譯為匯編語言代碼。匯編代碼中會直接呈現底層指令(如movaddjmp等),清晰展示指令處理邏輯,包括寄存器操作、內存訪問、運算指令等裸機編程層面的指令處理細節。
  2. 反匯編可執行文件:將 C 語言編譯生成的可執行文件(機器碼),通過反匯編工具(如objdump -d)還原為匯編代碼。反匯編結果會暴露機器碼對應的指令處理信息,包括指令類型、操作數、執行順序等,從而追蹤到底層指令處理邏輯。

盡管 C 語言源程序本身未直接書寫指令,但通過編譯生成的匯編代碼或反匯編可執行文件,能夠間接追蹤到指令處理的具體信息,建立高級語言與底層指令處理的關聯。

裸機編程特性
  1. 如果換 CPU,CPU 指令集變了,基于 CPU 指令集的程序還能用?
    通常無法直接使用。程序執行依賴特定 CPU 指令集的操作支持,指令集變更后,原程序失去運行基礎。

  2. 如果接口硬件(類型、規模)擴充,包含原硬件接口程序能選擇使用?
    若擴充的硬件接口仍保留原接口,原程序可選擇繼續使用;若完全替換原接口,程序需重新適配新接口才能用。

  3. 如果硬件設計未變但應用功能添加,以前的程序還可選擇使用?
    若原程序不依賴新增功能,可繼續使用;若程序邏輯與新增功能有關聯或依賴,則需修改調整后才能用。

  4. 如果基于 CPU 指令集編寫的程序,在哪調試?怎么調試?CPU 變了怎么辦?
    需在專門的開發板或開發設備上調試。若 CPU 變更,需更換適配新 CPU 的開發板 / 設備,重新搭建調試環境。

  5. 程序設計要考慮哪些?
    需考慮:滿足應用業務功能需求;CPU 指令集提供的操作能力;CPU 寄存器數量限制;硬件中斷支持機制;內存單元布局;外部設備接口類型、規模及操作邏輯。

?操作系統上編程:算法語言編程

  • 軟件層抽象隱藏硬件接口,算法語言語句抽象為虛擬CPU指令,不與具體的CPU指令集、內存和外部硬件接口對應。
  • 算法語言源程序代碼通過一種自動化的工具,即編譯程序翻譯成為針對一種CPU可識別的CPU指令集的匯編語言符號,再轉換為二進制編碼的機器語言指令格式。

OS 上應用編程問題

  1. 算法設計

    • 無需重點關注編碼、類型、字節順序、運算溢出及精度等限制,也可不細究運算和存貯訪問次數對程序效率的影響。
    • 依據問題特性選擇迭代或遞歸算法,部分算法可能突破 OS 極限。
  2. 語句組織

    • 忽略命名唯一性(全局 / 局部變量、函數)、語句編譯或解釋后機器指令的差異對程序運行效率的影響。
    • 未注意相同運算因參與類型不同,可能導致機器指令實現功能錯誤。
  3. 運行訪問

    • 變量按類型和大小分配字節,地址連續編址,需先分配后訪問,避免使用失效、超量或跨區地址,防止污染函數地址或返回地址,引發程序失控、效率低等問題。
    • 中斷處理可能插入語句(機器指令組)中,引發主程序運行狀態保護問題。

?

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

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

相關文章

數字身份DID協議:如何用Solidity編寫去中心化身份合約

本文提出基于以太坊的自主主權身份(SSI)實現方案,通過擴展ERC-734/ERC-735標準構建鏈上身份核心合約,支持可驗證聲明、多密鑰輪換、屬性隱私保護等特性。設計的三層架構體系將身份控制邏輯與數據存儲分離,在測試網環境…

【目標檢測】【深度學習】【Pytorch版本】YOLOV2模型算法詳解

【目標檢測】【深度學習】【Pytorch版本】YOLOV2模型算法詳解 文章目錄 【目標檢測】【深度學習】【Pytorch版本】YOLOV2模型算法詳解前言YOLOV2的模型結構YOLOV2模型的基本執行流程YOLOV2模型的網絡參數YOLOV2模型的訓練方式 YOLOV2的核心思想前向傳播階段反向傳播階段 總結 前…

第421場周賽:數組的最大因子得分、

Q1、數組的最大因子得分 1、題目描述 給你一個整數數組 nums。 因子得分 定義為數組所有元素的最小公倍數(LCM)與最大公約數(GCD)的 乘積。 在 最多 移除一個元素的情況下,返回 nums 的 最大因子得分。 注意&…

機器學習(神經網絡基礎篇)——個人理解篇5(梯度下降中遇到的問題)

在神經網絡訓練中,計算參數的梯度是關鍵步驟。numerical_gradient 方法旨在通過數值微分(中心差分法)計算損失函數對網絡參數的梯度。然而,該方法的實現存在一個關鍵問題,導致梯度計算錯誤。 1、錯誤代碼示例&#xf…

40常用控件_WindowFrame的影響

window frame 的影響 如果 widget 作為一個窗口(帶有標題欄,最小化,最大化,關閉按鈕),那么在計算尺寸和坐標的 時候就有兩種算法.包含 window frame 和 不包含 window frame. 其中x(),y0,frameGeometry(), pos(),move() 都是按照包含 window frame 的方式來計算 的. 其中 geome…

Nginx搭建API網關服務教程-系統架構優化 API統一管理

超實用!用Nginx搭建API網關服務,讓你的系統架構更穩更強大!🚀 親們,今天來給大家種草一個超級實用的API網關搭建方案啦!👀 在如今的Web系統架構中,一個穩定、高性能、可擴展的API網…

USB設備老是提示有問題,如何解決

問題描述:有一臺usb設備一旦不小心碰了下,后面就在右下角提示“無法識別的USB設備”“跟這臺計算機連接的前一個USB設備0工作不正常,WIndows無法識別它”。我這個是明確知道那個設備,如果不知道也可以同樣解決。 解決方法&#xf…

數據操作語言

一、DML的核心操作類型 1.添加數據(INSERT) (1)手動插入:逐行插入數據,適用于少量數據。 INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2);(2)批量導入:通過外部文件導入數據,適用于大數據場景

【Python】案例:計算股票收益率和波動率

【Python】案例:計算股票收益率和波動率: 1、案例需求2、數據準備3、案例實現 1、案例需求 在分析股票數據時,我們需要從這些數據中得到一些關鍵指標進行評估,比如收益率、波動率,其中收益率又可以細分為簡單收益率和…

geoserver搭建Docker一鍵直接安裝并上傳tif影像預覽

geoserver搭建Docker一鍵直接安裝 文章目錄 geoserver搭建Docker一鍵直接安裝前言一、Docker拉取Geoserver二、運行后使用geoserver進行數據管理進入geoserver調整語言登錄geoserver上傳一個tif影像建立工作空間并上傳自己的tif數據建立圖層預覽 總結 前言 使用docker安裝geos…

STM32看門狗應用實戰:獨立看門狗與窗口看門狗深度解析(下) | 零基礎入門STM32第九十五步

主題內容教學目的/擴展視頻看門狗什么是看門狗,原理分析,啟動喂狗方法,讀標志位。熟悉在程序里用看門狗。 師從洋桃電子,杜洋老師 📑文章目錄 一、看門狗應用架構分析1.1 系統監控流程圖1.2 雙看門狗應用場景對比 二、…

nacos集群啟動問題

根據您的描述,Nacos集群只能啟動兩個節點,可能的原因和解決方法如下: 1. 集群配置問題 ? 原因:cluster.conf文件中可能只配置了兩個節點的地址,導致第三個節點無法加入集群。 ? 解決方法: ? 檢查每個…

【C語言】跳臺階

相信你是最棒噠!!! 一、題目描述 二、題目代碼 1.斐波那契數列 2.DFS深度搜索 總結 一、題目描述 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先后次序不同算不同的結果…

指紋瀏覽器技術架構解析:高并發批量注冊業務的工程化實踐——基于分布式指紋引擎與防關聯策略的深度實現

一、技術背景與行業痛點 在跨境電商、廣告投放、問卷調查等場景中,批量注冊與多賬號矩陣運營已成為剛需。然而,主流平臺(如亞馬遜、Facebook、Google)的風控系統通過瀏覽器指紋追蹤(Canvas/WebGL/WebRTC等&#xff09…

linux基礎操作

一、系統目錄知識 /bin: bin 是 Binaries (二進制文件) 的縮寫, 這個目錄存放著最經常使用的命令。 /boot: 這里存放的是啟動 Linux 時使用的一些核心文件,包括一些連接文件以及鏡像文件。 /dev : dev 是 Device(設備) 的縮寫,…

源碼分析之Leaflet圖層控制控件Control.Layers實現原理

概述 本文將介紹Leaflet庫中最后一個組件,即圖層控制組件 Control.Layers。 源碼實現 export var Layers Control.extend({options: {collapsed: true,position: "topright",autoZIndex: true,hideSingleBase: false,sortLayers: false,sortFunction:…

Element 使用 textarea 內容實現高度自適應

在 ElInput 組件的 type"textarea" 模式下&#xff0c;你可以使用 autosize 屬性來實現內容高度自適應。當沒有內容時默認顯示 3 行&#xff0c;當有內容時根據內容動態調整高度。 代碼&#xff1a; <el-form-item v-if"item.type textarea" :rules&…

Java技術生態前沿洞察:虛擬線程引領并發革命,框架創新賦能云原生時代

Java技術生態正迎來新一輪變革浪潮。虛擬線程的落地成為高并發編程范式轉折點&#xff0c;其極低資源開銷特性在電商秒殺場景中展現出3倍吞吐量提升&#xff0c;徹底改寫傳統線程模型性能邊界。Spring Boot 3.2原生支持虛擬線程&#xff0c;結合Observation API與HTTP客戶端優化…

leetcode每日一題:替換子串得到平衡字符串

引言 今天的每日一題原題是1863. 找出所有子集的異或總和再求和&#xff0c;比較水&#xff0c;直接對于集合中的每一個元素&#xff0c;都有取或者不取2種情況&#xff0c;直接遞歸進去求和即可。更換成前幾天遇到的更有意思的一題來寫這個每日一題。 題目 有一個只含有 Q,…

node-modules-inspector 可視化node_modules

1、node_modules 每個vue的項目都有很多的依賴&#xff0c;有的是dev的&#xff0c;有的是生產的。 2、使用命令pnpx node-modules-inspector pnpx node-modules-inspector 3、node_modules可視化 4、在線體驗 Node Modules Inspector 5、github地址 https://github.com/a…