570 likes | 769 Views
مباحث ويژه (سيستمهاي عامل) ارائه دهنده ياسمن عليٌ Yasaman.aliyon@gmail.com پاييز 89. فعاليت كلاسي: ( Quiz, homework, presentation ) حضور و غياب: ميان ترم: پايان ترم:. كاربر. سيستم عامل. منابع سختافزاري. 1- ماشين مجازي ( Virtual / Extended Machine ) سيستم عامل
E N D
مباحث ويژه (سيستمهاي عامل) ارائه دهنده ياسمن عليٌ Yasaman.aliyon@gmail.com پاييز 89
فعاليت كلاسي: (Quiz, homework, presentation) حضور و غياب: ميان ترم: پايان ترم:
كاربر سيستم عامل منابع سختافزاري 1- ماشين مجازي (Virtual / Extended Machine) سيستم عامل (Operating System) 2- مدير منابع (Resource Manager)
1) (Process Manager) 2) ( Memory Manager) وظايف سيستم عامل 3) I/O Manager 4) File System 1) محيط را براي استفاده كاربر آسان ميكند. ويژگي سيستم عامل 2) مديريت منابع سختافزاري به منظور استفاده بهينه
انواع سيستم از ديدگاه (تعداد كاربر) 1) تك كابر (Single User) 2) چند كاربره (Multi User) انواع سيستم از ديدگاه (تعداد پردازنده) 1) تك پردازندهاي (Single Processor) 2) چند پردازندهاي (Multi Processor)
(Process Manager) مدير فرآيند مدير پردازنده (مدير فرآيند) 1) پردازه: يك واحد اجرايي كوچك 2) سيستم عامل تك پردازنده: حداكثر يك پردازه در هر لحظه 3) سيستم عامل چند پردازنده: چندين پردازه در هر لحظه مثال: Linux Windows مزايا: افزايش راندمان سيستم اشتغال درصد CPU
هر پردازنده داراي دو نوع دستورالعمل ميباشد: 1) دستورات CPU 2) دستورات I/O دستورات اين قسمت توسط سختافزار خاصي به نام (Direct Memory Access) DMA اجرا ميشود.
پردازهها در داخل حافظه وضعيت پردازهها در داخل حافظه و نحوه تبديل وضعيت آنها. 1) Running 2) Ready 3) Blocked
وضعيت Running (در حال اجرا) سيستم عامل تك پردازه (Single Process) حداكثر 0 يا 1 سيستم عامل چند پردازه (Multi Process) حداكثر 0 يا 1 سيستم عامل چند پردازه داراي ويژگي اشتراك زماني ميباشد. (Time Sharing)
وضعيت Ready (آماده اجرا) داراي منابع مورد نياز، منتظر در اختيار گرفتن CPU براي اجرا بيشمار پردازه آماده اجرا ميتوانيم داشته باشيم
وضعيت Blocked (بلوكه شده) عدم دسترسي (در اختيار داشتن) به تمامي منابع مورد نياز خود حتي در زمان به اختيار گرفتن CPU نيز قادر به اجرا نخواهد بود
تبديل وضعيت پردازهها 1) Running Ready 2) Ready Blocked 3) Blocked Running 4) Running Blocked 5) Blocked Ready 6) Ready Running
چگونگي ارتباط پردازنده با دستگاه جانبي: هدف: انتقال دادهها ميباشد روش انتقال داده: 1- ورودي و خروجي برنامهريزي شده (Programmed I/O) 2- وقفه (Interrupt) 3- DMA (Direct Memory Access)
روش اول: (Programmed I/O) اگر n تا وسيله از CPU استفاده كنند. چك كردن اينكه دستگاه آماده است. چك كردن وسيال به عهده CPU بوده. معياب اين روش: 1) همۀ داده بايد از CPU بگذرد 2) اتلاف وقف براي CPU به خاطر چك كردن وسايل 3) سركش به وسايل داري ترتيب بوده و به اولويت درخواست دستورات اجرا مي شوند سركش اصطلاحاً Coding نام دارد.
روش دوم: Interrupt هر كدام از وسايل به سيگنال وصل شده CPU هر كدا از وسايل را به صورت تكتك چك نميكند اولويت با زودتر درخواست كنده ميباشد مزايا: مشكل اتلاف وقت از بين رفته معايت: همه دادهها بايد از CPU انتقال يابند.
انواع وقفهها 1- وقفه سختافزاري 2- وقفه نرمافزاري تقسيمبندي ديگر وقفهها 1- وقفههاي I/O و دستگاههاي I/O 2- رقفه هاي (Supper Visor Call) SVC وقفههاي فرخوان ناظر منظور از ناظر: سيستم عامل 3- وقفههاي (Machine Check) MC در اثر بروز خرابي يا اشكال 4- وقفههاي (Program Check) PC 5- وقفههاي External، منابع خارجي 6- وقفههاي Page Fault (نقص صفحه)
روش سوم: DMA (Direct Memory Access) اجزاء سختافزاري به نامDMA Controller قدرت پردازش نداشته فقط قدرت انتقال داده را دارد. انتقال بين حافظه اصلي و جانبي I/O تعيين مسير مبدأ، مقصد و حجم حافظه به عهده CPU بوده كنترل گذرگاه به DMA Controller داده ميشود. (موقتاً) دادهها از CPU منتقل نميشوند. بدون استفاده از CPU مستقيماً با حافظه اصلي سر و كار داريم.
ارتباط بين پردازهها IPC (Inter Process Communication) پردازههاي درون حافظه بايد ارتباط داشته باشند. ارتباط: مبادلۀ اطلاعات مهمترين مسئله در ارتباط پردازهها مسئله سابقه يا Race Condition Problem
مسئله سابقه: Race Condition Problem بيش از يك پردازه بخواهد در آن واحد به يك منبع مشترك دسترسي داشته باشد. و شرايط سابقه به صورت مختلف نمود خواهد يافت. مثال: مسئله ناحيه بحراني (C.S)(Critical Section)
ناحيه بحراني ناحيه بحراني: قسمتي از هر پردازه كه در آن از منبع مشترك استفاده ميكنيم. شرايط مسابقه وقتي است كه بيش از يك پردازه در ناحيه بحراني هستند (همزمان) راهحل: بر حذرداري چند گانه Mutual Exclusion ولي باعث مشكلات ديگر خواهد شد.
شرايط لازم براي حل شرايط مسابقه بدون بروز مشكل ديگر 1) هيچ دو پردازهاي تواماً داخل ناحيه بحراني نباشد. 2) هيچ پردازهاي تا ابد منتظر ورود به داخل ناحيه بحراني نباشد. 3) پردازها كه در خارج از ناحيه بحراني قرار دارد مانع ورود ساير پردازهها به درون ناحيه بحراني نشود. 4) هيچ گونه مفروضاتي در مورد تعداد، سرعت، نوع CPU نداشته باشيم.
روشهاي حل شرايط مسابقه: 1) غير فعال سازي وقفهها. توقف اجراي يك پردازه و شروع اجراي پردازه ديگر (Context switching) 2) متغير قفل كننده (Lock Variable) استفاده از يك متغير دو حالته (False, True) براي بررسي آزاد يا مشغول بودن منبع قبل از ورود به ناحيه بحراني 3) تغيير يافته روش متغير قفل كننده
روش 4: مسئله توليد كننده و مصرف كننده Producer & Consumer 1) دو تا پردازه داريم به نامهاي - (توليد كننده) Producer - (مصرف كننده) Consumer 2) بافر پردازه توليد كننده: ابتدا دادهاي را توليد و در بافر قرار ميدهد. پردازه مصرف كننده: بافر را چك كرده و داده را مصرف ميكند.
الگوريتم: طول بافر N=100 تابع توليد كننده ( ) Producer تابع با جزئيات توليد كاري نداريم ( ) Produce – item تابع توليد براي نشان دادن ( ) Sleep بلوكه كردن پردازه گذاشتن item توليد شده داخل ( ) item – enter تابع از حالت بلوكه درآوردن ( ) wakeup تابع برداشتن بري مصرف item ( ) remove – item مصرف item ( ) Consume – item
# define N 100; Int in; void producer ( ) { while ( ) { produce – item ( ); if (in= = N) sleep( ); enter – item ( ); in + + ; if (in= = 1) wake up (consumer); { }
Void Consumer ( ) { while ( ) { if (in = = 0) sleep ( ); remove - item ( ); in - - ; if (in = = N-1) wakeup (producer); Consume – item ( ); { }
روش 5 Monitor: Monitorها نوع خاصي از ساختمان داده ميباشند داراي متغير و تابع هستند. دو تابع از يك Monitor نميتواند به صورت همزمان اجرا شود. جهت حل شرايط سابقه ميتوان از Monitor ها استفاده كرد. متناظر با هر منبع مشترك يك Monitor تعريف ميكنيم. به تعداد پردازههاي استفاده كننده از منبع مشترك داراي تابع ميباشد. ناحيه بحراني هر پردازه داخل يكي از توابع Monitor
روشهاي ديگر 6- روش پيترسون 7- روش TSL (Test & set lock) 8- روش Semaphore
زمانبدي پردازهها (Process Scheduling) پردازه ها كِي (چه زماني) شروع به اجرا كرده و چه زماني پايان مييابد. (زمان تخصيص CPU به هر پردازه را مشخص نمائيم) روشهاي مختلفي جهت زمانبندي پردازهها وجود دارد. جهت مقايسه روشها به بررسي چند پارامتر نيازمنديم كه عبارتند از:
پارامترها: 1) كارايي CPU (CPU efficiency) يك روش زمانبدي خوب بايد به نحوي باشد كه درصد اشتغال يا كارايي CPU حداكثر مقدار ممكن باشد. 2) زمان پاسخگويي (Response Time) مدت زمان طي شده از لحظه صدور دستور تا شروع به اجرا اين زمان در حد مورد قبولي تعيين شود.
3) ميزان گذردهي يا خروجي (Through put) تعداد پردازههاي اجرا شده در واحد زمان را Through put بايد تا حد ممكن افزايش يابد. 4) زمان كامل شدن (Turnaround Time) مدت زمان طي شده از لحظه ورود پردازه به درون حافظه تا اتمام اجراي آن را زمان كامل شدن ميگويند. متوسط زمان كامل شدن براي پردازهها بايد تا حد ممكن كاهش يابد.
5) منصفانه بودن (fariness) پردازهها تا حد ممكن زمان نسبتاً يكساني از CPU را در اختيار داشته باشد
روشهاي مختلف زمانبدي 1) (First in First out) Fifo (First in First out) Fifo هر پردازهاي زودتروارد حافظه شود زودتر سرويسدهي خواهد شد. براي پيادهسازي آن از يك صف استفاده ميكنيم اين روش با Single Process فرق دارد.
2) Round Robin پردازههاي آماده اجرا به ترتيب و هر يك به مدت زمان ثابت و معين يك قطعه زماني Time Slice اجرا ميشود. براي پيادهسازي از يك صف حلقوي (ترجيحاً) هر پردازه هنگامي از صف خارج ميشود كه اجراي آن پايان يابد. پردازه بعدي به اندازه يك قطعه زماني اجرا ميشود.
ادامۀ Round Robin تعيين زمان Ts تاثير بسزايي در كارايي اين الگوريتم دارد. در هر بار بار context switching (جابجايي محتويات) لازم است. مستلزم زمان Tes ميباشد. پس افزايش Ts با توجه به رابطۀ زير موجب افزايش كارايي خواهد شد
زمان تأخير بين اجراي متوالي هر پردازه طبق رابطه زير نسبت مستقيم با Ts دارد. پس افزايش اين تأخير در نتيجه طولاني شدن حداكثر زمان پاسخگويي خواهد شد. پس Ts بايد به نحوي تعيين شود كه زمان پاسخگويي در حد مطلوبي بود و كارايي افزايش يابد.
روش 3) Shortest Job First (S.J.F) - پردازههايي كه زمان كمتري براي اجرا نياز داشته باشند زودتر از ساير پردازهها اجرا ميكنيم. - هدف اين روش كاهش متوسط زمان كامل شدن ميباشد.
مقايسه دو روش (FIFO) and (S.J.F) دقيقه (براي اجرا) ´12Tt (Fifo) 10A پردازه دقيقه (براي اجرا) ´qTt (S.J.F) 4 B پردازه
روش 4: Shortest Remained Time (SRT) شباهت: پردازههاي كوتاهتر را زودتر از ساير پردازهها اجرا ميكند تفاوت: در حين اجراي پردازه، پردازۀ ديگري با زمان باقي مانده اجراي كوتاهتر وارد حافظه شود: - اجراي پردازه فعلي متوقف شده و پردازه جديد الورود شروع به اجرا خواهد شد.
مقايسه روش (SJF) and (SRT) (مدت اجرا) (ورود) پردازه (دقيقه) 10 0 A A پردازه (دقيقه) 6 0 B B پردازه (دقيقه) 3 2 C C پردازه
روش 5: روش زمانبدي براساس اولويت (Priority Scheduling) در اين روش هر پردازه داراي يك اولويت اجرايي ميباشد. پردازهاي كه بالاتريناولويت را دارد زودتراز ساير پردازهها شروع به اجرا خواهد كرد. تعيين اولويت پردازه به دو روش Dynamic , Static ميباشد.
در روش Static: اولويت پردازه در ابتدا مشخص شده و تا پايان اجرا ثابت ميماند. در روش Dynamic: اولويت اوليه پردازه در حين اجرا و براساس شرايط موجود ميتواند در راستاي بهبود كارايي سيستم تغيير كند. مانند: I/O Band CPU Band
1 پردازههاي IO Band بايد زودتر از پردازههاي CPU Band سرويسدهي شوند. اگر نوع پردازه بيش از ورود به حافظه مشخص نباشد: ابتدا آنها را با اولويت اوليه يكسان وارد حافظه ميكنيم. و هر يك را به مدت زمان ثابت معين t اجرا ميكنيم. درصدي از اين زمان را كه هر پردازه استفاده ميكند با پارامتر K اندازه ميگيريم مقدار پارامتر K براي پردازههاي I/O Band كمتر از پردازههاي CPU Band خواهد بود حال اگر اولويت پردازهها را در مربوطه ضرب كنيم اولويت پردازههاي I/O Band افزايش يافته و نتيجه مطلوب حاصل ميشود. k
زمانبدي با اولويت Dynamic جهت روش مشكل روشهاي SRT , S.J.F ميتوان از روش زمانبدي با اولويت Dynamic استفاده كرد. در روشهاي ذكر شده در بالا پردازههاي كوتاهتر زودتر اجرا ميشوند و در نتيجه پردازههاي طولاني به ندرت فرصت اجرا پيدا ميكنند منجر به غير منصافه شدن الگوريتم ميشود جهت حل اين مشكل از اولويتبندي به صورت Dynamic استفاده ميكنيم.
زمان انتظار =(اولويت) Priority زمان اجرا + زمان انتظار اولويت هر پردازه براساس اجرا و نيز مدت زمان انتظار به صورت زير تعيين ميشود.
روش محاسبه درصد اشتغال CPU: اگر يك پردازه P درصد كارِI/O دارد پس كار P= CPUدرصد -1 دارد 1 كل اجرا P-1CPU P I/O
اگر CPU ، P درصد مواقع بيكار باشد يعني احتمال بيكار بودن CPU، P درصد در نظر ميگيريم پس احتمال درصد اشتغال CPU، P-1 ميباشد
با توجه به پارامترهاي اسلايد 47: احتمال P idle = (بيكاري CPU) در حالتي كه داراي (1) پردازه در حافظه باشد Busy = 1-P (اشتغال CPU) وقتي (2) تا پردازه P2idle=: در حافظه باشد Busy = 1-P2 وقتي (n) پردازه Pnidle= : در حافظه باشد Busy = 1-Pn
nبيشتر Pnكمتر خواهد شد هنگامي كه CPU بيكار است. يعني پردازهها در حال انجام كار I/O ميباشند. nرا درجه پردازگي (Degree Multiprocessing) ميگويند.
با فرض: طول حافظه: 1 مگا بايت سايز سيستم عامل: 200k كيلوبايت سايز هر پردازه: 200k درصد اشتغال CPU با مقدار P=80% برابر است با 59%.