2.01 - دانشگاه شاهرود

Download Report

Transcript 2.01 - دانشگاه شاهرود

‫ ساختمان سیستم عامل‬:‫فصل دوم‬
Operating System Concepts – 8th Edition,
Silberschatz, Galvin and Gagne ©2009
‫فصل دوم‪ :‬ساختمان سیستم عامل‬
‫‪ ‬سرویس های سیستم عامل‬
‫‪ ‬واسط های کاربری سیستم عامل‬
‫‪ ‬فراخوانی های سیستم (‪)System Calls‬‬
‫‪ ‬انواع فراخوانی های سیستم‬
‫‪ ‬برنامه های سیستم‬
‫‪ ‬طراحی و پیاده سازی سیستم عامل‬
‫‪ ‬ساختمان سیستم عامل‬
‫‪ ‬ماشین های مجازی (‪)Virtual Machines‬‬
‫‪Operating System Debugging ‬‬
‫‪Operating System Generation ‬‬
‫‪System Boot ‬‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.2‬‬
‫‪Operating System Concepts – 8th Edition‬‬
‫اهداف‬
‫‪ ‬توصیف سرویس هایی که یک سیستم عامل برای کاربران‪ ،‬پردازه ها و‬
‫سیستم ها مهیا می کند‬
‫‪ ‬توضیح ساختارهای متفاوت سیستم عامل ها‬
‫‪ ‬تشریح نحوه نصب (‪ ،)install‬شخص ی سازی (‪ )customization‬و‬
‫چگونگی شروع کار (‪ )boot‬سیستم عامل‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.3‬‬
‫‪Operating System Concepts – 8th Edition‬‬
‫سرویس های سیستم عامل برای کاربر‬
‫‪ ‬واسط کاربری‪ -‬تقریبا همه سیستم عاملها واسط کاربری دارند‪:‬‬
‫‪ ‬به صورت خط فرمان )‪Command-Line (CLI‬‬
‫‪Batch ‬‬
‫‪ ‬واسط کاربری گرافیکی )‪Graphics User Interface (GUI‬‬
‫‪ ‬اجرای برنامه‪ -‬سیستم باید برنامه را در حافظه بارگذاری کند‪ ،‬اجرا نماید و اجرا را خاتمه‬
‫دهد (در حالت عادی و غیر عادی)‬
‫‪ ‬عملیات ورودی‪/‬خروجی‪ -‬یک برنامه در حال اجرا ممکن است به ‪( I/O‬خواندن فایل یا‬
‫دستگاه ) نیاز داشته باشد‬
‫‪ ‬تغییرات در سیستم فایل‬
‫‪ ‬خواندن و نوشتن فایل یا پوشه‪ ،‬ایجاد‪ ،‬حذف‪ ،‬جستجو و گرفتن لیست و در نهایت‬
‫مدیریت اجازه ها‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.4‬‬
‫‪Operating System Concepts – 8th Edition‬‬
‫یک دید از سرویس های سیستم عامل‬
Operating System Concepts – 8th Edition
2.5
Silberschatz, Galvin and Gagne ©2009
‫سرویس های سیستم عامل برای کاربر (ادامه)‬
‫‪ ‬ارتباطات (‪ -)Communications‬پردازه ها نیاز به تبادل اطالعات دارند (بر روی یک کامپیوتر یا مابین‬
‫چند کامپیوتر بر روی یک شبکه)‬
‫‪‬‬
‫ارتباطات ممکن است توسط حافظه مشترک (‪ )shared memory‬یا با ردوبدل پیغام‬
‫( ‪ )message passing‬که با ارسال بسته ها (‪ )packets‬بر روی شبکه (توسط سیستم عامل)‬
‫صورت می گیرد‬
‫‪ ‬تشخیص خطاها (‪ -)Error detection‬سیستم عامل باید از خطاهای ممکن در سیستم آگاهی داشته‬
‫باشد‬
‫‪‬‬
‫ممکن است در ‪ ،CPU‬سخت افزار حافظه‪ ،‬دستگاههای ‪ I/O‬و یا برنامه کاربر رخ دهند‪.‬‬
‫‪‬‬
‫برای هر نوع از خطاها‪ OS ،‬باید فعالیت مناسب را انجام دهد تا یک پردازش درست و سازگار‬
‫(‪ )correct and consistent computing‬داشته باشیم‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.6‬‬
‫‪Operating System Concepts – 8th Edition‬‬
‫سرویس های سیستم عامل برای سیستم (ادامه)‬
‫‪ ‬مجموعه ای از سرویس ها در سیستم عامل برای استفاده بهینه از منابع مورد استفاده قرار می گیرند‬
‫‪‬‬
‫تخصیص منابع (‪ - )Resource Allocation‬زمانی که چندین کاربر و کار در حال اجرای‬
‫همروند هستند‪ ،‬منابع به هر یک از آنها باید تخصیص داده شود‬
‫‪‬‬
‫آمارگیری (‪ -)Accounting‬مدیریت روند و میزان استفاده کاربران از سیستم و منابع موجود‬
‫در آن‬
‫‪‬‬
‫حفاظت و امنیت (‪)Protection and Security‬‬
‫‪ ‬حفاظت (‪ :)Protection‬بیمه می کند که تمامی دسترس یها به سیستم تحت کنترل‬
‫باشد‬
‫‪ ‬امنیت (‪ :)Security‬سیستم در مقابل عوامل خارجی نیازمند تشخیص هویت‬
‫(‪ )Authentication‬کاربران می باشد و حتی باید در مقابل دسترس ی های غیر معتبر از‬
‫طریق دستگاه های خارجی ‪ I/O‬نیز از سیستم دفاع نماید‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.7‬‬
‫‪Operating System Concepts – 8th Edition‬‬
‫واسط کاربر و سیستم عامل‬
‫‪ ‬واسط های خط فرمان‪ ،Command Line Interface (CLI) ،‬یا مفسر‬
‫فرمان (‪ )Command Interpreter‬اجازه می دهد به طور مستقیم فرمان ها به‬
‫سیستم داده شود‬
‫‪ ‬در برخی سیستمها در هسته سیستم عامل پیاده میشود‪ ،‬در برخی زمانها به‬
‫عنوان یک برنامه سیستم‬
‫‪ ‬در بعض ی سیستم عامل ها برای سالیق مختلف موارد مختلف پیاده می شود –‬
‫پوسته (‪)Shells‬‬
‫‪ ‬هدف‪ :‬گرفتن دستور کاربر و اجرای آن‪ .‬به دو صورت معموال پیاده سازی می‬
‫شود‪:‬‬
‫‪‬دستورات به صورت ‪ built-in‬درون برنامه مفسر فرمان جای گرفته اند‬
‫‪‬دستورات به نام یک فایل اشاره می کنند‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.8‬‬
‫‪Operating System Concepts – 8th Edition‬‬
Bourne Shell Command Interpreter
Operating System Concepts – 8th Edition
2.9
Silberschatz, Galvin and Gagne ©2009
‫واسط کاربر و سیستم عامل‬
User-friendly desktop ( ‫ میز کاری واسط کاربری کاربر پسند‬: )GUI( ‫ واسط کاربری گرافیکی‬
)interface
mouse, keyboard, and monitor
.‫ را نشان می دهند‬... ‫ و‬actions ،programs ،files ‫ها‬Icons

.‫)به وجود آمد‬1970( Xerox PARC ‫برای اولین بار در سیستم‬

.‫ را شامل می شوند‬GUI ‫ و‬CLI ‫تعداد زیادی از سیستم های امروزی هر دو واسط‬

 Microsoft

Windows is GUI with CLI “command” shell
 Apple
Mac OS X as “Aqua” GUI interface with UNIX kernel
underneath and shells available
 Solaris
Operating System Concepts – 8th Edition
is CLI with optional GUI interfaces (Java Desktop, KDE)
2.10
Silberschatz, Galvin and Gagne ©2009
The Mac OS X GUI
Operating System Concepts – 8th Edition
2.11
Silberschatz, Galvin and Gagne ©2009
)System Calls( ‫فراخوانی های سیستم‬
‫ واسط برنامه نویس ی که امکان فراخوانی سرویس های سیستم عامل در برنامه ها را فراهم می آورد‬
.‫ مهیا می گردند‬C++ ‫ یا‬C ‫) مانند‬high-level language( ‫ معموال برای یک زبان سطح باال‬
‫) سطح باال به‬Application Program Interface( ‫ در بیشتر مواقع برنامه ها از طریق یک واسط برنامه نویس ی‬
.‫ استفاده می کنند‬System call ‫ به جای استفاده مستقیم از‬API ‫نام‬

APIs are Win32 API for Windows
 POSIX API for POSIX-based systems (including virtually all versions of UNIX,
Linux, and Mac OS X)
 Java API for the Java virtual machine (JVM)
Operating System Concepts – 8th Edition
2.12
Silberschatz, Galvin and Gagne ©2009
System Calls ‫مثال‬
‫ ها برای کپی محتوای یک فایل به یک فایل دیگر‬System call ‫ روند فراخوانی‬
Operating System Concepts – 8th Edition
2.13
Silberschatz, Galvin and Gagne ©2009
Example of Standard API

ReadFile()  Win32 API — a function for reading from a file

A description of the parameters passed to ReadFile()

HANDLE file—the file to be read

LPVOID buffer—a buffer where the data will be read into and written from

DWORD bytesToRead—the number of bytes to be read into the buffer

LPDWORD bytesRead—the number of bytes read during the last read

LPOVERLAPPED ovl—indicates if overlapped I/O is being used
Operating System Concepts – 8th Edition
2.14
Silberschatz, Galvin and Gagne ©2009
‫‪System Call Implementation‬‬
‫‪ ‬معموال به هر ‪ system call‬یک عدد نسبت داده می شود‬
‫‪ ‬واسط ‪ system call‬شامل یک جدول می شود که بر اساس این عدد شاخص گذاری شده است‪.‬‬
‫‪ ‬فواید استفاده از ‪ API‬بجای استفاده از ‪:system call‬‬
‫‪ ‬برنامه نویس هیچ نیازی به دانستن جزییات استفاده از ‪ system call‬ندارد‬
‫‪ ‬قابلیت حمل برنامه‪ :‬نویسنده برنامه با استفاده از ‪ API‬ها‪ ،‬هر جایی که از بر پایه همان ‪ API‬بنا شده باشد‪،‬‬
‫می تواند برنامه خود را کامپایل و اجرا کند‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.15‬‬
‫‪Operating System Concepts – 8th Edition‬‬
API – System Call – OS Relationship
Operating System Concepts – 8th Edition
2.16
Silberschatz, Galvin and Gagne ©2009
Standard C Library Example
C program invoking printf() library call, which calls write() system call 
Operating System Concepts – 8th Edition
2.17
Silberschatz, Galvin and Gagne ©2009
‫‪System Call Parameter Passing‬‬
‫‪ ‬معموال عالوه بر نام ‪ system call‬اطالعات بیشتری برای اجرای آن مورد نیاز است‪ .‬نوع پارامتر ها و تعداد آن برای‬
‫‪ system call‬های مختلف و سیستم عامل های مختلف‪ ،‬متفاوت است‬
‫‪ ‬سه راه عمده برای فرستادن پارامتر ها به ‪ system call‬وجود دارد‪:‬‬
‫‪ ‬ساده ترین‪ :‬پارامتر ها را درون ثبات ها قرار داده شود‬
‫‪ ‬ممکن است بیش از تعداد ثبات ها پارمتر وجود داشته باشد!!!‬
‫‪ ‬پارامتر ها در یک بالک یا جدول در جافظه نگه داری شوند و آدرس آنها درون ثبات ها قرار داده شود‬
‫‪ ‬این روش در ‪ Linux‬و ‪ Solaris‬استفاده می شود‬
‫‪ ‬پارامتر ها در یک پشته قرار بگیرند و ‪ system call‬آنها را از پشته بازیابی (‪ )pop‬کند‬
‫‪ ‬روش بالک و پشته نسبت به تعداد و طول پارامترهایی که قرار است فرستاده شوند حساس نیستند‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.18‬‬
‫‪Operating System Concepts – 8th Edition‬‬
Parameter Passing via Table
Operating System Concepts – 8th Edition
2.19
Silberschatz, Galvin and Gagne ©2009
System Calls ‫انواع‬
)Process control( ‫ کنترل فرآیند‬
)File management( ‫ مدیریت فایل‬
)Device management( ‫ مدیریت وسیله‬
)Information maintenance( ‫ نگهداری و تغییر اطالعات‬
)Communications( ‫ ارتباطات‬
)Protection( ‫ محافظت‬
Operating System Concepts – 8th Edition
2.20
Silberschatz, Galvin and Gagne ©2009
Examples of Windows and Unix System Calls
Operating System Concepts – 8th Edition
2.21
Silberschatz, Galvin and Gagne ©2009
MS-DOS execution
(a) At system startup (b) running a program
Operating System Concepts – 8th Edition
2.22
Silberschatz, Galvin and Gagne ©2009
FreeBSD Running Multiple Programs
Operating System Concepts – 8th Edition
2.23
Silberschatz, Galvin and Gagne ©2009
)System Programs( ‫برنامه های سیستم‬
‫ این برنامه ها را می توان به‬.‫ برنامه های سیستم یک محیط راحت را برای توسعه و اجرا فراهم می کنند‬
‫دسته های زیر تقسیم بندی کرد‬

File manipulation

Status information

File modification

Programming language support

Program loading and execution

Communications
 Application programs
system call ‫ بوسیله برنامه های سیستمی فراهم می شود نه‬، ‫ بیشترین نگاه کاربر به سیستم عامل‬
‫های واقعی‬
Operating System Concepts – 8th Edition
2.24
Silberschatz, Galvin and Gagne ©2009
)System Programs( ‫برنامه های سیستم‬
 File management - Create, delete, copy, rename, print, dump, list, and generally
manipulate files and directories
 Status information

Some ask the system for info - date, time, amount of available memory, disk
space, number of users

Others provide detailed performance, logging, and debugging information

Typically, these programs format and print the output to the terminal or other
output devices

Some systems implement a registry - used to store and retrieve configuration
information
Operating System Concepts – 8th Edition
2.25
Silberschatz, Galvin and Gagne ©2009
)System Programs( ‫برنامه های سیستم‬
 File modification

Text editors to create and modify files
 Special commands to search contents of files or perform transformations of the
text
 Programming-language support - Compilers, assemblers, debuggers and
interpreters sometimes provided
 Program loading and execution- Absolute loaders, relocatable loaders, linkage
editors, and overlay-loaders, debugging systems for higher-level and machine
language
 Communications - Provide the mechanism for creating virtual connections among
processes, users, and computer systems
 Allow users to send messages to one another’s screens, browse web pages,
send electronic-mail messages, log in remotely, transfer files from one machine
to another
Operating System Concepts – 8th Edition
2.26
Silberschatz, Galvin and Gagne ©2009
‫طراحی و پیاده سازی سیستم عامل‬
 Design and Implementation of OS not “solvable”, but some approaches have
proven successful
 Internal structure of different Operating Systems can vary widely
 Start by defining goals and specifications
 Affected by choice of hardware, type of system
 User goals and System goals

User goals – operating system should be convenient to use, easy to learn,
reliable, safe, and fast

System goals – operating system should be easy to design, implement, and
maintain, as well as flexible, reliable, error-free, and efficient
Operating System Concepts – 8th Edition
2.27
Silberschatz, Galvin and Gagne ©2009
‫طراحی و پیاده سازی سیستم عامل‬
 Important principle to separate
Policy: What will be done?
Mechanism: How to do it?
 Mechanisms determine how to do something, policies decide what will be
done

The separation of policy from mechanism is a very important principle,
it allows maximum flexibility if policy decisions are to be changed later
Operating System Concepts – 8th Edition
2.28
Silberschatz, Galvin and Gagne ©2009
‫ساختمان ساده‬
 MS-DOS – written to provide the most functionality in the least space

Not divided into modules

Although MS-DOS has some structure, its interfaces and levels of
functionality are not well separated
Operating System Concepts – 8th Edition
2.29
Silberschatz, Galvin and Gagne ©2009
MS-DOS )Layer Structure( ‫ساختمان الیه ای‬
Operating System Concepts – 8th Edition
2.30
Silberschatz, Galvin and Gagne ©2009
UNIX
 UNIX – limited by hardware functionality, the original UNIX
operating system had limited structuring. The UNIX OS consists of
two separable parts

Systems programs

The kernel
 Consists
of everything below the system-call interface and
above the physical hardware
 Provides
the file system, CPU scheduling, memory
management, and other operating-system functions; a large
number of functions for one level
Operating System Concepts – 8th Edition
2.31
Silberschatz, Galvin and Gagne ©2009
Traditional UNIX System Structure
Operating System Concepts – 8th Edition
2.32
Silberschatz, Galvin and Gagne ©2009
‫رویکرد الیه ای (‪)Layered Approach‬‬
‫‪ ‬سیستم عامل به تعدادی الیه (‪ )layer‬یا سطح (‪ )level‬تقسیم بندی می شود‪ .‬هر الیه بر‬
‫روی الیه پایین تر ساخته می شود‪ .‬پایین ترین الیه (الیه ‪ )0‬سخت افزار است و باالترین الیه‬
‫(الیه ‪ )N‬واسط کاربر است‪.‬‬
‫‪ ‬با توجه به پیاده سازی مبتنی بر پیمانه ها (‪ ،)modularity‬هر الیه از توابع یا عملیات و‬
‫سرویس های الیه های پایین تر استفاده می کند‪.‬‬
‫‪Silberschatz, Galvin and Gagne ©2009‬‬
‫‪2.33‬‬
‫‪Operating System Concepts – 8th Edition‬‬
Layered Operating System
Operating System Concepts – 8th Edition
2.34
Silberschatz, Galvin and Gagne ©2009
Microkernel System Structure
 Moves as much from the kernel into “user” space
 Communication takes place between user modules using message passing
 Benefits:

Easier to extend a microkernel

Easier to port the operating system to new architectures

More reliable (less code is running in kernel mode)

More secure
 Detriments:

Performance overhead of user space to kernel space communication
Operating System Concepts – 8th Edition
2.35
Silberschatz, Galvin and Gagne ©2009
Mac OS X Structure
Operating System Concepts – 8th Edition
2.36
Silberschatz, Galvin and Gagne ©2009
Modules
 Most modern operating systems implement kernel modules

Uses object-oriented approach

Each core component is separate

Each talks to the others over known interfaces

Each is loadable as needed within the kernel
 Overall, similar to layers but with more flexible
Operating System Concepts – 8th Edition
2.37
Silberschatz, Galvin and Gagne ©2009
Solaris Modular Approach
Operating System Concepts – 8th Edition
2.38
Silberschatz, Galvin and Gagne ©2009
Operating System Generation
 Operating systems are designed to run on any of a class of machines; the
system must be configured for each specific computer site
 SYSGEN program obtains information concerning the specific
configuration of the hardware system
 Booting – starting a computer by loading the kernel
 Bootstrap program – code stored in ROM that is able to locate the kernel,
load it into memory, and start its execution
Operating System Concepts – 8th Edition
2.39
Silberschatz, Galvin and Gagne ©2009
System Boot
 Operating system must be made available to hardware so hardware can
start it

Small piece of code – bootstrap loader, locates the kernel, loads it into
memory, and starts it

Sometimes two-step process where boot block at fixed location loads
bootstrap loader

When power initialized on system, execution starts at a fixed memory
location
 Firmware
Operating System Concepts – 8th Edition
used to hold initial boot code
2.40
Silberschatz, Galvin and Gagne ©2009
‫پایان فصل دوم‬
Operating System Concepts – 8th Edition,
Silberschatz, Galvin and Gagne ©2009