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