第二章 - 程式

Mr_申發表於2023-03-19

2.1 程式的定義、組成、組織、特徵:

2.1.1 程式的定義:

  • 程式:一個指令序列
  1. 定義:程式是程式實體的執行過程,是系統進行資源分配和排程的一個獨立單位
  2. 單道程式:
    1. 一次只能處理一個程式,當該程式執行時,cpu、記憶體、I/O裝置都要為它一個程式服務
    2. 程式的程式碼放在程式段內,程式執行過程處理的資料放在資料段
  3. 多道程式:
    1. 一次可以處理多個程式
    2. 問題?作業系統怎麼找到各程式存在記憶體的位置  
    3. 解決問題:系統為每個程式配置一個資料結構,叫做程式控制塊PCB,來掃描程式的各個資訊
  4. 程式實體:
    1. 程式段、資料段、PCB組成程式實體(程式映像)
    2. 程式實體,也可以叫做程式

2.1.2 程式的組成:

  • 程式的組成說的是:程式內部由哪些部分構成(和程式的組織要區分開)
  1. PCB:
    1. PCB是程式存在的唯一標識
    2. 程式描述、資源分配等
    3. 記住:PCB程式的管理者,所需的資料全在PCB中
      1. 如:分配程式優先順序、程式標識的PID、UID,I/O裝置的分配
  2. 程式段:
    1. 存放要執行的程式碼  
  3. 資料段:
    1. 存放程式執行過程中處理的各種資料

2.1.3 程式的組織:

  • 程式的組織說的是:多個程式之間組織的方式
  • 說的目的是:一個作業系統有非常多個PCB,它們是怎麼有效的管理起來這麼多個PCB

  1. 連結方式:
    1. 把當前執行的程式分為不同的執行狀態
    2. 這些執行狀態會透過指標指向不同的PCB
    3. 指向不同的PCB,優先順序高的會在前面
  2. 索引方式:
    1. 和連結方式一樣,它是透過索引表來指向

 

 2.1.4 程式特徵:

 2.1.5 總結:

  1. 什麼程式是:程式是程式實體的執行過程,是系統進行資源分配和排程的一個獨立單位
  2. 程式的組成:PCB、程式段、資料段
    1. PCB是基礎存在的唯一標識、基礎的管理者
    2. 程式段:放程式執行程式碼
    3. 資料段:放執行時使用的資料
  3. 組織方式:連結、索引

2.2 程式的狀態與轉換:

2.2.1 程式的狀態:

  1. 三種基本狀態:
    1. 執行態、就緒態、阻塞態
  2. 其它兩種狀態:
    1. 建立態、終止態

2.2.2 程式的轉換:

 

 

 2.2.3 總結

  1. 執行態:有cpu有資源
  2. 阻塞態:什麼都沒有,可能是在等某個IO操作
  3. 就緒態:有處了CPU之外的所有資源
  4. 建立態:程式的建立
  5. 終止態:程式的終止

 

2.3 程式的控制:

  1. 程式的控制用原語進行控制
    1. 原語是要麼全執行,要麼全不執行
    2. 用關/開中斷來實現
  2. 原語的不同操作共性:
    1. 跟新PCB中的資訊
    2. 將PCB插入合適的佇列
    3. 分配或回收資源
  3. 想關原語:
    1. 建立原語
    2. 終止原語
    3. 阻塞原語 -阻塞和喚醒要成對出現
    4. 喚醒原語 -阻塞和喚醒要成對出現
    5. 切換原語
  4. 各原語的功能:

 

 

 

 

 

 

 

2.9 FCFS、SJF、HRRN呼叫演算法:

2.9.1 先來先服務FCFS:

  • FCFS的排程演算法,跟排隊買奶茶一樣,誰先,誰執行 

 

  •  FCFS概念

 

 

2.9.2 短作業優先(不搶佔、搶佔)JSF:

  • JSF的排程演算法,就是執行時間短的優先(搶佔)

 

  • SRTN短作業搶佔呼叫演算法,根據執行的時間來互相搶佔

 

  •  短作業的演算法概念

 

 2.9.3 高響應優先HRRN:

  • 根據響應比來決定優先執行順序,得出響應比,就可以算週轉時間了

 

  • HRRN的概念

 

 2.9.4 三種演算法的對比:

 

 2.9.5 總結、細節:

  1. 記住週轉時間、帶權週轉時間、等待時間、和平均時間的公式
  2. 記住HEER的響應比的公式
  3. 細節:帶權週轉時間,指的是週轉時比執行時間大多少倍
  4. 細節:等待時間公式是:等待時間=週轉時間-執行時間-(IO裝置操作時間-IO時間的減和不減要根據具體來分析)
  5. 大細節-考試會考:JSF演算法是平均等待時間,平均週轉時間最少(宏觀上理解這句話)

   

  

 

相關文章