作業系統 superficial theory

2022-08-20 15:15:19 字數 1643 閱讀 3775

作業系統是存在於硬體與軟體之間,是乙個管理、協調、控制計算機軟體資源與硬體資源的控制程式

如果沒有作業系統,程式設計師寫乙個程式,需要完成兩層內容

第一層 : 學會底層硬體:cpu,記憶體,磁碟是如何工作使用的

第二層 : 去呼叫這些底層的硬體

將一些醜陋複雜的硬體操作封裝成美麗的介面,便於使用

例如:作業系統提供了檔案這個抽象概念,對檔案的操作就是對磁碟的操作,有了檔案我們無需再去考慮關於磁碟的讀寫控制(比如控制磁碟轉動,移動磁頭讀寫資料等細節)

合理的排程分配多個程序與cpu的關係,讓其有序化

例如:很多應用軟體其實是共享一套計算機硬體,比方說有可能有三個應用程式同時需要申請印表機來輸出內容,那麼a程式競爭到了印表機資源就列印,然後可能是b競爭到印表機資源,也可能是c,這就導致了無序,印表機可能列印一段a的內容然後又去列印c,作業系統的乙個功能就是將這種無序變得有序。

誕生於二戰時期,需要手工操作,在這個時期,同乙個小組裡的工程師們,設計、建造、程式設計、操作及維護同一臺機器,所有的程式設計是用純粹的機器語言編寫的,甚至更糟糕,需要通過成千上萬根電纜接到外掛程式板上連成電路來控制機器的基本功能,後來出現了穿孔卡片,可以將程式寫在卡片上,然後讀入機而不用外掛程式板。沒有程式語言(彙編也沒有),也沒有作業系統的概念。使用機器需要預約時間,限時進入機房進行操作。

優點:可以乙個人獨享計算機

缺點:浪費計算機資源(乙個人使用),所有的程式都是序列處理

利用磁帶儲存,批處理系統,不需要程式設計師進行硬體操作,所有硬體操作都已經是成型的機器了,每個程式刻在磁碟上,工作人員將**磁碟執行,最後列印結果。

優點:批處理,節省了程式設計師連線各硬體的操作時間

缺點:不能獨享計算機,不能在程式執行時修復bug,還是序列處理

20世紀60年代初期,大多數計算機廠商都有兩條完全不相容的生產線。一條是用於科學計算、運算的計算密集型,一條是用於商用、列印等工作的io密集型。

引入system/360系列,將兩種計算機型別合併成乙個

第三代計算機解決的問題

人工中途參與磁碟傳遞工作,以繼輸入輸出裝置不同機的問題

發明了多道技術

多道技術

多道技術中的多道指的是多個程式,多道技術的實現是為了解決多個程式競爭或者說共享同乙個資源(比如cpu)的有序排程問題,解決方式即多路復用,多路復用分為時間上的復用和空間上的復用。

時間上的復用

阻塞: io阻塞,recv, accept, read input,write, sleep等等,都是阻塞。

當乙個程式在等待i/o時,另乙個程式可以使用cpu,如果記憶體中可以同時存放足夠多的作業,則cpu的利用率可以接近100%,類似於我們小學數學所學的統籌方法。  

如果三個程序全部都沒有io阻塞,多道技術就會影響最終的效率

作業系統呼叫不同的程序在cpu間來回切換

空間上的復用

將記憶體分為幾部分,每個部分放入乙個程式,這樣,同一時間記憶體中就有了多道程式。

乙個記憶體可以載入多個程序

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...

作業系統(作業系統引論)

方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...

作業系統 作業系統 一 作業系統概述

好好學習,天天向上本文已收錄至我的github倉庫daydayup 歡迎star 之前一直沒有系統地學過作業系統,感覺自己在平時的學習過程中對於某些概念理解得一塌糊塗,比如中斷 記憶體 程序和執行緒等。所以打算系統的學習一下作業系統。一開始我是在b站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...