Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shporka.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
623.62 Кб
Скачать

32.Блокировка записей

В случае, когда к записи имеет доступ несколько процессов, то надо синхронизировать их работу, чтобы не получить неверные данные. Для этого разработан способ синхронизации, который называется блокировка записей. Запись может быть заблокирована либо для чтения, либо для записи.

Используется функция fcntl() эта функция предлагает два типа блокировки: 1) блокировка чтения (предотвращает установку другими процессами бловкировки. Несколько процессов могут устанавливать блокировку чтения для одного и того же участка файла. Это необходимо, когда нужно предотвратить обновление данных, не скрывая их содержимого от других процессов); 2) блокировказ записи: предотвращает установку другими процессами как блокировки чтения, так и блокировки записи. Для одного участка файла может существовать только одна блокировка записи.

Int fcntl(int filedes, int cmd, struct flock *ldata); параметры:1) предварительно файл должен быть открыт. Если испол. блокировка чтения, то файл должен быть открыт с параметром O_RDONLY или O_RDWR. Если блокировка записи: O_RDWR или O_WRONLY. 2) определяет выполнение действия. Значения: а) F_GETLK – получить описание блокировки на основании данных в последнем аргументе. б)F_SETFLK – выполнить попытку блокировки и немедленно возвратить управление, если это невозможно. Это значение параметра также используется для удаления блокировки. в) F_ SETLKW – попытаться применить блокировку к файлу и приостановить работу, если блокировка наложена другим процессом. Структура ldata содержит описание блокировки (fcntl.h): short l_type – тип блокировки; short l_whence – тип смещения; offt l_start – величина смещения в байтах.

34. Cтандартная библиотека ввода/вывода.

Имеются ряд системных вызовов которые реализуют интерфейс ввода вывода

OPEN_CREATE, CLOSE( ), DUP( ), READ ( ), WRITE( ),FCNTL( ),LSCEK( );

Средства буферизации и эффективности ввода-вывода лежат на программисте. Библиотека ввода вывода позволяет использовать вместо файлового дескриптора указатель на специальную структуру FILE которая называется потоком или файловым указателем.

FILE

Extern File*stdin

Extern File*stdout

Extern File*stderror

Использование стандартных потоков ввода вывода позволяет: 1считывать символ из

потока. 2обратно записывать один символ.3форматированный вывод. 4Форматированный ввод.

35.Системное администрирование. Начальная загрузка ос

1. Определяется системная консоль

2. Загрузка программы ISL- системный загрузчик.

3. ISL ищет раздел в котором находится программа загрузки.

4. После того как Unix получает управление от программы загрузки она выполняет 2 задачи. Находит главную файловую систему. Стартует INIT это прародитель всех процессов он переводит систему на уровень 2. Уровень 2 это многопользовательский режим. Выполняется системный вызов EXEC который заменяет команду процесса INIT командами находящимися в файле INIT. Процесс INIT ЧИТАЕТ файл etc/init tab где находится системный инициализирующий процесс Shell для выполнения /etc/rc.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]