ใน Linux โปรแกรมจะโหลดเข้าสู่หน่วยความจำได้อย่างไรเมื่อระบบปฏิบัติการตัดสินใจรัน


2

ดังที่เราทราบลีนุกซ์ใช้แคชของหน้าเพื่อจัดเก็บรหัสหรือข้อมูลจากส่วนต่าง ๆ ของไฟล์ที่อาจถูกใช้งาน หนึ่งในคำถามของฉันคือเมื่อโปรแกรมเช่น vim กำลังทำงานข้อมูลและรหัสของมันจะถูกโหลดลงในแคชของหน้าเว็บเหล่านั้นใช่ไหม

และฉันก็ไม่แน่ใจเกี่ยวกับความเข้าใจอื่นของฉันเช่นกัน ระบบปฏิบัติการจะโหลดโค้ดบางส่วนที่จะใช้ในทันทีเมื่อโปรแกรมเริ่มทำงานหรือไม่? หรือระบบปฏิบัติการโหลดพวกเขาทั้งหมดในครั้งเดียว? ระบบปฏิบัติการใช้ pace cache ของไฟล์เพื่อจัดเก็บรหัสและข้อมูลที่โหลดใช่ไหม? OS ใช้ฟังก์ชั่นของโมดูลชนิดใดในการโหลดโค้ด?

คำตอบ:


0

ข้อมูลและรหัสของมันจะถูกโหลดลงในแคชของหน้านั้นก่อนไหม

ใช่.

ระบบปฏิบัติการจะโหลดโค้ดบางส่วนที่จะใช้ในทันทีเมื่อโปรแกรมเริ่มทำงานหรือไม่ หรือระบบปฏิบัติการโหลดพวกเขาทั้งหมดในครั้งเดียว?

บางชิ้น ที่จริงแล้วเมื่อประมวลผลรหัสจริง - page_fault จะเกิดขึ้นและหน้าจะถูกย้ายไปยังหน่วยความจำ (page_cache) จากไฟล์ที่เกี่ยวข้อง

OS ใช้ฟังก์ชั่นของโมดูลชนิดใดในการโหลดโค้ด?

load_elf_binary http://lxr.free-electrons.com/source/fs/binfmt_elf.c#L663

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.