我是一位正在學習操作系統課程的計算機本科生。對於我的任務,我需要實現一個簡單的線程管理系統。操作系統的TCB的一些說明
我正在爲TCB創建一個結構。根據我的講義,我可以在我的TCB是:
寄存器, 程序計數器, 堆棧指針, 線程ID和 進程ID
現在按照我的講義,每個線程應有自己的堆棧。而我的問題是這樣的:
只需通過存儲堆棧指針,我可以保持每個線程獨特的堆棧?如果我這樣做了,不會有一個線程堆棧寫入其他堆棧嗎?
我該如何預防?限制每個線程的堆棧?請告訴我這通常是在一個正常的操作系統中完成的。
請幫忙。提前致謝。
明白了你的觀點,謝謝。我真正問的是,由於操作系統無法幫助我,我該怎麼辦才能阻止線程彼此堆棧?據我所知,編譯器(在我的情況下是C)只使用一個堆棧。所以保持不同的棧指針不會阻止它們彼此增長。 – user2290802
創建線程時,無論是主線程還是輔助線程,它都會獲得自己的單獨堆棧,而不會與其他任何重疊。無論如何,你只能做很多事情來防止壞事發生。 –
猜測除了在線程堆棧之間留下大量空間外,沒有其他選擇。 – user2290802