---
# System prepended metadata

title: 'Chapter 1: Introduction'
tags: [operating system, note, thu]

---

###### tags: `operating system` `note` `thu`

# Chapter 1: Introduction

## What is Operating System(OS)?
![](https://i.imgur.com/acZKexy.jpg)

### 定位:
- 使用者和電腦硬體中間的介面。
![](https://i.imgur.com/ofUuqDk.png)

### 用途:
- 提供使用者一個環境可供執行程式。
- (因此使用者也可能是你在電腦上執行的軟體)
- 通常使用System call (read, write…etc)等primitives
![](https://i.imgur.com/XLVhWtH.jpg)




### 目標:
- 讓使用者可以更方便的操作電腦硬體。

### 常見軟體(透過System call和系統互動):
- Shell: Command Interpreter
- Office

### 分時系統(Time sharing OS):
- Concurrent process, 但分段執行。
- 使用Interrupt來等待I/O的結果或是讓作業系統執行其它的程式。
- 其它還有Real time OS, BATCH SYSTEM等，但還是以Time sharing OS為大宗。
- 每個人分到的時間為time slice
![](https://i.imgur.com/0rsaEvM.png)


### 中斷種類
- 內部中斷: 當程式要求OS提供服務時(e.g. I/O)，自我中斷等待OS的回應。
![](https://i.imgur.com/mep0o6a.jpg)
- 外部中斷: 當OS要切換工作時，主動中斷當下的工作。
- 結束程式: 程式結束自然就中斷了。

### 職責:
- 記憶體管理
    - 管理程式執行時會需要使用到的記憶體，進行swap in/out
    - 虛擬記憶體管理(>4GB)
- 程式執行的流程(Program→compiler→loader)
- 排程管理(time sharing os的功能)
- 權限管理
![](https://i.imgur.com/q5IEOZu.png)

### 管理的硬體:
- 處理器
- storage(e.g. 記憶體, 硬碟)
- I/O裝置
- 資料(檔案)
- 內部裝置: clock, timers
- 處理程序(Processes)

### 補充:
#### 定址
- 組合語言中所提到的位置，都不會是實際上在記憶體中的位置。
- 程式執行時的記憶體區域就像是一個連續的長方形。
- 而我們寫組語時所提到的位置，即使是絕對定址，也只是未來在這個長方形中的相對位置。

#### 中斷
- 不管是外部中斷或是內部中斷，都會把現在執行的指令完整的執行完
- 而不會卡在某個Fetch/Execute或是其中的Phase的任何一個階段