1 / 48

فصل اول: مقدمه

فصل اول: مقدمه. مراجع درسی. Operating System Concepts, Silberschatz et al., 8ed, 2008. Operating Systems, Stallings, 5ed, 2004. Operating Systems: a Concept-based approach, Dhamdhere, 2009. فصل اول: مقدمه. سیستم عامل چیست؟ سازمان سیستم های کامپیوتری معماری سیستم های کامپیوتری

dirk
Télécharger la présentation

فصل اول: مقدمه

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. فصل اول: مقدمه

  2. مراجع درسی • Operating System Concepts, Silberschatz et al., 8ed, 2008. • Operating Systems, Stallings, 5ed, 2004. • Operating Systems: a Concept-based approach, Dhamdhere, 2009.

  3. فصل اول: مقدمه • سیستم عامل چیست؟ • سازمان سیستم های کامپیوتری • معماری سیستم های کامپیوتری • ساختمان سیستم عامل • عملیات سیستم عامل • مدیریت پردازه ( Process Management ) • مدیریت حافظه ( Memory Management ) • مدیریت ذخیره سازی ( Storage Management ) • حفاظت و امنیت (Protection and Security) • سیستم های توزیع شده ( Distributed Systems ) • سیستم های خاص منظوره ( Special-Purpose Systems ) • محیط های محاسبات ( Computing Environments ) • سیستم عامل های متن باز (Open-Source Operating Systems )

  4. اهداف این فصل • مروری بر المان های مهم یک سیستم عامل • پوشش سازمان پایه ای یک سیستم کامپیوتری

  5. سیستم عامل چیست؟ (دیدگاه کاربری) • یک برنامه که به صورت یک واسطه بین کاربر کامپیوتر و سخت افزار کامپیوتر عمل می کند • اهداف سیستم عامل: • اجرای برنامه های کاربر و آسان نمودن حل مسائل کاربر • مناسب نمودن سیستم کامپیوتری برای استفاده • استفاده بهینه از سخت افزار کامپیوتر

  6. ساختار سیستم های کامپیوتری • سیستم های کامپیوتری را می توان به چهار مؤلفه اصلی تقسیم نمود: • سخت افزار (منابع پایه ای محاسبات) • CPU, memory, I/O devices • سیستم عامل • کنترل و هماهنگ نمودن سخت افزارها در میان برنامه ها و کاربران • برنامه های کاربردی (Application programs) • یک برنامه راه های استفاده از سخت افزارها برای حل مسائل محاسباتی کاربران را تعریف می کند. • Word processors, compilers, web browsers, database systems, video games • کاربران • People, machines, other computers

  7. چهار مؤلفه اصلی سیستم های کامپیوتری

  8. تعریف سیستم عامل (دیدگاه سیستمی) • یک تخصیص دهنده منبع (resource allocator) • مدیریت همه منابع • تصمیم گیری مابین درخواست های متداخل (conflicting requests ) به منظور استفاده کارا (efficient) و منصفانه (fair) از منابع • یک کنترل کننده برنامه ها • کنترل اجرای برنامه ها به منظور جلوگیری از خطاها و استفاده های نابجا از کامپیوتر

  9. تعریف سیستم عامل (ادامه) • یک تعریف فراگیر و عمومی پذیرفته شده وجود ندارد • ” زمانی که شما یک سیستم عامل سفارش می دهید، هر آنچه که فروشنده به شما می دهد“ یک تقریب خوب برای تعریف سیستم عامل است. • اما همین بسته های نرم افزاری نیز تفاوت های وسیعی دارند. • ”برنامه ای که در همه زمان ها بر روی کامپیوتر در حال اجرا است“ هسته (kernel) نام دارد. مابقی یا برنامه های سیستم هستند (که در هنگام خرید همراه بسته نرم افزاری سیستم عامل وجود دارند) یا برنامه های کاربردی.

  10. بالا آمدن کامپیوتر (Startup) • برنامه bootstrapدر زمان روشن شدن (power-up) یا شروع مجدد (reboot) بار (load) می شود • به طور معمول در ROM یا EPROM ذخیره می شود و معمولا به عنوان firmware شناخته می شود • همه جنبه های سیستم را مقدار دهی اولیه می کند • هسته سیستم عامل را بار کرده و اجرای آن را آغاز می کند

  11. سازمان سیستم های کامپیوتری • عملیات (operation) سیستم کامپیوتری • یک یا چند CPU و device controllers به وسیله یک گذرگاه (BUS) اشتراکی به هم متصل هستند که که ارتباط آنها را با حافظه مشترکت برقرار می کند • Concurrent execution of CPUs and devices competing for memory cycles

  12. عملیات سیستم کامپیوتری • I/O devices و CPU می توانند به طور همزمان (concurrently) اجرا شوند • هر device controller نظارت یک نوع خاص از device را بر عهده دارد. • هر device controller یک میانگیر محلی (local buffer) دارد. • CPU داده را از حافظه اصلی (main memory) به local buffer و بلعکس منتقل می کند. • I/O یک جابجایی داده بین device و local buffer of controller است • Device controller به کمک یک وقفه (interrupt) CPU را مطلع می سازد که عملیات من خاتمه یافته است.

  13. توابع معمولی وقفه ها (Interrupts) • به طور عمومی، وقفه، کنترل را به interrupt service routine منتقل می کند. این عمل به کمک interruptvector انجام می شود که شامل آدرس حافظه تمام service routines است. • معماری وقفه می بایست آدرس دستوری که با وقفه متوقف شده است را ذخیره نماید • تا زمانی که یک وقفه در حال پردازش باشد، وقفه های جدید از کار می افتند (disable) تا وقفه از دست رفته (lost interrupt) نداشته باشیم. • Trap یک وقفه تولید شده با نرم افزار (software-generated interrupt ) می باشد که معمولا بر اثر خطا و یا درخواست کاربر ایجاد می گردد. • یک سیستم عامل یک سیستم مبتنی بر وقفه (interrupt driven) است

  14. اداره کردن وقفه (Interrupt Handling) • سیستم عامل وضعیت CPU را با ذخیره نمودن مقادیر ثبات ها (registers ) و program counter حفظ می نماید. • مشخص می شود که چه نوع وقفه ای رخ داده است: • Polling (سرکشی) • vectored interrupt system (سیستم وقفه برداری) • قسمت های مجزای کد برای هر وقفه مشخص می کند که چه کارهایی برای هر نوع از وقفه باید انجام گیرد.

  15. Interrupt Timeline

  16. ساختار I/O • پس از اینکه I/O شروع شد، کنترل زمانی به برنامه کاربر بر می گردد که I/O تمام شود • دستور انتظار ( Wait) تا زمانی که وقفه دیگری اتفاق نیافتد CPU را در حالت بی کار (idle) نگه می دارد • حلقه انتظار (درگیری برای دسترسی به حافظه) • حداقل یک درخواست I/O در یک زمان اجرا می شود و امکان پردازش همزمان I/Oها وجود ندارد • پس از اینکه I/O شروع شد، کنترل به برنامه کاربر برمی گردد بدون آنکه صبر کند تا I/O تمام شود • System call (فراخوانی سیستم)–کاربر برای انتظار تکمیل I/O باید یک درخواست به سیستم عامل ارسال نماید • Device-status table (جدول وضعیت دستگاه)- برای هر دستگاه I/O یک سطر وجود دارد که اطلاعات نوع، آدرس و وضعیت را مشخص می کند • سیستم عامل به کمک اندیس های جدول دستگاه های I/O وضعیت دستگاه را مشخص کرده و ورودی جدول را به روز می کند و وقفه را به آن می افزاید.

  17. ساختار دسترسی مستقیم حافظهDirect Memory Access (DMA) Structure • برای دستگاههای I/O با سرعت بالا به کار می رود و این امکان را می دهد تا بتوان داده را با سرعتی نزدیک به سرعت حافظه اصلی منتقل نمود. • در این حالت کنترلر دستگاه بدون دخالت CPU بلاک (block) داده را مستقیما از بافر دستگاه به حافظه اصلی منتقل می کند. • در این حالت به جای یک وقفه برای هر بایت از داده برای هر بلاک داده یک وقفه ایجاد می شود

  18. ساختار ذخیره سازی (Storage Structure) • حافظه اصلی: تنها مدیا ذخیره سازی بزرگی که CPU می تواند مستقیما به آن دسترسی داشته باشد. • حافظه (ذخیره سازی) ثانویه: تعمیم حافظه اصلی که ظرفیت بالایی از ذخیره سازی غیرفرار (nonvolatile) را ایجاد می کند. • دیسک های مغناطیسی: صفحات سختی از فلز یا شیشه که با لایه ای از مواد ضبط مغناطیسی پوشانده شده اند. • سطوح دیسک به صورت منطقی به شیارهایی (tracks) تقسیم می گردد. هر شیار نیز به چند قطاع (sectors) تقسیم می شود. • کنترلر دیسک (disk controller) تعامل منطقی بین دستگاه و کامپیوتر را تعیین می کند

  19. سلسله مراتب ذخیره سازی (Storage Hierarchy) • سیستم های ذخیره سازی بر اساس خصوصیات زیر در یک سلسله مراتب سازمان دهی می شوند: • سرعت (Speed) • هزینه (Cost) • فرار بودن (Volatility) • Cachingبه معنی کپی کردن اطلاعات بر روی سیستم ذخیره سازی سریعتر می باشد. • حافظهاصلی آخرین cache برای حافظه (ذخیره سازی) ثانویه (secondary storage) است

  20. سلسله مراتب وسایل ذخیره سازیStorage-Device Hierarchy

  21. Caching • در کلیه سطوح در کامپیوتر (سخت افزار، سیستم عامل و نرم افزار) انجام cache به عنوان یک اصل مهم مطرح می باشد. • اطلاعات به طور موقت از یک سیستم کندتر به یک سیستم سریعتر منتقل می شوند • حافظه سریعتر (cache) ابتدا چک می شود تا تعیین شود که اطلاعات مورد نیاز در آن موجود است یا نه • اگر موجود بود اطلاعات موجود در cache به طور مستقیم استفاده خواهد شد • اگر موجود نبود، داده ها به cacheمنتقل شده و سپس مورد استفاده قرار می گیرد • حافظه Cache کوچکتر از حافظه ای است که برای آن استفاده می شود • مدیریت Cache به عنوان یک مسئله طراحی مهم • اندازه Cache و سیاست جایگزینی (replacement policy)

  22. معماری سیستم کامپیوتر • تعداد زیادی از سیستم ها از یک پردازنده عمومی (general-purpose) استفاده می کنند (از PDA تا Mainframe) • تعداد زیادی از سیستم ها نیز یک پردازنده خاص منظوره (special-purpose) دارند • اهمیت و موارد استفاده از سیستم های چندپردازنده ای (Multiprocessors) در حال گسترش است. • این سیستم ها به نام های سیستم های موازی (parallel systems) و سیستم های تزویج سخت (tightly-coupled systems) شناخته می شوند • مزایا: • افزایش بازده (Increased throughput) • مقرون به صرفه بودن (Economy of scale) • افزایش قابلیت اطمینان (Increased reliability)

  23. معماری سیستم کامپیوتر (ادامه) • افزایش قابلیت اطمینان (Increased reliability) • تنزل مطبوع (graceful degradation): تا حدی که سخت افزار اجازه می دهد • تحمل پذیری در مقابل خطا (fault tolerance) : حتی اگر در سخت افزار هم مشکلی داشت سیستم نباید خراب شود و تا حد امکان به کار خود به خوبی ادامه دهد. • دو نوع سیستم چندپردازنده ای • چند پردازشی متقارن (Symmetric Multiprocessing) • چند پردازشی نامتقارن (Asymmetric Multiprocessing)

  24. کامپیوترهای مدرن چگونه کار می کنند؟

  25. معماری چندپردازشی متقارنSymmetric Multiprocessing Architecture

  26. یک طرح پردازنده دوهسته ای (Dual-Core)

  27. سیستم های خوشه ای (Clustered Systems) • شبیه سیستم های چندپردازنده ای است اما در اینجا چند سیستم با یکدیگر کار می کنند • معمولا منابع ذخیره سازی را به واسطه یک شبکه ناحیه ذخیره (storage-area network (SAN)) به اشتراک می گذارند • امکان دسترس پذیری بالای (high-availability) خدمات (services ) را ایجاد می کند که سبب نجات از خرابی سیستم می گردد • خوشه بندی نا متقارن (Asymmetric clustering): یک ماشین در حالت آماده باش داغ (hot-standby mode) دارد • خوشه بندی متقارن (Symmetric clustering): چند نود دارد که برنامه ها را اجرا می کنند و یکدیگر را مانیتور می کنند • برخی از خوشه ها برای پردازش با کارآیی-بالا (high-performance computing (HPC)) به کار می روند • برنامه های خاص باید نوشته شود تا از فابلیت موازی سازی (parallelization) استفاده شود

  28. ساختار سیستم عامل • چندبرنامه ای (Multiprogramming) برای بالا بردن کارآیی لازم است. • یک کاربر نمی تواند CPU و دستگاه I/O را برای تمام زمان اشغال نگاه دارد • چندبرنامه ای کارها (jobs) شامل کد و داده را سازماندهی می کند بنابراین CPU همیشه یک برنامه برای اجرا در اختیار خواهد داشت • یک زیرمجموعه از همه کارها در سیستم در حافظه نگهداری می گردند • یک کار به وسیله زمانبند کارها (job scheduling) انتخاب و اجرا می گردد • زمانی که یک برنامه یا کار در حالت انتظار است (برای مثال برای I/O) سیستم عامل این کار را با کار دیگر تعویض (switch) می کند

  29. ساختار سیستم عامل (ادامه) Timesharing (multitasking)یک قابلیت است که به صورت منطقی به سیستم ها اضافه شده است. از دید کاربر به نظر می رسد که برنامه ها به طور همزمان در CPU در حال اجرا هستند اما در واقع CPU در بازه های زمانی کوتاه برنامه های مختلف را به نوبت اجرا می کند. سرعت به اندازه ای است که کاربر احساس می کند به صورت همزمان با همه برنامه ها تعامل دارد. می گویند که در این حالت ”محاسبات تعاملی“ داریم (interactive computing) زمان پاسخ (Response time) باید کمتر از یک ثانیه باشد هر کاربر حداقل یک برنامه در حال اجرا در حافظه دارد پردازه (process) اگر تعداد زیادی از کارها در یک زمان آماده اجرا باشد  زمانبندی CPU (CPU scheduling) swapping Virtual memory

  30. چینش حافظه برای یک سیستم چندبرنامه ایMemory Layout for Multiprogrammed System

  31. عملیات سیستم عامل • سیستم عامل های پیشرفته با وقفه رانده (Interrupt driven) می شوند • خطاها و درخواست های نرم افزار یکexception یا trap ایجاد می کنند • Division by zero, request for operating system service • دیگر مشکلات پردازش ها شامل: حلقه های نامحدود و پردازهایی که یکدیگر یا سیستم عامل را تغییر می دهند • عملیات مد دوگانه (Dual-mode operation) به سیستم عامل اجازه می دهد که خودش و دیگر مولفه های سیستمی را محافظت کند • User mode and kernel mode • بیت مد در سخت افزار ها ایجاد گردیده: • قابلت تمییز دادن زمان های اجرای برنامه کاربر و برنامه هسته سیستم عامل را می دهد • برخی دستورات به طور خاص مجاز (designated as privileged) به حساب می آیند که تنها در مد هسته اجرا می شوند. • فراخوانی سیستمی (System Call) مد را به هسته تغییر می دهد و پس از خروج از تابع مربوطه مد به حالت کاربری تغییر می کند

  32. گزار از حالت کاربری به حالت هستهTransition from User to Kernel Mode • استفاده از Timer برای جلوگیری از حلقه بی نهایت و در اختیار گرفتن بی نهایت منابع • ایجاد وقفه بعد از یک دوره زمانی مشخص • سیستم عامل شمارنده زمانی را کاهش می دهد • زمانی که شمارنده به صفر برسد وقفه ایجاد می شود • قبل از اختصاص CPU برای یک پردازه این شمارنده set می شود. این کار به منظور برگرداندن کنترل در صورت نیاز یا متوقف نمودن برنامه ای که زمان تخصیص داده شده آن تمام شده است انجام می شود.

  33. مدیریت پردازه (Process Management) • پردازه یک برنامه در حال اجرا است. به عنوان یک واحد کاری در سیستم به حساب می آید. برنامه (Program) یک موجودیت غیرفعال (passive entity) است و پردازه یک موجودیت فعال (active entity) است. • پردازه ها نیاز به منابع دارند تا فعالیت خود را تکمیل کنند: • CPU, memory, I/O, files • Initialization data • در زمان اتمام پردازه ها باید منابع قابل استفاده مجدد آزاد گردند. • هر پردازه تک ریسه (Single-threaded) یک شمارنده برنامه (program counter) برای خود دارد که مکان دستور بعدی برای اجرا را مشخص می کند • پردازه چند ریسه ای (Multi-threaded) به ازای هر ریسه یک شمارنده برنامه دارد • به طور معمول سیستم ها چندین پردازه در حال اجرا دارند، برخی برای کابرند و برخی برای سیستم عامل که بر روی یک یا چند پردازنده اجرا می شوند.

  34. فعالیت های مدیریت پردازه قسمت مدیریت پردازه در سیستم عامل باید فعالیت های زیر را انجام دهد: • ایجاد و حذف پردازه های کاربر و سیستم • تعلیق (Suspending) و اجرای مجدد (Resuming) پردازه ها • محیا نمودن مکانیزم هایی برای همگامی (synchronization) پردازه ها • محیا نمودن مکانیزم هایی برای ارتباط (communication) پردازه ها • محیا نمودن مکانیزم هایی برای رسیدگی بن بست (deadlock handling)

  35. مدیریت حافظه • قبل و بعد از پردازش همه داده باید در حافظه باشد • همه دستورات برای اجرا پشت سر هم باید در حافظه قرار گیرند • مدیریت حافظه معین می کند که چه چیزی در حافظه باشد وقتی ما می خواهیم: • استفاده از CPU را بهینه کنیم (Optimizing CPU utilization) • پاسخ (response) کامپیوتر به کاربر را بهینه کنیم • فعالیت های مدیریت حافظه • دنبال کردن اینکه هر قسمت از حافظه در هر لحظه در اختیار چه برنامه ای قرار دارد • تصمیم گیری در مورد اینکه کدام برنامه یا داده باید از حافظه خارج یا در آن باگزاری گردد. • حافظه درخواستی را تخصیص داده و آزاد نماید

  36. مدیریت ذخیره سازی (Storage Management) • سیستم عامل یک دید منطقی واحد برای ذخیره سازی اطلاعات در دستگاه های مختلف ایجاد می کند • انتزاعی (Abstract) نمودن خصوصیات فیزیکی به صورت یک واحد ذخیره سازی منطقی فایل • هر رسانه به وسیله یک دستگاه کنترل می شود (disk drive, tape drive, …) • مشخصات متفاوت شامل: سرعت دسترسی (access speed)، ظرفیت (capacity)، نرخ انتقال داده (data-transfer rate)، روش دسترسی تصادفی (random access) یا ترتیبی (sequential access)

  37. مدیریت سیستم فایل (File-System management) • سازمان دهی فایل ها در پوشه ها (Directory) • کنترل دسترسی (Access) بر روی سیستم ها برای مشخص نمودن اینکه چه کسی به چه چیزی دسترسی دارد • فعالیت: • ایجاد و حذف فایل ها و پوشه ها • پیشنیاز های اداره فایل ها و پوشه ها • نگاشت (Mapping) فایل ها بر روی حافظه ثانویه • Backup files

  38. مدیریت ذخیره سازی انبوهMass-Storage Management • دیسک ها برای ذخیره نمودن داده هایی که در حافظه جا نمی شوند به کار می رود. همچنن برای ذخیره نمودن اطلاعات به مدت طولانی استفاده می شوند. • صحت و درستی عمل ذخیره و بازیابی بیشترین اهمیت را دارد • تا حد زیادی سرعت سیستم به زیرسیستم دیسک و الگوریتم های مرتبط با آن مربوط می باشد. • فعالیت های سیستم عامل • مدیریت فضای خالی (Free-space management) • تخصیص فضای ذخیره سازی (Storage allocation) • زمانبندی دیسک (Disk scheduling) • برخی سیستم های ذخیره سازی نیازی به سرعت بالای دسترسی ندارند • حافظه یا ذخیره سازی ثالث (Tertiary storage) • نوارهای مغناطیسی (magnetic tape) • ذخیره ساز نوری (optical storage) مانند CD، DVD • Varies between WORM (write-once, read-many-times) and RW (read-write)

  39. کارآیی سطوح متفاوت ذخیره سازی (Performance of Various Levels of Storage)

  40. محاجرت A از دیسک تا ثباتMigration of Integer A from Disk to Register

  41. زیرسیستم I/O • یکی از اهداف مهم سیستم عامل مخفی نمودن صفات عجیب و غریب دستگاه های سخت افزاری از کاربر است • وظایف زیرسیستم I/O • مدیریت حافظه برای I/O شامل بافرنمودن (ذخیره سازی موقت داده در زمان انتقال)، caching (ذخیره سازی قسمتی از داده ها در دستگاه ذخیره سازی سریعتر برای بالا بردن کارآیی سیستم)، Spooling (همپوشانی خروجی یک کار با ورودی یک کار دیگر) • واسط های عمومی device-driver • Driversهای خاص برای سخت افزارهای خاص

  42. حفاظت و امنیت (Protection and Security) • حفاظت (Protection)– هر مکانیزمی برای کنترل دسترسی پردازش ها و کاربران به منابع تعریف شده در سیستم • امنیت (Security) – دفاع از سیستم در مقابل حمله های (attacks) داخلی و خارجی • denial-of-service, worms, viruses, identity theft, theft of service • سیستم باید کاربران مختلف را از هم تمییز دهد • User identities (user IDs, security IDs) include name and associated number, one per user • User ID then associated with all files, processes of that user to determine access control • Group identifier (group ID) allows set of users to be defined and controls managed, then also associated with each process, file

  43. محیطهای محاسباتی • کامپیوترهای سنتی • به مرور در حال کمرنگ شدن هستند • در محیط دفاتر کار • PCهایی که به شبکه متصل شده اند • ترمینال هایی که به یک MainFrame یا یک minicomputer متصل شده اند • شبکه های خانگی • نک کامپیوتر • اتصال با مودم به اینترنت یا دیگر شبکه ها

  44. محیطهای محاسباتی (ادامه) • محاسبات مشتری-خدمتگذار (Client-Server Computing) • به جای ترمینال های غیر هوشمند کلاینت های هوشمند تر چایگزین شدند • سرورها مسئول پاسخگویی به کلاینت ها هستند • Compute-server (database) • File-server

  45. محاسبات نظیر به نظیرPeer-to-Peer Computing • مدل دیگری از سیستم توزیع شده • در P2P تفاوتی بین کلاینت و سرور وجود ندارد • به جای نود از واژه Peer استفاده می شود • هریک از Peerها ممکن است هم نقش کلاینت و هم نقش سرور را داشته باشند • یک نود جدید می بایست به شبکه P2P متصل شود • Registers its service with central lookup service on network, or • Broadcast request for service and respond to requests for service via discovery protocol • به عنوان مثال: Napster، Gnutella

  46. محاسبات مبتنی بر وبWeb-Based Computing • وب در همه جا در دسترس است (Web has become ubiquitous) • PCها رایجترین دستگاه ها هستند • دستگاه های زیادی قابلیت استفاده در شبکه را پیدا کرده اند و از طریق وب قابل دسترسی هستند • load balancers : مقوله ای برای مدیریت ترافیک وب و تقصیم بار بر روی چند سرور مشابه

  47. سیستم عامل های متن بازOpen-Source Operating Systems • فرمت متن برنامه سیستم عامل های متن باز (open-source) به نسبت سیستم های متن بسته (closed-source) در دسترس می باشد • راهی برای تقابل با حرکت copy protection و Digital Rights Management (DRM) • شروع کننده این بحث Free Software Foundation (FSF), که دارای قانون “copyleft” به نام GNU Public License (GPL) است . • سیستم عامل های متن باز • GNU/Linux • BSD UNIX (including core of Mac OS X) • Sun Solaris

  48. پایان فصل اول

More Related