1. 程式人生 > 其它 >numpy交換維度_【numpy】終於搞懂swapaxes和transpose的區別

numpy交換維度_【numpy】終於搞懂swapaxes和transpose的區別

技術標籤:期末複習

第一章

1.作業系統概念

作業系統的定義
作業系統是計算機系統中的一個系統軟體,是能有效地組織和管理計算機系統中的硬體和軟體資源,合理地組織計算機工作流程,控制程式的執行,並向用戶提供各種服務功能,使得使用者能夠靈活、方便、有效地使用計算機,並使整個計算機系統能高效地執行的一組程式模組的集合。
2.基本特徵

作業系統的四個基本特徵:併發,共享,非同步,虛擬。

併發:是指兩個或多個事件在同一時間間隔內發生。

共享:是指系統中的資源(硬體資源和資訊資源)可以被多個併發執行的程式共同使用,而不是被其中一個獨佔。資源共享有兩種方式:互斥訪問和同時訪問。

非同步:在多道程式環境下,允許多個程式併發執行,但由於資源有限,程序的執行不是一貫到底。而是走走停停,以不可預知的速度向前推進,這就是程序的非同步性。

虛擬:虛擬性是一種管理技術,把物理上的一個實體變成邏輯上的多個對應物,或把物理上的多個實體變成邏輯上的一個對應物的技術。

第二章

1.程序控制塊PCB

PCB(process control block),程序控制塊,是我們學習作業系統後遇到的第一個資料結構描述,它是對系統的程序進行管理的重要依據,和程序管理相關的操作無一不用到PCB中的內容。一般情況下,PCB中包含以下內容:

(1)程序識別符號(內部,外部)
(2)處理機的資訊(通用暫存器,指令計數器,PSW,使用者的棧指標)。
(3)程序排程資訊(程序狀態,程序的優先順序,程序排程所需的其它資訊,事件)
(4)程序控制資訊(程式的資料的地址,資源清單,程序同步和通訊機制,連結指標)

2.程序的基本狀態

建立狀態:程序在建立時需要申請一個空白PCB,向其中填寫控制和管理程序的資訊,完成資源分配。如果建立工作無法完成,比如資源無法滿足,就無法被排程執行,把此時程序所處狀態稱為建立狀態

就緒狀態:程序已經準備好,已分配到所需資源,只要分配到CPU就能夠立即執行

執行狀態:程序處於就緒狀態被排程後,程序進入執行狀態

阻塞狀態:正在執行的程序由於某些事件(I/O請求,申請快取區失敗)而暫時無法執行,程序受到阻塞。在滿足請求時進入就緒狀態等待系統呼叫

終止狀態:程序結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行

3.程序和程式的區別

①程序是動態的,而程式是靜態的。

②程序有一定的生命期,而程式是指令的集合,本身無“運動”的含義。沒有建立程序的程式不能作為1個獨立單位得到作業系統的認可。
③1個程式可以對應多個程序,但1個程序只能對應1個程式。程序和程式的關係猶如演出和劇本的關係。
④程序和程式的組成不同。從靜態角度看,程序由程式、資料和程序控制塊(PCB)三部分組成。而程式是一組有序的指令集合。

4.程序同步與程序互斥以及利用

同步:協作的過程,例如,多人開發合作;

互斥:爭搶資源的過程,例如苦逼的大學選課;

互斥與同步的概念

在多道程式環境下,系統中可能有許多併發的程序,在這些程序之間存在以下兩種關係:間接相互制約關係、直接相互制約關係。

間接相互制約關係

多個程序彼此無關,它們並不知道其他程序的存在。由於各程序要求共享資源,而有些資源需要互斥使用,因此各個程序間競爭使用這些資源,程序間的這種關係稱為程序的互斥。

直接相互制約關係

多個程序間知道對方的存在,表現出來的是一種相互合作的關係。此時要保證相互合作的各個程序在執行次序上的協調,不會出現與時間有關的差錯。系統中多個程序中發生的事件存在某種時序關係,需要相互合作,共同完成一項任務,程序間的這種關係稱為程序的同步

實現程序互斥的基本原則

1.、空閒讓進
當臨界區空閒時,可以允許一個請求進入臨界區的程序立即進入臨界區。
2、忙則等待
當已有程序進入臨界區時,其他試圖進入臨界區的程序必須等待。
3、有限等待
對請求訪問的程序,應保證能在有限時間內進入臨界區(保證不會飢餓)。
4、讓權等待
當程序不能進入臨界區時,應立即釋放處理機,防止程序忙等待。

5.pv操作實現程序同步和程序互斥

pv操作實現程序的同步

兩程序協作完成一件事,我們叫同步。
設有a,b兩程序共用一個變數x,a負責算數得到x的結果,然後把結果傳給b,b負責把結果x打印出來。這裡我們需要兩個訊號量S1,S2,初值為1,0。(S1給a用,S2給b用)
要完成這次任務
執行P(S1)→得到結果→V(S2)→P(S2)→列印結果→V(S1)

P(S1)表示a程序要工作了,把它對應的訊號量S1置0,表示a程序不可用正在工作中。
得到結果後,V(S2)把S2置1,表示b可以開始工作。
P(S2)表示b程序要工作了,把它對應的訊號量S2置0。
打印出結果後,V(S1)講S1置1,表示任務完成,a程序可以開始下一輪的工作了。

pv操作實現程序的互斥

為使多個程序互斥地訪問某臨界資源,須為該資源設定互斥訊號S,並設其初始值為1,然後將各程序訪問資源的臨界區置於p操作和v操作之間即可。

P操作是申請使用資源的操作,假設我要使用印表機了,就進行P(S),這樣之後,S的值就會減1變成0,S的值為0表示印表機也就是資源不可用。

如果另一個人要使用也是先進行P(S),由於S為0資源還不能用,這樣S的值會變成-1,表示他暫時沒能使用而在排隊,訊號量S為負數時其絕對值表示阻塞佇列中等待該資源的程序數。

如果沒人在排隊,當我用完印表機後就執行V操作,V操作表示釋放資源,V(S)就讓訊號量S由0加1變成了1,這樣後來者就可以用印表機了。
若有1人在排隊,那S就變0,這個後來者直接使用印表機,使用完後再V操作,S會變1。

6.pv操作實現多個生產者消費者問題

第三章

1.程序排程演算法