مقاله درباره سستم عامل

در اين بخش شما ميتوانيد درباره برنامه ها و نرم افزارهاي كامپيوتر به بحث و تبادل نظر بپردازيد

مدیران انجمن: Mahdi Mahdavi, MASTER, شوراي نظارت

ارسال پست
Major
Major
پست: 341
تاریخ عضویت: چهارشنبه ۱۵ خرداد ۱۳۸۷, ۱۱:۴۹ ق.ظ
سپاس‌های ارسالی: 434 بار
سپاس‌های دریافتی: 553 بار

مقاله درباره سستم عامل

پست توسط fereshteh blue »

سلام به همه عزیزان :(
بنده چند وقت پیش یه تحقیقی راجع به سیستم عامل انجام دادم حالا به نظرم بد نیومد که این جا قرار بدم که دوستان استفاده کنند البته چون مطالب زیاده در چند پست قرار می دهم اگر به نظرتون جاییش مشکل داشت بگین تا تحقیق کنم :shock: :-)

تعریف سیستم عامل
مجموعه ای از برنامه ها را که موجب راه اندازی و استفاده از کامپیوتر می شوند " سیستم عامل " یا Operating System (OS) گویندمی گردد . سيستم عامل بدون شک مهمترين نرم افزار در کامپيوتر است . پس از روشن کردن کامپيوتر اولين نرم افزاری که مشاهده می گردد سيستم عامل بوده و آخرين نرم افزاری که قبل از خاموش کردن کامپيوتر مشاهده خواهد شد، نيز سيستم عامل است . سيستم عامل نرم افزاری است که امکان اجرای تمامی برنامه های کامپيوتری را فراهم می آورد. سيستم عامل با سازماندهی ، مديريت و کنترل منابع سخت افزاری امکان استفاده بهينه و هدفمند آنها را فراهم می آورد . سيستم عامل فلسفه بودن سخت افزار را بدرستی تفسير و در اين راستا امکانات متعدد و ضروری جهت حيات ساير برنامه های کامپيوتری را فراهم می آورد .

وظایف سیستم عامل
سیستم عامل دو وظیفه (یا هدف) اصلی دارد :
سیستم عامل استفاده از کامپیوتر را ساده می‌سازد . این بدان معناست که مثلاً کاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسک ها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات ساده‌ای که فراخوان های سیستمی (System Calls) را صدا می‌زنند انجام پذیرد .
در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس می‌بایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مانیتور ,فلاپی ,کی برد و غیره) داشته باشدو روتین‌هایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد می‌شود که واقعیت سخت افزار را از دید برنامه نویسان مخفی می‌سازد .
وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) می‌باشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم می‌گردد . منظور از منابع پردازنده‌ها ,حافظه‌ها ,دیسک ها موس ها , چاپگرها , فایلها , پورت ها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامه‌های مشخصی تخصیص می‌دهد .
سیستم عامل معمولا اولین برنامه‌های است که پس از بوت شدن در حافظه بار می‌شود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)می‌ماند . قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده می‌شود.
به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام می‌دهد هسته یا Kernel گفته می‌شود. هسته سیستم عامل برنامه‌ای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست.
سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشته‌اند . یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عامل‌ها توسعه یافتندو همچنین در اثنای طراحی سیستم عامل‌ها , مشخص شد که تغییراتی در طراحی سخت افزارمی‌تواند سیستم عامل ها را ساده ترو کارآمدتر سازد .

چگونه یك سیستم عامل عمل می كند
سیستم عامل پردازش های مختلف رایانه را همچون اجرای یك برنامه صفحه گسترده یا دسترسی به اطلاعات از حافظه سیستم كنترل می كند . یكی از مهمترین پردازش ها، فرامین مفسری یا تك خطی است كه كاربر را قادر می سازد با رایانه ارتباط برقرار كند . برخی از فرامین مفسری در محیط متنی است و می بایست تایپ شوند و یا با انتخاب كلیدهای توابع بر روی صفحه كلید اجرا می شوند. فرامین دیگر به صورت گرافیكی قابل اجرا هستند و كاربر با انتخاب و كلیك كردن بر روی آن می تواند آن را اجرا كند. این فرامین توسط یك نقش گرافیكی (ICON) شناسایی می شوند . كاربران غیرحرفه ای محیط های گرافیكی را راحت تر استفاده می كنند اما بسیاری از متخصصین از فرامین متنی استفاده می كنند .

انواع سیستم های عامل
سیستمهای عامل انواع گوناگون دارند که با توجه به اندازه کامپیوتر و نوع کاربرد های آن برخی از آنها بسیار ساده و برخی دیگر پیچیده است .
.
1- سیستم عامل تک برنامه ای : single program
برخی از کامپیوتر ها میتوانند در یک لحظه فقط به پردازش یک برنامه بپردازند . سیستم عامل های این نوع کامپیوترها می توانند برنامه را بارگذاری و اجرا کنند و یا اطلاعات را به دستگاه جانبی بفرستند یا از آن دریافت کنند و دستورات مخصوص خود را به اجرا درآورند .
سیستم عامل های موجود بر روی بیشتر میکرو کامپیوترها ازاین نوع هستند لذا این نوع کامپیوترها قادر به اجرای چند برنامه به طورهمزمان یا انجام کاری دیگر علاوه بر پردازش یک برنامه نیستند .مانند MS-DOS

2- سیستم عامل های چند برنامه ای : multi programming
برای جلوگیری از تلف شدن وقت واحد پردازشگر این سیستم های عامل طوری طراحی شده اند که می توانند اجرای چند برنامه را به طور همزمان بر عهده بگیرند . انجام این کار بدبن صورت است که در هر لحظه چند برنامه در داخل حافظه موجود هستند به هر کدام از این برنامه ها در مرحله اجرای خاص خود قرار دارند .این برنامه ها به صورت قسمت قسمت مطابق با احتیاجات ورودی و خروجی خود پردازش می شوند .
می توان برای پردازش برنامه ها اولویت هائی را نیز در نظز گرفت در این حالت برنامه هایی که دارای اولویت برای اجرا هستند زود تر از دیگر برنامه ها پردازش خواهند شد به عبارت دیگر اجرای این برنامه ها بر برنامه های دیگری که دارای اولویت نیستند تقدم خواهند داشت . کاربر میتواند بنا به میل خود ترتیب پردازش برنامه ها را تغییر دهد یا برای اجرای برنامه ها اولویت قائل شوند .سیتم عامل لینوکس ویا و Windows2000 مثال هایی از این دسته اند .

3- سیستم عامل برای سیستم هایی با چند استفاده کننده : multi user
کامپیوتر هایی که چند ترمینال ورودی و خروجی مستقل دارند وسیله خوبی برای سرویس دهی به کاربران متعدد هستند . به دلیل اینکه پردازشگر این نوع کامپیوتر ها کار خود را با سرعت زیادی انجام میدهد کاربرهرترمینال فکر میکند که کامپیوتر فقط در حال انجام عملیات مربوط به آن ترمینال است در صورتی که حقیقت غیرازاین است .
سیستم عامل های این نوع کامپیوتر ها کل مسائل مربوط به حافظه و واحد های ذخیره هر ترمینال را تحت کنترل خود دارند . مانند یونیكس یا VMS در رایانه های Main Frame نكته مهم در تفكیك سیستم عامل های چند كاربره واقعی با سیستم عامل های تك كاربره تحت شبكه مانند Novell Netware یا Windows2000 می باشند .

4- سیستم عامل برای سیستم هایی با پردازش توزیعی : distributed processing
با ظهور و ایجاد شبکه های کامپیوتری متشکل از چند ریز کامپیوتر ارزان قیمت متصل شده به یکدیگر هم بسیاری از محدودیت های ریز کامپیوتر ها حل شده و هم از محبوبیت کامپیوتر های بزرگ گران قیمت کاسته شد سیستم عامل هایی وجود دارند که کامپیوتر های متصل شده به شبکه را تحت کنترل و نظارت خود در می آورند .

5- سیستم عامل بلادرنگ real time operating system :
از اين نوع سيستم های عامل برای کنترل ماشين آلات صنعتی ، تجهيزات علمی و سيستم های صنعتی استفاده می گردد . يک سيستم عامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشند . يکی از بخش های مهم اين نوع سيستم های عامل ، مديريت منابع موجود کامپيوتری به گونه ای است که يک عمليات خاص در زمانی که می بايست ، اجراء خواهند شد .
Major
Major
پست: 341
تاریخ عضویت: چهارشنبه ۱۵ خرداد ۱۳۸۷, ۱۱:۴۹ ق.ظ
سپاس‌های ارسالی: 434 بار
سپاس‌های دریافتی: 553 بار

پست توسط fereshteh blue »

تطابق تکنیک های سیستم عامل با نسل های کامپیوتر:
در نسل اول کامپیوترها (19۵۵تا ۱۹۴۵) که از لامپ خلأ برای ساخت آن ها استفاده می‌شد ، زبان های برنامه نویسی (حتی اسمبلی ) ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند .
آنها برنامه‌های خود را توسط تخته مدار سوراخ دار ( و بعدها توسط کارت های پانچ ) و به زبان ماشین به کامپیوتر می‌دادند . اکثر برنامه‌های محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود .
• سیستم های دسته ای Batch system
• سیستم های چند برنامه ای Multi programming
• سیستم spooling
• سیستم اشتراک زمانی Time sharing
• سیستم عامل های کامپیوترهای شخصی و شبکه
• سیستم های توزیع شده Distributed system
• سیستم ها ی چند وظیفه ای Multi tasking
• سیستم های چند پردازنده ای Multi processing
• سیستم های بی درنگ Real Time
سیستم های دسته ای Batch system
در نسل دوم , کامپیوترها ( 19۶۵تا ۱۹۵۵) از ترانزیستور ساخته شدند.
طریقه کار با این کامپیوترهای نسل دوم از طریق یک کنسول (Console) بود که تنها اپراتور مخصوص کامپیوتر با آن کار می‌کرد و کاربران به طور مستقیم با این کامپیوترها محاوره (interaction) نداشتند . کاربر ابتدا برنامه خود را به زبان فرتون یا اسمبلی بر روی کاغذ می‌نوشت سپس توسط دستگاه Card punch ، برنامه را روی کارت های سوراخ دار منتقل ساخت .
بعد این دسته کارت تهیه شده که شامل برنامه ، داده‌ها و کارت های کنترل بود به صورت کار (Job) تحویل اپراتور داده می‌شد . اپراتور بعد از اتمام کار قبلی ، دسته کارت جدید را به کامپیوتر می‌داد تا برنامه را اجرا کند در انتها خروجی برنامه(که غالباً چاپی بود) را به کاربر تحویل می‌داد سیستم عامل در این کامپیوترهای اولیه ساده بود و وظیفه اصلی آن انتقال کنترل اتوماتیک از یک کار به کار دیگری بود . سیستم عامل همواره مقیم در حافظه بود و در هر لحظه فقط یک برنامه اجرا می‌شد .
هنگامی که اپراتور مشغول گذاشتن نوارها یا برداشتن کاغذهای چاپ شده بود وقت زیادی از این کامپیوترهای گران قیمت به هدر می‌رفت .
برای رفع مشکل فوق سیستم های دسته‌ای (Batch System) ابداع شد . یعنی ابتدا یک سبد پر از دسته کارت ها در اتاق ورودی جمع آوری می‌شد ، سپس کلیه آنها به وسیله دستگاه کارت خوان یک کامپیوتر کوچک و نسبتاً ارزان (مثل( IBM 1401 خوانده شده و بر روی یک نوار ذخیره می‌گردید . سپس اپراتور نوار را برداشته بر روی کامپیوتر اصلی و گران قیمت که محاسبات را انجام می‌داد (مانند(IBM7094: نصب می‌کرد . بعد از آن برنامه‌ای را اجراء می‌کرد ( یعنی سیستم عامل ) تا اولین کار را از روی نوار برداشته و اجراء کند ، خروجی بر روی نوار دیگری نوشته می‌شد .
پس از اتمام هر کار سیستم عامل به صورت خودکار کار بعدی را از نوار می‌خواند . پس از اجراء همه برنامه‌ها ، اپراتور نوار خروجی را برداشته و دوباره روی کامپیوتر IBM 1401 منتقل می‌ساخت تا عملیات چاپ خروجی ها به صورت off line انجام شود. به این روش کار offline spooling نیز گفته می‌شود. بیشتر برنامه‌های نسل دوم به زبان فورتون و اسمبلی برای محاسبات مهندسی و علمی مثل مشتقات جزیی به کار می رفت .
یکی از معایب روش offline spooling زیاد بودن زمان برگشت گردش (turnaround time) است ، یعنی تأخیر زمانی ما بین تحویل کار و تکمیل کار. هم چنین در این سیستم اولویت بندی به معنای واقعی وجود ندارد . تنها روش بدست آوردن اولویت این بود که نوار کارهای مهم را ابتدا در ماشین اصلی قرار دهند . حتی در این صورت هم باید چندین ساعت صبر می‌کردند تا خروجی ها ظاهر شوند . همچنین نیاز به سخت افزار اضافی (مثل کامپیوترهای۱۴۰۱) از دیگر معایب این روش بود .
سیستم های چند برنامه ای Multi programming
در نسل سوم کامپیوترها (19۸۰ تا ۱۹۶۵) از مدارات مجتمع (Integrated Circuit=IC) برای ساخت کامپیوترها استفاده شد . به طور کلی برنامه‌ها را می‌توان به دو دسته تقسیم کرد : یکی برنامه ها با تنگنای محاسباتی CPU boundیا CPU Limiter مانند محاسبات علمی سنگین که بیشتر زمان کامپیوتر صرف محاسبات Cup می‌شود ودیگری برنامه های تنگنای I/O Limited(I/O) مانند برنامه‌های تجاری که بیشتر زمان کامپیوتر صرف ورود داده‌ها و خروج اطلاعات می‌شود .
یک اشکال مهم سیستم های دسته‌ای این است که وقتی کار جاری برای تکمیل یک عملیات I/O مثلاً بر روی نوار گردان منتظر می‌شود . در این حال CPU بیکار می‌ماند و مجبور است صبر کند تا عملیات I/Oبه اتمام برسد . در برنامه های CPU Limited این اتلاف وقت اندک است ولی در برنامه های I/O Limited ممکن است حدود ۸۰ تا ۹۰ درصد وقت CPU به هدر برود .
سیستم spooling
یکی دیگر از ویژگی های سیستم عامل نسل سوم SpoolingیاOn Line Spooling) ) است که معمولاً همراه چند برنامه استفاده می‌شود. این کلمه مخفف عبارت ( Simultaneous Peripheral Operation online) می باشد . در این سیستم به جای آن که کارت ها از دستگاه کارت خوان مستقیما وارد حافظه گردند و توسط CPU پردازش شوند ابتدا کاراکتر به کاراکتر در بافری در حافظه قرار گرفته و سپس به صورت بلوکی بر روی دسیک نوشته می شود .
وقتی که برنامه کاربر اجراء می‌شود و از سیستم عامل تقاضای ورودی می‌کند ، اطلاعات ورودی به صورت بلوکی و با سرعت زیاد از دیسک خوانده می‌شوند . به طور مشابه هنگامی که برنامه برای خروجی چاپگر را احضار می‌کند ، خط خروجی در یک بافر کپی شده و سپس در دیسک نوشته می‌شود. پس اطلاعات خروجی از دیسک بر اساس ترتیب و اولویت در چاپگر چاپ می‌شوند .
در واقع اسپولینگ عمل I\O یک کار را با عمل محاسباتی کار دیگر روی هم می‌اندازد (overlap) . در سیستم اسپولینگ درحالی که ورودی یک کار از دستگاه ورودی خوانده می‌شود ، کار دیگری در حال چاپ شدن است ، در همین بین حتی کار دیگری می‌تواند در حال پردازش و اجراء باشد . در اسپولینگ برنامه عملیات ورودی و خروجی اش را متناسب با سرعت دیسک (که سریع است) انجام می‌دهد و نه متناسب با سرعت کارت خوان یا چاپگر (که خیلی کند هستند .)
بنابراین سیستم مذکور باعث استفاده بهینه از CPU و سایل I\O می‌شود و سرعت عمل را بالا می‌برد. در این سیستم دیگر نیازی به کامپیوترهای ۱۴۰۱، نوار گردان های اضافی و حمل نوارها (مانند سیستم‌های دسته‌ای ) نداریم .
سیستم اشتراک زمانی Time sharing
این سیستم‌ها از اوایل سالهای ۱۹۷۰ در نسل سوم کامپیوترها معمول شدند . سیستم اشتراک زمانی در واقع تعمیم سیستم چند برنامگی است .
در سیستم‌های چند برنامگی کاربر ارتباطی با کامپیوتر نداشت و خطایابی برنامه‌ها مشکل بود چرا که زمان برگشت نسبتاً طولانی اجازه آزمایش کردن های متعدد را نمی‌داد . در سیستم اشتراک زمانی کاربر به کمک دو ترمینال (Terminal) که شامل کی برد(برای ورودی) و مانیتور (برای خروجی ) است با کامپیوتر به صورت محاوره‌ای (interactive) رابطه بر قرار می‌سازد .کاربر مستقیماً دستوراتی را وارد کرده و پاسخ سریع آن را روی مانیتور دریافت می‌کند . در این سیستم‌ها چندین کاربر به کمک ترمینال هایی که به کامپیوتر وصل است همزمان می‌توانند از آن استفاده کنند .
در سیستم اشتراک زمانی فقط یک پردازنده وجود دارد که توسط مکانیزم های زمانبندی بین برنامه‌های مختلف کاربرها با سرعت زیاد (مثلاً در حد میلی ثانیه) سوئیچ می‌شود و بنابراین هر کاربر تصور می‌کند کل کامپیوتر در اختیار اوست . در اینجا تأکید بر روی میزان عملکرد کاربر است یعنی هدف فراهم کردن وسایل مناسب برای تولید ساده نرم افزار و راحتی کاربرد می‌باشد و نه بالا بردن میزان کاربرد منابع ماشین . کاربر می‌تواند در هر زمان دلخواه برنامه خود را آغاز یا متوقف سازد و یا برنامه را به صورت قدم به قدم اجرا و اشکال زدایی (debug) کند . سیستم‌های دسته‌ای برای اجرای برنامه‌های بزرگ که نیاز محاوره‌ای کمی دارند مناسب است ولی سیستم‌های اشتراک زمانی برای مواردی که زمان پاسخ کوتاه لازم است ، استفاده می‌شوند .
سیستم عامل های کامپیوتر های شخصی و شبکه
سال ۱۹۸۰ تاکنون که مدارات مجتمع با مقیاس بزرگ (Large Scale Integrated Circuit) ابداع شدند ، به عنوان نسل چهارم کامپیوترها شناخته می‌شود . در این سالها کامپیوترهای شخصی با قیمتی ارزان و کارآیی بالا و محیط گرافیکی و محاوره‌ای بسیار خوب به سرعت گسترش یافتند . سیستم عامل های اولیه بر روی PCهامانند DOS فقط تک کاربره و تک برنامه‌ای بودند .
ولی سیستم عامل های امروزی آن مانند Windows NT خاصیت های چند برنامگی ، چند کاربره (multiuse) و شبکه‌ای را دارا هستند . با توجه به هزینه اندک سخت افزار اهداف سیستم عامل در طول زمان تغییر کرده است و برای PCها به جای ماکزیمم کردن درصد استفاده CPU و وسایل جانبی، سیستم به سمت راحتی کاربر پیش می‌رود .
به تدریج ویژگی‌های مهم سیستم عامل های قدیمی در کامپیوترهای بزرگ (مانند حفاظت حافظه ، حافظه مجازی، محافظت فایلها ، همزمانی پردازشهاو…) بر روی سیستم های PC نیز پیاده سازی شده است .
هنگامی که کامپیوترها از طریق شبکه به هم وصل شوند . به آنها ایستگاه های کاری
(Work stations) می‌گویند . در یک سیستم عامل شبکه ، کاربران از وجود ماشین های مختلف در شبکه با خبرند. آنها می‌توانند از دور وارد یک ماشین شوند و همچنین فایل های یک ماشین را روی ماشین دیگر کپی کنند.
سیستم های توزیع شده Distributed system
سیستم عامل توزیع شده در یک محیط شبکه‌ای اجرا می‌شود . در این سیستم قسمت های مختلف برنامه کاربر بدون آنکه خود او متوجه شود می‌توانند همزمان در چند کامپیوتر مجزا اجرا شده و سپس نتایج نهایی به کامپیوتر اصلی کاربر برگردند .
کاربران نباید از این موضوع باخبر شوند که برنامه آن ها در کجا به اجرا در می‌آید و یا فایل های آنها در کجای شبکه قرار دارد و همه این کارها باید توسط سیستم عامل به صورت خودکار انجام گیرد . به عبارتی دیگر سیستم باید از دید کاربر شفاف باشد و هرچیزرا با نام آن فراخوانی کند و کاری به آدرس آن نداشته باشد .
یکی از مزایای مهم سیستم های توزیع شده سرعت بالای اجرای برنامه‌هاست چرا که یک برنامه همزمان می‌تواند از چندین کامپیوتر برای اجراء شدنش استفاده کند .
همچنین به علت توزیع شدن اطلاعات ، بانک های اطلاعاتی حجیم می‌توانند روی یک سری کامپیوترهای شبکه شده قرار بگیرند و لازم نیست که همه اطلاعات به یک کامپیوترمرکزی فرستاده شود که در نتیجه این نقل و انتقالات حجیم زمان زیادی به هدر می‌رود.
به علت تأخیر‌های انتقال در شبکه و نویزهای احتمالی در خطوط انتقالی قابلیت اعتماد اجرای یک برنامه در یک سیستم تنها ، بیشتر از قابلیت اجرای آن دریک سیستم توزیع شده است .
همچنین درسیستم توزیع شده اگر یکی از کامپیوترهایی که وظیفه اصلی برنامه جاری را برعهده دارد خراب شود کل عمل سیستم مختل خواهد شد . از طرف دیگر اگر اطلاعاتی همزمان در چند کامپیوتر به صورت یکسان ذخیره گردد و یکی از کامپیوترها خراب شود ، داده‌ها را می‌توان از کامپیوترهای دیگر بازیابی کرد از این نظر امنیت افزایش می‌یابد .
سیستم ها ی چند وظیفه ای Multi tasking
در تکنیک چند نخی (multitasking) یک فرایند (process) که برنامه‌ای در حال اجراست ، می‌تواند به بخش ها یا نخ هایی (بندهایی) تقسیم شود که می‌توانند به صورت همزمان اجرا شوند .
برنامه‌هایی که چند وظیفه مستقل از هم را انجام می‌دهند می ‌توانند به صورت چند نخی نوشته شوند . گاهی اوقات به سیستم های multithreading سیستم های چند تکلیفی یا چند وظیفه ای (multitasking)هم گفته می‌شود .
فرآیند (process)یا پردازش ، اساس یک برنامه در حال اجراست که منابعی از سیستم به آن تخصیص داده شده است (شامل رجیسترها ، حافظه ، فایل ها و دستگاه ها) . فرآیند می‌تواند مجموعه‌ای از یک یا چند نخ باشد .
به نخ ، رشته یا بند هم گفته می‌شود . کلیه اطلاعات مربوط به هر پروسس ، در یکی از جداول سیستم عامل به نام جداول process Control Block=PCB ذخیره می‌شود . این جدول یک آرایه یا لیست پیوندی از ساختارهاست که هر عضو آن مربوط به یکی از پروسس‌هاست که در حال حاضر موجودیت دارد .
اطلاعات موجود در PCB عبارتند از :
• حالت جاری پردازش
• شماره شناسایی پردازش
• اولویت پردازش
• نشانی حافظه پردازش
• نشانی محل برنامه پردازش بر روی دیسک
• نشانی سایر منابع پردازش
• محلی برای حفظ ثبات ها .
سیستم های چند پردازنده ای Multi processing
کامپیوترها می‌توانند به جای یک CPU چندین CPU داشته باشند که در این صورت به آنها سیستم multiprocessing می گویند . جهت استفاده از این سیستم ها نیاز به یک سیستم عامل خاص می‌باشد که بتواند چندین برنامه یا نخ های یک فرآیند را به صورت موازی واقعی روی آنها اجرا کند .
در سیستم چند پردازنده‌ای CPUها باید بتواند از حافظه ، امکانات ورودی و خروجی و گذرگاه Bus سیستم به صورت اشتراکی استفاده کنند . مزایای این سیستم ها عبارتند از :
1.زیاد شدن توان عملیاتی throughput
2.تحمل پذیری در برابر خطا fault-tolerant
سیستم عامل های چند پردازنده‌ای به دو دسته کلی متقارن و نامتقارن تقسیم می‌شوند :
در سیستم چند پردازنده‌ای نامتقارن : (Asymmetric Multi Processing = ASMP) یک پردازنده جهت اجرا سیستم عامل و پردازنده‌های دیگر جهت اجرای برنامه‌های کاربران استفاده می‌شود . از آنجا که کد سیستم عامل تنها روی یک پروسسور اجرا می‌شود ، ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازنده‌‌ای به دست می‌آید .
در سیستم چند پردازنده‌ای متقارن(symmetric Multi Processing = SMP) : سیستم عامل می‌تواند روی هر یک از پروسسورهای آزاد یا روی تمام پردازنده‌ها همزمان اجرا شود . در این حالت حافظه بین تمام آنها مشترک می‌باشد . تمام پردازنده‌ها اعمال یکسانی را می‌توانند انجام دهند .
سیستم های بی درنگ Real Time
سیستم های بی درنگ معمولاً به عنوان یک کنترل کننده در یک کاربرد خاص استفاده می‌شوند . سیستم در این حالت می‌بایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد . سیستم های کنترل صنعتی ، پزشکی ، کنترل موشک و غیره از این دسته‌اند .
در سیستم های بی درنگ معمولاً وسایل ذخیره سازی ثانویه وجود ندارد و به جای آن از حافظه ‌های ROM استفاده می‌شود . سیستم عامل های پیشرفته نیز در این سیستم ها وجود ندارند چرا که سیستم عامل کاربر را از سخت افزار جدا می‌کند و این جدا سازی باعث عدم قطعیت در زمان پاسخگویی می‌شود .
سیستم های بی درنگ با سیستم های اشتراک زمانی تناقض دارند لذا نمی‌توانند هر دو تواما وجود داشته باشند . به دلیل نیاز به پاسخ دهی سریع و تضمین شده سیستم‌های بلادرنگ از حافظه مجازی و اشتراک زمانی استفاده نمی‌کنند . به این سیستم‌ها «بی درنگ سخت» نیز گفته می‌شود .
در سیستمهای «بی درنگ نرم» یک وظیفه بی درنگ بحرانی ، نسبت به سایر وظایف اولویت دارد و تا پایان تکمیل شدنش این ارجحیت را دارا خواهد بود . از آنجا که این سیستم ها مهلت زمانی (deadline) را پشتیبانی نمی‌کنند استفاده آن ها در کنترل صنعتی ریسک آور است . هر چند که این سیستم های بی درنگ نرم می‌بایست پاسخی سریع داشته باشند ولی مساله پاسخ دهی به حادی سیستم های بی درنگ سخت نمی‌باشد .
Major
Major
پست: 341
تاریخ عضویت: چهارشنبه ۱۵ خرداد ۱۳۸۷, ۱۱:۴۹ ق.ظ
سپاس‌های ارسالی: 434 بار
سپاس‌های دریافتی: 553 بار

پست توسط fereshteh blue »

ساختار سیستم عامل
• خدمات و مولفه های سیستم عامل:
o مدیریت پردازش در سیستم عامل
o مدیریت حافظه در سیستم عامل
o مدیریت فایل در سیستم عامل
o مدیریت ورودی- خروجی در سیستم عامل
• مفسر فرمان
• وقفه در سیستم عامل
• فراخوانی سیستمی
مدیریت پردازش در سیستم عامل
یک برنامه حاوی دستورالعمل هایی است که توسط CPU اجرا می‌شوند و حاوی داده‌هایی است که هنگام اجرای دستورات از آنها استفاده می‌شود . برنامه در واقع یک موجودیت passive است مانند محتوای یک فایل بر روی دیسک . ولی پردازش در سیستم عامل یک برنامه در حال اجرا می‌باشد که موجودیتی active دارد. یک برنامه کاربر که در سیستم اشتراک زمانی در حال اجرا است یک پروسس (فرایند) می‌باشد ، به همین ترتیب یک وظیفه سیستم مثل اسپولینگ خروجی به چاپگر نیز یک پروسس است . یک فرایند منابع مشخصی را نیاز دارد مثل CPU، حافظه ، وسایل I/O و فایل ها . پردازش در سیستم عامل واحد کار در سیستم است . یعنی یک سیستم مجموعه‌ای از پردازشهای گوناگون است .
سیستم عامل در رابطه با مدیریت پردازش وظایف زیر را بر عهده دارد :
ایجاد و حذف پردازش در سیستم عامل های کاربر و سیستم – زمانبندی پردازش ها واینکه در هر زمان کدام پردازش در سیستم عامل CPU را در اختیار داشته باشد – مدیریت همزمانی پردازش ها و ارتباط بین آن ها و جلوگیری از بن بست (deadlock) بن بست حالتی است که پردازش ها در یک حلقه بسته منتظر تمام شدن وظایف همدیگر هستند و بنابراین هیچیک نمی‌توانند اجرا گردند و سیستم قفل می ‌شود .
مدیریت حافظه و فضای ذخیره سازی
سیستم عامل در رابطه با مدیریت حافظه دو عملیات اساسی را انجام خواهد داد :
هر پردازه یه منظور اجراء می بایست دارای حافظه مورد نیاز و اختصاصی خود باشد .
از انواع متفاوتی حافظه در سیستم استفاده تا هر پردازه قادر به اجرا با بالاترین سطح کارایی باشد . سیستم عامل در ابتدا می بایست محدوده‌های حافظه مورد نیاز هر نوع نرم افزار و برنامه‌های خاص را فراهم نمایند .
زمانی که برنامه‌های کاربردی در حافظه مستقر می گردند ، سازماندهی آنها در حافظ بر اساس بلاک هایی خواهد بود که اندازه آنها توسط سیستم عامل مشخص خواهد شد . برنامه‌ها در بلاک هایی با طول ثابت مستقر می گردند . هر بلاک دارای محدوده‌های خاص خود بوده که توسط کلمات چهار و یا هشت بایت ایجاد خواهند شد .
در اغلب کامپیوترها ، می توان ظرفیت حافظه را ارتقا و افزایش داد. مثلا می توان میزان حافظه RAM موجود را از یک مگابایت به دو مگابایت ارتقا داد . روش فوق یک راهکار فیزیکی برای افزایش حافظه بوده که در برخی موارد دارای چالش های خاص خود می باشد. در این زمینه می بایست راهکارهای دیگر نیز مورد بررسی قرار گیرند. اغلب اطلاعات ذخیره شده توسط برنامه‌ها در حافظه ، در تمام لحظات مورد نیاز نخواهد بود . پردازنده در هر لحظه قادر به دستیابی به یک محل خاص از حافظه است . بنابراین اکثر حجم حافظه در اغلب اوقات غیر فابل استفاده است .
از طرف دیگر با توجه به اینکه فضای ذخیره سازی حافظه‌ها ی جانبی نظیر دیسک ها بمراتب ارزانتر نسبت به حافظه اصلی است ، می توان با استفاده از مکانیزم هایی اطلاعات موجود در حافظه اصلی را خارج و آنها را موقتا بر روی هارد دیسک ذخیره نمود . بدین ترتیب فضای حافظه اصلی آزاد و در زمانی که به اطلاعات ذخیره شده بر روی هارد دیسک نیاز باشد ، مجددا آنها را در حافظه مستقر کرد . روش فوق " مدیریت حافظه مجازی " نامیده می‌شود .
حافطه‌های ذخیره سازی دیسکی ، یکی از انواع متفاوت حافظه موجود بوده که می بایست توسط سیستم عامل مدیریت گردد . حافطه‌های با سرعت بالای Cache، حافظه اصلی و حافظه‌های جانبی نمونه‌های دیگر از حافظه بوده که توسط سیستم عامل مدیریت گردند .

مدیریت فایل در سیستم عامل


جهت استفاده ساده از اطلاعات کامپیوتر، سیستم عامل دید منطقی یکسانی از اطلاعات ذخیره شده روی انواع وسایل ذخیره سازی مثل هارد دیسک ، فلاپی ، نوار یا دیسک های نوری پدید می‌آورد .
سیستم عامل خواص فیزیکی وسایل را از دید کاربر مخفی کرده و یک واحد ذخیره منطقی به نام فایل ارائه می‌کند . سیستم عامل دررابطه با فایل وظایف زیر را انجام می‌دهد :
• ایجاد وحذف فایل ها
• ایجادو حذف دایرکتوری ها
• انجام عملیات کپی
• انتقال و تغییرات بر روی فایل ها و دایرکتوری ها
• ذخیره سازی ومدیریت قرار گیری فایل ها بر روی رسانه‌ها
• مدیریت دسترسی های مختلف به فایل های مشترک
مفسر فرمان
یکی از مهمترین برنامه‌های سیستم عامل مفسر فرمان است که در واقع واسط بین کاربردو سیستم عامل می‌باشد .
بعضی از سیستم عامل ها مفسر فرمان را در هسته خود (kernel) قرار داده‌اند و بعضی دیگر مثل DOSو UNIX مفسر فرمان را (که پوسته یا Shell نیز معروف است ) مانند یک برنامه خاص که در اولین برقراری ارتباط اجرا می‌شود در نظر می‌گیرند . مفسر فرمان دستورات کاربر را گرفته و آن ها را اجرا می‌کند .
وقفه در سیستم عامل
وقفه‌ها جز مهمی از معماری کامپیوتر هستند و نحوه عملکرد آنها از ماشینی به ماشین دیگر ممکن است متفاوت باشد . وقفه راهکاری را فراهم می‌سازد تا اجرای دستورالعمل های جاری پردازنده موقتا متوقف شده و دستورات سرویس دهی دیگری اجرا گردد و سپس از آن کنترل دوباره به برنامه وقفه داده شده باز گردد .
وقفه‌های برنامه program check) )
وقفه‌های زمان سنج (Timer)
وقفه‌های I/O
وقفه (Super Visor Call)
وقفه Restart
در یک تقسیم بندی کلی می‌توان وقفه‌های را سه دسته کرد :
۱) وقفه‌های داخلی (trap) که بر اثر اجرای دستورات خود برنامه به صورت داخلی در CPU رخ می‌هند.
2) وقفه‌های خارجی که از دستگاه های خارجی مثل دستگاه های ورودی یا خروجی ،DMA تایمرها ، صفحه کلید و خطاهای سخت افزاری ناشی می‌شوند.
۳) وقفه‌های نرم افزاری (SVC ) که بر اثر فراخوانی توابع سیستمی توسط برنامه رخ می‌دهند با اجرای مجدد برنامه ، وقفه‌های داخلی به همان صورت قبلی دوباره رخ می‌دهند ولی وقفه‌های خارجی مستقل از دستورات برنامه و ناهمگام با برنامه می‌باشند .
فراخوانی سیستمی
فراخوان های سیستمی رابط ما بین سیستم عامل و برنامه‌های کاربردی می‌باشند. در زبان سطح بالای C و پاسکال مستقیما می‌توان این فراخوان‌های سیستمی را به کار برد. از فراخوانهای سیستمی عبارتند از:
مدیریت پردازش ها : مانند ایجاد و اتمام پردازش، بارگذاری و اجرای پردازش در سیستم عامل ، تخصیص و آزاد کردن حافظه و غیره .
مدیریت فایل ها و فهرست ها : ایجاد و حذف فایل ، باز و بسته کردن فایل ، خواندن و نوشتن ، تغییر صفحات فایل و غیره .
مدیریت وسایل : درخواست و رهاسازی وسیله ، خواندن و نوشتن در وسیله وغیره .
بدست آوردن اطلاعات : خواندن و تنظیم تاریخ و زمان ، خواندن زمان استفاده از سیستم توسط کاربر، تعداد کاربران ، میزان فضای آزاد حافظه یا دیسک ، نسخه سیستم عامل وغیره .
انواع زمان‌بندی‌ها در سیستم عامل
• پردازش در سیستم عامل
• حالات یک پردازش
• بلوک کنترلی پردازش
• نخ بند-رشته
• زمان بندی در سیستم عامل
• انواع زمانبندی ها در سیستم عامل
• معیار های زمانبندی در سیستم عامل
پردازش در سیستم عامل
مهمترین مفهوم در هر سیستم عامل فرآیند یا پردازش (process) است . تمامی نرم افزارهای کامپیوتر از جمله سیستم عامل به تعدادی از پروسس ها سازماندهی و تقسیم بندی می‌شوند.
حالات یک پردازش
یک پروسس در زمان حیات خود می‌تواند دریکی از سه وضعیف اجرا (Running) , آماده (Ready) وبسته (Blocked) قرار گیرد .
بلوک کنترلی پردازش
پردازش برنامه در حال اجراست . ولی از دید سیستم عامل می‌توان گفت پردازش در سیستم عامل یکسری ساختمان داده است .

زمان بندی در سیستم عامل
هدف چند برنامگی این است که در همه اوقات ، پردازشی در حالت اجرا وجود داشته باشد تا بهره وری CPU ما بین پردازش ها به قدر مکرر ، سوئیچ نماید که کاربران با برنامه در حال اجرا محاوره داشته باشند .
زمانی که بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگیرد که کدامیک اول اجرا شود . بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد زمانبندی (Scheduler) نامیده می‌شود . پردازش‌هایی که در حافظه اصلی قرار دارند و منتظر اجرا شدن هستند در صفی به نام صف آماده (ready queue) قرار می‌گیرند .

انواع زمان‌بندی‌ها در سیستم عامل
از یک جنبه زمانبندی‌های پردازش در سیستم عامل به سه دسته :
الف) دراز مدت (Long term scheduler)
ب) کوتاه مدت (Short term scheduler)
ج) میان مدت
تقسیم بندی می‌شوند .

معیار های زمانبندی در سیستم عامل
1)عدالت (fairness)
2)کارایی یا بهره وری (utilization- Efficiency) CPU
3) زمان پاسخ ( (Response Time
۴) زمان برگشت یا گردش کار( Turnaround)
۵) توان عملیاتی یا گذردهی (throughput)

انواع زمانبندی ها
اولویت ها می‌توانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند ، مثلاً ممکن است یک کاربر کار فوری داشته باشد و حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد ، یعنی اولویت را بخرد . یک اولویت ممکن است استاتیک باشد یا دینامیک . اولویت استاتیک تغییر نمی‌کند و بنابراین پیاده سازی آن ساده است .

انواع سیستم عامل ها
• Windows
• Linux
• Unix
• Dos
• Os/2
• Solaris
ارسال پست

بازگشت به “نرم افزار كامپيوتر”