Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 1: Introduction (電腦系統組織 (電腦系統運作 (p.1-11圖:fire::fire::fire:)…
Chapter 1: Introduction
電腦系統架構(p.1-4 圖:fire::fire::fire:)
使用者 : 人、機器、其他電腦
應用程式
利用系統資源協助使用者解決問題
e.g.文字處理器、編譯器、瀏覽器...
作業系統
介於軟硬體之間,負責控制、協調
硬體
OS在做什麼
根據觀點
使用者
方便、好用、效能好
不在意資源利用度(
resource utilization
)
But
shared computer
such as
mainframe
or
minicomputer
must keep all users happy
作業系統
為資源分配者(
resource allocator
) 及控制程式(
control program
)
使硬體有效地被利用
管理user programs 的執行
電腦系統組織
電腦系統運作
一個或多個CPU、device controllers透過
bus/hub
:star:連接 -> 存取shared memory
CPU、devices同時競爭memory cycles
Bridged Chipset Architecture (橋芯片組)
北橋(host)
又被稱為Memory Controller Hub(MCH) or Graphics and Memory Controller Hub (GMCH)
透過FrontSide Bus (FSB)連到CPU
不同bus,不同的頻率
南橋
又被稱為I/O Controller Hub(ICH)
連接速度較慢?(Connected to slower capabilities)
電腦系統運作 (p.1-11圖:fire::fire::fire:)
I/O設備與CPU同時在執行
device controller
:star::star::star:
每一個device controller都
(1)負責特定的設備種類
(2)有一個local buffer
device driver
(驅動程式):star::star::star:
每種type各一種,負責做管理
e.g. CPU把資料移進/出memory
I/O
定義: 從device -> controller的local buffer
interrupt
:star::star::star: : device controller通知CPU,說它已完成工作,稱之
Interrupts的常見功能
流程
interrupt發生時,把控制權交給
interrupt service routine (ISR)
:star::star::star:來處理
interrupt vector
:star::star::star:: 可從裡面找到service routines的addresses
必須儲存發生中斷的指令的位址
software-generated interrupt
trap
:star::star::star: : 正常系統功能請求
exception
:star::star::star:: 系統發生錯誤(e.g.除以0)
An operating system is
interrupt driven
:star::star::star:
Interrupt Handling(中斷處理)
作業系統會把CPU的狀態記錄下來,存在 :pencil2:
register
、
program counter
確定發生的中斷類型
polling
:star:
vectored
interrupt system:star:
根據segement code決定要採取什麼動作
I/O架構
分成兩種
I/O完成後,才把控制權還給user program
使用idle指令把CPU空下來,直到下一次的interrupt
一次最多處理一個I/O指令
I/O開始後,就把控制權還給user program
System call
:star: : 讓OS叫user等待I/O完成
Device-status table
:star: : 紀錄每個設備的type, address, and state
OS透過I/O device table來確認設備的狀態、修改table entry以涵蓋interrupt
Storage架構(p.1-15圖:fire::fire::fire:)
Main memory
只有CPU才可以直接存取
Random access
、
volatile
、
Dynamic Random-access Memory (DRAM)
:star:
Secondary storage
Main memory的擴產
nonvolatile
:star:
Hard Disk Drives (HDD)
:star:
被分成
tracks
,track再被分成
sectors
disk controller
: 決定設備與電腦的邏輯互動
Non-volatile memory (NVM)
:star:
比硬碟快、nonvolatile
也就是SSD(固態硬碟)
現代電腦的運作(:fire::fire::fire:要記起來哦!!!)
p.1-16圖:fire::fire::fire:
Direct Memory Access Structure(DMA)
:star::star::star:
Device controller可直接把資料從buffer送到main memory,無須CPU介入
一個block才產生一個中斷(而非1byte就一個)
用於高速I/O設備,速度可快到跟memory差不多
電腦系統架構
基本介紹
single general-purpose processor
:star::star::star:: 大多數的系統採用
Multiprocessors
:star::star::star:
別名 :
parallel systems
(平行系統)、
tightly-coupled systems
(緊密耦合系統)
優點
throughput↑
規模經濟
可靠度↑ (容錯,一台壞了換掉就好)
分兩類
Asymmetric Multiprocessing
(非對稱):star: : 處理器間地位不平等
Symmetric Multiprocessing
(對稱) :star:: 處理器間地位都平等
Clustered System
(叢集):star::star::star:
定義 : 多個系統一起工作
通常使用
storage-area network (SAN)
共享儲存空間
其中一個故障了也沒什麼事 ->
high-availability
(高可用性)
Asymmetric clustering
: 一台機器處於Hot-standb,負責監控
Symmetric clustering
: 多台機器在執行應用、彼此互相監控
有些叢集用於
high-performance computing (HPC)
(高效能運算)
應用程式必須被寫成允許
parallelization
其他小介紹 (p.1-20圖:fire::fire::fire:)
Symmetric Multiprocessing Architecture(對稱多處理器)
所有CPU共用一個memory
所有處理器都是同儕,沒有主從關係
Multi-core Design(多核)
Non-Uniform Memory Access(NUMA)
有多個memory,可解決多個CPU存取memory的bottleneck
Cluster System Architecture
多台電腦共享儲存空間(by LAN 高速網路,存去NAS)
作業系統的運作
運作流程
(1)
Bootstrap program
:star:
工作 : 系統做初始化、載入kernel
存放 : ROM或EPROM,通常稱為
firmware
:star::star::star:
(2)Kernel loads
(3)開始
system daemons
:star::star::star:(一些輔助程式)
(4)Kernel
interrupt driven
硬體中斷 : 由設備發出
軟體中斷 : 軟體錯誤、要求系統服務(
system call
:star:)
Multiprogramming and Multitasking
Multiprogrammingg (Batch system)
:star::star::star:
CPU不會停下來,它隨時都會有一個工作要做
所有job都被存在memory中
CPU可載入多個程式,當CPU需要停下來等時(e.g.在做I/O),就先把CPU切給別人
透過
job scheduling
:star:選擇、執行工作
Timesharing (multitasking)
:star::star::star:
CPU頻繁切換,切得夠快能夠讓人以為每秒都在執行程式
creating
interactive
:star: computing
Response time
應小於1秒
process
: 在memory中執行的程式(每個user至少都有一個)
CPU scheduling
:star:: 若有多個job同時要執行,就幫他們排時間,直到
Pre-empted
or allocated time is up
swapping
:star: : 若process進不去memory,可使用它把processes移進或移出
Virtual memory
:star: : 允許執行不完全在memory中的process
雙模與多模
Dual-mode
:star:
保護作業系統、系統元件
分成2種mode
User mode
、
kernel mode
Mode bit
由硬體提供
可用來區分現在是在user或kernel mode
privileged
instructions(特權指令)只有kenel moded可以使用
multi-mode
:star:
e.g.
virtual machine manager (VMM)
mode for guest
VMs
從user mode轉換到kernel mode
Timer(計時器)可防止無限loop、processes占用系統資源
資源管理
Process Management
process
:star::star::star:
定義
執行中的程式
系統進行資源分配的基本單位
種類
Single-threaded process
:star: : 只有一個
program counter
(程式計數器):star:指向下一條指令的位址
Multi-threaded process
:star: : 每個thread都有一個program counter
Process管理所進行的活動
新增、刪除、暫停、恢復process
提供同步、溝通、處理死結的機制
Process v.s Program :star::star::star:
Process : 主動實體
Program : 被動實體
Memory Management
所要執行的程式的
instructions、data
:star:必須在memory中
記憶體管理所進行的活動
追蹤目前有哪些memory被使用、被誰使用
將data、process移進或移出memory
配置、釋放記憶體空間
File-system Management
將物理性質抽象化為邏輯儲存單元,稱為
file
:star:
檔案系統管理所進行的活動
建立、刪除、操作檔案、目錄
將文件映射到secondary storage
備份文件
Mass-Storage Management
通常用來儲存不是放在main memory的東西
Mass-Storage管理進行的活動
安裝、卸載、儲存空間分配、磁碟分割、保護
data從硬碟到暫存器
Multitasking
不論資料現在存在哪一層,都要小心使用,
磁碟 -> main memory -> cache -> 硬體暫存器
Multiprocessor
必須提供
cache coherency
:star:
安全與保護
Protection
:star: : 控制存取
Security
:star: : 防止內部、外部攻擊
如何決定誰可以做什麼事?
透過
user IDs
、
group ID
:star:
Privilege escalation
:star: : 允許user更改為有效ID,以提升權限
虛擬化
Emulation
:star:
nterpretation
(直譯):star: : 當語言無法被編譯成native code時,就作直譯
Virtualization
:star:
在
host
OS上在run一個
guest
OS
Hypervisor
:star::star::star: : 機器層級虛擬化( **Machine-level virtualization - VMM)
containerization
:star::star::star: : OS層及虛擬化(
Operating-system-level virtualization
)
Distributed Systems
分散式運算
把多個系統串在一起
以
Network
作為溝通路徑,以
TCP/IP
最常見
Local Area Network (LAN)
Wide Area Network (WAN)
Metropolitan Area Network (MAN)
Personal Area Network (PAN)
Network Operating System
允許多個系統交換訊息 => 看起來像一個系統而已
Kernel Data Structures
Linked list
Binary search tree
Hash function
can create a
hash map
Bitmap
: n個二進位數字比要n個item的狀態
Computing Environments
傳統
Portals
: 提供對內部系統的web存取
Network computers (thin clients)
are like Web terminals
firewalls
(防火牆) : 保護系統遭受攻擊
Mobile
透過
wireless networks
(無線網路)
Google Fuchsia OS
Modular
不同的部分可各自開發
藉由
component oriented
:star::star::star:實現,並包成
packages
:star::star::star:
Capability-based
process必須具有
capability
(a valid handle):star::star::star:,以對其引用對象進行操作
supporting
Flutter
:star::star::star: : 寫出來的程式可以在
所有
平台上執行
Google Flutter SDK
Portable UI toolkit
:star::star::star: : 使用一個codebase,就可以在iOS及Android上建立原生app
特色 : 開發快速、具表現力且靈活的UI、Native Performance
Client-Server
多個系統
servers
,以回應
clients
發出的請求
Compute-server system
: 提供使用者請求服務的介面(e.g.資料庫)
File-server system
: 提供使用者儲存、檢索檔案
Peer-to-Peer
另一種分散式系統的模型
不區分clients及servers
透過discovery protocol,廣播自己可以當srever或client
例子 : Napster、Gnutella、Skype的
Voice over IP (VoIP)
:star:
雲端運算
透過網路,提供運算、儲存、app服務
多種種類
:star:
Public cloud
(公共雲) : 供所有人使用
:star:
Private cloud
(私有雲) : 供私人使用
:star:
Hybrid cloud
(混合雲) : 公共+私有
:star:
SaaS
(Software as a Service): 透過網路提供應用程式 (e.g.文字處理器)
:star:
PaaS
(Platform as a Service): 透過網路提供應用程式會用到的軟體stack (e.g.資料庫)
:star:
IaaS
(Infrastructure as a Service) : 透過網路提供servers或儲存空間 (e.g.備份)
雲端運算環境 = 傳統OS + VMMs+
cloud management tools
:star:
Real-Time Embedded Systems
最常見的
real-time OS
:star:
特殊目的的OS
有明確的固定時間限制、必須在限制內完成工作
Free and Open-Source Operating Systems
作業系統以source-code形式提供,不僅是binary
closed-source
:star: and
proprietary
(專有):star:
與
copy protection
(版權保護):star: and
Digital Rights Management (DRM)
:star:相反
例子 :
GNU/Linux、 BSD UNIX (including core of Mac OS X)
:star:
OS的定義
沒有一個明確的定義
程式可分成兩類
kernel
:star::star::star: : 一直在電腦中執行的程式
非kernel
system program
:star: : 跟作業系統有關,但不是kernel
application program
:star: : 跟作業系統無關的
middleware
(中介層):star::star::star:
協助開發人員進行開發的一些軟體
e.g. 資料庫、多媒體、圖型