next up previous contents index
Next: คำสั่งอื่นๆ ของ MIPS Up: การเรียกฟังก์ชั่นในฮาร์ดแวร์ Previous: การเก็บข้อมูลที่สร้างใหม่ลงในสแตก   Contents   Index

การจัดสรรพื้นที่เก็บข้อมูลที่สร้างใหม่ในส่วนของ Heap

นอกจากการจัดสรรพื้นที่หน่วยความจำที่เป็น local สำหรับฟังก์ชั่น ผู้เขียนโปรแกรมต้องการการเก็บตัวแปร Static และตัวแปร Dynamics ในรูป 2.8 แสดงการจัดสรรบริเวณใช้งานของหน่วยความจำในคอมพิวเตอร์ MIPS โดยที่สแตกจะเริ่มจากแอดเดรสสูงลงมายังแอดเดรสต่ำ ในส่วนล่างของหน่วยความจำ ได้รับการสำรอง และตามมาด้วยตัวโปรแกรมที่เป็นภาษาเครื่องของ MIPS ที่เรียกว่า text segment เหนือ code เหล่านี้เป็น static data segment สำหรับเก็บค่าตัวแปร static และค่าคงที่ ในการใช้งานโปรแกรมมีบางส่วนที่มีการจัดสรรเนื้อที่ตามการใช้งาน และมีการเปลี่ยนแปลงระหว่างการทำงานของโปรแกรม พื้นที่สำหรับการเก็บค่าของตัวแปรดังกล่าวเรียกว่าส่วน Heap ที่อยู่ในหน่วยความจำถัดขึ้นไป

Figure 2.8: การจัดสรรบริเวณใช้งานของหน่วยความจำในคอมพิวเตอร์ MIPS
\includegraphics[width=3in]{fig/Chapter_2/Figure_2.17.eps}

ในภาษา C มีฟังก์ชั่นสำหรับทำการดังกล่าวคือ malloc() เพื่อจองพื้นที่ heap และสามารถ free เมื่อใช้งานเสร็จสิ้น ถ้าใช้งานโปรแกรมที่มีการขอใช้หน่วยความจำแบบ Dynamics และไม่ได้เรียก frees หลังใช้งานเสร็จเรียกว่า Memory Leak



Vara Varavithya 2006-11-06