آموزش سیستم عامل — مرور مفاهیم پایه

 

 

سیستم عامل (operating system)

نرم افزاری است که مدیریت منابع کامپیوتر را به عهده گرفته و بستری را فراهم می سازد که نرم افزار کاربردی اجرا می شود.

کرنل سیستم عامل:  بخشی از سیستم عامل که در حافظه اصلی قرار دارد. سیستم عامل از طریق کرنل ،با منابع سخت افزاری و نرم افزاری ارتباط برقرار می کند.

 

1

 

انواع سیستم عامل:

۱ – تک پردازنده   ۲ – چند کاربره   ۳ – توزیع شده   ۴ – بی درنگ   ۵ – شبکه ای

سیستم های چند کاربه :

اجازه می دهند تا کاربران متعدد بصورت همزمان به یک سیستم کامپیوتری دسترسی داشته باشند . مانند سیستم های اشتراک زمانی .

در سیستم های اشتراک زمانی فقط یک پردازنده وجود دارد که توسط مکانیزم های زمانبندی بین برنامه های مختلف کاربرها با سرعت زیاد سوئیچ می شود بنابراین هر کاربر تصور میکند کل کامپیوتر در اختیار اوست  

 

سیستم های عامل توزیع شده (Distributed)

مجتمع کردن سیستم های موجود در شبکه های مختلف و با راه های ارتباطی مختلف (از نظر فیزیکی مجزا) هر پردازنده، حافظه و ساعت مخصوص به خود را دارد.

پردازنده ها از نظر اندازه و عملکرد با یکدیگر فرق دارند.

دلایل ساخت سیستم های توزیعی

۱ – اشتراک منابع: (کاربری در یک سایت می تواند از چاپگری در سایت دیگر استفاده کند)

۲ – افزایش سرعت محاسبات: ( توزیع یک محاسبه در بین چند سایت )

سیستم های بی درنگ (Real time)

نوعی سیستم عامل همه منظوره است. یک سیستم عامل بی درنگ وقتی درست کار می کند که در محدودیت زمانی مشخص، نتایج مورد انتظار را تولید کند.

خیلی اوقات باید فرجه زمانی (deadline) به طور دقیق برآورده شود، یعنی باید کارها در لحظات خاصی از زمان انجام گیرد.

برای مثال اگر یک خودرو در خط مونتاژ در حال حرکت باشد و ربات جوشکاری خیلی زود و یا خیلی دیرجوش دهد، خودرو خراب خواهد شد.

معمولا وسایل ذخیره سازی ثانویه وجود ندارد و به جای آن از ROM  استفاده می شود.

 

نمونه هایی از سیستم های بی درنگ:

۱ – تصویر برداری پزشکی    ۲ – تزریق سوخت اتومبیل  ۳ – کنترل کننده های لوازم خانگی   ۴ – سیستم های نظامی

انواع سیستم های بی درنگ :

  • نرم
  • سخت

سیستم هایی که در آن مهلت زمانی باید پاسخ داده شود را بی درنگ سخت و سیستم هایی که مهلت زمانی را پشتیبانی نمی کنند بی درنگ نرم می نامند .

کاربرد سیستم های بی درنگ نرم : اسکن بارکد در پایانه فروشگاه (با اینکه سرعت پاسخ دهی باید سریع باشد اما به حادی سیستم های سخت نمی باشد )

      کاربرد سیستم های بی درنگ سخت  : کنترل موتور یک خودرو (پاسخ تاخیر می تواند نتایج فاجعه باری را به همراه داشته باشد .)

مولفه های سیستم عامل :

سیستم بزرگی چون سیستم عامل را باید به مولفه های (components) کوچکتری تقسیم کرد

  • مدیریت فرایند (برخورد با بن بست ، ایجاد و حذف فرایند ها ، تعویق و از سر گیری فرایندها ، هماهنگی فرایند ها)

۲ – مدیریت حافظه اصلی (تعیین بخشهای پر حافظه ، تخصیص حافظه  و آزادسازی حافظه و … )

۳ – مدیریت حافظه ثانویه (مدیریت فضای آزاد ، تخصیص حافظه ، زمانبندی دیسک )

۴ – مدیریت فایل (ایجاد و حذف فایلها و دایرکتوری ها ، تهیه پشتیبان و …)

۵ – مدیریت سیستم I/o  (مدیریت بافرها ، تخصیص کانالهای I/O و دستگاهها به فرایندها )

اجزای سخت افزاری تشکیل دهنده کامپیوتر

سیستم عامل از منابع سخت افزاری پردازنده برای ارائه خدمات به کاربران استفاده می کند . بنابراین آشنایی با سخت افزار کامپیوتر

، برای بررسی سیستم عامل ضرری است .

۱ – پردازنده     ۲ – حافظه اصلی      ۳- مولفه های ورودی و خروجی      ۴ – اتصالات داخلی سیستم

2

 

پردازنده

پردازنده از قسمت های زیر تشکیل شده است :

۱ – واحد محاسبه و منطق  (ALU)    ۲ – واحد کنترل      ۳ – رجیسترها (ثبات ها )

۱ )  واحد محاسبه ومنطق (Arithmetic & Logic Unit) به اختصار (ALU)، مداری دیجیتالی است که عملیات حساب و منطق را انجام می‌دهد. یک قطعه اساسی از واحد پردازش مرکزی در کامپیوتر است. و حتی ساده‌ترین میکروپردازنده‌ها نیز دارای یک واحد محاسبه و منطق برای کارهایی از قبیل نگهداری زمان هستند.

۲ ) واحد کنترل (Control Unit): واحد کنترل از مدارهای الکترونیکی پیچیده‌ای تشکیل شده است که بر عملکرد ریزپردازنده نظارت دارد. این واحد وظیفه اجرای دستورات را بر عهده ندارد، اما مشخص می‌کند که هر قسمت چه وظیفه‌ای دارد و ترتیب اجرای دستورالعمل‌ها را هم مشخص می‌کند. این واحد هماهنگ کننده فعالیت‌های سیستم کامپیوتری می‌باشد.

۳ ) رجیستر ها : حافظه هایی  سریع هستند که در پردازنده وجود دارند اگر بخواهیم یک تعریف ساده و قابل درک از این حافظه‌ها داشته باشیم می‌توانیم بگوییم، پردازنده برای جمع کردن دو عدد نیاز به یک محل موقت دارد تا آن‌ها را از داخل حافظه به داخل خود بیاورد و لازم است این دو عدد داخل‌ آن قرار گرفته و سپس عملیات جمع انجام شود و به حافظه اصلی منتقل شود. حافظه‌های موقت برای چنین عملیاتی را ثبات می گویند..

پردازنده سه گام “واکشی ،رمز گشایی  و  اجرا ” را به طور مداوم انجام می دهد . واکشی یعنی خارج کردن دستورالعمل‌ها از حافظه به واحد پردازش و رمزگشایی دستور یعنی تفسیر دستورالعمل‌ها برای اجرا.

کلمه وضعیت برنامه ( PSW  = Program status word) : تمام پردازنده ها شامل یک یا مجموعه ای از ثباتها هستند به نام کلمه وضعیت که حاوی اطلاعات وضعیت هستند

حالت های اجرای پردازنده

۱ – مد کاربر (Supervisor mode):  محدودیت هایی در مورد دستورالعمل هایی که می توانند اجرا شود و مناطقی از حافظه که می توانند مورد دسترسی قرار بگیرند در اختیار دارد.

۲ – مد کرنل (هسته)(Kernel mode ) :  کنترل کامل پردازنده ، دستورالعمل ها، ثباتها و حافظه در اختیار سیستم عامل است.

کامپیوتر در هنگام روشن شدن در مد کرنل قرار می گیرد.

عملیات قابل انجام در مد کرنل : تنظیم زمان سیستم – تغییر اولویت فرایند ها – ناتوان ساختن وقفه ها  و …

وقفه (interrupt)

وقفه سیگنالی است که روند عادی اجرا را تغییر می دهد. وقتی وقفه ای به CPU  ارسال می شود کار CPU  متوقف شده و روال پاسخگو به وقفه (interrupt routine) اجرا می شود . بعد از پایان اجرای این روتین ،CPU  کار قبلی اش را ادامه می دهد.

3

 

با وجود وقفه ها، پردازنده می تواند در هنگامی که عمل ورودی / خروجی در جریان است مشغول اجرای دستورالعمل های دیگر باشند .

آدرس دستوری که هنگام اجرای آن وقفه صادر شده در پشته ذخیره می شود . بعد از پایان پاسخگویی به وقفه ، آدرس برگشت در شمارنده برنامه (pc) قرار می گیرد و محاسباتی که اجرای انها به تعویق افتاده از سر گرفته می شود.

سخت افزار با ارسال سیگنالی به CPU  ، وقفه ای را صادر میکند بعنوان مثال پرینتر سیگنالی مبنی بر عدم وجود کاغذ را برای CPU ارسال می کند.

نرم افزار با فراخوانی سیستم (System call) می تواند وقفه ای را صادر کند.

شکل وقفه تو در تو

4

در شکل فوق وقفه تو در تو را مشاهده می کنید، در این شکل همانگونه که می بینید، برنامه (user program)در حال اجراست ،دستوری صادر می شود و وقفه اجرا شده و برای پاسخ به دستور باید عملیاتی انجام شود  که به  (interrupt  Handler X) رفته در حین انجام عملیات وقفه ای دیگر ایجاد می شود (interrupt  Handler  y) که باید برای پاسخ دهی به وقفه فوق اقدام کنیم بعد از انجام دستورات به برنامه قبلی (interrupt  Handler X)برگشته و بعد از انجام دستورات به ادامه کار(user program) در برنامه می رویم .توجه داشته باشیم زمانیکه از وقفه تو در تو استفاده می کنیم باید از هر مرحله به مرحله قبل برگردیم به همین دلیل از پشته استفاده می کنیم  بعنوام مثال اگر در برنامه فوق بجای استفاده از پشته از صف استفاده کنیم هنگامی که (interrupt  Handler  y) پایان می یافت کنترل  به (interrupt  Handler X) بازنمی گشت و مستقیما به (user program) می رفت که در این صورت ادامه دستورات interrupt  Handler X) ) اجرا نمی شد.

یادآوری : آدرس دستوری که هنگام اجرای آن وقفه صادر شده در پشته ذخیره می شود

انواع وقفه ها

وقفه ها بر چهار نوع  می باشند:

  • وقفه برنامه

به دلیل بعضی شرایط حاصل از اجرای یک دستورالعمل بروز می کنند:

  • سر ریز شدن محاسباتی
  • تقسیم بر صفر
  • تلاش برای اجرای یک دستورالعمل ماشین غیر مجاز
  • مراجعه به آدرس خارج از فضای مجاز کاربر

۲ – وقفه زمان سنج

توسط زمان سنج داخلی پردازنده تولید می شود

به سیستم عامل اجازه می دهد بعضی از اعمال را به طور مرتب انجام دهد.

مانند تست حافظه ، چک کردن سخت افزار، تعیین زمان اجرای پردازنده  در هر برش در سیستم اشتراک زمانی

 ۳ – وقفه ورودی / خروجی

وقفه هایی که به وسیله کنترل کننده I / O  تولید می شود، تا کامل شدن طبیعی یک عمل یا شرایط خطا را اعمال کند.

۴ – .وقفه نقص سخت افزار

وقفه هایی که با نقص سخت افزاری تولید می شود ، مثل نقص برق یا خطای توازن حافظه

تعویض متن (Context Switch)

به فرایند ذخیره و بازیابی وضعیت یک پردازنده  گفته می شود، به طوری که اجرای آن پردازش بتواند بعدا از همان نقطه ادامه یابد

هنگامی که وقفه ای رخ می دهد، قبل از اینکه سیستم عامل کنترل را به یک روال وقفه گیر بخصوص رد کند، وضعیت پردازش جاری را در محلی حفظ می کند ، تا بتواند بعدا انرا ادامه دهد و سپس به طرف روال وقفه گیر می رود.

این کار به چند پردازش اجازه می دهد تا از یک CPU  به صورت اشتراکی استفاده کنند.

این قابلیت یکی از ارکان اساسی چند برنامگی است.

فراخوانی سیستم ( System Call)

واسطی بین فرایند و سیستم عامل فراهم می کند. وقتی برنامه ای اجرا می شود از فراخوانی های سیستمی به وفور استفاده  می کند و کاربر جزئیات ان را نمی بیند.

5

 

در زبان سطح بالای c و پاسکال مستقیما می توان این فراخوان های سیستمی را به کار برد همانگونه که در شکل فوق مشاهده می کنید که دستورات به زبان c  نوشته شده است ،بعد از دستور  printf کنترل برنامه به قسمت کتابخانه  استاندارد c رفته این دستورات در مد کاربر قرار دارند سپس  دستورات از قسمت کتابخانه استاندارد c تبدیل شده به دستور write()   که  مربوط به  system call   است  و در مد کرنل (هسته ) قرار دارد ، دستورات انجام شده و نتیجه بر می گردد.

 

روش های انتقال ورودی / خروجی

عمل ورودی یا خروجی یک فرایند از سه طریق قابل انجام است:

۱ – Programed I / O  

پردازنده یک فرمان I / O  را از جانب فرایند به مولفه I / O   صادر می کند، سپس فرایند تا  کامل شدن I / O   به انتظار مشغولی می گذراند، در این زمان پردازنده وضعیت مولفه I / O   را متناوبا بررسی کرده تا از تمام شدن ان عمل مطلع شود.

زمانی که CPU  از ورودی / خروجی برنامه ریزی شده استفاده می کند در تمام مدتی که فرایند خواندن یا نوشتن در حال انجام است پردازشکر به طور کامل مشغول است و در نتیجه نمی تواند روی وظایف دیگری کار کند.

۲ – Interrupt I / O  

پردازنده یک فرمان I / O   را از جانب فرایند صادر می کند، سپس به اجرای دستورالعمل های بعدی ادامه میدهد . وقتی عملیات ورودی / خروجی تمام شد ، مولفه I / O   وقفه صادر می کند این روش کار آمد تر از قبلی است.

 

۳ – DMA I / O  

یک ویژگی کامپیوترهای مدرن است که به بعضی از زیر ساخت های سخت افزاری کامپیوتر اجازه دسترسی به حافظه سیستم بصورت مستقل از CPU می دهد.

مولفه DMA تبادل داده ها بین حافظه اصلی و مولفه I / O   را کنترل می کند.

پردازشگر تنها فرایند انتقال را آغاز کرده ، در هنگامی که انتقال در جریان است مشغول کارهای دیگر می شود ، در انتها ، زمانی که کل فرایند به اتمام برسد وقفه ای از کنترل گر DMA   دریافت می کند.

حفاظت

مسئله حفاظت از سه دیدگاه مورد بررسی است :

۱ – حفاظت I / O   

تمام دستورات I / O   را به عنوان دستورات ممتاز در نظر گرفت تا کاربران فقط از طریق سیستم عامل بتوانند آن دستورات را اجرا کنند.

۲ – حفاظت از CPU  

باید کاری کرد که برنامه کاربر در حلقه گیر نکند و کنترل را به سیستم عامل برگرداند (از یک تایمر استفاده می کنیم)

۳ – حفاظت از حافظه

حفاظت حافظه را حداقل برای بردار وقفه و روال وقفه باید فراهم کرد . در واقع می خواهیم سیستم عامل را از دستیابی برنامه کاربر و همچنین برنامه های کاربر را از یکدیگر محافظت کنیم (استفاده از ثبات های پایه  و حد)

 

 

 

آنچه مطالعه کردید، توسط یکی از مخاطبین فرادرس به عنوان یادداشت و برداشت متنی بخش هایی از «آموزش سیستم های عامل» تهیه شده و جهت استفاده سایر مخاطبین گرامی در متلب سایت منتشر می شود.

 

 

 

 




0 پاسخ

ارسال یک پاسخ

در گفتگو ها شرکت کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *