青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

加文

在這個世界上取得成就的人,都努力去尋找他們想要的機會,如果找不到機會,他們便自己創造機會。 -- 蕭伯納
隨筆 - 14, 文章 - 56, 評論 - 1, 引用 - 0
數據加載中……

進程與線程

1. 進程與線程

1) 進程概念:由程序和代碼、進程空間、系統資源、棧區組成,為對進程管理,通過PCB實現。

2) 進程的狀態和轉換:創建,就緒,運行,阻塞,結束。

① 由空到創建:第一個進程有系統初始化產生,以后有父進程通過創建進程的系 統調用產生。

② 創建到就緒:創建完成后,進入就緒狀態。

③ 就緒到運行:被調度程序選中,分配到處理機上執行。

④ 運行到結束:調用結束進程系統調用或者異常流產,進行結束。

⑤ 運行到就緒:時間片到或者被高優先級進程打斷

⑥ 運行到等到:通過系統調用,請求某種資源,未得到,處于等待狀態;系統調用是目態到管態的過程。

⑦ 等待到就緒:等待的事件來臨

3) 進程控制:

① 進程創建與終結:主要有初始化PCB表,置進程為就緒狀態。

② 模式切換:兩種模式,目態和管態;劃分的理由是保護操作系統和操作系統的數據表格不被可能出錯的程序破壞。從管態到目態是通過操作系統內核程序修改程序狀態字實現,從目態到管態是通過異常(也叫自陷、例外、內中斷,不可屏蔽,有指令出錯或者缺頁觸發)或者外中斷(有硬件產生,可屏蔽)。(內中斷和外中斷,統稱中斷);進程從目態到管態,只需保存進程的處理機信息。進行切換,要保存進程空間信息。

③ 進程切換:保存處理機信息,修改進程控制塊,修改存儲管理數據。

4) 作業與進程的關系

① 批處理系統中作業與進程的關系:由SPooling輸入進程將作業放入輸入井,成為后備作業,由作業調度程序選擇后備作業,創建根進程;可以有根進程創建更多的子進程,共同完成作業,由作業終止程序終至完成的作業,隨后將作業送入輸出井,有輸出進程把數據送入打印機。

② 分時系統中作業與進程的關系:用戶通過命令語句逐條地與系統應答式地輸入命令,提交作業步驟。

③ 交互式地提交批作業:系統有專門的調度程序,負責從作業隊列中,選取作業,為選取的作業創建根進程,執行作業說明書中的命令.

5) 進程通信,方法:共享存儲方法(需要進行pv操作,由于進程空間相對獨立的,因此要通過特殊的系統調用實現);消息傳遞方式(通過發送和接受原語實現通信)

6) 多線程概念與多線程模型:進程只作為除cpu以外的資源;線程則作為處理機的分配單位。

2. 處理機調度

1) 調度的基本概念

① 高級調度:從外存上等候調度的作業中,選擇一個調入內存,分配資源,創建進程,掛到就緒隊列上。

② 中級調度:把暫時無法運行的進程調入外存,減少內存空間的浪費;等內存空間空閑,把外存有條件的進程重新調入內存。引入中級調度,主要提高內存使用率和提高系統的吞吐量。調度出去的進程為掛起狀態;中級調度實質為兌換。

③ 低級調度:進程調度。

2) 進程調度的方式:

① 剝奪式調度:有優先級原則,時間片原則。

② 非剝奪式調度:除進程運行結束或者進入阻塞狀態以外,進程一直占用處理機。

3) 進程主動放棄處理機的原因有:

① 進程執行完畢

② 進程進入阻塞狀態

4) 在可剝奪的進程調度中,新就緒的進程會按照某種原則,剝奪正在運行的進程的處理機,進程申請調度的時機,有以下情況:

① 中斷處理完畢,引起某個進程變成就緒狀態。

② 進程釋放臨界區,引起等待該臨界區的進程就緒

③ 當進程發生系統調用,引起某個時間發生,導致其他等待進程就緒。

④ 引起其他任何原因導致進程為就緒態時。

總之,當有新進程就緒時,引發進程調度的申請。

5) 在可剝奪式進程調度系統中,即便沒有新的就緒進程,為了使所有就緒進程占用處理機,可在下述情況下申請進程調度:

① 時鐘中斷發生,時間片到,其他進程請求調度。

② 任何引起優先級發生變化時,應請求重新調度。

操作系統并不一定要在引發進程調度原因時,馬上進行進程調度。

6) 進程的調度、切換、時機:一般來說,請求調度--->調度----->切換,三個事件應該一氣呵成;但在現在操作系統中,不能進行進程的調度與切換的情況有:

① 處理中斷過程中。

② 進程在操作系統那內核臨界區中。

③ 其他需要完全屏蔽中斷的原子操作過程中。

在上述的過程中,引發調度的條件,并不能馬上進行調度,系統只是設置請求調度標志,等走出上述過程后,才進行調度和切換。應當進行進程調度和切換的時機如下:

<1>,發生引起調度事件,且當前進程進入阻塞狀態,可馬上進行調度(若os只有在這種情況下進行調度,說明os是非剝奪調度。)

<2>,當中斷處理結束或者自陷處理結束后,返回被中斷進程的用戶態程序現場前,若置上請求調度標志,即可馬上進行調度與切換。(實現了剝奪式調度)

切換往往是在調度之后發生的;典型的進程切換需要保存原進程當前切換點的現場信息,恢復被調度進程的現場信息。現場信息有:PC,PS,其他寄存器的內容、內核棧指針,進程存儲空間的指針。

為了進行進程現場切換,操作系統內核將原進程的上述信息推入當前進程的內核棧保存它們,并跟新堆棧指針。內核從新進程的內核棧中裝入新進程的現場信息,還要更新當前進程空間的指針,并且作廢處理機聯想存儲器中有關原進程的信息。在內核完成清除工作后,重新設置PC寄存器,控制轉到新進程的程序,開始運行。

7) 調度的基本準則:

① 從用戶角度:周轉時間段,響應時間短,截止時間的保證

② 從系統角度:吞吐量達;處理機利用率高;各類資源平衡利用。

8) 調度算法:

① 先來先服務調度算法(可不剝奪式調度)

② 優先級調度算法,兩種,非可剝奪式優先級調度算法和可剝奪式優先級調度算法。

③ 時間片輪轉算法發:先采用先來先服務,然后時間片到,把進程掛到就緒隊列的末尾。時間片太大,那么將退化為先來先服務算法;若時間片太小,那么切換過于頻繁,處理機開銷變大,效率降低。

④ 短進行優先調度:優先選擇運行時間短的小進程。(不可剝奪方式)

短進程優先算法和先來先服務算法都是非剝奪的,因此不能用于分時系統中,這是因為不能對用戶及時響應。

⑤ 最高響應比優先算法:對短進程優先的改進,屬于非可剝奪式算法。按照此算法,每個進程都有一個優先數,該優先數不但是要求的服務時間的函數,而且是該進程得到的服務所花費的等待時間的函數。進程的動態優先計算公式:優先數 = (等到時間+請求服務時間)/(情感求服務時間),請求服務時間是分母,故對短進程有利,他的優先數高,可以優先運行。但由于等待時間是分子,故長進程等待較長的時間,從而提高其調度優先數,被分給了處理機。進程一旦得到錘擊,他就一直運行到進程完成,中間不被搶占。可以看出“等待時間+請求服務時間”就是系統對作業的響應時間。

⑥ 多級反饋隊列調度算法:采用多級隊列,每級隊列的優先級不同,優先級大的隊列,時間片短。除最后一級別采用時間片輪轉法后,其他的隊列采用先進先出算法。

3. 進程同步

1) 同步關系,互斥關系;臨界資源;臨界區

2) 實現臨界段問題的硬件方法:

① 屏蔽中斷

② Test_and_set指令

③ Swap指令

④ 信號量

⑤ 管程:由一組同步變量和使用同步變量的過程組成;是更高級的同步與互斥的抽象,但其解決同步與互斥的能力低于信號量機制。

4. 死鎖:在一個進程集合里面,若每個進程都在等待某些釋放資源的時間的發生,而這些事件又必須有這個進程集合中的某些進程產生,就成這些集合處于死鎖狀態。

1) 死鎖條件:

① 互斥。必須需要使用互斥的資源

② 占用等待。

③ 非剝奪

④ 循環等待

2) 死鎖處理策略:

① 死鎖防止:通過應用編程或者資源設計破壞死鎖條件。

② 死鎖避免:分配資源時,通過判斷如果滿足這次資源分配后,仍存在一條路徑,使系統不會進入死鎖狀態,如果沒有這種路徑,則拒絕分配。

3) 死鎖防止:

① 破壞互斥條件

② 破壞占有等待條件

③ 破壞非剝奪條件

④ 破壞循環等待條件

4) 死鎖避免:銀行家算法

5) 死鎖檢測與解除:

① 檢測:定時運行死鎖檢測程序。

② 解除:刪除某個進程,釋放資源。
信號量機制相關代碼:

//整型信號量
wait(S)
{
   
while(S<=0);
   S
--;
}
signal(S)
{
   S++;
}
     由于整型信號量不滿足進程同步的第四個原則“讓權等待”;當wait操作時若信號量S<=0,那么就會不斷的循環測試S的值,不會釋放CPU,記錄型信號量可以解決這個問題:
// 記錄型信號量
typedef 
struct
{
   
int value;
   
struct process * L;
}semaphore;

void wait(semaphore S)
{
   S.value
--;
   
if(S.value<0)
   {
      add 
this process to S.L;
      block(S.L);
   }
}

void signal(semaphore S)
{
   S.value
++;
   
if(S.value<=0)
   {
      remove a process P from S.L;
      wakeup(P);
   }
}
以下舉出幾個經典的同步問題:
1,生產者消費者問題
問題描述:生產進程和消費進程共享大小為n的緩沖區,只要緩沖區沒有滿,生產者就可以把產品放入緩沖區;只要緩沖區不空,消費者就可以從緩沖區中取出消息。
Semaphore mutex = 1;
Semaphore empty 
= n;
Semaphore full  
= 0;
producer()
{
   
while(1)
   {
      make a product;
      wait(empty);
      wait(mutex);
      add a product to buffer;
      signal(mutex);
      signal(full);
   }
}
consumer(){
   
while(1
   {
      wait(full);
      wait(mutex);
      remove a product from buffer;
      signal(mutex);
      signal(empty);
   }
}
2,讀者寫者問題
問題描述:若干個讀者和一個寫著共享一個文件,寫著在這個文件上寫的時候不允許有讀者讀,黨讀者在讀這個文件的時候,不允許寫。
int count = 0;                                 //記錄讀者的數量
semaphore mutex 
= 1;                      //更新cout變量用
semaphore rw 
= 1;                           //讀者和寫著互斥訪問
writer()
{
   
while(1)
   {
      wait(rw);
      writing;
      signal(rw);
   }
}
reader()
{
   
while(1)
   {
      wait(mutex);
      
if(count == 0)                           //若當前沒有讀者,申請閱讀
         wait(rw);
      count
++;
      signal(mutex);
      reading;
      wait(mutex);
      count
--;
      
if(count == 0)                          //若當前沒有讀者,釋放信號量,寫者可以進入
         signal(rw);
      signal(mutex);
   }
}
3,打印機問題,問題描述:3個并發進程,共享打印機,只有一個緩沖區,R從輸入設備讀信息,讀出后,放入緩沖區;進程M在緩沖區中加工信息;進程p把加工后的信息,輸出;
Semaphore m1 = 0;      //是否有未被處理的數據
Semaphore m2 = 0;      //是否有被處理的數據
Semaphore empty = 1;
Semaphore mutex 
= 1;
R()
{
   
while(1)
   {
      wait(empty);
      wait(mutex);
      put data to buffer;
      signal(mutex);
      signal(m1);
   }
}
M()
{
   
while(1)
   {
      wait(m1);
      wait(mutex);
      process the data;
      signal(mutex);
      signal(m2);
   }
}
P()
{
   wait(m2);
   wait(mutex);
   output the data;
   wait(mutex);
   wait(empty);
}

 

posted on 2011-10-21 15:09 chxzwj 閱讀(285) 評論(0)  編輯 收藏 引用 所屬分類: 操作系統

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            香蕉视频成人在线观看| 欧美一区三区二区在线观看| 国产精品你懂得| 国产欧美精品| 欧美在线播放视频| 欧美一区二区私人影院日本| 欧美中文字幕视频在线观看| 久久精品国产亚洲一区二区三区| 久久精品国产清高在天天线| 久久免费黄色| 欧美精品成人一区二区在线观看| 欧美日韩国产系列| 国产日韩欧美综合精品| 亚洲福利视频二区| 在线中文字幕日韩| 久久久久久穴| 亚洲三级视频在线观看| 一区二区三区日韩在线观看| 亚洲女人小视频在线观看| 久久久一二三| 国产精品成人免费精品自在线观看| 国产一区二区三区av电影 | 欧美在线亚洲| 欧美护士18xxxxhd| 国产日韩欧美精品| 亚洲免费成人| 久久亚洲影音av资源网| 日韩亚洲在线| 蜜桃久久精品一区二区| 国产欧美一区二区精品忘忧草 | 欧美色视频日本高清在线观看| 国产精品自在线| 亚洲日韩中文字幕在线播放| 欧美中文字幕在线| 一区二区日韩伦理片| 老司机精品导航| 国产麻豆视频精品| 亚洲视频播放| 亚洲福利久久| 久久久久久久久岛国免费| 国产精品剧情在线亚洲| 99re在线精品| 亚洲国产精品久久| 免费欧美日韩| 亚洲高清中文字幕| 久久九九精品99国产精品| 亚洲一区二区三区精品在线观看| 欧美日韩国产成人精品| 亚洲卡通欧美制服中文| 欧美国产日韩a欧美在线观看| 欧美一区二区三区免费看| 国产精品wwwwww| 亚洲欧美福利一区二区| 99精品欧美一区二区蜜桃免费| 免费永久网站黄欧美| 亚洲国产精品久久| 免费日韩一区二区| 巨胸喷奶水www久久久免费动漫| 一本色道久久加勒比88综合| 亚洲一区二区三区四区在线观看| 欧美日产国产成人免费图片| 亚洲欧洲在线一区| 亚洲国产精品成人久久综合一区| 久久综合国产精品台湾中文娱乐网| 国产欧美日韩综合一区在线观看 | 亚洲尤物精选| 亚洲欧美日韩国产精品| 国产日韩精品一区二区三区| 欧美亚洲在线| 久久精品视频免费| 亚洲高清av| 亚洲人妖在线| 国产精品另类一区| 久久一区二区三区四区五区| 免费观看日韩| 亚洲一区二区免费看| 亚洲欧美韩国| 亚洲国产成人91精品| 亚洲麻豆av| 国产在线欧美日韩| 亚洲国产欧美一区二区三区同亚洲 | 国产精品美女在线| 久久久久久久久久看片| 久久亚洲欧洲| 亚洲午夜视频在线观看| 性伦欧美刺激片在线观看| 亚洲国产精品一区| 中文在线不卡| 亚洲国产精品一区二区www在线 | 亚洲亚洲精品在线观看| 亚洲欧美一区二区三区在线| 在线欧美福利| 亚洲视频在线播放| 亚洲福利国产精品| 亚洲综合日韩在线| 91久久久国产精品| 午夜精品美女自拍福到在线 | 欧美a级片网| 亚洲欧美视频在线观看视频| 久久综合网hezyo| 亚洲欧美日韩精品| 免费久久99精品国产自在现线| 亚洲欧美日韩视频二区| 久热综合在线亚洲精品| 午夜精品久久久久久久久久久久| 久久一区二区三区av| 亚洲欧美一区二区精品久久久| 亚洲国产精品久久人人爱蜜臀| 亚洲一二三区视频在线观看| 永久免费毛片在线播放不卡| 亚洲图片在区色| 91久久在线观看| 欧美在线免费观看| 亚洲专区国产精品| 欧美va天堂在线| 久久一日本道色综合久久| 国产精品久线观看视频| 亚洲欧洲日产国产综合网| 好吊一区二区三区| 亚洲男女自偷自拍| 亚洲永久字幕| 欧美日韩直播| 日韩视频一区| 日韩视频―中文字幕| 久久综合久久综合九色| 久久亚洲春色中文字幕久久久| 国产精品毛片a∨一区二区三区| 亚洲国产综合在线| 亚洲精品国产精品乱码不99| 老司机精品久久| 欧美fxxxxxx另类| 在线观看91精品国产麻豆| 欧美伊人久久久久久久久影院| 香蕉成人啪国产精品视频综合网| 欧美日韩在线一区二区| 一本久久青青| 亚洲欧美不卡| 国产香蕉97碰碰久久人人| 欧美一区影院| 久久婷婷蜜乳一本欲蜜臀| 国产在线观看一区| 久久米奇亚洲| 亚洲国产精品成人综合色在线婷婷| 亚洲精华国产欧美| 欧美精品乱人伦久久久久久| 最近中文字幕日韩精品 | 欧美高清不卡| 亚洲欧洲精品一区二区| 正在播放亚洲一区| 国产精品成人av性教育| 亚洲先锋成人| 久久免费午夜影院| 亚洲国产国产亚洲一二三| 欧美激情一区二区在线| 一本一本久久| 久久久精品一区| 亚洲国产欧美一区| 欧美精品在线一区二区| 亚洲一二三级电影| 老司机午夜免费精品视频| 亚洲欧洲在线免费| 欧美视频一区二| 欧美在线播放高清精品| 欧美激情在线观看| 亚洲欧美日韩国产一区二区三区 | 欧美日韩国产综合视频在线观看中文 | 亚洲国语精品自产拍在线观看| 99xxxx成人网| 国产精品剧情在线亚洲| 久久久久国产精品一区三寸| 亚洲国产高清在线| 欧美一区二区视频在线| 亚洲福利视频一区| 国产精品久久久久久久电影| 久久久噜噜噜久久中文字免| 最新精品在线| 久久久国际精品| 日韩图片一区| 激情综合自拍| 国产精品毛片在线看| 免费高清在线一区| 亚洲欧美成人| 亚洲美女精品一区| 免费观看一区| 久久精品午夜| 亚洲在线免费| 夜夜嗨av一区二区三区四季av| 国产一区二区高清不卡| 欧美日韩免费一区二区三区| 久久久久久噜噜噜久久久精品| 99热这里只有精品8| 欧美国产日韩一区| 久久综合久久久| 久久大综合网| 亚洲欧美视频在线观看| 一区二区av| 99精品欧美一区二区三区综合在线| 在线观看久久av| 国产有码一区二区| 国产丝袜一区二区|