Skip to content

week9.md

al2698 edited this page Jun 17, 2022 · 7 revisions

作業系統的定義

  1. 作業系統(OS,Operating System:電腦硬體應用軟體之間溝通的橋,一組程式組合 而成,屬於系統軟體。

  2. 核心程式(Kernel):電腦開機最先被載入記憶體內,責硬體與軟體的控制、溝通,以及資源的分配,一直維持到關機為止。

  3. 作業系統與硬體的關係密切,針對不同機種所設計的作業系統也會有所不同。

作業系統的功能

  1. 分配管理系源:作業系統功能的重是在於如何有效運用系統資源。

    • 程序管理:程序(Process)是指目前正被CPU 執行中的程式,於CPU 的速度比設。備快,作業系統需合理分配各程序的執行順序,使CPU揮大的能。

    • 記憶體管理:記憶體的分配使用、執行完畢的軟體其所佔用記憶體的回收再分配、記憶體存取的控制...等。

    • 周邊設備共用與管理:對於I/O設備如印表機、碟機等)的使用分配管理。

    • 檔案系統管理:提供好的檔系統,使用者可安全便利地存取檔案。

  2. 建立使用者合面(Shell):除了文字使用者介面外,目前的作業系統提供友善的圖形使用者。 介面(GUI,Graphical User Iterface)。讓使用者與作業系統之間的溝通更加容易。

  3. 執行軟體並提供服務:視應用軟體的需求,不斷地檢查系統各部分的元件,如執行錯誤。 偵測、檢查是否有足狗的儲存空間等,讓硬體資源隨時保持在最佳狀況。

  4. 使用者管理:對於系統的安全保密,作業系統提供使用者的授權及管理,運用群組的概念方便管制人數眾多的情形。

作業系統的類型

  1. 單人單工作業系統

    • 作業系統同一時間只允許一個使用者操作,且同一時間只能執行一個程式。
    • 例如:MS-DOS
  2. 單人多工作業系統

    • 作業系統同一時間只允許一個使用者操作,但同一時間內能執行多個程式。

    • 多工處理(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 萬物皆檔案 image
  • Linux中檔案相關的系統呼叫
  • open()、read()、write()、lseek()、stat()、opendir()、readdir()

image

Linux 行程管理

行程管理

  • 使用 fork() 分叉出新行程
  • 使用 execvp(prog, arg_list) 將新行程替換為另一個程式(會把現在運行程式停掉,執行其他指令或程式)

執行緒

  • 使用 pthread 函式庫
  • 使用 pthread_create() 建立新執行緒
  • 使用 sleep() 暫停一段時間

Linux 指令

  • 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

Clone this wiki locally