Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Порядок выполнения работы. 3.1. Для вариантов заданий написать и отладить программу, реализующую порожденный процесс.

Читайте также:
  1. D. Требования к структуре и оформлению курсовой работы.
  2. E. Порядок защиты курсовой работы.
  3. Gl] Тема 9.Законность и правопорядок. Мировой правопорядок
  4. II. ВЫБОР ТЕМЫ КУРСОВОЙ РАБОТЫ. ПОДБОР И ОЗНАКОМЛЕНИЕ С ЛИТЕРАТУРОЙ ПО ВЫБРАННОЙ ТЕМЕ
  5. II. Порядок выполнения
  6. II. Порядок выполнения курсовой работы
  7. II. Порядок выполнения, рецензирования и защиты курсовой работы
  8. II. ЦЕЛИ И ЗАДАЧИ ВЫПОЛНЕНИЯ КУРСОВОЙ И ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ (ДИПЛОМНОЙ) РАБОТЫ
  9. III. Организация и порядок прохождения практики
  10. III. Организация разработки тематики и выполнения выпускных квалификационных работ

3.1. Для вариантов заданий написать и отладить программу, реализующую порожденный процесс.

3.2. Для вариантов заданий написать и отладить программу, реализующую родительский процесс, вызывающий и отслеживающий состояние порожденных процессов - программ (ждущий их завершения или уничтожающий их, в зависимости от варианта).

 

Варианты заданий.

4.1. Поиск указанной строки в указанном файле. Обработка одной строки в порожденном процессе.

4.2. Умножение матрицы на вектор. Обработка одной строки матрицы - в порожденном процессе.

4.3. Поиск всех простых чисел (простым называется число, которое является своим наибольшим делителем) в указанном интервале чисел, разделенном на несколько диапазонов. Обработка каждого диапазона производится в порожденном процессе. Классический алгоритм Евклида определения наибольшего общего делителя двух целых чисел (x, y) может применяться при следующих условиях:

· оба числа x и y неотрицательные;

· оба числа x и y отличны от нуля.

На каждом шаге алгоритма выполняются сравнения:

· если x == y, то ответ найден;

· если x < y, то y заменяется значением y - x;

· если x > y, то x заменяется значением x - y.

4.4. Warcraft. Заданное количество юнитов добывают золото равными порциями из одной шахты, задерживаясь в пути на случайное время, до ее истощения. Работа каждого юнита реализуется в порожденном процессе.

4.5. Винни-Пух и пчелы. Заданное количество пчел добывают мед равными порциями, задерживаясь в пути на случайное время. Винни-Пух потребляет мед порциями заданной величины за заданное время и столько же времени может прожить без питания. Работа каждой пчелы реализуется в порожденном процессе.

4.6. Шарики. Координаты заданного количества шариков изменяются на случайную величину по вертикали и горизонтали. При выпадении шарика за нижнюю границу допустимой области шарик исчезает. Изменение координат каждого шарика в отдельном процессе (потоке).

4.7. Противостояние нескольких команд. Каждая команда увеличивается на случайное количество бойцов и убивает случайное количество бойцов участника. Борьба каждой команды реализуется в отдельном процессе.

4.8. Статистический анализ. Имеется несколько массивов данных (разного размера). Требуется определить математическое ожидание в каждом массиве. Обработка каждого массива выполняется в отдельном процессе.

4.9. Контрольная сумма. Для нескольких файлов (разного размера) требуется вычислить контрольную сумму (сумму кодов всех символов файла). Обработка каждого файла выполняется в отдельном процессе.

4.10. Авиаразведка. Создается условная карта в виде матрицы, размерность которой определяет размер карты, содержащей произвольное количество единиц (целей) в произвольных ячейках. Из произвольной точки карты стартуют несколько разведчиков (процессов), курсы которых выбираются так, чтобы покрыть максимальную площадь карты. Каждый разведчик фиксирует цели, чьи координаты совпадают с его координатами и по достижении границ карты сообщает количество обнаруженных целей.

4.11. Разработать программу, которая вычисляет число сочетаний C(k,n)=n!/(k!*(n-k)!). Для вычисления факториалов n!, k!, (n-k)! должны быть порождены три параллельных процесса-потомка.

4.12. Разработать программу, вычисляющую значение f(x) как сумму ряда по k от 1 до N выражения (-1)**(k+1)*x**(2k-1)/(2k-1)! для значений x, равномерно распределенных на интервале [0,Пи], и выводящую полученный результат f(x) в файл в двоичном формате. В это время предварительно подготовленный процесс-потомок читает данные из файла, преобразовывает их в текстовую форму и выводит на экран до тех пор, пока процесс-предок не передаст ему через файл ключевое слово "STOP", свидетельствующее об окончании процессов. Для вычисления факториала должен быть порожден параллельный процесс-потомок.

4.13. Разработать программу, вычисляющую значение f(x) как сумму ряда по k от 0 до N выражения x**(2k+1)/(2k+1) для значений x, из интервала [0,Пи], с шагом h и выводящую полученный результат f(x) в файл в двоичном формате. В это время предварительно подготовленный процесс-потомок читает данные из файла, преобразовывает их в текстовую форму и выводит на экран до тех пор, пока процесс-предок не передаст ему через файл число 12.456, свидетельствующее об окончании процессов.

4.14. Разработать программу, которая вычисляет число размещений n элементов по r ячейкам по формуле N=n!/n(1)!*n(2)!*...*n(r)!, удовлетворяющих требованию, что в ячейку с номером i попадает ровно n(i) элементов; i=1,...,r и n(1)+n(2)+...+n(r)=n. Для вычисления факториалов n!, n(i)! должны быть порождены параллельные процессы-потомки.

 

Содержание отчета.

5.1. Цель работы.

5.2. Вариант задания.

5.3. Листинги программ.

5.4. Протоколы выполнения программ.

 

Контрольные вопросы.

6.1. Особенности компиляции и запуска С-программ в Linux.

6.2. Что такое pid, как его определить в операционной системе и программе?

6.3. Функция fork() - назначение, применение, возвращаемое значение.

6.4. Как запустить на выполнение в порожденном процессе функцию? Программу?

6.5. Способы синхронизации родительского и дочерних процессов.

6.6. Как узнать состояние порожденного процесса при его завершении и возвращенное им значение?

6.7. Как управлять приоритетами процессов?

6.8. Как уничтожить процесс в операционной системе и программе?

 




Дата добавления: 2014-12-19; просмотров: 72 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.077 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав