
نویسنده: محمود نقیب زاده

مترجم: مترجم موجود نیست
تاریخ انتشار: 1390
ویراستار: ویراستار کتاب در دسترس نیست
شابک (ISBN): 978-964-386-191-9
ناشر: دانشگاه فردوسی مشهد
شمارگان (تیراژ): 1000
نوبت چاپ: 2
تعداد صفحات: 400
فروست انتشارات: 524
قطع: وزیری
نوع جلد: شومیز
اطلاعات بیشتر:
عنوان به انگلیسی: عنوان انگلیسی در دسترس نیست
قیمت چاپی: 500,000
قیمت کتاب الکترونیکی (ریال): قیمت الکترونیکی موجود نیست
انسان امروزی برای انجام بیشتر فعالیتهای پیشرفته خود از کامپیوتر بهره میبرد. استفاده از رایانه به سن خاصی محدود نمیگردد و توسط پیر و جوان و زن و مرد و در محیطهای گوناگون به کار گرفته میشود. تصور عامیانه از یک کامپیوتر مجموعهای از دستگاهها مانند، صفحه نمایش، صفحه کلید، موش، جعبه اصلی و... است که یکجا سخت افزار نامیده میشود. در یک جلسه کار با کامپیوتر ابتدا آن را روشن کرده چند ثانیه صبر میکنیم که آماده شود، و سپس از سیستم عامل میخواهیم برنامهای را برای ما اجرا کند. لذا این یک دیدگاه درست است که هر کامپیوتر یک سیستم عامل دارد.
سیستم عامل مهم ترین برنامه در کامپیوتر است و بدون وجود آن کار با کامپیوتر سخت و ملال آور است. این نرم افزار رابطی بین سخت افزار و کاربر است که کار با کامپیوتر را سادهتر و لذت بخش میکند. آشنا شدن با سیستم عامل استفاده از کامپیوتر را سادهتر میکند و کمک میکند که کاراتر از امکانات آن استفاده کنیم و کارهای خود را به خوبی انجام دهیم. سیستم عامل به گونهای طراحی و پیاده سازی میگردد که از سخت افزار به شکل مطلوب و با بهرهوری بالا در جهت اجرای درخواستهای کاربران استفاده کند. لذا بهتر است انواع خدمات قابل ارائه توسط کامپیوتر و نحوه استفاده از این خدمات را بدانیم. سیستم عامل باید به گونهای طراحی گردد که از سخت افزار به بهترین شکل در جهت اجرای درخواستهای کاربران استفاده کند. در این راستا تلاش فراوانی شده است. از بدو اختراع کامپیوتر در دهه 1940 متخصصان همت زیادی صرف روان سازی کار با این نرم افزار از یک طرف و بالا بردن کارایی آن از طرف دیگر کردهاند. حاصل این تلاشها شاهکاری است که ثمره سخت کوشیها و نوآوریهای فراوان را یکجا جمع کرده است.
دهها سیستم عامل با اندازهها و نامهای مختلف و صدها کتاب و منبع علمی برای بیان روش استفاده از آنها وجود دارد. از آن گذشته مؤلفان زیادی منابعی را در ارتباط با تشریح اصول طراحی سیستم عامل نوشتهاند. تالیفهای از این دسته توسط متخصصان مرتبط و دانشجویان دانشگاهها که در این زمینه درس انتخاب میکنند، مورد استفاده قرار میگیرد.
در این کتاب، ابتدا راجع به روش تسلط سیستم عامل بر سخت افزار و مالک شدن آن، که کمتر صحبت شده است، بحث خواهد شد. این دانش به همراه یک دیدگاه کلی از مسئولیتهای سیستم عامل و روش انجام این مسئولیتها امتیازی است که فرد را برای استفاده بهتر از امکانات کامپیوتر آماده میکند. از آن گذشته، میتواند زمینه خوبی برای درک بهتر مفاهیم علمی آن باشد. در ادامه به بیان مفاهیم، روشها و فنون به کار رفته در طراحی سیستمهای عامل پرداخته شده است.
این کتاب برای همه کسانی است که از کامپیوتر استفاده میکنند اما با آن راحت نیستند و نمیدانند چگونه سیستم عامل منابع را به بهترین شکل به کار میگیرد که درخواستهای کاربران را صحیح و سریع انجام دهد. دانشجویان به این دلیل که برای بیشتر کارهای آموزشی، پژوهشی، اینترنت، و حتی تفریح خود کامپیوتر را به کار میگیرند از این کتاب بیشترین استفاده را خواهند برد. آنها عمدتا کنجکاو هستند و میخواهند درباره نرم افزاری که پشت پرده کمک میکند همه چیز یک جریان روان داشته باشد، بیشتر بدانند. بویژه دانشجویان تکنولوژی اطلاعات و علوم و مهندسی کامپیوتر بیشترین بهره را خواهند برد. به نظر من هر دانشجو که درس دانشگاهی سیستم عامل را میگیرد باید این کتاب را بخواند. این کتاب شرح دقیقی از مفاهیم پیشرفته زمینه را به همراه روش بکارگیری آن در سیستمهای عامل مطرح روز تدوین کرده است. حجم کتاب با حذف برخی از مباحث طولانی که تنها جنبه تاریخی دارد و دانش روز محسوب نشده و کاربرد جاری ندارد به حداقل کاهش یافته است.
در فصل اول، یک مدل ساده از سخت افزار کامپیوتر تدوین شده است. در این مدل از هرگونه جزئیاتی که به مباحث اصلی کتاب مربوط نمیگردد اجتناب شده است. تمرکز اصلی این فصل بر تشریح سیکل واکشی و اجرای دستورات است. بر ریزه کاریهای این عملیات که در فصلهای بعدی به آنها نیاز خواهد بود تاکید گردیده است.
در فصل دوم، نقش نرم افزار عملیات ورود و خروج سیستم در وارسی اولیه سخت افزار و روش بالا آمدن سیستم عامل را بررسی کردهایم. ساختار سلسله مراتبی در پیاده سازی سیستم عامل مورد توجه قرار گرفته و در مورد هسته سیستم عامل و نقش آن در کمک رسانی به نیازهای لایههای بالاتر سیستم عامل صحبت شده است. حراست و حفاظت به عنوان دو موضوع اساسی نیز مورد توجه قرار گرفته است.
فصل سوم، لزوم استفاده از چند برنامهای، چند وظیفه ای، چند پردازشی و چندنخی را بیان میکند. شرح مختصری از حالتهای فرآیند، نمودار انتقال از حالتی به حالت دیگر، پرش از فرآیندی به فرآیند دیگر، سیستم وقفه، و سیستم دستیابی مستقیم به حافظه اصلی در این فصل آمده است.
فصل چهارم به فرآیند اختصاص دارد. به سوالهای زیادی پاسخ داده شده است. فرآیند چیست؟، چرا و چگونه ساخته میشود؟، چه اطلاعاتی برای مدیریت فرآیندها لازم است؟، چگونه یک فرآیند پایان میپذیرد؟، رابطه بین فرآیند پدر و فرآیند فرزند چیست؟ و چه زمانی فرآیند تمام میشود؟، برخی از این سوالها هستند. گفتار کوتاهی راجع به ویژگیهای سیستمهای عامل مبتی بر فرآیند به اختصار به بحث گذاشته شده است. مثالهای عملی این فصل را از سیستم عامل یونیکس که یک سیستم عامل مبتنی بر فرآیند است آوردهایم. یکی از موضوعهای مهم تعیین وضعیتهای یک فرآیند و نقل و انتقالهای ممکن بین وضعیتها است که بخش مهمی از فصل را تشکیل میدهد.
فصل پنجم به نخ اختصاص داده شده است. باوجود فرآیند، نیاز به نخ و رابطه این دو را روشن کردهایم. برخی از سیستمهای عامل مبتنی بر نخ هستند. توابع هسته اینگونه سیستمهای عامل توسط نخ انجام میشود. چرا و چگونه نخ تولید میشود؟ به چه اطلاعاتی برای مدیریت نخها نیاز است؟ یک نخ چگونه پایان میپذیرد؟ و رابطه بین نخ پدر و نخ فرزند چیست در این فصل بررسی شده است. حالتهای نخها را بررسی کردهایم و نقل و انتقالهای ممکن بین این حالتها به بحث گذاشته شده است. مثالهای این فصل را از سیستم عامل ویندوز آوردهایم که یک سیستم عامل مبتنی بر نخ است.
زمانبندی موضوع فصل ششم است. زمانبندی یکی از مفاهیم تاثیرگذار بر طراحی سیستمهای عامل است. در ابتدا واژههای کلیدی زمانبندی مانند زمان درخواست، زمان پردازش، اولویت، ضرب الاجل، مدت انتظار و قبضه پذیری را تعریف و تشریح کردهایم. در ادامه اهداف زمانبندی مانند بیشینه کردن برون دهی، رعایت ضرب الاجل، کاهش متوسط مدت پاسخگویی، بیشینه کردن زمان به کارگیری پردازشگر، کاهش متوسط مدت پاسخ اولیه، رعایت اولویت، تراز کردن سیستم و رعایت عدالت را شرح دادیم. چهار سطح زمانبندی شامل سطح بالا، سطح متوسط، سطح پایین و زمانبندی ورود و خروج تشخیص داده شدهاند. زمانبندهای زیادی که در سیستمهای تک پردازشگر کاربرد دارند را به دقت مطالعه کردهایم. این زمانبندها از جمله خدمات به ترتیب ورود، ابتدا کوتاهترین درخواست، ابتدا کوتاهترین باقیمانده درخواست، ابتدا بالاترین نسبت پاسخگویی، رعایت عادلانه سهم فرآیندها، و نوبت چرخشی هستند. بیشتر این روشهای زمانبندی برای محیطهای چند پردازشگر نیز کاربرد دارند. افزون بر آنها، زمانبندی گروهی نیز برای محیطها چند پردازشگر بررسی شده است. برای محیطهای بلادرنگ زمانبندی متناسب با بسامد درخواست و ابتدا نزدیکترین ضرب الاجل کاربرد وسیعی یافتهاند. این زمانبندها در این فصل معرفی شدهاند. مثالهای واقعی از زمانبندها از سیستم عامل لینوکس گرفته شده است.
موضوع فصل هفتم کتاب سیاستهای مدیریت حافظه اصلی است. سیاستهای قدیمی مانند مدیریت حافظه به روش یک قطعه یکجا، افراز ایستا، افراز پویا و قطعه بندی به اختصار توضیح داده شده است. در ادامه مدیریتهای حافظه غیرمجازی، مدیریت حافظه با افراز جا به جاپذیر و مدیریت حافظه صفحه بندی شده را مطالعه کردهایم. مدیریت حافظه مجازی مبتنی بر صفحه مهمترین سیاست مدیریتی روز است که بوسیله بیشتر سیستمهای عامل مدرن به کار گرفته شده است. بخش بزرگی از این فصل به این سیاست اختصاص دارد. به مساله روش بيرون كردن صفحه از حافظه اصلی اهمیت ویژهای داده شده است. جدول زمانبندی برنامههای بزرگ جای زیادی در حافظه اصلی اشغال میکند. جدول صفحات چند سطحی راهی برای تعمیم فناوری حافظه مجازی به جدول صفحات است. این فناوری را مطالعه کردهایم. ویندوز از مدل دو سطحی جدول صفحات استفاده میکند و ما آن را با جزئیات مطالعه خواهیم کرد. این مطالعه کاربرد عملی سیاستهای مدیریت حافظه اصلی را در یک سیستم عامل مدرن ارزیابی میکند. تبدیل آدرس منطقي به آدرس فیزیکی از شاخصهای مدیریتهای حافظه مبتنی بر صفحه، اعم از حقیقی یا مجازی، است که بحث نسبتا مشکلی است، جزئیات عملیات را به دقت باز کردهایم. تکه تکه شدن داخلی و خارجی باعث هدر رفتن حافظه اصلی میگردد و سیستمهای عامل سعی میکنند در راستای کاهش آن گام بردارند. روشهای محاسبه مقدار حافظه تلف شده در هریک از مدیریتهای حافظه اصلی در این فصل بررسی شده است. حافظه انبارک در بالا بردن کارایی سیستمها نقش ارزندهای دارد. در انتهای این فصل روشهای مدیریت این نوع حافظه را مطالعه کردهایم. مثالهای واقعی این فصل از سیستمهای عامل یونیکس و ویندوز آمدهاند.
فرآیندهایی که همزمان در کامپیوتر وجود دارند برای گرفتن هرچه بیشتر و سریعتر منابع مورد نیاز باهم رقابت میکنند. تضاد منافع میتواند منجر به تولید نتایج نادرست توسط برنامههای درست گردد. داوری و حل تضادها نیازمند حضور یک میانجی است. این میانجی زیر سیستم ارتباطات/هماهنگی بین فرآیندی است. ابتدا شرایط مسابقه، منطقه بحرانی، مساله "یا این یا آن" در فصل هشت تشریح شدهاند. نشان داده شده است که با حل مساله یا این یا آن استفاده اشتراکی از منابع بدون این که فرآیندها نتیجه نادرست تولید کنند امکانپذیر است. روشهای حل مساله یا این یا آن به پنج دسته تقسیم میشوند. نادیده گرفتن وقفه، مبتنی بر انتظار-مشغول، مبتنی بر سمافر، مبتنی بر مانیتور، و مبتنی بر پیام این پنج دسته هستند که همگی در فصل 8 تشریح شدهاند.
بن بست از آثار ناپسند حل مساله یا این یا آن است. در فصل 9 این مساله بررسی شده و راههای برخورد با آن مطالعه شده است. نادیده گرفتن بن بست، پیش گیری از بن بست، پرهیز از بن بست، و تشخیص و رفع بن بست چهار رهیافت برخورد با مساله بن بست است. یک مساله کم اهمیتتر از بن بست مساله تلف شدن از گرسنگی است که آنهم در این فصل شناسایی و مطالعه شده. مساله شام خوردن فیلسوفها به عنوان یک مساله جا افتاده که دادن راه حل بدون بن بست و گرسنگی برای آن بدیهی نیست بررسی شده است. نشان دادهام که راه حلهای ساده و روان دارای مشکل بن بست و یا احتمال گرسنگی است. یک راه حل فاقد بن بست و فاقد احتمال گرسنگی را در ادامه ارائه کردهام.
این کتاب را به همسر و فرزندانم تقدیم میکنم.
دکتر محمود نقیبزاده
1387 شمسی (2009 میلادی)
فصل اول: سازمان سخت افزار كامپيوتر
فصل دوم: مراحل بالا آمدن سيستم عامل و نقش BIOS
فصل سوم: چند برنامه اي و چند نخي
فصل چهارم: فرآيند
فصل پنجم: نخ
فصل ششم: زمانبندي
فصل هفتم: مديريت حلفظه اصلي
فصل هشتم: هماهنگي و همزماني فرآيندها
فصل نهم: بن بست و تلف شدن
سیستمهای عامل (کامپیوتر)
تقدیرنامهها در دسترس نیست