[問題] memory stack 的問題

看板C_and_CPP作者 (善良老百姓)時間9年前 (2016/08/27 14:05), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/3 (看更多)
最近寫 c code 一直想釐清一些問題 跟c程式沒有很直接相關,若發在這不妥再請麻煩版友告知了 m(_ _)m 最近在研讀virtual memory相關知識,大致上了解paging的運作模式 但仍不太懂 stack 往下長的實際情況是如何運作? stack就我的理解基本上是: 程式在執行 function call 時,堆疊便會一直往下長 [問題一] process 是在 loading 時才知道分配到的 stack 的起始位置嗎? [問題二] stack overflow 如何判定? 在此 stack 的大小是由誰決定的呢? [問題二] 如果有多個 process 同時運作,各自 stack 的起始位置又是如何分配呢? (一直往下長不會撞到嗎@@) (當某 process 需要的 stack 大小超過兩個 page 又是如何維護? page 如果不連續怎麼辦?) [問題三] 一個程式有code, text區段,是直接從 heap 下面開始剩餘記憶體 隨機取一page各自載入嗎?還是 memory 還有在更細分區塊? 還請各位前輩指教,或是指引我關鍵字QQ 我會去查資料 小弟目前正在研讀"程式設計師的自我修養-連結,載入,程式庫" 這本書寫的很詳細,卻又引出更多疑問 orz -- ◣▂ 丹丹先生,請問你對其他速食店降價 丹你老木! _ 心嘛? ▂▂▂ |════ ◤◤ ▁▃▃˙˙ ▇▇▇▇▇▇▇█ ╭═╮ █████ __ [TV] ██ ◥▆▄_◥██▄▃◢█◣ φjeans1020 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.251.85 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1472306744.A.290.html

08/27 22:21, , 1F
看雪學院有一本加密與解密,有反組譯教學,可以看看
08/27 22:21, 1F

08/27 23:26, , 2F
二、可以在 stack 外圍設立一小段禁止寫入的區域,越界時
08/27 23:26, 2F

08/27 23:36, , 3F
才會觸動 二、 同一個 CPU 下,不會真的同時運作,切到
08/27 23:36, 3F

08/27 23:38, , 4F
的那個行程如果跟人相撞...其他行程的資料會被移到別處
08/27 23:38, 4F

08/28 01:37, , 5F
stack好像有個機制會把一個值放在stack裡面,會檢察看
08/28 01:37, 5F

08/28 01:37, , 6F
有沒有被更改為其他值,有改到表示溢出。
08/28 01:37, 6F

08/28 17:45, , 7F
謝謝各位前輩的回覆!
08/28 17:45, 7F
文章代碼(AID): #1NmPuuAG (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1NmPuuAG (C_and_CPP)