Сводка заданий по операционным системам, страница 2

№ вар.

Содержание задания

1

Программа должна запускать другую программу, путь которой указан в командной строке и анализировать код ее завершения.

2

Программа создает поток, в котором делятся друг на друга случайные числа пока их число не станет 100000 или не произойдет деление на 0. Анализируется код возврата.

3

Программа создает три потока и возвращает характеристики рабочего набора этих потоков.

4

Составить программу для ответа на вопрос: как много потоков может создать приложение, прежде чем ОС начнет «беспокоиться». Загрузку процессора контролировать системным монитором.

5

Главный поток преобразует себя в нить. Затем создает еще пять нитей. Главная нить по очереди передает управления каждой из пяти нитей. Те, выполняя действия (любые) возвращают управление главной нити.

6

Создать три потока, контролирующие бюджет Смитта, Ганса и Ивана через локальную память потоков (TLS). Потоки обращаются к функции назначения выплат (генератор случайных чисел в интервале от –1000 до +1000). Функция передает обращающемуся потоку выработанную сумму, которую поток добавляет контролируемому абоненту. Вывести на экран суммы, которые накопятся у абонентов через 10 секунд работы программы.

7

Создать три потока и, используя технологию APC, выполнить по очереди назначенные этим потокам функции АРС.

ЛАБ. № 5

№ вар.

Содержание задания

1

Один поток готовит матрицу в памяти M = 1000х1000 байт со случайными числами от 0 до 255. Другой поток в это время принимает с клавиатуры  два числа X, Y, а третий поток – готовит на экране окно для вывода результатов расчетов. Как только данные с клавиатуры введены – из подготовленного массива выбирается байт с индексом (X,Y) и выводится на экран в окне третьего потока.

2

Имеется файл F1, в котором записано 20 слов (можно больше). Три потока генерируют случайные числа в диапазоне 0 – 100. Если сгенерированное число больше 90, поток генерирует случайное число n от 1  до 20, открывает файл F1, берет из него слово под номером n, открывает файл F2 и вписывает взятое слово в него файлы F1 и F2 закрываются. Каждый поток должен записать в файл F2 по три слова. Полученное предложение приложите в отчет.

3

Три потока генерируют случайные числа в диапазоне от 0 до 1000. Если в потоке число попадется больше 900,  поток выводит на экран (в случайном месте) окно, в котором непрерывно создаются одним потоком - закрашенные окружности случайных радиусов, другим потоком – прямоугольники, а третьим – треугольники. Одновременно на экране может быть не более пяти окон. Пользователь может закрыть одно из них. Тут же появляется другое.

4

Пять потоков генерируют случайные числа в интервале от 0 до 1000. Если свободен мьютекс, поток вызывает функцию BIZNES и передает ей свой номер и сгенерированное число. Функция присуммирует полученное число к счету под номером обратившегося потока. Когда все потоки обратятся к функции BIZNES по 10 раз, программа выводит на экран итоговые суммы, накопившиеся на всех пяти счетах.

5

Когда пользователь нажимает на клавишу      по экрану снизу вверх двигается значок *. При нажатии на      слева направо двигается значок >. Одновременно на экране может быть не более 3-х значков каждого типа.

6

Приложение запускается три раза и создает три окна (последующие запуски к созданию окон не приводят). Когда приложение запускается с ключом /R все окна закрываются.

7

Создать приложение 1, после запуска которого оно ждет, пока не будет запущено приложение 2  и дважды не будет запущено приложение 3, только тогда оно выводит сообщение «УСЛОВИЕ ВЫПОНЕНО»

ЛАБ. № 6

№ вар.

Содержание задания

1

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

2

Осуществить ввод/вывод данных с одновременным  выполнением каких-либо других полезных действий, например сложных математических вычислений.

3

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

4

Написать программу позволяет осуществлять обмен сообщениями между клиентом и сервером по технологии канала для перекрывающегося ввода/вывода. Если она запускается без аргументов командной строки, она начинает работу в режиме сервера. Если в командной строке  указано имя компьютера, программа переходит в режим клиента и пытается соединиться с сервером, который обладает указанным именем. Все символы, набранные на клавиатуре клиента, передаются и печатаются в окне сервера и наоборот.

5

Сделать программу, аналогичную п.4, однако добавить использование порта завершения, чтобы во время ожидания ввода программа не простаивала, а выполняла какие-либо полезные действия, например – генерировала случайные данные.

6

На основе технологии отображения файлов в память создать консольную программу, которая принимает в качестве аргумента командной строки список имен файлов, и копирует содержимое этих файлов один за другим в стандартный поток вывода. Таким образом, при помощи этой утилиты можно объединить несколько файлов в один или отобразить содержимое файлов на экране консоли.