- •Алексеев Игорь Геннадиевич,
- •Часть 1
- •Содержание
- •1. Основные команды ос unix
- •2. Лабораторные работы лабораторная работа №1 управление ос linux, интерпретатор bash
- •Теоретическая часть
- •Порядок выполнения работы
- •Варианты индивидуальных заданий
- •Лабораторная работа №2 работа с файлами и каталогами ос unix
- •Теоретическая часть
- •Порядок выполнения работы
- •Варианты индивидуальных заданий
- •Лабораторная работа №3 процессы в ос linux
- •Теоретическая часть
- •Порядок выполнения работы
- •Варианты индивидуальных заданий
- •Лабораторная работа №4 использование сигналов в ос linux
- •Теоретическая часть
- •Порядок выполнения работы
- •Варианты индивидуальных заданий
- •Лабораторная работа №5 потоки в ос linux
- •Теоретическая часть
- •Порядок выполнения работы
- •Варианты индивидуальных заданий
- •Лабораторная работа №6 семафоры в ос unix/linux
- •Теоретическая часть
- •Варианты индивидуальных заданий
- •Лабораторная работа №7 использование каналов в ос linux
- •Теоретическая часть
- •Порядок выполнения работы
- •Варианты индивидуальных заданий
- •Лабораторная работа №8 использование общей памяти в ос linux
- •Теоретическая часть
- •Варианты индивидуальных заданий
- •Алексеев Игорь Геннадьевич, Бранцевич Петр Юльянович
Порядок выполнения работы
Изучить теоретическую часть лабораторной работы.
Написать программу, создающую два дочерних процесса с использованием двух вызовов fork(). Родительский и два дочерних процесса должны выводить на экран свойpidиpidродительского процесса и текущее время в формате:часы: минуты: секунды: миллисекунды. Используя вызовsystem (),выполнить командуps -xв родительском процессе. Найти свои процессы в списке запущенных процессов.
Варианты индивидуальных заданий
Написать программу нахождения массива Nпоследовательных значений функцииy[i]=sin(2*PI*i/N) (i=0,1,2…N-1)с использованием ряда Тейлора. Пользователь задаёт значенияN и количествоnчленов ряда Тейлора. Для расчета каждого членаряда Тейлоразапускается отдельный процесс. Каждый процесс выводит на экран и в файл свойpidи рассчитанное значениеряда. Головной процесс считывает из файла значения всех рассчитанных членов ряда Тейлора, суммирует ихи полученное значение y[i] записывает в файл. Проверить работу программы дляN=256 n=5; N=1024 n=10.
Написать программу синхронизации двух каталогов, например, Dir1иDir2. Пользователь задаёт именаDir1иDir2. В результате работы программы файлы, имеющиеся вDir1, но отсутствующие вDir2, должны скопироваться вDir2вместе с правами доступа. Процедуры копирования должны запускаться в отдельном процессе для каждого копируемого файла. Каждый процесс выводит на экран свойpid,полный путь к копируемому файлу и число скопированных байт. Число одновременно работающих процессов не должно превышатьN(вводится пользователем). Скопировать несколько файлов из каталога/etc в свой домашний каталог. Проверить работу программы для каталога/etc идомашнего каталога.
Написать программу поиска одинаковых по содержимому файлов в двух каталогов, например, Dir1иDir2. Пользователь задаёт именаDir1иDir2. В результате работы программы файлы, имеющиеся вDir1, сравниваются с файлами вDir2 по их содержимому. Процедуры сравнения должны запускаться в отдельном процессе для каждой пары сравниваемых файлов. Каждый процесс выводит на экран свойpid, имя файла, общее число просмотренных байт и результаты сравнения. Число одновременно работающих процессов не должно превышатьN(вводится пользователем). Скопировать несколько файлов из каталога/etc в свой домашний каталог. Проверить работу программы для каталога/etc идомашнего каталога.
Написать программу поиска заданной пользователем комбинации из mбайт (m <255) во всех файлах текущего каталога. Пользователь задаёт имя каталога. Главный процесс открывает каталог и запускает для каждого файла каталога отдельный процесс поиска заданной комбинации изmбайт. Каждый процесс выводит на экран свойpid, полный путь к файлу, общее число просмотренных байт и результаты (сколько раз найдена комбинация) поиска. Число одновременно работающих процессов не должно превышатьN(вводится пользователем). Проверить работу программы для каталога/etc истроки ifconfig.
Разработать программу «интерпретатор команд», которая воспринимает команды, вводимые с клавиатуры, (например,ls -l /bin/bash) и осуществляет их корректное выполнение. Для этого каждая вводимая команда должна выполняться в отдельном процессе с использованием вызоваexec(). Предусмотреть возможность перенаправления (ввода\вывода ’>> ’, ’> ’, ’ <’).
Написать программу подсчета количества слов в файлах заданного каталога его подкаталогов. Пользователь задаёт имя каталога. Главный процесс открывает каталоги и запускает для каждого файла каталога отдельный процесс подсчета количества слов. Каждый процесс выводит на экран свой pid, полный путь к файлу, общее число просмотренных байт и количество слов. Число одновременно работающих процессов не должно превышатьN(вводится пользователем). Проверить работу программы для каталога/etc истроки ifconfig.
Написать программу подсчета частоты встречающихся символов в файлах заданного каталога его подкаталогов. Пользователь задаёт имя каталога. Главный процесс открывает каталоги и запускает для каждого файла каталога и отдельный процесс подсчета количества слов. Каждый процесс выводит на экран свой pid, полный путь к файлу, общее число просмотренных байт и количество слов. Число одновременно работающих процессов не должно превышатьN(вводится пользователем). Проверить работу программы для каталога/etc истроки ifconfig.