顯示廣告
隱藏 ✕
※ 本文為 swallow.bbs. 轉寄自 cd.twbbs.org 更新時間: 2013-01-31 01:53:38
看板 P_RedWolf
作者 ch890333 (紅狼)
標題 [OS] 羅習五 10/16
時間 Thu Oct 16 10:06:21 2008


※ 引述《ch890333 (紅狼)》之銘言:
第三章投影片



Context switch (必發生在kernel mode)

- context switch overhead
    os fash 記憶體, 瞬間進行數百次。

圖: 紅切換到藍(時間到或紅結束)

紅做完後切到 kernel mode, 把cpu中的相關資訊存到Task control block(紅)
從Task control block(藍)載入cpu, 回到user mode跑藍
(圖的藍色接cpu線應該要反向)


Process Creation
-parent的parent的...的亞當夏娃是手動一行一行刻出來的 可看成演化樹(之後有圖)

Resource sharting
-子只能共用父的一半(視os設定), 避免無限fork

Execution (分兩種)
-平行執行
-等子回報後 才繼續下一步


Address space
-父子相同
-當子load program 後會改變

Ex: (in unix)
fork
exec可在fork後使用,原資料會被拋棄, process memory會被更新

exec()當中重要的參數是執行檔(????)的路徑

投影片寫的是kernel mode的程式碼, bty 標準的fork內只可以寫c, cpp不吃

fork過程()
-先做memory cpy
-作Task
-把Task設為ready 並放到ready queue
-到scheduler開始執行

TCB在???就是表示一個process



ls如何運作??

shell 執行fork 後wait
          fork出來 exec(ls), 然後把執行檔位置換成ls(長條圖下方兩塊), 結束
回到parent 用wait看執行時間等child資料 or 回收執行失敗的資源
(圖有錯 return 0;)



main.....?????恍神3min......

強者救我 sr0.....


                        gcc static 要看的檔案.c 後可strace

parent pid = 8088 (此為投影片範例 )
child  pid =


投影片中parent執行else child執行if
                                          自己回家做做看 用gdb()看pid

pid 是否為零可以讓程式好寫, parent可以用pid(表)來看child(們)的狀態

child很少需要關心parent ;getppid()



Process Termination
-自然老死(正常結束 下為不正常結束)
-失去控制被os kill
-root或parent 爽爽就 kill

parent掛了child??
有些os會強制child跟著kill



Cooperation Process
-Independent: os要保證不會互相干擾
-Cooperation: 共同作同一件事
                共享記憶體/加速/Modularity/方便 (=..=)




Producer-Consumer Problem
-buffer被清空 consumer要不到 (大不了不做)
-buffer被productorn塞滿 (會摳盪...奶油溢出來XDD)

int in=0;
int out=0;
          ->這兩個是用來指buffer的頭尾

=> producer: 只改in
   consumer: in會讀入 只改out  =>程式執行會順利是因為in/out只會被一個程式修改

這個雖然記憶體浪費一單位(4byte) 但在多核心上執行效率比要好

--
紅狼太難畫了 我可不可以畫隻紅色的波利就好?
    『紅色波利』
        ◢◣
      ◣█
     █▇                               這年頭 都流行在簽名檔放BLOG...
      ◥██◤ ψjohn112136 (畢卡囧)           http://nublog.cc/?u=ch890333
--
* Origin: 中正築夢園 (CcuDream.twbbs.org) ★ From: 140.123.104.234

carlcarl 推薦推薦這篇文章                                        08/10/16

ht19880723 轉錄本文已轉錄到看板 P_ht19880723                     08/10/21
ch890333 推薦推薦這篇文章                                        08/10/21
ht19880723 加分sorry  補加分                                     08/10/21

--
※ 看板: Swallow 文章推薦值: 0 目前人氣: 0 累積人氣: 132 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇