دانلود مقاله سیستم‌ عامل، روح کامپیوتر

word قابل ویرایش
79 صفحه
12700 تومان
127,000 ریال – خرید و دانلود

مقدمه:

سیستم عامل یکی از نرم‌افزارهای سیستم است که به عنوان واسطی بین سخت‌افزار و برنامه‌های کاربردی و کاربران عمل می‌نماید.
ویژگی‌ها و وظایف سیستم عامل عبارتند از:
الف. کنترل و ایجاد هماهنگی بین برنامه‌های کاربردی مختلف در استفاده از سخت‌افزار.
ب. کنترل عملکرد دستگاه‌های مختلف ورودی و خروجی.
ج. تخصیص منابع به برنامه‌های مختلف.

سیستم عامل برنامه‌ای است که هسته‌ی آن همواره بر روی کامپیوتر، در حالت اجرا قرار دارد. دو هدف اصلی سیستم عامل، ایجاد سادگی برای کاربرد و استفاده‌ی کارا و موثر از کامپیوتر است.

فصل اول
مفاهیم اولیه
۱ .۱- سیستم عامل چیست؟

۲ .۱- ظهور تدریجی و سیر تکاملی سیستم‌های عامل
۳ .۱- تکامل سیستم‌ عامل‌های جدید

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

۱ .۱ .۱- دیدگاه برتر
دیدگاه برتر نسبت به کامپیوتر، بر حسب واسطی که مورد استفاده قرار می‌گیرد، فرق می‌‌کند، اغلب کاربران کامپیوتر از PC استفاده می‌کنند که شامل مانیتور، صفحه کلید، ماوس و واحد سیستم است. چنین سیستمی برای یک کاربر تهیه شده است تا از منابع آن برای انجام کارهای بیشتر استفاده کند. در این مورد، سیستم عامل برای سهولت استفاده طراحی شد، ولی نگاهی به کارایی داشت، اما به بهره‌وری منابع پرداخته نشد. کارایی برای کاربر مهم است، ولی بخش زیادی از سیستم بیکار می‌ماند و منتظر سرعت I/O کاربر است.

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

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

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

 

۲ .۱ .۱- دیدگاه سیستم
از نقطه‌نظر کامپیوتر، سیستم عامل برنامه‌ای است که به شدت با سخت‌افزار عجین شده است. سیستم عامل را می‌توان تخصیص دهنده‌ی منابع درنظر گرفت. سیستم کامپیوتر دارای منابع سخت‌افزاری و نرم‌افزاری متعددی است که برای حل مساله مفید است. این منابع عبارتند از: زمان CPU، فضای حافظه، فضای ذخیره‌سازی فایل، دستگاه‌های I/O و … . سیستم عامل مدیر این منابع است و آنها را در اختیار برنامه‌های کاربردی و کاربران قرار می‌دهد تا نیازهای خودشان را برطرف کنند. چون ممکن است درخواست‌های متعددی برای منابع وجود داشته باشد که حتی متناقض هم باشند، سیستم عامل باید منابع را طوری در اختیار کاربر یا برنامه کاربردی قرار دهد تا عملکرد سیستم کامپیوتری بهینه باشد.

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

چون استفاده از سخت‌افزار محض آسان نیست، برنامه‌های کاربردی بوجود آمدند. بسیاری از عملیات این برنامه‌های کاربردی، مشترک است، مثل عملیاتی که دستگاه‌های I/O را کنترل می‌کنند. عملیات مشترک کنترل و تخصیص منابع، به صورت نرم‌افزار جداگانه‌ای به نام سیستم عامل نوشته شدند.

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

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

۳ .۱ .۱- اهداف سیستم
بهتر است سیستم عامل را با توجه به کاری که انجام می‌دهد، تعریف کنیم. اولین هدف سیستم عامل این است که محیط آسانی را برای کار فراهم کند. علت استفاده از سیستم عامل این است که بکارگیری کامپیوتر را آسان می‌کند. این دیدگاه برای کامپیوترهای کوچک واضح‌تر است.

هدف دوم سیستم عامل، بهره‌برداری بهینه از سخت‌افزار است. این هدف، برای سیستم‌های کامپیوتری بزرگ چندکاربره مورد نظر است. چون این سیستم‌ها گران هستند، مطلوب است که به طور بهینه و کارآمد مورد بهره‌برداری قرار گیرند. این دو هدف، یعنی فراهم کردن محیط آسان و استفاده کارآمد، گاهی با هم در تضادند. در گذشته ملاحظات کارایی مهمتر از سهولت بوده است. بدین ترتیب، اغلب نظریه‌های سیستم عامل، به بهره‌برداری بهینه از منابع کامپیوتر مربوط

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

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

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

۱ .۲ .۱- پردازش سریالی یا پیاپی
بطور نظری هر سیستم کامپیوتری بدون پشتیبانی نرم‌افزار سیستمی ممکن است به زبان ماشین برنامه‌سازی شود. برنامه‌سازی «ماشین ساده» جهت سیستم‌های کامپیوتری اولیه متداول بود. برنامه‌ها جهت ماشین ساده می‌توانست از طریق ترجمه دستی رشته‌هایی از دستورالعمل‌ها به باینری یا هر کد دیگری که مبنای آن ۲ بود، ایجاد گردند. آنگاه دستورالعمل‌ها و داده‌ها با استفاده از کلیدهای میز فرمان یا شاید هم از طریق یک صفحه کلید هگزا دسیمالی وارد کامپیوتر می‌شدند.

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

 

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

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

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

در سیستم عامل شرح داده شده، روال‌های ورودی / خروجی و برنامه بارکننده یک شکل ابتدایی یک سیستم عامل را نشان می‌دهد. هرچند کاملاً خام بود، باز هم یک محیطی را جهت اجرای برنامه‌ها فراتر از آنچه در ماشین ساده وجود داشت، را فراهم می‌ساخت. مترجم‌های زبان، ویرایشگرها و اشکال‌زداها، برنامه‌های سیستمی بودند که متکی به خدمات ارائه شده از جانب سیستم عامل بودند، ولی بطور کلی به عنوان بخشی از آن درنظر گرفته نمی‌شدند. به عنوان مثال، یک مترجم معمولاً از روال‌های ورودی / خروجی فراهم شده جهت بدست آوردن ورودی (برنامه مبدا) و تولید خروجی استفاده می‌نمود.
این شیوه عملیات، هرچند پیشرفت قطعی نسبت به رویکرد ماشین ساده بود، روشن بود که خیلی کارا نبود. اجرای سیستم کامپیوتر نیاز به بارگذاری دستی برنامه‌ها و داده‌ها داشت. چنین روشی جهت استفاده از منابع نتیجه کمی داشت. میزان مولد بودن کاربر، بویژه در محیط‌های چندکاربره کم بود، زیرا کاربران می‌بایست در انتظار نوبتشان جهت استفاده از ماشین می‌ماندند. حتی با چنان ابزارهایی نظیر ویرایشگرها و اشکال‌زداها ساخت برنامه‌ها خیلی به کندی پیش می‌رفت و با برنامه‌ دستی و بارگذرای داده‌ها همراه بود.
۲ .۲ .۱- پردازش دسته‌ای
گام بعدی، در تکامل سیستم‌های عامل خودکار نمودن ترتیب عملیات لازم جهت اجرای برنامه‌ و جهت جنبه‌های مکانیکی ساخت برنامه بود. هدف، افزایش میزان استفاده از منبع سیستم و مولدبودن برنامه‌نویس از طریق کاهش یا حذف زمان‌های بی‌کاری ناشی از عملیات دستی نسبتاً طولانی بود.
حتی زمانی که کاربر به صورت خودکار درآمد، عملیاتی نظیر سوارکردن نوارها و تکمیل نمودن فرم‌ها نسبت به سرعت‌های پردازنده و حافظه، زمان زیادی طول می‌کشید. چون چندان کاری جهت کاهش این عملیات نمی‌توانستند انجام دهند، عملکرد سیستم از طریق تقسیم سرباز بین تعدادی برنامه‌ها ممکن بود افزایش یابد، بویژه اگر چند برنامه به صورت دسته‌ای بر روی یک نوار ورودی منفرد جای می‌گرفتند تا عملیات یاد شده یکبار برای آن انجام می‌گرفتند، سربار برنامه به همین ترتیب کاهش می‌یافت.
یک مفهوم مرتبط که غالباً مرحله‌بندی نام داشت، این بود که کارهای ارائه شده از نو ترتیب می‌یافتند. به نحوی که کارهای مشابه در یک دسته قرار می‌گرفتند. مثلاً با دسته‌بندی چند کار کامپایل فرترن توام با هم، کامپایلر فرترن می‌توانست تنها یکبار شود تا تمام آنها را در یک ردیف پردازش نماید.

برای پی بردن به استفاده بالقوه از منابع پردازش دسته‌ای یک دسته کار نصب شده می‌بایست بدون دخالت کند انسان بطور خودکار اجرا می‌گردید. دستورالعمل‌هایی باید فراهم می‌شد که به سیستم عامل بگوید چگونه با هر کار منفرد برخورد نماید. این دستورالعمل‌ها معمولاً با استفاده از فرامین سیستم عامل که در بطن حوی واره دسته‌ای نهفته می‌شد، تامین می‌گردید. فرامین سیستم عامل، دستور‌هایی بودند که به زبان کنترل کار یا JCL نوشته می‌شدند.
فرامین JCL معمولاً حاوی علائم آغاز و پایان کار، فرامینی جهت بارگذاری و اجرای برنامه‌ها و فرامینی جهت اعلام نیازمندی‌های منابع، نظیر زمان اجرای مورد انتظار و نیازهای حافظه بود. این فرامین توام با برنامه‌ها و داده‌های کاربر در بطن جوی واره کار جای می‌گرفت.

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

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 12700 تومان در 79 صفحه
127,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد