[C1, Week3]Google IT Support Specialist 電腦概論

第三週主要講的是作業系統,也就是俗稱的 OS。

第三週

Google 對於 OS 的定義是這樣的:The whole package that manages our computer’s resources and lets us interact with it。簡單來說,就是一個套件,能夠管理資源並且讓我們與電腦互動。而 OS 又分成兩塊, User space 跟 Kernel space,Kernel space 跟硬體連接在一起,User 則會跟 User space 互動。

至於 Kernel 的功能是什麼呢?Kernel 會最佳化記憶體的使用,去保證我們的程序能夠有足夠的記憶體去運行,除了這個之外,還有以下四個功能:

在陳述檔案管理之前,必須先陳述檔案的種類有哪些,分別是 data、metadata、file system。metadata 指的是這筆資料的創立人、創立時間、檔案類型(extension)等。File system 的部分,Window — NTFS、Mac OS — APFS、Linux — ext4,很難跨系統存文件。至於他們是怎麼管理文件的呢?他們會先把寫進硬碟的資料變成 data block,這樣可以更方便讀取。

在這裏,要先解釋 Process 跟 Program 的差別,Google 的定義是這樣的:

Process: a program that’s executing, like our internet browser or text editor.

Program: an application that we can run, like Chrome.

看起來有點模糊,對吧?舉個例子來解釋 Process 就像當你運行了 Google Chrome 時,你可以一次開啟很多分頁,每一個分頁都是一個 Process,至於 Program,就是我們能夠執行的應用程式了。所以我們可以同時在同一個 Program 運行很多 Processes。

但是 CPU 是怎麼處理這些多進程(Process)的呢?它其實透過 Time slices,去分配給每個 Process,什麼是 Time slice 呢?Google 的定義是這樣的:A time slice is a very short interval of time that gets allocated to a process for CPU execution. 也就是說,他是把時間分成幾個很短的區間,並且輪流分配到各 Process,好讓 CPU 去執行,每個 Process 其實都是單獨執行的,只是他們的速度太快,快到我們以為他們是同步執行的。

Kernel 創造了 Process,並有效率的安排他們,也同步安排這些 Process 要何時結束。

當 Process 在進行時,會佔用到記憶體,然而,相較於硬碟,記憶體的容量較小,因此有個東西出現了:Virtual memory — a combination of hard drive space and RAM that acts like memory that our processes can use. 從字面上的意義來看,這是一個虛擬的記憶體,但為什麼我們要這麼做呢?為什麼我們不把程序直接存在 RAM 中呢?

如果這個程序夠小就可以,但因為有些程序太大了,會導致這樣很沒有效率。就像食譜一樣,你不需要閱讀一整本食譜,就為了做一道菜。而當我們把我們的硬碟分割,這個空間就叫做 Swap space。

當我們執行一個 Process,我們會先拿從程序拿資料(in chunks),這些資料配稱作為 Pages,接著我們儲存這些 Pages 在虛擬記憶體中,當我們想要讀他時,從需要把資料傳輸到 RAM 上,如此可以減少很多沒有正在使用的程式的功能所造成的記憶體浪費。

簡明扼要而言,就是電腦的各個端口。

其餘就是一些定義:

Logs: files that record system events on our computer.

這週的後續在建立 Virtual Machine,以後也許有機會會提到,在此就先跳過。

如有錯誤歡迎指正,謝謝閱讀。

理科與藝術交織成靈魂的會計人,喜愛戲劇與攝影,但也喜歡資料科學。

理科與藝術交織成靈魂的會計人,喜愛戲劇與攝影,但也喜歡資料科學。