إخواني الأحباء..
أنا الآن بصدد شرح كتاب modern operating system لل مؤلف Tanenbum
وقد دخلت إلى حد ما في فصل process .
فمن يريد أن يدخل معي في الشرح لكي نساعد بعضنا .
إخواني الأحباء..
أنا الآن بصدد شرح كتاب modern operating system لل مؤلف Tanenbum
وقد دخلت إلى حد ما في فصل process .
فمن يريد أن يدخل معي في الشرح لكي نساعد بعضنا .
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
ممكن انا اساعدك يا اخي بس بأوعدك انه راح اكون على مقدرة من اني اشتغل يوم لاخميس والجمعة من كل اسبوع فضلا عن الإجازات طبعا حشتغل فيها .
نموت وتحيا ...................فلسطين .
تمام.
هذا بريدي لكي نتواصل
cpp_gtkmm@hotmail.com
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
أخي الكريم انا جاهز تماما لأي إضافة ولكن ليس بخصوص هذا الكتاب بل بخصوص الموضوع المطروح مثلا قمتم بالتساؤل او الإفادة عن موضوع المعالجة وانواعها فأنا جاهز للدخزل وحياكم الله
وانا ايضا اريد ان اشارك معك و قد اشتريت الكتاب بالفعل
ENG.ABDO.FCI@GMAIL.COM
ENG_ABDO_FCI@YAHOO.COM
ارجو ان نتواصل معاً
السلام عليكم
متى نبدأ النقاش فى هذا الموضوع
الا يوجد ردود :(
اخوانى ..ارجوا التفاعل مع الموضوع
اقتباسإخواني الأحباء..أنا الآن بصدد شرح كتاب modern operating system لل مؤلف Tanenbum
وقد دخلت إلى حد ما في فصل process .
فمن يريد أن يدخل معي في الشرح لكي نساعد بعضنا .
اين هذا الكلام <_< ...اخى برق اعرف انك تتفاعل مع معظم الموضوعات فى المنتدى
ولكنى اتعجب من عدم تفاعل الاعضاء مع هذا الموضوع :unsure:
ارجو من المشرفين الغاء هذاالموضوع او اغلاقه
لانه من الواضح انه ليس هناك من يتقبله وشكراً
عندى سؤال
يا ترى انا هفضل اكلم نفسى كده كتيييييييييييير :( :( :( :( :( :( :( :( :( :( <_< <_< <_< :s :s :s :s
هل من الممكن الحصول علي وصلة لتنزيل هذا الكتاب؟؟
وجزاكم الله خيرا
يااااااااااه اخيـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــراً
اقتباسوهذا رابط الكتابOSystem
شكراً يا اخى على الرابط
ونتمنى بدء العمل سريعاً
فيه أيه يا جماعه
كتاب modern operating system من أهم الكتب
و أحنا مستنيين الشرح بفارغ الصبر
فأبتدوا فيه حتى لو حاجه بسيطه
لا تراجع و لا إستسلام
ايه الاخبار ياجماعة احنا مستنيين
يا اخ برق ...انت مشغول اليومين دول ولا حاجه؟
ولو حضرتك مشغول يا ريت اى حد تانى من الاعضاء يبدأ...او نرتب نفسنا ونبدأ نذاكر احنا
انا مستوى كويس فى الانجليزية و جارى تحميل الكتاب الان وساقوم بشرح اجزاء بسيطة ولكن اظن انى احتاج مساعدة من الاعضاء
فى ذاللك
من سيبداء معى
تم تعديل هذه المشاركة بواسطة hamada hassan ali في 5 أغسطس 2005 في 04:15
_____________________________
C Language && Windwos_API
_____________________________
وانا معاك ....ايه رايك نبدأ فى الفصل الاول او الثانى؟
أنا آسف جدا لتأخري عليكم.
كنتم فين من زمان.
المهم.........
أنا كنت قد قطعت شوطا لا بأس به في هذا المجال ، ثم حددت هدفي فيه وأنا في طريقي للتخصص فيه إن شاء الله.
بمعنى
اكتشفت أنه (ليس سهلا) أن تتخصص في نظام التشغيل في أكثر من موضوع ، وقد يكون سهلا ، ولكن يجب أن تبدأ بموضوع وتتقنه فإذا شعرت أنك وصلت إلى مرحلة الخبير انتقل إلى ما بعده وهكذا.
على العموم سأتابعكم ، ولكن ليس بصورة مستمرة لأني هذه الأيام مشغول بدورة شبكات و دروس البرمجة في اللينوكس .
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
اقتباسأنا آسف جدا لتأخري عليكم.كنتم فين من زمان.
المهم.........
أنا كنت قد قطعت شوطا لا بأس به في هذا المجال ، ثم حددت هدفي فيه وأنا في طريقي للتخصص فيه إن شاء الله.
بمعنى
اكتشفت أنه (ليس سهلا) أن تتخصص في نظام التشغيل في أكثر من موضوع ، وقد يكون سهلا ، ولكن يجب أن تبدأ بموضوع وتتقنه فإذا شعرت أنك وصلت إلى مرحلة الخبير انتقل إلى ما بعده وهكذا.
على العموم سأتابعكم ، ولكن ليس بصورة مستمرة لأني هذه الأيام مشغول بدورة شبكات و دروس البرمجة في اللينوكس .
ماشى الكلام يا اخ برق ...احنا ان شاء الله هنعتمد على نفسنا ونبدأ قريب
بس خليك معانا عشان لو حصل اى اخطاء ...و يا ريت اضافات منك
طيب يا اخ حماده انا بدأت فى الكتاب وتقريبأ هانتهى من الفصل الأول بس هاكتب جزء بسيط منه :( لان
الظروف مش مساعدانى(مذنوق فى الدورات وكمان ان باكلمكم من مركز نت )
توكلنا على الله :rolleyes:
MODERN OPERATING SYSTEMS
Second Idition
For the author
Andrew Tanenbaum
السلام عليكم ورحمة الله وبركاته...
كعادتى عند قراءة اى كتاب فأن اول جزء انظر اليه وابحث عنه هو
about the author ولكننى فوجئت بأننى لم اجد هذا الجزء فى بداية الكتاب وبحثت عنه فوجدته فى اخر صفحه بالكتاب (لا اعرف اذا كان هذا عيب فى النسخ الغير مرخصه ام لا ) ولكنى ادعوكم ان تقرأوا هذا الجزء فقد قام هذا الرجل بانجازات قيمه فى علوم الحاسب (خاصة نظم التشغيل والمترجمات)
(operating systems and compilers)
كى لا اطيل عليكم اريد ان نبدأ فى شرح الكتاب
الفصل الاول وهو عباره عن مقدمه
اجهزة الحاسبات الحديثه تحتوى على اكثر من معالج وذاكره للتخزين المؤقت و عدة اقراص تخزين وطابعه وغيره
وجميعها توجد فى نظام معقد التركيب ...وكتابة البرنامج الذى يقوم بالتحكم فى كل هذه الاجزاء هى مهمه غايه فى الصعوبه ...ومن ثم بدأ التفكير فى عمل نظام التشغيل و وظيفته الرئيسيه هى التحكم فى كل هذه الاجزاء وتوفير واجهه بسيطه للمستخدم
وضع نظام التشغيل بالنسبه للحاسب Placement of Operating System
نظام الحاسب يتكون من عدة اجزاء تتكامل مع بعضها لاداء الغرض المطلوب ترتيبها كما ياتى من الاسفل لاعلى
(اى من الاجزاء الداخليه الى البرامج الظاهره للمستخدم)
اولاً: العتاد
Hardware
ويتكون من مستويان:
الجزء الاول:Physical devices
وهو عباره عن مجموعه من الدوائر المتكامله و الاسلاك و مولدات الطاقه وانابيب الكاثود وهى تخص المهندس الكهربى
الجزء الثانى:Microarchitecture
وهى غالباً ما تحتوى على مجموعه من المسجلات (registers ) التى توجد داخل المعالج cpu وايضأ تحتوى على ال data bus ---> و الغرض منها تنفيذ بعض العمليات والتى يمكن ان تستغرق لفه واحده one cycle او اكثر وهذه التعليمات يمكنها استخدام المسجلات
كلاً من التعليمات وال hardware يتعامل معهم مبرمج لغة الاسمبلى assembly عن طريق ما يسمى بال
ISA(instructio set architecture)
وفى هذا المستوى يتم التحكم فى اجهزة الادخال والاخراج عن طريق تحميل بعض القيم فى ال registers
فعلى سبيل المثال يمكن التحكم فى floppy disk عن طريق تحميل الdesk address & memory address وغيرها من القيم فى registers الخاصه به وفى الناحيه العمليه نحتاج الى قدر اكثر من هذه المعلومات كما ان التوقيت يلعب دور مهم
ولاخفاء كل هذا التعقيد تم تصميم -------> "نظام التشغيل"
ثانياً:operating system
وياتى بعد ذلك فى الترتيب نظام التشغيل ثم البرامج التطبيقيه والتى لا تعتبر جزء من النظام
.......ولان نظام التشغيل يعمل فى kernel mode or supervisor mode فهو محمى من المستخدم عن طريق ال hardware (بغض النظر عن المعالجات القديمه التى لا توفر اى نوع من الحمايه)
هناك بعض الانظمه لا تعمل فى ال kernel mode مثل ال embedded systems
و ال interpreted systems
.......وهناك بعض البرامج التى تعمل فى ال user mode ولكنها تساعد النظام فى اداء مهام خاصه به مثل البرامج التى تقوم بالتحكم فى كلمات المرورpass word
ولكن السؤال الان
ما هو نظام التشغيل؟
كثير من المستخدمين لاجهزة الحاسبات لديهم خبره فى التعامل مع نظم التشغيل ولكن القليل يعرف ماهية نظم التشغيل وذلك لان نظام التشغيل يقوم بوظيفتين غير مترابطتين وهما
Operating systems as an extended machine
فهو بالفعل آله ممتده (اى امتداد للاله الطبيعيه "الميكانيكيه") ويمكنك ان تلاحظ هذه العمليه خلال تعاملك مع نظامك فانت عندما تتعامل مع النظام تتعامل معه كآله اخرى (او كآله ممتده) بغض النظر عن النظام الرئيسى للحاسب
مثلاً عندما تقوم بوضع ملف على ال floppy disk فانت تهتم فقط بنسخ الملف وفتح الfloppy disk والذى غالباً ما يمثل ب"ايقونه" وبعد ذلك تقوم بلصق الملف ....إذن فأنت فى هذه الحاله لا تضع فى الاعتبار تحريك مؤشر الكتابه head على القرص وتحديد المساحه الخاليه للكتابه فيها وتحديد الاتجاه (قراءه او كتابه ) وغير ذلك من التعقيد ....(و الكاتب يوفر فى كتابه مثال يوضح الفكره بطريقه رائعه)
Operating systems as resource manager
لكى تعرف اهمية نظام التشغيل فى هذه النقطه ...لك ان تتخيل ان ثلاته برامج يعملوا معاً فى نفس الوقت وكل منهم يقوم باستخدام الطابعه فى اخراج البيانات ....تخيل هيئة الورقه المطبوعه التى تحتوى على عدة اسطر من كل برنامج ...ولذلك ياتى دور نظام التشغيل كمنظم للموارد مثل الذاكره والاجهزه المختلفه
......يعرض الكاتب بعد ذلك تاريخ نظام التشغيل تبعاً لتطور هيئة واستخدام الحاسبات فى ازمنه مختلفه
..ولن اقوم بالتحدث عن هذا الجزء لانى اريدكم ان تقرأوه بعنايه
تصنيف نظم التشغيل :-
يمكن تصنيف نظم التشغيل طبقاً للتالى
Mainframe operaing system
وهى حاسبات عملاقه فى حجم الغرف وتستخدم فى مراكز بيانات بعض الشركات حتى الان واختلافها عن الحاسبات الشخصيه فى السعه التخزينيهthousands of gigabytes واجهزة الادخال والاخراج
وفى بعض الاحيان تستخدم ك web servers
وانظمة التشغيل الخاصه بهذه الاجهزه توفر ثلاث خدمات
Batch
وهى معالجة البيانات بدون اى تفاعل او تدخل من المستخدم
Transaction processing
ويناول التعامل مع عدد ضخم جداً من الوظائف والمهام الصغيره مثل airline reservation
Time sharing
يسمح لعدد كبير من المستخدمين باستخدام جهاز واحد فى نفس الوقت
ومن امثلة هذه الانظمه os/360
Server operating systems
وهو مستوى اقل من السابق وغالباً ما يستخدم كا internet provider
ومن امثلة نظم التشغيل الخاصه به unix, win2000,linux
Multiprocessor operating systems
Personal operaing systems
Windows, macintosh ,linux
Real-time operating systems
الوقت يعتبر عنصر مفتاحى هام فى هذا النوع من الانظمه وغالبأ ما يستخدم فى التحكم الصناعى فى المؤسسات الصناعيه
من امثلة هذه الانظمه
QNX,VX works
Embedded operating systems
غالباً ما تستخدم مع الاجهزه التى غى حجم الجيب (اجهزة الجيب والحاسبات الكفيه)
من امثلة هذه الانظمه
PalmOS , windows CE
Smart card operating systems
فى حجم الكروت الصغيره
معذره فلا استطيع الاطاله اكثر من ذلك...ارجو ان تسامحونى
وانتظر ردودكم على الموضوع
وهذا الرابط سيساعدكم فى فهم الفصل الاول ..فهو يحتوى على تبسيط له
ايه دا يا جماعه ...انا كنت مشغول اليومين اللى فاتوا وما دخلتش نت بقالى فتره
وتوقعت انى لما ادخل تانى على المنتدى الاقى الموضوع تقدم شويه
لكن مفيش تفاعل خالص ....ليه كده
طب على العموم احنا بدأنا فى حاجه ولازم نبقى قد كلامنا و نكملها بإذن الله
ان هكمل الفصل فى الفصل الاول بس ياريت الاقى تفاعل مع الموضوع
:rolleyes: توكلنا على الله
انهارده هنتطرق لموضوع hardware او عتاد الحاسب
لان نظام التشغيل يتعامل مباشرة مع عتاد الحاسب hardware
فكان من المطلوب عند التطرق لدراسة نظم التشغيل التعرف على الهاردوير الى حد كبير مثل التعامل مع
cpu,memory ,io,system buses
اولاً: المعالجات
تقوم بتنفيذ جميع العمليات على 3 خطوات ..
fetch-->decode-->execute
اى يقوم اولا باحضار البيانات من الذاكره وبعد ذلك يقوم بفك تشفيرها لتحديد نوع التعليمه ثم يقوم بالتنفيذ بعد ذلك ..يحدث هذا مع كل عمليه الى ان يتم تنفيذ البرنامج بالكامل
ولكل معالج instruction set
اى مجموعة التعليمات الخاصه به ولا يمكن لمعالج ان ينفذ التعليمات الخاصه بمعالج اخر
فلا يمكن لمعالج من نوع sparc
ان ينفذ التعليمات الخاصه بعالج بنتيوم
(ولكن بعض معالجات انتل بينها تشابه)
المعالج يقوم باحضار البيانات من الذاكره وذلك يستغرق وقت طويل نسبياً فاضطر مصمموا المعالجات الى تصميم ما يسمى
registers
وهى موجوده داخل المعالج وتتعامل مع البيانات المؤقته اثناء تنفيذ المعالجات ولها مهام اخرى كثيره ويمكن برمجته الحاسب عن طريق تحميل بعض القيم ونقلها بينها واعتقد ان مبرمجى لغة الاسمبلى لهم خبره فى مثل هذه الامور
حيث ان ال
instruction set
تتعامل بصوره اساسيه مع ال
registers
وواحد من
registers
يسمى ال
program counter
وهو مسئول عن تحيد المكان التعليمه التاليه فى التنفيذ فى الذاكره ويتم تحيث القيمه التى به بعد تنفيذ كل تعليمه
فى اى وقت عند ايقاف برنامج ما معين والتبديل لاخر يجب ان يتم حفظ كل القيم الموجوده فى المسجلات
سنتحدث الان عن تقنيه تسمى ال
pipeline
ساهمت فى التطوير كثيراً فى تنفيذ التعليمات داخل المعالج وقد قلنا سابقاً ان المعالج يقوم بثلاث عمليات متتاليه لتنفيذ اى تعليمه ...التنقيه المذكروه تسمح بتقسيم الثلاث مراحل كل فى وحده خاصه به وبذلك يمكن احضار تعليمه وفى نفس الوقت تنفيذ تعليمه اخرى اى انه يجعل المعالج اشبه بخط انتاج فى مصنع ما
ورغم ان التقينه جيده الا انها لها مساوئ ايضاً
لا داعى لذكرها الان وبالطبع تتطلب تعقيداً اكثر فى تصميم نظام التشغيل المتحكم بها
وظهر تقنيه اخرى تسمى
super scalar cpu
والتى تسمح بوجود اكثر من وحده فى كل من المراحل السابقه حيث تقوم وحدات الاحضار
fetch
بتسليم البيانات لوحدات decoding
المرتبطه بها والتى بدورها تضعها فى ذكره مؤقته
buffer
وتتعامل اكثر من وحده للتنفيذ مع هذه الذاكره وبالطبع التقنيه ايضاً تتطلب تعقيد اكثر فى تصميم نظام التشغيل
معظم الانظمه لديها طرازان يتم التفيذ فيهما
user mode,kernel mode
الkernel mode
يسمح بالوصول المباشر للهاردوير ويتيح تقريباً كل الخدمات اللازمه وهذا الطراز يستخدمه نظام التشغيل
اما الاخر فهو خاص بالمستخدم والوصول الى الخدمات فيه محدود الى حد ما وتقريباً لا يدعم التعامل مباشرة مع الهاردوير
حيث ان معظم التعامل مع اجهزة الادخال والاخراج وكذلك التعامل مع الذاكره وطرق حمايتها يتم عن طريق ال
kernel mode
يتم التعرف على عملية التنفيذ اذا كانت فى احد الطرازين عن طريق مسجل فى المعالج يسمى
PSW(program status word)
فهو يحتوى على قيمه مفتاحيه تحدد نوع الطراز وهذه القيمه محميه ولا يمكن التغيير فيها
ولكن السؤال الان ....ماذا لو اراد المستخدم ان يصل الى بعض هذه الخدمات الغير مدعمه للوصول المباشر اليها؟
وهذا ادى الى ظهور ما يسمى
system call
وهى اجراءات يوفرها نظام التشغيل لاداء مثل هذه الوظائف ...حيث يقوم المستخدم باستدعائها وارسال بعض البارمترات اليها
ثم يقوم النظام بعد ذلك بتنفيذها فى ال
kernel mode
دون تدخل من المستخدم وبعد تنفيذها يعيد التحكم الى المستخدم مره ثانيه
ثانياً:الذاكره و اجهزة التخزين
الذاكره الرئيسيه كما عرفنا من قبل يمكن ان يتم تحميل البرامج بها اثناء التنفيذ وهى ذاكره متطايره (اى تفقد محتوياتها بانقطاع التيار الكهربى) واهميتها غنيه عن الذكر ولكننا سنركز قليلاً الان على الذاكره المخبئيه كما تسميها بعض الكتب العربيه
الغير منتشره
cache memory
والتى غالباً ما يتم التحكم فيها عن طريق الهاردوير دون تدخل من المستخدم وسنجد ان هناك ارتباط بين الذاكره الرئيسيه والمخبئيه يوضح اهمية الذاكره المخبئيه
حيث ان الذاكره الرئيسيه مقسمه الى عدة اجزاء (كل جزء يحتوى على 64 بت)
فمثلاُ
0-->63=cache line0
64-->127=cache line1
وهكذا
واثناء التعامل مع الذاكره الرئييسيه يلاحظ ان هناك بعض ال
cache lines
تستخدم بطريقه اكثر من غيرها ومن ثم يقوم العتاد بحفظ محتوياتها فى الذاكره المخبئيه وذلك لانها اسرع واقرب من المعالج وستوفر فى وقت التنفيذ
وعندما يحتاج البرنامج لقراءة قيمة ما من الذاكره الرئيسيه فانها يبحث عنها اولاً فى الذاكره المخبئية فاذا وجدها يحدث ما يسمى
cache hit
ومن ثم نقوم بنقل القيم من الذاكره المخبئيه بدلاً من الرئيسيه فى هذه الحاله
وغالباً ما يتغرق التعامل مع الذاكره المخبئيه الى دوتين فقط من المعالج
2cycles
ولكن هذه الذاكره محدودة الحجم نظراً لارتفاع سعرها..وفى معظم الاجهزه الحيثه يتوفر مستويان او اكثر منها كل مستوى اكبر وابطئ من الذى قبله
القرص الصلب
hard disk
وسرعته اقل من حيث الوصول الى البيانات وهذا يرجع الى ان القرص الصلب فى حقيقة الامر عباره عن جهاز ميكانيكى
ويتكون من
metal platters
شبه اقراص دائريه قد تصل سرعتها الى 10800 دوره فى الثانيه او اكثر وهناك
arms(heads)
تقوم بتخزين او استخراج البيانات من على سطح هذه الاقراص و ينقسم كل قرص منهم الى مسارات وقطاعات وكل قطاع 512 بايت
(ارجو البحث فى هذا الموضوع منكم حيث انه يحتاج الى بعض المجهود منكم لفهمه بسهوله)
فى الاجهزه الحيثه تحتوى المسارات الخارجيه على قطاعات اكثر من الداخليه وانتقال ذراع (رأس) القراءه والكتابه من مسار لاخر يستغرق 1 مللى ثانيه بينما ينتظر الذراع بعد ذلك دوران
القرص حت يصل الى القطاع المطلوب ويستغرق ذلك حوالى من 5 الى 10 مللى ثانيه
ذاكرة التخزين الدائم
ROM
تبرمج بواسطة الشركه المصنعه ولا تفقد محتوياتها ولا يمكن حتى تغيير البرنامج الخاص بها بعد ذلك
EEPROM & FLASH-ROM
نوع اخر من الذاكره ROM
ولكن يمكن الغائه او اعادتة برمجته
CMOS
يمكن برمجته حديثاً ويستخدم فى حفظ الاعدادت الخاصه بالجهاز ومتعلق بعملية الاقلاع الى حد كبير
ارجوا ان تسترخوا قليلاً وتستعيدوا نشاطكم لان الجزء القادم ليس سهلاً
ولكن دعنا الان نسترجع معلوماتنا عن الذاكره الرئيسيه وننوه الى بعض المشاكل التى ستواجهنا اثناء التعامل مع البرامج المحمله بها
....لنفرض ان لدينا برنامجان موجودان بالذاكره ...ستظهر لى مشكلتان يجب وضعهما فى الاعتبار
اولاً: كيف يتم حماية البرامج من التداخل بعضها مع بعض اى ان البرنامج لا يعدل فى محتويات الاخر فى الذاكره عن طريق الخطأ وكيف يتم حماية الكرنل منهما
ثانياً: كيف يتم التعامل مع عمليةrelocation (اعادة التحميل وتحديد عناوين البرنامج الجديده فى الذاكره)
المشكله الاولى واضحه باذن الله ولكن الجزء الثانى ربما يكون غير مفهوم لدى بعض الاعضاء
وحقيقة الامر ان الكومبايلر واللينكر الذان قاما بتوليد البرنامج لاول مره يفترضان ان البرنامج سيكون موضوعاً بداية من العنوان صفر0 فى الذاكره لنفرض ان البرنامج يقوم باحضار تعليمه من العنوان 10000 ويقوم بجمعها مع رقم ما علمأ بان العنوان 10000 ضمن اجزاء البرنامج
ولكن عند اعادة تحميل البرنامج من القرص الصلب ربما يكون العنوان 0 مشغولاً ببعض البيانات (غالباً ما يكون محتويات النظام فى هذا الجزء وما يليه) فيضطر النظام الى تحميل البرنامج فى مكان ما اخر فارغ ولنفرض اننا وجدنا العنوان50000 وما يليه فارغاً عندئذ سيتم تحميل البرنامج به وستظهر مشكله عندما يشير البرنامج الى العنوان هناك فى 10000 حيث سيجد بيانات اخرى غير مطلوبه وهنا تتضح المشكله
وهناك طريقتان للحل
الطريقه الاولى : عمل ال relocation اثناء التفيذ...واظنها طريقه صعبه
الطريقه الثانيه: عمل ال relocation اثناء تحميل البرنامج من القرص الصلب الى الذاكره الرئيسيه و تفيذ البرنامج من مكانه الجديد بالذاكره...وسنتناول شرح هذه الطريقه
كل من الطريقتان السابقتان تعمدان على امداد المعالج ببعض المسجلات الاضافيه واللازمه لمثل هذه العمليه
وتعتمد الطريقه الثانيه على وجود مسجلان
base register ويشير الى بداية المكان الذى سيتم تحميل البرنامج فيه ولنفرض كما قلنا انه 50000
والاخر
limit register
حيث يشير الى نهاية البرنامج فى الذاكره ...ولكن ماذا يحدث عنما يشيرالبرنامج الى المكان الخاطئ 10000 ...يحدث الاتى ------->
تقوم وحده تسمى MMU (Memory Management Unit) باضافة القيمه الموجوده بداخل ال
program counter
(لو فاكرين دا بيحدد مكان التعليمه التى يجب تفيذها فى الذاكره وبه القيمه صفر الان مع بداية البرنامج
كما تم توليدها من الكومبايلر ويتم زيادة القيمه بعد تنفيذ لكل تعليمه)
...يقوم باضافتها على القيمه الموجوده بال base register وهى 50000 فيكون الناتج 60000 وهى فعلاً القيمه الصحيحه بعد اعادة تحميل البرنامج فى المكان الجديد
هناك وظيفه اخرى تقوم بها MMU الا وهى انها تقوم بفحص على الجزء الذى سيشير اليه البرنامج فى الذاكره وتتاكد انه محصور بين
base register ,limit register
وبذلك تم حل المشكلتان معاً فى نفس الوقت
واريد ان انوه الى ان ال MMU يتم التحكم فيها من خلال النظام ولا تعمل فى ال user mode لضمان الحمايه الاكيده
وكنت اريد ان انوه ايضاً الى انه التبديل بين البرامج context switch فى الذاكره يتسبب فى حمل اكثر على ال cache memorty and MMU لانه يضطرهم التى تغيير قيمهم الى القيم الجديده
انا نفسى اكمل والله ..بس دماغى صدعت و مش قادر اكمل كتابه :s :wacko: :wacko:
على العموم كدا فاضل جزئين ونكمل الفصل ده...المره الجايه ان شاء الله هتبقى تكملة الهاردوير اللى كان المفروض يكمل انهارده + نظره عامه على مفاهيم نظم التشغيل
اشوفكم الدرس الجاى.... ويا رب تكونوا استفدتوا منى باى حاجه
هذا الموضوع مغلق.