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 閱讀(285) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 资中县| 汾阳市| 建水县| 泰兴市| 沁源县| 七台河市| 普定县| 五台县| 台中市| 象山县| 监利县| 望谟县| 久治县| 搜索| 房产| 晴隆县| 洛阳市| 三亚市| 惠州市| 进贤县| 荃湾区| 黔西县| 龙口市| 建宁县| 葫芦岛市| 岐山县| 东莞市| 凤阳县| 花莲县| 海口市| 磴口县| 罗山县| 武邑县| 清丰县| 湟中县| 平潭县| 阳东县| 灵川县| 榆林市| 杭锦旗| 汤原县|