你真的了解操作系統嗎?

文章目錄

    • 操作系統是什么?
    • 操作系統核心功能
    • 為什么需要操作系統(目的)?
    • 操作系統的下層是什么?上層又是什么?
    • 如何理解“管理”?——“先描述,再組織”


操作系統是什么?

任何計算機系統都包含?個基本的程序集合,稱為操作系統(OS)。
籠統的說,操作系統包括:

  • 內核(進程管理,內存管理,文件管理,驅動管理)
  • 其他程序(如函數庫,shell程序等)

在這里插入圖片描述

操作系統核心功能

在整個計算機軟硬件架構中,操作系統的定位是:?款純正的“搞管理”的軟件

對什么進行管理呢?

操作系統就是一款對計算機硬件軟件進行管理的軟件。


為什么需要操作系統(目的)?

我們知道,一個良好的秩序是需要管理的,有了良好的秩序,做事情才可以簡單而高效。以我們人類社會為例,每個國家都有政府,政府制定法律法規對人們進行管理,這是人類社會井然有序的關鍵,這是亙古不變的。

計算機的世界也是如此,操作系統就是“政府”,各個硬件軟件就是“人民”。

所以,操作系統通過管理好底層的軟硬件資源(手段),為用戶提供一個良好的執行環境(目的)。
這里用戶其實一般指的是程序員,普通用戶一般不會直接接觸操作系統,一般使用的是程序員開發出來的軟件。

總結

  • 操作系統幫助用戶管理好下面的軟硬件資源
  • 為用戶提供一個良好(穩定、高效、安全)的運行環境

操作系統究竟管理些什么呢?

  1. 內存管理:內存分配、內存共享、內存保護、內存擴張等等
  2. 驅動管理:對計算機硬件的驅動程序進行分類、更新、刪除等操作
  3. 文件管理:文件存儲空間的管理、目錄管理、文件操作管理以及文件保護等等
  4. 進程管理:其工作主要是進程的調度。

在這里插入圖片描述


操作系統的下層是什么?上層又是什么?

我們知道,操作系統是對硬件進行管理的,對硬件之間的數據讀取,刷新,數量等等進行管理分配。
在這里插入圖片描述

那么,操作系統直接和底層硬件打交道嗎?
例如,如果操作系統要自己來讀取硬件的數據,那么只要改變了對硬件讀取數據的方式,那么操作系統的內核源代碼就需要進行重新編譯,也就是重啟操作系統,如此代價太高了。
因此,我們需要使用驅動程序,間接管理底層硬件,此時操作系統就只需關心何時讀取數據,而不用關心數據是如何讀取的了。
在這里插入圖片描述
那操作系統的上層是什么呢?
第一個想到的一定是我們用戶了,他一定是我們計算機的頂層

在這里插入圖片描述
但是,直接讓用戶使用操作系統安全嗎?
顯然是不安全的,操作系統中會有各種數據若是被用戶隨意修改,會出現嚴重的問題。
因此,操作系統不相信任何用戶!

為了保證自身數據安全,也為了保證給用戶提供服務,操作系統以接口的方式給用戶提供調用的入口,來獲取操作系統的內部數據。其實就是封裝起來了。

我們知道,Linux是用C語言實現的,所以系統調用是:操作系統提供的用C實現的,自己內部函數的調用

總之,所有訪問操作系統的行為,都只能通過系統調用完成

在這里插入圖片描述
但是,讓所有用戶訪問操作系統都直接系統調用嗎?這樣對于像我們這樣的普通用戶的使用成本是不是太高了?
因為要使用系統調用前提條件是你得對系統有一定了解。所以在系統調用的上層又構建出了很多用戶操作接口,它包括lib(函數庫如libc、libc++等等,實際就是我們平時寫程序時調用的庫函數)、shell外殼以及部分指令。

完整結構如下:
在這里插入圖片描述


如何理解“管理”?——“先描述,再組織”

我們以大學的管理為例
在大學中:

  • 最典型的管理者——校長
  • 最典型的被管理者——學生

我們想想,你在學校見過校長嗎?亦或是說,所有的學生都見過校長嗎?
管理者和被管理者是不需要見面的!
那不需要見面,校長是如何管理好所有學生的呢?
其實,只要能夠得到被管理人的信息,就可以在未來進行管理決策。
管理的本質:通過對數據的管理,達到對人的管理

我們思考一下,做一件事情分為幾步?
實際上完成任何一件事都要經過兩個過程:

  1. 決策:決定要不要做這件事或是如何做這件事
  2. 執行:去做這件事情

校長管理學生,校長其實就是決策者。
那執行者是誰呢?
校長與被學生面都不見,那校長如何獲取對應學生信息呢?
通過輔導員(老師),輔導員就是執行者。

在這里插入圖片描述

舉個例子,校長需要挑選3個學生代表學校參加算法大賽,于是校長喊來輔導員說:“給我挑出10個算法最優秀學生,把他們信息給我。”于是輔導員在校內舉辦了一場算法校賽,選拔出前10名的學生,將他們的信息交給了校長,校長拿到他們的信息后,挑出了3個人安排去參加算法大賽。

可以發現,管理者在不與被管理者見面的情況下,完成了管理。

校長如何管理學生數據???
成千上萬個學生,難道校長一個一個找嗎?
如果校長曾經是一個程序員,這可忍不了一點,他會定義一個學生類,這個類包含學生的所有屬性,如姓名、學號、電話、班級、專業、績點……。然后實例化出所有學生對象,然后用數據結構(以鏈表為例)將他們存儲起來,最后校長只需要將這個學生鏈表結構管理好就可以了!

#include<list>class student
{
public://……
private:char* name;int age;//……
};list<student> stu_data;

將對學生的管理操作轉化為了對鏈表的增刪查改!

再同步到計算機的世界,我們就好理解了:

  • 管理者(決策者)——操作系統
  • 執行者——驅動程序
  • 被管理者——軟硬件資源

在操作系統中,管理任何對象,最終都可以轉化為對某種數據結構的增刪查改

前者定義類的過程就是描述,后者用數據結構建立模型的過程就是組織。

這里的組織又稱建模,計算機只能這么做!

管理的精髓總結為六個字:先描述,再組織

其實不僅僅對于操作系統做管理是如此,我們在計算機中管理數據也是同理的,比如我們之前寫的通訊錄,先定義一個聯系人類,類中包含聯系人的所有屬性,此行為是描述。之后我們用順序表對所有聯系人進行建模,此行為是組織。最后,我們管理聯系人就轉化為了對這個順序表的增刪查改。

在整個計算機世界中,都遵循“先描述,再組織”!

其實還不僅如此,在現實世界中也是這樣的。我們思考一下,人是怎樣辨別一個事情或者一個對象的?沒錯,都是通過屬性認識的,只要當屬性足夠多,這個屬性集合就是目標對象!

我的意思是,如果在理想情況下,我們可以列出一個對象的所有屬性,則在現實世界中,也遵循“先描述,再組織”!

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

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

相關文章

從0到1詳解requests接口自動化測試

前言 接口測試是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換&#xff0c;傳遞和控制管理過程&#xff0c;以及系統間的相互邏輯依賴關系等。 1、理解什么是接口 接口一般來說有兩種…

Linux系統操作編程——http

萬維網www萬維網是一個大規模的、聯機式的信息儲藏所 &#xff0c;實現從一個站點鏈接到另一個站點萬維網服務器后臺標記萬維網數據方式&#xff1a;url&#xff1a;統一資源定位符萬維網客戶端與萬維網服務器的通信方式&#xff1a;HTTP&#xff1a;超文本傳輸協議萬維網客戶端…

Langchian-chatchat私有化部署和踩坑問題以及解決方案[v0.3.1]

文章目錄一 langchain-chatchat項目二 本地私有部署2.1 源碼下載2.2 創建虛擬環境2.3 安裝Poetry2.4 安裝項目依賴2.5 初始化項目2.6 修改配置信息2.7 初始化知識庫2.8 啟動服務三 問題和解決方法3.1 poetry和packaging版本兼容性3.2 Langchain-chatchatPDF加載錯誤分析[win平臺…

Day3--HOT100--42. 接雨水,3. 無重復字符的最長子串,438. 找到字符串中所有字母異位詞

Day3–HOT100–42. 接雨水&#xff0c;3. 無重復字符的最長子串&#xff0c;438. 找到字符串中所有字母異位詞 每日刷題系列。今天的題目是力扣HOT100題單。 雙指針和滑動窗口題目。其中438題踩了坑&#xff0c;很值得看一下。 42. 接雨水 思路&#xff1a; 每個位置i&#x…

Kafka Broker 核心原理全解析:存儲、高可用與數據同步

Kafka Broker 核心原理全解析&#xff1a;存儲、高可用與數據同步 思維導圖正文&#xff1a;Kafka Broker 核心原理深度剖析 Kafka 作為高性能的分布式消息隊列&#xff0c;其 Broker 節點的設計是支撐高吞吐、高可用的核心。本文將從存儲結構、消息清理、高可用選舉、數據同步…

RTTR反射機制示例

1. Person類型頭文件 #ifndef PERSON_H …

計數組合學7.21(有界部分大小的平面分拆)

7.21 有界部分大小的平面分拆 本節的主要目標是在 q1q 1q1 的情況下細化定理 7.20.1&#xff0c;通過限制平面分拆 π∈P(r,c)\pi \in P(r, c)π∈P(r,c) 的最大部分的大小。例如&#xff0c;考慮特殊情況 r1r 1r1&#xff0c;此時 π\piπ 只是一個不超過 ccc 個部分的普通分…

Product Hunt 每日熱榜 | 2025-08-26

1. Trace 標語&#xff1a;人類與人工智能的工作流程自動化 &#x1f47e; 介紹&#xff1a;一個工作流程自動化平臺&#xff0c;將任務分配給合適的處理者——無論是人類還是人工智能。通過連接像Slack、Jira和Notion這樣的工具&#xff0c;Trace能夠拆解現有工作流程&#…

llama.cpp reranking源碼分析

大模型時代&#xff0c;reranker一直是提高RAG有效性的重要工具。相對于初篩階段向量檢索&#xff0c;精排階段的reranker需要query和每個候選document做相關計算。初篩已經將候選documents限制在一個相對較小范圍&#xff0c;但依然要進行大量的相關性計算。 llama.cpp是廣泛…

ruoyi-vue(十二)——定時任務,緩存監控,服務監控以及系統接口

一 定時任務 1、 定時任務使用 1.1 概述 在實際項目開發中Web應用有一類不可缺少的&#xff0c;那就是定時任務。 定時任務的場景可以說非常廣泛&#xff0c;比如某些視頻網站&#xff0c;購買會員后&#xff0c;每天會給會員送成長值&#xff0c;每月會給會員送一些電影券&…

spring如何通過實現BeanPostProcessor接口計算并打印每一個bean的加載耗時

文章目錄實現說明&#xff1a;注意事項&#xff1a;要在Spring中通過BeanPostProcessor接口計算并打印每個Bean的加載耗時&#xff0c;我們可以利用該接口的兩個回調方法記錄Bean初始化前后的時間戳&#xff0c;然后計算時間差。 以下是實現方案&#xff1a; 首先創建一個實現B…

“品種+創新銷售”,恩威醫藥半年度業績翻倍增長

8月25日晚&#xff0c;恩威醫藥發布2025年半年度報告&#xff0c;報告期內&#xff0c;公司實現營業收入4.49億元&#xff0c;同比增長15.73%&#xff0c;歸屬于上市公司股東凈利潤達3834.42萬元&#xff0c;同比增幅113.80%&#xff0c;扣除非經常性損益凈利潤為3527.57萬元&a…

【機器學習】機器學習算法

機器學習1、K-近鄰算法KNN1.1、舉例&#xff1a;電影類型分析1.2、KNN算法流程1.3、Scikit-learn工具1.4、K-近鄰算法API1.5、距離度量1.5.1、歐式距離Euclidean Distance&#x1f525;1.5.2、曼哈頓距離Manhattan Distance&#x1f525;1.5.3、切比雪夫距離Chebyshev Distance…

python-批量安裝庫

要將當前環境中已安裝的Python庫列表導出為一個可重用的格式&#xff08;通常為requirements.txt&#xff09;&#xff0c;以便在另一個環境中再現這些庫的安裝&#xff0c;可以使用pip工具提供的功能。以下是具體步驟&#xff1a;### 使用pip freeze1. **打開命令提示符或終端…

創龍3576ububuntu系統設置靜態IP方法

創龍3576ububuntu系統設置靜態IP方法&#xff0c;執行命令進入"/etc/systemd/network/"目錄&#xff0c;請根據實際網絡環境&#xff0c;下面演示修改 eth0.network 網口靜態ip為192.168.1337.200執行&#xff1a;vim /etc/systemd/network/eth0.network 增加一句&am…

MySQL - 視圖,事務和索引

目錄一、視圖1. 問題2. 視圖是什么3. 定義視圖4. 查看視圖5. 使用視圖6. 刪除視圖7. 視圖的作用二、事務1. 定義2. 事務命令1&#xff09;回滾2&#xff09;提交3&#xff09;臟寫、臟讀、不可重復讀和幻讀三、索引1. 定義2. 索引是什么3. 索引目的4. 索引原理5. 索引的使用6. …

車載鐵框矯平機:把“鈑金診所”開到工地上

——一次從原子層面開始的平整之旅一、先想一想&#xff1a;鐵框為什么“脾氣大” 鋼板在軋制、切割、焊接、吊裝、甚至太陽暴曬時&#xff0c;內部晶粒被拉得七扭八歪&#xff0c;像揉皺的紙。宏觀上&#xff0c;我們就看到“翹、拱、扭”。矯平&#xff0c;實質上是給金屬做一…

不安全的服務器,不支持 FTP over TLS

當服務器不支持 FTP over TLS&#xff08;也稱為 FTPS&#xff09;時&#xff0c;意味著它僅支持未加密的 FTP 連接。這種情況存在顯著的安全風險&#xff0c;因為&#xff1a;數據傳輸不加密&#xff1a;用戶名、密碼以及傳輸的文件內容都會以明文形式在網絡中傳輸&#xff0c…

本地緩存與 Redis 緩存的區別與實際應用

緩存是提升系統性能、降低數據庫壓力的重要手段。Java 開發中常用的緩存方案包括 ?本地緩存&#xff08;如 Caffeine、Guava Cache&#xff09;?? 和 ?分布式緩存&#xff08;如 Redis&#xff09;?。這兩者在設計目標、使用場景、性能特點等方面有顯著差異&#xff0c;合…

從“0”開始學JAVA——第十一節 I/O流

在Java編程中&#xff0c;文件操作和輸入輸出(IO)處理是必不可少的部分。本文將深入探討Java IO包中的文件流操作&#xff0c;包括基礎概念、分類、常用類以及實際應用場景。1. File類File類是Java IO操作的基礎&#xff0c;它實現了Serializable和Comparable<File>接口。…