1. 程式人生 > >作業系統學習筆記(一)--批處理、多道程式系統、分時作業系統、實時作業系統和作業系統操作

作業系統學習筆記(一)--批處理、多道程式系統、分時作業系統、實時作業系統和作業系統操作

最近開始學習作業系統原理這門課程,特將學習筆記整理成技術部落格的形式發表,希望能給大家的作業系統學習帶來幫助。同時盼望大家能對文章評論,大家一起多多交流,共同進步!
本篇文章大致內容為:

  • 批處理系統(Batch OS)
  • 多道程式系統(Multiprogramming System)
  • 分時系統(Time-sharing System)
  • 實時系統(Real-time System)
  • 作業系統操作(Operatin-system Operations)

批處理系統(Batch OS)

批處理系統主要用於大型系統,用於提高作業吞吐量(Throughout,單位時間內執行作業的數量)的系統。
批處理中基本無互動,存在兩種排程:
1. Job Schedule(作業排程),即將所要做的作業放到記憶體上,主要負責工作的道數,屬於高階排程。
2. CPU Schedule(程序排程),即在記憶體中CPU選擇執行某個工作,屬於低階排程。
批處理系統中的作業排程和程序排程示意圖


程序的三個狀態:就緒(Ready),執行(Running),等待(Waiting)/阻塞(Blocking)

多道程式系統(Multiprogramming System)

優點:
1. Improve CPU utilization 2% –> 100%(in theory)
注:但程式道數越多,系統消耗(overhead)越高,會造成CPU有效利用率降低
2. Improve memory and I/O device utilization.
3. Increase system throughout.
特點:
1. 多道
2. 無序(unordered),執行是無序的,即使用者不知道程序狀態,但系統知道當前程序的狀態


3. 排程性(scheduling)
缺點:互動性低

分時系統(Time-sharing system)

定義:將CPU的執行時間分成一個個的時間片(time slice),多使用者中的每個使用者輪轉時間片,非常適合互動型作業。
Memory sharing(儲存共享) + time sharing(時間共享) –> multiprogramming(多道系統) + interaction(互動)
時間片的選擇必須大雨系統內的中斷切換時間,且時間段切換需要有度!!!
分時系統特點:
1. 互動性強,因其主要為互動型作業設計;
2. 多道(路)性;
3. 及時性;
4. 獨佔性。
影響分時作業系統效能的因素:


1. 使用者數目;
2. 時間片大小;
3. 每次時間片切換是對換的資料量。
分時系統是一個通用系統,即不限制任務的數目和狀態。

實時系統(Real-Time Systems)

定義:實時系統主要用於專用系統(used in dedicated application),有著非常嚴格的固定時間要求(well-defined fixed-time constraints)。
按照deadline不同可分為硬實時(hard real-time)和軟實時(soft real-time):
硬實時作業系統: deadline要求高,即要求在很短的時間片內處理
1. Secondary storage (disk) limited or absent;
2. Data stored in memory, or read-only memory(ROM).
軟實時作業系統:deadline要求較低,即可在較長時間片內處理,但是,還是需要在一個時間片內處理
1. Limited utility in industrial control of robotics;
2. Useful in multimedia, virtual reality, etc.
實時系統特性:
1. 及時性;
2. 獨佔性(雙工:兩端都有計算機做相同操作以防一端計算機出現故障,用於火箭和導彈控制)
3. 多路性;
4. 互動性(略有限)。

作業系統操作(Operating-System Operations)

Dual-mode operations(雙模式操作):User mode(使用者模式/目標態) && kernel mode(核心模式/管理態)
相應的,作業系統指令分為特權指令(privileged instruction)和非特權指令。
特權指令:clear memory, set time, I/O instruction.
非特權指令:read time
對於將資料輸出到顯示屏的操作,就通過了系統呼叫(system call)產生了一次自陷(trap)從而從使用者模式切換到了核心模式。
在IO的讀寫操作中,作業系統如何判斷是否在該程序指定的記憶體空間進行讀寫操作?
CPU中配置了一組暫存器(base register & length register),在每次進行I/O操作時即可判斷該程序是否越界(< base || > base + length)。當出現以上兩種狀態時CPU即產生越界中斷。每個程序的base register & length register均儲存在作業系統區的程序控制塊(PCB: Process Control Block)中,當每個程序被建立之初,該程序控制塊就被建立與作業系統區,裡面記錄了該程序的相關資訊,類似於一種資料結構。