無標題文章

現代操作系統(tǒng)的功能

提供抽象
提供標準接口
調度資源使用
消費資源

死鎖的必要條件

互斥:同一時間只有一個線程可以占有鎖
占有并等待:至少一個線程占有著鎖并等待其他線程解鎖
非搶占:只有占有鎖的線程可以解鎖
循環(huán)等待:t1在等t2霹陡,t2在等t3高诺,…葛峻,tn在等t1

進程的三種狀態(tài)

運行(running):進程正在CPU運行
就緒(ready):準備好運行但還未在CPU運行
等待(waiting):等待一些事件比如I/O發(fā)生

當進程執(zhí)行I/O操作時胧卤,進入等待狀態(tài)

Much of operating system history driven by relative cost factors of hardware and people. Hardware started out fantastically expensive relative to people and the relative cost has been decreasing ever since. Relative costs drive the goals of the
operating system.
■ In the beginning: Expensive Hardware, Cheap
People Goal: maximize hardware utilization.
■ Now: Cheap Hardware, Expensive People Goal:
make it easy for people to use computer.

驅動操作系統(tǒng)發(fā)展的因素

操作系統(tǒng)的發(fā)展取決于人和硬件的相對價值或粮。起初硬件成本顯著高于人导匣,后來硬件成本不斷下降干旧。這種相對價值決定了操作系統(tǒng)的目標斥杜。
起初:硬件成本高人力成本低速妖,操作系統(tǒng)目標:最大化硬件的使用
現在:硬件成本低人力成本高高蜂,操作系統(tǒng)目標:讓人更加方便地使用計算機

現代操作系統(tǒng)在進程管理提供的三種抽象

進程,虛擬內存罕容,文件系統(tǒng)备恤,同步和通信機制

多道程序設計(multiprogramming)

同一時間有多個進程稿饰。

操作系統(tǒng)通過上下文切換實現進程的抽象

上下文切換

終止一個進程,開始(或重啟)另一個進程

上下文切換的實現

上下文切換時保存和恢復硬件狀態(tài)露泊。狀態(tài)保存在進程控制塊(PCB)中喉镰。

原子操作

Typically build complex atomic operations up out of sequences of primitive operations. In our case the primitive operations are the individual machine instructions.
原子操作是執(zhí)行時不受其他任何操作干擾的操作〔研Γ總而言之侣姆,他作為一個整體執(zhí)行
原子操作執(zhí)行時不會被線程調度機制打斷。
如果一些原子操作按相同的序列執(zhí)行沉噩,最終結果保證是相同的

什么是信號量(semaphore)

信號量是同步的第一步抽象捺宗,概念上,指一個支持P和V兩個原子操作的計數器
P原子地等待直到計數器大于0屁擅,然后減小計數器并返回
V原子地增加計數器
對應到線程偿凭,一個線程釋放(release)時,將信號量加一派歌。
當信號量<=0時弯囊,線程等待。
當信號量>0時胶果,線程通過匾嘱,將信號量減一。

臨界區(qū)(critical section)

每個線程中訪問臨界資源的那段代碼早抠,不論是硬件臨界資源霎烙,還是軟件臨界資源,多個線程必須互斥地對它進行訪問蕊连。

進程:進程

線程:線程是相應線程狀態(tài)下的執(zhí)行流悬垃。

進程和線程的區(qū)別

線程是相應線程狀態(tài)下的執(zhí)行流。線程和進程間的關鍵區(qū)別在于多線程可以共享他們的部分狀態(tài)甘苍。通常尝蠕,允許多線程在相同的內存上讀取、寫入(一個進程不可訪問另一個進程的內存)载庭。每一個線程也有它自己的寄存器看彼、棧,但是其他線程也可在該線程棧所在的內存上讀取和寫入囚聚。

多線程程序出錯

當并發(fā)執(zhí)行時靖榕,結果取決于指令是如何交織的,這導致結果是不確定的
所以有可能產生錯誤顽铸,且再現bug是很困難的
為確保正確茁计,必須使一些指令原子化,即當執(zhí)行這些指令時阻止指令的交織

CPU調度

搶占調度

在搶占模式下谓松,操作系統(tǒng)負責分配CPU時間給各個進程簸淀,一旦當前的進程使用完分配給自己的CPU時間瓶蝴,操作系統(tǒng)將決定下一個占用CPU時間的是哪一個線程。因此操作系統(tǒng)將定期的中斷當前正在執(zhí)行的線程租幕,將CPU分配給在等待隊列的下一個線程。

非搶占調度

在非搶占的調度模式下,每個線程可以需要CPU多少時間就占用CPU多少時間拧簸。

短作業(yè)優(yōu)先調度

進程 到達時間 CPU突發(fā)時間
P1 0 8
P2 1 6
P3 2 4
P4 3 6
搶占調度

執(zhí)行順序
P1,P2,P3(4),P2(5),P4(6),P1(7),
P1等了16劲绪,P2等了4,P3等了0盆赤,P4等了8
平均等待時間(Average Waiting Time, AWT)為28/4

非搶占調度

執(zhí)行順序
P1(8),P3(4),P2(6),P4(6)
P1等了0贾富,P2等了11,P3等了6牺六,P4等了15
平均等待時間(Average Waiting Time, AWT)為8

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末颤枪,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子淑际,更是在濱河造成了極大的恐慌畏纲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春缕,死亡現場離奇詭異盗胀,居然都是意外死亡,警方通過查閱死者的電腦和手機锄贼,發(fā)現死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門票灰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宅荤,你說我怎么就攤上這事屑迂。” “怎么了冯键?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵惹盼,是天一觀的道長。 經常有香客問我琼了,道長逻锐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任雕薪,我火速辦了婚禮昧诱,結果婚禮上,老公的妹妹穿的比我還像新娘所袁。我一直安慰自己盏档,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布燥爷。 她就那樣靜靜地躺著蜈亩,像睡著了一般懦窘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稚配,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天畅涂,我揣著相機與錄音,去河邊找鬼道川。 笑死午衰,一個胖子當著我的面吹牛,可吹牛的內容都是我干的冒萄。 我是一名探鬼主播臊岸,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尊流!你這毒婦竟也來了帅戒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤崖技,失蹤者是張志新(化名)和其女友劉穎逻住,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體响疚,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡鄙信,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了忿晕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片装诡。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖践盼,靈堂內的尸體忽然破棺而出鸦采,到底是詐尸還是另有隱情,我是刑警寧澤咕幻,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布渔伯,位于F島的核電站,受9級特大地震影響肄程,放射性物質發(fā)生泄漏锣吼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一蓝厌、第九天 我趴在偏房一處隱蔽的房頂上張望玄叠。 院中可真熱鬧,春花似錦拓提、人聲如沸读恃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寺惫。三九已至疹吃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間西雀,已是汗流浹背萨驶。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艇肴,地道東北人篡撵。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像豆挽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子券盅,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • 又來到了一個老生常談的問題帮哈,應用層軟件開發(fā)的程序員要不要了解和深入學習操作系統(tǒng)呢? 今天就這個問題開始锰镀,來談談操...
    tangsl閱讀 4,088評論 0 23
  • 1.要做一個盡可能流暢的ListView娘侍,你平時在工作中如何進行優(yōu)化的? ①Item布局泳炉,層級越少越好憾筏,使用hie...
    fozero閱讀 710評論 0 0
  • Java Thread 總結 【顯示目錄】 ?線程的概述(Introduction) 線程是一個程序的多個執(zhí)行路徑...
    夏6閱讀 277評論 0 0
  • 園林芳草相隔, 古道深巷樓接花鹅。 二十八年未曾別氧腰。 滿天星河來閱。 陽春三月蟲絕刨肃, 春寒冰冽鳥歇古拴。 偶爾周末暖陽澤。...
    XXKY閱讀 281評論 2 12
  • 有的時候,真的覺得你挺傻的盔然。為什么總是在意一些不好的東西桅打,不去多讓自己快樂一點呢。 你寧愿沒心沒肺愈案,至少可...
    可可愛可樂閱讀 350評論 0 1