操作系統期末復習--操作系統初識以及進程與線程

操作系統概念與主要功能

操作系統的概念

在信息化時代,軟件是計算機系統的靈魂,而作為軟件核心的操作系統,已與現代計算機系統密不可分、融為一體。計算機系統自下而上大致分為4部分:硬件操作系統應用程序用戶

操作系統管理各種計算機硬件,微應用程序提供基礎,并從當計算機硬件與用戶之間的中介。

硬件如中央處理器、內存、輸入\輸出設備等,提供基本的計算資源

應用程序規定按何種方式使用這些資源來解決用戶的計算問題,操作系統控制和協調各用戶的應用程序對硬件的分配與使用

操作系統是控制和管理整個計算機系統的硬件與軟件資源,合理地組織、調度計算機的工作與資源的分配,進而為用戶和其他軟件提供方便接口和環境的程序集合。操作系統是計算機系統中最基本的系統軟件。

總結:操作系統是資源的管理者,向上提供方便易用的服務。

操作系統的功能與目標
1.操作系統作為計算機系統資源的管理者(主要功能)
  • 處理機管理功能

  • 存儲器管理功能

  • 文件管理功能

  • 設備管理功能

2.操作系統作為用戶與計算機硬件系統之間的接口

操作系統提供的接口分為兩類:

  • 命令接口,用戶使用

  • 程序接口(系統調用),編程人員使用

3.操作系統作為擴充機器

操作系統的特性與主要類型

操作系統特征
  • 并發:指兩個或多個事件在同一時間間隔內發生。

操作系統的并發性是指計算機系統中同時存在多個運行的程序,因此它具有處理和調度多個程序同時執行的能力。在操作系統中,引入進程的目的是使進程能并發執行。

注意事項:并發與并行的區別:并發是在同一時間間隔內多個時間發生,并行是指同一時刻多個事件發生。并發是假裝并行

在多道程序環境下,一段時間內,宏觀上由多道程序在同時執行,而在每個時刻,單處理機環境下實際僅能有一道程序執行,因此微觀上這些程序認識分時交替執行的,操作系統的并法性是通過分時得以實現的

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

共享分為如下兩種資源共享方式:

互斥分享方式:系統中的某些資源,雖然可供多個多個進程使用,但為使得所打印或記錄的結果不致造成混淆,應規定在一段時間內只允許一個進程訪問該資源。

僅當進程A訪問完并釋放完該資源后,才允許另一個進程對該資源進行訪問,這種資源共享方式稱為互斥式共享,而把在一段時間內只允許一個進程訪問的資源稱為臨界資源或獨占資源

同時訪問方式:這類資源允許一段時間內有多個進程“同時”訪問,這里說的同時是宏觀上的,而在微觀上,這些進程可能是交替地該資源進行訪問,即“分時共享”的。

注意事項:并發性和共享性互為存在條件

  • 虛擬:是指把一個物理上的實體變為若干邏輯上的對應物。物理實體是實的,即實際存在的,而后者是虛的,使用戶感覺上的事物。用來實現虛擬的技術,稱為虛擬技術。

  • 異步:是指多道程序環境下,由于資源有限,程序的執行并不是一貫到底的,而是走走停停的,他以不可預知的速度向前推進

操作系統的發展與分類
  • 手工操作階段(此階段無操作系統)用戶在計算機上算題的所有工作都要人工干預。

缺點:

用戶獨占全機,不會出現資源被其他用戶占用而等待的現象,但資源利用率低,

CPU等待手工操作,CPU利用不充分

總結:人機矛盾大

  • 批處理階段(操作系統開始)為了解決人機矛盾及CPU和I/O設備之間速度不匹配的矛盾

分為:單道批處理系統多道批處理系統

單道批處理系統:對作業的處理是成批進行的,但內存中始終保持一道作業

多道批處理系統:允許多個程序同時進入內存并允許它們在CPU中交替進行,這些程序共享程序中的各種硬件或軟件資源

缺點:用戶響應時間較長,不提供人機交互能力,用戶既不能了解自己的程序運行情況,又不能控制計算機。

總結:無人機交互能力

  • 分時操作系統

分時技術是指把處理器的運行時間分成最短的時間片,按時間片輪流把處理器分配給聯機作業使用。

若某個作業在分配給他的時間片內不能完成其計算,則該作業暫時停止運行,把處理器讓給其他作業使用,等待下一輪再繼續運行。

即:多個用戶通過終端同時共享一臺主機,這些終端連接在主機上,用戶可以同時與主機進行交互操作而互不干擾。

缺點:不能優先的處理一些緊急的任務,操作系統對每個用戶作業都是完全公平的,是循環的為每個用戶服務一個時間線的,并沒有去分任務的緊急性。

  • 實時操作系統

為了能在某個時間限制內完成某些緊急任務而不需要時間片排隊,誕生了實時操作系統。

實時操作系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,并控制所有實時任務協調一致的運行

特點:及時性、可靠性

  • 網絡操作系統和分布式計算機系統以及個人計算機操作系統

網絡操作系統

網絡操作系統把計算機網絡中的各臺計算機有機的結合起來,提供一種統一、經濟有效的使用各臺計算機的方法,實現各臺計算機之間數據的互相傳送。

特點:網絡中各種資源及各臺計算機之間的通信。

分布式計算機系統

用于管理分布式計算機系統的操作系統

個人計算機操作系統是目前最廣泛的操作系統

發展歷程圖:

image-20250617221743127

解答題例題1:批處理操作系統、分時操作系統和實時操作系統各有什么特點?

答案:

批處理操作系統的用戶脫機使用計算機,作業是成批處理的,系統內多道程序并發執行,交互能力差。

分時操作系統可讓多個用戶同時適用計算機,人機交互性強,具有每個用戶獨立使用計算機的獨占性,系統響應及時。

實時操作系統能對控制對象做出及時反應,可靠性高,響應及時,但資源利用率低。

例題2:有兩個程序,程序A依次使用CPU計10s,設備甲計5s,CPU計5S、設備乙10S、CPU計10S;程序B依次使用設備甲計10s,CPU計10s、設備乙5S、CPU計5S,設備乙10S。在單道程序環境下先執行程序A在執行程序B,CPU的利用率是多少?再多道程序環境下,CPU利用率是多少?

解答:

單道程序環境: (A運行總時間+B運行總時間)/CPU調用時間 = 40/(40+40)= 50%

多道程序環境:可以利用甘特圖來做題

image-20250617230450235

CPU占用40秒,CPU利用率 = 40/45 = 88.9%

注意事項:一些打印設備只能互斥性共享

進程與線程

進程的概念與特征

程序與進程的區別:

程序是指令與數據的有序集合,是靜態的,進程有自己的生命周期,是動態的

程序的順序執行

程序或程序段之間嚴格按照某種先后次序執行

特征:

  • 順序性:處理機嚴格按照程序所規定的順序執行

  • 封閉性:程序在執行時獨占系統的全部資源,不受外界程序干擾

  • 可再現性:只要初始條件相同,一個程序的多次重復執行將得到相同的結果

程序的并發執行:

兩個或兩個以上的程序或程序段可在同一時間間隔內同時執行

特征:

  • 間斷性:由于資源共享和相互合作,并發執行的程序間形成了相互制約關系,導致程序的運行過程出現 執行-暫停-執行的現象

  • 失去封閉性:程序在執行時與其他并發執行的程序共享系統的資源,因此,資源狀態的改變還與其他程序有關,即:程序本身的執行環境要受到外界程序的影響。

  • 不可再現性:同樣的初始條件,一個程序的多次重復執行可能會得到不同的結果。

進程的概念

為什幺要引入進程?

程序并發執行時產生的不可再現性,決定了通常的程序不能參與并發執行的,為了使程序能夠并發執行,并且可以對并發執行的程序加以描述和控制,引進了進程的概念,實現操作系統的并發行和共享性(兩個最基本的特征)。為了使參與并發執行的程序(含數據)能獨立運行,必須為之配置一個專門的數據結構,稱為進程數據塊(PCB)

進程是由程序段、相關數據段和進程控制塊共同組成的

注:PCB是進程存在的唯一標志

PCB內包含的數據結構內容有:進程標志信息、進程控制信息、進程資源信息、CPU現場信息

進程的定義
  • 進程是程序一次執行的過程。

  • 進程是具有獨立功能的程序在一個數據集合上運行的過程,他是系統進行資源分配和調度的一個獨立單位

  • 引入進程后,進程是資源分配的獨立單位,進程具有并發性,可以和其他進程并發執行

  • 同一個程序執行在不同的數據集合上,屬于不同的進程

  • 進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位

進程的特征
  • 動態性:進程是程序的一次執行過程,因此是動態的,動態性是進程最基本的特征

  • 并發性:多個進程實體同存于內存中,且在一段時間內同時執行,只有為程序創建進程后,多個程序才能正確的并發執行并發性是進程的重要特征

  • 獨立性:進程實體是一個能獨立運行、獨立獲得資源和獨立接收調度的基本單位

  • 異步性:進程可按各自獨立的、不可預知的速度往前推進。雖然進程具有異步性,但操作系統必須配置相應的進程同步機制來確保進程并發執行的結果是可再現的。

進程的基本狀態和轉換

通常進程有三種基本狀態。

  • 運行態:進程在處理機上運行

  • 就緒態:進程獲得了除處理機以外的一切資源,一旦得到處理機,便可立即運行

  • 阻塞態:也稱等待態,正在執行的進程由于某些事件的發生而暫時無法繼續執行,只能等相應時間完成后,才能去競爭CPU

注意事項:就緒態是指進程僅缺少處理機,只要獲得處理機資源就立即運行;堵塞態是指進程需要除處理機以外的其他資源或者等待某一事件

狀態轉換圖:

image-20250618141456522

文字敘述:

就緒態->運行態:處于就緒態的進程被調度后,獲得處理機資源(分配處理機時間片),于是進程就有就緒態轉換成運行態

運行態->就緒態:處于運行態的進程在時間片用完后,不得不讓出處理機,從而進程由運行態轉換成就緒態。或在可剝奪的操作系統中,當有更高優先級的進程就緒時,調度程序將正在執行的進程剝奪成就緒態,讓更高優先級的進程執行。

運行態->阻塞態:進程請求某一資源的使用或分配或等待某一事件的發生(或IO操作的完成)

阻塞態->就緒態:進程等待的事件到來時,如IO操作操作結束或中斷結束時,中斷處理程序必須把相應進程的狀態由阻塞態轉化成就緒態

進程控制與通信
進程控制的主要功能

進程控制的主要功能是創建新進程終止進程以及負責進程運行中的狀態轉換

總結:進程控制是對系統的所有進程進行有效的管理。

一般把進程控制用的程序段稱為原語

原語的特點是執行期間不允許中斷(原子性)

進程的創建:允許一個進程創建另一個進程。

進程的終止:引起進程終止的事件有正常結束、異常結束(出現異常事件,例如存儲區越界,非法指令,算數運算錯等)、外界干預。

進程的阻塞和喚醒正在執行的的進程,由于期待的某些事件沒有發生,如請求系統資源失敗、等待某種操作的完成、新數據尚未到達或無心工作可做等,有系統自動執行阻塞原語(Block)使自己由運行態轉化成阻塞態。

當被阻塞進程所期待的事件出現時,如IO操作完成或者期待的數據已經到達,有有關進程調用喚醒原語(Wakeup),將等待該事件的進程喚醒。

進程通信

進程通信指進程之間的信息交換,各進程擁有的內存空間相互獨立,為了進行信息交換,保證安全通信,操作系統就提供了一些繼承通信的方法:

PV操作是低級通信方式,高級通信方式是指以較高的效率傳輸大量數據的通信方式;

主要有三大類:共享存儲,消息傳遞,管道通信

共享存儲:進程通信通過對共享空間進行讀/寫操作實現信息交換,共享某些數據結構或共享存儲區。

消息傳遞:進程間的數據交換以格式化的消息為單位。通過發送消息和接收消息原語進行數據交換。有兩種消息傳遞的方式:

  • 直接通信方式

  • 間接通信方式

管道通信:利用一種特殊的pipe文件連接兩個進程

線程概念

基本概念

引入進程的目的是為了更多的程序并發執行,提高資源利用率和系統吞吐量。而引入線程的目的是為了減少程序在并發執行時所付出的時空開銷,提高操作系統的并發性能。

  • 調度:進程是擁有系統資源的基本單位,線程是調度和分派的基本單位

  • 擁有資源:進程是擁有資源的基本單位,線程不擁有系統資源

  • 并發性:進程可以并發執行,多個線程之間也能并發執行。

  • 系統開銷

  • 地址空間和其他資源(如打開的文件):進程的地址空間之間相互獨立,同一線程的個線程間共享進程的資源,某進程內的線程對其他線程不可見。

  • 通信方面:進程間通信需要進程同步和互斥手段的輔助,以保證數據的一致性,而線程間可以直接讀寫進程數據段來進行通信。

剩下的還在整理,希望對大家有所幫助

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

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

相關文章

使用jhat查看dump.hprof文件內具體對象的屬性值信息

jhat是JDK自帶的堆轉儲分析工具,可以用來查看.hprof文件中對象的具體內容。本文演示使用的是JKD8. 一、啟動jhat 執行啟動命令。 jhat -J-Xmx4g your_heap_dump.hprof -J-Xmx4g表示為jhat分配4GB內存,根據你自己情況調整大小。your_heap_dump.hprof是…

freeRTOS之隊列(queue)

一.概述 1.介紹 隊列(queue)可以用于"任務到任務"、“任務到中斷”、"中斷到任務"直接傳輸信息。 2.核心功能 線程安全:自動處理多任務訪問時的互斥問題。 數據復制:入隊時復制數據(而非引用),…

【python】typing用法

一、基礎類型提示 1. 基本類型注解 # 變量類型注解 age: int 30 name: str "Alice" is_student: bool False height: float 1.752. 函數注解 def greet(name: str, age: int) -> str:return f"Hello {name}, you are {age} years old!"二、組合類…

web前端開發核心基礎:Html結構分析,head,body,不同標簽的作用

前端技術協同關系 協作流程:HTML構建頁面框架—>css美化樣式(選擇器屬性)—>JavaScript實現交互(類似于python的腳本語言)擴展基礎:在上面三項基礎上學習Vue\React、構建工具WePack和瀏覽器工作原理…

精益數據分析(105/126):移動應用核心指標解析與用戶分層營收策略

精益數據分析(105/126):移動應用核心指標解析與用戶分層營收策略 在移動應用市場競爭白熱化的今天,單純追求下載量已無法保證商業成功,精細化運營核心指標成為盈利關鍵。本文將深入解析每日活躍用戶平均營收&#xff…

被CC攻擊了,對服務器有什么影響?

博客正文: 最近,不少網站管理員和運維人員反映遭遇了CC攻擊,導致服務器性能異常甚至癱瘓。那么,CC攻擊究竟會對服務器造成哪些影響?本文將為你簡要解析CC攻擊的原理及其帶來的危害,幫助你更好地理解并應對…

Tensorflow安裝出現dependency conflict錯誤

Python版本: 3.11.4 pip版本已升到最新 電腦上有mac的原裝Python2.x,我裝的3.11.4,還有個什么依賴的3.9 運行 pip3 install tensorflow 出現類似以下錯誤 (我報錯的是另一個不是tensorflow—estimator,但基本就是…

2025年HTTP半開與錯誤攻擊防御指南:原理拆解與實戰防護

你以為限流就能防住HTTP攻擊?黑客用協議畸形包AI調度正在撕裂傳統防線! 一、HTTP半開攻擊:慢速絞殺服務器資源 ? 攻擊原理剖析 HTTP半開攻擊(如Slowloris)是一種應用層DoS攻擊,通過建立大量半開連接耗盡…

Mybatis(XML映射文件、動態SQL)

目錄 基礎操作 準備: 刪除: 新增: 更新: 查詢: 條件查詢: XML映射文件 動態SQL if foreach sql&include 基礎操作 準備: 準備數據庫表 創建一個新的springboot工程&#xff0…

python校園拼團系統

目錄 技術棧介紹具體實現截圖系統設計研究方法:設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理,難度適中&#xf…

多模態大語言模型arxiv論文略讀(127)

When SAM2 Meets Video Camouflaged Object Segmentation: A Comprehensive Evaluation and Adaptation ?? 論文標題:When SAM2 Meets Video Camouflaged Object Segmentation: A Comprehensive Evaluation and Adaptation ?? 論文作者:Yuli Zhou, …

劍指offer32_二叉搜索樹的后序遍歷序列

二叉搜索樹的后序遍歷序列 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的后序遍歷的結果。 如果是則返回true,否則返回false。 假設輸入的數組的任意兩個數字都互不相同。 數據范圍 數組長度 [ 0 , 1000 ] [0,1000] [0,1000]。 樣例 輸入&…

《仿盒馬》app開發技術分享-- 訂單結合優惠券結算(端云一體)

技術棧 Appgallery connect 開發準備 上一節我們已經實現了優惠券的選擇,并且成功的把券后的價格也展示給用戶,不能使用的優惠券我們也用友好的方式告知用戶,這一節我們來實現優惠券內容的下一步,優惠券內容結合訂單進行結算提…

Python+Selenium+Pytest+POM自動化測試框架封裝

🍅 點擊文末小卡片 ,免費獲取軟件測試全套資料,資料在手,漲薪更快 1、測試框架簡介 1)測試框架的優點 代碼復用率高,如果不使用框架的話,代碼會顯得很冗余。可以組裝日志、報告、郵件等一些…

宋代大模型:智能重構下的文明再發現

引言:當汴京城遇見生成式AI 一幅動態的《清明上河圖》正通過全息投影技術演繹汴京城的市井百態。這個虛實交融的場景,恰似宋代大模型技術的隱喻——以人工智能為紐帶,連接起東京夢華的繁盛圖景與數字時代的文明重構。作為人工智能與歷史學交…

K-means++:讓K-means“聰明”地選擇初始中心點

大家好!歡迎來到我的技術分享博客~ 👋 在前兩篇博客中,我們深入探討了經典的 K-means 算法 以及它的優化方案 Canopy K-means。如果你還沒有看過,強烈建議先回顧一下,因為今天的主題 K-means 和它們有著千絲萬縷的聯系…

Langchain學習筆記(1)——如何調用Huggingface的模型并實現實時返回生成結果

Langchain支持很方便的OpenAI模型的調用,可以做到快速開發大模型應用。但是要使用Huggingface上的開源模型就沒有那么方便了,本文就詳細闡述如何用Langchain開發基于Huggingface上的模型,并實時返回生成結果。 實時返回生成結果是LLM很關鍵的…

Java安全-常規漏洞問題(SQL注入,XXE,SSRF,RCE)

靶場搭建 靶場下載 : https://github.com/whgojp/JavaSecLab這個靶場是使用Springboot搭建的所以不要下載 jar 文件運行,要使用IDEA運行他的文件夾 先打開pom 然后進行maven一下 改一下端口 配置完成之后修改一下 運行的模式 使用phpstudy搞一個sql數…

基于視頻的 AI 內存庫,極速語義檢索

簡介 在大模型應用里,將文本數據分塊嵌入存儲在向量數據庫已經是標準做法。然而,傳統向量數據庫雖然功能強大,但其高昂的RAM和存儲需求,以及復雜的部署運維,常常讓開發者望而卻步。今天,介紹一個名為 Memv…

接口適配器模式實現令牌桶算法和漏桶算法

以下是令牌桶算法、漏桶算法和雪花算法的清晰對比解析。它們屬于完全不同的技術領域,前兩者用于流量控制,后者用于分布式ID生成: 1. 令牌桶算法(Token Bucket) 領域:流量整形 / 速率限制核心目標&#xff…