کتاب سیستم عامل نوشته ویلیام استالینگز
در ویرایش هشتم چه خبر است؟
از زمان انتشار هفتمین ویرایش این کتاب، این حوزه شاهد نوآوریها و پیشرفتهای مستمر بوده است. در این نسخه جدید، من سعی میکنم این تغییرات را با حفظ پوشش گسترده و جامع کل حوزه، ثبت کنم. برای شروع فرآیند بازنگری، ویرایش هفتم این کتاب به طور گسترده توسط تعدادی از اساتیدی که این موضوع را تدریس می کنند و توسط متخصصان فعال در این زمینه مورد بررسی قرار گرفت. نتیجه این است که در بسیاری از جاها، روایت روشن و فشرده شده است و تصویرسازی ها بهبود یافته است.
فراتر از این اصلاحات برای بهبود آموزش و کاربرپسندی، محتوای فنی کتاب در سرتاسر به روز شده است تا تغییرات جاری در این زمینه هیجان انگیز را منعکس کند، و پشتیبانی مربی و دانش آموز گسترش یافته است. قابل توجه ترین تغییرات به شرح زیر است:
ویندوز 8: ویندوز 8 آخرین سیستم عامل مایکروسافت برای رایانه های شخصی، ایستگاه های کاری و سرورها است که شامل تعدادی تغییرات در معماری داخلی است. نسخه جدید جزئیات داخلی ویندوز 8 را در تمام زمینه های فناوری کلیدی تحت پوشش این کتاب، از جمله مدیریت فرآیند/رشته، زمان بندی، مدیریت حافظه، امنیت، سیستم های فایل، و I/O ارائه می دهد.
سیستم عامل اندروید: اندروید سریعترین پلتفرم موبایل در حال رشد است. محدودیتهای دنیای واقعی و محیط عملکرد دستگاههای تلفن همراه کاملاً متفاوت از رایانههای رومیزی یا سرور سنتی است. یادگیری این محیط جدید برای دانش آموزان مهم است.
لینوکس جاسازی شده: استفاده از حداقل نسخه لینوکس برای سیستم های جاسازی شده محبوبیت زیادی پیدا کرده است. این نسخه جدید نمای کلی از عناصر کلیدی رویکرد لینوکس جاسازی شده را ارائه می دهد.
ماشین های مجازی: مجازی سازی سرور و سایر اشکال ماشین های مجازی به طور فزاینده ای در حال گسترش هستند. فصل جدیدی به مسائل طراحی سیستم عامل برای ماشین های مجازی می پردازد.
مسائل طراحی چند هسته ای: معماری غالب رایانه اکنون چند هسته ای است. این موضوع مشکلات طراحی سیستم عامل جدیدی را ایجاد می کند که در این نسخه جدید به آن پرداخته شده است.
استانداردهای ورودی/خروجی: این کتاب بهروزرسانی شده است تا آخرین پیشرفتها، از جمله Thunderbolt را منعکس کند.
سخت افزار ذخیره سازی: بحث سخت افزار ذخیره سازی به روز شده است و اکنون شامل بحث درایوهای حالت جامد می شود.
تحمل خطا: برنامه درسی علوم کامپیوتر ACM/IEEE 2013 تحمل خطا را به عنوان یکی از موضوعات اصلی دوره سیستم عامل فهرست می کند. یک بخش جدید یک نمای کلی از تحمل خطا ارائه می دهد.
طرح متن
این کتاب به پنج بخش تقسیم شده است برای بررسی کلی به فصل صفر مراجعه کنید:
• پیشینه
• فرآیندها
• حافظه
• برنامه ریزی
• موضوعات پیشرفته سیستم عامل های جاسازی شده، ماشین های مجازی، امنیت سیستم عامل و سیستم های توزیع شده
این کتاب شامل تعدادی ویژگی آموزشی است، از جمله استفاده از انیمیشن ها و یادداشت های ویدئویی و شکل ها و جداول متعدد برای روشن شدن بحث. هر فصل شامل فهرستی از کلمات کلیدی، سوالات مروری، مشکلات تکالیف و پیشنهاداتی برای مطالعه بیشتر است. این کتاب همچنین شامل یک فرهنگ لغت گسترده، فهرستی از کلمات اختصاری پرکاربرد و کتابشناسی است. علاوه بر این، یک بانک آزمون نیز در اختیار مربیان قرار دارد.
درباره نویسنده
دکتر ویلیام استالینگز 17 عنوان، و شمارش ویرایش های اصلاح شده، بیش از 40 کتاب در مورد امنیت کامپیوتر، شبکه های کامپیوتری و معماری کامپیوتر تالیف کرده است. نوشته های او در نشریات متعددی از جمله منتشر شده است.
او 12 بار جایزه بهترین کتاب درسی علوم کامپیوتر سال را از انجمن نویسندگان متن و دانشگاهی دریافت کرده است.
در بیش از 30 سال در این زمینه، او یک مشارکت کننده فنی، مدیر فنی و مدیر اجرایی با چندین شرکت فناوری پیشرفته بوده است. او هر دو مجموعه پروتکل مبتنی بر TCP/IP و مبتنی بر OSI را بر روی انواع کامپیوترها و سیستمهای عامل، از میکروکامپیوتر گرفته تا مین فریم، طراحی و پیادهسازی کرده است. او بهعنوان مشاور به سازمانهای دولتی، فروشندگان رایانه و نرمافزار و کاربران عمده در طراحی، انتخاب و استفاده از نرمافزار و محصولات شبکه مشاوره داده است.
او سایت منابع دانشجویی علوم کامپیوتر را در ایجاد و نگهداری می کند. این سایت اسناد و پیوندهایی را در مورد موضوعات مختلف مورد علاقه دانشجویان علوم کامپیوتر و متخصصان ارائه می دهد. او یکی از اعضای هیئت تحریریه Cryptologia است، یک مجله علمی که به تمام جنبه های رمزنگاری اختصاص دارد. او نویسنده متخصص رده شبکه در زمینه شبکه است. دکتر استالینگز دارای مدرک دکتری است. از M.I.T. در علوم کامپیوتر و مدرک لیسانس از نوتردام در مهندسی برق.
نمونه کیفیت فایل:
فصل صفر
راهنمای خوانندگان و مربیان
0.1 طرح کلی این کتاب
0.2 نمونه سیستم
0.3 نقشه راه برای خوانندگان و مدرسان
0.4 منابع اینترنتی و وب
وب سایت هایی برای این کار
سایت منابع دانشجویی کتاب علوم کامپیوتر سایر وب سایت ها
0.1 طرح کلی این کتاب
این کتاب در هشت بخش تنظیم شده است:
بخش اول. پیش زمینه: یک نمای کلی از معماری و سازماندهی کامپیوتر، با تاکید بر موضوعاتی که به طراحی سیستم عامل OS مربوط می شود، به علاوه مروری کلی بر مباحث سیستم عامل در ادامه کتاب ارائه می دهد.
بخش دوم. فرآیندها: تجزیه و تحلیل دقیقی از فرآیندها، چند رشته ای، چند پردازشی متقارن SMP و میکروکرنل ها را ارائه می دهد. این بخش همچنین به بررسی جنبه های کلیدی همزمانی در یک سیستم واحد، با تاکید بر موضوعات محرومیت و وقفه متقابل می پردازد.
دانلود کتاب سیستم عامل استالینگز
بخش سوم. حافظه: بررسی جامعی از تکنیک های مدیریت حافظه از جمله حافظه مجازی ارائه می دهد.
بخش چهارم. زمانبندی: بحث مقایسهای از رویکردهای مختلف برای زمانبندی فرآیند ارائه میکند. زمانبندی موضوع، زمانبندی SMP و زمانبندی بلادرنگ نیز مورد بررسی قرار میگیرند.
بخش پنجم. ورودی/خروجی و فایل ها: مسائل مربوط به کنترل سیستم عامل عملکرد I/O را بررسی می کند. توجه ویژه به ورودی/خروجی دیسک، که کلید عملکرد سیستم است، اختصاص داده شده است. همچنین یک نمای کلی از مدیریت فایل ارائه می دهد.
بخش ششم سیستم های جاسازی شده: تعداد سیستم های جاسازی شده بسیار بیشتر از سیستم های محاسباتی همه منظوره است و تعدادی از چالش های سیستم عامل منحصر به فرد را ارائه می دهند. این بخش شامل بحث در مورد اصول مشترک به علاوه پوشش دو سیستم نمونه است: TinyOS و eCos.
بخش هفتم امنیت: بررسی تهدیدها و مکانیسمهایی را برای تأمین امنیت رایانه و شبکه ارائه میکند.
بخش هشتم سیستم های توزیع شده: روندهای اصلی در شبکه سازی سیستم های کامپیوتری، از جمله TCP/IP، محاسبات مشتری/سرور، و خوشه ها را بررسی می کند. همچنین برخی از زمینه های طراحی کلیدی در توسعه سیستم عامل های توزیع شده را توضیح می دهد.
تعدادی از فصلها و ضمیمههای آنلاین موضوعات اضافی مرتبط با کتاب را پوشش میدهند.
0.2 چند مثال از سیستم ها
این متن برای آشنایی خواننده با اصول طراحی و مسائل پیاده سازی سیستم عامل های معاصر در نظر گرفته شده است. بر این اساس، یک برخورد صرفاً مفهومی یا نظری ناکافی خواهد بود. برای نشان دادن مفاهیم و پیوند آنها با انتخاب های طراحی دنیای واقعی که باید انجام شوند، سه سیستم عامل به عنوان نمونه های در حال اجرا انتخاب شده اند:
Windows: یک سیستم عامل چندوظیفه ای که برای اجرا بر روی انواع رایانه های شخصی، ایستگاه های کاری و سرورها طراحی شده است. این یکی از معدود سیستم عامل های تجاری اخیر است که اساساً از ابتدا طراحی شده است. به این ترتیب، در موقعیتی قرار دارد که میتواند جدیدترین پیشرفتها در فنآوری سیستمعامل را به روشی تمیز ترکیب کند. نسخه فعلی ارائه شده در این کتاب، ویندوز 7 است.
یونیکس: یک سیستم عامل چندوظیفه ای که در اصل برای کامپیوترهای کوچک در نظر گرفته شده بود اما بر روی طیف وسیعی از ماشین ها از میکروکامپیوترهای قدرتمند گرفته تا ابررایانه ها پیاده سازی شد. شامل این موضوع لینوکس است.
اندروید: اندروید پلتفرم غالب موبایل است. محدودیتهای دنیای واقعی و محیط عملیاتی دستگاههای تلفن همراه با رایانههای رومیزی یا سرور سنتی کاملاً متفاوت است. یادگیری این محیط جدید برای دانش آموزان مهم است. این کتاب جزئیات داخلی اندروید را ارائه می دهد.
بحث در مورد سیستمهای نمونه در سراسر متن توزیع میشود نه اینکه به صورت یک فصل یا ضمیمه جمعآوری شود. بنابراین، در طول بحث ارز همزمان، مکانیسمهای همزمانی هر سیستم نمونه توضیح داده میشود و انگیزه انتخابهای طراحی فردی مورد بحث قرار میگیرد. با این رویکرد، مفاهیم طراحی مورد بحث در یک فصل مشخص بلافاصله با مثال های دنیای واقعی تقویت می شوند. این کتاب همچنین از سیستمهای نمونه دیگری در صورت لزوم استفاده میکند.
0.3 یک نقشه راه برای خوانندگان و مربیان
طبیعی است که خواننده ترتیب خاص موضوعات ارائه شده در این کتاب را زیر سوال ببرد. به عنوان مثال، مبحث زمانبندی فصل 9 و 10 ارتباط نزدیکی با مباحث همزمانی فصل 5 و 6 و موضوع کلی فرآیندها فصل 3 دارد و ممکن است به طور منطقی بلافاصله پس از آن مباحث پوشش داده شود.
مشکل این است که موضوعات مختلف بسیار به هم مرتبط هستند. به عنوان مثال، در بحث حافظه مجازی، اشاره به مسائل زمان بندی مربوط به خطای صفحه مفید است. البته اشاره به برخی مسائل مربوط به مدیریت حافظه هنگام بحث در مورد تصمیمات زمان بندی نیز مفید است. این نوع مثال را میتوان بیپایان تکرار کرد: بحث در مورد زمانبندی نیاز به درک کمی از مدیریت ورودی/خروجی دارد و بالعکس.
شکل 0.1 برخی از روابط متقابل مهم بین موضوعات را نشان می دهد. خطوط جامد نشان دهنده روابط بسیار قوی، از نقطه نظر تصمیمات طراحی و اجرا است. بر اساس این نمودار، منطقی است که با یک بحث اساسی در مورد فرآیندها، که در فصل 3 انجام می دهیم، شروع کنیم. پس از آن، ترتیب تا حدودی دلخواه است. بسیاری از روشهای سیستمعامل در ابتدا همه مواد را روی فرآیندها جمعآوری میکنند و سپس به موضوعات دیگر میپردازند. این قطعا معتبر است. با این حال، اهمیت مرکزی مدیریت حافظه، که به اعتقاد من اهمیتی برابر با مدیریت فرآیند دارد، منجر به تصمیمگیری برای ارائه این مطالب قبل از نگاهی عمیق به زمانبندی شده است.
شکل 0.1 موضوعات سیستم عامل
راهحل ایدهآل این است که دانشآموز پس از تکمیل فصلهای 1 تا 3 از سری، فصلهای زیر را به صورت موازی بخواند و جذب کند: 4 و سپس اختیاری 5. 6 به دنبال آن 7; 8 به دنبال آن اختیاری 9; 10. قسمت های باقی مانده را می توان به هر ترتیبی انجام داد. با این حال، اگرچه مغز انسان ممکن است درگیر پردازش موازی باشد، دانشآموز انسانی کار موفقیتآمیز با چهار نسخه از یک کتاب را به طور همزمان در چهار فصل مختلف غیرممکن و گرانقیمت میبیند. با توجه به ضرورت ترتیب خطی، به نظر من ترتیب استفاده شده در این کتاب بیشترین تأثیر را دارد.
نظر پایانی فصل 2، به ویژه بخش 2.3، نمای سطح بالایی از تمام مفاهیم کلیدی تحت پوشش در فصل های بعدی را ارائه می دهد. بنابراین، پس از خواندن فصل 2، انعطاف پذیری قابل توجهی در انتخاب ترتیب خواندن فصل های باقی مانده وجود دارد.
0.4 منابع اینترنت و وب
منابع متعددی در اینترنت و وب برای پشتیبانی از این کتاب و برای همگام شدن با پیشرفتها در این زمینه وجود دارد.
وب سایت های این کتاب
سه وب سایت منابع اضافی را برای دانش آموزان و مربیان فراهم می کنند. یک وب سایت همراه برای این کتاب به آدرس وجود دارد. برای دانشآموزان، این وبسایت شامل فهرستی از پیوندهای مرتبط سازماندهی شده بر اساس فصل و فهرست اشتباهی برای کتاب است. همچنین اسنادی وجود دارد که زبان برنامه نویسی C را برای دانش آموزانی که با این زبان آشنا نیستند یا نیاز به تجدید نظر دارند معرفی می کند. برای مدرسان، این وب سایت به صفحات درسی اساتیدی که از این کتاب تدریس می کنند پیوند می دهد و تعدادی اسناد و پیوندهای مفید دیگر را ارائه می دهد.
همچنین یک وبسایت محتوای ممتاز با دسترسی کنترلشده وجود دارد، که مقدار زیادی از مطالب پشتیبانی، از جمله فصلهای آنلاین اضافی، پیوستهای آنلاین اضافی، مجموعهای از مشکلات تکالیف خانه با راهحلها، مجموعهای از انیمیشنهایی که مفاهیم کلیدی را نشان میدهند، و مجموعهای از یادداشتهای ویدیویی را ارائه میدهد. که روایتهای بسیاری از الگوریتمهای کتاب هستند. برای اطلاعات دسترسی به کارت جلوی این کتاب مراجعه کنید.
در نهایت، مطالب اضافی برای مربیان در مرکز منابع مدرس IRC برای این کتاب موجود است. برای جزئیات و اطلاعات دسترسی به مقدمه مراجعه کنید.
به محض اینکه هرگونه اشتباه تایپی یا سایر خطاها کشف شود، فهرست اشتباه این کتاب در وب سایت موجود خواهد بود. لطفاً هر گونه خطایی را که مشاهده کردید گزارش دهید. برگه های اشتباه برای کتاب های دیگر من در هستند.
من همچنین سایت منابع دانشجویی علوم کامپیوتر را در نگهداری می کنم. هدف این سایت ارائه اسناد، اطلاعات و پیوندها برای دانشجویان و متخصصان علوم کامپیوتر می باشد. پیوندها و اسناد به هفت دسته سازماندهی می شوند:
Math: شامل یک تجدید کننده پایه ریاضی، یک آغازگر تجزیه و تحلیل صف، یک آغازگر سیستم اعداد، و پیوندهایی به سایت های ریاضی متعدد است.
نحوه: مشاوره و راهنمایی برای حل مشکلات تکالیف، نوشتن گزارش های فنی و تهیه ارائه های فنی.
منابع تحقیق: پیوند به مجموعه های مهم مقالات، گزارش های فنی و کتابشناسی.
سایر موارد مفید: انواع اسناد و پیوندهای مفید دیگر.
مشاغل علوم کامپیوتر: پیوندها و اسناد مفید برای کسانی که در نظر دارند شغلی در علوم کامپیوتر داشته باشند.
کمک به نوشتن: کمک به تبدیل شدن به یک نویسنده واضح تر و موثرتر.
موضوعات متفرقه و طنز: باید هر چند وقت یکبار ذهن خود را از کار خود دور کنید.