whatsapp call admin

مقاله در مورد مفاهیم سیستم عامل به همراه ویندوز NT

word قابل ویرایش
64 صفحه
12700 تومان
127,000 ریال – خرید و دانلود

مفاهیم سیستم عامل به همراه ویندوز NT

سیستم عامل چیست؟
سیستم عامل قسمت مهم هر سیستم کامپیوتری است یک سیستم کامپیوتری بصورت کلان می تواند به چهار جزء تقسیم شود: سخت افزار، سیستم عامل،‌ برنامه های کاربردی و کاربرها.
سخت افزار که شامل واحد پردازش مرکزی (CPU)، حافظه، دستگاه های ورودی و خروجی (I/O) می باشد. منابع اصلی محاسبات را تشکیل می دهد. برنامه های کاربردی مانند کمپایلرها، سیستم های بانک اطلاعاتی، بازی ها، و برنامه های تجاری روش هایی را که این منابع برای حل مسائل محاسباتی کاربران بکار می برند تعریف می کنند.

ممکن است کاربران مختلفی (افراد، ماشین ها، کامپیوترهای دیگر) در جهت حل مسائل مختلفی کوشش کنند. همچنین، ممکن است برنامه های کاربردی مختلفی وجود داشته باشد. سیستم عامل استفاده از سخت افزار را بین کاربران مختلف برای برنامه های کاربردی کنترل و هماهنگ می کند.
سیستم عامل مانند یک حکومت است. اجزاء یک سیستم کامپیوتری شامل سخت افزار، نرم افزار و داده های آن می باشد. سیستم عامل امکانات برای استفاده مناسب این منابع را در عملیات سیستم کامپیوتری فراهم می کند. مانند یک حکومت، سیستم عامل به خودی خودکار مفیدی انجام نمی دهد. ولی بطور ساده محیطی فراهم می کند که در آن برنامه ها بتوانند کار مفید انجام دهند.

می توانیم به سیستم عامل بعنوان تخصیص دهنده منابع نگاه کنیم. یک سیستم کامپیوتری منابع زیادی دارد (سخت افزار و نرم افزار) که ممکن است برای یک مسئله لازم باشد: مانند زمان CPU، فضای حافظه، فضای ذخیره فایل دستگاه های I/O و غیره. سیستم عامل مانند مدیران منابع عمل می کند و هنگام لزوم آن ها را به برنامه های مشخص و کاربران تخصیص می دهد. بعلت آنکه ممکن است تقاضای زیادی که احتمال متناقض بودنشان برای منابع وجود داشته باشد بشود. سیستم عامل باید تصمیم بگیرد. منابع را به کدام تقاضا تخصیص دهد تا سیستم کامپیوتر موثر و

عادلانه عمل کند. یک نظر تفاوت دیگر از سیستم عامل روی لزوم کنترل دستگاه ها و برنامه های متعدد تمرکز می کند. هر سیستم عامل یک برنامه کنترل کننده می باشد. برنامه کنترل اجرای برنامه های کاربر را نظارت می کند تا از اشتباه ها و استفاده نادرست کامپیوتر جلوگیری کند. مخصوصاً نسبت به عملیات دستگاه های I/O و کنترل آنها دخالت دارد.
گرچه کلا یک تعریف کامل و مناسب برای سیستم عامل وجود ندارد، سیستم عامل ها

وجود دارند زیرا آنها روش منطقی حل مسائل برای ایجاد سیستم کامپیوتری مفید هستند. هدف اصلی سیستم های کامپیوتری اجرای برنامه های کاربر و راحت تر کردن حل مسائل او می باشد. در راستای هدف،‌سخت افزار کامپیوتر ساخته شده است. بعلت آنکه استفاه مستقیم از سخت افزار کار آسانی نیست. برنامه های کاربر بوجود آمده است. این برنامه های متعدد به اعمال همگانی مشخص مانند کنترل دستگاه های I/O نیاز دارند. کارهای عمومی کنترل و تخصیص منابع در یک نرم افزار جمع شده اند که سیستم عامل می باشد.

ویندوز NT
سیستم عامل ویندوز NT مایکروسافت، سیستم عاملی ۳۲ بیتی برای مایکروپروسسورهای جدید می باشد. NT قابل حمل روی انواع مختلف معماری های پردازنده ها می باشد. یک یا چند نسخه NT روی اینتل ۳۸۶ یا بالاتر روی POWER PC, DEC ALPHA, MIPS R4000 پیاده سازی شده است. هدف های کلیدی این سیستم عبارتند از: قابلیت حمل و امنیت. واسطه قابل حمل به نام POSIX با همگامی با IEEE Std 1003 حمایت چند پردازنده ای قابلیت گسترش حمایت بین المللی و سازگاری با برنامه های کاربردی MS-DOS و NT.MS-WINDOWS معماری میکروهسته ای مانند کامپیوترهای مکینتاش می باشد، بطوری که می توان یک قسمت سیستم عامل را بهینه سازی نمود بدون آنکه قسمت دیگر را شدیدا تحت تاثیر قرار دهد. NT (نسخه ۴) یک سیستم چند کاربره نیست.

دو نسخه NT، یکی NT ایستگاه کاری و دیگری NT سرویس دهنده است. آنها از یک هسته و یک کد سیستم عامل استفاده می کنند، ‌اما NT سرویس دهنده برای کاربردهای سرویس دهنده و مشتری پیکربندی شده است و می تواند به عنوان سرویس دهنده روی NetWARE و LANها استفاده شود. نسخه چهار سرویس دهنده NT از تعداد مجوزهای فروخته شده UNIX بیشتر بوده است.

تاریخچه:
در اواسط دهه ۱۹۸۰ شرکت مایکروسافت و آی – بی – ام همکاری مشترک برای سیستم عامل OS/2 را شروع کردند که به زبان اسمبلی برای پردازنده اینتل ۲۸۶ نوشته بود. در ۱۹۸۸ شرکت

مایکروسافت تصمیم به شروع یک تکنولوژی جدید به نام NT نمود که خاصیت قابل حمل بودن را داشته باشد و در عین حال هم سیستم عامل OS/2 و واسطه های POSIX API کاربردی قابل حمل را حمایت کند. در اکتبر ۱۹۸۸، آقای دیوکالتر، معمار سیستم عامل VAX/CMS شرکت دیجیتال استخدام شد و به او ماموریت ایجاد سیستم عامل جدید داده شد. اوایل فرض بر این بود که NT از OS/2 API به عنوان محیط اولیه استفاده کند،‌ لیکن در خلال تولید، سیستم NT تغییر کرد تا از امکانات ۳۲ بیتی ویندوز API یا API WIN32 استفاده کند که منعکس کننده محبوبیت ویندوز ۱ . ۳ باشد. نسخه های NT ویندوز ۱ .۳ و ویندوز NT 1 .3 سرور پیشرفته بود (در آن زمان ویندوز ۱۶ بیتی نسخه ۱ . ۳ بود) در نسخه NT4.0 واسطه کاربرد ویندوز ۹۵ را اختیار کرد و اینترنت وب سرور و نرم افزار بروزر را نیز در سیستم ادغام کرد. بعلاوه بعضی از روال های ارتباطی و کدهای گرافیکی به هسته مرکزی KERNEL برای بهبود سیستم انتقال داده شد با توجه به اینکه امکان قابلیت اطمینان سیستم کاهش خواهد یافت.

اصول طراحی
هدف هایی که مایکروسافت برای NT اعلام کرد در برگیرنده قابلیت گسترش، قابلیت حمل، قابلیت اطمینان، سازگاری، کارآیی و پشتیبانی بین المللی بود.
قابلیت گسترش خاصیت مهمی برای هر سیستم عاملی است که خواهان همگانی با پیشرفت های تکنولوژی کامپیوتر می باشد بطوری که تغییرات در طول زمان امکان پذیر باشد، NT با استفاد

ه از خاصیت لایه ای تکمیل شده است. مدیریت عالی اجرایی NT که در هسته اجرا می شود حالت حفاظت شده دارد که سرویس های اصلی سیستم را دربرمی گیرد. در بالای مدیریت اجرایی،‌چندین زیر سیستم سرویس دهنده در حالت کاربر کار می کند در بین آنها زیر سیستم های محیطی هستند که سیستم عامل های مختلفی را مدل سازی می کنند بنابراین برنامه های نوشته شده برای MS-DOS ، ویندوز مایکروسافت و پوزیکس همه می توانند تحت NT در محیط

خودشان کار کنند. قسمت ۴ . ۲۳ را برای اطلاع بیشتر روی سیستم های محیطی مطالعه کنید. به علت ساختار قطعه ای زیر سیستم های بیشتری را می توان بدون تاثیر گذاشتن روی مدیریت عالی اجرایی به آن اضافه نمود. علاوه بر این از گرداننده های قابل بارگذاری در سیستم i/o استفاده می کننده به طوری که سیستم های فایل جدید و انواع دستگاه های I/O را می توان بدون گذاشتن روی مدیریت عالی اجرایی به آن اضافه نمود. علاوه بر این از گرداننده های قابل بارگذاری در سیستم I/O استفاده می کنند به طوری که سیستم های فایل جدید و انواع دستگاه های I/O را می توان اضافه نمود در حالی که سیستم در حال اجرا می باشد. NT یک مدل شبیه سیستم عامل مکینتاش و پردازش توزیع شده را از طریق فراخوانی راه دور (RPC) به طریقی که در مبانی سیستم های باز تعریف شده است حمایت می کند.
یک سیستم قابل حمل می باشد اگر بتوان آن را از یک معماری سخت افزاری به معماری دیگر با تغییرات جزئی انتقال داد. NT بصورت قابل حمل طراحی شده است. همانطوری که در مورد UNIX صادق است،‌قسمت عمده سیستم به زبان C و C++ نوشته شده است. تمام کدهای وابسته به پردازشگر در کتابخانه پیوند دینامیک DLL به نام لایه مجزای سخت افزار HAL قرار دارد. یک

DLL فایلی است که در فضای آدرس پردازش قرار می گیرد به طوری که هر کاری در DLL مانند آن است که قسمتی از پردازش می باشد. لایه های بالایی NT وابسته به HAL می باشد و نه به سخت افزار و این به NT کمک می کند که قابل حمل باشد. HAL مستقیما سخت افزار را بکا

ر می گیرد. بدین ترتیب مابقی NT را از تفاوت های سخت افزاری که در سکوهای مختلفی اجرا می شود جدا می سازد. قابلیت اطمینان به معنای قدرت مقابله با شرایط خطا می باشد که دربرگیرنده قدرت سیستم برای حفاظت خود و استفاده کنندگانش در مقابل نرم افزارهای مخرب یا کینه توز می باشد. NT برای مقابله با خرابی ها و حمله ها با استفاده از سخت افزار برای حافظه مجازی و مکانیزم های NT نرم افزاری برای حفاظت منابع سیستم عامل طراحی شده است. همچنین NT با یک سیستم قابل به نام سیستم می کند. NT نسخه ۳۰۱۵ دارای درجه امنیت C-2 از آمریکا می باشد که مبین سطح متوسط حفاظت در مقابل نرم افزارهای مخرب و حمله های

 

کینه توزانه می باشد.
NT دارای سازگاری با کاربردهایی که استاندارد IEEE 1003.1 POSIX را رعایت می کند می باشد. بنابراین این برنامه ها می توانند کامپایل شوند و روی NT بدون تغییر کد اجرا گردند.
علاوه بر این NT برنامه های اجرایی اغلب برنامه هایی که برای X- 86 روی MS-DOS ویندوز ۱۶ بیتی و OS/2 و LAN MANAGER ویندوز ۳۲ بیتی کمپایل شده اند را می تواند اجرا کند. این کار را توسط دو مکانیزم انجام می دهد. اول نسخه های NT برای پردازنده های غیر INTEL دستورات

X-86‌ را بصورت نرم افزاری پیاده سازی می کند. دوم درخواست های سیستمی برای MS-DOS ویندوز ۳۲ بیتی و دیگران را به وسیله زیر سیستم های محیطی که قبلا اشاره شد انجام می دهد. این زیر سیستم های محیطی انواع مختلف سیستم های فایل را حمایت می کنند از جمله سیستم فایل FAT در MS-DOS و سیستم عامل OS HPFS سیستم فایل ISO 9660 و NTFS گرچه سازگاری در سطح باینری کامل نیست. مثلا در برنامه ها می توانند مستقیما به درگاه های سخت افزاری دستیابی پیدا کنند. برای امنیت و قابل اطمینان بودن NT از این کار جلوگیری می کند.
NT برای بازدهی خوب طراحی شده است. زیر سیستم هائی که NT را شامل می شوند و می توانند با یکدیگر به طور موثر از طریق یک روال درخواست محلی ارتباط برقرار کنند که دارای بازدهی ارسال پیغام سریع می باشد. به غیر از هسته مرکزی بندها در زیر سیستم های NT می توانند توسط بندهای با الویت بالاتر تخلیه شوند. بنابراین سیستم می تواند در برابر واقعه های خارجی عکس العمل سریع داشته باشد. علاوه بر این NT برای چند پردازنده متقارن طراحی شده است. در کامپیوتر چند پردازنده ای چندین بند همزمان می توانند در حال اجرا باشند. در مقیاس حاضر NT در مقایسه با UNIX محدود است. تا سال ۱۹۷۷ NT تا هشت CPU را پشتیبانی می کرد، در حالی که سولاریس تا ۶۴ پردازنده را حمایت می کرد.
NT همچنین برای استفاده بین المللی طراحی شده است. موقعیت های جغرافیایی مختلف را از طریق پشتیبانی زبان ملی NLS API مهیا می کند. API روال های مخصوص برای فرم های تاریخ،‌زمان و پول طبق آداب ملیت ها ارائه می دهد. مقایسه های رشته ای برای سری گروه های مختلف دسته های حروف نیز وجود دارد. UNICODE سری حروف اصلی NT می باشد، گرچه NT سری حروف ASCII را با تبدیل آنها به UNICODE قبل از بکارگیری آنها حمایت می کند (تبدیل ۸ بیت به ۱۶ بیت)

 

اجزاء سیستم
معماری NT طرح لایه ای است که شامل اجزاء سیستم می باشد. شکل ۱ .۲۳ معماری NT نسخه ۴ را نشان می دهد. مهمترین لایه ها عبارتند از لایه مجرد سخت افزار، هسته و مدیریت عالی که در حالت حفاظت شده اجرا می شوند و تعداد زیادی زیر سیستم که در حالت کاربر اجرا می شوند.
زیر سیستم ها دو گروه هستند. زیر سیستم های محیطی که سیستم عامل های مختلف را

شبیه سازی می کنند و زیرسیستم های حفاظتی که فراهم کننده اعمال امنیتی هستند. یکی از مزایای عمده این نوع معماری آن است که ارتباط بین اجزاء را می توان ساده نگهداشت. باقیمانده فصل این لایه و زیر سیستم های را شرح دهد.

۱ .۳ . ۲۳ لایه مجرد سخت افزار HARDWARE ABSTRACTION LAYER
HAL یا لایه مجرد سخت افزار لایه نرم افزاری است که اختلافات سخت افزاری را از لایه های بالاتر سیستم عامل پنهان می کند تا NT را قابل حمل نماید. HAL یک واسطه ماشین مجازی صادر می کند که مورد استفاده هسته،‌مدیریت عالی و گردانندگان دستگاه ها قرار می گیرد. مزیت این روش آن است که فقط یک نسخه از هر گرداننده دستگاه لازم است،‌این نسخه می تواند روی تمامی سکوهای سخت افزاریی بدون انتقال کد گرداننده اجرا گردد. HAL همچنین چند پردازنده ای متقارن را پشتیبانی می کند. به علت ملاحظات کارآیی، گردانندگان I/O (و گردانندگان گرافیکی در NT4.0) به طور مستقیم به دستگاه ها دسترسی دارند.

۲٫ ۳٫ ۲۳ هسته KERNEL
هسته NT تعبیه کننده زیربنا برای مدیریت عالی وزیر سیستم ها می باشد. هسته هیچگاه از حافظه روی دیسک خارج کپی نمی شود و اجرای آن هیچگاه تخلیه نمی شود و چهار مسئولیت به عهده دارد: زمان بندی بندها،‌ انجام وقفه ها و حالت های استثنا، همزمانی سطح پایین پردازنده و بازسازی پس از قطع برق.
هسته به صورت شیئی گرا طراحی شده است. نوع شیئی در NT در یک نوع داده تعریف شده سیستم است که دارای تعدادی خواص است (مقادیر داده) و تعدادی روش (مثلا وظایف یا عملیات). یک شیئی تنها یک مورد از یک نوع شیئی بخصوص می باشد. هسته کارش را با استفاده از تعدادی اشیاء هسته که صفات آنها اطلاعات هسته را نگهداری می کنند و روش های آنها فعالیت های هسته را اجرا می کنند انجام می دهد.
هسته دو گروه شیئی بکار می برد. اولین گروه اشیائ اعزام کننده هستند. اینها کنترل کننده اعزام ها و همزمانی ها در سیستم هستند. مثال هایی از این نوع شی ء ها عبارتند از وقعه  گیر ها. شی ء واقعه برای ثبت یک رخداد و هماهنگی آن با یک عمل بکار می رود. متغیر متلون با در نظر گرفتن مسئله مالکیت برای حالت حفاظت شده (حالت هسته) و حالت کاربر استفاده می شود. شی ء تواما مستثنی که فقط در حالت هسته موجود است برای منابع تواما مستثنی جهت اجرای بدون بن بست بکار می رود. راهنماها به عنوان کنتور یا دروازه برای کنترل تعداد دفعاتی که بندها به یک منبع دستیابی پیدا می کنند. استفاده می شود. شی بند موجودیتی است که توسط هسته اجرا می شود و در رابطه با یک شی پردازش است. شی های زمان برای نگهداری مدت و علامت دادن برای وقت تمام هنگامی که عملیات طولانی می شود و نیاز به توقف دارد به کار می روند.

سری دوم شیء های هسته شامل اشیاء کنترل می باشد. این اشیاء عبارتند از روال های فراخوانی سیستم غیر همزمان وقفه ها، اعلان وضعیت برق، پردازش و اشیاء مقطعی. روال

فراخوانی غیر همزمان برای وارد شدن به یک بند در حال اجرا و درخواست یک روال می باشد. شیء وقفه برای اتصال یک برنامه سرویس وقفه با منبع وقفه می باشد. شی اطلاع دهنده برق برای فراخوانی یک روال اتوماتیک پس از قطع برق می باشد و شیء وضعیت برق برای چک کردن اینکه برق قطع شده است یا نه. شیء پردازش برای فضای آدرس مجازی و اطلاعات کنترلی لازم برای اجرای یک سری بندهای در ارتباط با یک پردازش می باشد. نهایتاً شی مقطعی برا

ی محاسبه زمان استفاده شده برای یک بلاک کد می باشد.
همانطور که بیشتر سیستم عامل های جدید رفتار می کنند، NT متصور پردازش ها و بندها برای کدهای قابل اجراء می باشد. پردازش یک فضای آدرس مجازی و اطلاعاتی مانند اولویت اولیه و اتصال به یک یا چند پردازنده را دارد. هر پردازش دارای یک یا چند بند می باشد که واحدهای پردازش اعزامی توسط هسته می باشند. هر بند حالت خود را دارد، مانند اولویت، تعلق به پردازنده و اطلاعات حسابداری.
شش حالت بند عبارتند از حاضر، ذخیره، اجرا، انتظار، انتقال و خاتمه یافته. حاضر به معنای در انتظار برای اجرا می باشد. بند حاضر دارای بالاترین الویت به حالت ذخیره انتقال داده می شود که بدین معنی است که این بند بعدی است که باید اجرا شود. در سیستم چند پردازنده ای یک بند هر پردازه به حالت ذخیره نگهداری می شود. یک بند در حال اجرا است هنگامی که در روی یک پردازنده در حال انجام است. بند به اجرا ادامه خواهد داد تا زمانی که توسط یک بند با اولویت بالاتر تخلیه گردد و یا تا هنگامی که خاتمه یابد و یا فرجه زمانی آن تمام شود و یا یک درخواست سیستم مانند تقاضای I/O بنماید. بند در حال انتظار است هنگامی که منتظر یک علامت مانند اتمام I/O باشد یک بند جدید در حال انتقال است هنگامی که منتظر منابع برای اجراست. یک بند در حال اختتام است هنگامی که اجرای آن تمام می شود.
اعزام کننده یک طرح اولویت ۳۲ سطحی برای ترتیب اجرای بند بکار می برد. اولویتها به دو دسته تقسیم می شوند: کلاس زمان واقعی که از ۱۶ تا ۳۱ می باشد و کلاس متغیر که اولویت ۰ تا ۱۵ دارد. اعزام کننده برای هر اولویت زمانبدی یک صف استفاه می کند و صف ها را از اولویت بالا به پایین پیمایش می کند تا زمانی که یک بند پیدا کند که آماده اجرا است. اگر یک بند اتصال به یک پردازنده دارد و پردازنده آماده نباشد اعزام کننده از آن گذر می کند و برای پیدا کردن یک بند که آماده اجراست تفحص می کند. اگر هیچ بندی آماده اجرا نیست، اعزام کننده یک بند مخصوص به نام بند بیکار را اجرا می کند.
هنگامی که فرجه زمانی بند تمام می شود، بند متوقف می شود و اگر بند در کلاس اولویت متغیر باشد اولویتش پایین آورده می شود. گرچه اولویت هیچگاه از اولویت پایه کمتر نمی شود. پایین آوردن اولویت بند باعث محدود شدن مصرف PU بندهای CPU غالب می شود. هنگامی که یک بند با اولویت متغیر از حالت انتظار رها می شود، اعزام کننده اولویتش را اضافه میکند. مقدار اضافه شدن اولویت بستگی به آن دارد که برای چه منتظر بوده است. یک بند که برای I/O صفحه کلید منتظر می باشد اضافه اولویت زیادی خواهد داشت در حالیکه یک بند منتظر عملیات دیسک اضافه متعادلی خواهد داشت. این خط مشی منجر به داشتن زمان جوابگویی خوبی برای استفاده از ماوس ویندوز خواهد شد و بندهای I/O غالب را به مشغول نمودن دستگاه های I/O وامیدارد. همچنین اجازه می دهد بندهای CPU غالب از اضافه سیکلهای CPU بلا استفاده استفاده کنند. این خط مشی در چندین سیستم عامل اشتراک زمانی از جمله UNIX استفاده شده است. به علاوه پنجره حاضر که کاربر با آن در حال تبادل می باشد یک اضافه اولویت بدست می آورد ک

ه زمان پاسخ خود را بهبود بخشد.
زمان بندی هنگامی که یک بند وارد حالت آماده و یا حالت انتظار و یا زمانی که یک بند خاتمه می یابد و یا یک برنامه اولویت یک بند و یا ارتباط پردازنده را تغییر می دهد اتفاق می افتد. اگر یک بند زمان واقعی با الویت بالا آمده شود و یک بند با الویت کمتر در حالت اجرا باشد، بند با الویت کمتر تخلیه خواهد شد. این تخلیه به بند با خاصیت زمان واقعی هر زمان که نیاز داشته باشد دستیابی ترجیحی می دهد. NT یک سیستم عامل جدی زمان واقعی نیست زیرا این سیستم تضمین کننده اجرای یک بند در محدوده زمانی مشخص نیست.
هسته همچنین دارای امکانات تحلیل تله برای استثناها و وقفه ها می باشد که توسط سخ

ت افزار و نرم افزار ایجاد می شود. NT چندین استثنای غیر وابسته به معماری کامپیوتر تعریف می کند که شامل دستیابی غیر مجاز حافظه، سر ریزی اعداد صحیح، سرریزی اعداد ممیز شناور و یا زیر ریزی آن ها و تقسیم بر صفر اعداد صحیح، تقسیم بر صفر اعداد ممیز شناور، دستورات غیر مجاز، عدم تنظیم داده در حافظه، دستور ممتاز، خطای خواندن صفحه، قانون شکنی صفحه محافظ، عبور از فرجه تعداد صفحات، نقطه توقف اشکال زدا و اجرای دستور به دستور اشکال زدا می باشد.
استثنائات ساده می تواند توسط برنامه تحلیل تله تحلیل گردد. بقیه توسط اعزام کننده استثنائات هسته تحلیل می شوند. اعزام کننده استثناء یک رکورد ایجاد می کند که علت حالت استثنا را شامل شود تا بتواند یک تحلیل گر استثنا پیدا کند که این استثنا را تحلیل کند.
هنگامی که حالت استثنا در حالت هسته اتفاق می افتد، اعزام کننده استثنا، یک روال که تحلیل گر استثنا را پیدا کند صدا می زند. اگر تحلیل گری پیدا نشد که یک اشکال سیستمی کشنده خواهد بود و کاربر با عبارت مشهور صفحه آبی مرگبار که نشانگر نقص سیستم خواهد بود مواجه می شود. تحلیل استثنا، برای پردازش های حالت کاربر پیچیده تر است، زیرا یک زیر سیستم محیطی (مانند سیستم POSIX)) می تواند یک درگاه اشکال زدا و یک درگاه استثناء برای هر پردازشی که ایجاد می کند کارگذاری کند. اگر یک درگاه اشکال زدا ثبت شده باشد تحلیل گر

استثناء حالت را به اشکال زدا خواهد فرستاد. اگر درگاه اشکال زدا پیدا نشود و یا این نوع استثناء را جوابگو نباشد آنگاه اعزام کننده در پی پیدا کردن تحلیل گر مناسب استثناء بر خواهد آمد. اگر تحلیل گر پیدا نشود، اشکال زدا، دوباره صدا می شود تا اشکال را برای اشکال زدایی بدست آورد و اگر یک برنامه اشکال زدا در حال اجرا نباشد، یک پیام به درگاه استثناء پردازنده می فرستد تا فرصتی برای زیر سیستم فراهم کند تا حالت استثناء را تفسیر کند. مثلاً محیط POSIX پیام های استثناء NT را به علائم POSIX تبدیل می کند قبل از فرستادن آن ها به بند مربوطه که حالت

استثناء را بوجود آورده است. نهایتاً اگر هیچ کدام کار نکنند، هسته به پردازشی که شامل بندی است که حالت استثناء را بوجود آورده است خاتمه می دهد.
اعزام کننده وقفه در هسته وقفه ها را با صدا کردن یک روال سرویس وقفه (مانند یک گرداننده دستگاه) یا یک روال داخلی هسته تحلیل می کند. وقفه توسط یک شیء وقفه که حاوی تمامی اطلاعات برای تحلیل وقفه می باشد مشخص می شود. استفاده از شیء وقفه ارتباط بین روال سرویس وقفه و وقفه را بدون مراجعه به سخت افزار منبع وقفه آسان می سازد.

معماری های مختلف پردازنده ها، مانند اینتل ودک آلفا انواع و شماره های مختلفی از وقفه را دارا هستند. برای قابل حمل بودن سیستم عامل اعزام کننده وقفه، وقفه های سخت افزاری را به یک سری وقفه های استاندارد برگردان می کند. به وقفه ها اولویت داده می شود و به ترتیب اولویت سرویس می شوند. ۳۲ سطح وقفه در NT وجود دارد (IRQLS). هشت عدد آن ها توسط هسته استفاده شده اند و ۲۴ عدد دیگر نمایانگر وقفه ها از طریق HAL (لایه کلی سخت افزار) می

باشد. وقفه های NT در شکل ۳۲٫۲ تعریف شده اند.
هسته یک جدول اعزام وقفه را جهت نسبت دادن هر سطح وقفه به یک روال سرویس استفاده می کند. در کامپیوتر چند پردازنده ای، NT جدول های مجزا برای هر پردازنده نگهداری می کند و IRQL هر پردازنده را میتوان بطور جداگانه برپا کرد تا وقفه را غیر فعال نماید. تمامی وقفه های هم سطح یا در سطح پائین تر IRQL پردازنده بلو که می شوند تا هنگامی که سطح IRQL توسط یک بند در سطح هسته پایین آورده شود. NT از این مزیت برای استفاده از وقفه های نرم افزاری برای عملیات سیستم استفاده می کند. به عنوان مثال هسته برای شروع یک بند از وقفه نرم افزاری برای عملیات سیستم استفاده می کند. به عنوان مثال هسته برای شروع یک بند از وقفه نرم افزاری برای تحلیل تایمرها و پشتیبانی عملیات ناهماهنگ استفاده می کند.
هسته یک اعزام کننده وقفه را برای برگردان متن بند استفاده می کند. هنگامی که هسته در حال اجراست، سطح IRQL را در پردازنده بالای سطح اعزام کننده قرار می دهد. هنگامی که هسته مشخصاتی دهد که اعزام یک بند مورد نیاز است، هسته یک وقفه اعزام ایجاد می کند، اما این وقفه تا هنگامی که هسته کارش را تمام کند و سطح IRQL را پایین آورد بلوکه می شود. در آن موقع وقفه اعزام می تواند سرویس شود. بنابراین اعزام کننده یک بند را برای اجرا انتخاب می کند.
هنگامی که هسته تصمیم می گیرد نهایتاً یک عمل سیستمی باید اجرا گردد اما در آن تعجب نیست، یک شی DPC فراخوانی سیستم معوق را در صف قرار می دهد که شامل آدرس کاری است که باید اجرا گردد و یک وقفه DPC ایجاد می نماید. هنگامی که IRQL پردازنده به اندازه کافی پایین می آید شیء های DPC اجرا می گردند. IRQL وقفه های DPC معمولاً از بندهای کاربر بالاتر است بنابراین DPC اجرای بندهای کاربر را دچار وقفه می کند. برای احتراز از مسائل، DPC ها بطور محدودی ساده هستند. آن ها نمی توانند حافظه یک بند را تغییر دهند. نمی توانند اشیاء ایجاد کنند و یا روی آن ها منتظر بمانند و آن ها را بخواهند و نمی توانند سرویس های سیستم را صدا کنند یا نقص صفحه ایجاد کنند.

نوع وقفه
سطوح وقفه
اشکال ماشین یا اشکال گذرگاه ۳۱
قطع برق ۳۰
اطلاع بین پردازنده ای (تقاضای پردازنده ای دیگر به ACT مانند اعزام یک پردازه یا بروز رسانی TB) ساعت (برای کنترل زمان) ۲۹
۲۸
وقفه های سخت افزاری قدیمی PCIRQ 27-12

وقفه های اعزام و فراخوانی های تعلیقی ۱۱-۴

شکل ۲۳۰۲ وقفه های NT
فراخوانی سیستم غیر همزمان APC مانند مکانیزم DPC (فراخوانی تعلیقی) می باشد با این تفاوت که برای موارد عمومی نیز بکار می رود. مکانیزم APC بندها را قادر می سازد تا فراخوانی هائی را دایر کند که در یک زمان در آینده دفعتاً شروع بکار کند. مثلاً بسیاری از سرویس های سیستم یک روال حالت کاربر را به عنوان پارامتر قبول می کنند. بجای فراخوانی سیستمی همزمان که بند را

تا تکمیل فراخوانی سیستم بلوکه می کند، بند کاربر می تواند یک فراخوانی سیستمی غیر همزمان داشته باشد و یک PC را ایجاد کند. بند کاربر ادامه خواهد داد. هنگامی که سرویس سیستم تمام می شود، بند کاربر متوقف می شود تا APC خود به خود اجرا گردد.
APC می تواند در صف بندهای سیستم یا بندهای کاربر قرار گیرد، اگر چه APC حالت کاربر فقط در حالی قابل اجراست که به عنوان یک بند گوش به زنگ نامیده شده باشد. APC از DPC قدرتمند تر است در مواردی که می توان یک شیء را بدست آورد یا برای آن ها منتظر ماند، نقص صفحه ایجاد کند و سرویس های سیستم را فراخوانی کند. بعلت اینکه APC می تواند در فضای آدرس بند هدف اجرا گردد، NT از APC ها برای پردازش I/O بطور گسترده استفاده می کند.
NT می تواند روی ماشین های چند پردازنده ای متقارن اجرا گردد، بنابراین هسته باید از تغییر همزمان ساختارهای اشتراکی ممانعت به عمل آورد. هسته از قفل های گران که در حافظه سراسری قرار دارد برای حالت تواماً مستثنای پردازنده ها استفاده می کند. بعلت آنکه زمانی که یک بند کوشش می کند یک قفل پیچ بدست آورد تمام فعالیت های پردازنده متوقف می شود، یک بند که یک قفل پیچ را نگهداری می کند تخلیه نمی شود تا بتواند کارش را تمام کند و قفل پیچ را رها کند.
وقفه قطع برق که دومین اولویت بالا را دارد، هنگامی که قطع برق اتفاق می افتد سیستم عامل را مطلع می سازد. شیء خبر دهنده برق روشی را برای یک گرداننده دستگاه اتخاذ می کند تا یک برنامه را برای اجرا هنگام بازگشت برق ثبت کند و اطمینان حاصل کند که دستگاه ها به حالت مناسب تنظیم گردند. برای سیستم های دارای پشتیبان باطری یک شیء وضعیت برق برای مشخص کردن اینکه آیا قطع برق شده است یا نه قبل از شروع یک عمل بحرانی آزمایش

می کند، اگر گرداننده مشخص کند که برق قطع نشده است، IRQL پردازنده اش را به حد قطع برق بالا می برد، عمل را انجام می دهد و IRQL را به حالت قبل بر می گرداند. این ترتیب عملیات وقفه قطع برق را تا بعد از اتمام عمل بحرانی بلوکه می کند.
Executive
مدیریت اجرایی
مدیریت اجرایی NT یک سری سرویس هائی ارائه می دهد که همه زیر سیستم های محیطی می توانند از آن ها استفاده کنند. این سرویس ها در گروه های زیر هستند: مدیر شیء، مدیر حافظه مجازی، مدیر پردازش، امکانات فراخوانی سیستم محلی، مدیر I/O و سرپرستی امنی.
مدیر حافظه مجازی Virtual Memory Manager
قسمت حافظه مجازی مدیریت اجرای NT مدیریت حافظه مجازی است VM طراحی مدیریت VM فرض می کند که سخت افزار تحت پوشش از نگاشت حافظه مجازی به فیزیکی حمایت می کند، یک مکانیزیم صفحه بندی در سیستم های چند پردازنده ای، حافظه نهانی مرتبط را حمایت می کند و اجازه می دهد ورودیهای جدول های متفاوت را در یک صفحه نگاشت کند. مدیریت VM در NT طرح مدیریت بهره مندی صفحه با اندازه صفحه ۴KB به کار می برد. صفحات داده که به یک پردازش تخصیص داده شده اند و در حافظه نیستند در فایل صفحه بندی روی دیسک ذخیره شده اند.
مدیر VM از آدرس های ۳۲ بیتی استفاده می کند، بنابراین هر پردازش دارای ۴GB فضای آدرس مجازی می باشد. ۲GB بالائی برای تمام پردازش ها یکسان است و بوسیله NT در وضعیت ممتاز استفاده می شود. ۲GB پائینی برای هر پردازش مجزا است و قابل دسترسی توسط بندهای وضعیت ممتاز و کاربر می باشد.
مدیر VM در NT یک پروسه دو مرحله ای برای تخصیص حافظه استفاده می کند. در مرحله اول یک فضای آدرس رزرو می کند و در مرحله دوم تخصیص را توسط مشخص کردن فضا در فایل صفحه NT به اجرا در می آورد. NT قادر است فضای فایل صفحه را با محدود کردن حافظه محدود کند. یک پردازش می تواند حافظه ای را که دیگر قابل استفاده نیست از دور خ

ارج کند تا فرجه صفحه بندی پردازش آزاد باشد. به علت آنکه حافظه توسط اشیاء بیان می شود، هنگامی که یک پردازش (پدر) دومین پردازش (فرزند) را ایجاد می کند، پدر می تواند توانائی دستیابی به حافظه مجازی فرزند را حفظ کند. چنین است که زیر سیستم های محیطی می توانند حافظه مراجعین خود را اداره کنند. برای کارایی، مدیریت VM به یک پردازش ممتاز اجازه می دهد که صفحات به فایل صفحه مبادله نمی شوند.
دو پردازش با به دست آوردن دستگیره به شیء حافظه می توانند حاف

ظه را مشترک شوند، لیکن این روش می تواند غیر کارا باشد، زیرا لازم است تمام حافظه آن شیء روی فایل صفحه بندی فضا دهی شود قبل از آنکه هر کدام از پردازش ها بتوانند آن شیء را دستیابی کند. NT یک گزینه بنام شیء قسمت که نمایانگر قسمتی از حافظه است دارا می باشد. پس از بدست آوردن یک دستگیره به شی قسمت، یک پردازش می تواند فقط قسمت مورد نیاز حافظه را نگاشت کند. این قسمت نماد نامیده می شود. مکانیزم نماد همچنین پردازش را قادر می سازد که یک شیء را که بزرگتر از فرجه فایل صفحه پرداز می باشد دستیابی کند. سیستم با استفاده از نماد می تواند در فضای آدرس شیء بصورت قسمت به قسمت سیر کند.
پردازش می تواند به طرق مختلف استفاده از حافظه مشترک را کنترل کند. اندازه ماکزیمم یک قسمت می تواند حد گذاری شود. قسمت میتواند هم روی فایل صفحه بندی پشتیبانی شود و هم روی فایل معمولی به نام فایل نگاشت حافظه. یک قسمت می تواند مبنا باشد و بدین معنی است که قسمت برای تمام پردازش هائی که آنرا دستیابی می کنند در یک آدرس مجازی است. حفاظت صفحات حافظه در قسمت می تواند به فقط خواندنی، خواندنی/نوشتنی، فقط اجرا شدنی، صفحات حفاظت شده، کپی هنگام نوشتن علامت گذاری شوند. چنانچه به یک صفحه حفاظت شده مراجعه شود حالت استثناء اتفاق می افتد، حالت استثناء می تواند مثلاً برای کنترل یک برنامه دارای اشکال که خارج از محدوده یک آرایه عمل می کند مورد استفاده قرار گیرد. مکانیزم کپی هنگام نوشتن به خارج از محدوده یک آرایه عمل می کند مورد استفاده قرار گیرد. مکانیزم کپی هنگام نوشتن به مدیریت VM فقط یک کپی مشترک در حافظه فیزیکی قرار می دهد، اما مدیریت VM خاصیت کپی هنگام نوشتن را برای آن قسمت حافظه به فعال می کند. اگر یکی از پردازش ها کوشش در تغییر صفحه ای با خاصیت کپی هنگام نوشتن کند، مدیریت VM اول یک کپی خصوصی برای استفاده آن پردازش درست می کند.
NT در ترجمه آدرس مجازی چندین ساختمان داده استفاده می کنند. هر پردازش یک فهرست صفحه ای که شامل ۱۰۲۴ حفره ها بایتی به نام ورودی فهرست صفحه ا

ست دارا می باشد. معمولاً فهرست صفحه خصوصی است، لیکن چنانچه شرایط مورد نیاز را داشته باشد می تواند مشترک باشد. هر ورودی فهرست صفحه به یک قاب صفحه ۴ کیلو بایتی در حافظه فیزیکی نشانه می رود. مجموع تمام جدول های صفحه برای هر پردازش ۴ MB می باشد، بنابراین بر حسب نیاز مدیریت VM این جدول ها را روی دیسک مبادله می کند. به شکل ۲۳٫۳

برای این ساختار توجه کنید.
یک عدد صحیح ۱۰ بیتی از ۱۰۲۳ را نشان می دهد. بنابراین یک عدد صحیح ۱۰ بیتی می تواند هر ورودی فهرست صفحه را و یا جدول صفحه را انتخاب کند. این خاصیت هنگامی که یک نشانه روی حافظه مجازی به یک آدرس حافظه فیزیکی تبدیل می شود مورد استفاده قرار می گیرد. همانطوری که در شکل ۲۳٫۴ نشان داده شده است یک آدرس مجازی ۳۲ بیتی به ۳ عدد تقسیم می شود. اولین ۱۰ بیت آدرس مجازی به عنوان ایندکس برای فهرست صفحه استفاده می شود. این آدرس یک ورودی فهرست صفحه را انتخاب می کند که به جدول صفحه نشانه می رود. ۱۰ بیت بعدی آدرس مجازی برای انتخاب PTE از آن جدول استفاده می شود. PTE به یک قاب صفحه در حافظه فیزیکی اشاره می کند. ۱۲ بیت باقی مانده به بابت مشخصی در آن صفحه اشاره می کند. یک نشانه رو به بایت مشخص در حافظه فیزیکی از کنار هم قرار گرفتن ۲۰ بیت از محتوای محل PTE با ۱۲ بیت سمت راست آدرس مجازی به دست می آید. بنابراین از ۳۲ بیت PTE 12 بیت باقی مانده،‌ این بیت ها برای مشخصات صفحه به کار می رود. ۵ بیت اول حفاظت صفحه را به عنوان صفحه فقط خواندنی یا خواندنی نوشتنی مشخص می کند. ۴ بیت بعدی مشخص کننده آن است که کدام فایل صفحه حافظه را پشتیبانی می کند. ۳ بیت آخر وضعیت صفحه را در حافظه مشخص می کند. برای اطلاعات کلی بیشتر در طرح های صفحه بندی به قسمت ۸٫۵ مراجعه کنید.
یک صفحه می تواند دارای یکی از حالات شش گانه: معتبر، صفر شده، آزاد، گوش بزنک، تغییر یافته و بد باشد. یک صفحه معتبر برای یک پردازش در حال استفاده می باشد. یک صفحه آزاد صفحه ای است که در جدول صفحه به آن مراجعه نشده است. یک صفحه صفر شده صفحه ای است
نمودار ص ۴۷۱
که صفر شده است و آماده برای استفاده فوری است. صفحه گوش به زنگ از گروه صفحات در حال کار یک پردازش خارج شده است. یک صفحه تغییر یافته صفحه ای است که روی آن نوشته شده است لیکن هنوز روی دیسک ریخته نشده است. آخرین نوع صفحه، صفحه بد است، حالت غیر معمول است زیرا یک اشکال سخت افزاری مشاهده شده است.
ساختار واقعی PTE در شکل ۲۳٫۵ نشان داده شده است. PTE 5 بیت برای حفاظت

، ۲۰ بیت برای آدرس قاب صفحه، ۴ بیت برای انتخاب فایل صفحه بندی و ۳ بیت برای شرح حالات صفحه دارد. اگر صفحه در حافظه نباشد بیت آدرس صفحه تفاوت مکان روی فایل صفحه بندی را نشان می دهد. به علت آن که کدهای اجرائی و فایل های نگاشت شده در حافظه یک کپی روی دیسک دارند. آن ها در فایل صفحه بندی نیاز به فضا ندارند. اگر یکی از این صفحات در حافظه نباشد، ساختمان PTE به صورت زیر است. با ارزش ترین بیت برای حفاظت صفحه بک

ار می رود و ۲۸ بیت بعدی برای ایندکس به ساختمان داده سیستم که نشان دهنده یک فایل و تفاوت مکان در فایل برای صفحه می باشد، ۳ بیت پائینی حالت صفحه را مشخص می نماید.
شکل ۲۳٫۵ ورودی جدول صفحه استاندارد
اگر هر پردازش دارای جدول صفحه خود باشد، اشتراک صفحات بین پردازش ها سخت خواهد بود، زیرا هر پردازش PTE مخصوص خود را برای قاب صفحه دارد. هنگامی که یک صفحه مشترک در حافظه فیزیکی دارای اشکال می شود آدرس فیزیکی باید در PTE ها باید علامت گذاری شوند. برای پرهیز از این کار NT یک روش غیر مستقیم دارد. برای هر صفحه مشترک، پردازش یک PTE دارد که به یک ورودی جدول و صفحه ماکت اشاره می کند و بجای قاب صفحه PTE ماکت اطلاعات آدرس قاب صفحه و بیت های حفاظت و حالت را داراست. بنابراین مدیریت VM بجای آنکه تمام پردازش هائی که این صفحه را مشترک هستند فقط باید PTE ماکت را بروز برساند.
مدیریت VM از طریق نگهداری تمام صفحات فیزیکی در بانک اطلاعاتی قاب صفحه آن ها را کنترل می کند. برای هر قاب صفحه یک ورودی در آن می بادش. ورودی به PTE که به قاب صفحه نشانه می رود اشاره می کند تا مدیریت VM بتواند وضعیت قاب را نگه دارد. قاب های صفحه به یکدیگر پیوند داده شدهاند. (مثلاً) زنجیره قابها صفر شده یا قاب های آزاد را تشکیل دهند.
هنگامی که نقص صفحه رخ می دهد مدیریت VM صفحه غیر موجود را در اولین صفحه آزاد قرار می دهد اما به آن اکتفا نمی کند. تحقیقات نشان می دهد که رجوع کردن یک بند به حافظه تمایل به داشتن خاصیت محلی است. وقتی صفحه ای مورد استفاده قرار می گیرد، به احتمال زیاد به صفحات مجاور آن در آینده نزدیک رجوع خواهد شد. (راجع به یک تکرار روی یک آرایه و یا واکنش ترتیبی دستورات یک بند فکر کنید.) به علت محلی بودن هنگامی که مدیریت VM روی یک صفحه نقص می کند، همچنین روی چند صفحه مجاور نقص می ند. این نقص صفحات مجاور باعث کم شدن مجموع نقص صفحه می شود. برای اطلاعات بیشتر روی محلی بودن به بخش ۹٫۷٫۱ رجوع شود.
اگر هیچ صفحه آزادی در لیست صفحات آزاد موجود نباشد. NT بر نقص صفحه پردازش هائی که در حد مینیمم اندازه دسته کاری هستند نظارت می کنند و مطابق آن دسته کاری را تنظیم م

 

ی کند. در حالت مخصوصی که یک پردازش تحت NT شروع می شود، یک دسته کاری ۳۰ صفحه ای به آن تخصیص می دهد. NT متناوباً این تعداد را با دزدیدن یک صفحه معتبر از پردازش آزمایش می کند. اگر پردازش بدون ایجاد نقص صفحه به کار ادامه دهد، از دسته کاری پردازش یکی کم می شود و صفحه به لیست صفحات آزاد اضافه می شود.
مدیر پردازش Process Manager
مدیریت پردازش سرویس هائی برای ایجاد – حذف و استفاده بندها و پردازش ها ارائه می دهد. هیچگونه اطلاعی در مورد رابطه پدر و فرزند یا سلسله مراتب پردازش ها ندارد. این ریزه کاری ها به عهده زیر سیستم های محیطی که صاحب پردازش ها هستند گذاشته شده است.
یک مثال ایجاد پردازش در محیط WIN32 بصورت زیر است. هنگامی که یک کاربرد WIN 32 فراخوانی ایجاد پردازش را انجام می دهد، یک پیغام به زیر سیستم WIN 32 فرستاده می شود که مدیریت پردازش را برای ایجاد یک پردازش فرا می خواند. مدیریت پردازش اقدام به فراخوانی مدیریت شی می کند تا یک شی پردازش ایجاد کند و سپس دستگیره شی را به WIN 32 بر می گرداند. WIN 32 مدیریت پردازش را دوباره فرا می خواند تا یک بند برای پردازش ایجاد کند، و نهایتاً WIN 32 دستگیره را به پردازش و بند جدید بر می گرداند.
ابزار فراخوانی محلی Local Procedure Call Facility
ابزار فراخوانی محلی (LPC) برای انتقال تقاضاها و نتایج بین متقاضی و سرویس دهنده در یک ماشین تک پردازنده ای استفاده می شود. مخصوصاً از آن برای درخواست سرویس از زیر سیستم های مختلف NT استفاده می شود و از بیشتر جهات مشابه مکانیزم فراخوانی راه دور است که توسط بسیاری سیستم های عامل که برای پردازش های توزیع شده در شبکه ها بکار برده می شود می باشد، اما LPC برای استفاده در یک سیستم NT بهینه شده است.
LPC مکانیزم ارسال پیغام است. پردازش سرویس دهنده یک شی اتصال درگاه قابل رؤیت سراسری انتشار می دهد. هنگامی که یک مشتری از زیر سیستم سرویس می خواهد، یک دستگیره به شی اتصال درگاه باز می کند و سپس تقاضای اتصال به آن درگاه می فرستد.
سرویس دهنده یک کانال ایجاد می کند و یک دستگیره برای مشتری می فرستد. کانال شامل یک جفت درگاه خصوصی ارتباط می باشد: یکی برای پیغام های مشتری به سرویس دهنده و دیگری برای پیغام های سرویس دهنده به مشتری. کانال های ارتباط مکانیزم بازخوانی را حمایت می کند بطوریکه سرویس دهنده و مشتری می توانند تقاضاها را قبول کنند در حالی که انتظار جواب را دارند.
هنگامی که یک کانال LPC ایجاد می شود یکی از سه نوع تکنیک فرستادن پیغام باید مشخص گردد. نوع اول برای پیغام های کوتاه (تا ۲۵۶ بایت) مناسب می باشد. در این حالت صف پیغام درگاه به عنوان حافظه میانی مورد استفاده قار می گیرد. و پیغام ها از یک پردازش به دیگری کپی می شود. نوع دوم برای پیغام های بزرگ است در این حالت یک شیء حافظه مشترک برای کانال ایجاد می شود. پیغام هائی که از طریق صف پیام درگاه فرستاده می شود دارای یک نش

انگر و اندازه می باشد که به شی قسمت رجوع می کند. بدین ترتیب از کپی کردن پیغام های طولانی خودداری می شود. فرستنده داده ها را در قسمت مشترک می گذارد و گیرنده می تواند مستقیماً آن ها را مشاهده کند.
روش سوم عبور پیغام LPC به نام LPC سریع، توسط قسمت نمایش گرافیکی زیر سیستم WIN 32 استفاده شده است. هنگامی که مشتری تقاضای اتصال برای استفاده LPC سریع می کند تا LPC سریع استفاده کند، سرویس دهنده سه عدد شیء بنا می کند، یک بند مخصوص سرویس دهنده برای تقاضاها، یک شیء قسمت ۶۴KB و یک شیء رویداد جفت. شیء رویداد جفت شیء هماهنگی زمانی است که توسط زیر سیستم WIN 32 برای اطلاع زمانی که بند مشتری یک پیغام را به سرویس دهنده WIN 32 کپی کرده است و بالعکس استفاده می وشد. پیغام های LPC به شیء قسمت فرستاده می شوند و هماهنگی توسط شیء رویداد جفت انجام می گردد. شیء قسمت کپی کردن پیغام را حذف می کند. زیرا آن یک ناحیه مشترک حافظه است. استفاده از شیء رویداد جفت برای هماهنگی باعث حذف بار سر فرستادن پیغام ها با نشانه رو و طول می گردد. بند مخصوص سرویس دهنده باعث حذف بار سر اینکه کدام مشتری سرویس دهنده را می طلبد می شود زیرا برای هر بند مشتری یک بند سرویس دهنده وجود دارد. از طرفی هسته به بندهای مخصوص سرویس دهنده اولویت جهت بالا بردن راندمان قائل است. زیان این روش آن است که LPC سریع از دو روش دیگر منابع مصرف می کند و بدین جهت زیر سیستم WIN 32 از LPC سریع فقط برای واسطه مدیریت پنجره و دستگاه گرافیک استفاده می کند.
مدیر ورودی/خروجی I/O Manager
مدیریت ورودی/خروجی مسئول زیر سیستم فایل، مدیریت کش، درایورهای دستگاه و درایورهای شبکه می باشد. زیر سیستم قابل نصب فایل ها را کنترل می کند و برای تقاضاهای I/O مدیریت بافر را به عهده دارد. با مدیریت VM برای فایل های نگاشته شده در حافظه همکاری کرده و مدیریت کش NT را که سیستم کش را برای کل سیستم I/O انجام می دهد کنترل می کند. مدیریت I/O هم عملیات هماهنگ و هم عملیات غیر هماهنگ را حمایت می کند، برای درایورها فرجه زمانی قرار می دهد و مکانیزمی برای فراخوانی از یک درایور، درایور دیگری را دارد.
مدیر I/O تقاضای رسیده را تبدیل به یک فراخوانی استاندارد به نام بسته تقاضای (IRP) I/O می کند و سپس IRP را به درایور مناسب برای پردازش می فرستد. هنگامی که عملیات خاتمه می یابد، مدیریت I/O از درایوری که اخیراً یک عملیات انجام داده است IRP دریافت می کند و تقاضا را کامل می کند.
در بسیاری سیستم عامل ها ذخیره پنهانی توسط سیستم فایل انجام می گیرد. NT یک سیستم ذخیره مرکزی ارائه می دهد. مدیریت کش سرویس های کش را برای تمام اجزاء تحت کنترل مدیریت I/O ارائه می دهد، و بصورت تنگاتنگ با مدیریت VM کار می کند. اندازه حافظه ک

ش به صورت پویا در حال تغییر است و بستگی به مقدار حافظه آزاد در سیستم دارد. خاطر نشان می کنیم که ۲ GB حافظه بالای آدرس پردازش فضای سیستم است و برای همه پردازش ها یکسان است. مدیریت VM نصف این فضا را به کش سیستم اختصاص می دهد. مدیریت کش فایل ها را در این فضای آدرس نگاشت می کند و از امکانات مدیریت VM برای I/O فایل استفاده می کند.
حافظه کش به بلاک های ۲۵۶ KB تقسیم شده است. هر بلاک کش می تواند یک دیدگاه (ناحیه نگاشت حافظه) از یک فایل را نگه دارد. هر بلاک کش توسط بلاک کنترل آدرس مجازی VACB که آدرس مجازی و تفاوت مکان فایل برای آن دیدگاه و همچنین تعداد پردازش هائی که این دیدگاه را استفاده می کنند را نگهداری می کند تعریف می شود. VACB در یک آرایه که توسط مدیریت کش نگهداری می شود قرار دارد و یک IRP به مدیریت کش می فرستد.
برای هر فایل باز مدیریت کش یک آرایه ایندکس جداگانه به آرایه VACB دارد. این آرایه یک عضو برای هر ۲۵۶ KB محتویات فایل دارد، بنابراین مثلاً برای ۲MB فایل یک آرایه ایندکس ۸ VACB عضوی دارد. اگر قسمتی از فایل در VACB باشد یک عضو در آرایه ایندکس VACB به آن نشانه می رود و در غیر این صورت مقدار تهی است.
هنگامی که عمل خواندن سطح کاربر توسط مدیریت I /O دریافت می شود، یک IRP به مدیریت کش می فرستد (مگر آنکه تقاضا صریحاً خواندن بدون کش تقاضا کند). مدیریت کش عضو آرایه ایندکس VACB فایل که متعلق به تفاوت مکان بایت می باشد را محاسبه می کند. ورودی یا به دیدگاه در کش اشاره می کند و یا صفر است. اگر صفر باشد، مدیریت کش یک بلاک کش تخصیص می دهد (و ورودی وابسته در آرایه VACB) و دیدگاه را در آن بلاک کش نگاشت می کند. مدیری

ت کش سپس کوشش می کند اطلاعات را از فایل به بافر فراخوان کپی کند. اگر کپی مؤفق بود، عملیات تکمیل شده است. اگر کپی نامؤفق بود، بعلت نقص صفحه است، که باعث خواهد شد مدیریت VM یک خواندن بدون کش به مدیریت I/O از درایور مناسب تقاضا می کند که اطلاعات را خوانده و داده ها را به مدیریت VM برگرداند که داده ها را در کش بارگذاری کند. داده ها که اکنون در کش می باشند به بافر خواندن کپی می شوند و تقاضای I/O تکمیل می شود.
شکل ۲۳٫۶ چگونگی پیشرفت این عملیات را نشان می دهد.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 12700 تومان در 64 صفحه
127,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد