Операционные системы - лабораторные
Операционные системы
Лабораторная работа № 2
Требуется разработать программу на языке shell (без использования команды find), выполняющую поиск в заданном поддереве файловой структуры всех файлов, имена которых отвечают заданному шаблону. Результатом работы программы является перечень имен искомых файлов на экране.
Примечание. Программа состоит из двух скриптов. Главный скрипт выполняет вывод на экран приглашения ввести с клавиатуры имя-путь начального каталога и шаблон поиска. Далее он выполняет ввод этих данных с клавиатуры и выводит на экран перечень искомых файлов в начальном каталоге поиска (если они там есть). Затем он вызывает для каждого подкаталога вложенный скрипт, передав ему два входных параметра: 1) относительное имя подкаталога; 2) шаблон поиска.
Вложенный скрипт выполняет поиск в заданном каталоге искомых файлов, а для каждого подкаталога вызывает точно такой же скрипт. (При выполнении любого скрипта запускается новый экземпляр shell, поэтому рекурсивное выполнение скриптов не приводит к каким-либо трудностям.)
Лабораторная работа № 3
Требуется разработать программу:
вывод на экран содержимого текстового файла, имя которого задается в командной строке, используя стандартные функции;
Лабораторная работа № 4
Требуется разработать программу:
Процесс-отец порождает четыре дочерних процесса, каждый из которых выполняет бесконечный цикл. При этом каждый из дочерних процессов особым образом реагирует на сигнал SIGINT:
процесс 1 обрабатывает сигнал SIGINT в бесконечном цикле, выдавая свое сообщение на экран, добавляя к нему текущую дату. Данный цикл защищен от воздействия сигнала SIGQUIT;
процесс 2 при получении сигнала SIGINT выводит сообщение на экран и продолжается;
вся программа процесса 3 защищена от воздействия сигнала SIGINT;
перед входом процесса 4 в бесконечный цикл для него меняется идентификатор сеанса.
Сразу после порождения дочерних процессов процесс-отец завершается.
Далее следует проверить реакцию оставшихся процессов на сигналы SIGINT и SIGQUIT.