Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Языки программирования / Литература по C++ / Лабораторная работа №5 (ОС и СП - 4)

.pdf
Скачиваний:
54
Добавлен:
31.05.2015
Размер:
359.11 Кб
Скачать

Основы многозадачности. Процессы в Linux

Лабораторная работа # 5

1

«Операционные системы и системное программирование» (4 семестр)

ЛАБОРАТОРНАЯ РАБОТА № 5

ОСНОВЫ МНОГОЗАДАЧНОСТИ. ПРОЦЕССЫ В LINUX

Цель работы:

изучить базовые термины и концепции, связанные с многозадачностью;

ознакомиться с основами создания, обработки и управления процессами в рабочей среде Linux;

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

Изучаемые вопросы:

основы многозадачности (multitasking) и мультипрограммирования;

мультипрограммирование в системах пакетной обработки, в системах разделения времени и в системах реального времени;

мультипроцессорная обработка;

понятие процесса, структура процесса, идентификатор процесса, планирование про-

цессов;

диаграмма состояния процесса; время выполнения процесса;

понятие очереди обработки процессов; подходы, используемые для обработки очере-

дей: квантование, приоритет, смешанный;

таблица процессов и их просмотр;

создание и способы запуска новых процессов;

замена и дублирование образа процесса;

ожидание выполнения процесса;

типы процессов: порождающие (родительские), порождѐнные (дочерние) процессы,

процессы-зомби и процессы-демоны;

приоритет процесса.

Постановка задачи:

1) Основное задание (0 – 90 баллов): необходимо написать программу, которая ре-

ализует следующие возможности:

вывод списка выполняемых текущим пользователем процессов, а также про-

цессов, выполняемых другими пользователями и системных процессов (или всех процессов в системе);

® 2011-2012 учебный год. Кафедра <ПОВТ и АС>, ФИТР, БНТУ.

2

«Операционные системы и системное программирование» (4 семестр)

запуск новых процессов (можно свои программы из предыдущих лаборатор-

ных работ) по выбору пользователя и ожидания результата их выполнения;

установка приоритетов для соответствующих запускаемых процессов, а также привязку к процессору для дочерних процессов.

2) Дополнительное задание (91 - 100 баллов): написать программу-фильтр, кото-

рая читает из стандартного ввода и пишет в свой стандартный вывод, выполняя при этом по-

лезное преобразование.

3)Название программы должно быть осмысленным. Все дополнительные функции должны быть вынесены в отдельный файл. Все параметры и файлы передаются программам как аргументы.

4)Должна быть предусмотрена обработка ошибок, которые могут возникнуть в ре-

зультате работы программы.

5)Во время работы программы должны выводить на экран исходные и конечные

данные.

6)Предусмотреть использования различных способов запуска процессов.

7)Для выполнения работы необходимо использовать инструментальные средства

(gcc, gdb, objdump, ...) и среду разработки приложений под Linux. Также разрешается приме-

нить для написания программ интегрированные среды разработки (IDE, рекомендуется

Eclipse, NetBeans, Qt).

8) При написании кода необходимо придерживаться соответствующего стиля разра-

ботки программ на языке программирования C/C++ (см. папку Coding Convention).

Best of luck with it, and remember to HAVE FUN while you’re learning :)

Victor Ivanchenko

® 2011-2012 учебный год. Кафедра <ПОВТ и АС>, ФИТР, БНТУ.