運算環境 (Computing Environments)
本系列文章內容參考自經典教材 Operating System Concepts, 10th Edition (Silberschatz, Galvin, Gagne)。本文對應章節:Section 1.10 Computing Environments。
OS 並非只存在於一種形式的電腦上。從辦公室的桌上型電腦,到口袋裡的智慧型手機,到工廠裡的機械手臂控制器,再到 Amazon 雲端機房裡的虛擬機,每一種運算環境 (Computing Environment) 都對 OS 提出了不同的要求與挑戰。OS 在這些截然不同的環境中,以不同的形態存在,卻扮演著同樣的核心角色:管理硬體資源、提供程式執行環境,以及協調各元件之間的協作。
1.10.1 傳統運算 (Traditional Computing)
「傳統」並非一個固定的狀態,而是一個持續演化的參照點。
在 20 世紀下半葉,運算資源極為稀缺。當時的系統分為兩種基本模式:批次系統 (Batch System) 事先準備好一批工作依序執行,無需使用者互動;互動系統 (Interactive System) 則等待使用者輸入指令再做出回應。為了最大化珍貴運算資源的使用率,出現了時間分享系統 (Time-Sharing System):用計時器和排程演算法,讓多個使用者快速輪流使用同一台電腦,每人都感覺像是獨占。
隨著技術演進,傳統運算的邊界不斷模糊。典型的辦公室環境曾是獨立 PC 連接到本地網路,伺服器提供檔案和列印服務,遠端存取不便。如今,企業透過網頁技術讓員工使用入口網站 (Portal) 存取公司資源,員工可在任何地方透過無線網路或行動數據網路連線。在家庭端,過去每個家庭只有一台電腦透過慢速數據機連線;今日則是多裝置共享高速網路,家用電腦甚至可作為網頁伺服器,而防火牆 (Firewall) 則負責限制網路裝置之間的通訊,保護家庭網路不受外部入侵。
今天,純粹的時間分享系統幾乎消失了,但相同的排程技術仍運行在每一台桌上型電腦、筆記型電腦、伺服器、甚至手機上。差別在於:現在輪流使用 CPU 的通常是同一個使用者的多個 Process,而非多個使用者。網頁瀏覽器本身可能就是由多個 Process 組成,每個分頁一個 Process,全都在時間分享下並行運作。這說明了一個重要的觀念:傳統運算所發展出來的排程演算法,不是被淘汰,而是以新的形態繼續運作在現代每一台電腦中。
1.10.2 行動運算 (Mobile Computing)
行動運算 (Mobile Computing) 指的是在手持的智慧型手 機 (Smartphone) 和平板電腦 (Tablet) 上進行運算。
功能的演化:從取捨到超越
歷史上,行動裝置以犧牲效能換取便攜性。早期的行動系統在螢幕大小、記憶體容量和整體功能上都遜於桌機或筆電,只提供電子郵件和網頁瀏覽等基本服務。然而,近年來行動裝置的功能已大幅提升,現代智慧型手機不僅能播放音樂和影片、閱讀電子書、拍攝和剪輯高畫質影片,甚至能完成許多傳統電腦才能做的工作。桌機和平板電腦在功能上的界線,如今已愈來愈難辨別。
更進一步地說,現代行動裝置已能實現傳統桌機無法或不切實際做到的功能,這正是因為行動裝置擁有一組傳統電腦所沒有的感測器硬體。
獨有的硬體感測器
這些裝置的定義特徵不只是輕薄可攜,更在於它們搭載的感測器生態系統:
- GPS 晶片 (GPS Chip):利用衛星訊號精確定位裝置在地球上的位置,是導航應用、附近餐廳推薦等地點感知服務的基礎
- 加速度計 (Accelerometer):偵測裝置相對地面的方向,以及傾斜、搖晃等動作;許多遊戲直接以傾斜手機取代搖桿或鍵盤作為輸入介面
- 陀螺儀 (Gyroscope):提供比加速度計更 精細的旋轉偵測,常與加速度計配合使用以提升精度
這三種感測器的組合,使行動裝置能夠實現擴增實境 (Augmented Reality) 應用,在現實世界的即時畫面上疊加數位資訊。試想在桌機上開發等效的導航或 AR 應用,幾乎是不可能的任務,這正是行動運算環境相較於傳統運算的獨特價值所在。
行動運算的限制:電池即邊界
行動裝置使用 IEEE 802.11 無線網路或行動數據網路連接網際網路。然而,相比桌上型電腦,行動裝置的記憶體容量和處理速度受到電池壽命的嚴格約束。舉例而言,一台智慧型手機的儲存空間約為 256 GB,而桌機則常見 8 TB;行動裝置使用的處理器通常較小、較慢、核心數較少,目的是降低耗電量,以換取更長的電池續航。這說明了 OS 在行動環境下的一個核心設計挑戰:如何在有限的電力預算內,最大化使用者體驗。
目前主導行動運算市場的兩個 OS 是:
| OS | 適用裝置 |
|---|---|
| Apple iOS | iPhone、iPad |
| Google Android | 各廠牌 Android 智慧型手機和平板 |
1.10.3 主從式運算 (Client-Server Computing)
現代網際網路的基礎架構建立在分散式系統 (Distributed System) 之上。在各種分散式架構中,最普遍的一種是主從式系統 (Client-Server System):由一個或多個伺服器系統 (Server System) 回應用戶端系統 (Client System) 所發出的請求。用戶端可以是桌機、筆電,也可以是智慧型手機,只要能透過網路送出請求,就能享用伺服器提供的服務。
下圖描繪了主從式系統的一般架構:中央伺服器透過網路連接多種不同形式的用戶端裝置,所有的請求都流向伺服器,由伺服器執行後再將結果回傳給用戶端。
依照伺服器提供的服務類型,可以分為兩大類:
- 運算伺服器 (Compute Server):提供介面讓用戶端送出請求(例如「查詢某筆資料」),伺服器執行動作後回傳結果。執行資料庫查詢的伺服器是典型例子,用戶端不需要知道資料如何儲存,只需送出查詢、等待結果即可。
- 檔案伺服器 (File Server):提供檔案系統介面,讓用戶端建立、讀取、更新、刪除檔案。Web 伺服器就是一種典型的檔案伺服器,它向用戶端瀏覽器傳送網頁內容,這些內容可以從簡單的 HTML 頁面到高畫質影片串流。
主從式架構的設計簡潔直觀,但存在一個根本性的結構弱點:
主從式架構有一個結構性弱點:伺服器是系統的瓶頸 (Bottleneck)。所有請求都必須通過那一台(或幾台)伺服器,當請求量過大時,伺服器就成為整個系統的限制因素。不論用戶端有多少台,效能上限取決於伺服器的處理能力,而非整個網路的資源總和。
這個問題催生了下一節要介紹的點對點架構。