یک سیستم عامل نرم افزاری است که سخت افزار کامپیوتری را مدیریت میکند. سختافزار بایستی مکانیزم های مناسب را برای تضمین عملکرد صحیح سیستم کامپیوتری فراهم نماید. همچنین بایستی از اختلال کاربرد در برنامه های سیستمی ممانعت کند. همانطور که در بخش اول و دوم درباره سازمان معماری و ساختار سیستم عامل بحث و گفتوگو کردیم، امروز قرار است درباره مدیریت حافظه و ذخیره سازی و همینطور چندین مسئله دیگر صحبت کنیم و به این موضوعات بپردازیم.
چندین سیستم کامپیوتری وجود دارد که جهت ارائه سرویس های خاص طراحی شده اند. این سیستم ها شامل سیستم عامل های بلادرنگ هستند که برای محیطهای تعبیه شده و نهفته همانند خودرو ها و ربات ها به کار گرفته میشوند. سیستم عامل های بلادرنگ دارای محدودیت های زمانی هستند بدین صورت تابع مورد نظر بایستی در زمان مورد نیاز اجرا گردد وگرنه منجر به شکست میشود. سیستمهای چندرسانهای درگیر ارائه و تحویل دادههای چندرسانهای هستند که نیازمندیهای خاصی همانند نمایش و اجرای داده های صوتی، تصویری، ویدئویی و رشته های ویدیویی و صوتی-تصویری هستند.
مدیریت حافظه
حافظه اصلی، مرکز عملیات یک سیستم کامپیوتری مدرن است. حافظه اصلی یک آرایه بزرگ از کلمه ها یا باید ها در تعداد ۱۰۰ هزار تا میلیارد است. هر کلمه یا بایت، آدرس خودش را دارد. حافظه اصلی، مخزن داده های اشتراکی با دسترسی سریع است که توسط CPU و دستگاههای ورودی خروجی به اشتراک گذاشته می شود. پردازنده مرکزی در سیکل واکشی داده، داده ها را از حافظه اصلی خوانده و با بر روی آن می نویسد.
برای اینکه یک برنامه اجرا شود، بایستی به آدرس های مطلق نوشته شده و به درون حافظه اصلی باز گردد. هنگام اجرای برنامه، از طریق همین آدرس های مطلق می توان به دستورالعمل و داده برنامه در حافظه اصلی دسترسی داشت. هنگامی که اجرای یک برنامه به اتمام می رسد، فصای حافظه اش برای سایرین در دسترس اعلام شده و برنامه های دیگر می توانند بار شده و اجرا گردند.
برای بهبودی بهره وری CPU و سرعت پاسخگویی کامپیوتر، کامپیوتر های همه منظوره بایستی چندین برنامه را در حافظه نگه دارند که این مسئله نیاز به مدیریت حافظه دارد. طرح های مدیریت حافظه زیادی استفاده شده اند که اثر بخشی هر یک از این الگوریتم به شرایط وابسته است. برای انتخاب یک طرح مدیریت حافظه برای سیستم بایستی به فاکتور های زیادی به خصوص طرح سخت افزار سیستم توجه کنیم.
سیستم عامل در ارتباط با مدیریت حافظه کارهای زیر را بر عهده دارد:
- ثبت اینکه چه بخش هایی از حافظه هم اکنون استفاده شده اند و چه کسی از آنها استفاده کرده است؟
- تصمیم گیری در مورد اینکه کدام فرآیند یاد داده باید به حافظه آورده شود و یا از آن خارج گردد
- تخصیص فضای حافظه مورد نیاز و باز پس گیری از آن
مدیریت ذخیره سازی
جهت سهولت کاربران، سیستم عامل یک دید یکپارچه و منطقی را از منابع ذخیره سازی ارائه میکند. سیستم عامل برای معرفی یک واحد ذخیرهسازی منطقی به نام فایل یک سطح از مجرد سازی را در دستگاه های ذخیره سازی انجام میدهد. باس سیستمعامل، وظیفه نگاشت این فایل ها به محیط فیزیکی و همچنین دسترسی به فایل ها توسط دستگاه های ذخیره سازی را بر عهده دارد.
مدیریت سیستم فایل
مدیریت فایل، یکی از مولفههای برجسته در هر سیستم عامل است. کامپیوتر ها می توانند اطلاعات را در انواع مختلفی از محیط فیزیکی ذخیره کنند که از جمله آنها میتوان به دیسک های مغناطیسی دیسک های نوری و نوارهای مغناطیسی اشاره کرد. هر یک از این محیط ها، ویژگیها و سازماندهی های فیزیکی خاص خود را دارند که توسط یک دستگاه کنترل می شوند، همانند درایو دیسک یا درایو نوار دستگاه های کنترل کننده نیز دارای ویژگی های خود هستند. برای مثال هر یک از این دستگاه ها دارای سرعت دسترسی، ظرفیت ذخیره سازی، نرخ انتقال داده و روش های دسترسی (ترتیبی یا تصادفی) خاص خود هستند.
یک فایل، مجموعه ای از اطلاعات مرتبط است که این ارتباط توسط به وجود آورنده آن تعریف میشود. معمولاً فایل ها ، هم برنامه ها و هم داده ها را در بر میگیرند. فایل های داده میتواند به صورت اعداد، الفبا یا باینری باشند. مفهوم یک فایل یک مفهوم کلی است که برای آن میتوان دسته بندی متعددی را عنوان نمود.
سیستم عامل در ارتباط با مدیریت فایل، وظایف زیر را بر عهده دارد:
- ایجاد نمودن فایل ها و از بین بردن آن ها
- گروه بندی کردن دایرکتوری ها و از بین بردن آنها برای سازماندهی فایل ها
- ارائه سرویس هایی جهت دستکاری فایل ها و دایرکتوری ها
- نگاشت فایل ها به دستگاه های ذخیره سازی ثانویه
- پشتیبانی فایل ها در محیط های ذخیره سازی پایدار
مدیریت منابع ذخیره سازی حجیم
از آنجایی که حافظه اصلی برای جا دادن تمامی داده ها و برنامه ها خیلی کوچک است و پس از قطع منبع تغذیه داده های آن از بین میروند، سیستم کامپیوتری بایستی منابع ذخیره سازی ثانویه را برای پشتیبانی از حافظه اصلی در اختیار قرار دارد بیشتر از سیستم های کامپیوتری از دیسک ها به عنوان محیط ذخیره سازی اصلی جهت داده ها و برنامه های خود استفاده می کنند و اغلب برنامه ها همانند کامپایلرها پردازشگرهای کلمه ویرایشگرها تا زمانی که به حافظه اصلی بار شوند در دیسک قرار می گیرند.دیسک ها هم به عنوان مبدا و هم به عنوان مقصد داده های پردازش های حافظه اصلی مورد استفاده قرار می گیرند. بنابراین مدیریت صحیح دیسک دارای اهمیت زیادی است.
سیستم عامل در ارتباط با مدیریت دیسک وظایف زیر را بر عهده دارد:
- مدیریت فضای خالی
- تخصیص حافظه
- زمان بندی دیسک
حفاظت و امنیت
اگر یک سیستم کامپیوتری دارای چندین کاربر بوده و اجرای همزمان چندین فرآیند مجاز باشد، باید دسترسی به داده ها دارای یک نظم و ترتیب و سیاست باشد. حفاظت، متشکل از مجموع مکانیزم هایی است که کنترل دسترسی فرایند یا کاربران به منابع تعریف شده توسط سیستم کامپیوتری را انجام میدهد. این مکانیزم ها بایستی افزایی را برای تشخیص و تحلیل کنترل ها در اختیار قرار دهند.
حفاظت می توانند با استفاده از تشخیص خطاهایی که در واسطههای ما بین زیر سیستمهای مولفه پنهان شدهاند، قابلیت اطمینان سیستم را بهبود دهد. منابع حفاظت شده نمی توانند در مقابل کاربران شناسایی نشده و نامعتبر عکس العمل مناسبی نشان دهند.
اما بایستی در نظر بگیریم که سیستمی که دارای مکانیزم های حفاظتی کافی نیز هست ممکن است در مقابل دسترسی های غیر مجاز شکست بخورد. برای مثال در نظر بگیرید که اطلاعات هویتی یک کاربر مجاز در اختیار کاربر غیر مجاز قرار بگیرد. لذا به راحتی فایل های آن کپی شده و یا از بین برده میشود حال وظیفه مولفه امنیت است که سیستم را در مقابل حملات درونی و بیرونی محافظت نماید.
حفاظت و امنیت نیازمند این هستند که بتوانند کاربران را از هم تمییز دهند. بسیاری از سیستم عامل ها یک لیست از نام و مشخصات های کاربر را نگه می دارند برای مثال در ویندوز ویستا برای کاربران یک آیدی امنیتی وجود دارد. این آیدی ها برای هر کار برای یکتا هستند. هنگامی که کاربر وارد سیستم می شود مولفه شناسایی، ID کار مناسب را برای کاربر تعیین نموده و مجموعه عملیات مشخصی را برای آن مجاز می کند. در برخی از محیط ها این تخصیص مجوز به گروه های کاری انتساب میشود و برای دادن دسترسی به یک کاربر باید آن کاربران عضو آن گروه نمود.
نهان سازی
نهان سازی، یک اصل مهم در سیستمهای کامپیوتری است. اطلاعات به طور معمول در دستگاه های ذخیره سازی، همانند حافظه اصلی ذخیره میشوند. اطلاعاتی که مورد استفاده قرار می گیرند به حافظه سریعتری به نام حافظه نهان منتقل می شوند. هنگامی که به اطلاعات خاصی نیاز داریم ابتدا جستجو در حافظه نهان انجام میدهیم. اگر اطلاعات در آن موجود بود که آن را واکشی میکنیم و گرنه از حافظه اصلی آنرا واکشی نموده و یک کپی از آن را در حافظه نهان قرار میدهیم با این فرض که به زودی به آن نیاز خواهیم داشت.
افزون بر این، رجیستر های قابل برنامه ریزی درونی همانند رجیسترهای شاخص، یک حافظه نهان پرسرعت را برای حافظه اصلی فراهم میکنند. برنامه نویس (کامپایلر) با استفاده از الگوریتم های تخصیص و جایگزینی رجیستر تصمیم میگیرند که چه اطلاعاتی در این رجیسترها و چه اطلاعاتی در حافظه اصلی نگهداری شود. چندین سطح حافظه نهان در سخت افزار وجود دارد. برای مثال بسیاری از سیستم حافظه نهان دستورالعمل برای نگهداری دستورالعمل هایی که در آینده اجرا خواهد شد، دارند. بدون استفاده از حافظه نهان CPU مجبور است چندین سیکل منتظر بماند تا دستورالعمل از حافظه اصلی واکشی شود.
از آنجایی که سایز حافظه نهان محدود است، مدیریت حافظه نهان یک مسئله مهم در طراحی است. انتخاب دقیق سایز حافظه نهان و سیاست جایگزینی می تواند، بهره وری سیستم را بسیار افزایش دهد.
ساختار حافظه نهان، یک ساختار سلسله مراتبی است. در یک ساختار سلسله مراتبی در حافظه نهان دادههای یکسان ممکن است در سطوح مختلف سیستم ذخیره سازی باشند. برای مثال فرض کنید عدد صحیح A که یکی به آن افزوده شده است در فایل B قرار داده شده و فایل B در دیسک مغناطیسی قرار دارد. سپس مقدار A با کپی کردن در حافظه نهان و رجیستر های درونی قرار میگیرد. لذا یک کپی از A در مکانهای مختلفی قرار میگیرد با انجام عملیات بر روی A در رجیستر درونی، مقدار A رجیستر درونی با مقدار آن در حافظه نهان و دیسک متفاوت خواهد شد و لذا باید یک بروزرسانی با نوشتن دوباره A از رجیستر به دیسک مغناطیسی انجام شود.
در محیط های توزیع شده، این شرایط بسیار پیچیدهتر میشود. چرا که گاها اتفاق میافتد که چندین کپی از یک فایل در کامپیوتر های مختلف سطوح مختلف وجود دارند.
سخن پایانی
در این مقاله سعی شد تا درباره مدیریت حافظه های اصلی و نهان و همینطور حفاظت و امنیت بپردازیم و اگر دوست داشتین این مقاله رو به دوستان خود به اشتراک بگذارید. در بخش بعدی مقاله قرار است به سیستم عامل های متن باز و انواع سیستم عامل ها بپردازیم و آن ها را به شما معرفی کنیم.
0 تا 100 یادگیری سیستم عامل - بخش اول
0 تا 100 یادگیری سیستم عامل - بخش دوم