計算機操作系統和進程

目錄

一. 操作系統

1. 操作系統的概念

2. 操作系統的功能

二. 進程

1. 進程的概念

2. 進程在系統中的管理

3. PBC

(1)pid

(2)內存指針

(3)文件標識符

4. 資源分配

5. 進程的調度

(1)狀態

(2)優先級

(3)記賬信息

(4)上下文

6. 進程的通信


一. 操作系統

1. 操作系統的概念

操作系統是計算機系統的核心軟件,負責管理計算機的硬件和軟件資源,并為用戶和應用程序提供統一的接口。?

常見的操作系統:Windows,macOS,Linux,Android,iOS,鴻蒙

注意:操作系統是一個軟件?

2. 操作系統的功能

1. 管理各種硬件設備(向下,管理各種硬件設備)

2.?給軟件提供穩定的運行環境(向上,向上層提供方便易用的服務)

3.?操作系統是系統資源的管理者

一個電腦由硬件組成,比如鼠標,鍵盤等
市面上,每一種硬件有很多廠商在生產,不同廠商生產的硬件會存在差異,
即使是同一個廠商,型號不同,也會存在差異,
意味著:每一個硬件就會對應一個程序,這樣很不利于市場的發展,
這時候操作系統就會提出統一的API,軟件來實現API,達到管理這些種硬件設備的功能操作系統會提供一些管理軟件資源的API常見的管理:文件管理,存儲器管理,設備管理,處理器管理

二. 進程

1. 進程的概念

進程是操作系統提供的一種軟件資源

多任務操作系統(同一時刻,可以執行多個任務)

單任務操作系統(同一時刻,可以執行一個任務)

進程的組成部分:程序代碼,數據和PCB(進程控制塊)組成

在任務管理器中,正在運行的程序或者正在執行的任務都可以被稱為進程,進程是動態的

注意:進程和程序的區別??

  • 程序是靜態的,進程是動態的

一個可執行文件(程序),當我們雙擊運行的時候,操作系統就會把這個可執行文件中的關鍵信息(小部分)加載到內存中,并且開始運行里面的代碼,就形成了一個進程.?

2. 進程在系統中的管理

操作系統,一般使用C/C++實現,沒有java實現的

  • 一般使用結構體的方式來描述進程的信息—PCB(進程控制塊)
  • 再使用一些數據結構(鏈表等)將這些結構體,串在一起? ? ? ? ? ?

可以粗劣認為:

  • 運行一個新的程序,系統上就會多出一個進程,也意味著會多出一個新的結構體(PCB),并且添加在鏈表上?
  • 結束一個程序,就意味著將鏈表中對應進程的PCB刪除并銷毀
  • 當在運行管理器中,看到這些任務在運行的時候,就說明在遍歷鏈表并打印每個節點的信息

也就意味著,有一些特殊的程序(在內核中執行),如果出現問題,可能會導致系統故障(卡死或者藍屏)?,但是大部分,不會導致崩潰,最多是會拋出一些異常

3. PBC

本質上是一個結構體

結構體內包含了進程的核心信息(以為很少嗎?并不,事實上可能會有上百個)

(1)pid

作用:進程的身份表示(進行區分)

在同一個機器上,某一個時刻,每個進程pid都是唯一的

在針對進程的操作中,經常使用pid作為參數

(2)內存指針

作用:描述進程使用內存資源的情況

  • 進程只能使用申請到的資源
  • 進程在運行的時候,必須將指令和數據都加載到內存中

內存指針就詳細說明進程可以使用那些資源,并且知道那些地址存放的指令,那些地址存放的數據

注意:肯定是先將指令和數據傳入內存中,再創建和運行進程?

(3)文件標識符

作用:說明了這個進程在運行的時候,會涉及到的外存相關資源

文件:對外存的一種抽象,無論是硬盤,軟盤,U盤,都叫“文件”

一個進程想要操作文件,那么結構體內的文件標識符,會記錄這個文件的相關信息

4. 資源分配

進程是系統分配資源的基本單位

  • 內存和硬盤的資源分配問題,在PCB中詳細體現
  • cpu中同樣會出現資源分配的情況(一塊cpu可能會有一個核心或者多個核心)

同一時刻,一個核心只能運行一個進程

但是電腦上的進程往往不止幾個,而是上百個甚至更多,要如何解決這個問題?

于是出現了分時復用(并發)的概念:因為cpu運行的速度很快,讓這些進程輪流進入cpu運行

?在人眼看來,這些進程就是“同時執行”

注意:多核cpu的特點

假如只有4個進程,4核cpu并不是通過進程快速切換的方式實現的并行,而是真正的同時執行(并發)

但是,現在的計算機都是并行加并發 ,具體如何,還是看系統的調度

5. 進程的調度

PCB 中還提供一些屬性, 來支持系統對進程的調度

(1)狀態

  1. 就緒狀態:進程已經準備好,等待CPU調度。
  2. 運行狀態:進程正在CPU上運行。
  3. 阻塞狀態:進程因為某些原因暫時無法運行,需要等待某個事件的發生。

(2)優先級

在多個進程需要調動的時候,會根據優先級從而選擇調動誰,

優先級的排序會根據優先級算法得出

比如:在打王者和qq,這個時候王者的優先級肯定比qq高

(3)記賬信息

會根據每個進程占用cpu多少時間,進行一個統計,然后根據統計結果,調整調度的策略

比如,一個進程很長時間都沒有進入cpu,那么就會適當的提高這個進程的優先級

(4)上下文

支撐進程調度的重要屬性,類似于游戲的存檔和讀檔

  • cpu內有一些寄存器,專門存放信息
  • 進程調度出 CPU 之前,把關鍵寄存器中的這些數據,保存到內存中。
  • 在該進程下次再去 CPU 上執行的時候,把數據從內存中加載到cpu的對應寄存器上。

6. 進程的通信

每個進程的內存,都是相互獨立的,彼此互不干擾

進程A不能訪問進程B,對應進程B也不能訪問進程A,這種稱為“進程獨立性”

好處:如果這個進程出現了問題,只會影響當前進程,不會導致所有的進程崩潰

比如:在打王者的時候,qq突然有人給你發了個神秘信息,導致你手機崩潰了,那確實很讓人惱


?注意:

進程的通信和進程的獨立性,并不沖突,系統會提供一些公共的空間來交互數據

常見的幾種通信方式:管道,文件,網絡,信號等

其中,最常用的是網絡,網絡可以實現一個主機的不同進程,也支持不同主機的不同進程


?點贊的寶子今晚自動觸發「躺贏錦鯉」buff!

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

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

相關文章

【Matlab GUI】封裝matlab GUI為exe文件

注:封裝后的exe還是需要有matlab環境才能運行 (1)安裝MCRinstaller.exe文件,在matlab安裝目錄下的toolbox/compiler/deploy/win64文件夾里 (2)安裝完MCRinstaller.exe,字命令窗口輸入&#x…

登山第二十梯:無人機實時自主探索——我是一只小小小鳥

文章目錄 一 摘要 二 資源 三 內容 一 摘要 自主探索是無人機 (UAV) 各種應用的基本問題。最近,基于 LiDAR 的探索因其能夠生成大規模環境的高精度點云地圖而受到廣泛關注。雖然點云本身就為導航提供了信息,但許多現有的勘探方…

JAVA序列化與反序列化URLDNS鏈CC1鏈

1、序列化的實現 java序列化的是對象屬性的,只有實現了Serializable或者Externalizable接口的類的對象才能被序列化為字節序列。(不是則會拋出異常),靜態成員變量是屬于類的,所以靜態成員變量是不能被序列化的&#x…

SAP-ABAP: 采購申請創建(PR)BAPI_PR_CREATE 技術指南-詳解

BAPI_PR_CREATE 技術指南 用途:通過 RFC 接口創建 SAP 采購申請(PR),支持自動化集成與批量處理。 一、功能概覽 類別說明核心功能創建標準采購申請、預留轉采購申請,支持多行項目及賬戶分配。集成場景與 MRP 系統、外…

Android7 Input(一)Android Input服務初始化

本系列博客主要描述Android 7.1系統中輸入管理服務InputManagerService的源碼分析。 概述 本文主要描述了InputManagerService服務的初始化和啟動,在Android7系統上InputManagerService服務的框架如下所示: 注:箭頭的方向,并不能真實代表數…

用于 RGB-D 顯著目標檢測的點感知交互和 CNN 誘導的細化網絡(問題)

摘要 問題一:但在對自模態和跨模態的全局長距離依賴關系進行建模方面仍顯不足。什么意思? 自模態(Intra-modal)全局依賴:在同一模態內,長距離像素之間的信息交互對于理解全局背景很重要,但 CN…

html5基于Canvas的經典打磚塊游戲開發實踐

基于Canvas的經典打磚塊游戲開發實踐 這里寫目錄標題 基于Canvas的經典打磚塊游戲開發實踐項目介紹技術棧核心功能實現1. 游戲初始化2. 游戲對象設計3. 碰撞檢測系統4. 動畫系統5. 用戶界面設計 性能優化1. 渲染優化2. 內存管理 項目亮點技術難點突破項目總結 項目介紹 在這個…

MySQL外鍵約束下的索引刪除難題:從報錯到完美解決的實戰指南

🚨 MySQL外鍵約束下的索引刪除難題:從報錯到完美解決的實戰指南 🔥 問題背景:一個看似簡單的刪除操作引發的連環坑 場景復現:某日接到需求,需刪除 invite_codes 表中的冗余索引 FKnqn27fyjlgio5y60eieohi0…

使用 request 的 axios 狀態碼分析

request.interceptors.response.use(function(response){},function(error){})后端返回結果code400不經過response,直接跳到error。 當后端返回狀態碼為 400 時直接進入 error 回調而不經過 response 回調,這是因為 axios 默認會將狀態碼不在 200 - 299 范圍內的響…

Rust嵌入式開發環境搭建指南(基于Stm32+Vscode)

Rust嵌入式開發環境搭建指南(基于Stm32+Vscode) 部分目錄如下所示: 目錄 簡介Rust開發環境安裝STM32開發工具鏈安裝VSCode環境配置VSCode插件安裝調試器配置項目創建與配置常見問題與解決方案簡介 本文檔旨在指導開發者如何搭建基于Rust語言的STM32嵌入式開發環境。相比傳…

動態規劃合集——動態規劃基本原理

動態規劃合集——動態規劃基本原理 動態規劃原理1258:【例9.2】數字金字塔 動態規劃原理深度優先搜索記憶化搜索動態規劃(順推)動態規劃原理題解分析 滾動數組優化動態規劃(逆推) 動態規劃原理 從數塔問題出發理解動態…

如何讓節卡機器人精準對點?

如何讓節卡機器人精準對點? JAKA Zu 軟件主界面主要由功能欄、開關欄、菜單欄構成。 菜單欄:控制柜管理,機器人管理與軟件管理組成。主要功能為對控制柜關機、APP 設置、機器人本體設 置、控制柜設置、連接機器人和機器人顯示等功能。 開關…

自動化測試工具-Playwright介紹和快速實例

Playwright 是什么 Playwright 是由 Microsoft 開發的開源自動化測試工具,專為現代 Web 應用設計。它支持 Chromium、Firefox 和 WebKit 內核的瀏覽器,能夠跨平臺(Windows、macOS、Linux)運行,提供強大的瀏覽器自動化能力,適用于測試、爬蟲和監控等場景。 Playwright的…

軟考程序員考試知識點匯總

軟考程序員考試(初級資格)主要考察計算機基礎理論、編程能力及軟件開發相關知識。以下是核心知識點總結及備考建議: 一、計算機基礎 數制與編碼 二進制、八進制、十進制、十六進制轉換原碼、反碼、補碼表示(整數與浮點數&#xf…

實時視頻分析的破局之道:藍耘 MaaS 如何與海螺 AI 視頻實現高效協同

一、藍耘 MaaS 平臺:AI 模型全生命周期管理的智能引擎 藍耘 MaaS(Model-as-a-Service)平臺是由藍耘科技推出的 AI 模型全生命周期管理平臺,專注于為企業和開發者提供從模型訓練、推理到部署的一站式解決方案。依托云原生架構、高…

設計模式(行為型)-策略模式

目錄 定義 類圖 角色 角色詳解 Strategy(抽象策略類)? Context(環境類 / 上下文類)? ConcreteStrategy(具體策略類)? 優缺點 優點? 缺點? 使用場景 類行為差異場景? 動態算法選…

【算法day14】三數之和

三數之和 https://leetcode.cn/problems/3sum/description/ 給你一個整數數組 nums ,判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k ,同時還滿足 nums[i] nums[j] nums[k] 0 。請你返回所有和為 0 且不重復的三元組。…

優化器/模型參數/超參數

參數(Parameters) vs. 超參數(Hyperparameters) 1.1 參數(Parameters) 定義:模型中需要學習的變量,例如神經網絡中的權重(Weight)和偏置(Bias&a…

10、STL中的unordered_map使用方法

一、了解 1、unordered_map(哈希) unordered_map是借用哈希表實現的關聯容器。 訪問鍵值對O(1),最壞情況O(n),例如哈希沖突嚴重時。【n是一個哈希桶的元素數量】 unordered_map特性 鍵值對存儲&#xff…

C++ 頭文件說明

如果一個程序足夠大,代碼功能很多,可以想象,不可能把代碼寫在一個cpp文件里。我們需要模塊化,這樣的好處很多,方便分工合作,可讀性提高,調用也方便。 這個要怎么做呢? 很簡單直接當…