Розрахунок програмного модуля (Звіт з лабораторної роботи № 3 з дисципліни "Операційні системи")

Страницы работы

Содержание работы

Міністерство освіти та науки України

Національний Технічний Університет

«Харківський Політехнічний Інститут»

Звіт

з лабораторної роботи № 3

з дисципліни «Операційні системи»

Виконав:  студент

групи КІТ-14б              

Самітов М. Б.                

Викладач:                      

Максюта Н.В.               

Харків 2007 р.


Колись у минулому столітті зібралися кращі дальнобойщики Америки. Їх було 8. У кожного з них була відмінна вантажівка. Це були монстри автомобілі будови, кожний з них нагадував залізничний поїзд. Вони були дійсно величезні, потужні й швидкі. Вирішили вони влаштувати змагання, по самих небезпечних дорогах Америки. Проти них протистояло все: палюче сонце нехай, дорожні бандити й багато чого іншого. Але вони були дійсно кращі із кращих. Кожний з них розумів що доїдуть до кінця не всі, але бажання довести собі й всім що на своєму 18-колісному коні вони можуть усе.

Модель, реалізована в даній роботі наступна:

  • Всі вантажівки починають навантаження в один час і діють протягом усього шляхи незалежно друг від друга.
  • Діяльність вантажівок складається із двох етапів - завантаження й доставка вантажу.
  • Час навантажування визначається як випадкове число, з ряду чисел, рівномірно розподілених в інтервалі ((Обсяг -50)) - ми виходимо з того, що менш об'ємна вантажівка може бути швидше завантажений, але елемент везіння в цьому процесі грає все-таки не останню роль.
  • Время доставки визначається як  100-потужність – чим могутніше вантажівка тим він може швидше доставити вантаж.
  • Вантажівка виводить повідомлення про початок своєї діяльності, про завершення завантаження й про завершення доставки.
  • На всю діяльність приділяється 25 секунд астрономічного часу (інтервал підібраний досвідченим шляхом). Після закінчення цього інтервал перевіряється стан  вантажівок. Якщо вантажівка доставила вантаж, виводиться повідомлення про нормальне завершення процесу-вантажівки. Якщо процес-вантажівка ще не завершила свою діяльність, считаеться що він розбився в пустелі й виводить повідомлення про його загибель.

У програмній моделі діють процеси двох типів. Процесс-ктулху виконує функції монітора для процесів-вантажівок. Цей процес існує в одному екземплярі. Процес-вантажівка моделює поводження однієї вантажівки. Процесс-ктулху створює екземпляр такого процесу для кожної вантажівки. Структура інформації, що стосується однієї вантажівки, описана у файлі truck.h. Вся колона визначена у файлі base.h.

Нижче представлені укрупнені алгоритми діяльності Ктулху й Вантажівки.

  • Початкові дії (2) Ктулху містять у собі повідомлення про початок роботи, ініціалізацію генератора випадкових чисел і т.п.
  • Цикл (2-6) виконує породження нового процесу для кожної вантажівки в колоні.
    Зверніть увагу на те, що запуск нової програми (5) виконується вже в новому, дочірньому процесі. Новій програмі повинні передаватися атрибути (особисті дані) Слона, для чого вони повинні бути перетворені в строкову форму.
    Успішність запуску нового процесу обов'язково повинна перевірятися, і у випадку, якщо запуск нової програми не відбувся, дочірній процес повинен завершуватися.
    Після запуску дочірнього процесу батьківський процес запам'ятовує його параметри (предже всього - PID) і призначає його пріоритет.
  • Операції (7-9) пов'язані з тим, що дочірнім процесам може не вдасться запуск нової програми. Після паузи 1 сек (для того, щоб всі дочірні процеси встигли запустити нову програму) батьківський процес перевіряє, чи не завершилися дочірні процеси. Якщо який-небудь дочірній процес завершився, це означає, що йому не вдалося запустити нову програму. Батьківський процес позначає у своїй керуючій інформації такий процес як незапущений. Якщо виявляється, що завершилися всі дочірні процеси, завершується й батьківський процес (не показаний на схемі алгоритму).
  • Після наступної паузи (10) батьківський процес знову по черзі перевіряє (11-15) завершення всіх дочірніх процесів (крім позначених як незапущені). Якщо процес уже завершився, виводиться повідомлення про його успішне завершення. Якщо процес ще не завершився, йому посилає сигнал, батьківський процес чекає завершення дочірнього й виводить повідомлення про його загибель.
  • Дії дочірнього процесу виконуються по лінійному алгоритмі. Операції пошуку (3) і водопою (5) являють собою "зайняте очікування", час його визначається за правилами, викладеним вище.


Програмний модуль, що реалізує діяльність Ктулху:


    /**********************************************/

    /* Приклад для роботи :1                       */

    /**********************************************/

    /* ПОРОДЖЕННЯ ПРОЦЕСІВ                       */

    /**********************************************/

    /* Монітор Слонів  - файл  ktylhy1.c          */

    /**********************************************/

Похожие материалы

Информация о работе