دانلود کتاب سیستم عامل ویلیام استالینگز
کتاب سیستمعامل نوشته ویلیام استالینگز، یک منبع جامع درباره طراحی و معماری سیستمعاملها است. این کتاب در هشت بخش اصلی سازماندهی شده و مفاهیمی مانند مدیریت فرآیندها، حافظه، همزمانی، زمانبندی و امنیت را بررسی میکند. نویسنده با رویکردی ساختاری، اصول و مبانی طراحی سیستمهای عامل را شرح داده و مثالهایی از سیستمهای مختلف از جمله ویندوز و لینوکس ارائه میدهد.
ساختارهای کنترل سیستم عامل
اگر قرار است سیستم عامل فرآیندها و منابع را مدیریت کند، باید اطلاعاتی در مورد وضعیت فعلی هر فرآیند و منبع داشته باشد. رویکرد جهانی برای ارائه این اطلاعات ساده است: سیستم عامل جداول اطلاعات را در مورد هر موجودیتی که مدیریت می کند ایجاد و نگهداری می کند. یک ایده کلی از دامنه این تلاش در شکل 3.11 نشان داده شده است که چهار نوع جداول مختلف را نشان می دهد که توسط سیستم عامل نگهداری می شوند: حافظه، I/O، فایل و فرآیند. اگرچه جزئیات از سیستمعاملی به سیستمعامل دیگر متفاوت است، اما اساساً همه سیستمعاملها اطلاعات را در این چهار دسته نگهداری میکنند.
جداول حافظه برای پیگیری حافظه اصلی واقعی و ثانویه مجازی استفاده می شود. برخی از حافظه اصلی برای استفاده توسط سیستم عامل رزرو شده است. بقیه برای استفاده توسط فرآیندها در دسترس است. فرآیندها بر روی حافظه ثانویه با استفاده از نوعی حافظه مجازی یا مکانیسم تعویض ساده نگهداری می شوند. جداول حافظه باید شامل اطلاعات زیر باشد:
- تخصیص حافظه اصلی به فرآیندها
- تخصیص حافظه ثانویه به فرآیندها
- هر گونه ویژگی حفاظتی بلوک های حافظه اصلی یا مجازی، مانند اینکه کدام فرآیندها ممکن است به مناطق خاصی از حافظه مشترک دسترسی پیدا کنند.
دانلود کتاب سیستم عامل استالینگز
ما ساختارهای اطلاعاتی برای مدیریت حافظه را در قسمت سوم به تفصیل بررسی می کنیم.
جداول I/O توسط سیستم عامل برای مدیریت دستگاه های I/O و کانال های سیستم کامپیوتری استفاده می شود. در هر زمان معین، یک دستگاه I/O ممکن است در دسترس باشد یا به یک فرآیند خاص اختصاص داده شود. اگر عملیات I/O در حال انجام است، سیستم عامل باید از وضعیت عملیات I/O و مکان در حافظه اصلی که به عنوان منبع یا مقصد انتقال I/O استفاده می شود، بداند. مدیریت I/O در فصل 11 مورد بررسی قرار گرفته است.
سیستم عامل ممکن است جداول فایل را نیز حفظ کند. این جداول اطلاعاتی در مورد وجود فایل ها، موقعیت آنها در حافظه ثانویه، وضعیت فعلی آنها و سایر ویژگی ها ارائه می دهد. بسیاری از این اطلاعات، اگر نگوییم همه، ممکن است توسط یک سیستم مدیریت فایل نگهداری و استفاده شوند، در این صورت، سیستم عامل اطلاعات کمی از فایل ها دارد یا اصلاً دانش ندارد. در سایر سیستم عامل ها، بسیاری از جزئیات مدیریت فایل توسط خود سیستم عامل مدیریت می شود. این موضوع در فصل 12 بررسی شده است.
در نهایت، سیستم عامل باید جداول فرآیند را برای مدیریت فرآیندها حفظ کند. بقیه این بخش به بررسی جداول فرآیند مورد نیاز اختصاص دارد. قبل از پرداختن به این بحث باید به دو نکته اضافی اشاره کرد. اولاً، اگرچه شکل 3.11 چهار مجموعه جداول متمایز را نشان می دهد، باید واضح باشد که این جداول باید به نحوی به یکدیگر مرتبط یا ارجاع داده شوند. حافظه، ورودی/خروجی و فایلها به نمایندگی از فرآیندها مدیریت میشوند، بنابراین باید به طور مستقیم یا غیرمستقیم به این منابع در جداول فرآیند اشاره شود. فایل های اشاره شده در جداول فایل از طریق دستگاه I/O قابل دسترسی هستند و در برخی مواقع در حافظه اصلی یا مجازی خواهند بود. خود جداول باید توسط سیستم عامل قابل دسترسی باشند و بنابراین تابع مدیریت حافظه هستند.
کتاب سیستم عامل ویلیام استالینگز
دوم، سیستم عامل چگونه می داند که جداول را در وهله اول ایجاد کند؟ واضح است که سیستمعامل باید اطلاعاتی در مورد محیط اولیه داشته باشد، مانند اینکه چقدر حافظه اصلی وجود دارد، دستگاههای ورودی/خروجی چیست و شناسههای آنها چیست و غیره. این یک مشکل پیکربندی است. یعنی وقتی سیستم عامل اولیه می شود، باید به برخی از داده های پیکربندی که محیط اصلی را تعریف می کنند، دسترسی داشته باشد و این داده ها باید خارج از سیستم عامل، با کمک انسان یا برخی از نرم افزارهای پیکربندی خودکار ایجاد شوند.
ساختارهای کنترل فرآیند
آنچه را که سیستم عامل برای مدیریت و کنترل یک فرآیند باید بداند، در نظر بگیرید. ابتدا باید بداند که فرآیند در کجا قرار دارد. دوم، باید ویژگی های فرآیند را که برای مدیریت آن ضروری است بداند به عنوان مثال، شناسه فرآیند و وضعیت فرآیند.
مکان فرآیند قبل از اینکه بتوانیم به سؤالاتی بپردازیم که یک فرآیند در کجا واقع شده است یا ویژگی های آن چیست، باید به یک سؤال اساسی تر بپردازیم: تجلی فیزیکی یک فرآیند چیست؟ حداقل، یک فرآیند باید شامل یک برنامه یا مجموعه ای از برنامه ها باشد که باید اجرا شوند. با این برنامه ها مجموعه ای از مکان های داده برای متغیرهای محلی و سراسری و هر ثابت تعریف شده مرتبط است. بنابراین، یک فرآیند حداقل از حافظه کافی برای نگهداری برنامه ها و داده های آن فرآیند تشکیل شده است. علاوه بر این، اجرای یک برنامه معمولاً شامل یک پشته به پیوست P مراجعه کنید است که برای پیگیری فراخوانیهای رویه و ارسال پارامتر بین رویهها استفاده میشود. در نهایت، هر فرآیند دارای تعدادی ویژگی است که توسط سیستم عامل برای کنترل فرآیند استفاده می شود. به طور معمول، مجموعه ای از ویژگی ها به عنوان یک بلوک کنترل فرآیند نامیده می شود. می توانیم به این مجموعه از برنامه، داده ها، پشته و ویژگی ها به عنوان تصویر فرآیند اشاره کنیم جدول 3.4.
مکان تصویر فرآیند به طرح مدیریت حافظه مورد استفاده بستگی دارد. در ساده ترین حالت، تصویر فرآیند به عنوان یک بلوک پیوسته یا پیوسته از حافظه حفظ می شود. این بلوک در حافظه ثانویه، معمولاً دیسک، نگهداری می شود. برای اینکه سیستم عامل بتواند فرآیند را مدیریت کند، حداقل بخش کوچکی از تصویر آن باید در حافظه اصلی نگهداری شود. برای اجرای فرآیند، کل تصویر فرآیند باید در حافظه اصلی یا حداقل حافظه مجازی بارگذاری شود. بنابراین، سیستم عامل باید مکان هر فرآیند روی دیسک و برای هر فرآیندی که در حافظه اصلی است، مکان آن فرآیند در حافظه اصلی را بداند. ما تغییرات کمی پیچیدهتر را در این طرح با سیستمعامل CTSS در فصل 2 دیدیم.