
- •1.Структура ядра unix
- •2.Типы файлов в unix
- •3.Владельцы файлов
- •4.Права доступа к файлу
- •5.Атрибуты пользователя
- •6.Типы процессов
- •7.Атрибуты процесса
- •8.Жизненный путь процесса
- •9. Пользовательская среда в unix.
- •10. Подсистема управления процессом.
- •13 Пространство и контекст процесса
- •11. Инфраструктура процесса в unix.
- •12. Состояния процессов в unix.
- •14 Файловая система s5fs
- •15.Файловая система ffs
- •16.Примитивы доступа к файлам в ос unix
- •17.Параллельное программирование в unix.
- •18.Создание процесса с помощью fork
- •19.Приминение функции exec
- •20. Програмные каналы
- •21. Переназначение стандартного ввода/вывода.
- •23. Программные каналы как средство синхронизации процессов.
- •22.Использование канала fifo
- •24.Сигналы в unix
- •25.Обработка сигналов.
- •26. Использование обработчика сигналов для предотвращения появления процессов "зомби"
- •27. Посылка сигналов процессам.
- •29.Разделяемая память в unix
- •28.Завершение выполнения процесса.
- •Ожидание завершения выполнения процесса
- •30. Семафоры в unix
- •33. Cтандартный ввод стандартный вывод и стандартный вывод диагностики.
- •31. Очереди сообщения в unix
- •32.Блокировка записей
- •34. Cтандартная библиотека ввода/вывода.
- •35.Системное администрирование. Начальная загрузка ос
- •36.Взаимодействие пользователей с ос.
- •37. Задание системного времени(и даты).
- •38. Уровни выполнения: (команда init schutdown)
- •39.Системные каталоги и папки
- •41.Файл /etc/passwd/
- •43.Управление правами доступа
- •42. Управление пользовательской системной средой
- •40. Системные журналы и анализ производительности процесса.
15.Файловая система ffs
FFS(Fast File System) обладая полной функциональностью системы s5fs, использует те же структуры данных ядра. Основные изменения затронули расположение файловой системы на диске, дисковые структуры данных и алгоритмы размещения свободных блоков, что повысило её производительность и надежность.
Организация файловой системы предусматривает логическое деление дискового раздела на одну или несколько групп цилиндров. Группы цилиндров представляет собой несколько последовательных дисковых цилиндров. Каждая группа цилиндров содержит управляющую информацию, включающую резервную копию суперблока, массив inode, данные о свободных блоках и итоговую информацию об использовании дисковых блоков в группе. Для каждой группы цилиндров при создании файловой системы выделяется место под определенное количество inode. При этом обычно на каждые 2 Кбайт блоков хранения данных создается один inode. Поскольку размеры группы цилиндров и массива inode фиксированы, то в файловой системе FFS как и в s5fs присутствуют ограничения на количество файлов.
16.Примитивы доступа к файлам в ос unix
В операционной системе UNIX доступ к файлу разделяется: для владельца, группы и для всех остальных.
Пример: - rwxr--r--1 ivan group1 dec 03 18:30 program.c ,
где «-» указывает что это файл (для директории - d, для ссылки - l)
«rwxr--r--» - права доступа к файлу
первые три символа права доступа владельца файла
вторые три – права доступа группы пользователей
последние три символа – права доступа для всех остальных
Значение символов:
r – разрешено чтение (соответствующая цифра 4)
w – разрешена запись (соответствующая цифра 2)
x – разрешено выполнение (соответствующая цифра 1)
- - данный символ запрещает чтение, запись или выполнение, в зависимости от позиции, в которой он находиться.
«1» - количество ссылок
«ivan» - имя владельца файла
«group1» - имя группы владельца файла
«dec 03 18:30» - дата последней модификации файла
«program.c» - имя файла
В данном примере program.c является обычным файлом. Владелец файла ivan имеет все права доступа к нему, а группа group1 и все остальные имеют право только читать данный файл.Для задания прав доступа к файлу существует команда chmod.
17.Параллельное программирование в unix.
В UNIX паралел. Программирование достигается выполнением шагов:
1. fork() – функция, которая создает копию родительского процесса.
2. ф-ция exect() – этот новый процесс подключает к выполнению некоторой другой рограммы.
3. между роцессами может быть установлена связь с пом. Каналов pipe. Кроме того, для связи между процессами могут использоваться сигналы, файлы и другие средства.
18.Создание процесса с помощью fork
fork - порождает дочерний процесс
СИНТАКСИС
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
ОПИСАНИЕ
fork порождает дочерний процесс, который отличается от родительского процесса только значениями PID (идентификатора процесса) и PPID (идентификатора родительского процесса), и значение счетчиков использования ресурсов равно 0. Блокировки файлов и сигналы, ожидающие обработки, не наследуются.
В Linux fork реализован с помощью метода "копирование страниц при записи" (copy-on-write), поэтому расходы на fork сводятся к копированию таблицы страниц родителя и созданию уникальной структуры, описывающей задачу порожденного процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном завершении родительскому процессу возвращается PID дочернего, а дочернему процессу возвращается 0. При неудачном завершении родительскому процессу возвращается -1, дочерний процесс не создается, а в переменную errno записывается код ошибки.