تاریخچه سیستمهای عامل (os history)
اولین digital / computer توسط (1792-1871)charles babbage طراحی شد.
کامپیوتری که او ساخت موتور تحلی لی (Analytical Engine) نام داشت . اگر چه بانج بیشتر عمر و ثروت
خود را صرف ساختن موتور تحلیلی کرد ولی به نتیجه دلخواه و مطلوب خود نرسید زیرا او فقط از مکانیک
محض استفاده می کرد .
و فن آوری آن دوران امکان تولید چرخها و چرخ دنده هایی با دقت و ظرافت مورد نیاز وی را نداشت .
نسل اول _(55-1945) : لامپهای خلا و تخته مدارهای سوراخدار
در دهه 40 کامپیوترهایی با استفاده از لامپهای خلا بوجود آمد.
اندازه این ماشینها بسیار بزرگ بود و به همراه دهها هزار لامپ خلا داخل اتاقها را پر می کرد ، اما از
ارزانترین کامپیوترهای شخصی امروزی کندتر کارمی کرد.
– کلیه عملیات به زبان ماشین بود( زبانهای برنامه سازی شناخته شده بود) – نسل بدون سیستم عامل ( هیچ کس نامی از سیستم عامل نشنیده بود) – برنامه نویس برای کار با ماشین ابتدا وقت رزرو میکرد ، سپس سروقت معین به اتاق ماشین وارد می شد
و تخته مدار سوراخدار خود را در ماشین قرار می داد و ساعاتی را منتظر می ماند به این امید که هیچ یک از چند هزار (مثلا 2000 ) لامپ خلا در طی اجرای برنامه نسوزد.
– برنامه ها برای محاسبات عددی معمولی مانند تهیه جداول
– یک عده از مردم تمامی مراحل طراحی ساخت برنامه نویسی استفاده و نگهداری یک ماشین را بر عهده داشتند
نسل دوم 🙁 65-1955) ترانزیستور(batch)
ظهور ترانزیستور در اواسط دهه 1950 یک انقلاب بنیادین بود حجم کامپیوترها کوچک شد و قابلیت اطمینان آنها بالا رفت لذا سازندگان می توانستند کامپیوترها را تولید کرده و به مشتریها بفروشند. – متخصصین طراحی ساخت برنامه نویسی، تعمیر و نگهداری و اپراتوری از یکدیگر تفکیک شدند. – هزینه این ماشینها حدود چند میلیون دلار بود. برای اجرای یک job(کار) ( مثلا یک برنامه یا یک مجموعه از برنامه ها ) یک برنامه نویس خود را برروی یک کاغذ می نوشت ( به زبان فرترن یا اسمبلی ) سپس آنرا بروی smart card ( کارتهای منگنه )punch می کرد و یک دسته کارت را به اتاق کامپیوتر می آورد و به یکی از اپراتورها تحویل می داد.
وقتی کامپیوتر کار در حال اجرا را به اتمام می رساند یک اپراتور به سمت چاپگر می رفت و کاغذهای خروجی برنامه را جدا و به اتاق خروجی منتقل میکرد تا بعدا برنامه نویس آنها را بردارد سپس او یکی دیگر از دسته کارتها را ا ز اتاق ورودی آورده و در دستگاه کارت خوان قرار می داد و در صورتی که برنامه به مترجمfortran نیاز داشت وی دسته کارت مترجم فرترن را نیز داخل کمد فایلها برداشته و در دستگاه کارتخوان قرار می داد. هنگامیکه اپراتورها برای انجام این کارها در اتاق ماشین راه می رفتند مدت زیادی از وقت کامپیوتر تلف می شد. راه حلی که برای کاستن زمان تلف شده بوجود آمد: سیستمهای دسته ای (batch) بود. یک سبد پر از دسته کارتها در اتاق ورودی جمع آوری شود سپس کلیه آنها به وسیله دستگاه کارتخوان ( یک کامپیوتر کوچک و نسبتا ارزان مانند IBM1401) خوانده شده و از طریق یک Tape drive برروی یک
Magnetic tape ذخیره گردد. این کامپیوترها به عنوان کامپیوترهای ورودی / خروجی استفاده می شدند یعنی برای خواندن کارتها کار باtapedrive ها و جاپ خروجی ها مناسب بودند اما برای محاسبات عددی مناسب نبودند یک کامپیوتر گرانقیمت مانند برای پردازش و محاسبات واقعی استفاده می شد .
شکل صفحه 17
نسل سوم (80-1965)integnted circuits(ICS)and multi programming
System /360 ,IBMرا ساخت که خانوادهای از ماشینها بود که از نظر نرم افزاری با یگدیگر سازگار بودند.
طیف وسیعی از ماشینها ( از اندازه 1401 تا خیلی قویتر از 7094) را در خود داشت .
تفاوت ماشین ها فقط در قیمت و کا رایی (حداکثر اندازه حافظه ،سرعت پر دازنده ،تعداد دستگاههای ورودی / خروجی و نظایر آن) بود. همه انها معماری و مجموعه دستورالعملهای یکسانی داشتند ،لذا برنامه های نوشته شده در یکی از آنها در سایر ماشینها نیز قابل اجرا بود. ضمنا برای انجام محاسبات در دو زمینه علمی و تجاری ساخته شده بود.
بدلیل استفاده از مدارات مجتمع به جای ترانزیستور ،حجم کوچکتر وreliability بالاتری نسبت به نسل دوم وجود داشت . و از نسبت price/performance بهتری برخوردار بودند.
سیستم عامل بود IBM system/360 os/360, که رضایت مشتریها را در بر داشت.
تکنیکهای اساسی این نسل شامل : – چند برنامگی multiprogramming
Spooling –
Time-sharing –
I/Obound(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
(ـ) کارت $job برای مشخص کردن حداکثر زمان اجرا به دقیقه ، شماره حساب برای حسابداری هزینه ها و نام برنامه نویس
(ـ) $Fortranبه سیستم عامل اعلام می کند مترجم فرترن را از روی load , system tapeنمایید.
(ـ) کارتهای برنامه به زبان فرترن که باید کا مپایل شود .
(ـ) کارت $load به سیستم عامل می گوید که برنامه object را load نمایید.
(ـ) کارت $load به سیستم عامل می گوید که اجرای برنامه را آغازکند .
(ـ) کارت های داده
(ـ) کارت های $end نشان دهنده پایان کار است.
سیستمهای عامل این نسل معمولا IB sys,( Fortran MonitorSystem) FMS بودند .
نسل چهارم ( 1980 تا کنون ) کامپیوترهای شخصی
تکنولوژی مدارات مجتمع با مقیاس بزرگ (LIS) large – scale integreted circuits)
بوجود آمدن کامپیو ترهای شخصی
مجموعه ای از کامپیوتر های شخصی
مجموعه ای از کامپیوتر های شخصی که تو سط یک شبکه بهم مر بو طند . در دانشگاهها و شرکتها مورد استفاده هستند .
صنعت نرم افزار کامپیو ترهای شخصی پا به عرصه وجود گذاشت .
سیستم عاملهای کامپیوترهای شخصی windows98, windows95 , MS-DOS windowsnt,
UNIX به عنوان سرور شبکه
در یک سیستم عامل شبکه ، کاربران از وجود ماشینهای مختلف در شبکه آگا هند و می توانند به یک یا چند
REMOTE COMPUTER وصل نما یید و فایلهای یک ماشین را روی ماشین دیگر کپی کنند هر ماشین سیستم عامل Local خودش را اجراء می کند . یک سیستم عامل شبکه ، ساختاری مانند یک سیستم عامل تک کاربره را دارد که بخش مربوط به راهبری NIC و برنامه های ورود به سیستم از راه دور و دسترسیRemote به فایلها به ان اضافه شده است .
اما در سیستم عامل توزیع شده :
کاربران از این امر اگاه نیستند که در برنامه شان در کجا به اجراء در می آید (در کامپیوتر local یا یک یا چند کامپیوتر remote ) و یا فایلهای انها در کجا قرار دارند که خاصیت transparency نام دارد 0
هر چیزی را با نام آن مشخص میکنیم ونیاز به دانستن اینکه کجا قرار دارد نداریم .
اغلب سیستمهای توزیع شده به برنامه های کاربردی اجازه میدهند که در یک زمان بر روی چندین پردازنده (بطور موازی) به اجراء در آید.
مثالهایی از D-OSES : AMOEBA
.
تفاوتهای سیستم عامل شبکهای و سیستم عامل توزیع شده :
DISTRIBUTED VERSUSNETWORK OS
برای یافتن اطلاعات بیشتر در مورد سیستمهای توزیع شده میتوانید به کتاب
MODERN OPERATING SYSTEMS(1992) ازآقای TANANBAM رجوع نمایید
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
MULTIPROGRAMMING
در این روش حافظه به چند تکه تقسیم می شود و در هر تکه یک
کا رمجزا قرار می گیرد وقتی یک کار برای تکمیل عملیات I/O
منتظر می ماندCPU به کار دیگری داده می شود . اگر تعداد
کارهای موجود در حافظه کا فی با شد ، می توان پردازنده را
تقریبا در صد در صد زمانها مشغول نگه داشت.
سیستمهای نسل سوم ، سیستمهای Batch بودند . زمان بین تحویل
برنامه به اتاق ورودی و دریافت خروجی اغلب چندین ساعت به
طول می انجامد . بنابراین تنها جابجایی یک کاما می توانست منجر
به خطای ترجمه شده و وقت برنامه نویس را نیم روز دیگر تلف کند.
job3
job2
job1
Operating
system
Memory partitions
سیستمهای اشتراک ز مانی 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
باید آنرا پشتیبانی نمایند.