文章列表

# File-System Structure I/O 在 memory 和 disk 之間的轉移以 block 為單位 一個 block 由一個或多個 sector 組成 一個 sector 通常 512 bytes 2 個 design problems in FS interface to user programs(上層) interface to physical storage (disk)(下層) 一個 OS 能支援多個 FS type NTFS, FAT32 # File System Implementation # On-Disk...

# File System Interface 檔案系統是一套實現了資料的儲存、分級組織、存取和取得等操作的抽象資料類型(Abstract data...

# Background 虛擬記憶體 (Virtual Memory) 會讓應用程式認為其擁有連續可用的記憶體(一個連續完整的位址空間),而實際上,其通常是被分隔成多個實體記憶體碎片,還有部分暫時儲存在外部磁碟記憶體上,需要時才進行資料交換 優點: 允許程式大小大於實體記憶體 (physical memory) 大小情況下,程式仍然能執行。 OS 的負擔,程式設計師無負擔 記憶體的各個小空間皆有機會被利用到,記憶體使用度上升 提高 multiprogramming degree,提昇 CPU 使用度 每一次的 I/O transfer time 下降,因為不用將整個程式的所有 page...

# Background CPU 可直接存取 register 和 memory,但不能直接存取 disk Process 等待 Loader 將程式從 disk 載入到 memory 中才能執行(執行期間可在 memory 和 disk 間移動) 多個 process 被載入 memory 中以提升資源使用率和反應時間 How to refer memory in a program? # address binding Compile Time(還不知道地址,只給個變數(BASE)) program 改成 symbolic code 地址:compiler 將 symbolic...

# Deadlock Characterization Deadlock 意思是系統中存在一組 process 陷入互相等待對方所擁有的資源的情況,造成所有的 process 無法往下執行,使得 CPU 利用度大幅降低 Deadlock 發生須符合以下四項充要條件(四個條件都要成立 for possible deadlock): Mutual Exclusion : 資源不可共享 Hold and Wait : 已分配資源的 process 可再請求其他資源 No Preemption : 資源不可被強制奪取 Circular Wait : 存在一個 waiting processes...

# Background 共享的資料同時被不同 Process /threads 存取時可能導致 data 的不一致性 (inconsistency)。為了維持 data 的一致性,需要有機制去確保合作的 process 的執行的順序 # Consumer & Producer Problem 之前使用 in, out position ,現在使用 count value # Concurrent Operations on counter 除了 Buffer 之外 Counter 也是 share variable instruction level...

# Basic Concepts # Multiprogramming OS 用 multiprogramming 方法 keep 多個 process 在 memory 中 一次只有一個 process 在 CPU 執行,其他的 process 處於 waiting 狀態 當執行狀態的行程必須等待資源才能往下執行(I/O request),作業系統拿回 CPU 的控制權交給等待的行程 目的:CPU 隨時有執行狀態的行程,使 CPU 使用率最大化 # CPU-I/O Burst Cycle Process 基本上不是在執行 instruction,就是在執行 I/O,執行一連串的...

# Thread Introduction Motivation Benefits of Multithreading Responsiveness:允許程式中的某部份被中斷或是執行得非常久時,該程式仍然可以繼續執行 Resource Sharing:分享 code、data 和 OS 資源 Economy:輕量化的 process。 (context switch 一個 thread 比 process 快約 5 倍,建立一個 thread 比 process 快約 13 倍) Utilization of MP arch:多個 thread 能在多個處理器平行處理 #...

# Process Concept # Program vs Process vs Threads Program (Passive entity) 被動、儲存於 disk 中等待被執行的程式碼 Process (Active entity) 主動、正在記憶體裡面執行的程式。包含: Code Segment (text section) Data Section (global variables) Stack (暫時的 local variables 和 functions) Heap (動態分配的 variables 或 classes) Current Activity...

# OS Services # User Interface CLI (Command Line Interface) Command Interpreter / Shell 不屬於 OS,打的指令不是直接交給 OS 而是交給 Shell,方便使用者使用指令 一台電腦根據每個使用者的喜好不同,可以做一些客製化的調整 Text-based interface Examples: Bash, Zsh, PowerShell 下指令的介面,允許使用者透過文字指令與系統互動 優點:靈活、資源消耗低 缺點:學習曲線較陡峭,不適合初學者 GUI (Graphical User...