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

اللي يستطيع فهم هذا السؤال

بدأه Eng.S.IDk في 17 مارس 2010 · 3 رد · 563 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم .

بس اللي يطيع فهم هذا السؤال يقول ما فهم

Description:

- You have learned during the lectures that de-fragmentation (compaction)

is used to solve the external fragmentation problem.

-Write a program to simulate the de-fragmentation process on a memory.

- Assume the size of the memory is 500 Kbyte.

- A job table has the following entries: (Job number, Start address, Job size)

- In your homework, the job table is stored in a text file called: JOBS.TXT

Example of a the text file:

1 1000 400

2 1500 1300

3 3010 100

4 4031 500

The result of the new job table after the de-fragmentation process is displayed on the

screen as follows:

Program done by : Your name

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

Job Start Address Size

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

1 ? 400

2 ? 1300

3 ? 100

4 ? 500

2

Notes:

- The teacher will test your program on his own file.

- Each line in the file JOBS.TXT contains information about one job only.

- Do not write comma between the columns in the text file, just leave one space.

- Do not write any headline for the job table in the file.

- The number of jobs is flexible according to the lines in the file but must be less than 10.

يريد برمجه باستخدام لغة سي بلس بلس

#2
اقتباس
بس اللي يطيع فهم هذا السؤال يقول ما فهم

مالذي لم تفهمه بالضبط؟

لديك مجموعة من البرامج, كل برنامج يأخذ مكان بمساحة معينة في الذاكرة التي أعطاك مساحتها. لأن تقسيم الذاكرة لديك Variable Length Partitioning فسينتج "ثقوب" صغيرة بين المساحات المحجوزة.

فمثلاً اعتبر أن "-" تعني أن الذاكرة يوجد فيها شيء, و " " تعني أن المساحة خالية:

|----  ----------- --- --- -- -- -- ---- -- ---- -----|

كما ترى, لو جاء برنامج جديد يحتاج إلى ثلاثة أماكن متتالية فذلك غير ممكن فعله. كل ما ستقوم به هو عملية Compaction للذاكرة, أي أنك ستقوم "بجر" البرامج في الذاكرة حتى تصبح متتالية,

و بالتالي يصبح لديك مساحة واحدة خالية في نهاية الذاكرة. هذا بشكل مبسط:

|------------------------------------------           |

كما تلاحظ, كان لدينا 11 فراغاً مبعثراً, و قمنا بتجميع الفراغات بشكل متتالي للاستفادة القصوى منها.

هل فهمت الآن؟

تحياتي...

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 17 مارس 2010 في 20:44

1
#3

اها .. جميل

طب متل هيك كيف ممكن تكون برمجتها بلغة سي بلس بلس

او شرح للمثال الموجود

تم تعديل هذه المشاركة بواسطة Eng.S.IDk في 17 مارس 2010 في 21:27

#4

عزيزي

فكرة السؤال تقوم على حذف المواقع الفارغة في الذاكرة

واعطاء الـjob مواقع جديده متتالية

ويمكنني ان اعطيك هذه الفكره التي انهيتها انا بنجاح على لغة الجافا

اولا تقوم بقراءه الملف سطرا سطرا وان تضع كل سطر في خانه من مصفوفه

ثانيا تقوم بتقطيع كل سطر الى ثلاث كلمات كل كلمة تكون في خانه من مصفوفه

ثالثا تحول كل خانه من string الى int وتقوم بالعمليات الحسابية اللازمه

اعذرني فانا لا استطيع حلها على لغة c++

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

read file line by line

split string

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…