Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Внимание! В заданиях, где операционная система явно не указана, допускается выбрать самостоятельно тип системы

ОПЕРАЦИОННЫЕ СИСТЕМЫ

Вариант 13

Лабораторная работа № 1

Пример файла аудита

Файл аудита – файл, содержащий записи о действиях пользователей в системе, каждая запись которого удовлетворяет следующему образцу:

 

<метка_времени>{табуляция}

<имя_пользователя>{табуляция}

<тип_записи>[{табуляция}<имя_файла>]

{конец_строки}

 

Метка времени содержит дату и время регистрации действия.

Тип записи может принимать следующие значения:

· login – вход пользователя в систему.

· logout – выход пользователя из системы.

· open – открытие файла.

· read – чтение содержимого файла.

· write – изменение содержимого файла.

· exec – исполнение файла.

Поле имени файла определено только для записей типа open, read, write, exec.

Журнал может содержать следующую последовательность записей:

 

10.10.2002\t17:00:00:000\tuser\tlogin\n

10.10.2002\t17:00:03:750\tuser\tread\t/home/user/file1\n

10.10.2002\t17:00:10:950\tuser\tlogout\n

1. Ответить на поставленные контрольные вопросы:

· каким образом можно ввести новую или удалить существующую переменную среды окружения для текущего сеанса shell?

· в каких ситуациях удобно использовать редактор SED?

· используя справочник man, узнайте, возможно, ли применять команду chmod, для рекурсивной смены прав доступа к файлам/подкаталогам внутри каталога?

2. Написать скрипт на языке shell, выполняющий поиск и уничтожение файлов с определенным именем (имя файла и каталоги поиска должны являться параметрами скрипта). Например: искать и удалять файлы с именем “ftpd???.log” из каталога временных файлов (“/usr/tmp”).

3. Написать скрипт на языке shell, выполняющий периодический поиск и уничтожение файлов, с определенным содержанием (содержание файла, каталог поиска и период поиска должны являться параметрами скрипта). Например: каждые 30 мин. искать и удалять из каталога временных файлов (“/usr/tmp”) все файлы, содержащие строку "ftpd: session closed ok".

4. Разработать shell скрипт, использующий sed для анализа готового файла журнала аудита (формат файла приведен в примере).

Скрипт должен выполнять следующие действия:

· сгруппировывать события по дням;

· выводить статистику событий в журнале, а именно:

o количество событий от разных пользователей

o количество событий в зависимости от типа события

o количество событий по дням;

· удалять строки содержащие, определенное имя пользователя, которое задается переменной в скрипте.

5. Используя редактор SED и скриптовый язык SHELL, разработать программу, которая выводит на экран содержимое текущего каталога в порядке возрастания размеров файлов. При этом имена каталогов должны выводиться первыми.

Лабораторная работа № 2

Пример файла аудита

Файл аудита – файл, содержащий записи о действиях пользователей в системе, каждая запись которого удовлетворяет следующему образцу:

 

<метка_времени>{табуляция}

<имя_пользователя>{табуляция}

<тип_записи>[{табуляция}<имя_файла>]

{конец_строки}

 

Метка времени содержит дату и время регистрации действия.

Тип записи может принимать следующие значения:

· login – вход пользователя в систему.

· logout – выход пользователя из системы.

· open – открытие файла.

· read – чтение содержимого файла.

· write – изменение содержимого файла.

· exec – исполнение файла.

Поле имени файла определено только для записей типа open, read, write, exec.

Журнал может содержать следующую последовательность записей:

 

10.10.2002\t17:00:00:000\tuser\tlogin\n

10.10.2002\t17:00:03:750\tuser\tread\t/home/user/file1\n

10.10.2002\t17:00:10:950\tuser\tlogout\n

1. Ответить на поставленные контрольные вопросы:

· с какой цифры начинается нумерация элементов массива в AWK?

· какие типы структур данных присутствуют в языке Perl?

· что такое хеш в Perl?

2. Разработать Perl скрипт для анализа готового файла журнала аудита (формат файла приведен в примере)

Скрипт должен выполнять следующие действия:

· сгруппировывать события по дням;

· выводить статистику событий в журнале, а именно:

o количество событий от разных пользователей

o количество событий в зависимости от типа события

o количество событий по дням;

· удалять строки содержащие, определенное имя пользователя, которое задается переменной в скрипте;

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

3. Проделать вышеприведенное задание с помощью редактора AWK.

4. Используя скриптовый язык Perl, разработать программу, которая выводит на экран содержимое текущего каталога в порядке возрастания размеров файлов. При этом имена каталогов должны выводиться первыми.

Лабораторная работа № 3

Внимание! В заданиях, где операционная система явно не указана, допускается выбрать самостоятельно тип системы.

1. Ответить на поставленные контрольные вопросы:

· как создается дочерний процесс, каково состояние дочернего процесса после его создания?

· по какой причине многие программы явно не используют вызов функции close?

· чем отличается поименованный канал от непоименованного?

2. Выполнить запуск программ, приведенных в примерах 1-4. Модифицируйте программу из примера 1 на использование функции perror() для извещения оператора об ошибках. Модифицируйте программу из примера 4 для выполнения побайтового копирования одного файла в другой.

3. Написать на языке С программу error10 выполняющую запись 10 байт в стандартный поток ошибок. Прокомментировать результат.

4. Произвести чтение нулевого сектора жесткого диска и вывести в доступном виде (с пояснениями), интерпретацию 1-го дескриптора основного раздела. Операционная система WindowsNT/2000/XP.

5. Написать программу на языке С, демонстрирующую порождение двух новых процессов, связанных через конвейер, являющийся программным каналом. Программа должна выполнять:

o создание программного канала;

o порождение двух дочерних процессов;

o запуск одним из порожденных процессов программы read10, а другим – программы write10 с предварительной установкой стандартных потоков ввода-вывода на файловые дескрипторы программного канала и закрытием всех ненужных файловых дескрипторов;

o ожидание завершения обоих порожденных процессов (write10 выполняет запись 10 байт в стандартный поток вывода, read10 - чтение).

 

Лабораторная работа № 4

1. Ответить на следующие контрольные вопросы:

· назовите и кратко опишите способы перехода от виртуальных адресов к физическим?

· перечислите основные недостатки страничной организации памяти;

· в алгоритмах работы "сборщика" страниц и программы обработки отказов из-за недоступности данных предполагается, что размер страницы равен размеру дискового блока. Что нужно изменить в этих алгоритмах для того, чтобы они работали и в тех случаях, когда указанное равенство не соблюдается.

2. Переделайте алгоритмы getblk и brelse так, чтобы ядро следовало не схеме замещения буферов, к которым наиболее долго не было обращений, а схеме "первым пришел - первым вышел". Повторите то же самое со схемой замещения редко используемых буферов. Смоделируйте данную ситуацию. Операционная система - Windows.

3. Напишите набор программ, удовлетворяющих теоретическому понятию оверлея. Каждый оверлей должен осуществлять какие-либо вычисления, выводя результаты в терминал, далее он передает управление другому оверлею из комплекса. Всего в комплексе должно быть не менее 2 оверлеев. Операционная система - Unix.

 

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

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

2. Ответить на контрольные вопросы:

· опишите сходства и различия процессов и нитей в UNIX;

· опишите основные операции над мутексами в UNIX;

· как организовать критическую секцию программы при помощи функций работы с семафорами потоков Linux?

Лабораторная работа № 6

1. UNIX. Написать программу trykill которая на практике определяет множество сигналов:

o которыми могут обмениваться 2 процесса одного пользователя;

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

o которые могут быть посланы процессом пользователя A процессу пользователя root.

2. Ответить на контрольные вопросы:

· опишите реализацию приоритетов в Windows;

· что понимают под zombie-процессом, и как он образуется в UNIX;

· что представляют собой специальные файлы устройств и каково их предназначение в UNIX.

Лабораторная работа № 7

1. X Window. Выполнить компиляцию и запуск программы из примера 3. Выполнить интерпретацию всех параметров графического контекста, используемых в нем при выводе графических элементов.

2. WINAPI. Создать оконное приложение, имеющие в рабочей области главного окна два поля ввода текста (EDIT) и кнопку (BUTTON). По нажатию кнопки текст из одного окна ввода (например, правого или верхнего, в зависимости от расположения) копирует в другое (левое или нижнее соответственно). Если текст не введён, должно появляться окно сообщения с информацией о том, что текст не введён.

3. Ответить на контрольные вопросы:

· почему функция XClearArea() неприменима в отношении объектов pixmap? (UNIX)

· какие возможности предоставляются X-клиенту для управления входной очередью событий? (UNIX)

· для чего необходимо регистрировать класс окна? (Windows)

· какие характеристики класса окон можно задать при его регистрации? Какие поля структуры, описывающей класс окна, являются наиболее важными? (Windows)

Лабораторная работа № 8

Разработать на языке C программу transport, демонстрирующую использование основных функций работы с сокетами UNIX. Программа должна порождать три процесса — клиент общается с двумя серверами, которые выполняют однонаправленную передачу данных между собой через TCP cокеты, относящиеся к локальному сетевому интерфейсу lo.

При помощи программы transport оценить скорость передачи данных через стек протоколов TCP/IP при использовании протокола TCP.

Оценить снижение скорости передачи данных в следующих ситуациях: обмен данными между процессами программы transport осуществляется поочередно в обоих направлениях; одновременно работают несколько параллельно запущенных программ transport.

 

 



<== предыдущая лекция | следующая лекция ==>
Демократичні основи політичного життя суспільства. Сучасні концепції демократії | Требования к помещениям, где располагаются паровые и водогрейные котлы
Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 307 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наука — это организованные знания, мудрость — это организованная жизнь. © Иммануил Кант
==> читать все изречения...

2329 - | 2119 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.014 с.