این کتاب ترجمه کامل و بازنویسی شده کتاب معماری سیستم عامل ها Abraham Silberschatz(آبراهام سیلبرشاتز) است.
این کتاب به عنوان یک مرجع جامع، اصول اساسی و مفاهیم پیشرفته سیستمعاملهای کامپیوتری را با زبانی روشن و ساختاری منسجم ارائه میدهد. کتاب با معرفی کلیات سیستمعامل آغاز میشود و نقش حیاتی آن را به عنوان واسط بین سختافزار و کاربر تشریح میکند. در ادامه، تاریخچه تحول سیستمعاملها از نسل اول تا سیستمعاملهای مدرن موبایل و ابری بررسی شده است.
مباحث کتاب از معماری سیستمعامل و ساختارهای پایه مانند مدیریت فرآیند، نخها و همگامسازی شروع میشود. به طور خاص، مکانیزمهای زمانبندی پردازنده، ارتباط بین فرآیندی و روشهای حل مسائل کلاسیک همگامی مانند مسئله تولیدکننده-مصرف کننده به تفصیل بحث شده است. بخش قابل توجهی از کتاب به مدیریت منابع سیستم شامل حافظه اصلی، حافظه مجازی و سیستمهای فایل اختصاص دارد که در آن الگوریتمهای پیشرفته صفحهبندی، جایگزینی صفحه و روشهای تخصیص حافظه مورد تحلیل قرار گرفتهاند.
در بخشهای میانی، کتاب به چالشهای سیستمعاملهای مدرن میپردازد. مباحثی مانند بنبست و روشهای پیشگیری از آن، مدیریت دستگاههای ذخیرهسازی سنتی و نوین (از جمله حافظههای فلش و تکنولوژیهای NVM)، و همچنین سیستمهای ورودی/خروجی به همراه معماریهای مختلف کنترلرهای دستگاه بررسی شدهاند.
فصلهای پایانی کتاب به موضوعات پیشرفتهتری مانند مجازیسازی، رایانش ابری، سیستمعاملهای توزیعشده و مباحث امنیتی میپردازد. در این بخشها، معماریهای هایپروایزر، روشهای مهاجرت ماشینهای مجازی و مکانیزمهای امنیتی مانند کنترل دسترسی و رمزنگاری تشریح شدهاند.
فصل 1: معرفی سیستم عامل
1-1 آنچه که سیستم عاملها انجام میدهند
1-1-1 دید کاربر
1-1-2 دید سیستم
1-1-3 تعریف سیستم عامل
1-2 سازمان سیستم کامپیوتری
1-2-1 وقفه
1-2-1-1 کلیات
1-2-1-2 پیادهسازی
1-2-2 ساختار ذخیرهسازی
1-2-3 ساختار I/O
1-3 معماری سیستم کامپیوتر
1-3-1 سیستمهای تک پردازنده
1-3-2 سیستمهای چندپردازنده
1-3-3 سیستمهای خوشهای
1-4 عملیات سیستم عامل
1-4-1 چندبرنامگی و چندوظیفگی
1-4-2 عملیات مد دوگانه و چندمدی
1-4-3 تایمر
1-5 مدیریت منبع
1-5-1 مدیریت پردازش
1-5-2 مدیریت حافظه
1-5-3 مدیریت سیستم فایل
1-5-4 مدیریت ذخیرهسازی انبوه
1-5-5 مدیریت کَش
1-5-6 مدیریت سیستم I/O
1-6 امنیت و حفاظت
1-7 مجازیسازی
1-8 سیستمهای توزیع شده
1-9 ساختمان دادههای هسته
1-9-1 لیست، پشته و صف
1-9-2 درخت
1-9-3 توابع درهم و نگاشت
1-9-4 نقشههای بیتی
1-10 محیطهای محاسباتی
1-10-1 محاسبات مرسوم
1-10-2 محاسبات موبایل
1-10-3 محاسبات کارفرما-کارگزار
1-10-4 محاسبات نظیر-به-نظیر
1-10-5 رایانش ابری
1-10-6 سیستمهای بلادرنگ تعبیه شده
1-11 سیستم عاملهای رایگان و متن باز
1-11-1 تاریخچه
1-11-2 سیستم عاملهای رایگان
1-11-3 گنو/لینوکس
1-11-4 یونیکس BSD
1-11-5 سولاریس
1-11-6 سیستمهای متن باز به عنوان ابزار یادگیری
فصل 2: ساختار سیستم عامل
2-1 سرویسهای سیستم عامل
2-2 کاربر و رابط سیستم عامل
2-2-1 مفسرهای فرمان
2-2-2 رابط کاربر گرافیکی
2-2-3 رابط صفحه نمایش لمسی
2-2-4 انتخاب رابط
2-3 فراخوانهای سیستمی
2-3-1 مثال
2-3-2 رابط برنامهنویسی کاربردی
2-3-3 انواع فراخوانیهای سیستمی
2-3-3-1 کنترل پردازش
2-3-3-2 مدیریت فایل
2-3-3-3 مدیریت دستگاه
2-3-3-4 نگهداری اطلاعات
2-3-3-5 ارتباط
2-3-3-6 حفاظت
2-4 سرویسهای سیستمی
2-5 پیونددهندهها و بارگذارها
2-6 چرا برنامهها، خاص سیستم عامل هستند
2-7 طراحی و پیادهسازی سیستم عامل
2-7-1 اهداف طراحی
2-7-2 راهکارها و سیاستها
2-7-3 پیادهسازی
2-8 ساختار سیستم عامل
2-8-1 ساختار یک تکه
2-8-2 رویکرد لایه لایه
2-8-3 ریزهستهها
2-8-4 ماژولها
2-8-5 سیستمهای ترکیبی
2-8-5-2 اندروید
2-9 ساخت و راهاندازی یک سیستم عامل
2-9-1 تولید سیستم عامل
2-9-2 راهاندازی سیستم
2-10 عیبیابی سیستم عامل
2-10-1 تحلیل خرابی
2-10-2 کنترل و تنظیم کارایی
2-10-2-1 شمارندهها
2-10-3 ردیابی
فصل 3: مدیریت پردازش
تکامل پردازشها
3-1 مفهوم پردازش
3-1-1 پردازش
3-1-2 حالت پردازش
3-1-3 بلاک کنترل پردازش
3-1-4 نخها
3-2 زمانبندی پردازش
3-2-1 صفهای زمانبندی
3-2-2 زمانبندی پردازنده
3-2-3 برگردان متن
3-3 عملیات روی پردازشها
3-3-1 ایجاد پردازش
3-3-2 ختم پردازش
3-3-2-1 سلسله مراتب پردازشهای اندروید
3-4 ارتباط بین پردازشها
3-5 IPC در سیستمهای حافظه مشترک
3-6 IPC در سیستمهای عبور-پیغام
3-6-1 نامگذاری
3-6-2 همگامسازی
3-6-3 بافرسازی
3-7 مثالهایی از سیستمهای IPC
3-7-1 حافظه مشترک پوزیکس
3-7-3 ویندوز
3-7-4 لولهها
3-7-4-1 لولههای معمولی
3-7-4-2 لولههای با نام
3-8 ارتباط در سیستمهای کارفرما-کارگزار
3-8-1 سوکتها
3-8-2 فراخوانیهای روال دور
3-8-2-1 RPC اندروید
فصل 4: نخها و همروندی
4-1 کلیات
4-1-1 انگیزش
4-1-2 منافع
4-2 برنامهنویسی چندهستهای
4-2-1 چالشهای برنامهنویسی
4-2-2 انواع موازیسازی
4-3 مدلهای چندنخی
4-3-1 مدل چند-به-یک
4-3-2 مدل یک-به-یک
4-3-3 مدل چند-به-چند
4-4 کتابخانههای نخ
4-4-1 نخهای پوزیکس
4-4-2 نخهای ویندوز
4-4-3 نخهای جاوا
4-4-3-1 چارچوب Executor جاوا
4-5 نخسازی ضمنی
4-5-1 انبارهای نخ
4-5-1-1 انبارهای نخ جاوا
4-5-4 مدل Fork-Join
4-5-4 Fork Join در جاوا
4-5-4 OpenMP
4-5-4 اعزام مرکزی بزرگ GCD
4-5-5 بلاکهای سازنده نخ اینتل
4-6 ملاحظات نخسازی
4-6-1 فراخوانیهای سیستمی fork() و exec()
4-6-2 رسیدگی به سیگنال
4-6-3 برکناری نخ
4-6-4 حافظه محلی نخ
4-6-5 فعالسازی زمانبندها
4-7 مثالهای سیستم عاملی
4-7-1 نخهای ویندوز
4-7-2 نخهای لینوکس
فصل 5: زمانبندی CPU
5-1 مفاهیم پایه
5-1-1 دور انفجار پردازنده-I/O
5-1-2 زمانبند پردازنده
5-1-3 زمانبندی پس گرفتنی
5-1-4 اعزام کننده
5-2 معیارهای زمانبندی
5-3 الگوریتمهای زمانبندی
5-3-1 زمانبندی اولین-ورود، اولین-سرویس
5-3-2 زمانبندی کوتاهترین-کار-اول
5-3-3 زمانبندی نوبت-چرخشی
5-3-4 زمانبندی الویتی
5-3-5 زمانبندی صف چندسطحی
5-3-6 زمانبندی صف با بازخورد چندسطحی
5-4 زمانبندی نخ
5-4-1 حوزه رقابت
5-4-2 زمانبندی نخ پوزیکس
5-5 زمانبندی چندپردازنده
5-5-1 رویکردهای زمانبندی چندپردازنده
5-5-2 پردازندههای چندهستهای
5-5-3 تعادل بار
5-5-4 خویشاوندی پردازنده
5-5-5 چندپردازشی ناهمگن
5-6 زمانبندی بلادرنگ پردازنده
5-6-1 کمینهسازی دیرکرد
5-6-2 زمانبندی الویتی
5-6-3 زمانبندی نرخ-یکنواخت
5-6-4 زمانبندی قدیمیترین-ضربالاجل-اول
5-6-5 زمانبندی سهم متناسب
5-6-6 زمانبندی بلادرنگ پوزیکس
5-7 مثالهای سیستم عاملی
5-7-1 مثال: زمانبندی لینوکس
5-7-2 مثال: زمانبندی ویندوز
5-7-3 مثال: زمانبندی سولاریس
5-8 ارزیابی الگوریتم
5-8-1 مدلسازی معین
5-8-2 مدلهای صفبندی
5-8-3 شبیهسازی
5-8-4 پیادهسازی
فصل 6: همگامسازی پردازشها
6-1 پسزمینه
6-2 مسأله بخش بحرانی
6-3 راهحل پترسن
6-4 پشتیبانی سختافزاری برای همگامی
6-4-1 سدهای حافظه
6-4-2 دستورالعملهای سختافزاری
6-4-3 متغیرهای یکپارچه
6-5 قفلهای Mutex
6-6 سمافور
6-6-2 پیادهسازی سمافور
6-7 مانیتور
6-7-1 استفاده از مانیتور
6-7-2 پیادهسازی یک مانیتور با استفاده از سمافورها
6-7-3 از سرگیری پردازشها در داخل مانیتور
6-8 liveness
6-8-1 بنبست
6-8-2 وارونگی الویت
6-9 ارزیابی
فصل 7: همگامی و پردازشهای همروند
7-1 مسائل کلاسیک همگامی
7-1-1 مسأله بافر محدود
7-1-2 مسأله خوانندگان-نویسندگان
7-1-3 مسأله فیلسوفان خوشخوراک
7-1-3-1 راهحل سمافور
7-1-3-2 راهحل مانیتور
7-2 همگامی در میان هسته
7-2-1 همگامی در ویندوز
7-2-2 همگامی در لینوکس
7-3 همگامی پوزیکس
7-3-1 قفلهای انحصار متقابل پوزیکس
7-3-2 سمافورهای پوزیکس
7-3-2-1 سمافورهای با نام پوزیکس
7-3-3 متغیرهای شرط پوزیکس
7-4 همگامی در جاوا
7-4-1 مانیتورهای جاوا
7-4-2 قفلهای چندمدخلی
7-4-3 سمافور
7-4-4 متغیرهای شرط
7-5 رویکردهای جایگزین
7-5-1 حافظه تراکنشی
7-5-3 زبانهای برنامهنویسی تابعی
فصل 8: بنبست
8-1 مدل سیستم
8-2 بنبست در برنامههای چندنخی
8-2-1 قفل زنده
8-3 مشخصه بنبست
8-3-1 شرایط لازم
8-3-2 گراف تخصیص منبع
8-4 روشهای رسیدگی به بنبستها
8-5 پیشگیری از بنبست
8-5-1 انحصار متقابل
8-5-2 گرفتن و منتظر ماندن
8-5-3 نبود پسگیری
8-5-4 انتظار چرخشی
8-6 اجتناب از بنبست
8-6-1 حالت امن
8-6-2 الگوریتم گراف تخصیص منبع
8-6-3 الگوریتم بانکدار
8-6-3-1 الگوریتم ایمنی
8-6-3-2 الگوریتم درخواست منبع
8-6-3-3 یک مثال روشنگر
8-7 تشخیص بنبست
8-7-1 نمونههای منفرد انواع منابع
8-7-2 تعدد نمونههای انواع منابع
8-7-3 استفاده از الگوریتم تشخیص
8-8 ترمیم از بنبست
8-8-1 ختم پردازش و نخ
8-8-2 پسگیری منبع
فصل 9: مدیریت حافظه
9-1 پسزمینه
9-1-1 سختافزار پایه
9-1-2 پیوند آدرس
9-1-3 فضای آدرس منطقی در برابر فضای آدرس فیزیکی
9-1-4 بارگذاری پویا
9-1-5 اتصال پویا و کتابخانههای مشترک
9-2 تخصیص همجوار حافظه
9-2-1 حفاظت حافظه
9-2-2 تخصیص حافظه
9-2-3 پارگی
9-3 صفحهبندی
9-3-1 روش پایهای
9-3-2 پشتیبانی سختافزاری
9-3-2-1 بافر ترجمه در کنار
9-3-3 حفاظت
9-3-4 صفحات مشترک
9-4 ساختار جدول صفحه
9-4-1 صفحهبندی سلسله مراتبی
9-4-2 جدول صفحات درهم
9-4-3 جدول صفحات وارونه
9-4-4 اوراکل اسپارک سولاریس
9-5 مبادله
9-5-1 مبادله استاندارد
9-5-2 مبادله با صفحهبندی
9-5-3 مبادله در سیستمهای موبایل
9-6 مثال: معماریهای 32 و 64 بیتی اینتل
9-6-1 معماری IA-32
9-6-1-1 قطعهبندی IA-32
9-6-1-2 صفحهبندی IA-32
9-7 مثال: معماری ARMv8
فصل 10: حافظه مجازی
10-1 پسزمینه
10-2 صفحهبندی نیازي
10-2-1 مفاهیم پایهای
10-2-2 لیست قاب آزاد
10-2-3 کارایی صفحهبندی نیازي
10-3 کپی-موقع-نوشتن
10-4 جایگزینی صفحه
10-4-1 جایگزینی صفحه پایهای
10-4-2 جایگزینی صفحه FIFO
10-4-3 جایگزینی صفحه بهینه
10-4-4 جایگزینی صفحه LRU
10-4-5 جایگزینی صفحه تقریب LRU
10-4-5-1 الگوریتم بیتهای مراجعه اضافی
10-4-5-2 الگوریتم شانس دوم
10-4-5-3 پیادهسازی الگوریتم شانس دوم (الگوریتم ساعت)
10-4-6 جایگزینی صفحه مبتنی بر شمارش
10-4-7 الگوریتمهای بافرسازی صفحه
10-4-8 برنامههای کاربردی و جایگزینی صفحه
10-5 تخصیص قابها
10-5-1 تعداد کمینه قابها
10-5-2 الگوریتمهای تخصیص
10-5-3 تخصیص سراسری در مقایسه با محلی
10-5-4 دسترسی حافظه غیریکپارچه
10-6 کوبیدگی
10-6-1 علت کوبیدگی
10-6-2 مدل مجموعه کاری
10-6-3 فرکانس خطای صفحه
10-6-4 مشق فعلی
10-7 فشردهسازی حافظه
10-8 تخصیص حافظه هسته
10-8-1 سیستم نیمه
10-8-2 تخصیص قالبی
10-9 ملاحظات دیگر
10-9-1 پیش صفحهبندی
10-9-2 اندازه صفحه
10-9-3 حجم پوششی TLB
10-9-4 جدول صفحات وارونه
10-9-5 ساختار برنامه
10-9-6 قفل I/O در حافظه و قفل صفحه
10-10 مثالهای سیستم عامل
10-10-1 لینوکس
10-10-2 ویندوز
10-10-3 سولاریس
فصل 11: مدیریت ذخیرهسازی
11-1 کلیات ساختار ذخیرهسازی انبوه
11-1-1 درایوهای دیسک سخت
11-1-2 دستگاههای حافظه نامیرا
11-1-2-1 کلیات دستگاههای حافظه نامیرا NVM
11-1-2-2 الگوریتمهای کنترلر فلش NAND
11-1-3 حافظه میرا
11-1-4 نوارهای مغناطیسی
11-1-5 روشهای اتصال حافظه ثانویه
11-1-6 نگاشت آدرس
11-2 زمانبندی HDD
11-2-1 زمانبندی FCFS
11-2-2 زمانبندی SCAN
11-2-3 زمانبندی C-SCAN
11-2-4 انتخاب یک الگوریتم زمانبندی دیسک
11-3 زمانبندی NVM
11-4 تشخیص و تصحیح خطا
11-5 مدیریت دستگاه ذخیرهسازی
11-5-1 فرمت درایو، پارتیشنها، و جلدها
11-5-2 بلاک بوت
11-5-3 بلاکهای بد
11-6 مدیریت فضای مبادله
11-6-1 استفاده از فضای مبادله
11-6-2 محل فضای مبادله
11-6-3 مدیریت فضای مبادله: یک مثال
11-7 اتصال ذخیره
11-7-1 ذخیره اتصالی میزبان
11-7-2 ذخیره اتصالی شبکه
11-7-3 ذخیره ابر
11-7-4 شبکهها و آرایههای ذخیرهسازی
11-8 ساختار RAID
11-8-1 بهبود قابلیت اطمینان با افزونگی
11-8-2 بهبود کارایی از طریق موازیسازی
11-8-3 RAID سطوح
11-8-4 انتخاب یک سطح RAID
11-8-5 گسترشها
11-8-6 مسائل RAID
11-8-7 ذخیرهسازی شئ
فصل 12: سیستمهای I/O
12-1 کلیات
12-2 سختافزار I/O
12-2-1 I/O نگاشته به حافظه
12-2-2 نظرسنجی
12-2-3 وقفه
12-2-4 دسترسی مستقیم حافظه
12-2-5 خلاصه سختافزار I/O
12-3 رابط I/O برنامه کاربردی
12-3-1 دستگاههای بلاکی و کاراکتری
12-3-2 دستگاههای شبکه
12-3-3 ساعتها و تایمرها
12-3-4 I/O بیانسداد و ناهمگام
12-3-5 I/O برداری
12-4 زیرسیستم I/O هسته
12-4-1 زمانبندی I/O
12-4-2 بافرسازی
12-4-3 کَشسازی
12-4-4 اسپولینگ و رزرو دستگاه
12-4-5 رسیدگی به خطا
12-4-6 حفاظت I/O
12-4-7 ساختمان دادههای هسته
12-4-8 مدیریت انرژی
12-4-9 خلاصه زیرسیستم I/O هسته
12-5 تبدیل درخواستهای I/O به عملیات سختافزاری
12-6 استریمها
فصل 13: مدیریت فایل
13-1 مفهوم فایل
13-1-1 صفات فایل
13-1-2 عملیات فایل
13-1-3 انواع فایل
13-1-4 ساختار فایل
13-1-5 ساختار داخلی فایل
13-2 روشهای دسترسی
13-2-1 دسترسی ترتیبی
13-2-2 دسترسی مستقیم
13-2-3 سایر روشهای دسترسی
13-3 ساختار دایرکتوری
13-3-1 دایرکتوری تک سطحی
13-3-2 دایرکتوری دوسطحی
13-3-3 دایرکتوری ساختار درختی
13-3-4 دایرکتوری گراف بدون دور
13-3-5 دایرکتوری گراف عمومی
13-4 حفاظت
13-4-1 انواع دسترسی
13-4-2 کنترل دسترسی
13-4-3 سایر رویکردهای حفاظت
13-5 فایلهای نگاشته به حافظه
13-5-1 راهکار پایهای
13-5-2 حافظه مشترک در API ویندوز
فصل 14: سیستم فایل
14-1 ساختار سیستم فایل
14-2 عملیات سیستم فایل
14-2-1 کلیات
14-2-2 استفاده
14-3 پیادهسازی دایرکتوری
14-3-1 لیست خطی
14-3-2 جدول درهم
14-4 روشهای تخصیص
14-4-1 تخصیص همجوار
14-4-2 تخصیص پیوندی
14-4-3 تخصیص ایندکسدار
14-4-4 کارایی
14-5 مدیریت فضای آزاد
14-5-1 بردار بیتی
14-5-2 لیست پیوندی
14-5-3 گروهبندی
14-5-4 شمارش
14-5-5 نقشههای فضا
14-5-6 پیرایش بلاکهای بلااستفاده
14-6 کارآمدی و کارایی
14-6-1 کارآمدی
14-6-2 کارایی
14-7 ترمیم
14-7-1 بررسی سازگاری
14-7-2 سیستم فایلهای مبتنی بر ساخت سابقه
14-7-3 راهحلهای دیگر
14-7-4 پشتیبان و بازیابی
فصل 15: ساختاردهی سیستم فایل
15-1 سیستم فایل
15-2 سوارکردن سیستم فایل
15-3 پارتیشنها و سوارکردن
15-4 اشتراک فایل
15-4-1 کاربران متعدد
15-5 سیستم فایلهای مجازی
15-6 سیستم فایلهای دور
15-6-1 مدل کارفرما-کارگزار
15-6-2 سیستمهای اطلاعاتی توزیع شده
15-6-3 مدهای شکست
15-7 معانی سازگاری
15-7-1 معانی یونیکس
15-7-2 معانی جلسه
15-7-3 معانی فایلهای مشترک غیرقابل تغییر
15-8-1 کلیات
15-8-2 پروتکل سوار
15-8-3 پروتکل NFS
15-8-4 ترجمه نام مسیر
15-8-5 عملیات دور
رنگ | تماما رنگی |
---|---|
تعداد صفحات | 250 |
قطع و نوع جلد | وزیری (شومیز) |
شابک | 978-622-400-515-9 |
رده بندی کنگره | QA۷۶/۷۶ |
شماره ملی | ۹۶۷۳۵۹۳ |
ویرایش | اول |
سال انتشار | 1404 |
انتشارات | یافته |
نوع فایل |
25/03/29
من حسین سیلانی هستم، کارشناس ارشد امنیت اطلاعات و بنیانگذار و توسعهدهنده پروژه های لینوکس Emperor-OS، Little-Psycho و Predator-OS. با سالها تجربه عملی و مدارک مرتبط در حوزههای مختلفی از جمله: مدیریت سیستمهای لینوکس/ویندوز، طراحی UX/UI، توسعه فرانتاند وب، سئو، طراحی گرافیک، علم داده و یادگیری ماشین است.
آکادمی آموزشی کندوی دانش رد کردن