|
|
|
|
|
به نام خدا سلام به همه ی شما بازدید کنندگان !!!!! SVR4 مشترکا توسط موءسسات AT&TوsunMicrosystem توسعه یافت . این سیستم عامل ویژگیهای سیستم های عاملMicrosoft Xenix system .43BSD Sunos .SVR3را ترکیب کرده است SVR4 تقریبا باز نویسی کامل هسته System v می باشد و پیاده سازی تمیز ولی پیچیدهای را به وجود آورده است . از جمله ویژگیهای جدید آن حمایت از پردازش بلا درنگ کلاسهای زمانبندی فرایند تخصیص پویای ساختمان داده ها ، مدیریت حافظه مجازی ، سیستم پرونده مجازی و هسته با امکان قبضه کردن می باشد . SVR4 تلاشهای طراحان مراکز علمی و تجاری را به هم نزدیک کرده و برای این ایجاد شده تا سکوی یکنواختی را برای توسعه تجاریUNIX فراهم آورد SVR4 در این هدف موفق بوده است و شاید مهمترین نوعUnix موجود باشد . این سیستم عامل اکثر ویژگیهای مهم سیستمهای قبلی UNIX را در بر داشته است و این کار را به صورت مجتمع و از نظر اقتصادی قابل دوام انجام می دهد .SVR4 روی طیف وسیعی از ماشینهاذ ، از ریز پردازنده ها ی 32 بیتی تا ابر کامپیوترها اجرا می شود و یکی از مهمترین سیستمهای عاملی است که تا به حال ایجاد شده است . در این کتاب بسیاری از مثالهای UNIX ازSVR4می باشد . مدیریت فر ایند درUNIX SVR4 سیستم عامل UNIX SYSTEM V از امکان فر ایند به صورت ساده ولی قوی و قابل رویت برای کاربر استفاده می کند UNIX از مدل شکل 3-14ب استفاده می کند که در ان یخش اعضم سیستم عامل در داخل محیط فرایند کاربر اجرا می شود بنا بر این دو حالت کاربر و هسته لازم است UNIX از دو گروه فرایندهای سیستمی در حالت هسته اجرا می شوند و کد سیستم عامل را برای انجام اموری مثل تخصیص حافظه و مبادله فرایند اجرا می کند . فرایندهای کاربری برای اجرای برنامه های کاربر و برنامه های سودمند در حالت کاربر و برنامه های سودمند در حالت کاربر و برای اجرای دستور العملهای متعلق به هسته در حالت هسته است . فرایند کاربر با صدور یک فراخوانی سیستم ، با ایجاد یک استثنا ( خرابی ) و یا بروز وقفه وارد حالت هسته می شود . حالتهای فرایند سیستم عاملUNIX نه حالت را برای فرایند می شناسد این نه حالت در جدول 3-9 و یک نمودار تغییر حالت در شکل 3-16 ( بر اساس شکلی در (BACH86) نشان داده شده است . این شکل مشابه شکل 3-7 با دو حالت خفته ، متناظر دو حالت مسدود است می توان تفاوتها را به صورت زیر خلاصه کرد : UNIX از دو حالت اجرا استفاده می کند : یکی برای اجرای فرایند در حالت کاربر و دیگری برای اجرای فرایند در حالت هسته . حالات اماده اجرا و در حافظه و قبضه شده متمایزند . این دو در اصل همان طور که خط نقطه چین در شکل نشان می دهد ) یک حالت هستند و تمایز برای تاکید ب ر چگونگی ورود به حالت قبضه شده است . هنگامی که نتیجه یک فراخوانی سرپرست ، وقفه ساعت یا وقفه ورودی / خروجی فرایندی در حالت هسته در حال اجراست . زمانی می رسد که هسته کار خود را انجام داده و آماده بر گرداندن کنترل به برنامه کابر است . در این نقطه ممکن است هسته تصمیم بگیرد به خاطر فرایندی که آماده و با اولویت بیشتری است فرایند جاری را قبضه کند . در این حالت فرایند جار ی به حالت قبضه شده می رود با این وجود به منظور وقت پردازنده . فرایندهایی که در حالت قبضه شده هستند و همچنین فرایندهایی که در حالت آماده اجرا و در حافظه هستند . یک صف را تشکیل می دهند . قبضه فقط موقعی میتوان اتفاق بیافتد که فرایندی در شرف رفتن از حالت هسته به حالت کار بر باشد فرایندی مکه در حالت هسته در حال اجراست . ممکن نیست قبضه شود این نکته سیستم عاملUNIX را برای پردازش بلا درنگ نامناسب می کند. دو فرایند درUNIX یکتا هستند . فرایند صفر فرایند ویژه ای است که در موقع راه انداز یسیستم ، بار شده است در واقع به صورت یک ساختمان داده قبلا تعریف شده و در زمان راهد اندازی سیستمئ بار شده است . فر ایند صفر همان فرایند مبادله کننده می باشد . به علاوه فرایند صفر فرایند یک را که به آن فرایند محاوره ای جدید با سیستم ارتباط بر قرار می کند این فرایند یک است که برای او یک فرایند کار بری ایجاد می کند . متعاقبا برنامه کاربر می تواند درخت وار فرایندهای مختلفی را ایجاد می کند . متعاقبا برنامه کابر می تولند درخت وازر فرایندهای مختلفی را ایجاد بنماید . بنابر این هر کاربرد خاص می تواند شامل فرایندهای متعددی باشد . شرح فرایند در UNIXهر فرایند مجموعه پیچیده ای از ساختمان داده هایی است که تمام اطلاعات لازم برای مدیریت و توزیع وقت پردازنده به فرایند ها را در اختیار سیستم عامل قرار می دهد . جدول 3-10 عناصر تصویر فرایند را که در سه بخش متن سطح کاربر متن ثابت و متن سطح سیستم سازماندهی شده خلاصه کرده است . متن سطح کاربر حاوی عناصر پایه ای برنامه کاربر است و می تواند مستقیما از پرونده ترجمه شده مقصد تولید گردد . برنامه کابر به نواحی به نوااحی داده ها و متن برنامه تفکیک شده است . ناحیه متن برنامه فقط خواندنی و برای نگهداری دستورالعملهای برنامه می باشد . هنگامی که فرایندی در حال اجحراست . پردازنده از ناحیه پشته کاربر برای فراخوانیها و بازگشتهای رویه و برای انتقال پارامتر استفاده می کند . ناحیه حافظه مشترک داده ای است که با فرایند های دیگر مشترک است . فقط یک نسخه فیزیکی از ناحیه حافظه مشترک وجود دارد . ولی با استفاده از حافظه مجازی این طور به نظر می رسد که این ناحیه مورد اشتراک از حافظه در فضای آدرسها ی هر یک از فرایندهای شریک وجود دارد . وقتی فرایندی در حال اجرانیست اطلاعات وضعیت پردازنده در ناحیه متن ثابت ذخیره شده است . متن سطح سیستم حاوی بقیه اطلاعات مورد نیاز سیستم عامل برای مدیریت فرایند و شامل یک بخش ایستا و یک بخش پویا است . اندازه بخش پویا در طول حیات فرایند تغییر می کند . یکی از عناصر بخش ایستا مدخل جدول فرایند است . این در و.اقع بخشی از جدول فرایند است که برای هر فرایند یک مدخل داشته و توسط سیستم عامل نگهداری می شود مدخل جدول فرایند اطلاعات کنترل فرایند که همواره در دسترس هسته است در بر دارد . بنا بر این در یک سیستم حافظه مجازی تمام مدخلهای جدول فرایند را فهرست کرده است ناحیه کاربر یا ناحیه uحاوی اطلاعات اضافی گکنترل فرایند است . اطلاعاتی کهد فقط هنگامی که هسته در متن این فرایند در حال اجرااست به آنها احتیاج دارد . از این اطلاعات در موقع صفحه بندی فرایندها به / از حافظه نیز استفاده می شود (جدول 3-12) تمایز بین مدخل جدول فرایند و ناحیهu منعکس کننده این حقیقت است که هسته UNIXهمواره در متن فرایند اجرا می شود اغلب اوقات هسته با همان فرایند سرو کا ردارد ولی بعضی مواقع مثل هنگامی که هسته عمل زمانبندی برای توزیع وقت پردازنده به فرایند دیگر را انجام می دهد نیاز به دسترسی به اطلاعات فرایندهای دیگر را دارد . سومین بخش ایستای متن سطح سیستم جدول ناحیه هر فرایند می باشد که سیستم مدیریت حافظه از آن استفاده می کند . پشته هسته بخش پویای متن سطح سیستم است . هنگامی که فرایند در حالت هسته اجرا می شود . این پشته مورد استفاده قرار گرفتهد و حاوی اطلاعاتی است که با فراخوانیهای رویه وبروز وقفه باید ذخیره و بازیابی گردد . کنترل فرایند ایجاد فرایند درUNIX به وسیله fork که یک فراخوان هسته سیستم است صورت می گیرد وقتی فرایندی درخواست forkمیکند سیستم عامل اعمال زیر را انجام می دهد BACH86 1. برای فرایند جدید 2. یک شناسه یکتا برای این فرایند فرزند در نظر می گیرد 3. یک کپی از تصویر فرایند پدر (به استثنای حافظه های مشترک ) ایجاد می کند . 4. شمارنده های پرونده هایی که متعلق به پدر بود را افزایش می دهد ( مبنی بر اینکه آن پرونده ها متعلق به یک پرونده دیگر هم هستند ) 5. فرایند فرزند را در حالت اماده اجرا قرار می دهد . 6. شماره شناسنامه فرزند را به فرایند پدر و مقدار صفر را به فرایند فرزند بر می گرداند . تمام این اقدامات در حالت هسته در فرایند پدر صورت می گیرد . وقتی که هسته تمام این اعمال را کامل کند می تواند یکی از اعمال زیر را به عنوان بخشی از رویه توزیع کنده وقت پردازنده انجام می دهد . 1. ماندن در فرایند پدر . در نقطه فراخوانی forkکنترل به حالت کاربر بر می گردد 2. انتقال فرایند به فرایند فرزند. اجرای فرایند فرزند از نقطه مشابه در کد فرایند پدر یعنی پس از بازگشت از فراخوانی forkشروع می شود . 3. انتقال کنترل به فرایند دیگر . هم فرایند پدر و هم فرایند فرزند در حالت آماده اجرا قرار می گیرند . شاید تصویر این روش ایجاد فرایند مشکل باشد به دلیل اینکه هم فرایند پدر و هم فرایند فرزند کد کد یکسانی را اجرا می کنند تفوت این اسن که وقتی بازگشات از forkاتفاق می افتد پارامتر بازگشتی بررسی می شود . اگر مقدار پارامتر بازگشتی صفر باشد . این فرایند فرزند است و می تواند با اجرای انشعابی به برنامه مناسبی از کاربر اجرای آن ادامه یابد . اگر مقدار بازگشتی غیر صفر باشد فرایند پدر است و روند اصلی اجرا می تواند ادامه یابد . 10-4 زمانبندیUNIX SVR4 اگوریتم زمانبندی UNIX SVR4 نتیجه بازسازی کامل الگوریتمهای مورد استفاده در سیستمهای قبلیUNIXاست ( در بخش 9-3 بیان شد). الگوریتم جدید با این هدف طراحی شده است که بالا ترین اولویت را ابتدا به فرایندهای بلا درنگ سپس به فرایندهای حالت هسته و پایینترین اولویت را به فرایند حالت کاربر ( که به آن فرایند های اشتراک زمانی می گویند ) بدهد . دو تغییر عمده که درSVR4 پیاده سازی شده است عبارتند از : 1. اضافه کردن : زمانبندی با قابلیت قبضه کردن و اولویت ایستا و معرفی مجموعه ای از 160 سطح اولویت که در سه طبقه تقسیم شده اند . 2. تعیین نقاط قبضه کردن : نظر به اینکه هسته اصلی قبضه کردنی نیست ، تنها می تواند به گامهای پردازشی شکسته شود ، گامهایی که باید بدون وقفه تا کامل شدن اجرا گردند . در بین پردازش گامها ، محلهای امنی تحت عنوان نقاط قبضه کردن معین شده است . جایی که هسته می تواند با وقفه در پردازش یک فرایند جدید را زمانبندی تماید . محل امن به صورت ناحیهای از کد تعریف می شوند که تمام ساختمان داده های هسته یا به هنگام شده و ثابت است یا توسط یک راهنما قفل شده است . 160 سطح اولویت تعریف شده درSVR4در شکل 10-10نمایش داده شده است . با این تعریف که هر فرایند متعلق به یکی از طبقات اولویت و در داخل آن طبقه یک سطح اولویت به آن نسبت داده شده است طبقه ها به صورت زیر هستند : * بلادرنگ (159تا100) : فرایندهایی که دراین سطوح اولویت هستند قبل از فرایندهای هسته و فرایندهای اشتراک زمانی برای اجرا انتخاب می شوند به علاوه فرایندهای بلادرنگ می توانند از نقاط قبضه کردن استفاده کرد ه و فرایندهای هسته و فرایندهای کاربر را قبضه کنند . * هسته (99تا60) فرایندهایی کهدراین سطوح اولویت هستند قبل از کلیه فرایندها ی اشتراک زمانی برای اجرا انتخاب می شوند اما باید بعد از فرایندهای بلادرنگ باشند . * اشتراک زمانی (59تا0) این فرایندها کمترین اولویت را دارند و برای کاربدهای غیر بلا درنگ کاربران هستند . شکل 11-10 چگونگی پیاده سازی زمانبندی در SVR4 را نشان می دهد برای هر سطح اولویت یک صف توزیع وقت پردازنده وجود دارد ودر انفرایندها به صورت نوبت گردشی اجرا می شوند . برداریبه نام dqactmapحاوی یک بیت برای هر یک از سطوح اولویت است که در صورت خالی نبودن صف مربوط به آن سطح مقدار یک می گیرد . هر گاه فرایندی به دلیل مسدود شدن اتمام برهه زمانی یا قبضه شدن از حالت اجرا خارج گردد توزیع کننده وقت پردازنده ، بردارdqactmap بردار را بررسی کرده و وقت پردازنده را به فرایند آماده ای از با اولویت ترین صف غیر تهی توزیع می کند . بعلاوه در هر یک نقاط قبضه کردن هسته پرچمی بنام kprunrunرا برسی می کند . بر پا بودن این پرچم مبین وجود حد اقل یک فرایند بلا درنگ در حالت اماده است . حال اگر اولویت فرایند جاری از بالا ترین اولویت فرایند بلا درنگ اماده کمتر باشد هسته آنرا قبضه می کند . در طبقه اشتراک زمانی اولویت فرایندها متغیر است . هر بار که فرایندی با تمام برهه زمانی خود را مصرف نماید زمانبند اولویتش را کمتر می کند و هر گاه به خاطر حادثه یا منبعی فرایند مسدود گردد زمانبند به اولویتش اضافه می کند . برهه زمانی تخصیصی به فرایندهای اشتراک زمانی به اولویت آنها بستگی دارد و از 100 میلی ثانیه برای اولویت 0تا10 میلی ثانیه برای اولویت 59 می باشد . اولویت و برهه زمانی فرایندهای بلا درنگ ثابت است . ورودی / خروجی درUNIX SVR4 درUNIX هر واحد دستگاه ورودی / خروجی به پرونده خاصی مربوط شده است . اینها توسط سستم پرونده ها مدیریت می شوند و به همان صورت پرونده های داده هی کاربران در / از آنها نوشته یا خوانده می شود . به این ترتیب واسط یکنواخت و روشنی برای کاربران و فرایندها فراهم می گردد . برای خواندن از یک دستگاه یا نوشتن در ان ، در خواستها به پرونده مخصوص همان دستگاه داده می شود . شکل 11-14 ساختار منطقی امکانات ورودی / خروجی را نمایش می دهد . مدیریت پرونده ها بر روی دستگاههای حافظه ثانوی بر عهده زیر سیستم پرونده است . علاوه بر آن زیر سیستمپرونده به عنوان واسط فرایند به دستگاهها عمل می کند زیرا با دستگاه ها مانند پرونده ها رفتار می شود . درUNIX دو نوع ورودی / خروجی با میانگیر و بدون میانگیر وجو.د دارد . ورودی / خروجی با میانگیر از میانگیرهای سیستم می گذرد در حالی که در ورودی / خروجی فرایند به طور مستقیم انجام می شود برای ورودی / خروجی با میانگیر(معمولا با امکاناتDMA است )اتنتقال بین مولفه ورودی / خروجی و ناحیه ورودی / خروجی فرایند به طور مستقیم انجام می شود . برای ورودی / خروجی با میانگیر دو نوع میانگیر به کار رفته است : حافظه های پنهان برای میانگیر سیستم و صفهای نویسه ها . حافظه پنهان میانگیر حافظه پنهان میانگیر درDMA در واقع یک حافظه پنهان دیسک است . عملیات ورودی / خروجی با دیسک ، از طریق حافظه پنهان میانگیر انجام می شود . انتقال داده ها بین حافظه پنهان میانگیر و فضای فرایند کاربر همواره با به کار گیریDMA رخ می دهد . از آنجا که هم حافظه پنهان میانگیر و هم فضای فرایند در حافظه اصلی هستند در این مورد از امکانات DMA برای کپی کردن حافظه به حافظه استفاده می گردد . این عمل از چرخه های پردازنده استفاده نمی کند ولی چرخه های گذر گاه را به کار می گیرد . برای مدیریت حافظهپنهان میانگیر سه لیست نگهداری می شود : · لیست آزاد : لیست تمام شکافهای حافظه پنهان ( در unixهر شکاف به عنوان یک میانگیر تلقی می شود و هر شکاف هر قطاع دیسک را در اختیار دارد ) که برای تخصیص موجودند . · * لیست دستگاه : لیست تمام میانگیرهایی که در حال حاضر به هر دیسک مربوط هستند . · * صف ورودی / خروجی گرداننده : لیست میانگیرهایی که برای ورودی / خروجی روی یک دستگاه ورودی / خروجی خاص منتظر یا در حال استفتده اند . کلیه میانگیرها باید در لیست آزاد یا در لیست صف گرداننده ورودی / خروجی باشند . میانگیر وابسته بهیک دستگاه حتی اگر در لیست آزاد قرار داده شود ، وابسته به آن دستگاه باقی می ماند تا اینکه واقعا دوباره به کار گرفته شود و به دستگاه دیگری مربوط گردد.این لیستها نه بصورت لیستهای فیزیکی مجزا بلکه بصورت اشاره گرهای وابسته به هر میانگیر نگهداری می شوند . هنگامی که به یک شماره بلوک فیزیکی بر روی دستگاه خاصی مراجعه شود ابتدا سیستم عامل وجود این بلوک در حافظه پنهان میانگیر را بر رسی می کند . برای حد اقل کردن زمان جستجو لیست دستگاه به صورت جدول در هم سازماندهی شده است . برای این کار روشی شبیه روش سر ریز زنجیره ای که در پیوست 8 الف بحث شده به کار برده می شود ( شکل 8 – 26 ب) شکل 11-15 سازمان مومی حافظه پنهان میانگیر را نمایش می دهد . یک جدول در هم با طول ثابت و حاوی اشاره گرهای حافظه پنهان میانگیر وجود دارد . هر مراجعه به یک ( شماره دستگاه ، شماره بلوک ) به مدخل خاصی از جدول در هم نگاشته می شود اشاره گر موجود در ان مدخل به اولین میانگیر در زنجیره اشاره می نماید اشاره گر درهم وابسته به هر میانگیر به میانگیر بعدی زنجیره برای آن مدخل جدول در هم اشاره می کند بنا بر این برای کلیه مراجعاتی ( شماره دستگاه شماره بلوک ) که به همان مدخل جدول درهم نگاشته می شوند . اگر بلوک مربوط در حافظه پنهان میانگیر وجو د داشته باشد آن میانگیر میانگیر برای آن مدخل جدول در در زنجیره قرار دارد پش طول جستجوی حافظه پنهان میانگیر با ضریب N ) کهN طول جدول در هم است ) کاهش می یابد . برای جایگزینی بلوک الگوریتم کمترین استفاده در گذشته نزدیک به کار برده می شود : پس از اینکه میلانگیری به بلوکی از دیسک تخصیص یافت تا زمانی که میانگیرهای دیگر در گذشته نزدیکتر استفاده شده باشند . نمی تواند برای سایر بلوکها به کار گرفته می شوند . لیست ازاد این ترتیب کمترین اشتفاده در گذشته نزدیک را نگه می دارد . صف نویسه ها دستگاههای بلوکی مانند دیسک ونوار می توانند به طور موثری از حافظه پنهان میانگیری استفاده کنند برای دستگاههای ورودی نویسه ای مانند پایانه ها و چاپگرها صورت دیگری از میانگیر مناسب است صف نویسه ها یا توسط دستگاه ورودی / خروجی نوشته و بوسیله فرایند خوانده می شود یا توسط فرایند نوشته و بوسیله دستگاه خوانده می شود. در هر صورت مدل تولید کننده که در فصل پنجم معرفی گردید به کار می رود پس صف نویسه ها فقط یکبار می توانند خوانده شوند یعنی با خواندن یک نویسه عملا آن نویسه نابود می شود این بر خلاف حافظه پنهان میانگیر است که می تواند چندین بار خوانده می شوند در نتیجه از مدل خوانندگان / نویسندگان پیروی می کند . ورودی / خروجی بدون میانگیر ورودی / خروجی بدون میانگیر همان DMA بین دستگاه و فضای فرایند است و همواره سریعترین روش انجام ورودی / خروجی توسط فرایند می باشد فرایندی که در حال اجرای ورودی / خروجی بدون میانگیر است در داخل حافظه قفل شده و نمی تواند به خارج مبادله شود این مورد بواسطه گرفتار کردن بخشی از حافظه اصلی موقعیتهای مبادله را کاهش می دهد ودر نتیجه کارایی کلی سیستم را کم می کند . دستگاه ورودی / خروجی نیز دز طول زمان انتقال متصل به فرایند است و دتر دسترس دیگر فرایندها نخواهد بود . دستگاههای UNIX UNIX پنج نوع دستگاه را می شناسد : · *دیسکها · * نوارها · * پایانه ها · * خطوط ارتباطی · * چاپگرها جدول 11-5 انواع وذودی / خروجی مناسب برای هر دستگاه را نشان می دهد گرداننده های دیسک مصرف بالایی درUNIX دارند بلوکی هستند و بالقوه توان عملیاتی بالایی ارائه می کنند ورودی / خروجی برای این دستگاهها بدون میانگیر یا از طریق حافظه پنهان میانگیر است . گرداننده های نوار به لحاظ عملکرد به گرداننده های دیسک شباهت دارد و از طرحهای ورودی / خروجی مشابه استفاده می کنند . از انجا که پایانه ها در گیر تبادل نسبتا کند نویسه ها هستند . نوعا از صنف نویسه استفاده می کنند همچنین خطوط ارتباطی نیز نیازمند پردازش ردیفی بایتهای داده ها برای ورودی / خروجی هستند و مناسب ترین را ه اداره انها صفهای نویسه ها هستند . نهایتا نوع ورودی / خروجی برای چاپگرها عموما به سرعت آن بستگی دارد . چاپگرهاذ ی کم سرعت معمولاذ از صف نویسه ها استفاده می کند در حالی که ممکن است چاپگر سریع ورودی / خروجی بدون میانگیر را به کار بندد . حافظه پنهان میانگیر هم می تواند برای چاپگر سریع به کا رود . اما از انجا که داده هی ارائه شده به چاپگر هر گز دو باره به کار نمی اید سر بار حافظه پنهان میانگیر زائد است . |
||
|
+
نوشته شده در دوشنبه بیست و ششم فروردین 1387ساعت 4:14 بعد از ظهر توسط مسعود لپه چی
|
|
||