qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          操作系統中睡眠、阻塞、掛起的區別形象解釋

          “阻塞(pend)”與“掛起(suspend)”的區別? [
            操作系統中睡眠、阻塞、掛起的區別形象解釋
            首先這些術語都是對于線程來說的。對線程的控制就好比你控制了一個雇工為你干活。你對雇工的控制是通過編程來實現的。
            掛起線程的意思就是你對主動對雇工說:“你睡覺去吧,用著你的時候我主動去叫你,然后接著干活”。
            使線程睡眠的意思就是你主動對雇工說:“你睡覺去吧,某時某刻過來報到,然后接著干活”。
            線程阻塞的意思就是,你突然發現,你的雇工不知道在什么時候沒經過你允許,自己睡覺呢,但是你不能怪雇工,肯定你這個雇主沒注意,本來你讓雇工掃地,結果掃帚被偷了或被鄰居家借去了,你又沒讓雇工繼續干別的活,他就只好睡覺了。至于掃帚回來后,雇工會不會知道,會不會繼續干活,你不用擔心,雇工一旦發現掃帚回來了,他就會自己去干活的。因為雇工受過良好的培訓。這個培訓機構就是操作系統。
            ——————————————————————————————————————————————
            我是這么認為的:
            掛起和阻塞,使進程失去CPU,阻塞一般是被動的需要等待資源,而掛起可以被別的進程給搶占導致掛起,也可以自己主動掛起自己。阻塞一般是TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE,而掛起除了這兩個,還可以是TASK_RUNNING。
            ——————————————————————————————————————————————
            掛起是主動的,一般需要用掛起函數進行操作,若沒有resume的動作,則此任務一直不會ready。而阻塞是因為資源被其他任務搶占而處于休眠態。兩者的表現方式都是從就緒態里“清掉”,即對應標志位清零,只不過實現方式不一樣.

          posted on 2013-10-08 11:32 順其自然EVO 閱讀(284) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2013年10月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 资源县| 荥经县| 陈巴尔虎旗| 松潘县| 临邑县| 金堂县| 邻水| 黔东| 渝中区| 廉江市| 海宁市| 得荣县| 勐海县| 岐山县| 伽师县| 十堰市| 玛纳斯县| 正定县| 商南县| 色达县| 永安市| 晋中市| 永登县| 宝丰县| 南康市| 鹿泉市| 中山市| 勃利县| 唐海县| 石阡县| 扎赉特旗| 宁武县| 九龙城区| 竹山县| 昂仁县| 即墨市| 泸溪县| 德令哈市| 溧水县| 沂源县| 九江市|