/OS

Primary LanguageC

OS

lab2.sh - Задание: Написать сценарий, который выводит для каждого своего аргумента вывод команды ls -l, если аргумент является именем регулярного файла. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

lab3.sh - Задание: Написать сценарий, который будет выбирать 20 случайных лет в диапазоне от 1000 до 2100 и проверять каждый из них на високосность. Необходимо на отдельной строке вывести год и результат проверки.

lab4.sh - Задание: Написать сценарий, который будет удалять пустые строки из заданного файла. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

lab5.c - Задание: Вычислить "контрольную сумму" файла: байт, являющийся результатом выполнения побитовой операции "исключающее или" для всех байт файла.

lab_ad.c - Задание: Определить, является ли содержимое заданного файла палиндромом. Решить задачу с помощью отображения файлов в память.

POSIX61.c, POSIX61.c, WINAPI6.c - Задание: Для заданной квадратной целочисленной матрицы проверить свойство диагональной постоянности: главная диагональ и все диагонали, параллельные главной, должны состоять из одинаковых (в пределах этой диагонали) значений. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданном ему диапазоне диагоналей. (Однопоточная программа - POSIX61, многопоточные программы - POSIX62, WINAPI6)

POSIX71.c, POSIX72.c, WINAPI72.c - Задание: Выполнить циклический сдвиг на один элемент вправо/вниз всех строк и столбцов заданной матрицы. Каждый из потоков должен обрабатывать свой диапазон столбцов. Необходимо выполнить следующие действия в каждом потоке: 1) выполнить циклический сдвиг внутри каждого столбца; 2) сдвинуть вправо все столбцы, перемещаемые в пределах того же диапазона; 3) сдвинуть вправо (в начало матрицы) все граничные столбцы — по согласованию с соседними потоками (при помощи мьютекса, связанного с данным столбцом). Однопоточная программа - POSIX71, многопоточные программы - POSIX72, WINAPI72

POSIX8.c - Задание: Реализовать программу, которая дожидается запуска заданного количества экземпляров своего процесса, которым назначаются последовательные номера. Дальше первый процесс генерирует случайное число, которое передаёт второму процессу. Второй процесс увеличивает число на 1 и передаёт дальше. Последний процесс после увеличения числа передаёт его первому процессу, который после его увеличения выводит на печать. Передачу значений можно организовать при помощи массива размером, равным количеству процессов. Выполнить задание при помощи интерфейса POSIX.

POSIX9.c - Задание: Родительский процесс должен считать пять строк и передать их дочернему процессу. Дочерний процесс должен выполнить замену всех вхождений второй строки в первой на третью. Результат замены вместе с четвёртой и пятой строкой дочерний процесс должен передать своему дочернему процессу, который, аналогично, должен выполнить замену и вывести свой результат на печать. Задание реализуется в двух вариантах: при помощи интерфейсов Windows API и POSIX. Для взаимодействия процессов необходимо использовать неименованные каналы. Считывать входные данные можно из стандартного ввода, текстового файла или аргументов командной строки.