<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么計算機需要操作系統?

小林coding ? 來源:碼農的荒島求生 ? 2023-02-03 11:00 ? 次閱讀

今天,我們從三個方面來簡單聊聊為什么計算機系統需要操作系統這個話題。

資源分配器

資源隔離與秩序維護者

細節屏蔽者

資源分配器

如果你的CPU上只需要運行一個程序,那么你的確不需要操作系統。

95254d74-a323-11ed-bfe3-dac502259ad0.png

可是,一旦你的CPU上需要再運行一個程序,那么馬上就會面臨一個問題:兩個程序開始競爭資源,因為計算機的硬件就那么多:有限的處理器個數、有限的內存容量、有限的磁盤容量等等,當在只有一個CPU(核)的機器上要運行兩個程序時,在某一個時刻CPU到底該運行哪個程序呢?

9533bd14-a323-11ed-bfe3-dac502259ad0.png

這顯然不是程序1應該關心的事情,當然,也不是程序2該關心的事情,這就需要必須得有一個什么程序來關心,這個程序就是操作系統。

操作系統存在的目的就是為了合理的給各個運行起來后的程序分配資源,從這個角度你可以把操作系統理解為一個資源分配器。

顯然你不能把CPU切成多個小的CPU,而只能采用“分時”的策略,也就是“你用一會我用一會”,這就好比大家去游樂場玩過山車,由于過山車只有一個,而且不能拆分成更小的給大家用,因此大家只能排隊,你用一會我用一會;

操作系統也采用此策略將CPU資源分配給各個進程,因此從操作系統的角度看“進程A用一會CPU后然后暫停,進程B再用一會兒”,即,操作系統不斷的將CPU在各個進程之間切換,只不過切換的速度足夠快,因此從用戶看來進程在同時運行;操作系統決定以什么樣的順序將CPU分配給各個進程就是所謂的進程調度。

9557b30e-a323-11ed-bfe3-dac502259ad0.png

而像內存或者磁盤這類存儲資源與CPU不同,我們可以很方便的將內存進行劃分,因此可以采用“分塊”的策略,也就是“ 你用一塊我用一塊”,這就是好比停車位,一個停車場中有很多停車位,大家可以同時去停車場中停車。

內存也是同樣的道理,我們可以將內存的劃分給不同的進程,因此不同的進程可以同時存在于內存中。

為高效使用有限的內存資源,操作系統在內存的使用上可謂絞盡腦汁,虛擬內存就是精彩的發明,其可以讓更多進程常駐內存,當然,虛擬內存也帶來不小的挑戰,這些都需要靠軟硬件結合來解決。

資源隔離與秩序維護者

程序A的運行不能干擾到程序B,即,如果程序A出現bug導致崩潰,那么它不能影響到系統中的其它程序,當然也包括操作系統這個程序;

95954f52-a323-11ed-bfe3-dac502259ad0.png

程序A決不能隨意訪問程序B所在的內存區域等等,你肯定不希望其它程序能直接獲取你的聊天信息,這些都需要操作系統進行資源隔離。

除此之外,復雜的任務需要借助多個程序通力合作才能完成,因此程序之間除了隔離之外也必須進行必要的通信,比如進程間通信等,這時操作系統必須提供必要的同步以及互斥機制,確保程序對共享資源的訪問以及程序的運行順序符合程序員的預期。

因此從這個角度看操作系統又是資源隔離與秩序維護者。

細節屏蔽者

操作系統和TCP/IP協議棧的作用是類似的,如果沒有TCP/IP協議棧,那么在發送網絡數據時你需要自己填寫好tcp協議header,維護好tcp的鏈接狀態,發送前要進行三次握手,發送的過程中需要保證數據包的可靠傳輸、還要自己維護tcp的擁塞控制等等,搞定tcp協議還不算完,不要忘了還有ip協議。

除此之外還有數據鏈路層等等,如果這一切都要自己搞定,相信沒有多少程序員能進行網絡編程,而且大部分程序員在編寫網絡程序時相信對這些細節也不感興趣。

這時tcp/ip協議棧就非常重要了,它通過socket對上層程序員屏蔽了網絡的復雜度,程序員僅需要調用send/recv即可進行網絡數據的收發,這大大簡化了網絡編程,因此你可以把內核中負責處理tcp/ip的那一部分理解為計算機網絡的”操作系統“。

而操作系統也是同樣的道理,我們知道真正完成計算任務的是硬件,hardware,而硬件本身通常是非常難以編程的,尤其設計I/O的部分。

因為這非常的細節、非?,嵥?,程序員在讀寫文件時大概率不想關心要讀寫的數據到底保存在磁盤的哪個盤面、哪個柱面、哪個扇區上,也不想關心該使用什么樣的機器指令可以控制磁盤的讀寫、怎樣平衡好讀寫速率與磁盤壽命等等,你需要的是兩個read/write函數就能讀寫文件這種抽象概念(實際上從磁盤的角度來說根本不存在文件這種概念)。

95a975ae-a323-11ed-bfe3-dac502259ad0.png

這時操作系統的作用就非常明顯了,操作系統對上層應用屏蔽了底層的這些細節,讓程序員可以將注意力放在自己的領域上。

因此,從這個角度看操作系統更像是一個細節屏蔽者,它提供的一個重要的功能就是:抽象,Abstraction。

好啦,關于這個話題今天就聊到這里,希望對大家理解操作系統有所幫助。

歷史好文:

4G 內存的機器上,申請 8G 內存會怎么樣?

鍵盤敲入 A 字母時,操作系統期間發生了什么...

真棒!20 張圖揭開內存管理的迷霧,瞬間豁然開朗

進程和線程基礎知識全家桶,30 張圖一套帶走

多個線程為了同個資源打起架來了,該如何讓他們安分?

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10478

    瀏覽量

    206906
  • 計算機
    +關注

    關注

    19

    文章

    6678

    瀏覽量

    84885
  • 操作系統
    +關注

    關注

    37

    文章

    6318

    瀏覽量

    121974
  • 分配器
    +關注

    關注

    0

    文章

    176

    瀏覽量

    25320
  • 程序
    +關注

    關注

    114

    文章

    3630

    瀏覽量

    79643

原文標題:為什么計算機需要操作系統?

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    計算機操作系統PPT

    計算機操作系統PPT操作系統引論(1章)進程管理(2-3章)存儲管理(4章)設備管理(5章)文件管理(6章)操作系統接口(7章)系統安全性(
    發表于 11-07 11:19

    計算機軟件與操作系統

    計算機軟件與操作系統  功能強大的計算機自從走進了人類的生活就發揮著越來越重要的作用,隨著時代的發展,計算機已與人們的日常生活息息相關。不能不說計算
    發表于 09-13 10:09

    計算機操作系統進程的起源

    計算機操作系統-進程(1)起源、定義、組成、組織、特征
    發表于 06-10 11:41

    計算機操作系統

    計算機操作系統-進程(2)進程的狀態與轉換
    發表于 05-25 16:45

    什么是計算機操作系統?

    什么是計算機操作系統?操作系統是一種為應用程序提供服務的系統軟件,是一個完整的計算機系統的有機組成部分。從層次上來看,
    發表于 12-14 06:50

    嵌入式系統與通用計算機操作系統的區別是什么

    嵌入式系統與通用計算機操作系統的區別以前僅學習并接觸過嵌入式系統,通過對比,可以把以前學過的知識對應到計算機
    發表于 12-22 06:35

    計算機操作系統課件

    計算機操作系統課件內容如下第1章  計算機操作系統概述.ppt1.1  存儲程序式計算機模型1.2 
    發表于 11-07 09:43 ?0次下載
    <b class='flag-5'>計算機</b><b class='flag-5'>操作系統</b>課件

    2004年計算機操作系統試題

    計算機專業計算機操作系統試題 2004年1月一、選擇題(選擇一個正確答案的代號填入括號中,共40分)1.操作系統是為了提高計算機的C1](
    發表于 01-07 19:24 ?2次下載

    計算機操作系統原理與設計

    計算機操作系統原理與設計算機操作系統原理與設計 計算機操作系統原理與設計
    發表于 06-03 14:30 ?42次下載

    操作系統是什么?計算機操作系統的詳細資料介紹

    操作系統計算機學科的基礎課程,是理解計算機運行原理的重要基石,學習操作系統不僅能夠讓編程人員了解計算機運行邏輯而且還有助于培養編程“軟實力
    的頭像 發表于 02-04 12:24 ?1.6w次閱讀
    <b class='flag-5'>操作系統</b>是什么?<b class='flag-5'>計算機</b><b class='flag-5'>操作系統</b>的詳細資料介紹

    計算機操作系統的幾種分類方式

    操作系統是管理計算機硬件與軟件的計算機程序,是計算機系統的核心,是計算機系統中最基礎和最重要的系統
    的頭像 發表于 03-21 14:58 ?2w次閱讀

    計算機操作系統的最基本特征是什么_計算機操作系統是什么的接口

    計算機操作系統是用戶與計算機的接口,在計算機中,操作系統是其最基本也是最重要的基礎性系統軟件;
    發表于 09-03 15:36 ?1.4w次閱讀

    “鴻蒙”操作系統關鍵特性解讀

    1、計算機為什么需要操作系統? 大部分人認為,操作系統本來就是與計算機(IT設備)一體的。究竟計算機
    的頭像 發表于 12-17 16:27 ?2266次閱讀

    鴻蒙操作系統的關鍵特性

    ? 1、計算機為什么需要操作系統? 大部分人認為,操作系統本來就是與計算機(IT設備)一體的。究竟計算機
    的頭像 發表于 12-24 16:53 ?2008次閱讀
    鴻蒙<b class='flag-5'>操作系統</b>的關鍵特性

    三個維度剖析為何計算機需要操作系統

    今天我們從三個方面來簡單聊聊為什么計算機需要操作系統這個話題。 ##### **資源分配器** 如果你的CPU上只需要運行一個程序,那么你的確不
    的頭像 發表于 02-15 11:50 ?791次閱讀
    三個維度剖析為何<b class='flag-5'>計算機</b><b class='flag-5'>需要</b><b class='flag-5'>操作系統</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>