نگاه کلی به سیستم عامل
با یک تارخچه مختصر بررسی سیستم عامل را شروع می کنیم.خود این تاریخچه جالب لست و بعلاوه دیدی کلی از مفاهیم سیستم عامل را ارائه می کند.
این فصل با نگاهی به اهداف و وظایف سیستم عامل(که هر سیستم عامل باید پاسخگوی آنها باشد) شروع می شود.
اهداف و وظایف سیستم عامل
سیتم عامل برنامه ای است که اجرای برنامه های کاربردی را کنترل و به صورت رابط کاربر و سخت افزار کامپیوتر عمل می کند. برای سیتم عامل سه هدف یا سه انجام وظیفه را می توان در نظر گرفت:
× سهولت: سیستم عامل استفاده از کامپیوتر را ساده تر و راحت تر می کند.
× کار آمدی: سیستم عامل موجب استفاده کار آمد از منابع سیستم کامپیوتری می شود.
× قابلیت رشد: سیستم عامل باید به نحوی ساخته شده باشد که به طور مؤثر توسعه ء آزمایش و معرفی قابلیتهای جدید سیستمی را بدون ایجاد مزاحمت در خدمات جاری ء میسر سازد.
سیتم عامل به عنوان رابط کاربر و کامپیوتر
می توان به سخت افزار و نرم افزاری که کاربردها را برای کاربر ارائه می کند به صورت لایه ای یا سلسله مراتبی نگاه کرد. برای استفاده کننده آن کاربردها(کاربر نهایی)ءمعمولاً معماری کامپیوتر اهمیتی ندارد.بنابراینءکاربر نهاییء سیستم کامپیوتری را در قالب کاربردش نگاه می کند.این کاربرد به یک برنامه ساز کاربردی و با استفاده از یک زبان برنامه سازی ایجاد شده است. اگر قرار بود برنامه کاربردی به وسیله مجموعه ای از دستورالعملهای ماشین و با مسئولیت کامل سخت افزارایجاد و کنترل شودءکار بسیار پیچیده و طاقت فرسایی بود.برای تسهیل کارءمجموعه ای از برنامه های سیستمی تهیه شده است. به بعضی از اینها برنامه سودمند می گویند. برنامه های سودمند توابعی هستند که به دفعات مورد استفاده قرار گرفته و به ایجاد برنامه ، مدیریت پرونده ها و کنترل دستگاههای ورودی / خروجی کمک می کنند. برنامه ساز از این امکانات برای ایجاد برنامه کاربردی استفاده می کند و این کاربردها در هنگام اجرا، این برنامه های سودمند را برای انجام بعضی وظایف فعال می کنند. مهمترین برنامه سیستمی ،سیستم عامل است. سیستم عامل جزئیات سخت افزار را از دید برنماه ساز پنهان کرده و رابط مناسبی رابرای استفاده او از سیستم فراهم می کند. لذاسیستم عامل به صورت یک میانجی برای تسهیل دسترسی برنامه ساز و برنامه های کاربردی از امکانات و خدمات عمل می کند.
به طور خلاصه، سیستم عامل معمولاً در زمینه های زیر خدمات خود را ارائه می کند:
- ایجاد برنامه : سیستم عامل امکانات وخدمات متنوعی مثل ویرایشگر و اشکال زداها را برای حمایت از ایجاد برنامهارائه می کند. معمولاص این خدمات به شکل برنامه های سودمندی هستند که واقعاً جزء سیستم عامل نیستند، اما از طریق آن قابل دسترس هستند.
- اجرای برنامه : برای اجرای یک برنامه ، کارهای مهمی لازم است انجام شود. برنامه ها و داده ها باید در حافظه اصلی بار شوند، دستگاههای ورودی / خروجی و پرونده ها باید مقدارگذاری اولیه بشوند و سایر منابع تهیه گردد. سیستم عامل همه این کارها را برای کاربر انجام می دهد.
- دسترسی به دستگاههای ورودی / خروجی : هر دستگاه ورودی / خروجی برای کار کردن به مجموعه دستورالعملها یا علامتهای کنترلی خاص خود نیاز دارد. سیستم عامل به این جزئیات می پردازد و لذا برنامه ساز می تواند به فکر خواندن و نوشتنهای ساده باشد.
- کنترل دسترسی به پرونده ها : در مورد پرونده ها ، علاوه بر ماهیت دستگاه (دیسک، نوار) ، قالب پرونده ها در روی رسانه ذخیره سازی نیز بایدمد نظر باشد. سیستم عامل نه تنها به این جزئیات می پردازد. بلکه در سیستمهایی که همزمان کاربران متعددی دارند راهکارهای حفاظتی لازم برای کنترل دسترسی به پرونده ها را هم فراهم می کند.
- دسترسی به سیستم عامل : در مورد یک سیستم عمومی یا اشتراکی ، سیستم عامل دسترسی به کل سیستم و منابع مختلف را کنترل می کند. او باید از دسترسی کاربران غیر مجاز به منابع و داده ها جلوگیری کرده و مشکلات ناشی از درگیری برای منابع را رفع کند.
- کشف و پاسخ به خطاها: هنگامی که سیستم کامپیوتری در حال اجراست. خطاهای متنوعی می تواند بروز کند؛ خطاهای سخت افزاری مثل خطای حافظه یا کار نکردن یا بد کار کردن دستگاه ، خطاهای نرم افزاری مثل سرریز شدن در محاسبات ، تلاش برای دسترسی به یکمحل دستگاه ، خطاهای نرم افزاری مثل سرریز شدن در محاسبات ، تلاش برای دسترسی به یک محل غیر مجاز از حاظهو ناتوانی سیستم عامل برای پاسخگویی به درخواست یک کاربرد. در هر صورتسیستم عامل باید با کمترین تأثیر روی کاربردهای در حال اجرا عکس العمل لازم برای برطرف کردن شرایط خطا را نشان می دهد. این عکس العمل می تواند پایان دادن به برنامه عامل خطا ، تکرار عمل و یا تنها گزارش کردن خطا به کاربرد مربوط باشد.
حسابداری : سیستم عامل خوب ، آمار استفاده از منابع مختلف را جمع آوری و به پارامترهای کارایی (مثل زمان پاسخ ) نظارت می کند. از این اطلاعات برای پیش بینی نیازهای آینده و تنظیم سیستم عامل (برای کارایی بیشتر ) استفاده می شود. در سیستمهای چندکاربرده از همین اطلاعات برای تهیه صورتحساب کاربران نیز استفاده می گردد.
سیستم عامل به عنوان مدیر منابع
کامپیوتر مجموعه ای از منابع برای انتقال ، ذخیره سازی وپردازش داده ها و همچنین برای کنترل همین اعمال است. سیستم عامل مسئول مدیریت این منابع است.
پاسخ این سئوال که آیا سیستم عامل انتقال ، ذخیره سازی و پردازش داده ها را کنترل می کند از یک دیدگاه مثبت است. از این دیدگاه که سیستم عامل با مدیریت منابع کامپیوتر ، اعمال اصلی آنرا کنترل می کند. اما این کنترل به گونه خاصی است. به طور عادی ما راهکار کنترل را چیزی خارج از عنصر کنترل شونده و یاحداقل اینکه چیزی متمایز و مجزا از آن در نظر می گیریم.(مثلاً سیستم گرمایی مسکن بوسیله ترموستات کنترل می شود که کاملاً از بخشهای تولید و توزیع گرما متمایز است). سیستم عامل اینگونه نیست و به عنوان یک راهکار کنترلی از دو جهت غیر عادیاست:
سیستم عامل مثل نرم افزارهای عادی کامپیوتر عمل می کند. یعنی یک برنامه است و توسط پردازنده اجرا می شود.
سیستم عامل مرتباً کنترل کردن را رها می کند و به دستگیری مجدد کنترل ، بستگی به اجازه پردازنده دارد.
در حقیقت سیستم عامل چیزی جز یک برنامه کامپیوتری نیست. مثل سایر برنامه ها دستورالعملهایی را برای پردازنده آماده می کند. تفاوت اصلی در قصد و نیت برنامه است. سیستم عامل پردازنده رابرای استفاده از سایر منابع سیستم و در ترتیب اجرای برنامه های دیگر هدایت می کند. امابرای اینکه پردازنده این موارد راانجام دهد . بایداجرای برنامه سیستم عامل راکنار گذاشته وبرنامه های دیگر را اجرا نماید. بنابراین سیستم عامل کنترل پردازنده را رها می کند تا پردازنده کار مفیدی انجام دهد و موقعی کنترل را دوباره به دست می گیرد که پردازنده رابرای انجام قسمت بعدی از کار آماده کند. در فصل آینده چگونگی این کار روشن خواهدشد.
بخشی از سیستم عامل در حافظه اصلی است. این بخش هسته سیستم عامل را در بردارد. اعمال هسته بیشترین تعداد دفعات استفاده راداشته ودر هر لحظه قسمتهای دیگر سیستم عامل از آنها استفاده می کنند. همچنانکه خواهیم دید تخصیص حافظه ، مشترکاً توسط سیستم عامل و سخت افزار مدیریتحافظه در پردازنده کنترل می شود. سیستم عامل در مورد زمان استفاده یک برنامه در حال اجرا از یک دستگاه ورودی / خروجی تصمیم می گیرد و دسترسی و استفاده ازپرونده ها راکنترل می کند. خود پردازنده نیز یک منبع است و لذا سیستم عامل باید میزان تخصیص وقت پردازنده به یک برنامه کاربر خاص را تعیین کند. در مورد سیستم چند پردازنده ای این تصمیم باید تمام پردازنده ها را در برگیرد.
سهولت رشد سیستم عامل
یک سیستم عامل ممکن است به دلایل زیر در طول زمان تغییر کند:
ارتقاء و انواع جدید سخت افزار : برای مثال . گونه های اولیهUNIX وOS/2به دلیل اینکه روی ماشینهای بدون سخت افزار صفحه بندی اجرا می شدند، از راهکار صفحه بندی استفاده نمی کردند. اما گونه های جدیدتر برای بهره گیری از قابلیتهای صفحه بندی تغییر یافته اند. همین طور استفاده از پایانه های گرافیکی و حالت صفحه ای (به جای پایانه های حالت خط به خط ودوران ) ممکن است در طراحی سیستم عامل اثر بگذارند . مثلاً در چنین پایانه ای ممکن است به کاربر اجازده دیدن همزمان چند کاربرد از طریق پنجره های روی صفحه نمایش داده شود. این امکان نیازمند حمایت پیچیده تری از طرف سیستم عامل است.
خدمات جدید: سیستم عامل برای پاسخگویی به خواستهای کاربران و نیازهای مدیریان سیستم ، باارائه خدمات جدید گسترش می باید. مثلاً ممکن است برای افزایش کارایی کاربران ، ابزارهای اندازه گیری و کنترلی بهتری به سیستم عامل اضافه شود. مثال دیگر کاربردهای جدیدی است که نیاز به استفاده از پنجره ها در صفحه نمایش دارند. برای حمایت از این ویژگی نیاز به ارتقاء سیستم عامل است.
رفع خطا: هر سیستم عاملی خطاهایی دارد که در طول زمان کشف و رفع می شود. البته این رفع خطا می تواند موجب خطاهای جدید گردد.
مفهوم Active directory
Active directory (AD) از مهمترین سرویس های هسته مرکزی ویندوز 2000 به شمار می آید. این سرویس انقلابی در سازماندهی محیط شبکه ویندوز 2000 به شمار می آید(بخصوص اگر آن را با سازماندهی مدل ویندوز NT مقایسه کنیم). AD محیطهای مبتنی بر ویندوز آشنای مارا به طور کامل تغییر داده است. AD در واقع نوعی سرویس متمرکز برای مدیریت سرویس های فهرست راهنمایی است، که خود به صورت توزیع شده می باشند. تمام سرویس هایی که برای ذخیره سازی اطلاعات در ویندوز 2000 از فهرست راهنما استفاده می کنند، AD را مورد استفاده قرار می دهند. این ویژگی اطلاعات را به صورت «شی ء» نگهداری می کند (که خوداز دیگر مفاهیم ناآشنای دنیای ویندوز می باشد) . در این فصل نکته های مبهم AD ، و اثر آن بر بیشتر جنبه های محیط شبکه ویندوز 2000 (اگر نگوییم همه آنها) . را روشن خواهیم کرد.
سرویس های فهرست راهنما
بیایید این حقیقت را بپذیریم ، که فهرستهای راهنما همه جا هستند . فهرستهای راهنما مخزن اطلاعات مختلف به شمار می آیند. یکی از قدیمی ترین فهرست های راهنما که می توان مثال زد. کتابچه راهنمای تلفن می باشد. این فهرست حاوی نام ، آدرس و شماره تلفن افراد است ، و همه می توانند آن را مورد استفاده قرار دهند. برای افرادی که نمی خواهند برای جستجو به دنبال شماره تلفن افرادیا شرکتها وقت صرف کنند، شرکتهای تلفن خدماتی نیز به صورت «مراکز راهنمای تلفن » ارائه کرده اند (که آنها نیز در واقع فهرست راهنمای تلفن می باشند) .در این حالت تنها کاری که باید انجام دهید، این است که بعد از گرفتن شماره آنها (مثلا 118) واعلام نام فرد یا شرکت موردنظر ، اطلاعاتی مانند شماره تلفن و محل آنهارا به دست آورید.
در دنیای کامپیوتر فهرست راهنما مفهوم جدیدی به شمار نمی آید. اما تعریف فهرست راهنما در این مورد می تواند نامتجانس و یا متفاوت باشد. برنامه های کاربردی ، مانند سرویس گیرنده های پست الکترونیکی ، و یاسیستم های مبتنی بر پایگاه داده ها ، هر کدام فهرست راهنمای اختصاصی خود را برای شبکه ارائه می کنند. همچنین نگارشهای قبلی ویندوز 2000، مانند ویندوز NT (نگارش 3.xو 4.0 ) نیز به نوبه خود سرویس های مختلفی در رابطه با فهرستهای راهنما ارائه می کنن. مثلاً کاربر، مجوزهای ایمنی ، شرح ، وپیش طرح مربوط به او ، همگی در فهرست راهنمای SAM ویندوز NT نگهداری می شوند. سایر فهرستهای راهنما که در فهرست راهنمای SAM قرار نداشته باشند. باید در دفتر ثبت نگهداری شوند، و یا نگهداری آن به عهده برنامه کاربری باشد، که از اطلاعات آن استفاده می کند. وقتی قابلیت ارسال و دریافت پیغامهای پست الکترونیکی را با یکدیگر ترکیب کنید، در واقع دو نوع فهرست راهنمای متفاوت را ایجاد می کنید، که یکی برای شماره عضویت کاربر، و دیگری برای شماره عضویت پست الکترونیکی می باشد. حالا نکته مهمی که باید به آن توجه کنید، این است که اگر چه می توان شماره عضویت کاربرد در ویندوز NT را در ارتباط با Microsoft exchange Server(نگارش 5/5 و پایین تر) مرتبط کرد، اما این دو سرویس قابلیت یکپارچه شدن چندان زیادی با یکدیگر ندارند. زیرا همچنان فهرست های راهنمای مجزای خود را حفظ می کنند یعنی باز هم ناچارید دو شماره عضویت ایجاد کنید.)
اما اکنون سرویس های فهرست راهنما به نقطه ایجاد فهرست راهنمایی با عملکرد استاندارد رسیده اند. به این ترتیب فهرستهای راهمای متحد شده ای ایجاد می شوند، که می توانند اطلاعات مختلفی از منابع متفاوت را شامل شوند. این منابع ممکن است برنامه های کاربردی متفاوت از یک فروشنده منفرد باشند، و یا حتی به محصولات سایر فروشندگان نیز اجازه دهند، تا اطلاعات خود را به اشتراک بگذارند، به این ترتیب یک فهرست راهنمای منفرد ایجاد خواهد شد.
مفهوم سرویس های فهرست راهنما
امروزه کامپیوترها تقریباً تمام جنبه های کارهای تجاری ،از تراشکاری ، تا پیشگویی وضع هوا را در دست خود گرفته اند، و اطلاعات نیز به صورت منظم نگهداری می شوند. روش مرسوم قدیمی برای نگهداری مقادیر عظیم اطلاعات این بود که آنها را در کامپیوترهای مختلف توزیع کنند. این روش بر روی عملکرد شرکتهایی که مشغول کارهای تجاری می باشند، اثر نامطلوبی دارد. زیرا در این حالت ارتباط بین این کامپیوترها فقط به شرایطی که «بهترین شرایط ممکن» نامیده می شوند. محدود خواهد شد. در حقیقت ساختار ذاتی بیشتر فهرستهای راهنما به گونه ای است ، که از یکدیگرمجزا با شند. این روش ارتفاع منحنی یادگیری رابا لاترخوا هد برد ( یعنی مدیران شبکه با ید چندین سیستم مختلف را بیا موزند ). همچنین کارهای اضافی، وافزایش هزینه لازم برای پشتیبانی از آنها را نیز به دنبال خواهد دا شت.با استفاده از مثال فوق،اگر می خواستید فقط سرویس ها ی فایل،چاپ، وپست الکترونیکی را به کار بران خود ارائه کنید ، ناچارمی شوید ،کارها ی مدیریتی خودرا دو برابر کنید ،زیرا به جای یک شماره عضویت به ازای هر کاربر ،دوشماره عضویت داشتید ،که باید بر روی آنها کارمی کردید.همچنین اگر درچنین شرایطی کار بری شرکت را ترک کند، چطور؟آیا برنامه های کاربردی متعددی وجود دارند،که باید برای غیر فعال کردن یا حذف شماره عضویت کار بر در آنها ،باید تغییریا بند؟
سرویس دهنده ای فهرست راهنما درحال تغییر روش انجام کارهای تجاری توسط شرکتها میبا شند. یعنی به جای اینکه نیازهای زیر مجموعه کوچکی از کار مورد نظر ( مانند سرویس های پست الکترونیکی )را در نظر بگیرد ،کل نیازها ی شغل مر بوطه را دربرمی گیرند .سرویس های فهرست راهنماروشی هستند ،که اطلا عات را سازماندهی می کنند، وکارهای روزمره را از دوش ما برمی دارند.این سرویسها به صورت انبار عمل می کنند.در این انبارها می توان شیءهای مختلفی که حاوی اطلاعات (مانند نامها،آدرسها،شماره های تلفن،آدرسهای پستهای الکترونیکی،تاریخ تولدها،محل بخشها و بسیاری اطلاعات دیگر)می باشند.را ذخیره کرد،و هر فرد (یا برنامه ای)بتواند اطلاعات مزبور را بدست آورد.لزومی ندارد که شیءهای ذخیره شده فقط اطلاعات مربوط به کاربران باشند،این شیءها می توانند آیتم های فروشگاه خواروبار ،اطلاعات مربوط به کامپیوترها ،اطلاعات مربوط به وسیله های چاپ کننده،و غیره باشند.سرویسهای فهرست راهنما فقط پایگاههای داده ها متمرکز نیستند،بلکه باید سرویسهای فهرست راهنما را به صورت خاصی از پایگاه داده ها در نظر گرفت،که تمام سرویسها و اطلاعات مربوط به شبکه را بتوان در آن ذخیره و یا پیدا کرد.
علاوه بر این سرویسهای فهرست راهنما این امکان را برایتان فراهم می کند که بتوانید اطلاعات موجود در آنها را به صورت مرکزی کنترل کنید(یعنی عملکردهایی ماننند اضافه کردن ،حذف کردن،و ایجاد تغییر در اطلاعات را به صورت مرکزی انجام دهید).به عبارت دیگر ناجار نیستید کارهایی مانند تعیین کاربرانی که مجاز هستند به پایگاه داده ها دسترسی داشته باشند،صدور مجوز برای پیکربندی مجدد توسط کاربران،حذف شماره عضویت در پست الکترونیکی،و یا مدیریت پارامترهای تنظیم چاپگر را خودتان انجام دهید.سزویسهای فهرست راهنما سعی می کنند پراکندگی موجوددر محیطهای شبکه تقسیم شده را به سمت متحد شدن هدایت کنند.با ترکیب سزویسهای شبکه و اطلاعلات در یک موجودیت واحد،نیاز به پشتیبانی مدیر شبکه را کاهش دهید. به این ترتیب هزینه کلی صاحب طرح (یعنیTCO که سرنام کلمه های total cost of owner ship می باشد) را کاهش دهید. تعیین میزان واقعی TCO مشکل است،به طور کلی می توان گفت TCO با بزرگی محیط شبکه متناسب است،مثلاً می توان گفت محیطهای کوجک با یک یا دو سرویس دهنده که فقط ساختارهای زیرنایی را پشتیبانی میکنند،هیچگاه مزیتهای شرکتهای بزرگ با صدها یا هزاران سرویس دهنده و خدماتی که باید پشتیبانی شوند را شامل نمی شوند.نکته مهمی را که باید در نظر بگیرید این است که تمام محیطهای این شبکه از مزیتهای یک سرویس فهرست راهنمای منفرد استفاده می کنند.
امروزه سرویس های راهنمای متعددی برای محیطهای شبکه وجود دارد که تعدادی از آنها به شرح زیر می باشند(که البته این فهرست تمام موارد را شامل نمی شود).