1. 程式人生 > >作業系統知識整理

作業系統知識整理

第一章 作業系統概論

1.1 作業系統概觀

(1)作業系統的定義和目標

作業系統是管理系統資源、控制程式執行,改善人機介面,提供各種服務,合理組織計算機工作流程和為使用者有效使用計算機提供良好執行環境的一種系統軟體 。

計算機系統的層次結構:

硬體->作業系統->系統軟體->應用軟體

介面提供了一條合理的邊界,使介面的兩邊可以很好的對話。介面可分成硬―硬、軟硬、軟軟幾類, OS和硬體之間是軟硬介面

OS是一個協調者和交通警察

管理資源

    硬體資源

(處理機,儲存器,裝置)

    資訊資源(檔案)

解決申請資源時產生的衝突

阻止錯誤的產生和對計算機不正當的使用

OS是一個便利店

提供良好的使用者介面

標準的函式庫

使得程式設計更加方便並且不容易出錯

(2)作業系統的作用和功能

主要功能:

處理器管理

儲存管理

裝置管理

檔案管理

網路與通訊管理

使用者介面

觀察和研究作業系統的方法(windows)->Windows XP SP3

檔案分析exescope解析exe

靜態二進位制分析winhex

靜態逆向分析

peid

動態執行狀態觀察ida

動態除錯分析

動態注入分析

層次化分析

功能性分析

分析邏輯:BIOS->MBR->DBR->NTLDR->ntoskmd.exe->smss.exe

0X80000000劃分核心和應用層

OS接管計算機的過程

開啟電源

●CPU將控制權交給BIOS (基本輸入輸出系統,存放在CMOS中)

●BIOS執行一個程式:通電自測試程式

●BIOS確認所有外部裝置:硬碟或擴充卡

●BIOS找到磁碟的引導區(通常在磁碟的最開始的部分),將接下來的512Bytes主載入程式裝入記憶體。(主載入程式是一段程式碼,它可以將

OS餘下部分裝入記憶體)

引導作業系統結束,作業系統接管計算機

(3)作業系統的主要特性

併發性

共享性

非同步性

虛擬性

 

1.2 作業系統的形成和發展

(1)人工操作階段

(2)管理程式階段

(3)多道程式設計與作業系統的形成

多道程式設計是指允許多個程式同時進入一個計算機系統的主儲存器並啟動進行計算的方法。 

從巨集觀上看並行

從微觀上看序列

引入多道程式設計技術的根本目的:提高CPU的利用率

實現該目標的硬體保證:處理器和外圍裝置具可以並行工作

優點:

提高了CPU的利用率,

提高了記憶體和I/O裝置的利用率,

改進了系統的吞吐率,

充分發揮了系統的並行性。

缺點

作業週轉時間延長。

三個關鍵促成了作業系統的形成

中斷技術

   實現了多道程式的切換

通道技術

   實現了硬體之間的並行性

磁碟的問世

   高速高容量的儲存器充當虛擬儲存器

作業系統的分類

批處理作業系統

分時作業系統

實時作業系統

微機作業系統

並行作業系統

網路作業系統

分散式作業系統

嵌入式作業系統

1.3 作業系統提供的服務和使用者介面

使用者如何使用OS提供的服務?

作業系統提供了許多服務,底層服務通過系統呼叫來實現,可被使用者程式直接使用。

高層的服務通過系統程式來實現,使用者不必自己編寫程式而是藉助命令來請求執行完成各種功能

系統呼叫(廣義指令)是由作業系統在機器指令(訪管指令)基礎上實現的,是能完成特定功能的過程或子程式。

程式介面又稱應用程式設計介面API,允許執行程式呼叫作業系統的服務和功能。

程式介面由一組系統呼叫(System Call)組成,使用者程式使用系統呼叫就可獲得作業系統的底層服務,使用或訪問系統的各種軟硬體資源

1.4 作業系統的結構設計

整體式結構(簡單結構)

作業系統的整體式結構又叫模組組合法,它按照功能劃分模組,模組間可以互相呼叫,最後把所有的模組連線起來構成一個完整的系統。

優點:結構緊密,組合方便,執行效率高。

缺點:模組獨立性差,可靠性低,系統功能增減十分困難

層次式結構

它把作業系統劃分為核心和若干模組(或程序),這些模組(或程序)按功能的呼叫次序排列成若干層次,各層之間只能是單向依賴或單向呼叫關係,這樣不但系統結構清晰,而且不構成迴圈。

部分功能無法很分清誰上誰下,如程序排程和儲存管理。

該結構很適合平臺和硬體的移植,此設計思想很值得借鑑。

虛擬機器結構

客戶/伺服器及微核心結構

由兩類程序和微核心組成

每個程序實現一類服務,稱伺服器程序(如檔案服務、程序管理服務、儲存管理服務、網路通訊服務等)。它的任務是檢查是否有客戶提出服務請求,如果有請求則在滿足客戶的要求後返回結果,於是,客戶程序與伺服器程序形成了C/S關係。

與層次結構相似,但更加靈活

作業系統的執行模型

非程序核心模型

OS功能在使用者程序內執行的模型

OS功能作為獨立程序執行的模型

1.5 流行作業系統簡介

第二章處理器管理

一個程式裝載入記憶體後有四個部分:

程式碼

資料

(heap)malloc分配的空間就是從這裡來的

(stack):系統使用的空間,儲存函式的返回地址。

程式的執行過程

PC(程式計數器)所指地址取出

   指令,並且裝載到IR(指令暫存器)

●CPU解碼並指執行該指令

將執行結果寫入到記憶體當中

●PC=下一條指令在記憶體中的地址

程序是一組資料結構的集合,程式只是程序的一個部分同一個程式可以對應多個程序(e.g.聊天軟體)程式被載入記憶體開始執行»程序

CPU當前的PC值和暫存器堆值都是與當前正在執行的程序相關的,為了使得該程序在重新獲得CPU後能夠繼續工作,在其被剝奪CPU時就應該把那些CPU狀態資訊儲存到程序的資料結構當中去。

 我們把程序執行所需要的這些狀態資訊稱為程序上下文(context),程序(虛擬CPU)之間的切換叫作上下文切換。

2.1 中央處理器 

(1)處理器的構成

暫存器是一組CPU內部的儲存器,容量小但速度快,一般存放運算元、地址以及控制資訊等。各種暫存器構成了一級儲存

(2)特權指令與非特權指令

特權指令:只能由作業系統使用的指令。(如啟動I/O裝置、設定時鐘、控制中斷遮蔽位、清記憶體、建立儲存鍵,載入PSW)

使用多道程式設計技術的計算機指令系統必須要區分為特權指令和非特權指令

(3)處理器狀態

管理狀態(特權狀態、系統模式、特態或管態)

程式可以執行全部指令,使用所有資源,具有改變處理器狀態的能力

使用者狀態(目標狀態、使用者模式、常態或目態)

程式只能執行非特權指令

(4)程式狀態字暫存器

通常作業系統都引入程式狀態字PSW來區別不同的處理器工作狀態並且保留和指示與執行程式有關的各種資訊。它主要內容包括: 

程式基本狀態

程式計數器PC

條件碼:反映指令執行後的結果特徵

處理器狀態

中斷碼:儲存程式執行當時發生的中斷事件

中斷遮蔽碼:指明程式執行中發生中斷事件時,是否響應出現的中斷事件

PSW儲存了程式的CPU現場資訊

每個程式都有一個與其執行相關的PSW,每個處理器都設定一個PSW暫存器。程式佔有處理器執行,它的PSW將佔有PSW暫存器。

各種不同的處理器的控制暫存器組織方式不同,所以大多數計算機的處理器現場都有一組控制與狀態暫存器構成。

2.2 中斷技術

 

(1)中斷的概念

中斷是指程式執行過程中

當發生某個事件時,中止CPU上現行程式的執行

引出該事件的處理程式執行

執行完畢返回原程式中斷點繼續執行

中斷處理是作業系統的重要組成部分作業系統就是由中斷驅動的中斷是現代計算機系統中基本設施之一,它起著通訊聯絡作用,協調系統對各種外部事件的響應和處理中斷是實現多道程式的必要條件

中斷系統

中斷源:引起中斷的事件

中斷裝置:指發現中斷,響應中斷的硬體

中斷處理程式:由軟體來完成

中斷系統 中斷裝置 中斷處理程式

中斷由軟硬體協同處理

異常:發生在指令執行當中

中斷:發生在指令執行之間

中斷裝置

主要工作:

發現中斷源,響應中斷請求(中斷響應的實質就是交換指令地址及處理機的狀態資訊)

保護現場

啟動處理中斷事件的中斷處理程式處理器狀態已從目態切換到管態

關鍵部件:

中斷暫存器:由若干個中斷位組成,每個中斷源分別佔用一位,規定值為1時,表示有中斷訊號,為0時表示無

中斷字:中斷暫存器的內容稱為中斷字

處理器狀態的轉換

中斷是目態向管態轉換的唯一途徑!系統呼叫實質上也是一種中斷。

●OS提供Load PSW指令裝載使用者程式PSW返回使用者狀態

如何發現中斷訊號?

在每條指令執行週期的最後時刻掃描中斷暫存器,詢問是否有中斷訊號?

若無中斷訊號,繼續執行下一條指令

若有中斷,中斷硬體將該中斷暫存器內容按規定編碼送入PSW的中斷碼欄位,並且把中斷暫存器的相應位置0

保護現場(PSW)

要保護的內容有:

程式基本狀態

程式計數器PC

條件碼:反映指令執行後的結果特徵

處理器狀態

中斷碼:儲存程式執行當時發生的中斷事件

中斷遮蔽碼:指明程式執行中發生中斷事件時,是否響應出現的中斷事件

最後,將中斷處理程式的程式狀態字送於PSW暫存器,就引出了中斷事件處理程式。

 

(2)中斷源分類

中斷事件具體處理方法

機器故障中斷事件

程式性中斷事件

外部中斷事件

●I/O中斷事件

自願中斷事件

(3)中斷裝置

2.3 程序及其實現

 

程式執行的動態性

程式存放在外存中不會消失,產生和消亡的只是與之相關的記憶體資訊。

 

程式只有進入了記憶體才能執行,在執行過程中可能會被另一個執行的程式打斷暫失去CPU

 

用程序一詞來描述程式這一動態的執行過程。程式P1被裝入記憶體後被稱為程序P1

程式的共享性

●“可再用程式

可被其它程式呼叫,但每次只能被一個程式呼叫

有獨立的工作區

 

●“可再入程式

純程式碼

由呼叫程式提供工作區

可同時被多個程式呼叫

 

程序是一個程式的一次執行過程

能完成具體的功能

是在某個資料集合上完成的

執行過程是可併發的

程序是資源分配、保護和排程的基本單位

動態性    結構性     併發性

制約性    共享性     獨立性

程序與程式的區別

程式是靜態的概念;程序是動態的概念

程序是一個獨立執行的活動單位

程序是競爭系統資源的基本單位

一個程式可以對應多個程序;一個程序至少包含一個程式

程序的狀態

程序在其建立後至消亡前這段時間可以劃分成三種基本狀態:

就緒:一個程序已經具備執行條件,但由於無CPU暫時不能執行的狀態(當排程給其CPU時,立即可以執行)

執行:程序佔有CPU,並在CPU上執行。同一時刻處於此狀態的程序有且僅有一個

等待(阻塞、睡眠):程序因等待某種事件的發生而暫時不能執行的狀態(即使CPU空閒,該程序也不可執行)

 

三態模型及其狀態轉換

 

五態模型及其狀態轉換

程序的掛起(suspend)是指將記憶體中的程序對換到磁碟映象區中的過程。

程序被掛起的原因主要有:

系統中所有程序都處於等待狀態

系統資源不足

對換一些定期執行的程序

使用者要求掛起自己的程序

父程序要求掛起自已的子程序

●OS要求掛起某些程序

程序的記憶體映像

程序控制塊(PCB)

使用者程式

使用者資料

堆疊

把程序物理實體和支援程序執行的環境合稱為程序上下文(process context)

程序在主存實際存放並非連續的

程序被建立時,OS會為其建立必要管理資訊,這是一系列資料結構,用於記錄程序的狀態和特徵,描述程序的運動變化過程。我們將這種管理資訊稱為程序控制塊(Process Control Block

程序與PCB之間一一對應,OS通過PCB可以得知程序的所有資訊

PCB含有:

標識資訊

每個程序需要一個唯一的ID

現場資訊

●PSW和其它暫存器值

使用者堆疊指標

控制資訊

程序的狀態

時間片餘量,已佔用CPU時間

程序在輔存中的地址

資料段、程式碼段指標

佇列指標

OS通過PCB來排程程序,排程時不是移動整個程序,只是通過移動PCB來實現。

把同一狀態的所有程序的PCB連結在一起的資料結構稱為程序佇列(Process Queues),簡稱佇列。

程序切換是讓處於執行態的程序中斷執行,讓出處理器,這時要做一次程序上下文切換、即儲存老程序狀態而裝入被保護了的新程序的狀態,以便新程序執行。 

程序切換必定是在核心態下進行的

核心以下種情況允許發生程序切換

程序進入等待狀態時(自願放棄yield)

完成系統呼叫或中斷處理,返回使用者態但不是最具有資格獲得CPU(搶佔preempt),進入就緒狀態

程序執行結束時,進入終止狀態

程序切換步驟

儲存被中斷程序的處理器現場資訊

修改被中斷程序的程序控制塊的有關資訊,如程序狀態等

把被中斷程序的程序控制塊加入有關佇列

選擇下一個佔有處理器執行的程序

修改被選中程序的程序控制塊的有關資訊

根據被選中程序設定作業系統用到的地址轉換和儲存保護資訊

根據被選中程序恢復處理器現場

模式切換

當中斷髮生時,暫時中斷正在執行的使用者程序,把程序從使用者狀態切換到核心狀態,去執行作業系統例行程式以獲得服務,這就是一次模式切換。

核心在被中斷了的程序的上下文中對這個中斷事件作處理(程序的上下文未發生切換),即使該中斷可能不是此程序引起的。

模式切換步驟

儲存被中斷程序的處理器現場資訊

根據中斷號置程式計數器

把使用者狀態切換到核心狀態,以便執行中斷處理程式

程序切換與模式切換

模式切換不同於程序切換,它並不引起程序狀態變化,也不一定引起程序的切換,在完成了中斷呼叫之後,完全可以再通過一次逆向的模式切換來繼續執行使用者程序。

核心態執行的程序是不能被搶佔的,但可以繼續響應中斷。

程序的控制

建立

建立一個PCB

賦予一個統一程序識別符號

為程序映象分配空間

初始化程序控制塊(狀態為 New,優先順序)

設定相應的連結(把新程序加到就緒佇列的連結串列中)

阻塞和喚醒

撤銷

回收程序佔用的資源

撤銷該程序的PCB並回收PCB空間

掛起和啟用

 

2.4 執行緒及其實現

(1)執行緒概念

單執行緒程序和多執行緒程序

使用者級執行緒和核心級執行緒

使用者級執行緒 (ULT)

在核心之上,在使用者模式下通過執行緒庫來實現。執行緒庫提供對執行緒的建立、排程和管理的支援而無需核心支援。

建立和管理執行速度較快,因為它不需要核心的支援,但是由於核心感知不到使用者執行緒的存在,所以當一個使用者執行緒阻塞時會引起整個程序的阻塞。

核心級執行緒 (KLT)

由作業系統在核心模式下執行執行緒的建立、排程和管理。

建立和管理執行速度較使用者執行緒慢,但可以實現核心的併發執行緒。

(2)執行緒的實現

執行緒控制塊TCB

每個執行緒都有一個TCB

執行狀態: CPU暫存器, PC, 棧指標

排程資訊:執行緒狀態,時間片和CPU時間

指向PCB的指標

(3)執行緒的狀態

執行緒的狀態

執行緒狀態有:執行、就緒和阻塞,執行緒的狀態轉換也類似於程序。

掛起狀態對執行緒是沒有意義的,如果程序掛起後被對換出主存,則它的所有執行緒因共享了程序的地址空間,也必須全部對換出去。

執行緒的狀態轉換與程序狀態轉換類似,OS對執行緒也是通過TCB管理排程的。

 併發多執行緒程式設計的優點

提高了響應速度:多執行緒互動式應用程式可以允許程式在它的一部分被阻塞或正在執行一個冗長的操作時持續執行,從而提高了了對使用者的響應速度。

資源共享:預設情況下,執行緒共享它們所屬程序的儲存器和資源。程式碼共享的優點在於它允許應用程式在同樣的地址空間內擁有多個不同的活動執行緒。

經濟實惠:為程序建立分配儲存器和資源代價高昂。因為執行緒共享它們所屬程序的資源,所以執行緒的建立和上下文轉換更為划算。

提高了多處理機體系結構的利用率:在多處理機體系結構中,多執行緒的優點就更加顯著了。在這種系統中,多個執行緒可以在不同的處理器上並行執行

 

2.5 處理器排程

(1)作業排程演算法

處理器排程的工作

挑選誰獲得CPU執行

如何在程序之間分配處理器時間

處理器排程級別

高階排程

中級排程

低階排程

高階排程(作業、長程排程)

在多道批處理作業系統中:

使用者將要完成的任務提交給計算機系統,並儲存在磁碟的一個批處理後備作業列表中。

高階排程將按照預定的排程策略決定把後備佇列中的部分滿足資源要求的作業調入記憶體,為它們建立程序,分配所需資源。並做好程序完成後的善後工作。

高階排程決定了多道程式的道數。

處理器排程與程序狀態轉換

中級排程(平衡負載、中程排程)

決定主儲存器中所能容納的程序數,這些程序將允許參與競爭處理器資源。

中級排程根據儲存資源量和程序的當前狀態來決定輔存和主存中程序的對換。

低階排程(程序、短程排程)

主要功能是按照某種原則決定就緒佇列中的哪個程序能獲得處理器並將處理機出讓給它進行工作。

程序排程程式是作業系統最為核心的部分,程序排程策略的優劣直接影響到整個系統的效能。

有兩類低階排程方式:

第一類稱剝奪方式(Win98/2K/XP,Linux,Unix)

高優先順序剝奪原則

時間片剝奪原則 

第二類稱非剝奪方式(DOS , Windows 3.x)

排程演算法效能的衡量

使響應時間最短:從提交到響應

●E.g. 使用者敲下鍵盤後回顯的速度

週轉時間:從提交到完成

呑吐率:每個時鐘單位處理的作業數

呑吐率與響應時間相關,如果響應時間過短可能導致切換開銷增加,而呑吐率下降。

公平性:以合理的方式讓各個程序共享CPU

批處理系統的排程效能指標

假設作業i提交給系統的時刻是ts,完成的時刻是tf,所需執行時間為 tk,那麼:

作業與程序

作業是任務實體,程序是完成任務的執行實體;沒有作業任務,程序無事可幹,沒有程序,作業任務沒法完成。

作業概念更多地用在批處理作業系統,而程序則可以用在各種多道程式設計系統。

先來先服務(FCFS)

●First-Come, First-Served (FCFS)

早期系統裡,FCFS意味著一個程式會一直執行到結束(儘管其中會出現等待I/O的情況)

如今,當一個程式阻塞時會讓出CPU 

   例題:      Process        Time
                P1         28
                P2          9
                P3           3

如果三個程序的到達順序是: P1 , P2 , P3  

等待時間分別是:  P1  = 0; P2  = 28; P3 = 37

平均等待時間是:  (0 + 28 + 37)/3 = 22

平均作業週轉時間是: (28 + 37 + 40)/3 = 35

如果換一種執行順序的話: P3 , P2 , P1

等待時間分別是: P1 = 12; P2 = 3; P3 = 0

平均等待時間是: (12 + 3 + 0)/3 = 5

平均週轉時間是: (3 + 12 + 40)/3 = 18

第二種排列方式比第一種要好,平均週轉時間縮短為18

●FCFS的優缺點

簡單易行(+)

如果短作業處在長作業的後面將導致周圍時間變長。

時間片輪轉(Round Robin)

每個程序都可以得到相同的CPU時間(CPU時間片),當時間片到達,程序將被剝奪CPU並加入就緒佇列的尾部 

●n個就緒佇列中的程序和時間片Þ

每個程序獲得  的CPU 時間,大約是q個時間單位 

沒有程序等待時間會超過 (n-1)q

RR演算法分析

時間片取選

時間片取值太小:呑吐率下降。

   程序切換開銷顯著增大。    

   (時間片不能小於程序切換的時間)

時間片取值較大:響應速度下降

時間片取值無窮大:退化成FCFS

一般時間片的選取範圍為 10ms~100ms

上下文切換的時間大概為 0.1ms~1ms

大約有1%的時間開銷用於上下文切換

●RR演算法優缺點

公平演算法(+)

對長作業帶來額外的切換開銷(-)

不同的時間片對RR演算法的影響

最短作業優先(SJF)

以進入系統作業所要求的CPU時間長短為準,總是選取時間要求最短的投入執行。

        ●SJF是非剝奪演算法

最短剩餘時間優先(SRTF)

●SRTF(Shortest Remaining Time First)SJF的搶佔演算法。

如果一個新作業所需的CPU時間比當前正在執行的作業所剩餘時間短,那麼新作業將搶佔CPU

例題:       到達系統時間     所需CPU時間

              P1        0        8

              P2        1        4

              P3        2        9

              P4        3        5

SRTF: T = (17+5+26+10)/4=14.5 (平均等時間6.5)

分析SRTF/SJF

●SRTF/SJF保證了短作業的優先執行,有很好的作業響應時間。如果每個作業的長度最相等的話,該演算法將退化成FCFS演算法。

●SRTF/SJF是降低作業響應時間最理想的方法,SRTF是搶佔式的,而SJF是非搶佔式的,通常我們討論SRTF

飢餓現象

長時間作業可能無法獲得CPU

預測技術

該演算法需要事先知道作業所需的CPU時間

有些系統事先會詢問作業所需時間,為了防止作弊,系統將kick那些佔用時間較長的作業

預測一個作業的CPU時間並非易事

●SRTF優缺點:

優化了響應時間(+)

難以預測作業CPU時間(-)

不公平演算法(-)

最高響應比優先(HRRF

優先數排程(Priority)

UNIX的動態優先數

多級反饋佇列排程

彩票排程

相關推薦

作業系統知識整理 - 知識梳理(聽說有人還不知道作業系統講了點啥?)

主要內容 作業系統的基本目標 作業系統的作用 作業系統的作用方式 作業系統的發展歷史 作業系統的基本型別 作業系統的基本特性 作業系統的主要功能(important) 處理機管理功能 儲存器管理功能 外圍裝置管理功能 檔案管理功能

作業系統知識整理

第一章 作業系統概論 1.1 作業系統概觀 (1)作業系統的定義和目標 作業系統是管理系統資源、控制程式執行,改善人機介面,提供各種服務,合理組織計算機工作流程和為使用者有效使用計算機提供良好執行環境的一種系統軟體 。 計算機系統的層次結構: 硬體-

作業系統知識整理 - 執行緒的概念

主要內容 引入執行緒的原因 執行緒的基本概念 執行緒與程序的比較 執行緒的適用範圍 應用執行緒的例子   引入執行緒的原因 程序是為了提高CPU的執行效率,減少因為程式等待帶來的CPU空轉,以及其他計算機軟、硬體資源的浪費而提出來的

作業系統知識整理 - 程序控制

主要內容 建立程序 撤銷程序 阻塞程序 喚醒程序 掛起程序   所謂程序控制,就是系統使用一些具有特定功能的程式段來建立、撤銷程序以及完成程序各狀態間的轉換,從而達到多程序高效率併發執行和協調、實現資源共享的目的。 在作業系統中,這

作業系統知識整理 - 死鎖

定義:死鎖是指各併發程序互相等待對方所擁有的資源,且這些併發程序在得到對方的資源之前不會釋放自己佔有的資源,從而造成了各併發程序不能繼續往前推進的狀態。 起因:系統提供的資源個數少於併發程序所要求的該類資源數。 顯然,由於資源的有限性,不可能為所有程序無限制地提供資源。採用適當的資源分配

作業系統知識整理 - 程序的概念

  主要內容 問題產生 程式 單道程式的順序執行 多道程式的併發執行 併發執行的影響 程序的定義 程序的基本屬性   問題產生 採用一個什麼樣的概念來描述計算機程式的執行過程和作為資源分配的基本單位,才能充

作業系統知識整理 - 程序控制塊

前提 系統中需要有描述程序存在和能夠反映其變化的物理實體,即程序的靜態描述。 程序的靜態描述由3部分組成:程序控制塊(Process Control Block,PCB),有關程式段和該程式段操作的資料結構集。 PCB是系統感知程序的唯一實體,用於描述程序的當前情況以及管理程序執行的

作業系統知識整理 - 程序的狀態及其相互轉換

程序的狀態 程序有五種基本狀態:建立狀態、就緒狀態、執行狀態、阻塞狀態和終止狀態。   五種基本狀態間的轉換: 建立程序,分配記憶體空間→建立狀態→得到除處理機以外的其他資源→就緒狀態→程序排程,得到處理機→執行狀態→時間片用盡→就緒狀態; 執行狀態→等待某個事件(

作業系統知識整理 - 儲存器的基本知識

主要內容 儲存器的三級層次結構 主儲存器 暫存器 快取記憶體 磁碟快取   儲存器的三級層次結構 CPU暫存器、主存(快取記憶體、主儲存器、磁碟快取)、輔存(固態硬碟、USB、光碟等)。(從左往右,存取速度由高到低) 其中暫存器

作業系統基礎知識整理

作業系統基礎知識整理 1、作業系統分類 批處理作業系統、分時作業系統(Unix)、實時作業系統、網路作業系統、分散式作業系統、微機作業系統(Linux、Windows、IOS等)、嵌入式作業系統。 2、作業系統的4個特徵:併發性、共享性、虛擬性、不確定性。 3、作業系統的功能有:處理

作業系統作業系統大作業&相關知識整理

作業系統大作業&相關知識整理 我校的作業系統大作業為N選3,以下為三個較為簡單的例子的實現 參考程式碼 見連線 1. 銀行櫃員服務問題 程序間同步/互斥問題 通過該實驗熟悉訊號量的處理及其在多執行緒程式中的應用 實驗題目

javascript基礎知識整理(不定時更新)

nsh firefox 可用 splice mage true size -1 對數 1.js中真與假的定義:   真:true,非零數字,非空字符串,非空對象   假:false,數字零,空字符串,空對象(null),undefined 2.使用for循環對json進

C語言基礎知識整理

除法 當前 www 做到 初步 編寫 main函數 配對 十進制數 用一個簡單的c程序例子,介紹C語言基礎知識的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。 例1:計算兩個整數之和的c程序: #includemain(){int a,b,sum;

JavaScript基礎知識整理

滿足 整理 布爾 其他 ble false str asc onf JS註釋語法: 單行註釋://後面內容會被註釋 多行註釋:/*中間內容被註釋*/ 輸出語法:alert(); 輸出內容 confirm ();輸出可選擇的內容 prompt(

Java基礎知識整理(一)

顯式 sys 轉換 強制 print pri 字符 parse ger Java開發環境JDK(Java編輯器、Java運行工具(JRE作用)、Java文檔生成工具、Java打包工具) 1.Java是嚴格區分大小寫的。2.Java程序中一句連續的字符串不能分開在兩行書寫,

JS知識整理隨筆(3)數組

.... nat 一個 .so 項目 stat 分享 它的 處的 創建數組 使用Array構造函數 語法:new Array() 小括號說明 預先知道數組要保存的項目數量 向Array構造函數中傳遞數組應包含的項 使用數組字面量表示法 由一對包含數組項的方括號[]表示,

js原型和原型鏈知識整理

question logs typeof 修改 類型 bject 其他 能夠 struct 在清楚了js創建對象和new方法的過程之後,再來看原型的概念就容易理解多了。 原型存在的目的是為了能更加節約內存地繼承。 我認為原型中主要需要搞清楚這4個概念,顯式原型指向什麽,隱式

week3 函數知識整理

alex 方式 code wap 字母 都是 war 形參 出現 一、函數的定義: 定義:def 關鍵詞開頭,空格之後接函數名稱和圓括號(),最後還有一個":"。    def 是固定的,不能變,必須是連續的def三個字母,不能分開。。。    空格 為了將def關鍵字和函

php基礎知識整理

n) 一個 mon 如果 定義變量 += 字段值 insert 劃線 <?php /*PHP 變量 1、PHP 中的所有變量都是以 $ 符號開始的。 2、在 PHP 中設置變量的方法是:$var_name = value;

Java內存知識整理

整理 .get 緩存 zed [] pan 簡潔 net 重排序 因主要是摘錄,先列參考文獻: http://ifeve.com/jmm-faq/ 1,我理解的Java內存模型是在多處理器,多線程的場景下保證在內存裏的讀寫不會存在歧義。 “Java內存模型描述了在多線程