الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تخطيط الذاكرة

مغلق
بدأه Al-Saqqaf في 19 أكتوبر 2004 · 4 رد · 1,902 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تخطيط الذاكرة من المواضيع التي تحيرني كثيرا...

1-ما معنى تخطيط الذاكرة

2-كيف هي بالنسبة لبرامج 16 بت و كذلك نفس الشي لبرامج 32 بت؟

3- لماذا هناك محدودية في حجم الذاكرة بالنسبة لبرامج 16 بت ونفس الشي لماذا هناك سعة كبيرة لبرامج 32 بت؟

4-من يتحكم في تخطيط الذاكرة (نظام التشغيل أم المعالج)

ولكم كل الفضل

#2

تستطيع أن تصنف تخطيط أو تقسيم الذاكرة إلى عدة أقسام

ذاكرة نظام البويس

ذاكرة نظام التشغيل .. مثل وندوز

طبعا ذاكرة البويس بسيطة تنقسم إلى 3 أقسام

أما

تخطيط أو تقسيم الذاكرة .. لنظام وندوز

تعتبر من أصعب المهام التي يتولها نظام التشغيل

وتنقسم إلى أقسام كثيرة وغير ثابتة ؟ بعضها ظاهر وبعضها خفي

لو تريد تعرف كم قسم .. أجب عن هذا السؤال

كم برنامج يستطيع وندوز تشغيلة مرة واحدة ؟

بمعنى كم مهمة يستطيع المعالج تنفيذها في وقت واحد

المهم هذة الأمور سيكون لها مواضيع قادمة لتقريب الإجابة

--------------

أما السؤال عن محدودية أنظمة 16 بت في العنونة

لأن العنونة عن طريق المسجلات

حجم المسجل = 16 بت أي 2 بايت

أكبر قيمة = FFFF فتساوي بالبايت 65535 اي 65 كيلوبايت تقريبا

لاحظ الفرق .. في أنظمة 32 بت

أكبر قيمة للمسجل = FFFFFFFF أي 4 بايت

تساوي 4294967295 بايت أي 4 غيغا بايت ؟!!

-----------

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

الف الف شكرا هلى الاهتمام بالموضوع..

ارغب دائما ان اتأكد من فهي لما طرح:

* - ان الذي يتحكم في اذارة الذاكرة هي برامج النظام (اي نظام البيوس و نظام التشغيل) اي انه لا يوجد للمعالج دخل بالموصوع.

* - قرأت في احد الكتب ان هناك معالج لا يحضرني رقمة ربما 8086 انه يستطيع عنونة 1MB اي 1024KB و هي الذاكرة التي تستخدم من قبل نظام التشغيل دوس. الا ترى ان هذا يبدو غريبا ما اعنيه هو اننا في هذة الحالة نحتاج مسجل بحجم 20 بت لكي نعنون الذاكرة و ليس 16.

* - بالمناسبة وجدت تخطيط ذاكرة الوندوز 98 واتمنى لو نجد بقية مخططات الذاكرة لكل اصدارت الوندوز و خاصة XP.

اعتقد فهم مخططات الذاكرة لدوس في النمط الحقيقي و كذلك الوندوز في النمط المحمي سيكون ذو فائدة لنا جميعا.

Memory management under Windows Operative system has greatly changed
since the days when DOS was the king. Both Win16 and DOS share a common
address space for all applications making them very prone to crashing. Under
Win95/98/NT every application has its own private address space which cannot
be seen by any other process. This address space is 4 GB long and each
application access it using a 32 bit pointer. Supposedly, this configuration
makes the operative system more stable, and although I am generalizing,
there are meaningful differences between Win95/98 and WinNT, which we could
better appreciate by analyzing the memory layout of any particular Win32
process.

Win95/98 Virtual Address Space Memory Layout:
---------------------------------------------


From 0x00000000 to 0x00000FFF. These first 4KB is used to maintain
compatibility with Win16 and DOS programs. It is unaccessible to any process
raising an exception if a read/write attempt occurs.

From 0x00001000 to 0x003FFFFF. This 4 MB area is also used for compatibility
issues but is accessible by any process. Off course, it is not recommended
to play with this area.

From 0x00400000 to 0x7FFFFFFF. This 2 GB partition is the private address
space assigned to every running process. Each win32 application receives an
unshared, private 2 GB chunk of virtual address space (don't forget to
subtract the bottom 4MB describe above). At this point, you should not
confuse yourself, windows does not assign 2 GB of your precious memory to
every running thread; this is "virtual" address space, not physical memory.
Win95/98 (Win98 from now on) judiciously commits and maps physical storage
the every process virtual address space according to its growing necessities.

From 0x80000000 to 0xBFFFFFFF. This partition is 1 GB long and is shared
among all Win32 process. Here, Win98 maps all memory allocations, dynamic
link libraries (KERNEL32.DLL, USER32.DLL, GDI32.DLL, ADVAPI32.DLL), memory
mapped files (MMF from now on) and Win16 applications. It is useful to say
that DLL's are always mapped to the same fixed virtual addresses.

From 0xC0000000 to 0xFFFFFFFF. This partition is also 1 GB long; here is
where the operative system code resides. Unfortunately, this area is also
accessible to all win32 processes and that is why Win98 is more prone to
crashing than WinNT.

(لأسف لم ابدأ بعد بدراسة الأسمبلي..ترى هل يعرف احدكم اي مرجع يشرح MASM)

#4

inside (NT) memory management 1

Inside (NT ) memory management 2

more

تم تعديل هذه المشاركة بواسطة SaD jAckAl في 21 أكتوبر 2004 في 13:26

Igonrance is HeLL,need to say any more?

Laziness is HeLL, Lazy programmers must be shoot on the head

Stupidity is HeLL, u can patch everything but not human stupidity

#5

مشكووور ما قصرت

هذا الموضوع مغلق.

مواضيع مشابهة