iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0

OS初體驗

tags: IT鐵人

甚麼是OS

OS是Operating System的縮寫,比如說現在常聽到的Windows系統、macOS、以及以Linux核心衍生出來的眾多OS。

前面的文章提到的基本上偏向電腦的零件架構,而OS就是運行在這些硬體上面,並且讓APP運行在自身之上,OS必須確保APP能夠順暢且安全的運行,電腦的架構可以用下面這張圖詮釋:

大概就是一層一層的向上疊,其中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兩種方法:

concurrent代表一下跑這個一下跑那個,只有單核心的CPU就會採用這種方式。
Parallel代表同時跑好幾個Jobs,多核心的才可以這麼運作。

不過基本上核心的數目沒辦法符合Job的數目,所以通常會是兩者合併執行,並且設定一個Job能佔用的時這種時間到了就切換成下一個Job,這種作法稱為RR(Round-Robin) Scheduling。

First Blood

OS的第一個章節篇幅比較少,跟計算機組織一樣,不過放心,後面的篇幅就會很長了。

上一篇 下一篇
RAID I/O運作


上一篇
Day-15 RAID
下一篇
Day-17 I/O運作
系列文
杰哥的考研紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言