0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么計(jì)算機(jī)需要操作系統(tǒng)?

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

今天,我們從三個(gè)方面來簡單聊聊為什么計(jì)算機(jī)系統(tǒng)需要操作系統(tǒng)這個(gè)話題。

資源分配器

資源隔離與秩序維護(hù)者

細(xì)節(jié)屏蔽者

資源分配器

如果你的CPU上只需要運(yùn)行一個(gè)程序,那么你的確不需要操作系統(tǒng)。

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

可是,一旦你的CPU上需要再運(yùn)行一個(gè)程序,那么馬上就會(huì)面臨一個(gè)問題:兩個(gè)程序開始競爭資源,因?yàn)橛?jì)算機(jī)的硬件就那么多:有限的處理器個(gè)數(shù)、有限的內(nèi)存容量、有限的磁盤容量等等,當(dāng)在只有一個(gè)CPU(核)的機(jī)器上要運(yùn)行兩個(gè)程序時(shí),在某一個(gè)時(shí)刻CPU到底該運(yùn)行哪個(gè)程序呢?

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

這顯然不是程序1應(yīng)該關(guān)心的事情,當(dāng)然,也不是程序2該關(guān)心的事情,這就需要必須得有一個(gè)什么程序來關(guān)心,這個(gè)程序就是操作系統(tǒng)。

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

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

操作系統(tǒng)也采用此策略將CPU資源分配給各個(gè)進(jìn)程,因此從操作系統(tǒng)的角度看“進(jìn)程A用一會(huì)CPU后然后暫停,進(jìn)程B再用一會(huì)兒”,即,操作系統(tǒng)不斷的將CPU在各個(gè)進(jìn)程之間切換,只不過切換的速度足夠快,因此從用戶看來進(jìn)程在同時(shí)運(yùn)行;操作系統(tǒng)決定以什么樣的順序?qū)PU分配給各個(gè)進(jìn)程就是所謂的進(jìn)程調(diào)度。

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

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

內(nèi)存也是同樣的道理,我們可以將內(nèi)存的劃分給不同的進(jìn)程,因此不同的進(jìn)程可以同時(shí)存在于內(nèi)存中。

為高效使用有限的內(nèi)存資源,操作系統(tǒng)在內(nèi)存的使用上可謂絞盡腦汁,虛擬內(nèi)存就是精彩的發(fā)明,其可以讓更多進(jìn)程常駐內(nèi)存,當(dāng)然,虛擬內(nèi)存也帶來不小的挑戰(zhàn),這些都需要靠軟硬件結(jié)合來解決。

資源隔離與秩序維護(hù)者

程序A的運(yùn)行不能干擾到程序B,即,如果程序A出現(xiàn)bug導(dǎo)致崩潰,那么它不能影響到系統(tǒng)中的其它程序,當(dāng)然也包括操作系統(tǒng)這個(gè)程序;

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

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

除此之外,復(fù)雜的任務(wù)需要借助多個(gè)程序通力合作才能完成,因此程序之間除了隔離之外也必須進(jìn)行必要的通信,比如進(jìn)程間通信等,這時(shí)操作系統(tǒng)必須提供必要的同步以及互斥機(jī)制,確保程序?qū)蚕碣Y源的訪問以及程序的運(yùn)行順序符合程序員的預(yù)期。

因此從這個(gè)角度看操作系統(tǒng)又是資源隔離與秩序維護(hù)者。

細(xì)節(jié)屏蔽者

操作系統(tǒng)和TCP/IP協(xié)議棧的作用是類似的,如果沒有TCP/IP協(xié)議棧,那么在發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時(shí)你需要自己填寫好tcp協(xié)議header,維護(hù)好tcp的鏈接狀態(tài),發(fā)送前要進(jìn)行三次握手,發(fā)送的過程中需要保證數(shù)據(jù)包的可靠傳輸、還要自己維護(hù)tcp的擁塞控制等等,搞定tcp協(xié)議還不算完,不要忘了還有ip協(xié)議。

除此之外還有數(shù)據(jù)鏈路層等等,如果這一切都要自己搞定,相信沒有多少程序員能進(jìn)行網(wǎng)絡(luò)編程,而且大部分程序員在編寫網(wǎng)絡(luò)程序時(shí)相信對(duì)這些細(xì)節(jié)也不感興趣。

這時(shí)tcp/ip協(xié)議棧就非常重要了,它通過socket對(duì)上層程序員屏蔽了網(wǎng)絡(luò)的復(fù)雜度,程序員僅需要調(diào)用send/recv即可進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的收發(fā),這大大簡化了網(wǎng)絡(luò)編程,因此你可以把內(nèi)核中負(fù)責(zé)處理tcp/ip的那一部分理解為計(jì)算機(jī)網(wǎng)絡(luò)的”操作系統(tǒng)“。

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

因?yàn)檫@非常的細(xì)節(jié)、非常瑣碎,程序員在讀寫文件時(shí)大概率不想關(guān)心要讀寫的數(shù)據(jù)到底保存在磁盤的哪個(gè)盤面、哪個(gè)柱面、哪個(gè)扇區(qū)上,也不想關(guān)心該使用什么樣的機(jī)器指令可以控制磁盤的讀寫、怎樣平衡好讀寫速率與磁盤壽命等等,你需要的是兩個(gè)read/write函數(shù)就能讀寫文件這種抽象概念(實(shí)際上從磁盤的角度來說根本不存在文件這種概念)。

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

這時(shí)操作系統(tǒng)的作用就非常明顯了,操作系統(tǒng)對(duì)上層應(yīng)用屏蔽了底層的這些細(xì)節(jié),讓程序員可以將注意力放在自己的領(lǐng)域上。

因此,從這個(gè)角度看操作系統(tǒng)更像是一個(gè)細(xì)節(jié)屏蔽者,它提供的一個(gè)重要的功能就是:抽象,Abstraction。

好啦,關(guān)于這個(gè)話題今天就聊到這里,希望對(duì)大家理解操作系統(tǒng)有所幫助。

歷史好文:

4G 內(nèi)存的機(jī)器上,申請(qǐng) 8G 內(nèi)存會(huì)怎么樣?

鍵盤敲入 A 字母時(shí),操作系統(tǒng)期間發(fā)生了什么...

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

進(jìn)程和線程基礎(chǔ)知識(shí)全家桶,30 張圖一套帶走

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210829
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7360

    瀏覽量

    87632
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6684

    瀏覽量

    123140
  • 分配器
    +關(guān)注

    關(guān)注

    0

    文章

    193

    瀏覽量

    25694
  • 程序
    +關(guān)注

    關(guān)注

    116

    文章

    3756

    瀏覽量

    80751

原文標(biāo)題:為什么計(jì)算機(jī)需要操作系統(tǒng)?

文章出處:【微信號(hào):小林coding,微信公眾號(hào):小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    計(jì)算機(jī)操作系統(tǒng)PPT

    計(jì)算機(jī)操作系統(tǒng)PPT操作系統(tǒng)引論(1章)進(jìn)程管理(2-3章)存儲(chǔ)管理(4章)設(shè)備管理(5章)文件管理(6章)操作系統(tǒng)接口(7章)系統(tǒng)安全性(
    發(fā)表于 11-07 11:19

    計(jì)算機(jī)軟件與操作系統(tǒng)

    計(jì)算機(jī)軟件與操作系統(tǒng)  功能強(qiáng)大的計(jì)算機(jī)自從走進(jìn)了人類的生活就發(fā)揮著越來越重要的作用,隨著時(shí)代的發(fā)展,計(jì)算機(jī)已與人們的日常生活息息相關(guān)。不能不說計(jì)算
    發(fā)表于 09-13 10:09

    計(jì)算機(jī)操作系統(tǒng)

    計(jì)算機(jī)操作系統(tǒng)-進(jìn)程(2)進(jìn)程的狀態(tài)與轉(zhuǎn)換
    發(fā)表于 05-25 16:45

    什么是計(jì)算機(jī)操作系統(tǒng)?

    什么是計(jì)算機(jī)操作系統(tǒng)?操作系統(tǒng)是一種為應(yīng)用程序提供服務(wù)的系統(tǒng)軟件,是一個(gè)完整的計(jì)算機(jī)系統(tǒng)的有機(jī)組成部分。從層次上來看,
    發(fā)表于 12-14 06:50

    計(jì)算機(jī)操作系統(tǒng)課件

    計(jì)算機(jī)操作系統(tǒng)課件內(nèi)容如下第1章  計(jì)算機(jī)操作系統(tǒng)概述.ppt1.1  存儲(chǔ)程序式計(jì)算機(jī)模型1.2 
    發(fā)表于 11-07 09:43 ?0次下載
    <b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>操作系統(tǒng)</b>課件

    2004年計(jì)算機(jī)操作系統(tǒng)試題

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

    計(jì)算機(jī)操作系統(tǒng)》課程教學(xué)探討

    計(jì)算機(jī)操作系統(tǒng)課是一門涉及知識(shí)面廣的專業(yè)基礎(chǔ)課程,該課程的教學(xué)一直在計(jì)算機(jī)專業(yè)教學(xué)計(jì)劃中居重要位置.本文在分析了目前國內(nèi)計(jì)算機(jī)操作系統(tǒng)教學(xué)現(xiàn)
    發(fā)表于 04-18 21:12 ?48次下載

    計(jì)算機(jī)操作系統(tǒng)試題及答案

    計(jì)算機(jī)操作系統(tǒng)試題及答案。
    發(fā)表于 11-12 16:41 ?0次下載

    計(jì)算機(jī)操作系統(tǒng)原理與設(shè)計(jì)

    計(jì)算機(jī)操作系統(tǒng)原理與設(shè)計(jì)算機(jī)操作系統(tǒng)原理與設(shè)計(jì) 計(jì)算機(jī)操作系統(tǒng)原理與設(shè)計(jì)
    發(fā)表于 06-03 14:30 ?42次下載

    操作系統(tǒng)是什么?計(jì)算機(jī)操作系統(tǒng)的詳細(xì)資料介紹

    操作系統(tǒng)計(jì)算機(jī)學(xué)科的基礎(chǔ)課程,是理解計(jì)算機(jī)運(yùn)行原理的重要基石,學(xué)習(xí)操作系統(tǒng)不僅能夠讓編程人員了解計(jì)算機(jī)運(yùn)行邏輯而且還有助于培養(yǎng)編程“軟實(shí)力
    的頭像 發(fā)表于 02-04 12:24 ?1.7w次閱讀
    <b class='flag-5'>操作系統(tǒng)</b>是什么?<b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>操作系統(tǒng)</b>的詳細(xì)資料介紹

    計(jì)算機(jī)操作系統(tǒng)的幾種分類方式

    操作系統(tǒng)是管理計(jì)算機(jī)硬件與軟件的計(jì)算機(jī)程序,是計(jì)算機(jī)系統(tǒng)的核心,是計(jì)算機(jī)系統(tǒng)中最基礎(chǔ)和最重要的系統(tǒng)
    的頭像 發(fā)表于 03-21 14:58 ?2w次閱讀

    計(jì)算機(jī)操作系統(tǒng)的最基本特征是什么_計(jì)算機(jī)操作系統(tǒng)是什么的接口

    計(jì)算機(jī)操作系統(tǒng)是用戶與計(jì)算機(jī)的接口,在計(jì)算機(jī)中,操作系統(tǒng)是其最基本也是最重要的基礎(chǔ)性系統(tǒng)軟件;
    發(fā)表于 09-03 15:36 ?1.5w次閱讀

    “鴻蒙”操作系統(tǒng)關(guān)鍵特性解讀

    1、計(jì)算機(jī)為什么需要操作系統(tǒng)? 大部分人認(rèn)為,操作系統(tǒng)本來就是與計(jì)算機(jī)(IT設(shè)備)一體的。究竟計(jì)算機(jī)
    的頭像 發(fā)表于 12-17 16:27 ?2452次閱讀

    鴻蒙操作系統(tǒng)的關(guān)鍵特性

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

    三個(gè)維度剖析為何計(jì)算機(jī)需要操作系統(tǒng)

    今天我們從三個(gè)方面來簡單聊聊為什么計(jì)算機(jī)需要操作系統(tǒng)這個(gè)話題。 ##### **資源分配器** 如果你的CPU上只需要運(yùn)行一個(gè)程序,那么你的確不
    的頭像 發(fā)表于 02-15 11:50 ?928次閱讀
    三個(gè)維度剖析為何<b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>需要</b><b class='flag-5'>操作系統(tǒng)</b>