(1)並發編程實現的基礎

  • 2020 年 1 月 16 日
  • 筆記

# 多道程式系統 原理,缺點

#允許多個程式同時進入記憶體並運行。即同時把多個程式放入記憶體,並允許它們交替在CPU中運行,它們共享系統中的各種硬、軟體資源。當一道程式因I/O請求而暫停運行時,CPU便立即轉去運行另一道程式。

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

# 時間復用,空間復用

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

# 空間上的復用最大的問題是:程式之間的記憶體必須分割,這種分割需要在硬體層面實現,由作業系統控制。如果記憶體彼此不分割,則一個程式可以訪問另外一個程式的記憶體,

# 首先喪失的是安全性,比如你的qq程式可以訪問作業系統的記憶體,這意味著你的qq可以拿到作業系統的所有許可權。

# 其次喪失的是穩定性,某個程式崩潰時有可能把別的程式的記憶體也給回收了,比方說把作業系統的記憶體給回收了,則作業系統崩潰。

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

# 作業系統採用了多道技術後,可以控制進程的切換,或者說進程之間去爭搶cpu的執行許可權。這種切換不僅會在一個進程遇到io時進行,一個進程佔用cpu時間過長也會切換,或者說被作業系統奪走cpu的執行許可權

# 什麼是作業系統?

# 作業系統就是一個協調、管理和控制電腦硬體資源和軟體資源的控制程式。

# 作業系統由作業系統的內核(運行於內核態,管理硬體資源)以及系統調用(運行於用戶態,為應用程式設計師寫的應用程式提供系統調用介面)兩部分組成

# posix是IEEE提出的一個unix標準,(可移植的作業系統介面Portable Operating System Interface)

# 作業系統的功能?

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

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

# 作業系統的作用?

# 作用一:為應用程式提供如何使用硬體資源的抽象。例如:作業系統提供了文件這個抽象概念,對文件的操作就是對磁碟的操作,有了文件我們無需再去考慮關於磁碟的讀寫控制

# 作用二:管理硬體資源。作業系統的任務是在相互競爭的程式之間有序地控制對處理器、存儲器以及其他I/O介面設備的分配。