3.1 作業系統

O.S. 作用

  1. 為 user 和 Hardware 間溝通的橋樑
  2. 提供一個易於執行的環境 ex: Dos -> Windows
  3. 資源 (Hardware) 的分配及管理
  4. 避免為和系統的動作發生

作業系統型態

  1. Multiprogramming (多元程式規劃)
    Def: 指將多個 process 同時載入 memory 中

    • 以並行或平行方式處理
    • 當一 process 需 wait I/O, CPU 得交由另一 process 使用
    • 圖:
  2. Time sharing (分時系統)
    Def:

    • 採 Round Robin CPU Scheduling 及資源共享的技術

    • 各 process 可輪流使用一固定的 CPU 時間

    • 適用於 interactive system

    • 可達到 Multitasking 之效

    • 圖:

    • Note:

      1. interactive (交談式) => Online (線上作業), ex: game, FB, ptt
        注重:公平性, 反應時間, 互動性

      單工:一次只處理一個工作, 結束才換下一個, ex: 早期的 Dos 系統
      多工(Multitasking):一次可同時(以並行或平行的方式)執行多個工作, 利用 Time-sharing 達成
      ex: Unix
      3. Batched System (批次系統) => offline
      將同質性的作業收集, 於一特定時間在統一處理, ex: 會計帳

  3. Multiprocessor (多處理系統) => 平行系統
    Def: 指一電腦內有多顆 processor, 如此可同時執行多個工作(以平行方式), 但不一定能減少每個 process 使用 CPU 的時間
    特色:

    1. 各 processor 受相同的 O.S., Clock 控制, 並共用 Memory space
    2. processor 之間溝通 => “Shared Memory”
    3. 為 tightly coupled (緊密, 耦合)的架構 => 一個掛, 全掛
  4. Distributed System (分散式系統)

    • 特色:

      1. 各 process 有專屬的 O.S., Clock, Memory 等資源
      2. Process 間的溝通採 “Message passing”
      3. 為 loosely coupled (鬆散, 耦合) system
    • Why Distributed System?

      1. Speed up
      2. Resource sharing
      3. Communication
      4. Fault tolerant (容錯性) => reliability 高 (可靠性)
    • Network Computing

      Clustered System (叢集式)

      Def:

      • 類似平行系統, 可同時執行多個工作
      • But 一般採用 “LAN 將多台 Host 連結”, 形成一大型的服務網路
      • 圖:
      • 可達:
        1. Load Balance (負載平衡)
        2. High Availability (HA 高可用性)
        3. Fault Tolerant

      Grid Computing (網格計算)

      Def:

      • 利用世界各地分享的資源來共同完成一大型任務
      • 利用將問題切成多個 subproblem, 並分散給各地資源處理, 以求快速求解
        缺點:難以普及 (需專家才有辦法對巨大問題分割)
        圖:

      Cloud

      Def:

      • data & service in the cloud
      • accessiable with any device
      • ingeneral device will use browser to connect into cloud
        特色:
      • user “just use”, 不需做
      • 系統具強大的可擴充性 (scalability)
        Cloud 衍生的服務
      • 圖:

      Compare

      Des Grid Cloud
      領導 學術界 Service provider
      標準
      特性 一次處理巨大的量 一次量少, 頻率極高
      Open source 完全 部分開放
      圖:
  5. Real-time System (即時系統)
    Def: 對工作的即時性要求極高, 若不能在指定時間內完成, 就算失敗
    指定時間內 => 為精準掌控時程, 一般較少採用輔助儲存裝置(ex: disk, tape) No disk, no virtual memory, tape 為 secondary storage
    可分為:

    1. Hard R.T. => 即為上述
    2. Soft R.T. => 需滿足
      • 具 priority scheduling
      • 具 preemptive 之特色
      • 降低 kernel 的處理時間
  6. Handheld System (手持系統)
    Def: 於手持裝置上執行之系統, ex: smart phone, PDA, Pad
    限制:1. Speed 較慢 2. Memory space 較小 3. Monitor 較小

  7. Embedded System (嵌入式系統)
    Def: 指開發出的系統, 並非在一般 PC 執行, 而是嵌入 3C 家電等裝置中, 使其具智慧化的效果


作業系統演進

  • Offline (離線作業)
    Def: 指藉由系統的離峰時間, 將 data 先行載入到高速 device, 使 CPU 之後可從此取得 data
    => CPU utilization(使用率) 上升, CPU idle time 下降, 系統 performance 上升

  • Spooling (電腦週邊同步連線作業)
    Def: 利用高速 device (disk), 存方低速 device (tape) 的 data 使 CPU idle time 下降, 且於 Spooling 中 “可共用 I/O device 之資源”
    圖:

  • Buffering (緩衝)
    Def:

    • 用以解決速度不對等的問題
    • 一般會在高速 device 切一暫存空間當低速 device 的緩衝區, 如此 CPU 可直接面對高速 device 即可
  • Spooling vs Buffering
    Spooling 自身的 CPU 計算可和其他工作的 I/O 運作重疊執行
    Buffering 自身的 CPU 計算只可和自身的的 I/O 運作執行
    Note: 實際上 buffering 中 上圖 (2), (3) overlay execution 不易達成, 所以 job 可分成 I/O bound job, CPU bound job

  • Compare

    I/O Bound CPU Bound
    需大量運作, 少量的 CPU 計算 相反
    Speed 受限於 I/O device 的效能 Speed 受限於 CPU 的效能
    Input: CPU 常面對空的 Buffer Input: I/O device 常面對滿的 Buffer
    Output: CPU 常面對滿的 Buffer Output: I/O device 常面對空的 Buffer
  • Caching (快取)
    Def: 將常用的 data 複製一份到高速 device 中以提高 CPU 存取的 I/O 效能, 可以加速 CPU 資料存取時間
    圖:

  • 回寫策略

    Write-through Write back
    Cache 一更動, 馬上寫回 當 cache 的 data 須搬離 cache 之後再將之寫回
    優點:Cache, memory 之間的 data 保持一致性 優點:Speed 較快
    缺點:Speed 不佳 缺點:Cache, memory 的 data 可能不一致

Summary