# OS初體驗 ###### tags: `IT鐵人` ## 甚麼是OS OS是Operating System的縮寫,比如說現在常聽到的Windows系統、macOS、以及以Linux核心衍生出來的眾多OS。 前面的文章提到的基本上偏向電腦的零件架構,而OS就是運行在這些硬體上面,並且讓APP運行在自身之上,OS必須確保APP能夠順暢且安全的運行,電腦的架構可以用下面這張圖詮釋: ![](https://i.imgur.com/LAxwbDu.png) 大概就是一層一層的向上疊,其中OS大致上含括了kernel、在外面一層還有一部分最外面的program,通常最外層還會加上User。 ## OS作用 前面提到OS是運行在硬體之上,可以達成以下事情: * 提供一個讓User易於操作電腦之溝通界面。 * 提供一個讓User programs易於執行之環境(提供一系列service)。 * 作為一個resource的管理者,協調分類這些resource(CPU, Memory, I/O)。 * 作為一個監督者,監督所有process執行,避免process破壞system造成為害。 而會需要以上作用就是因為電腦不會只跑一個程式,一定是許多之程式同時運作,這就稱為Multiprogramming System。 ## Multiprogramming System Multiprogramming System要能夠允許多個Jobs(process)運行。為了達成這件事,就需要Job Scheduling的技術。Job Scheduling技術指的是讓各個程式輪流使用CPU,讓每支程式都覺得自己一直都在運作。 Multiprogramming有Concurrent跟Parallel兩種方法: ![](https://i.imgur.com/OG1kChj.png) concurrent代表一下跑這個一下跑那個,只有單核心的CPU就會採用這種方式。 Parallel代表同時跑好幾個Jobs,多核心的才可以這麼運作。 不過基本上核心的數目沒辦法符合Job的數目,所以通常會是兩者合併執行,並且設定一個Job能佔用的時這種時間到了就切換成下一個Job,這種作法稱為RR(Round-Robin) Scheduling。 ## First Blood OS的第一個章節篇幅比較少,跟計算機組織一樣,不過放心,後面的篇幅就會很長了。 | 上一篇 | 下一篇 | |-|-| |[RAID](https://hackmd.io/@dZfCcN4hT8aUuDPv3B8CWQ/rkjkZXBZY)|[I/O運作](https://hackmd.io/@dZfCcN4hT8aUuDPv3B8CWQ/SyexQvsWt) ![](https://i.imgur.com/zgCVXEi.png)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up