คำถามติดแท็ก computer-architecture

4
จะเกิดอะไรขึ้นเมื่อโปรแกรมคอมพิวเตอร์ทำงาน
ฉันรู้ทฤษฎีทั่วไป แต่ไม่สามารถอธิบายรายละเอียดได้ ฉันรู้ว่าโปรแกรมอยู่ในหน่วยความจำรองของคอมพิวเตอร์ เมื่อโปรแกรมเริ่มการทำงานมันจะถูกคัดลอกไปยัง RAM ทั้งหมด จากนั้นตัวประมวลผลจะดึงคำแนะนำสองสามครั้ง (ขึ้นอยู่กับขนาดของบัส) ในแต่ละครั้งทำให้พวกเขาลงทะเบียนและดำเนินการได้ ฉันยังรู้ว่าโปรแกรมคอมพิวเตอร์ใช้หน่วยความจำสองชนิด: stack และ heap ซึ่งเป็นส่วนหนึ่งของหน่วยความจำหลักของคอมพิวเตอร์ สแต็กใช้สำหรับหน่วยความจำที่ไม่ไดนามิกและฮีปสำหรับหน่วยความจำแบบไดนามิก (ตัวอย่างเช่นทุกอย่างที่เกี่ยวข้องกับnewโอเปอเรเตอร์ใน C ++) สิ่งที่ฉันไม่เข้าใจคือสิ่งที่ทั้งสองเชื่อมต่อกัน สแต็คใช้ในการดำเนินการตามคำแนะนำ ณ จุดใด คำแนะนำจาก RAM ไปจนถึงสแต็คไปยังรีจิสเตอร์?

3
เหตุใด JVM stack-based และ Dalvik VM register-based?
ฉันสงสัยว่าเหตุใด Sun จึงตัดสินใจสร้าง JVM stack-based และ Google ตัดสินใจที่จะสร้าง DalvikVM register ฉันคิดว่า JVM ไม่สามารถสันนิษฐานได้จริงๆว่ามีการลงทะเบียนจำนวนหนึ่งบนแพลตฟอร์มเป้าหมายเนื่องจากควรเป็นแพลตฟอร์มที่ไม่ขึ้นกับ ดังนั้นจึงเลื่อนการจัดสรรการลงทะเบียน ฯลฯ ไปยังคอมไพเลอร์ JIT (ช่วยแก้ให้ด้วยนะถ้าฉันผิด.) พวกแอนดรอยด์ก็เลยคิดว่า "เฮ้มันไม่มีประสิทธิภาพไปขอ register ตาม vm ทันที ... "? แต่เดี๋ยวก่อนมีอุปกรณ์ Android ที่แตกต่างกันจำนวนการลงทะเบียนที่ Dalvik กำหนดเป้าหมาย? Dalvik opcodes ฮาร์ดโค้ดสำหรับการลงทะเบียนจำนวนหนึ่งหรือไม่ อุปกรณ์ Android ปัจจุบันทั้งหมดในตลาดมีจำนวนการลงทะเบียนเท่ากันหรือไม่? หรือมีการจัดสรรรีจิสเตอร์ซ้ำระหว่างการโหลด dex หรือไม่ ทั้งหมดนี้เข้ากันได้อย่างไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.