کتاب سیستم عامل استالینگز
بخش اول. پیش زمینه: یک نمای کلی از دانلود کتاب سیستم عامل ویلیام استالینگز به زبان فارسی و سازماندهی کامپیوتر، با تاکید بر موضوعاتی : : : /: //: : : : //
ً :
: ً : : ً
: /: ; ; ://// ً :
: : : : : : :
:
– – – – – – – //ً
/یک یا چند ماژول از هر نوع تشکیل شده است. این اجزا به نوعی به هم متصل می شوند تا به عملکرد اصلی رایانه که اجرای برنامه ها است، دانلود کتاب سیستم عامل ویلیام استالینگز به زبان فارسی یابند. بنابراین، چهار عنصر ساختاری اصلی وجود دارد:
– پردازنده: عملکرد کامپیوتر را کنترل می کند و عملکردهای پردازش داده آن را انجام می دهد. هنگامی که تنها یک پردازنده وجود دارد، اغلب به عنوان واحد پردازش مرکزی CPU شناخته می شود.
– حافظه اصلی: داده ها و برنامه ها را ذخیره می کند. این حافظه معمولاً فرار است. یعنی وقتی کامپیوتر خاموش می شود، محتویات حافظه از بین می رود. در مقابل، محتویات حافظه دیسک حتی زمانی که سیستم کامپیوتری خاموش است، حفظ می شود. حافظه اصلی به عنوان حافظه حقیقی یا حافظه اصلی نیز شناخته می شود.
شکل 1.1 اجزای کامپیوتر: نمای سطح بالا
– ماژول های ورودی/خروجی: داده ها را بین رایانه و محیط خارجی آن جابه جا می کند. محیط خارجی شامل انواع دستگاهها، از جمله دستگاههای حافظه ثانویه به عنوان مثال، دیسک، تجهیزات ارتباطی و پایانهها است.
– گذرگاه سیستم: ارتباط بین پردازنده ها، حافظه اصلی و ماژول های ورودی/خروجی را فراهم می کند.
شکل 1.1 این اجزای سطح بالا را نشان می دهد. یکی از وظایف پردازنده تبادل اطلاعات با حافظه است. برای این منظور، معمولاً از دو رجیستر داخلی برای پردازنده استفاده می کند: یک ثبات آدرس حافظه MAR، که آدرس موجود در حافظه را برای خواندن یا نوشتن بعدی مشخص می کند. و یک رجیستر بافر حافظه MBR که حاوی داده هایی است که باید در حافظه نوشته شود یا داده های خوانده شده را از حافظه دریافت می کند. به طور مشابه، یک ثبت آدرس I/O I/OAR یک دستگاه I/O خاص را مشخص می کند. یک ثبات بافر ورودی/خروجی I/OBR برای تبادل داده بین یک ماژول I/O و پردازنده استفاده می شود.
یک ماژول حافظه شامل مجموعهای از مکانها است که با آدرسهایی با شمارهگذاری متوالی تعریف میشوند. هر مکان حاوی یک الگوی بیت است که می تواند به عنوان یک دستورالعمل یا داده تفسیر شود. یک ماژول I/O داده ها را از دستگاه های خارجی به پردازنده و حافظه منتقل می کند و بالعکس. این شامل بافرهای داخلی برای نگهداری موقت داده ها تا زمانی که بتوان آنها را ارسال کرد.
1.2 تکامل ریزپردازنده
انقلاب سخت افزاری که محاسبات دسکتاپ و دستی را به وجود آورد، اختراع ریزپردازنده بود که شامل یک پردازنده بر روی یک تراشه بود. اگرچه در اصل بسیار کندتر از پردازندههای چند تراشهای است، ریزپردازندهها پیوسته تا حدی تکامل یافتهاند که به دلیل فیزیک درگیر در جابجایی اطلاعات در بازههای زمانی زیر نانوثانیه، برای اکثر محاسبات بسیار سریعتر هستند.
ریزپردازندهها نه تنها به سریعترین پردازندههای همه منظوره در دسترس تبدیل شدهاند، بلکه اکنون به چند پردازنده تبدیل شدهاند. هر تراشه که سوکت نامیده می شود شامل چندین پردازنده که هسته نامیده می شود، هر کدام دارای سطوح مختلف حافظه پنهان بزرگ، و چندین پردازنده منطقی است که واحدهای اجرایی هر هسته را به اشتراک می گذارند. از سال 2010، داشتن 2 یا 4 هسته، هر کدام با 2 رشته سخت افزاری، برای مجموع 4 یا 8 پردازنده منطقی، غیرعادی نیست.
اگرچه پردازنده ها عملکرد بسیار خوبی را برای اکثر اشکال محاسباتی ارائه می دهند، تقاضا برای محاسبات عددی افزایش می یابد. واحدهای پردازش گرافیکی GPU محاسبات کارآمدی را روی آرایههای داده با استفاده از تکنیکهای دادههای چندگانه تک دستوری SIMD که در ابررایانهها پیشگام شدهاند، ارائه میکنند. پردازندههای گرافیکی دیگر فقط برای رندر کردن گرافیکهای پیشرفته استفاده نمیشوند، بلکه برای پردازشهای عددی عمومی، مانند شبیهسازیهای فیزیک برای بازیها یا محاسبات روی صفحات گسترده بزرگ نیز استفاده میشوند. همزمان، خود CPUها قابلیت کار بر روی آرایههای داده را به دست میآورند – با واحدهای برداری قدرتمندتر که در معماری پردازنده خانوادههای x86 و AMD64 ادغام شدهاند.
پردازنده ها و GPU ها پایان داستان محاسباتی رایانه های شخصی مدرن نیستند. پردازندههای سیگنال دیجیتال DSP نیز برای کار با سیگنالهای جریانی مانند صدا یا تصویر وجود دارند. DSP ها قبلاً در دستگاه های ورودی/خروجی مانند مودم ها تعبیه می شدند، اما اکنون به دستگاه های محاسباتی درجه یک، به ویژه در دستگاه های دستی تبدیل می شوند. سایر دستگاههای محاسباتی تخصصی واحدهای عملکرد ثابت برای پشتیبانی از سایر محاسبات استاندارد، مانند رمزگذاری/رمزگشایی گفتار و ویدیو کدکها، یا ارائه پشتیبانی برای رمزگذاری و امنیت، با CPU وجود دارند.
برای برآوردن نیازهای دستگاه های دستی، ریزپردازنده کلاسیک جای خود را به سیستم روی تراشه SoC می دهد، جایی که نه تنها CPU ها و حافظه های پنهان روی یک تراشه قرار دارند، بلکه بسیاری از اجزای دیگر سیستم، مانند DSP ها، GPU ها، دستگاه های ورودی/خروجی مانند رادیوها و کدک ها و حافظه اصلی.
1.3 اجرای دستورالعمل
برنامه ای که باید توسط یک پردازنده اجرا شود شامل مجموعه ای از دستورالعمل های ذخیره شده در حافظه است. در ساده ترین شکل، پردازش دستورالعمل شامل دو مرحله است: پردازنده دستورالعمل ها را یکی یکی از حافظه می خواند و هر دستور را اجرا می کند. اجرای برنامه شامل تکرار فرآیند واکشی دستورالعمل و اجرای دستورالعمل است. اجرای دستورالعمل ممکن است شامل چندین عملیات باشد و به ماهیت دستور بستگی دارد. پردازش مورد نیاز برای یک دستورالعمل منفرد، چرخه دستورالعمل نامیده می شود. با استفاده از یک توصیف دو مرحله ای ساده، چرخه دستورالعمل در شکل 1.2 نشان داده شده است. این دو مرحله به عنوان مرحله واکشی و مرحله اجرا نامیده می شوند. اجرای برنامه فقط در صورتی متوقف می شود که پردازنده خاموش باشد، نوعی خطای غیرقابل بازیابی رخ دهد یا دستورالعمل برنامه ای که پردازنده را متوقف می کند مواجه شود.

نمودار
شکل 1.2 چرخه دستورالعمل اصلی
در ابتدای هر چرخه دستورالعمل، پردازنده یک دستورالعمل را از حافظه واکشی می کند. به طور معمول، شمارنده برنامه PC آدرس دستور بعدی را که باید واکشی می شود، نگه می دارد. مگر اینکه دستور دیگری داده شود، پردازنده همیشه کامپیوتر را بعد از هر واکشی دستورالعمل افزایش می دهد تا دستور بعدی را به ترتیب یعنی دستورالعملی که در آدرس حافظه بالاتر بعدی قرار دارد واکشی کند. به عنوان مثال، یک کامپیوتر ساده شده را در نظر بگیرید که در آن هر دستورالعمل یک کلمه 16 بیتی از حافظه را اشغال می کند. فرض کنید که شمارنده برنامه روی مکان 300 تنظیم :
– : – -/: /- : – : = = ً :
استفاده از یک ثبات آدرس حافظه MAR و یک ثبات بافر حافظه MBR است. برای سادگی، این رجیسترهای میانی نشان داده نشده اند.
2. 4 بیت اول اولین رقم هگزادسیمال در IR نشان می دهد که AC قرار است از حافظه بارگذاری شود. 12 بیت باقی مانده سه رقم هگزادسیمال آدرس را مشخص می کند که 940 است.
3. دستورالعمل بعدی 5941 از مکان 301 واکشی شده و PC افزایش یافته است.
4. محتویات قدیمی AC و محتویات محل 941 اضافه شده و نتیجه در AC ذخیره می شود.
5. دستورالعمل بعدی 2941 از مکان 302 واکشی شده و PC افزایش یافته است.
6. محتویات AC در محل 941 ذخیره می شود.
شکل 1.4 مثالی از اجرای برنامه محتوای حافظه و رجیسترها به صورت هگزادسیمال
در این مثال، برای افزودن محتویات مکان 940 به محتویات 941، به سه چرخه دستورالعمل، که هر کدام از یک مرحله واکشی و یک مرحله اجرا تشکیل میشود، نیاز است. با مجموعه پیچیدهتری از دستورالعملها، چرخههای دستورالعمل کمتری مورد نیاز است. اکثر پردازنده های مدرن شامل دستورالعمل هایی هستند که بیش از یک آدرس دارند. بنابراین مرحله اجرا برای یک دستورالعمل خاص ممکن است شامل بیش از یک مرجع به حافظه باشد. همچنین، به جای مراجع حافظه، یک دستورالعمل ممکن است یک عملیات I/O را مشخص کند.
1.4 وقفه
تقریباً همه رایانهها مکانیزمی را ارائه میکنند که توسط آن سایر ماژولها I/O، حافظه ممکن است توالی عادی پردازنده را مختل کنند. جدول 1.1 رایج ترین کلاس های وقفه ها را فهرست می کند.
جدول 1.1 کلاس های وقفه
برنامه ایجاد شده توسط شرایطی که در نتیجه اجرای یک دستورالعمل رخ می دهد، مانند سرریز حسابی، تقسیم بر صفر، تلاش برای اجرای دستور غیرقانونی ماشین، و مرجع خارج از فضای مجاز حافظه کاربر.
/// ً ////:
– /- ////- ////