[計算機作業系統] 設備管理

準備中

<span title='2022-07-02 04:00:55 +0800 +0800'>July 2, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;Rain Hu

[計算機作業系統] 進程管理

進程管理 進程與執行緒 1. 進程(process) 進程是資源分配的基本單位。 進程控制塊(Process Control Block, PCB)描述進程的基本訊息和運行狀態,所謂的創建進程和撤銷進程,都是指對 PCB 的操作。 2. 執行緒(thread) 執行緒又稱線程,是獨立調度的基本單位。 一個進程可以有多個執行緒,它們共享進程資源。 以瀏覽器(browser)為例,瀏覽器進程有很多執行緒,如 HTTP 請求(request)、事件響應、渲染。執行緒的並行處理(concurrent)使得瀏覽器中點擊一個新的超連結從而發起 HTTP 請求時,瀏覽器還可以響應用戶的其它事件。 3. 區別 擁有資源 進程是資源分配的基本單位,但是執行緒不擁有資源,而是訪問隸屬進程的資源。 調度 執行緒是獨立調度的基本單位,在同一進程中,執行緒的切換不會引起進程切換,從一個進程中的執行緒切換到另一個進程中的執行緒時,才會進行進程的切換。 系統開銷 由於創建或撤銷進程時,系統都要為之分配或回收資源,如硬碟中的記憶體、I/O 設備等,所付出的開銷遠大於創建或撤銷執行緒時的開銷。 同樣的,在進行進程切換時,涉及當前執行進程 CPU 環境的保存及新調度進程 CPU 環境的設置,而執行緒切換只需保存和設置少量暫存器的內容,開銷較小。 通訊 執行緒可以通過直接讀寫同一個進程中的數據進行通訊,但是進程的通訊需要借助 IPC(inter-process communication)。 進程狀態的切換 就緒就態(ready):等待被調度 執行狀態(running) 阻塞狀態(waiting):等待資源 只有就緒狀態和執行狀態可以相互轉換,其它的都是單向轉換。就緒狀態的進程通過調度演算法從而獲得 CPU Time,轉為執行狀態;而執行狀態的進程,在分配給它的 CPU Time 片段用完之後就會轉為就緒狀態,等待下一次調度。 阻塞狀態是缺少需要的資源從而由執行狀態轉換而來,但是該資源不包括 CPU Time, 缺少 CPU Time 會從執行狀態轉換為就緒狀態。 進程調度演算法 不同環境的調度演算法目標不同,因此需要針對不同環境來討論調度演算法。 1. 批次處理系統(batch system) 批次處理系統沒有太多的用戶操作,在該系統中,調度演算法目標是保証吞吐量和周轉時間(從提交到終止的時間)。 1.1 先來先服務(first-come first-served, FCFS) 非搶占式的調度,按照請求的順序進行調度。 有利於長作業,不利於短作業,因為短作業必須一直等待前面的長作業執行完畢才能執行,而長作業又需要執行很長時間,造成短作業等待時間過長 1.2 短作業優先(shortest job first, SJF) 非搶占式的調度算法,按估計運行時間最短的順序進行調度。 長作業有可能會永遠做不完,處於一直等待短作業執行完畢的狀態。因為如果一直有短作業到來,那麼長作業永遠得不到調度。 1....

<span title='2022-07-02 04:00:55 +0800 +0800'>July 2, 2022</span>&nbsp;·&nbsp;6 min&nbsp;·&nbsp;Rain Hu

[計算機作業系統] 鏈接

準備中

<span title='2022-07-02 04:00:55 +0800 +0800'>July 2, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[OS] Lec 1 - Introduction

一、OS 簡介 作業系統(Operating system, OS) 是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的核心與基石。OS主要有以下兩個功能: 資源分配者 監控使用者程式的執行,以防止不正常的運作造成對系統的危害。 一個標準 PC 的作業系統應該提供以下功能: 行程管理 (processing management) 記憶體管理 (memory management) 檔案系統 (file system) 網路通訊 (networking) 安全機制 (security) 使用者介面 (user integerface) 驅動程式 (device drivers) OS 系統依大小來區分: 大型電腦:IBM OS/360 個人電腦:Windows、Linux、BSD、Mac OS X 嵌入式:VxWorks、eCos、Sysbian OS、Palm OS 依品牌來區分: 類 Unix 家族:包含 System V、BSD 與 Linux。 微軟 Windows:Windows NT 核心,包含 Windows 2000、Windows XP。 蘋果 mac OS:執行於蘋果 Macintosh 系列電腦上的作業系統 Chrome OS:基於 Google 的瀏覽器 Google Chrome 的 Linux 核心。 二、常見的系統類型 Multiprogramming System 系統中存在多組行程同時 (concurrent) 執行,避免 CPU 閒置,提升 CPU 利用度。(注意不是平行執行(parallel)) Multiprogramming Degree:系統內所存在的等待執行 process 數目,Multiprogramming degree 愈高,則 CPU 使用度可能愈高。(非必定的原因是可能產生 Thrashing 現象) 當 CPU 效能降低時,系統會引入更多的 process 讓 CPU 盡可能工作。但當存有太多 process 時,大部分的工作會花費在 page fault 造成的 Page Replacement,致使 CPU 效率下降,最後造成 CPU 效能愈來愈低。 [方法1] 降低 Multiprogramming Degree [方法2] 利用 Page Fault Frequency (Ratio) 控制來防止 Thrashing。 [方法3] 利用 Working Set Model 預估各 Process 在不同執行時期所需的頁框數,並依此提供足夠的頁框數。 分時系統 Time Sharing System Multiprogramming System 的一種,OS 透過資源分享,使得每個使用者都認為有一套專屬的系統存在,反應時間(Response Time)通常是一秒內。 常見配置: 行程排程採用 RR 排程(Round-robin scheduling) 記憶體空間所有使用者分享 使用虛擬記憶體技術 I/O Device 透過 Spooling(Simultaneous Peripheral Operation On-Line) 技術(把磁碟當成一個巨大緩衝區使用)共享。 分散式系統 Distributed System 須符合兩個條件,硬體上每台電腦都是自主的,軟體上用戶將整個系統看作是一台電腦。一般分為兩類:...

<span title='2022-02-24 02:43:30 +0800 +0800'>February 24, 2022</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu