سیستم spooling
یکی دیگر از ویژگیهای سیستم عامل نسل سوم Spooling(یاOn Line Spooling)است که معمولاً همراه چند برنامه گی استفاده میشود. این کلمه مخفف عبارت (Simultaneous Peripheral OperationonLine) میباشد. در این سیستم به جای آنکه کارتها از دستگاه
کارت خوان مستقیماً وارد حافظه گردند و توسط
CPU پردازش شوند ابتدا کاراکتر به کاراکتر در بافری در حافظه قرار گرفته و سپس به صورت
بلوکی بر روی
دیسک نوشته میشود.
وقتیکه برنامه کاربر اجراء میشود و از سیستم عامل تقاضای ورودی میکند, اطلاعات ورودی به صورت بلوکی و با سرعت زیاد از دیسک خوانده میشوند. به طور مشابه هنگامی که برنامه برای خروجی
چاپگر را احضار میکند, خط خروجی در یک
بافر کپی شده و سپس در دیسک نوشته میشود. پس اطلاعات خروجی از دیسک بر اساس ترتیب و اولویت در چاپگر چاپ میشوند.
در واقع اسپولینگ عمل I\O یک کار را با عمل محاسباتی کار دیگر روی هم میاندازد (overlap) . در سیستم اسپولینگ د رحالیکه ورودی یک کار از دستگاه ورودی خوانده میشود,کار دیگری در حال چاپ شدن است , در همین بین حتی کار دیگری میتواند در حال پردازش و اجراء باشد . در اسپولینگ برنامه عملیات ورودی و خروجی اش را متناسب با سرعت دیسک (که سریع است) انجام میدهد و نه متناسب با سرعت کارتخوان یا چاپگر (که خیلی کند هستند ).
بنابراین سیستم مذکور باعث استفاده بهینه از CPU و سایل I\O میشود و سرعت عمل را بالا میبرد. در این سیستم دیگر نیازی به کامپیوترهای 1401,نوار گردانهای اضافی و حمل نوارها (مانند سیستمهای دستهای )نداریم.
بلوک دیاگرام یک سیستم اسپولینگ میتواند به صورت زیر باشد:
1-سیستم ورودی کاراکترهایی که توسط کارتخوان وارد میشود را در بلوکهایی جمع آوری کرده وبه کمک مدیر دیسک این بلوکها را بر روی دیسک مینویسد . درانتهای هر مدرک ورودی اطلاعاتی راجع به آن مدرک (مانند محل آن بر روی دیسک , اولویت ,اسم استفاده کننده ) به قسمت زمانبند کار فرستاده میشود.
2-زمانبند کار (Job scheduler) این زمانبند یک لیست از کارهای موجود در ماشین و اطلاعات لازم در مورد مدارک ورودی مورد نیاز هر یک را نگه میدارد. به این لیست انبار کار یا Jobpoolیا ـJoblist نیز گفته میشود. زمانبند کار به پردازنده کار میگوید که کدام کار بعدی را اجرا کند. برای این منظور اطلاعاتی در مورد محل کار و مدارک ورودی آن بر روی دیسک را به پردازنده کار میدهد . همچنین اگر کارهای متعددی منتظر ورود به حافظه باشند و فضای کافی برای همگی در دسترس نباشد , زمانبند کار تعدادی از آنها را انتخاب کرده و به حافظه میآورد.
3-پردازنده کار (Job processor) کار داده شده را اجراء میکند. این پردازنده محل کامپایلرها و سایر نرم افزارهای سیستم را بر روی دیسک میداند. هنگام اجراء پردازنده کار خروجی های خود را به صورت بلوکی بر روی دیسک مینویسد و مدارک خروجی را تشکیل میدهد . پردازنده کار اطلاعاتی راجع به محل و اولیت مدارک خروجی به زمانبند خروجی میدهد.
4-زمانبند خروجی(output scheduler) لیستی از مدارکی که باید چاپ شود را نگه میدارد. وقتی که چاپگر آزاد شد , این زمانبند مدرک بعدی را برای چاپ انتخاب کرده و محل مدرک بر روی دیسک را به سیستم خروجی میگوید.
5-سیستم خروجی بلاکهای خروجی را از روی دیسک خوانده و کاراکتر به کاراکتر (یا خط به خط)آنها را به چاپگر میفرستد.
6-مدیر دیسک (Disk Manager) که وظایف خواندن و نوشتن یک بلاک بر دیسک , تخصیص یک بلاک خالی روی دیسک و برگرداندن یک بلاک به مجموعه فضای آزاد دیسک را بر عهده دارد. در خواستهای مربوطه به دیسک در یک صف به نام (Disk Transfer Queue)DTQ ذخیره میگردد.
البته هر سیستم اسپولینگ یک هماهنگ کننده(Coordinator) دارد که مسئول زمانبندی پردازش های سیستم و فراهم کردن عملیاتی که جهت همگام کردن بکار میآیند میباشد. این عملیات توسط دو روال انجام میپذیرد:
Wait : پردازش جاری را متوقف کرده و دوباره وارد زمانبند میگردد.
Free : یک پردازش ویژه را جهت زمانبندی, آماده میکند.
بافر کردن امکان میدهد که عمل I\Oیک کار با عمل پردازش همان کار همزمان گردد در حالیکه spooling امکان میدهد عملیات I\O و پردازش چندین کار با هم همزمان گردند.
همچنین ببینید
پیوندهای خارجی