Tag Archives: مفاهیم سیستم عامل

تاریخچه سیستم عامل

اولین کامپیوتر رقمی واقعی توسط یک ریا ضیدان انگلیسی به نام چارلز بابیج ( charles babbage ) 1871-1792 طراحی شده است با بیج بیشتر عمر و ثروت خود را برای ساختن موتور تحلیلی صرف کرد ولی به علت اینکه فقط از مکانیک محض استفاده کرد به نتیجه دلخواه خود نرسید. موتور تحلیلی وی سیستم عامل نداشت بابیج فهمیده بود که موتور تحلیلی اش به نرم افزار نیاز دارد بنابر این ار خانم جوانی را به نام () استخدام نمود . او دختر شاعر مشهور انگلیسی لرد بایرون بود که به عنوان اولین برنامه نویس جهان شناخته شد.{تننباوم} 1- نسل اول (1955-1945) :لامپ خلا و تخته های مدار های سوراخ دار انداز ه ماشین ها بسیار بزرگ بود و به همراه دهها هزار لامپ خلا داخل اتاق ها را پر می کرد کلیه برنامه به طور مطلق به زبان ماشین نوشته می شد. و اغلب به وسیله سیم بندی تخته مدار های سوراخ دار و به منظور کنترل عملیات باید ماشین پایه ای ماشین انجام می شد. زبانهای برنامه نویسی شناخته نشده بود ( حتی زبان اسمبلی ) و هیچ کس نامی از سیستم عامل نشنیده بود . اکثر برنامه ها مثل تهیه جداول سینوس و کسینوس بود. تننباوم} برنامه ساز مستقیما با سخت افزار در تراکنش بود ، سیستم عاملی در کار نبود. 2- نسل دوم (1965-1955): ترانزیستو ر و سیستم های دسته ای ظهور ترانزستور در اواسط دهه 1950 یک انقلاب بنیادی بود . این ماشین ها در اتاق های مخصوص کامپیوتر با تهویه مطبوع مستقر می شود و گروهی از اپراتو رها ی حرفهای راهبری آن را بر عهده می گرفتند. برای اجرای یک کار(job) ، یک برنامه نوییس برنامه (به زبان فرترن یا اسمبلی )خود را بر روی کاغذ می نوشت سپس آنر بر روی کارت ها منگنه می کرد و یک دسته کارت را به اتاق کامپیوتر می آورد و به یکی از اپراتورها تحویل میداد. در صورتیکه برنامه به مترجم فرترن نیاز داشت وی دسته کارت مترجم فرترن را نیز از داخل کمد فایل ها بر داشته و در دستگاه کارتخوان قرار می داد . هنگامیکه اپراتورها برای انجام این کار ها در اتاق ماشین را ه می رفتند ، مدت زمان زیادی از وقت کامپیوتر تلف می شد. را ه حلی که به طور کلی پذیرفته شد ، سیستم های دسته ای ( Batch system ) بود. ایده این روش این بو د که یک سبد پر از دسته کارتها در اتاق ورودی جمع آوری شود سپس کلیه آنها به وسیله دستگاه کارتخوان یک کامپیوتر کوچک و ارزان قیمت ها IBM 1401 خوانده شده و از طریق یک نوار گردان بر روی نوار مغناطیس ذخیره گردد .این IBM 1401 برای محاسبات مناسب نبودند و از یک ماشین گران قیمت IBM 7094 کامپیوتر ها برای پردازش و محاسبات واقعی استفاده می شد. پس از حدود یک ساعت که برای جمع آوری یک دسته از کارها برای نوار صرف می شد ، یک اپراتور نوار را از اتاق کامپیوتر می آورد و یکی از اپراتور ها تحویل می داد. در صورتیکه برنامه به مترجم فرترن نیاز داشت . وی دسته کارت مترجم فرترن رانیز از داخل کمد فایل ها برداشته و در دستگاه کارتخوان قرار می داد . هنگامیکه اپراتور ها برای انجام این کارها در اتاق ماشین راه می رفتند ، مدت زمان زیادی از وقت کامپیوتر تلف می شد. راه حلی که به طور کلی پذیرفته شد ، سیستم های دسته ای () بود. ایده این روش این بود که یک سبد پر از دسته کارتها در اتاق ورودی جمع آوری شود ، سپس کلیه آنها به وسیله دستگاه کارتخوان یک کامپیوتر کوچک و ارزان قیمت IBM 1401 خوانده شده و از طریق یک نوار گردان بر روی نوار مغناطیسی ذخیره گردد. این کامپیوتر ها () رای محاسبات مناسب نبودند و از یک ماشین گران قیمت (7094) برای پردازش و محاسبات واقعی استفاده می شود. حدود یک ساعت طول مکیشد که یک دسته از کارها بر روی نوار ضبط شود پس از یک ساعت یک اپراتور نوار را از اتاق برداشته و به اتاق ماشین منتقل می کرد و درآنجا در یک نوار گردان قرار می داد. سپس یک برنامه مخصوص (سیستم عامل ) را بار می کرد تا اولین کار از روی نوار بخواند و اجرا نماید. خروجی به جای چاپگر بر روی یک نوار دیگر نوشته می شد. پس از اتمام هر کار ، سیستم عامل به صورت خودکار ، کار بعدی را از نوار می خواند و شروع به اجرای آن می کرد . وقتی که تمامی دسته کار ها اجرا می شد ، اپراتور نوار های ورودی و خروجی را بر می داشت ، نوار ورودی را با دسته بعدی جایگزین کرده ، نوار خروجی را به ماشین 1401 منتقل میکرد تا عملیات چاپ به صورت OFF Line (به کامپیوتر اصلی متصل نیست ) انجام شو د.{تننباوم } سیستم عامل در این گونه کامپیوتر ها بسیار ساده بود . کار اصلی آن ، انتقال از یک کار به کار دیگر بود. سیستم عامل همیشه در حافظه قرار داشت. {سیلبر شاتس} ویژگی های سیستم عامل دسته ای :{ سیلبر شاتس } 1- کاربر با کار ی که در حال اجرا بود تعاملی نداشت. 2- درچنین محیطی CPU اغلب بیکار است چون سرعت دستگاه های I/O مکانیکی کمتر از سرعت دستگاه های الکترونیکی مثل CPU است. مثلا CPU در یک ثانیه هزاران دستورالعمل انجام می دهد. در حالکه دستگاه کارت خوان سریع در یک دقیق 1200 کارت را می خواند.در نتیجه تفاوت سرعت بین CPU و دستگاه های I/O بسیار زیاد است. 3 – تخصیص CPU در چند برنامه ای انحصاری (Non Preemptive ) است . استفاده از فناوی دیسک ، موجب افزایش سرعت دستگاه های I/o شده است . به جای اینکه کارت ها از طریق کارت خوان به حافظه خوانده شوند . سپس کاربر پردازش شود کارت ها مستقیماً به دیسک خوانده میشوند .{سیلبر شاتس } Job چیست؟ مجوعه ای از یک 1- برنامه ( program ) 2- داده ورودی (input data ) 3- دستوارت سیستم عامل(O.S Command ) JCL( Job Control Language ) یک زبان کنترل است. ساختار یک کار نوعی در FSM 1-این ساختار بایک کارت $JOB شروع می شود. که مشخص کننده حداکثر زمان اجرا به دقیقه ، شماره حساب برای حسابداری هزینه ها و نام برنامه نویس می باشد. $JOB , 10, 6610802, MARVIN TANENBAUM 2-سپس یک کارت$FORTRAN قرار دارد که به سیستم عامل اعلام می کند که کترجم فرترن را از روی نوار سیستم بار نماید. 3- سپس کارتهای برنامه ای که باید ترجمه شود قرار دارد و کارت$LOAD به دنبال آن قرار گرفته است.این کارت سیستم عامل را ودار میکند که برنامه OBJECT (مستقیماً ترجمه شده ) را بار نماید -4سپس نوبت به کارت $RUN می رسد که به سیستم عامل می گوید اجرای برنامه ها را به همراه داده هایش که در کارتهای بعدی قرار دارد، آغاز نماید. -5در انتها کارت $End قرار گرفته است که نشان دهنده پایان کار است. کامپیوتر های بزرگ نسل دوم بیشتر برای محاسبت مهندسی و علمی بکار می رفت . برنامه آنها بیشتر به زبان فرترن و اسمبلی نوشته می شد. و معمولا از سیستم عامل FSM ( Fortran Monitor System ) و IBSYS (سیستم عامل IBM برای 7094) استفاده می شد. 3- نسل سو م (1980-1965):مدارات مجتمع و چند برنامگی IBM سری 360 اولین خط تولید کامپیوتر های بزرگ بود که از مدارات مجتمع با مقیاس کوچک استفاده کرد بنابراین نسبت به کامپیوتر های نسل دوم که از ترانزیستور ها ی جداگانه ساخته می شود نسبت به کارایی از هزینه بالاتری برخوردار بود. IBM یک سیستم عامل عظیم الجثه و بسیار پیچیده بود که این سیستم عامل از میلیون ها خط اسمبلی که توسط هزاران برنامه نویس نوشته شده است . سیستم عامل OS/360 چندین تکنیک کلیدی جدید که در سیستم عامل های نسل دوم وجود نداشت متداول نمود. شاید مهمترین این تکنیک ها ، چند برنامگی ( Multi Programming ) بود. در محاسبات علمی سنگین تنگنای محاسباتی CPU_BOUND (Multi Limited) ، I/O به ندرت به کار می رود. اما در پردازش داده های تجارتی ، زمان انتظار I/O اغلب 80 تا 90 درصد کل زمان را به خود اختصاص می دهد. و CPU بیشتر بیکار است. برای حل مشکل ، حافظه را به چند تکه تقسیم بندی نماییم. اگر چه سیستم های نسل سوم برای محاسبات علمی بزرگ و پردازش داده های تجازی مناسب بود ، ولی هنوز سیستم های دسته ای بودند. ویژگی سیستم عامل نسل سوم : 1- بلا فاصله پس از ورود کارها به اتاق کامپیوتر ، می توانند کارتها را خوانده و به دیسک منتقل نمایند. 2- بنابراین هرگاه یک کار ، در حال اجرا به پایان می رسد ، سیستم عامل می تواند یک کار جدید را از روی دیسک برداشته و در یک بخش خالی شده از حافظه بار نماید و سپس آنرا ، به اجرا در آورد . این تکنیک که Spooling نامیده می شود. 3- برای خروجی نیز ، به کار گرفته شده با SPOOLING دیگر نیازی به 1401 و نوار گردان های اضافی و حمل نوارها نبود.{ تننباوم }  

Read More »

تستهای کنکوری سیستم عامل

(1- در نمودار انتقال پردازش ، در كدام حالت process ‌  تمام منابع به غير از پردازنده را در اختيار دارد ؟ 1)  ready (4                    running‌  (3                       wait  (2                  suspend wait    (2- در نمودار انتقال پردازش ، چنانچه prorcess آمده باشد ولي حافظه نداشته باشيم ، چه حالتي را خواهيم داشت ؟ 1 ) – suspend wait  (2                                    suspend ready 3 )  running  (4                                                     hold   (3 – در نمودار انتقال پردازش ، در كدام حالت صفي از پردازش ها را خواهيم داشت ؟ 1 )  ready  (4                   wait  (3                hold-ready  (2                  ready-wait   (4 – در نمودار انتقال پردازش ، چه رئتيني كارها را از حالت hold  به ready  مي برد ؟ 1 )  jcl  (4                 dispatcher  (3                (job scheduler )g.s. (2             jclو dipatcher   (5 – مقدار حافظه اي كه به يك  process داده مي شود به چه منظور مي باشد ؟ 1 ) اجرا                      2) نوقف پردازش            3) سرعت بيشتر                       4) راه اندازي   (6 –  كدام الگو ريتم ، الگوريتم غير انحصاري انتخاب پردازش است ؟ 1 )  srtf-rr  (4                            spn   (3                  mlq  (2                    (round robin ) rr   (7 – در كدام يك از الگوريتم هاي انتخاب پردازش ، براي پردازش ها time slice  تعيين مي شود ؟ 1 )MLQ- Round robin   (2                                Round Robin 3 )   MLFQ-MLQ  (4                                           MLQ   (8 – حداكثر تعداد كاركتري را كه مي توان در كادر LABLE  در قسمت FORMAT  در سيستم عامل WINDOWS  وارد كرد كدام است ؟ 1 ) 8   (4                      11  (3                       15  (2                        17   (9 –  در سيستم عامل WINDOWS  ، در كدام قسمت وضعيت ارتباط با اينترنت نشان داده مي شود ،؟ 1 )FOLDER OPTION    (2                             start menu 3 ) status area      (4                                  task bar   (10 – براي حذف فايل ، بدون انتقال به recycle bin ‌ در هنگام حذف چه كليدي را بايد نگه داشت ؟ 1 ) alt  (4                       ctrl  (3                    shift  (2                   shift+alt   (11 – معادل دستور rename  در سيستم عامل unix  ، فايل هاي  exam.texو exam.tex را داخل دايركتوري student  كپي مي كند ؟ 1 ) $cp exam1.tex    exam2.tex    student/ 2 )  $cp   exam 1.tex   exam2.tex   student 3 ) $cp  exam1.tex   exam2.tex   /student 4 ) گزينه هاي 1و2   (12 – كدام دستور ، معادل دستور dir در سيستم عامل unix است ؟ 1 )  pwd   (4                  is  (3                       cp-I   (2               rm-I   (13 – در سيستم عامل unix  ، طول كل فايل از لحاظ قواعد نام گذاري تا چند كاركتر محدوديتي ندارد ؟ 1 )  8                          2 )  16                     3 )   255                       4 )  256   (14 – كدام دستور ، معادل نمايش فايل سيستم و كل فضاي آزاد در سيستم عامل  unix ‌مي باشد ؟ 1 )  df‌   (4                      ps  (3                      fg  (2                      4- kill   (15 – چه قابليتي در unix  وجود دارد كه اجازه مي دهد هر برنامه اي به اجراي خود پس از خروج از كامپيوتر (logout) ادامه دهد ؟ 1 )  jobs  (4                          move  (3                        continue   (2                      background process  

Read More »

جزوه سیستم عامل ( بخش سوم )

حافظه اصلی کامپیوتر 1-اولین بخش جدول بردار (Interrupt Vector) می باشد که محل روتین های سرویس دهنده وقفه را تعریف می کند.این جدول آدرس 0 تا 400 هگزا را اشغال می کند. 2- دومین فضا به عنوان محل کار روتین های ROM _BIOS استفاده می شود. از بین چیز های زیادی که در فضای داده ROM_BIOS ذخیره می شود. به یک BUFFER که ضر به های کلید را پیش از اینکه برنامه برای در یافت آنها حاضر باشد در خود نگه می دارد . 3- سومین بخش فضای پایین حافظه فضای کار کامپا یلر ها و سیستم عامل می باشد. 4- بخش اصلی فضای کاری حافظه قسمتی است که برنامه ها و داده های آنها استفاده می شود.   هر وسیله برنامه سرویس دهی خاص خود را دارد و از طریق یک دستوالعمل (JMP) ، آدرس بردار قرار دارد قابل دسترسی است. مثال: فرض کنید که صفحه کلید بیت وقفه را 1 کند. در پایان سیکل دستوالعمل ،کامپیوتر به سیکل وقفه میرود. ابتدا آدرس بازگشت برنامه در حال اجرا را در پشته ذخیره می کند و سپس CPU آدرس بردار 00000011(3) را از گذر گاه پذیرفته و آنرا به ثبات PC ( ثبات شمارنده ) انتقال میدهد. آنگاه دستوالعمل واقع در مکان 3 اجرا شده ، و در نتیجه کنترل به روال KBD (برنامه سرویس دهی به صفحه کلید ) منتقل می شود. آخرین دستور در هر برنامه ، دستوالعمل بازگشت از وقفه است. { معماری کامپیوتر – موریس مانو } در رابطه با هر کلاس از دستگاه های I/O در قسمت پایینی حافظه ناحیه ای به نام بردار وقفه ( Interrupt ) وجود دارد که شامل آدرس روتین سرویس وقفه ( Interrupt Service Procedure ) می باشد. فرض کنید فرآیند 3 در حال اجرا است که ناگهان یک وقفه در رابطه با دیسک اتفاق می افتد . این وقفه باعث می شود که PC (شمارنده برنامه )، PSW(کلمه وضعیت برنامه ) و چند رجیستر دیگر توسط وقفه سخت افزاری در پشته (جاری) ققرار گیرند. سپس کامپیوتر به آدرس مشخص شده در بردار وقفه ( Interrupt Verctor ) پرش میکند. تااین مرحله کاملاً توسط سخت افزار انجام می شود ولی از این مرحله به بعد به عهده نرم افزار است. روتین سرویس وقفه با ذخیره سازی کلیه رجیستر ها در درایه ای از جدول فرآیند که مر بوط به فرآیند جاری است آغاز می شود.اعمالی نظیر ذخیره سازی رجیستر ها و تغییر اشاره گر پشته (به راحتی) در زبان C انجام نمی شود. بنابراین این موارد توسط رویه کوچکی که به زبان اسمبلی نوشته شده است انجام می شود. .{ تننباوم 65 }   روشهای انتقال ورودی /خروجی { معماری کامپیوتر – موریس مانو }   تبادل داده با وسایل جانبی به سه طریق زیر امکان پذیر است.   -1ورودی خروجی برنامه نویسی شده -2ورودی /خروجی بطریقه وقفه -3دستیابی مستقیم به حافظه DMA (Direct Memory Access)   -1 ورودی /خروجی برنامه سازی شده   در این روش ،CPU در یک حلقه از برنامه باقی می ماند تا واحد I/O مشخص نماید که برای انتقال داده آماده است . این فرآیند موجب اتلاف قابل توجه وقت می شود. زیرا پردازنده زا بی آنکه لازم باشد مشغول نگه می دارد . برای جلوگیری از بهدر رفتن وقت پردازنده از امکانات وقفه (Interrupt ) استفاده کرد.در این روش انتقال داده بین CPU و دستگاه جانبی انجام می شود.. در این روش ، برنامه ای برای کامپیوتر نوشته شده است تا پرچم را در ثبات وضعیت وارسی نموده و تعیین کند که آیا وسیله I/O بایتی در ثبات قرارداده است یا خیر . این عمل با خواندن ثبت وضعیت و قراردادن آن در یک ثبات CPU و وارسی بیت پرچم صورت می گیرد. اگر پرچم برابر 1 باشد ، CPU داده را از ثبات داده می خواند . سپس بیت پرچم با 0 شدن به وسیله ،CPU ، پاک می شود. . بعد از صدور فرمان لازم برای اجرای ورودی / خروجی به مولفه مر بوطه ، عمل درخواست شده توسط مولفه ورودی / خروجی انجام میشود و بیتهای مناسب از ثبات وضعیت ورودی / خروجی مقدار گذاری میشود و هیچ اطلاعی به پردازنده داده نمی شود. این مسئولیت پردازنده است که وضعیت مولفه ورودی / خروجی را متنا وبا ٌ بررسی نماید تا اتمام آن عمل را دریابد .   2- ورودی / خروجی بطریقه وقفه بعد از صدور فرمان به مولفه ورودی / خروجی ، پردازنده به کار مفید دیگری میپردازد . بعد از تکمیل عمل ورودی / خروجی هنگامی که داده ها در بافر داده های آن مولفه قرار گرفت مولفه ورودی / خروجی از طریق یک خط کنترلی به پردازنده وقفه میدهد، سپس داده هایش توسط پردازنده ، درخواست شده و به حافظه منتقل می گردد. در این روش CPU مادامی که مشغول اجرای یک برنامه است پرچم را وارسی نمی کند. با این وجود ، هنگامیکه پرچم 1 شده باشد، یک وقفه CPU را لحظه ای از اجرای برنامه جاری متوقف ساخته و 1 شدن پرچم را به آن اطلاع می دهد. CPU از آنچه در حال انجام آن است منصرف شده و به انتقال ورودی یا خروجی می پردازد.پس از تکمیل شدن اتنتقال ، کامپیوتر به برنامه اصلی بر می گردد تا آنچه را که قبل از وقفه انجام می داد ادامه دهد.   3-ورودی / خروجی میتنی بر وقفه همراه با مولفه DMA   انتقال داده بین یک وسیله ذخیره سازی سریع مانند دیسک مغناطیسی و حافظه اغلب بوسیله سرعتCPU محدود می شود. حذف CPU از مسیر و ایجاد امکان کنترل مستقیم گذرگاه حافظه توسط وسیله جانبی سرعت انتقال را بهبود می بخشد. این تکنیک انتقال دستیابی مستقیم به حافظه (DMA) نام دارد در حین انتقال بروش DMA ، CPU بیکار است و کنترلی بر گذر گاه های حافظه ندارد . یک کنترل کننده به منظور اداره مستقیم امر انتقال بین حافظه و وسیله I/O ، کنترل گذرگاه را بدست می گیرد. در این روش که برای انتقا ل داد ه های حجیم کارآمد تر است ، پردازنده با ارسال اطلاعات شامل ، عمل ورودی / خروجی ، آدرس دستگاه ورودی /خروجی ، محل حافظه برای خواندن یا نو شتن و تعداد کلماتی که باید خوانده ویا نوشته شود ، مولفه DMA را فعال میسازد . سپس پردازنده به کار دیگری می پردازد ، ، زمانی که انتقال ورودی / خروجی به اتمام رسید مولفه DMA علامت وقفه را صادر می نماید . بنابراین بدون دخالت پردازنده داده ها مستقیماً به حافظه منتقل می شود. پس نتیجه می گیریم که برای انتقال ورودی / خروجی های چند کلمه ای DMA بسیار کارآمد تر از روش های ورودی / خروجی برنامه سازی شده یا مبتنی بر وقفه است. توجه نمائید که مولفه DMA به منظور انتقال اطلا عات به حافظه یا بالعکس می بایست از گذرگاه استفاده نماید. بنابراین مولفه DMA باید زمانی از گذرگاه استفاده نماید که پردازنده به آن نیازی ندارد و یا باید پردازنده را وادار کند که موقتا ً عملیاتش را با تاخیر اندازد . روش اخیر را سرقت سیکل Cycle Stealing ) (می گویند زیرا مولفه DMA در اصل یک چرخه گذرگاه را می رباید . مولفه DMA هر بار که گذرگاه را در اختیار می گیرد (زمان واکشی دستور و یا واکشی عملوند ) یک کلمه را منتقل می کند و کنترل را به پردازنده باز می گرداند توجه نماید که این وقفه نیست ، بلکه به اندازه یک چرخه گذرگاه منتظره می ماند.CPU صرفاً عملکرد خود را به اندازه یک سیکل حافظه به تاخیر می اندازد تا عمل انتقال حافظه I/O به طور مستقیم صورت گرفته و یک سیکل حافظه را برباید. » لطفا جهت طرح سوالات خود، فقط به انجمن سايت مراجعه نمایید. «

Read More »