看板 Grad-ProbAsk 關於我們 聯絡資訊
Unix的I-Node結構(1-12,13single level 14two level 15 3level) block size 8kB block pointer 4Byte file大小8gb有多少個index block? 1+1+(2^9-1)=2^9 +1 我的理解是,一開始的1~12是一個index block,然後13的single level也有一分 2^11(single level)+2^11*x(two level)<2^20 x解得2^9-1 我的理解有錯嗎? 最後想順便問一下memory引起的pagefault到底是算軟體中斷還是硬體中斷@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.171.105 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1480902226.A.C6F.html ※ 編輯: newpuma (114.136.171.105), 12/05/2016 10:14:05
kyuudonut: software-based interrupt12/05 10:13
那非法存取也是softbased嗎
kyuudonut: 2. 第一個index不用算吧12/05 10:19
我的筆記抄的答案是這樣,我也有點困惑@@ ※ 編輯: newpuma (114.136.171.105), 12/05/2016 11:19:58
kyuudonut: yes 12/05 11:36
DZASHIANG: Page fault 算hw-generated吧 非法存取是sw-generated 12/05 12:19
DZASHIANG: 有誤請指正 12/05 12:19
DZASHIANG: 另外借標題問一下 一個執行中的process 若TLB miss ,pa 12/05 12:25
DZASHIANG: ge table hit ,會被中斷到waiting狀態嗎 是不是依據TLB 12/05 12:25
DZASHIANG: miss 由軟體or硬體處理有不同結果? 12/05 12:25
kyuudonut: no, page fault is software-based interrupt 12/05 13:19
kyuudonut: 會有不同結果 但這個時間極短 存取一次memory而已 12/05 13:22
kyuudonut: 除非是page failt或做I/o才有可能到waiting 12/05 13:22
kyuudonut: 存取一次memory應該都還在cycle time以內 不至於切到 12/05 13:23
kyuudonut: waiting 12/05 13:23
DZASHIANG: Pagefault是trap沒錯,謝謝指正。另外再請問TLB miss pa 12/05 14:05
DZASHIANG: ge table hit時,cpu會直接從page table 讀入需要的pag 12/05 14:05
DZASHIANG: e還是把TLB更新後再存取一次TLB?os課本寫的是第一種, 12/05 14:05
DZASHIANG: 計組課本的說法好像是第二種,是有兩種版本嗎 12/05 14:05
DZASHIANG: http://i.imgur.com/Lwupffr.jpg 12/05 14:10
DZASHIANG: 剛剛翻到,如果TLB miss且由硬體處理,cpu只會stall , 12/05 14:15
DZASHIANG: 正在執行的process維持running. 若由interrupt to os 12/05 14:15
DZASHIANG: 處理,process切到waiting,這樣的說法有錯嗎 12/05 14:15
kyuudonut: 不太清楚計組課本是哪種 還請你貼圖一下 我prefer更 12/05 14:32
kyuudonut: 新TLB再存取TLB一次 12/05 14:32
kyuudonut: process不會切到waiting, 除非有啟動scheduler 12/05 14:33
kyuudonut: 若為linux則會切到interrupted的狀態 12/05 14:35
DZASHIANG: http://i.imgur.com/chpb848.jpg 12/05 15:10
ken52011219: TLB miss 時 就會trap了 12/05 17:42
ken52011219: 接著 OS 尋找 memory 的page table中的reference 12/05 17:44
ken52011219: 若直接找到該frame 即可使用 並且同時將該frame 的 12/05 17:45
ken52011219: NO 值 以及 Page no 值增加到TLB上 12/05 17:45
kyuudonut: @ken 如果該系統有MMU的話 應該會由MMU來做這些固定的 12/05 22:18
kyuudonut: 動作 請參酌 https://goo.gl/a1oYVQ 12/05 22:20
kyuudonut: (不過好像TLB通常會實作在MMU裡就是了) 12/05 22:21
kyuudonut: 不過在白算盤裡 TLB miss是由OS負責 因為課本的MIPS 12/05 22:28
kyuudonut: 沒有MMU 不過我當時在學校上課時 老師有補充實務上由 12/05 22:28
kyuudonut: MMU來做就可以了 因為切到OS太花時間了 除非是 12/05 22:28
kyuudonut: 像page fault需要額外預測的工作 切給OS會比較有效益 12/05 22:29
kyuudonut: 有點離題 結論是還是要看實作啦~ 12/05 22:30
ken52011219: 了解, 其實OS版本裡有提到 藉由 hardware or via 12/05 22:33
ken52011219: interrupt 去執行 12/05 22:33