看板 Grad-ProbAsk 關於我們 聯絡資訊
不好意思 問題有點多 想請問一下 https://imgur.com/8gCIQU7.jpg
(1)請問一下21,page的數量要怎麼求呢? 題目的page frame為page大小對嗎? 那virtual 它也沒有給pagetable那要怎麼計算數量阿??? https://imgur.com/zJ0n8ZA.jpg
(2)想請問一下這個程式有什麼問題呢? (a)要怎麼看 (b)又要怎麼看呢 小弟想說buffer size為256,夠大,將輸入的文字如果大於二則複製到 buffer 裡面 這樣有哪裡錯嗎QAQ https://imgur.com/3tVcU1C.jpg
(3)為什麼deadlock 會造成(C)(D)?? 如果不讓程式造成死結 那應該不會減少 thread的平行處理吧 priority iversion要怎麼解釋呢?? e03vu,42842841; a;6cjo6zj4 vu,4vu,4 ~~` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.8.109.105 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1549893141.A.C80.html
cutearia: 1應該是20bit拿去當tag 2^20=1M? 02/11 23:06
gama79530: 1個frame或page 4K要12bits,page number有2^(32-12) 02/11 23:27
gama79530: frame number = 2GB/4KB = 512K 02/11 23:28
gama79530: page size 是4KB少打一個字 02/11 23:30
gama79530: deadlock avoidance會去偵測必須要分配資源之後還是在 02/11 23:31
gama79530: safety才會准許resource request,如果不ok的話thread 02/11 23:32
gama79530: 就要停下來等拿resource所以會降低thread level平行化 02/11 23:33
gama79530: priority inversion就是說有一個優先權比較高的thread 02/11 23:34
gama79530: 要wait某個資源,但這個資源已經被priority比他低的 02/11 23:35
gama79530: thread拿走了,這樣子等於是高優先權的thread要等 02/11 23:35
gama79530: 低優先權的 02/11 23:36
cutearia: 2 沒檢查argv[1]長度 可能超出buffer 大概吧 02/11 23:41
S2067030: 請問b選項 more mem leak , leak在這邊是什麼意思 02/12 00:10
Rioronja: C裡面srtcpy 如果輸入大於一個字串的大小 他會依照stack 02/12 00:49
Rioronja: 的性質覆蓋掉記憶體空間 02/12 00:49
Rioronja: 所以可能造成崩潰 是一個很有名的bug 02/12 00:49
Rioronja: 如果是用srtncpy的話 如果輸入超過設定空間大小 他就只 02/12 00:49
Rioronja: 會存到該大小 後面省略 02/12 00:49
Rioronja: https://i.imgur.com/BUZDHCn.jpg 02/12 00:50
plsmaop: Memory leak我舉個例子好了,你寫c的時候如果一直malloc 02/12 07:42
plsmaop: 但是沒有free,os以為你會用到這塊記憶體所以不會分配給 02/12 07:42
plsmaop: 別人,但是你其實用完了,應該還給系統,這樣的情況下造 02/12 07:42
plsmaop: 成你實際沒有用到這麼多記憶體,但記憶體卻不夠用,這就 02/12 07:42
plsmaop: 是memory leak,現代的語言(python, js, java, golang等 02/12 07:42
plsmaop: 等)有自己的GC,不需要使用者自己去管理記憶體,相對的 02/12 07:42
plsmaop: 能降低memory leak的機會,但是你也不能百分之百的保證他 02/12 07:42
plsmaop: 的GC完全不會有memory leak 02/12 07:42
S2067030: 明白了!感謝大大細心解釋! 02/12 07:43
plsmaop: 至於stackoverflow,如同上面說的,因為c的字串實際上是 02/12 07:50
plsmaop: 直接對記憶體做操作,會從要覆蓋的位置開始一路覆蓋下去 02/12 07:50
plsmaop: ,萬一傳進來的參數爆幹長,比整個程式的stack空間還長, 02/12 07:50
plsmaop: 就會stackoverflow,讓惡意程式有機會在沒有權限的地方 02/12 07:50
plsmaop: 亂塞東西 02/12 07:50
kaidi620: 請問大大 為什麼參數爆了 還有機會讓惡意程式塞東西呢? 02/12 09:22
plsmaop: https://bit.ly/2tj9xHG 02/12 09:26
plsmaop: 有興趣可以參考,不過我覺得考前別看了,記住概念就好 02/12 09:26
gaowei16: 如果剛好在隔壁會覆蓋 02/12 22:25
GeniusPuddin: 例如可以蓋掉stack上function call的return address 02/13 10:40
GeniusPuddin: 影響程式執行流程之類ㄉ 02/13 10:40