Организация параллельной работы нескольких процессов. Описание процедур

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

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

Министерство Связи РФ СибГУТИ

                                                                                                                                       Кафедра ПМиК

Курсовая работа

по операционным системам

Вариант № 19

                                                                                                                                            Выполнила:                                                                                                                                            Группа П-31

Проверила:

Дата:

Новосибирск 2005 г

Задание к курсовой работе.

Организовать параллельную работу нескольких процессов, выделяя каждому из них некоторый квант времени. Любой из процессов может быть приостановлен и вновь запущен некоторой определенной клавишей (можно использовать буквенные или цифровые клавиши). Нажатия клавиш обрабатывать с помощью прерывания от клавиатуры. 

Окончание работы программы должно происходить при последовательном нажатии всех ключевых клавиш либо при нажатии клавиши ESC. Те процессы, которые выводят информацию на экран, должны использовать для этого вывода каждый свое отдельное окошко, обрамленное рамкой.

Дополнительное информационное окно должно содержать краткое сообщение о тех действиях, которые выполняются в пpогpамме : номер процесса, его статус в текущий момент времени (активен, приостановлен, ожидает), другую информацию

(напpимеp, указание величины выделенного процессу кванта времени, процент заполненности буфера и т.п.).

В случае необходимости указывать параметры при запуске программы предусмотреть и обработать возможные ошибки (с выводом диагностики на экран). Программа должна работать устойчиво.

Вариант 19.

3. Два пpоцесса: один выполняет поиск всех последовательных пpостых чисел и заносит их в буфеp, втоpой осуществляет их вывод из буфеpа на экpан (поматериалам лаб. работы №7).

4. Вывод  заголовка  pаботы  (фамилия  и  имя  автоpа и название pаботы)постоянно меняющегося цвета. Место вывода (верх или низ экрана) задавать в качестве параметра командной стpоки.

7. В огpаниченной области экpана pазместить движущийся объект (напpимеp,летающий и отpажающийся от гpаниц окна шаpик).

8. В углу экрана с заданными в качестве параметров координатами поместить часы, показания которых должны соответствовать системному времени. Использовать в качестве основы материал лабораторной работы №6.

Описание процедур.

Output1:

Вывод результатов работы производителя на экран.

Output2:

Вывод результатов работы потребителя на экран.

Onexit:

Процедура обеспечивает выход из программы и опустошение буфера с выводом на экран, если тот содержал информацию .

SetCurSize:

Процедура управления курсором. Установка формы курсора выполняется с помощью предопределенного типа Registers, дающего доступ к регистрам процессора, и стандартной процедуры Intr из модуля Dos. Для установки формы курсора требуется в регистр AH занести код функции $01 прерывания $10, в регистр CH занести номер начальной линии сканирования, а в регистр CL– номер конечной линии сканирования и вызвать прерывание  $10  с помощью процедуры Intr. В качестве параметров процедуры передается номер начальной и конечной линий сканирования ($20, $00 – для невидимого курсора; $06, $07 – для стандартного курсора).

My_buffer:

Процедура выводит показания буфера в графическом виде и в виде процентов.

My_producter:

Заполняет буфер простыми числами. Отображает состояние процесса-производителя. Новые данные не могут быть записана поверх старых, также процесс уходит в ожидание, если буфер полон и передает управление потребителю.

My_consumer:

Производит чтение из буфера и опустошение выведенных елементов в массиве. Отображает состояние процесса-потребителя. Процесс уходит в ожидание, если буфер пуст и передает управление производителю.

My_clock:

Процедура выводит системное время в заданном координатами с клавиатуры месте с заданным с клавиатуры дискретом.

My_letalka:

Процедура реализует движущийся объект в ограниченном пространстве.

My_stroka:

Процедура реализует строку, меняющую свой цвет.

My_rule; interrupt :

Главный блок управления программой. Тут реализуется системый таймер для вызова основных процедур и управления процессами производства и потребления.

My_kbrd; interrupt:

Процедура перехвата кодов клавиш клавиатуры, а также для управления процедурами и процессами.

My_help:

Процедура выводит справку по клавишам управления программой.

My_interface:

Процедура рисует основную рамку в программе.

Error_check:

Процедура производит проверку введенных с консоли параметров программы.

Запуск и вид программы.

Необходимо ввести начальные данные в виде параметров командной строки:

1 Задать положение строки с надписью верх-1 или низ-2;

2 Задать координаты часов в пределах [60, 71] по оси Х;

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

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