Data Link - Welcome to Pirnia.Net
Download
Report
Transcript Data Link - Welcome to Pirnia.Net
پيرنيا
Operating system
سيستم عامل
3واحد
بارم بندی درس :
3نمره quiz
1نمره تمرين
2نمره تحقيق
1نمره حضور
14نمره پايان ترم
OS ليست مراجع درس
1- Modern Operating Systems, 2001 by Tanenbaum,
Prentice-Hall
2- Operating Systems, Design And Implementation,
second edition 1997, Andrew S. Tanenbaum,Woodhul
3- Operating Systems Internals
2002 , 4th Edition, William Stalling
4- Oparating System Concepts, 2003, Silberschats
Operating system
سيستم عامل
Shahriar Pirnia http://www.pirnia.net
تعريف سيستم عامل:
سيستم عامل مجموعه اي از برنامه هاست كه يا به صورت softwareيا به صورت firmwareپياده سازي
شده و سخت افزار را قابل استفاده مي سازد.
سخت افزار “ قدرت پردازش خام “ را فراهم مي كند سيستم عامل اين قدرت را در دسترس كاربران قرار
ميدهد .
سيستم عامل همچنين سخت افزار را با دقت مديريت ميكند تا به كارايي )(performance
خوب دست يابد.سيستم عامل اساس ي ترين برنامه سيستمي است كه كنترل كليه منابع سيستم
را بر عهده دارد و زمينه اي (بستري) را فراهم ميسازد كه برنامه هاي كاربران بر روي آن
نوشته شود.
وظايف اصلي سيستم عامل :
-1سيستم عامل به عنوان مدير منابع(مديريت منابع)
resource management
-2سيستم عامل به عنوان يك ماشين توسعه يافته يا مجازي extended (virtual)machine
شرح هر يك از وظايف:
- 1سيستم عامل به عنوان مدير منابع
تعريف منبع (:( resource
(ـ) هر يك از قطعات سخت افزاري مانند پردازنده ها ،حافظه ،زمان سنج،ديسكها ،ماوس،
واسط شبكه) ،(NICچاپگر و ...يك منبع (سخت افزاري)هستند.
(ـ) فايلها ،ركوردهاي پايگاه داده ها هر كدام يك منبع (نرم افزاري) هستند.
سخت افزاری
تقسيم مي شود
لذا منبع ) (resourceبه دو دسته
نرم افزاري
دريك سيستم عامل چند كار بره ،مديريت و حفاظت حافظه ،دستگاههاي ورودي /خروجي و ديگر منابع بسيار اهميت
دارد ،زيرا در غير اينصورت كاربران ممكن است با يكديگر تداخل
كاري پيدا كنند(به عنوان مثال سه كاربر كه در يك شبكه همزمان روي پرينتر خروجي مي فرستند).
نكته ديگر اينكه كاربران نه تنها نياز به اشتراك گذاشتن سخت افزاردارند ،بلكه نياز دارند اطالعات
(فايلها ،ركوردهاي پايگاه داده و )...را نيزبه اشتراك گذارند .
user1
c1
user2
c2
user3
c3
switch
Print server
ci
printer
شكل 1-1يك شبكه ) (networkداراي يك printerو چند كاربر
-2سيستم عامل به عنوان يك ماشين بسط يافته يا ماشين مجازي
واسطي كه )(real machineماشين حقيقي براي برنامه نويس ارائه ميكند ،زبان ماشين
) (machine languageاست كه از مجموعه اي ازدستورالعمل ها )(instruction set
تشكيل مي شود .براي استفاده از اين دستورالعمل ها و درك هر يك از آنها نياز به دانستن معماري
)((architectureمجموعه دستورالعمل ها ،سازمان حافظهI/O ،و ساختار )busداريم و
بايستي به Manualخاص آن دستگاه مراجعه نمود.
معماري اكثر كا مپيو ترها در سطح زبان ماشين براي برنامه نويس خام و پيچيده است .مثال عمليات ورودي و خروجي در
يك floppy diskرا در نظر بگيريم .يكي ازكنترلرهايي كه در برخي از فالپي ديسكها استفاده مي شود NEC
PD765 controllerمي باشد.
NEC PD765 controller
reading/writing data
16 command
Initializing
Resetting the controller
حركت بازوي ديسك
فرمت نمودن trackها
دستورات 13، read/writeپارامتر دارند كه در 9بايت جا مي گيرند .اين پارامترها شامل:
آدرس بالك ديسك كه بايد خوانده شود ،تعداد ، sector/trackفضاي خالي )(gapميان هر دو
،Sectorاينكه با يك عالمت آدرس پاك شده چه بايد بكند و ...
وقتي كه operationكامل شود Controller ،بيست و سه( )23فيلد status,و errorرا در
7بايت پر مي كند .روشن است كه يك برنامه نويس متوسط نمي خواهد خيلي درگير برنامه نويس ي floppy disk
يا Harddiskشود .آنچه كه programmerمي خواهد يك انتزاع سطح باال high-level
abstractionمي باشد تا با آن كار كند .در مورد ديسك يك انتزاع نمو نه
مي تواند اين باشد:
هر ديسك مجموعه اي از فايلهاي داراي نام مي با شد .هر فايلي براي خواندن و نوشتن مي تواند
ً
بازشود سپس مي تواند خوانده يا نوشته شود و نهايتا بسته شود .اينكه موتور روشن است يا خاموش
تعداد sectorها بر trackچقدر است gap،فضايي چه ميزان است در اين انتزاع ( واسط سطح باال ) ظاهر نمي
شود .برنامه اي كه حقيقت را درباره سخت افزار ازبرنامه نويس پنهان مي كند و يك ايده ساده شامل فايلهاي داراي
نام كه مي توانند خوانده يا نوشته شوند را در اختيار
مي گذارد سيستم عامل است .
Azad University ,South Branch
همچنين در ارتباط با ، timerمديريت حافظه ،اينتراپتها و بقيه ويژگيهاي low-levelنيزسيستم عامل بسياري از
امور غير دلپذير را پنهان مي كند .در تمام موارد فهم و درك و استفاده از انتزاعي
يا واسطي ()interfaceكه سيستم عامل در اختيار مي گذارد ساده تر و قابل فهم تر است.
نيازمند ياد گيري:
معماري
Instruction set
Memory organization
Bus structure
I/O
مي باشد.
user
زبان ماشين
Real machine:
hardware
user
OS shell
User program
OS system calls
OS
hardware
Extended machine
برنامه هاي كار بردي
Application programs
برنامه هاي سيستمي
System programs
سيستم بانكي
compilers
رزرو خطوط هوايي
editor
بازيها
Command
interpreter
( سيستم عاملos)
زبان ماشينMachine language
firmware
ريزبرنامه سازیmicroprogramming
hardware
) دستگاههاي واقعي(سخت افزار
بر روي سيستم عامل بقيه نرم افزار هاي سيستمي )(system softwareقرار مي گيرد .برنامه هاي
سيستمي مانند editor, compilers ،command interpretersو برنامه هاي مشابه مستقل از كاربرد
مي باشند .يك نكته مهم اين است كه اينها جز سيستم عامل نيستند.
سيستم عامل آن بخش از نرم افزار است كه در ( kernel modeحالت هسته) يا supervisor mode
انجام مي شود .سيستم عامل توسط سخت افزار از دخالت كار بر حفاظت مي شود(صرفنظر) از
پردازنده هاي قديمي كه كال حفاظت سخت افزاري ندارند.بقيه برنامه هاي سيستمي در usermode
اجراء مي شوند .نهايتا باالي برنامه هاي سيستمي برنامه هاي كار بردي )(application programs
قرار مي گيرند .اين برنامه ها توسط برنامه نويسان يا کاربران جهت حل مسائل خاص آنان نوشته
می شود .مثال برنامه های محاسباتی مهندس ی ،CADبازيها ،سيستم مديريت اطالعات بانکی ،مجموعه برنامه های
رزرو خطوط هواپيمايي و ...
تاريخچه سيستمهای عامل )(os history
اولين digital / computerتوسط (1792-1871) Charles Babbageطراحي شد.
کامپيوتری که او ساخت موتور تحليلی ) (Analytical Engineنام داشت .اگر چه بانج بيشتر عمر و ثروت
خود را صرف ساختن موتور تحليلی کرد ولی به نتيجه دلخواه و مطلوب خود نرسيد زيرا او فقط از مکانيک
محض استفاده می کرد .
و فن آوری آن دوران امکان توليد چرخها و چرخ دنده هايي با دقت و ظرافت مورد نياز وي را نداشت .
نسل اول _( : )1945-55المپهای خال و تخته مدارهای سوراخدار
در دهه 40کامپیوترهايی با استفاده از المپهای خال بوجود آمد .
اندازه اين ماشينها بسيار بزرگ بود و به همراه دهها هزار المپ خال داخل اتاقها را پر مي کرد ،اما از
ارزانترين کامپيوترهای شخص ی امروزی کندتر کارمی کرد.
کليه عمليات به زبان ماشين بود( زبانهای برنامه سازی شناخته شدهبود )
نسل بدون سيستم عامل ( هيچ کس نامی از سيستم عامل نشنيدهبود )
برنامه نويس برای کار با ماشين ابتدا وقت رزرو ميکرد ،سپس سروقتمعين به اتاق ماشين وارد می شد
و تخته مدار سوراخدار خود را در ماشين قرار مي داد و ساعاتی را منتظر می ماند به اين اميد که هيچ يک از چند هزار (مثال
) 2000المپ خال در طی اجرای برنامه نسوزد.
برنامه ها برای محاسبات عددی معمولی مانند تهيه جداول يک عده از مردم تمامی مراحل طراحی ساخت برنامه نويس ی استفاده و نگهداری يک ماشين را بر عهدهداشتند
نسل دوم )1955-65 (:ترانزيستور و سیستمهای batch
ظهور ترانزيستور در اواسط دهه 1950يک انقالب بنيادين بود حجم کامپیوترها کوچک شد و قابليت اطمينان آنها باال رفت
لذا سازندگان می توانستند کامپيوترها را توليد کرده و به مشتريها بفروشند.
متخصصين طراحی ساخت برنامه نويس ی ،تعمير و نگهداری و اپراتوری از يکديگر تفکيک شدند. هزينه اين ماشينها حدود چند ميليون دالر بود.برای اجرای يک (jobکار) ( مثال يک برنامه يا يک مجموعه از برنامه ها ) يک برنامه نويس خود را برروی
يک کاغذ می نوشت ( به زبان فرترن يا اسمبلی ) سپس آنرا بروی (smart cardکارتهای منگنه ) punchمی کرد و يک
دسته کارت را به اتاق كامپيوتر می آورد و به يکی از اپراتورها تحويل می داد.
وقتي کامپيوتر کار در حال اجرا را به اتمام می رساند يک اپراتور به سمت چاپگر می رفت و کاغذهای خروجی برنامه را جدا و
به اتاق خروجی منتقل ميکرد تا بعدا برنامه نويس آنها را بردارد سپس او يکی ديگر از دسته کارتها را ا ز اتاق ورودی آورده و در
دستگاه کارت خوان قرار می داد و در صورتي که برنامه به مترجم fortranنياز داشت وی دسته کارت مترجم فرترن را نيز
داخل کمد فايلها برداشته و در دستگاه کارتخوان قرار می داد .هنگاميکه اپراتورها برای انجام اين کارها در اتاق ماشين راه می
رفتند مدت زيادی از وقت کامپيوتر تلف مي شد.
راه حلی که برای کاستن زمان تلف شده بوجود آمد :سيستمهای دسته ای ( )batchبود .يک سبد پر از دسته کارتها در اتاق
ورودی جمع آوری شود سپس کليه آنها به وسيله دستگاه کارتخوان ( يک کامپيوتر کوچک و نسبتا ارزان مانند) IBM1401
خوانده شده و از طريق يک Tape driveبرروی يک
Magnetic tapeذخيره گردد .اين کامپيوترها به عنوان کامپيوترهای ورودی /خروجی استفاده می شدند يعنی برای
خواندن کارتها کار با tapedriveها و جاپ خروجی ها مناسب بودند اما برای محاسبات عددی مناسب نبودند يک کامپيوتر
گرانقيمت مانند برای پردازش و محاسبات واقعی استفاده می شد .
(ـ) كارت $jobبراي مشخص كردن حداكثر زمان اجرا به دقيقه ،شماره حساب براي حسابداري هزينه ها و نام برنامه
نويس
(ـ) $Fortranبه سيستم عامل اعالم مي كند مترجم فرترن را از روي load , system tapeنماييد.
(ـ) كارتهاي برنامه به زبان فرترن كه بايد كا مپايل شود .
(ـ) كارت $loadبه سيستم عامل مي گويد كه برنامه objectرا loadنماييد.
(ـ) كارت $loadبه سيستم عامل مي گويد كه اجراي برنامه را آغازكند .
(ـ) كارت هاي داده
(ـ) كارت هاي $endنشان دهنده پايان كار است.
سيستمهاي عامل اين نسل معموال IB sys,( Fortran MonitorSystem) FMSبودند .
شكل صفحه 17
نسل سوم (integnted circuits(ICS)and multi )1965-80
programming
System /360 ,IBMرا ساخت كه خانوادهاي از ماشينها بود كه از نظر نرم افزاري با يگديگر سازگار بودند.
طيف وسيعي از ماشينها ( از اندازه 1401تا خيلي قويتر از )7094را در خود داشت .
تفاوت ماشين ها فقط در قيمت و كا رايي (حداكثر اندازه حافظه ،سرعت پر دازنده ،تعداد دستگاههاي ورودي /خروجي و نظاير
آن) بود .همه انها معماري و مجموعه دستورالعملهاي يكساني داشتند ،لذا برنامه هاي نوشته شده در يكي از آنها در ساير ماشينها
نيز قابل اجرا بود .ضمنا براي انجام محاسبات در دو زمينه علمي و تجاري ساخته شده بود.
بدليل استفاده از مدارات مجتمع به جاي ترانزيستور ،حجم كوچكتر و reliabilityباالتري نسبت به نسل دوم وجود داشت .و
از نسبت price/performanceبهتري برخوردار بودند.
سيستم عامل بود os/360, IBM system/360كه رضايت مشتريها را در بر داشت.
تكنيكهاي اساس ي اين نسل شامل - :چند برنامگي multiprogramming
SpoolingTime-sharing -
) I/O bound ( I/o limited
برنامه ها به دو دسته
) cpu – bound ( cpu limited
تقسيم می شوند
در برنامه هاي (cpu limitedمثل برنامه هاي محاسبات علمي سنگين) I/O ،بندرت به كار مي رود .افزايش سرعت
دستگاههاي ورودي و خروجي تا ثير چنداني در سرعت اجراي برنامه ندارد ولي افزايش سرعت (CPUمثال استفاده از CPU
اي با قدرت محاسباتي دو برابر )،در سرعت اجراي برنامه تاثير خيلي زيادي دارد (تقريبا دو برابر سرعت در اجراي برنامه) در
برنامه هاي (I/o limitedمثل برنامه هاي تجاري و بانكهاي اطال عاتي) ،حجم I/Oخيلي زياد است اما معموال از محاسبات
پيچيده خبري نيست .لذا اغلب 80تا 90درصد كل زمان برنامه زمان انتظا ر I/Oميباشد.
در اين سيستمها افزايش سرعت دستگاههاي ورودي و خروجي تاثير زيادي روي كل زمان اجراي يك برنامه دارد اما سرعت
CPUاگر اضافه شود تا ثير چنداني نخواهد داشت.
براي جلوگيري از بيكاري CPUهنگام اجراي يك برنامه كه اكنون منتظر كامل شدن عمل I./Oاست از تكنيك
multiprogrammingاستفاده شد .
شكل صفحه 18ساختار يك (كارنوعي) در FMS
MULTIPROGRAMMING
در اين روش حافظه به چند تكه تقسيم مي شود و در هر تكه يك
كا رمجزا قرار مي گيرد وقتي يك كار براي تكميل عمليات I/O
منتظر مي ماند CPUبه كار ديگري داده مي شود .اگر تعداد
كارهاي موجود در حافظه كا في با شد ،مي توان پردازنده را
تقريبا در صد در صد زمانها مشغول نگه داشت.
سيستمهاي نسل سوم ،سيستمهاي Batchبودند .زمان بين تحويل
برنامه به اتاق ورودي و دريافت خروجي اغلب چندين ساعت به
طول مي انجامد .بنابراين تنها جابجايي يك كاما مي توانست منجر
به خطاي ترجمه شده و وقت برنامه نويس را نيم روز ديگر تلف كند.
job3
job2
Memory partitions
job1
Operating
system
سيستمهاي اشتراك ز ماني )( time sharing
اين سيستمها داراي تكنيك multi programmingهستند ولي مي توانند به كاربران onlineپاسخ
دهند هر كاربر يك ترمينال بر خط ) (onlineدر اختيار دارد .
در اين سيستمها ،كامپيوتر قادر است كه به تعدادي از كاربران onlineدر كنار يكديگر سرويس دهد
وقتي در مواقعي كه cpuبيكار مي ماند ،كارهاي دسته اي بزرگ را در backgroundبه اجرا در آورد.
CTSSاولين سيستم اشتراك زماني بود كه دانشگاه M . I. Tآنرا بوجود آورد .
(ـ) Multicsمحصولي از دانشگاه General E lectric Bell Labs , MIT
مخفف MULTIPLEXED INFORMATION AND COMPUTING SERVICE
(ـ) UNIXتوسط KEN THEMPSONبر روي يك كامپيوتر كوچك PDP-7بوجود امد.
(ـ) (POSIXاستاندارد IEEEبراي )UNIXحداقل واسط فراخوان سيستمي كه سيستمهاي UNIX
بايد آنرا پشتيباني نمايند.
نسل چهارم ( 1980تا كنون ) كامپيوترهاي شخص ي
)(LIS) large – scale integreted circuits
• تكنولوژي مدارات مجتمع با مقياس بزرگ
• بوجود آمدن كامپيو ترهاي شخص ي
•مجموعه اي از كامپيوتر هاي شخص ي
• مجموعه اي از كامپيوتر هاي شخص ي كه تو سط يك شبكه بهم مر بو طند .در دانشگاهها و شركتها مورد استفاده هستند .
• صنعت نرم افزار كامپيو ترهاي شخص ي پا به عرصه وجود گذاشت .
سيستم عاملهاي كامپيوترهاي شخص ي windowsnt, windows98, windows95 , MS-DOS
UNIXبه عنوان سرور شبكه
تفاوتهاي سيستم عامل شبكهاي و سيستم عامل توزيع شده :
DISTRIBUTED VERSUSNETWORK OS
در يك سيستم عامل شبكه ،كاربران از وجود ماشينهاي مختلف در شبكه آگا هند و مي توانند به يك يا چند
REMOTE COMPUTERوصل نما ييد و فايلهاي يك ماشين را روي ماشين ديگر كپي كنند هر ماشين سيستم عامل
Localخودش را اجراء مي كند .يك سيستم عامل شبكه ،ساختاري مانند يك سيستم عامل تك كاربره را دارد كه بخش
مربوط به راهبري NICو برنامه هاي ورود به سيستم از راه دور و دسترس ي Remoteبه فايلها به ان اضافه شده است .
اما در سيستم عامل توزيع شده :
كاربران از اين امر اگاه نيستند كه در برنامه شان در كجا به اجراء در مي آيد (در كامپيوتر localيا يك يا چند كامپيوتر
)remoteو يا فايلهاي انها در كجا قرار دارند كه خاصيت transparencyنام دارد 0
هر چيزي را با نام آن مشخص ميكنيم ونياز به دانستن اينكه كجا قرار دارد نداريم .
اغلب سيستمهاي توزيع شده به برنامه هاي كاربردي اجازه ميدهند كه در يك زمان بر روي چندين پردازنده (بطور موازي) به
اجراء در آيد.
مثالهايي از AMOEBA : D-OSES
.
براي يافتن اطالعات بيشتر در مورد سيستمهاي توزيع شده ميتوانيد به كتاب
رجوع نماييدTANANBAM ازآقايMODERN OPERATING SYSTEMS(1992)
DISTRIBUTED SYSTEMS :PRINCIPLES AND PARADIGMS BY ANDREW S.
TANEABAUN AND MAARTEN VAN STEEN.
PRENCICE-HALL , 1SL EDITION (JANUARY 15,2002)
ISBN :0130888931 PRICE: $ 83.00
The Operating System Zoo
Mainframe operating systems
Server operating systems
Multiprocessor operating systems
Personal computer operating systems
Real-time operating systems
Embedded operating systems
Smart card operating systems
Mainframe operating systems
داده غير معمول نيستgigabyte ديسک و هزاران1000 : I/O ظرفيت های دارای کاربران همزمان خيلی زيادWeb Server به عنوان)electronic commerce) های سايتهای بزرگ تجارت الکترونيکیServer به عنوانBusiness-to-Business transactions هايی برایserver های زيادی را بطور همزمان انجام می دهندJob
batch
transaction processing
: سه نوع خدمت
timesharing
MVS , OS/360 , OS/390
: Mainframe operating systems مثالهايی از
Server operating systems
بر روی يک شبکه serviceمی دهند و به کاربران امکان می دهند منابع سخت افزاریو نرم افزاری را به اشتراک بگذارند
مثالهايی از خدمات print service , file service , web service : ISPها سرور های متعددی دارند .مثالهايی از : Server operating systems
UNIX , WINDOWS 2000 , WINDOWS 2003 , LINUX
Multiprocessor operating systems
Hardware :
multiprocessors
multicomputers