Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review: Program Memory Addresses Program addresses are fixed at the time the source file is compiled and linked يتم إصلاحها عناوين البرنامج في الوقت يتم.

Similar presentations


Presentation on theme: "Review: Program Memory Addresses Program addresses are fixed at the time the source file is compiled and linked يتم إصلاحها عناوين البرنامج في الوقت يتم."— Presentation transcript:

1 Review: Program Memory Addresses Program addresses are fixed at the time the source file is compiled and linked يتم إصلاحها عناوين البرنامج في الوقت يتم ترجمة الملف المصدر وترتبط Small, simple systems can use program addresses as the physical address in memory يمكن، أنظمة بسيطة صغيرة تستخدم عناوين البرنامج كما العنوان الفعلي في الذاكرة Modern systems usually much more complex النظم الحديثة عادة أكثر تعقيدا – program address space very large – other programs running at the same time – operating system is in memory too

2 Absolute Code Compile time: if it can be known in advance the starting address of a program in memory, then absolute code can be generated..com-format programs (MSDOS) Output: a.exe, a.o, or an object module Q:In a multiprogrammed environment, can I run two of these synchronously? Q: Can I relocate this code (say, to coalesce memory gaps when dealing with fragmentation)

3 heap program stack physical memory heap program stack heap program stack program addresses physical addresses memory mapping disk Memory Mapping

4 Address Binding Symbolic Addresses Relocatable Code Absolute Code Loader produces the final address binding(no dynamic relocation) Run-time environment produces the final address binding (with dynamic relocation)

5 Intro to Address Bindings Compiler/assembler Symbolic -> Absolute Symbolic -> Relocatable Loader Relocatable-> final binding Runtime environment Relocatable-> final binding

6 Address Transformations Load Time Loader: ties in other libraries and… If we couldn’t deduce our starting address statically, our compiler would generate instead relocatable code “14 bytes from the beginning of this file” All address bindings would be delayed until loading, at which point a starting offset defines every address in the program (like absolute).

7 Final Address Binding Done at runtime Rather than x, which is our second word in the data section, we might call it “+4bytes from start” If the starting address isn’t known in advance, then the relocatable->logical binding is delayed… Binding at run time, if to be dynamically relocated during execution This more complex binding scheme is the only in which the logical address space and the physical address space differ!

8 Relocatable Code An O.S. today will dynamically relocate processes from one section of the memory space to another. نظام التشغيل سوف يقوم تلقائيا بتغيير مكان العملية من قسم فالذاكرة لقسم اخر Delay binding of the relocatable addresses till runtime تأخير ربط عناوين المنقولة حتى وقت التشغيل Addresses up to this stage will be in some intermediary form, and then will be bound dynamically العناوين تصل إلى هذه المرحلة ستكون في شكل وسيط، وبعد ذلك سوف تكون ملزمة تلقائياُ MS-DOS, x86: 4 relocation registers

9 swapping Swapping may be used to increase the number of processes sharing the Cpu. In addition to the processes stored in the main memory, one or more processes may be temporarily copied out of memory to a backing store. As space becomes available in main memory (possibly because a process is swapped out explicitly to make room for a process to be swapped in), swapped-out processes may be returned to memory. To execute on the CPU, a process must be in main memory. Decisions on which process to swap out and which process to swap in are made by the operating system's process scheduler. عملية التبادل تستخدم لزيادة عدد العمليات المعالجة في المعالج والمخزنة في الذاكرة الرئيسية عملية او عمليتين ربما يخزنون خارج ئاكرة المعالج وبمجرد وجود مساحة يتم إستبدال العملية القديمة بالجديدة ويجب للعملية كي تتم ان تكون داخل ذاكرة المعالج

10 overlaying In all the previous memory management schemes, the amount of memory available to a process is limited by the amount of physical memory. Overlaying allows a process to execute despite the system having insufficient physical memory. Theprogrammer defines two or more overlay segments within the program such that no two overlay segments need be in the operating systemwould then manage swapping overlay segments, reducing the amount of physical memory required by the program.The major disadvantage of overlaying is the extensive programmer involvement in the process. Identifying overlay segments is neither a simple nor a reliable process. A far superior solution is to use a memory management scheme that frees the user from the limitations of physical memory. Such systems are called virtual memory at the same time. في كل المخططات السابقة لإدارة الذاكرة، مقدار الذاكرة المتاحة لعملية محدودة بسبب مقدار الذاكرة الفعلية. تغشية تسمح عملية لتنفيذ الرغم من وجود نظام الذاكرة الفعلية غير كافية. يعرف مبرمج اثنين أو أكثر من شرائح تراكب ضمن برنامج من هذا القبيل أن لا جزأين تراكب ضرورة أن يكون في نظام التشغيل عندئذ إدارة مبادلة قطاعات تراكب، وتقليل كمية من الذاكرة الفعلية التي يتطلبها العيب الرئيسي من تغشية هو مبرمج واسعة النطاق تورط في هذه العملية. تحديد قطاعات تراكب ليست بسيطة ولا عملية يمكن الاعتماد عليها. وهناك حل أفضل بكثير لاستخدام نظام إدارة الذاكرة التي تطلق المستخدم من القيود المفروضة على الذاكرة الفعلية. ويطلق على هذه الأنظمة الذاكرة الظاهرية في نفس الوقت.


Download ppt "Review: Program Memory Addresses Program addresses are fixed at the time the source file is compiled and linked يتم إصلاحها عناوين البرنامج في الوقت يتم."

Similar presentations


Ads by Google