作業系統(os)是當今最複雜的系統軟體之一,它幾乎是所有複雜應用軟體的基礎。作業系統本質上是一組程式,他管理和控制其他程式的執行,並充當應用程式和計算機硬體之間的介面。作業系統相當於乙個管理者。它的出現是為了使計算機更好的使用。
馮諾依曼體系結構
我們常見的計算機、伺服器都遵循著馮諾依曼體系結構。
前邊說過作業系統是乙個管理者,那麼如何理解管理,到底管理什麼?
管理:
1.描述被管理的物件
2.組織被管理的物件
就像我們學生在教務處被管理起來一樣,我們每個同學都會被描述為具有學號,姓名,出生,性別等資訊的乙個物件,然後全校的學生再被組織起來,例如用資料結構中的鍊錶一樣,這樣教務處便可以很容易的管理我們任何乙個同學。
我們知道乙個應用程式沒執行起來是存放在磁碟或其他遠端的地方,乙個程式要執行起來首先得將它載入到記憶體中去,前邊我們在講馮諾依曼體系結構中說道所有裝置都只能直接和記憶體打交道。當乙個程式執行起來,我們將程式執行的活動稱為程序。
task_ struct內容分類
所有執行在系統裡的程序都以task_struct鍊錶的形式存在核心裡。
程序的位址空間:在linux下,每乙個程序的使用者程式都是從虛擬位址 0x08048000 開始分布的,那麼多個程序佔據的記憶體是否會發生衝突?不會,因為這裡的位址空間指的是虛擬位址空間,不是真正的物理記憶體位址空間。虛擬位址空間和實體地址空間通過頁表的方式對映,所以每個程序都有屬於自己的虛擬位址空間。
另外,通常⽗子**共享,⽗⼦再不寫入時,資料也是共享的,當任意⼀方試圖寫入,便以寫時拷貝的方式各⾃自乙份副本。具體見下圖:
決策模式:
非搶占式:程序一旦處於執行狀態,就一直執行到終止,或因為等待i/o或請求某些作業系統服務而阻塞。
搶占式:當前執行的程序可能被其他程序搶占,並轉移到就緒狀態。發生時機:乙個新程序到達;中斷後乙個阻塞程序置位就緒狀態;或者基於週期的時鐘中斷,如時間片到期時。
短程排程策略
通過上文,我們知道,乙個程序(應用程式)做了很多事,提供環境,資源(如記憶體,開啟i/o裝置等),還要通過處理器執行程式的流程,我們把有關程式執行流方面的抽象分離出來,就是執行緒的概念。執行緒就是對程式執行流的乙個抽象,而程序是這個執行流所依賴的乙個上下文。乙個程序中可以有多個執行緒,每個執行緒也想程序一樣被描述組織管理起來。
執行緒的優點:
總之就一句話:同一程序內的執行緒所需的時間開銷要比程序間的時間開銷少。
Spring使用體會 淺嘗輒止
實習期間使用spring mvc spring hibernate 做了乙個簡單的內容管理 淺嘗輒止,談不上什麼經驗。把自己不成熟的想法寫下來,歡迎拍磚。spring入門最先接觸的的是spring的配置檔案了。其實想法很簡單,就是要告訴spring怎麼裝配好乙個物件,也就是spring中所說的bea...
淺嘗輒止 程式設計師的悲哀
我發現有一些這樣的人,從別人的地方把 拷貝過來,但是究竟有多明白不清楚,反正搞來搞去程式是調通了,貌似還執行的很好,但是問他程式裡的細節,搖頭不知道,框架為什麼要這麼配置?這樣配置有什麼作用?去除這個配置會發生什麼問題?搖頭,不知道。如果技術搞成這樣,我認為就是乙個悲哀,對個人生活就是個悲哀,對個人...
淺嘗輒止 數學建模(筆記 典型相關分析)
4.2 對典型相關係數的檢驗假設 確定典型變數數量 5.如何判斷綜合變數是否具有的代表性?二 運用spss計算相關資料 三 典型相關分析應用中的幾個問題 五 他山之石 典型相關分析是研究兩組變數 每組變數中都可能有多個指標 之間相關關係的一種多元統計方法。它能夠揭示出兩組變數之間的內在聯絡。在每組變...