بنر بالای صفحه
IdeBook.ir
مبانی و مفاهیم سیستم عامل ویرایش نهم

کتاب مبانی و مفاهیم سیستم عامل ویرایش نهم

معرفی کتاب مبانی و مفاهیم سیستم عامل ویرایش نهم

4.5 (1)
کتاب مبانی و مفاهیم سیستم عامل ویرایش نهم، اثر آبراهام سیلبرشاتس پیتر بیر گالوین گرگ گاگنه ، با ترجمه قدرت سپیدنام ، در بازار نشر ایران، توزیع شده است. این محصول در سال 1395 توسط انتشارات دانش بنیاد ، به چاپ رسیده است. این محصول در قطع و اندازه‌ی وزیری، در سایت ایده بوک قرار دارد.
ناموجود

موضوعات مرتبط

محصولات بیشتر

فهرست





بخش 1    مرور   1

 

 فصل 1         مقدمه    3

1.1    سيستم‌هاي عامل چه كاري انجام مي‌دهند   4

1.1.1    ديدگاه كاربر (user view)    4

1.1.2     ديدگاه سيستمي (system view)    5

1.1.3    تعريف سيستم‌هاي عامل    6

1.2    سازمان سيستم كامپيوتر    7

1.2.1    عملكرد سيستم كامپيوتر    7

1.2.2    ساختار ذخيره‌ساز    10

1.2.3        ساختار I/O    12

1.3        معماري سيستم كامپيوتر    13

1.3.1        سيستم‌هاي تك‌پردازنده‌اي    13

1.3.2        سيستم‌هاي چند پردازنده‌اي    14

1.3.3        سيستم‌هاي كلاستري    17

1.4        ساختار سيستم عامل    19

1.5        عمليات سيستم عامل    22

1.5.1        عمليات دو حالته و چند حالته    22

1.5.2        تايمر    25

1.6        مديريت فرآيند    25

1.7        مديريت حافظه    26

1.8    مديريت ذخيره‌سازي    27

1.8.1    مديريت سيستم فايل    27

1.8.2    مديريت ذخيره‌ساز حجيم    28

1.8.3    كَش كردن    29

1.8.4    سيستم‌هاي ورودي خروجي (I/O)    31

1.9    حفاظت و امنيت    31

1.10    ساختار داده كرنل    32

1.10.1    ليست‌ها، پشته‌‌ها و صف‌ها    32

1.10.2    درخت‌ها    34

1.10.3    توابع هَش و نگاشت‌ها    34

1.10.4    بيت مپ    35

1.11    محيط‌هاي محاسباتي    36

1.11.1    محاسبه سنتي    36

1.11.2    عمليات متحرك (موبايل)     37

1.11.3    سيستم‌هاي توزيع شده    38

1.11.4    عمليات سرور- كلاينت    39

1.11.5    عمليات نظير به نظير (همتا به همتا)    40

1.11.6    مجازي‌سازي    41

1.11.7    عمليات ابري    43

1.11.8    سيستم‌هاي اختصاصي بلادرنگ    44

1.12    سيستم‌هاي عامل رايگان (متن  باز)    45

1.12.1    تاريخچه    46

1.12.2    لينوكس    46

1.12.3    يونيكس BSD    47

1.12.4    سولاريس    48

1.12.5    سيستم‌هاي رايگان به‌عنوان ابزارهاي آموزشي    48

1.13    خلاصه     48

تمرين‌ها    51

مراجع    54

 فصل 2         ساختار سيستم‌هاي عامل    57

2.1    سرويس‌هاي سيستم عامل    57

2.2    واسط كاربر سيستم عامل    60

2.2.1    مفسرهاي فرمان    60

2.2.2    واسط‌هاي گرافيكي كاربر    61

2.2.3    انتخاب واسط    62

2.3    فراخوان‌هاي سيستم (system calls)

2.4    انواع فراخواني‌هاي سيستم    68

2.4.1    كنترل فرآيند    69

2.4.2    مديريت فايل    72

2.4.3    مديريت دستگاه    73

2.4.4    نگهداري اطلاعات    73

5.4.2    ارتباطات    74

2.4.6    حفاظت    75

2.5    برنامه‌هاي سيستمي    75

2.6    طراحي و پياده‌سازي سيستم  عامل    77

2.6.1    اهداف طراحي    77

2.6.2    راهكارها و سياست‌ها    77

2.6.3    پياده‌سازي    78

2.7    ساختار سيستم عامل    79

2.7.1    ساختار ساده    80

2.7.2    روش لايه‌اي    81

2.7.3    ريزكرنل    83

2.7.4    مدول‌ها    84

2.7.5    سيستم‌هاي هيبريد    85

2.8    اشكال‌زدايي سيستم عامل    87

2.8.1    تحليل خرابي    87

2.8.2    تنظيم كارايي    87

2.8.3    DTrace    89

2.9    توليد سيستم عامل    93

2.10    بوت (راه‌اندازي) سيستم    94

2.11    خلاصه    95

تمرين‌ها    96

مراجع    102

بخش 2    مديريت فرآيند    105

 فصل 3         فرآيندها    107

3.1    مفهوم فرآيند    107

3.1.1    فرآيند    108

3.1.2    حالت فرآيند    109

3.1.3    بلوك كنترل فرآيند    110

3.1.4    نخ‌ها    111

3.2    زمان‌بندي فرآيند    112

3.2.1    صف‌‌هاي زمان‌بندي    112

3.2.2    زمان‌بندي‌ها    114

3.2.3    تعويض متن    115

3.3    عمليات در فرآيندها    117

3.3.1    ايجاد فرآيند    117

3.3.2    پايان فرآيند    121

3.4    ارتباطات بين فرآيندها    122

3.4.1    سيستم‌هاي حافظه مشترك    125

3.4.2    سيستم‌هاي مبادله پيام    127

3.5    مثال‌هايي از سيستم‌هاي IPC 130

3.5.1    مثال حافظه مشترك در POSIX    130

3.5.2    مثال: mach    132

3.5.3    مثال: ويندوز    134

3.6    ارتباط در سيستم‌هاي كلاينت- سرور    135

3.6.1    سوكت‌ها    136

3.6.2    فراخواني‌هاي رويه راه دور    138

3.6.3    لوله‌ها    141

3.7    خلاصه    146

تمرين‌ها    148

 فصل 4         نخ‌ها    159

4.1    مرور    159

4.1.1    انگيزه وجود نخ‌ها    159

4.1.2    مزاياي برنامه‌نويسي چند نخي    161

4.2    برنامه‌نويسي چند هسته‌اي    162

4.2.1    چالش‌هاي برنامه نويسي    163

4.2.2    انواع موازي‌سازي    164

4.3    مدل‌هاي چند نخي    165

4.3.1    مدل چند- به- يك    165

4.3.2    مدل يك به يك    166

4.3.3    مدل چند- به- چند    166

4.4    كتابخانه‌هاي نخ    167

4.4.1    Pthreads    168

4.4.2    نخ‌هاي ويندوز    170

4.4.3    نخ‌هاي جاوا    172

4.5    نخ‌سازي ضمني    173

4.5.1    مخزن نخ‌ها    175

4.5.2    OpenMP    175

4.5.3    تكنولوژي Grand Central Dispatch    178

4.5.4    روش‌هاي ديگر    179

4.6    نكات مربوط به نخ‌سازي    179

4.6.1    فراخوان‌هاي سيستم fork( ) و exec( )    179

4.6.2    اداره كردن سيگنال    179

4.6.3    لغو نخ    181

4.6.4    ذخيره محلي نخ    182

4.6.5    فعال‌سازي زمان‌بند    183

4.7    مثال‌هايي از سيستم عامل    184

4.7.1    نخ‌هاي ويندوز    184

4.7.2    نخ‌هاي لينوكس    185

4.8    خلاصه    146

تمرين‌ها    187

مراجع    196

فصل 5       همگام‌سازي فرآيند199

5.1    زمينه    199

5.2    مسئله بخش- حياتي    201

5.3    راه حل پيترسون    203

5.4    سخت‌افزار همگام‌سازي    204

5.5    قفل‌هاي انحصاري    207

5.6    سمافورها    208

5.6.1    كاربرد سمافور    209

5.6.2    پياده‌سازي سمافور    209

5.6.3    بن‌بست‌ها و گرسنگي    211

5.6.4    معكوس كردن اولويت    212

5.7    مسائل كلاسيك همگامي    213

5.7.1    مسئله بافر محدود    2135.7.2    مسئله خوانندگان و نويسندگان    214

5.7.3    مسئله تغذيه فيلسوفان    217

5.8    ناظرها    217

5.8.1    كاربرد ناظرها (monitors)    219

5.8.2    راه‌حل مسئله تغذيه فيلسوفان با استفاده از ناظرها    221

5.8.3    پياده‌سازي يك ناظر با استفاده از سمافورها    221

5.8.4    از سرگيري فرآيند‌ها در ناظر    223

5.9    مثال‌هايي از همگام‌سازي    226

5.9.1    همگامي در ويندوز    226

5.9.2    همگامي در لينوكس    227

5.9.3    همگامي در سولاريس    228

5.9.4    همگامي Pthreads    230

5.10    روش‌هاي ديگر    232

5.10.1    حافظه تراكنش    232

5.10.2    Open MP    233

5.10.3    زبان‌هاي برنامه‌نويسي عملياتي    234

5.11    خلاصه    235

تمرين‌ها    235

مراجع    249

 فصل 6        زمان‌بندي cpu 251

6.1    مفاهيم اصلي    251

6.1.1    چرخه انفجار CPU-I/O    252

6.1.2    زمانبند CPU    252

6.1.3    زمانبندي قبضه‌اي (پيشدستانه)    253

6.1.4    توزيع‌گر    254

6.2    معيارهاي زمانبندي    255

6.3    الگوريتم‌هاي زمانبندي    256

6.3.1    زمانبندي ورود- اول، سرويس اول 256

6.3.2    زمانبندي كوتاه‌ترين كار- اول    257

6.3.3    زمان‌بندي با اولويت    260

6.3.4    زمانبندي نوبت گردشي    261

6.3.5    زمانبندي صف چند سطحي    264

6.3.6    زمانبندي صف چند سطحي پسخوردي (فيدبك)    265

6.4    زمانبندي نخ    266

6.4.1    زمينه رقابت    266

6.4.2    زمانبندي Pthread    267

6.5    زمانبندي چند پردازنده‌اي    267

6.5.1    روش‌هاي زمانبندي چند پردازنده‌اي268

6.5.2    وابستگي به پردازنده    269

6.5.3    روش‌هاي زمانبندي چندپردازنده‌اي 270

6.5.4    پردازنده‌هاي چندهسته‌اي    271

6.6    زمانبندي CPU بلادرنگ    272

6.6.1    حداقل كردن تأخير    273

6.6.2    زمانبندي مبتني بر اولويت    275

6.6.3    زمانبندي يك‌نواخت- سريع    276

6.6.4    زمانبندي مهلت زودتر- اول    278

6.6.5    زمانبندي اشتراك نسبي    279

6.6.6    زمانبندي بلادرنگ POSIX    279

6.7    مثال‌هايي از سيستم‌هاي عامل 281

6.7.1    مثال زمانبندي لينوكس    281

6.7.2    مثال زمانبندي ويندوز    283

6.7.3    مثال زمانبندي سولاريس    286

6.8    ارزیابی الگوریتم    289

6.8.1    مدل‌سازي قطعي    289

6.8.2    مدل‌هاي صف‌بندي    290

6.8.3    شبيه‌سازي    291

6.8.4    پياده‌سازي    292

6.9    خلاصه    293

تمرين‌ها    294

مراجع    300

 فصل 7             بن‌بست‌ها    305

7.1    مدل سيستم    305

7.2    مشخصه‌هاي بن‌بست    307

7.2.1    شرايط ضروري    308

7.2.2    گراف تخصيص منبع    309

7.3    روش‌هاي اداره كردن بن‌بست311

7.4    پيشگيري از بن‌بست    312

7.4.1    انحصار متقابل    312

7.4.2    نگهداري و انتظار    313

7.4.3    بدون قبضه كردن    313

7.4.4    انتظار چرخشي    314

7.5    اجتناب از بن‌بست    316

7.5.1    حالت امن    317

7.5.2    الگوريتم گراف تخصيص – منبع    318

7.5.3    الگوريتم بانكدار    319

7.6    تشخيص بن‌بست    322

7.6.1    حالت تك نمونه از هر نوع منبع    323

7.6.2    چند نمونه از يك نوع منبع    323

7.6.3    كاربرد الگوريت تشخيص    325

7.7    خروج از حالت بن‌بست    325

7.7.1    خاتمه فرآيند    325

7.7.2    قبضه منبع    326

7.8    خلاصه    327

تمرين‌ها    327

مراجع    334

بخش3   مديريت حافظه    335

 فصل 8            حافظه اصلي   337

8.1    زمينه    337

8.1.1    سخت‌افزار پايه    338

8.1.2    مرتبط سازي آدرس    340

8.1.3    فضاي آدرس منطقي در برابر فيزيكي   342

8.1.4    بار كردن ديناميكي    343

8.1.5    پيوندزني ديناميكي و كتابخانه‌هاي مشترك    343

8.2    مبادله    344

8.2.1    مبادله استاندارد    345

8.2.2    مبادله بر روي سيستم‌هاي متحرك    346

8.3    تخصيص حافظه همجوار    347

8.3.1    حفاظت حافظه    347

8.3.2    تخصيص حافظه    349

8.3.3    چند تكه شدن    350

8.4    قطعه‌بندي    351

8.4.1    روش پايه    351

8.4.2    سخت‌افزار قطعه‌بندي    352

8.5    صفحه‌بندي    353

8.5.1    روش پايه    354

8.5.2    پشتيباني سخت‌افزاري    359

8.5.3    حفاظت    362

8.5.4    صفحات مشترك    364

8.6    ساختار جدول صفحه    365

8.6.1    صفحه‌بندي سلسله مراتبي    365

8.6.2    جداول صفحه درهم شده    368

8.6.3    جداول صفحه معكوس شده    368

8.6.4    Oracle SPARC Solaris    370

8.7    مثال معماري 32 بيت و 64 بيتي اينتل    371

8.7.1    معماري 32-IA    371

8.7.2    64-X86    374

8.8    مثال معماري ARM    375

8.9    خلاصه    376

تمرين‌ها    377

مراجع    382

 فصل 9            حافظه مجازي 385

9.1    زمينه    385

9.2    صفحه‌بندي درخواستي    388

9.2.1    مفاهيم اساسي    389

9.2.2    كارايي صفحه‌بندي درخواستي    393

9.3    كپي در نوشتن    395

9.4    جايگزيني صفحه    397

9.4.1    جايگزيني صفحه پايه    398

9.4.2    جايگزيني صفحه FIFO    401

9.4.3    جايگزيني صفحه بهينه    402

9.4.4    جايگزيني صفحه LRU    403

9.4.5    جايگزيني صفحه LRU تقريبي    405

9.4.6    جايگزيني صفحه مبتني بر شمارش    407

9.4.7    الگوريتم‌هاي بافر كردن صفحه    408

9.4.8    كاربردها و جايگزيني صفحه    408

9.5    تخصيص فريم‌ها    409

9.5.1    حداقل تعداد فريم‌ها    409

9.5.2    الگوريتم‌هاي تخصيص    410

9.5.3    تخصيص سراسري در برابر محلي    411

9.5.4    دستيابي غيريكنواخت به حافظه (NUMA)    412

9.6    كوبيدگي    413

9.6.1    علت كوبيدگي    413

9.6.2    مدل مجموعه- كاري    415

9.6.3    فركانس خطاي صفحه    417

9.6.4    نتيجه‌گيري    417

9.7    فايل‌هاي نگاشت در حافظه    418

9.7.1    مكانيزم اصلي    418

9.7.2    حافظه مشترك در API ويندوز    420

9.7.3    I/O نگاشت به حافظه    420

9.8    تخصيص حافظه كرنل    423

9.8.1    سيستم رفاقتي    423

9.8.2    تخصيص ورقي    424

9.9    ساير ملاحظات    426

9.9.1    پيش صفحه‌بندي    426

9.9.2    سايز صفحه    427

9.9.3    حافظه قابل دسترسي از TLB    428

9.9.4    جداول صفحه معكوس شده    429

9.9.5    ساختار برنامه    430

9.9.6    ميان قفلي I/O و قفل صفحه    431

9.10    مثال‌هايي از سيستم عامل    432

9.10.1    ويندوز    432

9.10.2    سولاريس    431

9.11    خلاصه    435

تمرين‌ها    436

مراجع    447

بخش 4  مديريت ذخيره‌سازي   451

 فصل 10        ساختار ذخير‌ساز انبوه 453

10.1    مروري بر ساختار ذخيره‌ساز انبوه    453

10.1.1    ديسك‌هاي مغناطيسي    453

10.1.2    ديسك‌هاي حالت جامد    455

10.1.3    نوارهاي مغناطيسي    456

10.2    ساختار ديسك    456

10.3    پيوست ديسك    457

10.3.1    ذخيره‌ساز پيوست ميزبان    457

10.3.2    ذخيره‌ساز پيوست شبكه    458

10.3.3    شبكه ناحيه ذخيره‌سازي    458

10.4    زمانبندي ديسك    459

10.4.1    زمانبندي FCFS    460

10.4.2    زمانبندي SSTF    460

10.4.3    زمان‌بندي پيمايش (SCAN)    461

10.4.4    زمانبندي پيمايش حلقوي (C-SCAN)462

10.4.5    زمانبندي LOOK    463

10.4.6    گزينش يك الگوريتم زمانبندي ديسك 463

10.5    مديريت ديسك    464

10.5.1    فرمت كردن ديسك    464

10.5.2    بلوك بوت    465

10.5.3    بلوك‌هاي خراب    466

10.6    مديريت فضاي مبادله    469

10.6.1    كاربرد فضاي مبادله    469

10.6.2    مكان فضاي مبادله    469

10.6.3    مديريت فضاي مبادله: مثال    469

10.7    ساختار RAID    470

10.7.1    اصلاح قابليت اعتماد با افزودگي    471

10.7.2    بهبود عملكرد با موازي‌سازي    472

10.7.3    سطوح RAID    472

10.7.4    انتخاب يك سطح RAID    477

10.7.5    بسط RAID    478

10.7.6    مشكلات همراه RAID    478

10.8    پياده‌سازي ذخيره‌ساز پايدار   481

10.9    خلاصه    481

تمرين‌ها    482

مراجع    487

 فصل 11      واسط سيستم فايل  489

11.1    مفهوم فايل    489

11.1.1    صفات فايل    490

11.1.2    عمليات فايل    492

11.1.3    انواع فايل‌ها    496

11.1.4    ساختار فايل    498

11.1.5    ساختار داخلي فايل‌ها    498

11.2    روش‌هاي دستيابي    499

11.2.1    دستيابي ترتيبي    499

11.2.2    دستيابي مستقيم    500

11.2.3    ديگر روش‌هاي دستيابي    501

11.3    دايركتوري و ساختار ديسك 502

11.3.1    ساختار ذخيره‌ساز    503

11.3.2    مروري بر دايركتوري‌    504

11.3.3    دايركتوري يك سطحي    505

11.3.4    دايركتوري دو سطحي    505

11.3.5    دايركتوري‌هاي ساختار درختي    507

11.3.6    دايركتوري‌هاي گراف بي‌چرخه    509

11.3.7    دايركتوري گراف عمومي    512

11.4    نصب سيستم فايل    513

11.5    اشتراك فايل    515

11.5.1    چند كاربره    515

11.5.2    سيستم‌هاي فايل راه دور    516

11.5.3    مفاهيم سازگاري    519

11.6    حفاظت    520

11.6.1    انواع دستيابي    521

11.6.2    كنترل دستيابي    521

11.6.3    روش‌هاي ديگر حفاظت    524

11.7    خلاصه    525

تمرين‌ها    526

مراجع    528

 فصل 12          پياده‌سازي سيستم فايل    529

12.1    ساختار سيستم- فايل    529

12.2    پياده‌سازي سيستم فايل    532

12.2.1    مرور    532

12.2.2    پارتيشن‌ها و سوار كردن (نصب)    534

12.2.3    سيستم فايل‌هاي مجازي    535

12.3    پياده‌سازي دايركتوري    538

12.3.1    ليست خطي    538

12.3.2    جدول درهم‌سازي    539

12.4    روش‌هاي تخصيص    540

12.4.1    تخصيص همجواري    540

12.4.2    تخصيص پيوندي    542

12.4.3    تخصيص انديس‌دار    545

12.4.4    كارآيي    547

12.5    مديريت فضاي آزاد    548

12.5.1    بردار بيتي    548

12.5.2    ليست پيوندي    549

12.5.3    گروه‌بندي    550

12.5.4    شمارش    550

12.5.5    نگاشت‌هاي فضا    550

12.6    كارآمدي و كارآيي    551

12.6.1    كارآمدي    551

12.6.2    كارآيي    552

12.7    ترميم    555

12.7.1    چك كردن سازگاري    556

12.7.2    سيستم فايل‌ها با ساختار كارنامه (گزارش)    556

12.7.3    راه‌حل‌هاي ديگر    557

12.7.4    تهيه پشتيبان و بازيابي (بازگرداني)  548

12.8    NFS    559

12.8.1    مرور كلي    559

12.8.2    پروتكل سوار كردن (نصب)    561

12.8.3    پروتكل NFS    562

12.8.4    تبديل نام مسير    564

12.8.5    عمليات راه‌دور    564

12.9    مثال: سيستم فايل WAFL    565

12.10    خلاصه    567

تمرين‌ها    568

مراجع    573

 فصل 13       سيستم‌هاي I/O  575

13.1    مرور    575

13.2    سخت‌افزار I/O    576

13.2.1    سركشي    579

13.2.2    وقفه‌ها    580

13.2.3    دستيابي مستقيم به حافظه(DMA)   584

13.2.4    خلاصه سخت‌افزار I/O    585

13.3    واسط I/O برنامه كاربردي    586

13.3.1    دستگاه‌هاي بلوكي و كاراكتري    588

13.3.2    دستگاه‌هاي شبكه    589

13.3.3    ساعت‌ها و تايمرها    590

13.3.4    I/O غيرمسدود و غيرهمزمان    591

13.3.5    I/O برداري    593

13.4        زير سيستم I/O كرنل    593

13.4.1    زمانبندي I/O    593

13.4.2    بافركردن    594

13.4.3    كش‌كاري (نهان‌كاري)    596

13.4.4    اسپولينگ و رزرو كردن دستگاه    596

13.4.5    اداره خطا    597

13.4.6    حفاظت I/O    597

13.4.7    ساختمان‌هاي داده كرنل    599

13.4.8    خلاصه زير سيستم I/O كرنل    599

13.5    تبديل درخواست‌هاي I/O به عمليات سخت‌افزار    600

13.6    جريان‌ها (STREAMS)    602

13.7    كارآيي    604

13.8    خلاصه    606

تمرين‌ها    608

مراجع    610

بخش 5    حفاظت و امنيت    611

 فصل 14          حفاظت    613

14.1    اهداف حفاظت    613

14.2    اصول حفاظت    613

14.3    حوزه حفاظت    615

14.3.1    ساختار دُمين (حوزه)    616

14.3.2    يك مثال: يونيكس    617

14.3.3    مثال: Multics    618

14.4    ماتريس دستيابي    620

14.5    پياده‌سازي ماتريس دستيابي624

14.5.1    جدول كلي    624

14.5.2    ليست دستيابي‌ها براي اشياء    624

14.5.4    مكانيزم كليد- قفل    625

14.5.5    مقايسه    626

14.6    كنترل دستيابي    627

14.7    ابطال حق دستيابي    628

14.8    سيستم‌هاي مبتني بر قابليت‌ها629

14.8.1    يك مثال: Hydra    629

14.8.2    سيستم CAP، كمبريج    631

14.9    حفاظت مبتني بر زبان    632

14.9.1    تحميل مبتني بر كامپايلر    633

14.9.2    حفاظت در جاوا    635

14.10    خلاصه    637

تمرين‌ها    638

مراجع    640

 فصل 15          امنيت    643

15.1    مسئله امنيت    643

15.2    تهديدهاي برنامه    647

15.2.1    اسب ترواي (trojan horse)  647

15.2.2    روزنه (Trap Door)    649

15.2.3    بمب منطقي    649

15.2.4    پشته و سرريز بافر    649

15.2.5    ويروس‌ها    653

15.3    تهديدهاي سيستم و شبكه 656

15.3.1    كرم‌ها (worms)    656

15.3.2    پيمايش پورت    659

15.3.3    انكار سرويس    660

15.4    رمزنگاري به‌عنوان يك ابزار امنيت    661

15.4.1    رمزگذاري    662

15.4.2    پياده‌سازي رمزنگاري    668

15.4.3    يك مثال: SSL    670

15.5    تأييد كاربر    672

15.5.1    پسورد (رمز عبور)    672

15.5.2    آسيب‌پذيري پسورد    672

15.5.3    ايمن كردن پسورد    674

15.5.4    پسوردهاي يكبار مصرف    675

15.5.5    بيومتريك‌ها    676

15.6    پياده‌سازي دفاع‌هاي امنيتي 676

15.6.1    سياست ايمني    677

15.6.2    ارزيابي آسيب‌پذيري    677

15.6.3    شناسايي مزاحمت    679

15.6.4    حفاظت ويروس    681

15.6.5    مميزي، حسابداري و گزارش‌گيري  683

15.7    فايروال براي حفاظت سيستم‌ها و شبكه‌ها    683

15.8    دسته‌بندي امنيت كامپيوتر 685

15.9    مثال: ويندوز 7    687

15.10    خلاصه    689

تمرين‌ها    690

مراجع    692

بخش 6    عناوين پيشرفته    697

 فصل 16     ماشين‌هاي مجازي  699

16.1    مرور    699

16.2    تاريخچه    701

16.3    مزايا ويژگي    702

16.4    ساختارهاي بلوكي    705

16.4.1    تقليد- و- تله    705

16.4.2    ترجمه دودويي    706

16.4.3    كمك سخت‌افزاري    708

16.5    انواع ماشين‌هاي مجازي و پياده‌سازي آن‌ها    710

16.5.1    چرخه حيات ماشين مجازي    710

16.5.2    هايپروايزور نوع o    711

16.5.3    هايپروايزور نوع 1    712

16.5.4    هايپروايزور نوع 2    712

16.5.5    فوق مجازي‌سازي    713

16.5.6    مجازي‌سازي محيط برنامه‌نويسي    714

16.5.7    تقليد (امولاسيون)    714

16.5.8    محدودسازيبرنامه كاربردي    715

16.6    مجازي‌سازي و اجزاء سيستم عامل    716

16.6.1    زمانبندي CPU    716

16.6.2    مديريت حافظه    717

16.6.3    I/O    719

16.6.4    پمديريت ذخيره‌ساز    720

16.6.5    انتقال زنده    721

16.7    مثال‌ها    722

16.7.1    VMware    723

16.7.2    ماشين مجازي جاوا    723

16.8    خلاصه    725

تمرين‌ها    725

مراجع    726

 فصل 17         سيستم‌هاي توزيع شده    729

17.1    مزاياي سيستم‌هاي توزيع شده729

17.1.1    اشتراك امكانات (منابع)    729

17.1.2    افزايش سرعت محاسبات    730

17.1.3    قابليت اعتماد    730

17.1.4    ارتباط     731

17.2    انواع سيستم‌هاي عامل مبتني بر شبكه    731

17.2.1    سيستم عامل‌هاي شبكه    731

17.2.2    سيستم‌هاي عامل توزيع شده    732

17.3    ساختار شبكه    735

17.3.1    شبكه‌هاي محلي    735

17.3.2    شبكه‌هاي گسترده (WAN)    737

17.4    ساختار ارتباط    738

17.4.1    نام‌گذاري و تبديل نام    738

17.4.2    راهكارهاي مسيريابي    740

17.4.3    راهكارهاي بسته‌بندي    742

17.4.4    راهكارهاي اتصال    742

17.5    پروتكل‌هاي ارتباط    743

17.6    يك مثال: TCP/IP    747

17.7    توانمندي    748

17.7.1    شناسايي خرابي    749

17.7.2    پيكربندي مجدّد    749

17.7.3    بازگشت از خرابي    750

17.7.4    تحمل نقص    750

17.8    نكات طراحي    751

17.9    سيستم فايل‌هاي توزيع شده753

17.9.1    نام‌گذاري و شفافيت    754

17.9.2    دستيابي راه دور به فايل    757

17.10    خلاصه    761

تمرين‌ها    762

مراجع    764

بخش 7 مطالعات پژوهشي     767

 فصل 18       سيستم لينوكس 769

18.1    تاريخچه لينوكس    769

18.1.1    كرنل لينوكس    770

18.1.2    سيستم لينوكس    772

18.1.3    توزيع‌هاي لينوكس    773

18.1.4    مجوزگيري  لينوكس    773

18.2    اصول طراحي    774

18.2.1    اجزاء يك سيستم لينوكس    775

18.3    مدول‌هاي كرنل    777

18.3.1    مديريت مدول     778

18.3.2    ثبت درايور    779

18.3.3    جلوگيري از تضادها    779

18.4    مديريت فرآيند    780

18.4.1    مد فرآيند fork() و exec()    780

18.4.2    فرآيندها و نخ‌ها    783

18.5    زمانبندي    784

18.5.1    زمانبندي فرآيند    784

18.5.2    زمانبندي بلادرنگ    786

18.5.3    همگامي كرنل    786

18.5.4    چند پردازش متقارن    768

18.6    مديريت حافظه    768

18.6.1    مديريت حافظه فيزيكي    789

18.6.2    حافظه مجازي    792

18.6.3    اجرا و بار كردن برنامه‌هاي كاربر    795

18.7    سيستم فايل‌ها    797

18.7.1    سيستم فايل مجازي    797

18.7.2    سيستم فايل ext3 از لينوكس    799

18.7.3    گزارش‌گري    802

18.7.4    سيستم فايل فرآيند لينوكس    802

18.8    ورودي/ خروجي    804

18.8.1    دستگاه‌هاي بلوكي    805

18.8.2    دستگاه‌هاي كاراكتري    805

18.9    ارتباط ميان فرآيندي    806

18.9.1    همگامي و سيگنال‌ها    806

18.9.2    ارسال داده‌ها ميان فرآيندها    807

18.10    ساختار شبكه    807

18.11    امنيت    810

18.11.1    تأييد    810

18.11.2    كنترل دستيابي    811

18.12    خلاصه    812

تمرين‌ها    813

مراجع    815

 فصل 19         ويندوز 7   817

19.1    تاريخچه    817

19.2    اصول طراحي    819

19.2.1    امنيت    820

19.2.2    قابليت اعتماد    821

19.2.3    سازگاري برنامه‌هاي كاربردي ويندوز و POSIX    822

19.2.4    كارآيي بالا    822

19.2.5    گسترش‌پذيري    824

19.2.6    قابليت حمل    825

19.2.7    براي دستيابي بين‌المللي    825

19.2.8    كارآمدي انرژي    826

19.2.9    پشتيباني ديناميكي دستگاه    826

19.3    اجزاء سيستم    826

19.3.1    لايه تجريد يا ابستره - سخت‌افزار (HAL)    827

19.3.2    كرنل    828

19.3.3    مدير اجرايي    833

19.4    سرويس‌هاي پايانه و تعويض كاربر سريع    852

19.5    سيستم فايل    853

19.5.1    طرح داخلي NTFS    853

19.5.2    بازيابي    856

19.5.3    امنيت    856

19.5.4    مديريت ولوم و تحمل خرابي    857

19.5.5    فشرده‌سازي    859

19.5.6    نقاط نصب، پيوندهاي سمبليك و پيوندهاي سخت    859

19.5.7    تغيير گزارش    859

19.5.8    كپي‌هاي ساده ولوم    860

19.6    شبكه‌بندي    860

19.6.1    رابط‌هاي شبكه    860

19.6.2    پروتكل‌ها    860

19.6.3    هدايت‌گرها و سرورها    863

19.6.4    دُمين‌ها    864

19.6.5    دايركتوري فعال (Active directory)    864

19.7    رابط برنامه نويسي    865

19.7.1    دستيابي به اشياء كرنل    865

19.7.2    اشتراك اشياء بين فرآيندها    865

19.7.3    مديريت فرآيند    866

19.8    خلاصه    875

تمرين‌ها    875

مراجع    877

 فصل 20      سيستم عامل موثر    879

20.1    انتقال ويژگي    879

20.2    سيستم‌هاي Eavly   880

20.2.1    سيستم‌هاي كامپيوتري خاص    881

20.2.2    سيستم‌هاي كامپيوتر اشتراكي    882

20.2.3    I/O هم‌پوشان    884

20.3    Atlas    886

20.4    XDS-940    887

20.5    THE    888

20.6    RC4000    889

20.7    CTSS    889

20.8    MULTICS    890

20.9    IBM OS/360    890

20.10    TOPS- 20    892

20.11    CP/M و MS/DOS    892

20.12    سيستم عامل مكينتاش و ويندوز    893

20.13    Mach    894

20.14    سيستم‌هاي ديگر    895

تمرين‌ها    895

مراجع    897














 




نمایش بیشتر
نمایش کمتر

مشخصات محصول

نویسنده: آبراهام سیلبرشاتس پیتر بیر گالوین گرگ گاگنه
ویرایش: -
مترجم: قدرت سپیدنام
تعداد صفحات: 944
انتشارات: دانش بنیاد
وزن: 1397
شابک: 9786009676606
تیراژ: -
اندازه(قطع): وزیری
سال انتشار: 1395
تصویرگر: -
نوع جلد: شومیز / گالینگور (+ 30000 تومان)

معرفی محصول


توضیحات



پیشگفتار



سیستم‌های عامل بخش عمده‌ای در هر سیستم کامپیوتر است. به همین ترتیب یک دوره آموزشی درباره سیستم‌های عامل هم بخش عمده‌ای از هر آموزش در علوم کامپیوتر است. این زمینه دستخوش تغییر سریعی است، به طوری که اکنون در واقع در هر عرصه از زندگی روزانه ـ از دستگاه‌های اختصاصی در اتومبیل‌ها تا پیچیده‌ترین ابزارهای برنامه‌ریز برای دولت و شرکت‌های چند ملیتی، متداول شده است. در عین حال مفاهیم اساسی نسبتاً روشن است، و بر این اساس ما این کتاب را بنا نهاده‌ایم.

ما این کتاب را به منظور یک دوره آموزش مقدماتی درباره سیستم‌های عامل در سطح سال‌های آخر دوره‌های کارشناسی و بالاتر یا سال اول دوره‌های ارشد نوشته‌ایم. ما امیدواریم تکنیسین‌ها هم آن را مفید بیابند. به عنوان پیش‌نیاز، فرض می‌کنیم خواننده با ساختارهای داده پایه، سازمان کامپیوتر، و زبان‌های سطح بالا، مانند C یا Java آشناست. عناوین سخت‌افزاری لازم برای درک سیستم‌های عامل در فصل 1 پوشش یافته است. در این فصل، مروری بر ساختارهای داده بنیادی به عمل آمده که در بسیاری از سیستم‌های عامل رایج است. برای مثال‌هایی از کد، ما زبان غالب C را همراه با Java به کار می‌بریم، ولی خواننده هنوز می‌تواند الگوریتم‌ها را بدون آگاهی کامل از این زمان‌ها، درک کند.

مفاهیم با استفاده از توصیف مبتنی بر درک ارائه شده‌اند. نتایج مهم تئوریک پوشش یافته‌اند، ولی اثبات‌ها عمدتاً نادیده گرفته شده‌اند. یادداشت‌های مربوط به تاریخچه در انتهای هر فصل حاوی اشاره‌هایی به مقالات تحقیقاتی است که برای اولین بار اثبات و ارائه شده است، و نیز برای خواندنی‌های بیشتر هم برای مراجع فراهم شده است. به جای اثبات، شکل‌ها و مثال‌ها برای پاسخ‌ها به کار رفته‌اند تا حدس بزنیم چرا انتظار داریم که نتایج حاصل درست باشند.

مفاهیم بنیادی و الگوریتم‌های پوشش یافته در این کتاب اغلب براساس همان‌هایی است که در سیستم‌های عامل تجاری و منبع ـ آزاد به کار رفته‌اند. هدف ما ارائه این مفاهیم و الگوریتم‌ها به طور کلی است و به یک سیستم عامل خاص وابسته نیست. با این وجود، ما تعداد زیادی مثال مرتبط با رایج‌ترین و ابداعی‌ترین سیستم‌های عامل را ارائه نموده‌ایم، از جمله لینوکس، ویندوز ماکروسافت، اپل مکینتاش OSX و سولاریس را می‌توان نام برد. همچنین مثال‌هایی از اندروید و iOS ارائه شده است که دو سیستم عامل موبایل رایج هستند.

سازمان کتاب منعکس کننده سال‌ها تدریس در سیستم‌های عامل و خط مشی‌های دوره‌ای چاپ شده ما به وسیله IEEE Compuling Society و Association omputing Machinary (ACM) است. توجهی نیز به پسخوردهای مرور کنندگان متن، همراه با توضیحات و پیشنهاد دریافتی از خوانندگان ویرایش‌های قبلی و دانشجویان جاری و قبلی شده است.

محتوای این کتاب

کتاب در هشت بخش عمده سازمان یافته است.

مرور. فصل‌های 1 و 2 توضیح می‌دهند که سیستم عامل چیست، آنها چکار می‌کنند، و چگونه طراحی و ساخته می‌شوند. این فصل‌ها توضیح می‌دهند که ویژگی‌های یک سیستم عامل چیست، و یک سیستم عامل برای کاربر چه کاری انجام می‌دهد. ما هر دو نوع سیستم عامل PC قدیمی و سرور را پوشش داده‌ایم، همچنین سیستم عامل برای موبایل هم مورد بحث قرار گرفته است. ارائه طبیعتاً انگیزه‌دار و توصیفی است. ما در این فصل از هرگونه بحث درباره چگونگی انجام چیزها در داخل پرهیز کرده‌ایم. بنابراین، آنها برای آموختن هر خواننده‌ای در کلاس‌های پائین‌تر که بخواهند بدانند سیستم عامل چیست، مناسب‌اند، بدون آن که نیاز به ورود به جزئیات الگوریتم‌های داخلی داشته باشند.

مدیریت فرآیند. فصل‌های 3 تا 7 مفهوم فرآیند و همروندی را به عنوان قلب سیستم‌های عامل مدرن توصیف می‌کنند. یک فرآیند واحدی از کار در یک سیستم است. چنین سیستمی کلکسیونی از فرآیندهاست که به طور همروند در حال اجرا هستند، که بعضی از آنها فرآیندهای سیستم عامل (آنهایی که کد سیستم را اجرا می‌کنند) و به وسیله فرآینداهی کاربرند (آنهایی که کد کاربر را اجرا می‌نمایند). این فصل‌ها روش‌هایی را برای زمانبندی، محاوره بین فرآیندی، همزمانی یا سنکرون کردن فرآیند، و مدیریت بن‌بست را پوشش می‌دهند. همچنین بحثی در مورد نخ‌ها و سیستم‌های چند هسته‌ای و برنامه‌نویسی موازی آورده شده است.

مدیریت حافظه. فصل‌های 8 و 9 مدیریت حافظه اصلی را در زمان اجرای یک فرآیند بحث می‌‌نمایند. برای اصلاح به کارگیری CPU و سرعت پاسخ آن به کاربرانش، کامپیوتر باید چند فرآیند را در حافظه نگه دارد. چندین روش مدیریت حافظه وجود دارد که منعکس کننده انواع طرق مختلف اداره حافظه است، و مؤثر واقع شدن یک الگوریتم خاص به موقعیت بستگی دارد.

مدیریت ذخیره‌ساز. فصل‌های 10 الی 13 توصیف می‌کنند که چگونه ذخیره کننده‌های حجیم، سیستم فایل و I/O یک سیستم کامپیوتر جدید اداره می‌شوند. سیستم فایل مکانیزمی برای ذخیره‌سازی آنلاین فراهم می‌سازد و دستیابی به داده‌ها و برنامه‌ها را میسر می‌سازد. ما الگوریتم‌های داخلی کلاسیک، و ساختارهای مدیریت ذخیره‌ساز را فراهم می‌نمائیم و درکی عملی از الگوریتم‌های به کار رفته را تهیه می‌کنیم ـ یعنی خواص آنها، مزایا و معایب آنها را تهیه می‌نمائیم. چون دستگاه‌های I/O متصل به کامپیوتر به طور گسترده در حال تغییرند، سیستم عامل باید قابلیت عملیاتی گسترده‌ای را برای برنامه‌های کاربردی داشته باشد، تا به آنها اجازه کنترل تمام جنبه‌های این دستگاه‌ها را بدهد. ما سیستم I/O را به طور عمیق مورد بحث قرار می‌دهیم و از جمله طراحی سیستم I/O ، واسط‌ها، و ساختار سیستم داخلی و عملکردشان را مورد بررسی قرار داده‌ایم. در بسیاری از کارها، دستگاه‌های I/O کندترین قطعات کامپیوترند. چون آنها گلوگاه کارآیی را ارائه می‌دهند، ما موضوعات کارآیی با دستگاه‌های I/O را هم بررسی کرده‌ایم.

حفاظت و امنیت. فصل‌های 14 و 15 مکانیزم‌هایی را توصیف می‌کنند که برای حفاظت و امنیت سیستم‌های کامپیوتر لازم‌اند. فرآیندها در یک سیستم عامل باید از فعالیت یکدیگر حفاظت شوند، و برای فراهم کردن چنین حفاظتی، ما باید مطمئن باشیم که تنها فرآیندهایی که مسئولیت صحیحی از سیستم عامل دریافت کرده‌اند می‌توانند روی فایل‌ها، حافظه‌ها، CPU ، و دیگر امکانات سیستم عمل نمایند. حفاظت مکانیزمی برای کنترل دستیابی به برنامه‌ها، فرآیندها، یا کاربران به امکانات سیستم ـ کامپیوتر است. این مکانیزم باید کنترل‌هایی که باید اعمال شوند واداشتن‌هایی را شناسایی کند. امنیت یکپارچگی اطلاعات ذخیره شده در سیستم (هم داده و هم کد) و نیز امکانات فیزیکی در سیستم و امکانات (منابع) سیستم را از دستیابی افراد غیرمجاز، تخریب یا تغییر، و معرفی ناسازگاری‌های اتفاقی حفظ می‌کند.

عناوین پیشرفته. فصل‌های 16 و 17 ماشین‌های مجازی و سیستم‌های توزیع شده را مورد بحث قرار می‌دهد. فصل 16 فصل جدیدی است که مروری از ماشین‌های مجازی و رابطه آنها را با سیستم‌های عامل امروزی فراهم ساخته است. در این فصل تکنیک‌های سخت‌افزاری و نرم‌افزاری که مجازی‌سازی را ممکن می‌سازد مرور شده‌اند. فصل 17 سه فصل از ویرایش قبلی را از فشرده کرده و به روزآوری کرده است. این تغییر به خاطر این است که مدرسین در زمان محدود باقیمانده دو ترم در طول ترم مطالب را به پایان برساند و نیز دانشجویان درک خوبی از ایده درک محاسبات توزیع شده را سریع‌تر کسب کنند.

مطالعات پژوهشی. فصل‌های 18 و 19 در متن، همراه با پیوست‌های (الف) و (ب) که در سایت (http://www.os.book.com) در دسترسند، جزئیات مطالعات پژوهشی سیستم‌های عامل واقعی را ارائه نموده‌اند، از جمله آنها لینوکس، ویندوز 7 ، Free BSD و Mach می‌باشند. پوشش لینوکس و ویندوز 7 در سرتاسر این متن پوشش یافته است؛ با این وجود، مطالعات پژوهشی جزئیات بیشتری دارد. نکته جالب این است که دو سیستم کاملاً متفاوت با هم مقایسه و مقابله شده‌اند. فصل 20 چند سیستم عامل مطرح دیگر را به طور خلاصه توصیف کرده است.

ویرایش نهم

در ضمن نوشتن ویرایش نهم تحت عنوان مفاهیم سیستم عامل، با رشد فعلی در راستای سه زمینه بنیادی که سیستم‌های عامل را تحت تأثیر قرار می‌دهند هدایت شدیم:

سیستم‌های چند هسته‌ای

محاسبات موبایلی

مجازی‌سازی

در تأکید این عناوین ما پوشش مناسبی را در سرتاسر این ویرایش جدید یکپارچه کردیم ـ و در مورد مجازی‌سازی، یک فصل جدیدی را به طور کامل نوشتیم. به علاوه ما مطالب را تقریباً با تکرار مطالب قدیمی به روز کرده‌ایم و مطالبی که دیگر جالب نیستند و یا نامناسبد را حذف نموده‌ایم.

همچنین تغییرات قابل توجهی در سازماندهی به وجود آمده است. مثلاً، فصل سیستم‌های بلادرنگ را حذف کرده و در عوض در سرتاسر کتاب آن را لحاظ نموده‌ایم. ما ترتیب فصل‌ها را در مدیریت ذخیره‌سازها عوض کرده و سنکرون‌سازی فرآیند را تغییر جا داده‌ایم به طوری که در قبل از زمانبندی فرآیند ظاهر شده است. اغلب این تغییرات سازمانی بر تجربه ما مبتنی است که در حین تدریس درس سیستم‌های عامل حاصل شده هاست.

در ادامه، رئوس خلاصه‌ای از تغییرات عمده برای فصل‌های مختلف آمده است.

فصل 1 ، مقدمه، شامل مطالب به روز شده‌ای از چند پردازنده‌ها و سیستم‌های چند هسته‌ای است، و نیز بخش جدیدی در رابطه با ساختارهای کرنل داده آمده است. به علاوه، پوششی بر محیط‌های محاسباتی فعلی شامل سیستم‌های موبایل و ابری هم لحاظ شده است. همچنین مروری از سیستم‌های بلادرنگ صورت گرفته است.

فصل 2 ، ساختارهای سیستم‌های عامل، پوشش جدیدی از واسط‌های کاربر برای دستگاه‌های موبایل فراهم می‌سازد، که از جمله آنها بحث‌های iOS ، و Android بوده و پوشش توسعه‌یافته‌ای ازMac OS X که به عنوان نوعی سیستم هیبرید آورده شده است.

فصل 3 ، فرآیندها، اینک شامل پوششی است از چند وظیفه‌ای در سیستم‌های عامل موبایل است که پشتیبانی‌ای برای مدل چند فرآیندی در مرورگر وب Googleʼs Chrome ، و فرآیندهای zombie و orphan در UNIX را فراهم ساخته است.

فصل 4 ، نخ، پوشش گسترش یافته‌ای از موازی‌سازی و قانون Amdahl است. در این فصل یک بخش جدید در مورد نخ ضمنی شامل OpenMP و Appleʼs Grand Central Dispateh نیز اضافه شده است.

فصل 5 ، همزمان‌سازی (سنکرون‌سازی) فرآیند (قبلاً فصل 6)، یک بخش جدیدی در مورد قفل‌های Mutex و نیز پوششی بر همزمان‌سازی با استفاده از OpenMP ، و نیز زبان‌های عملیاتی اضافه شده است.

فصل 6 ، زمانبندی CPU (قبلاً فصل 5)، حاوی پوشش جدیدی از زمانبندی CGS لینوکس و زمانبندی مد ـ کاربر ویندوز می‌باشد. پوشش الگوریتم‌های زمانبندی بلادرنگ نیز در این فصل ادغام شده است.

فصل 7 ، بن‌بست‌ها، تغییر عمده‌ای نداشته است.

فصل 8 ، حافظه اصلی، شامل پوشش جدیدی از معاوضه (تعویض) در سیستم‌های موبایل و معماری‌های Intel 32 و 64 بیتی می‌باشد.

فصل 9 ، حافظه مجازی، مدیریت حافظه کرنل برای لحاظ حافظه Linux SLUB و SLOP .

فصل 10 ، ساختار ذخیره‌سازی حجیم، (قبلاً فصل 12)، پوششی بر دیسک‌های حالت جامد می‌افزاید.

فصل 11 ، واسط سیستم فایل (قبلاً فصل 10) با اطلاعاتی درباره تکنولوژی‌های جاری به روز شده است.

فصل 12 ، پیاده‌سازی سیستم فایل (قبلاً فصل 11)، با پوششی بر تکنولوژی‌های جاری به روز شده است.

فصل 13 ، I/O ، تکنولوژی‌ها تعداد کارآیی‌ها را به روز می‌کند، پوشش همزمان / غیرهمزمان را گسترش داده و I/O بلوکی و غیربلوکی را پوشش داده و یک بخش درباره I/O اضافه شده است.

فصل 14 ، حفاظت، تغییر عمده‌ای نکرده است.

فصل 15 ، امنیت، یک بخش رمزنگاری اصلاح شده با نشانه‌های جدید و یک توضیح اصلاح شده از روش‌های رمزگذاری و کاربرد آن است. فصل شامل پوشش جدیدی از امنیت ویندوز 7 است.

فصل 16 ، ماشین‌های مجازی، فصل جدیدی است که مروری بر مجازی‌سازی و چگونگی ارتباط آن با سیستم‌های عامل جدید می‌باشد.

فصل 17 ، سیستم‌های توزیع شده، یک فصل جدید است که گزیده‌ای از مطالب در فصل‌های 16 ، 17 و 18 را ترکیب و به روزآوری کرده است.

فصل 18 ، سیستم Linux (قبلاً فصل 21)، به روزآوری شده تا کرنل Linux 3.2 را پوشش دهد.

فصل 19 ، ویندوز 7 ، فصل جدیدی است که یک Case study از ویندوز 7 را ارائه می‌دهد.

فصل 20 ، سیستم‌های عامل تأثیرگذار  (قبلاً فصل 23) تغییر چندانی نیافته است.

محیط‌های برنامه‌نویسی

این کتاب از چند مثال نمونه از سیستم‌های عامل بلادرنگ برای تشریح مفاهیم اصلی سیستم عامل استفاده می‌کند. توجه خاصی به لینوکس و ویندوز ماکروسافت شده، ولی ما به انواع یونیکس (شامل سولاریس، BSD و Mac OS X نیز اشاره کرده‌ایم.

کتاب، چند برنامه هم که در C و Java نوشته شده‌اند را هم فراهم کرده است. این برنامه‌ها برای اجرا در محیط‌های برنامه‌نویسی زیر اجرا خواهند شد:

 POSX . Posix (که به معنی Portable Operating System Interface می‌باشد) مجموعه‌ای از استانداردهاست که ابتدا برای سیستم‌های عامل مبتنی بر UNIX پیاده‌سازی شد. گرچه سیستم‌های ویندوز می‌توانند برنامه‌های POSIX معینی را اجرا کنند، پوشش ما از posix بر سیستم‌های UNIX و Linux تمرکز دارد. سیستم‌های موافق ـ POSIX باید هسته posix استاندارد را پیاده‌سازی کنند. (POSIX.1)؛ لینوکس، سولاریس، و Mac OSX مثال‌هایی از سیستم‌های موافق ـ posix اند. همچنین posix چندین توسعه را برای استانداردها تعریف می‌کند، از جمله توسعه‌های بلادرنگ (POSIX1.b)، و یک توسعه برای کتابخانه از نخ‌ها (POSIX1.c ، که بیشتر به نام Pthread معروف است) تعریف شده‌اند. ما چندین مثال برنامه‌نویسی را که در C نوشته شده و API مبتنی بر POSIX و Plhreads و توسعه برای برنامه‌نویسی بلادرنگ را شرح می‌دهند، تهیه نموده‌ایم. این برنامه‌های نمونه روی سیستم‌های لینوکس 2.6 و 3.2 Mac OSX107 و سولاریس 10 با استفاده از کامپایلر gcc 4.0 تست شده‌اند.

 Java . Java یک زبان برنامه‌نویسی است که به طور گسترده به کار رفته همراه با یک API غنی و پشتیبانی زبان درونی برای پشتیبانی در ایجاد و مدیریت نخ است. برنامه‌های جاوا روی هر سیستم عاملی که ماشین مجازی Java (JVM) را پشتیبانی کنند، اجرا می‌گردند. ما انواع سیستم عامل و مفاهیم شبکه با برنامه‌های Java را که با Java 1.6 JVM تست شده شرح خواهیم داد.

 سیستم‌های ویندوز. محیط برنامه‌نویسی اصلی برای سیستم‌های ویندوز، Window API است، که مجموعه جامعی از توابع را برای مدیریت فرآیند، نخ‌ها، حافظه و دستگاه‌های جانبی فراهم می‌سازند. ما چند برنامه C را که این API تشریح می‌کند، تهیه کرده‌ایم. برنامه‌ها روی سیستم‌های در حال اجرای ویندوز XP و ویندوز 7 تست شده‌اند.

ما این سه محیط برنامه‌نویسی را به این دلیل اختیار کرده‌ایم زیرا معتقدیم آنها به بهترین وجه مدل‌های سیستم عامل رایج ـ یعنی ویندوز و یونیکس / لینوکس ـ را همراه با محیط Java که به طور گسترده به کار می‌رود، نشان می‌دهد. اغلب برنامه‌های نمونه در C نوشته می‌شوند، و ما انتظار داریم که خوانندگان با این زبان آشنا باشند. خوانندگانی که با هر دو زبان C و Java باشند باید به سادگی با اغلب برنامه‌های تهیه شده در این کتاب را بفهمند.

در بعضی از مثال‌ها ـ مانند ایجاد نخ ـ ما یک مفهوم خاص را شرح می‌دهیم که هر سه محیط را به کار می‌برد، و به خواننده اجازه می‌دهد تا بر سه کتابخانه متفاوت که به وظیفه یکسانی اشاره دارند، تمرکز کند. در دیگر جوامع، ما ممکن است فقط یکی API ها را برای نمایش یک مفهوم به کار ببریم. مثلاً ما حافظه مشترک را فقط با POSIX API شرح می‌دهیم؛ برنامه‌نویسی سوکت در TP/IP با Java API توصیف شده است.



ماشین مجازی لینوکس

برای کمک به دانشجویان در کسب درک بهتر از سیستم لینوکس، ما یک ماشین مجازی لینوکس را تهیه کرده‌ایم که شامل کد منبع لینوکس بوده و برای دانلود از سایت وب پشتیبان این کتاب (http://www.os.book.com) قابل دستیابی است همچنین این ماشین مجازی شامل یک محیط گسترش gcc همراه با کامپایلر و انکدر است. اغلب تمرین‌های برنامه‌نویسی در این کتاب می‌توانند در این ماشین مجازی تکمیل شوند، به جز تمرین‌هایی که Java یا ویندوز API لازم دارند.

همچنین ما سه تمرین برنامه‌نویسی که کرنل لینوکس را از طریق مدول‌های کرنل اصلاح می‌کنند، فراهم نموده‌ایم.

افزودن یک مدول کرنل پایه به کرنل لینوکس.

افزودن یک مدول کرنل که از انواع ساختارهای داده کرنل استفاده می‌نماید.

افزودن یک مدول کرنل که روی وظایف در یک سیستم لینوکس در حال اجرا تکرار می‌کند.

به تدریج توجه ما به افزودن تمرین‌های مدول کرنل اضافی در سایت وب پشتیبانی جلب خواهد شد.

سایت وب پشتیبانی

وقتی که شما سایت وب پشتیبان این کتاب را ویزیت می‌کنید (http://www.os.book.com)، می‌توانید امکانات زیر را دانلود نمائید.

ماشین مجازی لینوکس

کد سورس C و Java

اسلایدهای نمونه

مجموعه اسلایدهای پاورپوینت

مجموعه شکل‌ها و توضیحات

مطالعات پژوهشی FreeBSD و Mach .

راهنمای مطالعه برای دانشجویان

اصلاحات

یادداشت‌هایی برای مدرسین

برای این کتاب در سایت وب، ما چند نمونه از کارها با روش‌های مختلف، را برای استفاده از کتاب در هر دو سطح درسی مقدماتی و پیشرفته فراهم نموده‌ایم. به عنوان یک قانون کلی، ما مدرسین را به پیشروی متوالی فصل‌ها تشویق می‌کنیم، زیرا این استراتژی مناسب‌ترین روش مطالعه سیستم‌های عامل را فراهم می‌کند. با این وجود، با استفاده از این هجا، یک مدرس می‌تواند ترتیب متفاوتی از فصل‌ها یا زیر بخش‌های یک فصل را برگزیند.

در این ویرایش ما بیش از شصت تکلیف جدید را اضافه کرده‌ایم و بیش از بیست مسئله برنامه‌نویسی و پروژه را افزوده‌ایم. اغلب تمرین‌های برنامه‌نویسی شامل فرآیندها، نخ‌ها و سنکرون‌سازی فرآیند، و مدیریت حافظه است. بعضی مربوط به افزودن مدول‌های کرنل به سیستم لینوکس است که نیازمند استفاده از ماشین مجازی لینوکس، یا هر توزیع لینوکس دیگری است که این کتاب را همراهی می‌کند.

حل تمرینات نوشته شده و تکلیف‌های برنامه‌نویسی برای مدرسینی در دسترس‌اند که این کتاب را برای کلاس سیستم عامل خود برگزیده‌اند. برای به دست آوردن این بخش‌های کمکی با فروشنده یا نماینده John Wiley & Sons تماس بگیرید. http://www.wiley.com/college ما برای شما آرزوی موفقیت در مطالعه سیستم‌های عامل را داریم.



یادداشت‌هایی برای دانشجویان

ما شما را برای استفاده از مزیت تمرین‌های عملی که در آخر هر فصل می‌آید ترغیب می‌نمائیم. راه‌حل‌ها برای دانلود از سایت وب همراه http://www.os-book.com قابل برداشتند. همچنین شما را برای خواندن راهنمای مطالعه که به وسیله یکی از دانشجویان تهیه شده تشویق می‌نمائیم. بالاخره برای دانشجویانی که با سیستم‌های UNIX و Linux آشنا نیستند، پیشنهاد می‌کنیم شما ماشین مجازی لینوکس را که ما در سایت وب گذاشته‌ایم دانلود نمائید. این کار نه فقط یک تجربه جدید را برای شما به ارمغان می‌آورد، بلکه طبیعت منبع باز (آزاد) لینوکس به شما اجازه می‌دهد تا جزئیات داخلی این سیستم عامل مطرح را بررسی کنید.

تماس با ما

ما تلاش بسیاری در راستای حذف غلط‌های حروفچینی و باگ‌ها از کتاب نموده‌ایم. اما در نسخه‌های جدید نرم‌افزار مطمئناً این باگ‌ها باقی می‌مانند. لیستی از اصلاحات که از سایت وب کتاب قابل دستیابی است ارائه شده است. ما قطعاً خوشحال خواهیم شد اگر ما را از وجود هر غلط املایی یا موضوعی در مورد کتاب و یا جا افتادگی در لیست جاری را به آدرس پشت جلد مطلع نمائید.


 







نویسنده

آبراهام سیلبرشاتس پیتر بیر گالوین گرگ گاگنه

آبراهام سیلبرشاتس پیتر بیر گالوین گرگ گاگنه

در حال حاضر مطلبی درباره آبراهام سیلبرشاتس پیتر بیر گالوین گرگ گاگنه نویسنده مبانی و مفاهیم سیستم عامل ویرایش نهم در دسترس نمی‌باشد. همکاران ما در بخش محتوا، به مرور، نویسندگان را بررسی و مطلبی از آنها را در این بخش قرار خواهند داد. با توجه به تعداد بسیار زیاد نویسندگان این سایت، درج اطلاعات تکمیلی، نقد و بررسی تمامی آنها، کاری زمانبر خواهد بود؛ لذا در صورتی که کاربران سایت برای مطلبی از نویسنده، از طریق صفحه ارتباط با ایده بوک درخواست دهند، تهیه و درج محتوای برای آن نویسنده در اولویت قرار خواهد گرفت.ضمنا اگر شما کاربر ارجمندِ سایت ایده‌بوک، این نویسنده را می شناسید یا حتی اگر خود، نویسنده هستید و تمایل دارید با مطلبی جذاب و مفید، سایرین را به مطالعه‌ی کتاب ترغیب و دعوت کنید، می توانید محتوای مورد نظرتان را از صفحه ارتباط با ایده بوک ارسال نمایید.

مترجم

قدرت سپیدنام

در حال حاضر مطلبی درباره قدرت سپیدنام مترجم کتاب مبانی و مفاهیم سیستم عامل ویرایش نهم در دسترس نمی‌باشد. همکاران ما در بخش محتوا، به مرور، مترجمان را بررسی و مطلبی از آنها را در این بخش قرار خواهند داد. با توجه به تعداد بسیار زیاد مترجمان این سایت، درج اطلاعات تکمیلی، نقد و بررسی تمامی آنها، کاری زمانبر خواهد بود؛ لذا در صورتی که کاربران سایت برای مطلبی از مترجم، از طریق صفحه ارتباط با ایده بوک درخواست دهند، تهیه و درج محتوای برای آن مترجم در اولویت قرار خواهد گرفت.ضمنا اگر شما کاربر ارجمندِ سایت ایده‌بوک، این مترجم را می شناسید یا حتی اگر خود، مترجم هستید و تمایل دارید با مطلبی جذاب و مفید، سایرین را به مطالعه‌ی کتاب ترغیب و دعوت کنید، می توانید محتوای مورد نظرتان را از صفحه ارتباط با ایده بوک ارسال نمایید.

قدرت سپیدنام

دیدگاه کاربران

دیدگاه شما

کد امنیتی ثبت نظر

با ثبت دیدگاه، موافقت خود را با قوانین انتشار دیدگاه در ایده بوک اعلام می‌کنم.

پرسش خود را درباره این محصول ثبت کنید