مانیتور
توضیحات
در جلسه بیست و هشتم فیلم آموزشی (آموزش مجازی) سیستم عامل دکتر حقیقت ویژه کنکور کارشناسی ارشد مهندسی کامپیوتر و کنکور کارشناسی ارشد مهندسی فناوری اطلاعات و کنکور دکتری مهندسی کامپیوتر و نیز امتحانات دانشگاهی و آزمونهای استخدامی، ادامه فصل مهم چهارم سیستم عامل با عنوان «مانیتور» ارائه میشود. در جلسه قبل مشاهده كرديم که همگامسازی فرايندها باسمافور پيچيده است و اگر برنامهنويس دقت نكند، خطرناک خواهد بود. مشكل تعويض جای دو down در كد برنامه توليدكننده باعث وقوع بنبست میشود. در واقع، بايد بگوييم كه تنها مشكل سمافور در سيستمی كه حافظه مشترک دارد، پيچيدگی استفاده از آن در حل مسائل سخت همگامسازی است. برای سادهتر شدن برنامهنويسی، Brinch Hansen در سال 1973 و Hoare در سال 1374 يک ابزار سطح بالاتر، انتزاعیتر و راحتتر برای همگامسازی به نام مانيتور (Monitor) ابداع كردند. اين ابزار اوليه در عين سادگی بسيار قوی و منعطف است. مانیتور يک راه حل مبتنی بر زبان برنامهسازی (مبتنی بر کامپايلر) است و با تمامی روشهای قبلی متفاوت است. در این جلسه ابتدا مانیتور تعریف میشود و پس از آن مانيتور دو خاصيت مهم آن یعنی 1) محصورسازی (Encapsulation) و 2) انحصار متقابل (Mutual Exclusion) ويژه مانيتور شرح داده میشود. سپس متغیرهای شرطی و کاربرد آنها و wait و Signal روی Conditionها مورد بررسی قرار میگیرد. آنگاه سه راهکار برای پرهيز از فعاليت همزمان دو فرايند درون يک مانيتور شرح داده میشود. در انتها به حل مسئله تولیدكننده-مصرفكننده به كمك مانیتور پرداخته میشود.