نظام التشغيل
صفحة 1 من اصل 1
نظام التشغيل
مقدمة عن نظام التشغيل
نظام التشغيل بصفة عامة هو عبارة عن وسيط بين مستخدم الحاسب الالي وبين
المكونات المادية للحاسب الالي , ووظيفته هو تمكين المستخدم من استخدام
كافة القدرات المتاحة في المكونات المادية بكفائة عالية ويسمى هذا بال
resource manager
, والوظيفة الاخرى هي جعل الحاسب الالي مريح وسهل الاستعمالvirtual machine.
يمكن اعتبار انظمة التشغيل كأنها حكومة < مع الفرق طبعا> حيث انها
توفر البيئة التي يمكن لجميع الشركات والهيئات ان تعمل فيها وفق قوانينها
ويمكن اعتبار هذه الشركات هي البرامج والتطبيقات.
بعض انواع انظمة التشغيل:
batch operating system:
وهو من اقدم انظمة التشغيل حيث كان يتعامل مع الاجهزة الضخمة mainframes
وكانت وظيفة مستخدم هذا النظام لاتتعدى ان يدخل البيانات الى الحاسب ثم
يقوم نظام التشغيل بعملية تنظيم ,حيث العمليات التي تحتاج الى اولوية عالية
يتم تنفيذها مع بعض وذلك لزيادة سرعة الحسابات , ومن ثم تخرج النتائج ربما
بعد يوم او شهر .
multiprograamed O/S:وهذا النظام ظهر نتيجة الحاجة لاستخدام الحاسب من قبل
اكثر برنامج واحد , وعند استخدام الشخص للحاسب الالي فأنه قد يعمل اشياء
تحتاج الى مدخلات , فليس من المعقول ان يبقى الحاسب ينتظر في ان يدخل الشخص
المدخل وخاصة اذا كان الشخص غير موجود فتبقى العمليات التالية في حالة
انتظار وتسمى حالة المعالج عندما ينتظر في مدخل من المستخدم ب IDLE اي
ينتظر.
ولذلك فأذا كان البرنامج يحتاج الى مدخلات فأنه يتحول الى برنامج أخر ثم
التالي ثم التالي الى ان تدخل المدخلات وبهذا يكون قد شغل اكثر من عملية في
وقت واحد CONCURRENCY
وتحفظ العمليات التي سيتم معالجتها في مكان يسمى ال JOB POOL وهي العمليات التي تنتظر ان تأخذ الى الذاكرة ليتم بعدها معالجتها
time-sharing O/S:
وهو نظام تشغيل يمكن ان يصنف مع الانظمة السابقة غير انه يخدم عدة مستخدمين
في وقت واحد وذلك بأن يعطي لكل مستخدم زمن معين لتنفيذ برامجه وهذا الزمن
صغير بحيث لايحس به المستخدمون .
multi-processor O/S:
وهي من اسمها انظمة تدعم وجود اكثر من معالج في نفس الوقت ويكون لهم نفس الذاكرة والناقلbus .
يوجد ما يسمى بمصطلح SMP or symmetric multiprocessor وفيه ان كل معالج
يمتلك نسخة من نظام التشغيل ويمكن التخاطب بين المعالجات بطريقة معينة
وكذلك مصطلح asymmetric multiprocessor حيث يوجد معالج رئيسي يمتلك نسخة من
نظام التشغيل والمعالجات الاخرى تنتظر في اوامر من المعالج الرئيسي
لتنفيذها >كما في حالة الprocessor و ال co-processor < ومن ميزات
هذا النظام السرعة حيث يوجد اكثر من معالج ولكن السرعة مثلا في حالة 3
معالجات لاتكون ثلاثة اضعاف بل اقل , الميزة الثانية هي في حالة توقف
المعالج لسبب او لاخر فأنه يوجد من يعوظه من المعالجات الاخرى , والميزة
الثالثة الاقتصاد حيث انهم يشتركون في الذاكرة وفي كل شيء تقريبا
real time O/S:
وهي انظمة تتعامل مع الاشياء التي تحتاج الى دقة كبيرة وسرعة عالية اي ان
جميع المتغيرات المعرفة فيها ثابتة ولا يمكن تجاوزها بأي حال واذا تم
تجاوزها فأن جميع النتائج ستكون خاطئة حيث تستخدم مثلا في صناعة الروبوتات
وفي القياسات البيولوجية والفضائية , ويوجد لها نوعان اولهما HARD
REAL-TIME وفيه يتم اخذ جميع الحسابات التي يمكن ان تفكر فيها حتى زمن وصول
المعلومات الى الذاكرة وتأثير الحرارة مثلا على الزمن وغيرها من ادق
التفاصيل كزمن جلب BIT مثلا
النوع الثاني SOFT REAL-TIME وهي تهتم بالوقت الذي له علاقة بتجديد البيانات واخذ القراءات ولاتهتم بتفاصيل الزمن .
وهناك انواع اخرى لانظمة التشغيل للذي يحب الاطلاع
desktop o/s
distributed o/s
clustered systems
handheld systems
ما هي اهم الوظيفة التي يقوم بها نظام التشغيل كل وقت؟
ما يقوم به نظام التشغيل هو تنظيم تنفيذ العمليات التي يقوم بها المستخدم
مع الاخرى الخاصة بنظام التشغيل وتسمى هذه العمليات بال process
ونتيجة لل multi programming التي تحدثنا عنها حيث عدة عمليات تنفذ في وقت
واحد فأنه اذا لم يقوم نظام التشغيل بترتيب وتنظيم تعامل هذه العمليات مع
معطيات نظام التشغيل فأنه سيحدث تداخل ولخبطة وضياع للمعلومات
Process:
يمكنك تخيل ال process وكأنك اخذت صورة للحظة داخل المعالج فماذا سترى؟
سيكون في تلك اللحظة هناك برنامج تحت المعالجة وجميع ما يتبعه من العداد
program counter , والملفات ومحتويات الذاكرة وغيرها من المحتويات , اي
اننا نستطيع ان نعتبر ال process جزء من البرنامج program او انها البرنامج
في حالة التنفيذ.
فأذا تتبعنا هذه ال process في مراحلها اثناء التنفيذ بوضع مراقبين ورجال
امن حولها فأننا سنراها في خمس حالات نستطيع التفكير فيها مع بعض
اولا قبل كل شيء هل كانت هذه ال process موجودة, طبعا لا اذا اول المراحل هي تكوين هذه ال process
ثانيا بعد ان تكونت هذه ال process ماذا يمكن ان تفعل هل ستنام وترقد ,
طبعا لا ولكنها ستبقى جاهزة وبأنتظار ان يسمح نظام التشغيل ببدء معالجتها
عن طريق السماح لها بدخول المعالج وبدء حساباتها ثالثا لنفترض ان نظام
التشغيل سمح لها ببدء المعالجة فستبدأ هذه ال process ببدء استخدام المعالج
لتنفيذ عملياتها ولاحظ هنا ان المعالج ينفذ process واحدة في كل مرة ,
رابعا ربما هذه ال process تحتاج الى مدخلات فلذلك لا يمكن تركها في
المعالج لتأخذ وقت الغير بل سيتم وضعها في قائمة الانتظار وبعد ان تدخل
المدخلات اليها لايمكن لنظام التشغيل ان يعيدها مباشرة لتأخذ المعالج ولكن
حيث انها اخذت مدخلاتها فيمكن ان تعتبرها انها جاهزة لاستخدام المعالج
فترجع الى الحالة الثانية واحيانا قد يحدث امر طاريء يستدعي اخراج هذه ال
process حالا من المعالج و كما في حالات المقاطعة interrupt التي تحدث
للمعالج فيمكن اعتبار ال process في هذه الحالة ايضا انها مازالت مستعدة
وتريد استخدام المعالج فتوضع في الحالة الثانية , خامسا بعد ان مرت ال
process بكل هذه المراحل لم يبقى لها بعد ان انتهت من استخدام المعالج في
تنفيذ عملياتها الا ان تقول اني انتهيت .
يمكن تلخيص المراحل السابقة بالاتي:
1- الانشاء new : ال process قيد التكوين
2- جاهزة: ready : جاهزة لاستخدام المعالج
3- تشتغل: running : ال process تستخدم المعالج
4- تنتظر: waiting : تنتظر ادخال مدخلات
5- انتهت : terminated : ال process اكملت عمليتها وتخلت عن المعالج طواعية
كيف يرى نظام التشغيل ال process بطريقة اكبر واشمل :
يتم ذلك بما يسمى كتلة التحكم بال process او process control block [ PCB ]
حيث ان لكل process , pcb خاص بها حيث يرى نظام التشغيل منها الفروقات بين
كل process وأخرى وهي تحتوي بصفة عامة على مراحل ال process وقد تحدثنا
عنها , محتويات program counter والتي سيحدد منها عنوان العملية التالية ,
محتويات المراكم ويمكن من خلالها ان يعرف نظام التشغيل اين توقفت العملية
في حالة حدوث مقاطعة ويستطيع بعدها اكمال العملية , وكذلك يحتوي العديد من
المعلومات حول الذاكرة واجهزة الدخل و الخرج التي تتعامل معها.
مفهوم ال thread:
يمكن ان تفهمه على انه يبين كم هناك عملية تنفذ في نفس الوقت فمثلا لو انك
فتحت برنامج maya فتعتبر انك تنفذ thread واذا اضفت له vc++ فأنك تنفذ
multithread حاول ان تعرف علاقة هذا بال process
ما هو المقصود بال scheduling ؟
قبل ان نبدأ في التحدث عن هذا المعنى نتطرق الى شيء يشد الانتباه في الدرس الماضي.
لو تخيلنا ان هناك process اخذت تتجه الى حالة ready ثم اتت بعدها process
اخرى وثالثة ورابعة , افليس من المنطقي ان تكون هناك طريقة لظمهم في مكان
واحد في ترتيب ونظام بحيث لا يبقى المكان وكأنه سوق , ولذلك تم تهيئة مكان
لهذه ال processes تسمى ال queue ويسمى المكان الذي توجد فيه هذه ال
processes التي هي جاهزة لاخذ المعالج بال ready queue .
بمجرد فهمنا لهذا المعنى يتطرق معنى اخر وهو لو فرضنا ان هناك 20 process في ready queue فيا ترى اي منها سيتم اعطائها للمعالج؟
هذا هو ما يسمى ال scheduling اي هو طريقة لاختيار ال process من ال ready queue
ولكن لو فرضنا ان هناك 1000 process تريد استخدام المعالج فهل تعتبر فكرة
جيدة ان يتم وضعهم في الذاكرة الرئيسية كلهم؟ طبعا لا , اولا لانها تعتبر
طريقة غبية وبعيدة عن حس التصميم الذي يعتمد على التقليل قدر المستطاع في
كل شيء , وثانيا لانه قد لا تتوفر ذاكرة رئيسية يمكنها ان تتحمل هذا القدر
الكبير من ال processes
ولذلك لو بحثنا في الحاسب الالي عن ذاكرة اخرى يكون حجمها كبير ويمكن ان
نحتفظ فيها بالبيانات فلا نجد الا الذاكرة الثانوية حيث ان حجمها كبير,
وبذلك نضع فيها كل ال processes الموجودة في نظام التشغيل والتي تحتاج
لاستخدام المعالج ويسمى هذا المكان الموجود في الذاكرة الثانوية بال job
queue .
حيث نظام التشغيل يختار منه مجموعة من ال processes ويضعها في ready queue
والتي تتعامل مباشرة مع الذاكرة الرئيسية وبذلك نظمن السرعة في جلب
المعلومات لانها موجودة في الذاكرة الرئيسية والتي هي اسرع بكثير من
الذاكرة الثانوية
هناك امر اخر يخص ال processes التي لها تعامل او تحتاج الى مدخلات فلو
كانت هناك 20 process تحتاج ال ادخال فأنه يستحسن ان يتم تجميعهم مع بعض
كما في حالة ال ready queue لان النظام هو اساس كل شيء , ويسمى المكان الذي
توجد فيه ال processes التي تنتظر المدخلات بال device queue .
والان هناك سؤال يتطرق الى الاذهان كيف يتم جلب ال process من job queue
ووضعها في الذاكرة الرئيسية ؟ الجواب هو عن طريق ما يعرف ب long term
scheduler ووظيفته جلب ال process من ال الذاكرة الثانوية ووضعها في
الذاكرة الرئيسية . وهنا سؤال اخر ما علا قة هذا بال ready queue ؟ الجواب
ان هذه ال process سيتم منحها المعالج لتقوم بعملياتها ولا يتم ذلك الا
بواسطة ready queue والذي يقوم بنقل ال process من الذاكرة الرئيسية الى ال
ready queue هو ما يعرف ب short term scheduler . ويمكن ان نلاحظ هنا ان
ال short term scheduler يجب ان يكون سريع و الاخر ليس من الضروري ان يكون
سريع لماذا؟ فكر فيها بمفردك .
وهناك سؤال اخر ربما يتطرق الى الاذهان اذا كانت كل process تستخدم المعالج
لفترة ثم ترجع الى حالة ready ثم تاتي ثانية على نفس شاكلتها والثالثة
والرابعة فكيف سيعرف نظام التشغيل من اين سيبدأ وما هو الذي سيستخدمه ؟
الجواب عن هذا هو باستخدام مايعرف ب context switch وكذلك بالاستفادة من
PCB الذي تعرفنا عليه في الدرس الماضي ويعرف المصطلح CONTEXT SWITCH على
انه تخزين الحالة الحالية للprocess 0 في pcb0 ومن ثم تحميل الحالة
التخزينية السابقة لل process 1 مثلا.
هناك حالة اخيرة لم نتكلم عنها في هذا الموضوع وهو في حالة حدوث مقاطعة لل
process ماذا سيحدث؟ طبعا سيتم اخذ المعالج منها لخدمة شيء ضروري جدا ,
تسمى هذه الحالة ب preemptive scheduling اي ان المعالج قد تم اخذه من ال
process > ظلما وعدوانا < وليس برغبة من ال process , هل يمكنك اذا
ان تعرف ما هو non-preemptive scheduling اتركك لترسل لنا الاجابة.
كيف يمكن ان تعرف ان برنامجك الذي يقوم بال scheduling هو ممتاز:
1- قدرته على جعل المعالج مشغول بتنفيذ العمليات اطول فترة ممكنة
2- كم عدد ال processes التي يمكنه ان يخدمها في ال time unit وهو وحدة سنستخدمها في الدرس القادم
3- الوقت الذي تبقى فيه في ال ready queue والذي يجب ان يكون قليل
4- الوقت الذي تستغرقه من بقائها في ال ready queue الى عودتها اليه
السلام عليكم
أخوكم في الله
عمرو العتباني
نظام التشغيل بصفة عامة هو عبارة عن وسيط بين مستخدم الحاسب الالي وبين
المكونات المادية للحاسب الالي , ووظيفته هو تمكين المستخدم من استخدام
كافة القدرات المتاحة في المكونات المادية بكفائة عالية ويسمى هذا بال
resource manager
, والوظيفة الاخرى هي جعل الحاسب الالي مريح وسهل الاستعمالvirtual machine.
يمكن اعتبار انظمة التشغيل كأنها حكومة < مع الفرق طبعا> حيث انها
توفر البيئة التي يمكن لجميع الشركات والهيئات ان تعمل فيها وفق قوانينها
ويمكن اعتبار هذه الشركات هي البرامج والتطبيقات.
بعض انواع انظمة التشغيل:
batch operating system:
وهو من اقدم انظمة التشغيل حيث كان يتعامل مع الاجهزة الضخمة mainframes
وكانت وظيفة مستخدم هذا النظام لاتتعدى ان يدخل البيانات الى الحاسب ثم
يقوم نظام التشغيل بعملية تنظيم ,حيث العمليات التي تحتاج الى اولوية عالية
يتم تنفيذها مع بعض وذلك لزيادة سرعة الحسابات , ومن ثم تخرج النتائج ربما
بعد يوم او شهر .
multiprograamed O/S:وهذا النظام ظهر نتيجة الحاجة لاستخدام الحاسب من قبل
اكثر برنامج واحد , وعند استخدام الشخص للحاسب الالي فأنه قد يعمل اشياء
تحتاج الى مدخلات , فليس من المعقول ان يبقى الحاسب ينتظر في ان يدخل الشخص
المدخل وخاصة اذا كان الشخص غير موجود فتبقى العمليات التالية في حالة
انتظار وتسمى حالة المعالج عندما ينتظر في مدخل من المستخدم ب IDLE اي
ينتظر.
ولذلك فأذا كان البرنامج يحتاج الى مدخلات فأنه يتحول الى برنامج أخر ثم
التالي ثم التالي الى ان تدخل المدخلات وبهذا يكون قد شغل اكثر من عملية في
وقت واحد CONCURRENCY
وتحفظ العمليات التي سيتم معالجتها في مكان يسمى ال JOB POOL وهي العمليات التي تنتظر ان تأخذ الى الذاكرة ليتم بعدها معالجتها
time-sharing O/S:
وهو نظام تشغيل يمكن ان يصنف مع الانظمة السابقة غير انه يخدم عدة مستخدمين
في وقت واحد وذلك بأن يعطي لكل مستخدم زمن معين لتنفيذ برامجه وهذا الزمن
صغير بحيث لايحس به المستخدمون .
multi-processor O/S:
وهي من اسمها انظمة تدعم وجود اكثر من معالج في نفس الوقت ويكون لهم نفس الذاكرة والناقلbus .
يوجد ما يسمى بمصطلح SMP or symmetric multiprocessor وفيه ان كل معالج
يمتلك نسخة من نظام التشغيل ويمكن التخاطب بين المعالجات بطريقة معينة
وكذلك مصطلح asymmetric multiprocessor حيث يوجد معالج رئيسي يمتلك نسخة من
نظام التشغيل والمعالجات الاخرى تنتظر في اوامر من المعالج الرئيسي
لتنفيذها >كما في حالة الprocessor و ال co-processor < ومن ميزات
هذا النظام السرعة حيث يوجد اكثر من معالج ولكن السرعة مثلا في حالة 3
معالجات لاتكون ثلاثة اضعاف بل اقل , الميزة الثانية هي في حالة توقف
المعالج لسبب او لاخر فأنه يوجد من يعوظه من المعالجات الاخرى , والميزة
الثالثة الاقتصاد حيث انهم يشتركون في الذاكرة وفي كل شيء تقريبا
real time O/S:
وهي انظمة تتعامل مع الاشياء التي تحتاج الى دقة كبيرة وسرعة عالية اي ان
جميع المتغيرات المعرفة فيها ثابتة ولا يمكن تجاوزها بأي حال واذا تم
تجاوزها فأن جميع النتائج ستكون خاطئة حيث تستخدم مثلا في صناعة الروبوتات
وفي القياسات البيولوجية والفضائية , ويوجد لها نوعان اولهما HARD
REAL-TIME وفيه يتم اخذ جميع الحسابات التي يمكن ان تفكر فيها حتى زمن وصول
المعلومات الى الذاكرة وتأثير الحرارة مثلا على الزمن وغيرها من ادق
التفاصيل كزمن جلب BIT مثلا
النوع الثاني SOFT REAL-TIME وهي تهتم بالوقت الذي له علاقة بتجديد البيانات واخذ القراءات ولاتهتم بتفاصيل الزمن .
وهناك انواع اخرى لانظمة التشغيل للذي يحب الاطلاع
desktop o/s
distributed o/s
clustered systems
handheld systems
ما هي اهم الوظيفة التي يقوم بها نظام التشغيل كل وقت؟
ما يقوم به نظام التشغيل هو تنظيم تنفيذ العمليات التي يقوم بها المستخدم
مع الاخرى الخاصة بنظام التشغيل وتسمى هذه العمليات بال process
ونتيجة لل multi programming التي تحدثنا عنها حيث عدة عمليات تنفذ في وقت
واحد فأنه اذا لم يقوم نظام التشغيل بترتيب وتنظيم تعامل هذه العمليات مع
معطيات نظام التشغيل فأنه سيحدث تداخل ولخبطة وضياع للمعلومات
Process:
يمكنك تخيل ال process وكأنك اخذت صورة للحظة داخل المعالج فماذا سترى؟
سيكون في تلك اللحظة هناك برنامج تحت المعالجة وجميع ما يتبعه من العداد
program counter , والملفات ومحتويات الذاكرة وغيرها من المحتويات , اي
اننا نستطيع ان نعتبر ال process جزء من البرنامج program او انها البرنامج
في حالة التنفيذ.
فأذا تتبعنا هذه ال process في مراحلها اثناء التنفيذ بوضع مراقبين ورجال
امن حولها فأننا سنراها في خمس حالات نستطيع التفكير فيها مع بعض
اولا قبل كل شيء هل كانت هذه ال process موجودة, طبعا لا اذا اول المراحل هي تكوين هذه ال process
ثانيا بعد ان تكونت هذه ال process ماذا يمكن ان تفعل هل ستنام وترقد ,
طبعا لا ولكنها ستبقى جاهزة وبأنتظار ان يسمح نظام التشغيل ببدء معالجتها
عن طريق السماح لها بدخول المعالج وبدء حساباتها ثالثا لنفترض ان نظام
التشغيل سمح لها ببدء المعالجة فستبدأ هذه ال process ببدء استخدام المعالج
لتنفيذ عملياتها ولاحظ هنا ان المعالج ينفذ process واحدة في كل مرة ,
رابعا ربما هذه ال process تحتاج الى مدخلات فلذلك لا يمكن تركها في
المعالج لتأخذ وقت الغير بل سيتم وضعها في قائمة الانتظار وبعد ان تدخل
المدخلات اليها لايمكن لنظام التشغيل ان يعيدها مباشرة لتأخذ المعالج ولكن
حيث انها اخذت مدخلاتها فيمكن ان تعتبرها انها جاهزة لاستخدام المعالج
فترجع الى الحالة الثانية واحيانا قد يحدث امر طاريء يستدعي اخراج هذه ال
process حالا من المعالج و كما في حالات المقاطعة interrupt التي تحدث
للمعالج فيمكن اعتبار ال process في هذه الحالة ايضا انها مازالت مستعدة
وتريد استخدام المعالج فتوضع في الحالة الثانية , خامسا بعد ان مرت ال
process بكل هذه المراحل لم يبقى لها بعد ان انتهت من استخدام المعالج في
تنفيذ عملياتها الا ان تقول اني انتهيت .
يمكن تلخيص المراحل السابقة بالاتي:
1- الانشاء new : ال process قيد التكوين
2- جاهزة: ready : جاهزة لاستخدام المعالج
3- تشتغل: running : ال process تستخدم المعالج
4- تنتظر: waiting : تنتظر ادخال مدخلات
5- انتهت : terminated : ال process اكملت عمليتها وتخلت عن المعالج طواعية
كيف يرى نظام التشغيل ال process بطريقة اكبر واشمل :
يتم ذلك بما يسمى كتلة التحكم بال process او process control block [ PCB ]
حيث ان لكل process , pcb خاص بها حيث يرى نظام التشغيل منها الفروقات بين
كل process وأخرى وهي تحتوي بصفة عامة على مراحل ال process وقد تحدثنا
عنها , محتويات program counter والتي سيحدد منها عنوان العملية التالية ,
محتويات المراكم ويمكن من خلالها ان يعرف نظام التشغيل اين توقفت العملية
في حالة حدوث مقاطعة ويستطيع بعدها اكمال العملية , وكذلك يحتوي العديد من
المعلومات حول الذاكرة واجهزة الدخل و الخرج التي تتعامل معها.
مفهوم ال thread:
يمكن ان تفهمه على انه يبين كم هناك عملية تنفذ في نفس الوقت فمثلا لو انك
فتحت برنامج maya فتعتبر انك تنفذ thread واذا اضفت له vc++ فأنك تنفذ
multithread حاول ان تعرف علاقة هذا بال process
ما هو المقصود بال scheduling ؟
قبل ان نبدأ في التحدث عن هذا المعنى نتطرق الى شيء يشد الانتباه في الدرس الماضي.
لو تخيلنا ان هناك process اخذت تتجه الى حالة ready ثم اتت بعدها process
اخرى وثالثة ورابعة , افليس من المنطقي ان تكون هناك طريقة لظمهم في مكان
واحد في ترتيب ونظام بحيث لا يبقى المكان وكأنه سوق , ولذلك تم تهيئة مكان
لهذه ال processes تسمى ال queue ويسمى المكان الذي توجد فيه هذه ال
processes التي هي جاهزة لاخذ المعالج بال ready queue .
بمجرد فهمنا لهذا المعنى يتطرق معنى اخر وهو لو فرضنا ان هناك 20 process في ready queue فيا ترى اي منها سيتم اعطائها للمعالج؟
هذا هو ما يسمى ال scheduling اي هو طريقة لاختيار ال process من ال ready queue
ولكن لو فرضنا ان هناك 1000 process تريد استخدام المعالج فهل تعتبر فكرة
جيدة ان يتم وضعهم في الذاكرة الرئيسية كلهم؟ طبعا لا , اولا لانها تعتبر
طريقة غبية وبعيدة عن حس التصميم الذي يعتمد على التقليل قدر المستطاع في
كل شيء , وثانيا لانه قد لا تتوفر ذاكرة رئيسية يمكنها ان تتحمل هذا القدر
الكبير من ال processes
ولذلك لو بحثنا في الحاسب الالي عن ذاكرة اخرى يكون حجمها كبير ويمكن ان
نحتفظ فيها بالبيانات فلا نجد الا الذاكرة الثانوية حيث ان حجمها كبير,
وبذلك نضع فيها كل ال processes الموجودة في نظام التشغيل والتي تحتاج
لاستخدام المعالج ويسمى هذا المكان الموجود في الذاكرة الثانوية بال job
queue .
حيث نظام التشغيل يختار منه مجموعة من ال processes ويضعها في ready queue
والتي تتعامل مباشرة مع الذاكرة الرئيسية وبذلك نظمن السرعة في جلب
المعلومات لانها موجودة في الذاكرة الرئيسية والتي هي اسرع بكثير من
الذاكرة الثانوية
هناك امر اخر يخص ال processes التي لها تعامل او تحتاج الى مدخلات فلو
كانت هناك 20 process تحتاج ال ادخال فأنه يستحسن ان يتم تجميعهم مع بعض
كما في حالة ال ready queue لان النظام هو اساس كل شيء , ويسمى المكان الذي
توجد فيه ال processes التي تنتظر المدخلات بال device queue .
والان هناك سؤال يتطرق الى الاذهان كيف يتم جلب ال process من job queue
ووضعها في الذاكرة الرئيسية ؟ الجواب هو عن طريق ما يعرف ب long term
scheduler ووظيفته جلب ال process من ال الذاكرة الثانوية ووضعها في
الذاكرة الرئيسية . وهنا سؤال اخر ما علا قة هذا بال ready queue ؟ الجواب
ان هذه ال process سيتم منحها المعالج لتقوم بعملياتها ولا يتم ذلك الا
بواسطة ready queue والذي يقوم بنقل ال process من الذاكرة الرئيسية الى ال
ready queue هو ما يعرف ب short term scheduler . ويمكن ان نلاحظ هنا ان
ال short term scheduler يجب ان يكون سريع و الاخر ليس من الضروري ان يكون
سريع لماذا؟ فكر فيها بمفردك .
وهناك سؤال اخر ربما يتطرق الى الاذهان اذا كانت كل process تستخدم المعالج
لفترة ثم ترجع الى حالة ready ثم تاتي ثانية على نفس شاكلتها والثالثة
والرابعة فكيف سيعرف نظام التشغيل من اين سيبدأ وما هو الذي سيستخدمه ؟
الجواب عن هذا هو باستخدام مايعرف ب context switch وكذلك بالاستفادة من
PCB الذي تعرفنا عليه في الدرس الماضي ويعرف المصطلح CONTEXT SWITCH على
انه تخزين الحالة الحالية للprocess 0 في pcb0 ومن ثم تحميل الحالة
التخزينية السابقة لل process 1 مثلا.
هناك حالة اخيرة لم نتكلم عنها في هذا الموضوع وهو في حالة حدوث مقاطعة لل
process ماذا سيحدث؟ طبعا سيتم اخذ المعالج منها لخدمة شيء ضروري جدا ,
تسمى هذه الحالة ب preemptive scheduling اي ان المعالج قد تم اخذه من ال
process > ظلما وعدوانا < وليس برغبة من ال process , هل يمكنك اذا
ان تعرف ما هو non-preemptive scheduling اتركك لترسل لنا الاجابة.
كيف يمكن ان تعرف ان برنامجك الذي يقوم بال scheduling هو ممتاز:
1- قدرته على جعل المعالج مشغول بتنفيذ العمليات اطول فترة ممكنة
2- كم عدد ال processes التي يمكنه ان يخدمها في ال time unit وهو وحدة سنستخدمها في الدرس القادم
3- الوقت الذي تبقى فيه في ال ready queue والذي يجب ان يكون قليل
4- الوقت الذي تستغرقه من بقائها في ال ready queue الى عودتها اليه
السلام عليكم
أخوكم في الله
عمرو العتباني
3mr Al3atabany- عدد المساهمات : 57
تاريخ التسجيل : 09/06/2011
العمر : 28
مواضيع مماثلة
» نظام التشغيل Dos 6.0 - 6.2
» المرجع الشامل لنظام التشغيل DOS
» إستخدام نظام تشغيل حاسبات ماكنتوش الجزء 01
» إستخدام نظام تشغيل حاسبات ماكنتوش الجزء 02
» إستخدام نظام تشغيل حاسبات ماكنتوش الجزء 03
» المرجع الشامل لنظام التشغيل DOS
» إستخدام نظام تشغيل حاسبات ماكنتوش الجزء 01
» إستخدام نظام تشغيل حاسبات ماكنتوش الجزء 02
» إستخدام نظام تشغيل حاسبات ماكنتوش الجزء 03
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى