-
Notifications
You must be signed in to change notification settings - Fork 0
week9.md
-
作業系統(OS,Operating System:電腦硬體應用軟體之間溝通的橋,一組程式組合 而成,屬於系統軟體。
-
核心程式(Kernel):電腦開機最先被載入記憶體內,責硬體與軟體的控制、溝通,以及資源的分配,一直維持到關機為止。
-
作業系統與硬體的關係密切,針對不同機種所設計的作業系統也會有所不同。
-
分配管理系源:作業系統功能的重是在於如何有效運用系統資源。
-
程序管理:程序(Process)是指目前正被CPU 執行中的程式,於CPU 的速度比設。備快,作業系統需合理分配各程序的執行順序,使CPU揮大的能。
-
記憶體管理:記憶體的分配使用、執行完畢的軟體其所佔用記憶體的回收再分配、記憶體存取的控制...等。
-
周邊設備共用與管理:對於I/O設備如印表機、碟機等)的使用分配管理。
-
檔案系統管理:提供好的檔系統,使用者可安全便利地存取檔案。
-
-
建立使用者合面(Shell):除了文字使用者介面外,目前的作業系統提供友善的圖形使用者。 介面(GUI,Graphical User Iterface)。讓使用者與作業系統之間的溝通更加容易。
-
執行軟體並提供服務:視應用軟體的需求,不斷地檢查系統各部分的元件,如執行錯誤。 偵測、檢查是否有足狗的儲存空間等,讓硬體資源隨時保持在最佳狀況。
-
使用者管理:對於系統的安全保密,作業系統提供使用者的授權及管理,運用群組的概念方便管制人數眾多的情形。
-
單人單工作業系統
- 作業系統同一時間只允許一個使用者操作,且同一時間只能執行一個程式。
- 例如:MS-DOS
-
單人多工作業系統
-
作業系統同一時間只允許一個使用者操作,但同一時間內能執行多個程式。
-
多工處理(Multi-tasking是指能夠同時執行多個程式的能力,多工作業系統可以充分 用電腦的資源,使用者也能同時做多項工作。多工是CPU一次可處理多個程式·但同一時段內只處理一件作中的一部分,主要技術有:
- 分時技術:將CPU 時間切成細塊,分配給目前所有執行中的程式。
- 排程能力:作業系統決定所有目前等待或執行中工作的優先順序。
- 中斷處理:必要時強迫結束某執行中的工作。
-
目前大部分的個人電腦都是使用單人多工作業系統,且提供圖形使用者介面(GUI)。
-
例如:Windows XP/Vista/7/8/10、 macOS 10.14、Chrome OS
3.多人多工作業系統
-
作業系統同一時間能允許多個使用者同時操作,且同一時間內能執行多個程式。
-
多人作業系統必定是多工作業系統,反之則不成立。
-
網路作業系統(NOS,Network operating system多人使用的作業系統允許多個使用者共用電腦的硬體資源,通常用來作為伺服器使用的網路作業系統,探集中式的管理方式,負責整個網路軟硬體資源的分配與管理。
-
例如:Windows Server 系列、macOS、UNIX
-
- Linux的基本架構,Linux 萬物皆檔案
- Linux中檔案相關的系統呼叫
open()、read()、write()、lseek()、stat()、opendir()、readdir()
行程管理
- 使用
fork()
分叉出新行程 - 使用
execvp(prog, arg_list)
將新行程替換為另一個程式(會把現在運行程式停掉,執行其他指令或程式)
執行緒
- 使用
pthread
函式庫 - 使用
pthread_create()
建立新執行緒 - 使用
sleep()
暫停一段時間
-
ps
: 可以查看行程 -
ps -all
: 可以在Linux系統裡面看到所有的行程,作業系統的TTY通常是??,作業系統使用fork可以創造出多個行程,行程管理系統利用多工,讓很多行程可以一起運行。 -
kill PID
: 可以針對行程的PID做刪除 -
gcc file -lpthread
: 使用gcc編譯file,有用thread函式庫
參考資料 https://www.hlbh.hlc.edu.tw/resource/openfid.php?id=30764