作業系統寫題總結

做夢好啊發表於2020-12-12

選擇

  1. 執行緒沒有自己的獨立的地址空間,執行緒包含 CPU 現場,可以獨立執行程式。
  2. 多執行緒一個執行緒被阻塞後整個程式都會被阻塞
  3. 對程式的管理和控制使用原語
  4. 時間片用完可以==降低程式優先順序=
  5. 系統沒有執行程式,就一定沒有就緒的程式
  6. 臨界區➡️訪問臨界資源的那段程式碼
  7. 併發程式是非同步的
  8. image-20201211011808405
  9. 互斥訊號量初值永遠都是 1

簡答

  1. 父程式建立子程式與主程式呼叫子程式的不同之處

    父程式建立子程式,兩個程式是併發執行的

    主程式呼叫子程式,主程式就暫停了,先去執行子程式了。就相當於寫 C 中,main 函式中呼叫其他函式,那就先跳到其他地方執行其他函式,等其他函式執行完了再 return 回 main 函式。

  2. 為什麼程式通訊要藉助作業系統核心

    因為每個程式都佔有獨立的地址空間,作業系統要保護每個程式間相互獨立,程式之間不能訪問彼此的地址空間。所以要藉助系統呼叫的方式,來通過某個中介者來進行通訊。

  3. 程式通訊的幾種方式

    • 共享記憶體:系統建立一個記憶體區,多個程式可以連線同一個記憶體區,從而實現彼此間的通訊。有時候需要互斥
    • 共享檔案:和共享記憶體差不多,把記憶體空間換成了檔案形式
    • 管道:管道是先進先出的資訊流。允許程式對其讀寫,但保證寫入順序和讀出順序是一致的
    • 訊息傳遞:有個訊息佇列
  4. 程式間的制約關係

    1. 同步關係:是程式間的協作關係,兩個程式要互相配合完成工作。比如一個寫完另一個才能去讀
    2. 互斥關係:兩個程式對一個資源的競爭導致的。比如兩個程式都想使用印表機,但是印表機同一個時刻只能被一個程式佔用,此時就是互斥關係。

計算

相關文章