32 併發程式設計 作業系統

2022-04-29 12:33:09 字數 2251 閱讀 9584

一、作業系統

1、定義:精簡的說的話,作業系統就是乙個協調、管理和控制計算機硬體資源和軟體資源的控制程式。

作業系統位於計算機硬體與應用軟體之間,本質也是乙個軟體。作業系統由作業系統的核心(執行於核心態,管理硬體資源)以及系統呼叫(執行於使用者態,為應用程式設計師寫的應用程式提供系統呼叫介面)兩部分組成,所以,單純的說作業系統是執行於核心態的,是不準確的。

2、作業系統應該分兩部分功能

(1)隱藏了醜陋的硬體呼叫介面,為應用程式設計師提供呼叫硬體資源的更好,更簡單,更清晰的模型(系統呼叫介面)。應用程式設計師有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。

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

(2)將應用程式對硬體資源的競態請求變得有序化

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

二、多道技術

所謂多道程式設計技術,就是指允許多個程式同時進入記憶體並執行。即同時把多個程式放入記憶體,並允許它們交替在cpu中執行,它們共享系統中的各種硬、軟體資源。當一道程式因i/o請求而暫停執行時,cpu便立即轉去執行另一道程式。

1、在a程式計算時,i/o空閒, a程式i/o操作時,cpu空閒(b程式也是同樣);必須a工作完成後,b才能進入記憶體中開始工作,兩者是序列的,全部完成共需時間=t1+t2。

2、將a、b兩道程式同時存放在記憶體中,它們在系統的控制下,可相互穿插、交替地在cpu上執行:當a程式因請求i/o操作而放棄cpu時,b程式就可占用cpu執行,這樣 cpu不再空閒,而正進行a i/o操作的i/o裝置也不空閒,顯然,cpu和i/o裝置都處於「忙」狀態,大大提高了資源的利用率,從而也提高了系統的效率,a、b全部完成所需時間<

(1)多道程式設計技術不僅使cpu得到充分利用,同時改善i/o裝置和記憶體的利用率,從而提高了整個系統的資源利用率和系統吞吐量(單位時間內處理作業(程式)的個數),最終提高了整個系統的效率。

單處理機系統中多道程式執行時的特點:

<1>多道:計算機記憶體中同時存放幾道相互獨立的程式;

<2>巨集觀上並行:同時進入系統的幾道程式都處於執行過程中,即它們先後開始了各自的執行,但都未執行完畢;

<3>微觀上序列:實際上,各道程式輪流地用cpu,並交替執行。

多道程式系統的出現,標誌著作業系統漸趨成熟的階段,先後出現了作業排程管理、處理機管理、儲存器管理、外部裝置管理、檔案系統管理等功能。

由於多個程式同時在計算機中執行,開始有了空間隔離的概念,只有記憶體空間的隔離,才能讓資料更加安全、穩定。

出了空間隔離之外,多道技術還第一次體現了時空復用的特點,遇到io操作就切換程式,使得cpu的利用率提高了,計算機的工作效率也隨之提高。

(2)時間、空間復用

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

時間上的復用:當乙個程式在等待i/o時,另乙個程式可以使用cpu,如果記憶體中可以同時存放足夠多的作業,則cpu的利用率可以接近100%

(3)時間空間復用缺點

<1>時間復用上的缺點:程式設計師a的程式執行10分鐘就能夠執行結束,程式設計師b的程式需要執行24小時,如何程式設計師b的程式先執行,並且程式設計師b的程式沒有任何i\o操作,那麼程式設計師a需要等待24小時之後才能                   執行,那麼這就不太合理了。為了解決時間出現了分時系統

<2>空間復用上的缺點:首先喪失的是安全性,比如你的qq程式可以訪問作業系統的記憶體,這意味著你的qq可以拿到作業系統的所有許可權。其次喪失的是穩定性,某個程式崩潰時有可能把別的程式的記憶體也給**                 了,比方說把作業系統的記憶體給**了,則作業系統崩潰。為了解決空間復用上的問題:程式之間的記憶體必須分割,由作業系統控制。如果記憶體彼此不分割,則乙個程式可以訪問另外乙個程式的記憶體。

分時技術:把處理機的執行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。

併發程式設計 作業系統

一 作業系統的發展史 1.手工操作 穿孔卡片 對應於程式和資料的已穿孔的紙帶 或卡片 裝入輸入機 啟動輸入機 把程式和資料輸入計算機記憶體 通過控制台開關啟動程式針對資料執行 計算完畢 印表機輸出計算結果 使用者取走結果並卸下紙帶 或卡片 缺點 使用者獨佔全機。不會出現因cpu資源已被其他使用者占用...

併發程式設計 作業系統 併發 簡介

1,作業系統介紹 現代的作業系統中有 分時技術 多道技術 實時技術.多道技術 可以在計算機中同時存在多個程式,當乙個程式在進行io操作的時候,另外乙個程式可以使用cpu 分時技術 在多道技術的基礎上 反而降低了cpu的利用率,但是提高了使用者體驗 特點 多路性.若干個使用者同時使用一台計算機.圍觀上...

《作業系統》併發

相關術語 程序的互動 根據程序相互之間知道對方的程度分類為如下幾個等級。互斥的要求 互斥的硬體支援 中斷禁用 專用機器指令 比較和交換指令,交換指令 互斥的軟體支援 訊號量看成乙個值為整數的變數。主要有三個操作 訊號量可以初始化為非負數 semwait操作使訊號量減一,若值為負數,則阻塞執行semw...