or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
OS筆記-Chapter 2: Operating-System Structures
tags:
OS
目錄
Chapter 1: Introduction
Chapter 2: Operating-System
Chapter 3: Processes
Chapter 4: Threads
Chapter 5: CPU Scheduling
Chapter 6: Process Synchronization
Chapter 7: Deadlocks
Chapter 8: Main Memory
Chapter 9: Virtual Memory
Chapter 10: File-System Interface
Chapter 11: File System Implementation
Chapter 12: Mass-Storage Systems
Chapter 13: I/O Systems
Chapter 14: Protection
Chapter 15: Security
作業系統服務(Operating System Services)
使用者與作業系統介面(User Operating System Interface)
命令直譯程式(command interpreter):
圖形使用者介面(GUI,Graphics User Interface):
系統呼叫(System Calls)
系統呼叫提供一個由作業系統服務的介面,這類呼叫一般以C或C++寫成,通常系統每秒執行成千的系統呼叫

應用程式介面(Application Program Interface):指定一組可用的函數給應用程式開發人員設計程式
為什麼應用程式設計師偏愛依照API寫程式而非呼叫真正的系統呼叫?
系統呼叫介面(systen-call interface):
傳遞參數至作業系統有三種方法:
系統呼叫的類型(Types of System Calls)
系統呼叫可概略的分成六大類:
行程控制(process control)
檔案的管理(file manipulation)
裝置的管理(device manipulation)
資訊的維護(information mainranace)
通信(communication)
保護(protection)
系統程式(System Programs)
又稱為系統常式(system utility),提供一些程式開發與執行的便利環境,有些只是使用者的系統呼叫之間的介面
可分成這些類型:
Most users' view of the operation system is defined by system programs, not the actual system calls
作業系統的設計和製作(Operating System Design and Implementation)
設計目標:
方法與策略(Mechanism & Policy)
Specifying and designing OS is highly creative task of software engineering
製作(Implementation)
早期的作業系統是由組合語言寫成的,現在多使用高階語言寫成(C、C++)
作業系統可以使用一種以上的語言撰寫
使用高階語言的優點除了更容易寫好與偵錯外,也更容易移植(port)到其他硬體上(組語會依硬體而不同),但會降低速度與增加儲存需求
模擬器(Emulation)可使作業系統在非原生的硬體上執行
作業系統結構(Operating System Structure)
作業系統是一個大而複雜的系統,假如要有合適的功能和容易的修改,一般的方法是將它分成較小的元件而不是一個單一(monolithic)的系統
簡單的結構(Simple Structure)
分層方法(Layered Approach)
微核心(Microkernel System Structure)
模組(Modules)
混合系統(Hybrid Systems)
iOS
Android
作業系統除錯(Operating-System Debugging)
除錯(debugging):發現和修正系統中硬體和軟體錯誤
性能調適(performance tuning)
DTrace
作業系統建立(Operating System Generation)
作業系統通常以磁碟、ISO映像檔(CD-ROM或DVD-ROM的格式)發布
SYSGEN program:
系統啟動(System Boot)
載入核心來開啟電腦稱為啟動(booting)
靴帶式程式(bootstrap program/bootstrap loader):找到核心,並載入記憶體,開始執行核心程式