ЗАХВАТ ФАЙЛОВ И ЗАПИСЕЙ Системные вызовы и библиотеки Unix SVR4.

Презентация:



Advertisements
Похожие презентации
ЗАХВАТ ФАЙЛОВ И ЗАПИСЕЙ Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
Advertisements

СИСТЕМНЫЕ ВЫЗОВЫ ВВОДА И ВЫВОДА Системные вызовы и библиотеки Unix SVR4.
УПРАВЛЕНИЕ ДИРЕКТОРИЯМИ Системные вызовы и библиотеки Unix SVR4.
Средства System V IPC Системные вызовы и библиотеки Unix SVR4.
УПРАВЛЕНИЕ ДИРЕКТОРИЯМИ Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
Средства System V IPC Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Лекция 3 Работа с файлами (весенний семестр 2012 г.) Доцент Кафедры вычислительных систем, к.т.н. Поляков Артем.
Система межпроцессного взаимодействия IPC. Общие концепции #include key_t ftok ( char * filename, char proj ) filename строка, cодержащая имя файла proj.
Система межпроцессного взаимодействия IPC.. Система межпроцессного взаимодействия IPC. Состав. Очереди сообщений Семафоры Разделяемая память.
Асинхронный ввод/вывод Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
Потоки (файлы) Функции и типы для работы с потоками в стиле С описаны в модуле stdio.h. В отличие от Паскаля в С с потоком не связан тип данных. Поток.
2.Система межпроцессного взаимодействия IPC 2.1.Состав, общие концепции 2.2.Очередь сообщений 2.3.Разделяемая память 2.4.Массив семафоров Взаимодействие.
Файловый ввод-вывод Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» ФГОБУ ВПО "СибГУТИ"
Блокировки чтения-записи Введение Получение и сброс блокировки чтения-записи Атрибуты блокировки чтения-записи Реализация Отмена выполнения потоков Пример.
Операционные системы Файловые системы (часть 2). Организация ФС UNIX. Виды файлов Обычный файл (regular file) Каталог (directory) Специальный файл устройств.
Корпоративные системы Лекция 3. Реализация архитектуры «Клиент- сервер» с использованием механизма сокетов.
Атрибуты потоков Атрибуты являются способом определить поведение потока, отличное от поведения по умолчанию. При создании потока с помощью pthread_create()
УПРАВЛЕНИЕ ТЕРМИНАЛЬНЫМ ВВОДОМ/ВЫВОДОМ Системные вызовы и библиотеки Unix SVR4.
Файловый тип данных Turbo Pascal Операции для работы с файлами 11 класс.
Работа с файлами FILE НГТУ ИРИТ кафедра ИСУ Ольга Пронина.
Транксрипт:

ЗАХВАТ ФАЙЛОВ И ЗАПИСЕЙ Системные вызовы и библиотеки Unix SVR4

По завершению этого раздела вы будете знать, что такое захват файлов и записей знать, что такое захват записей сможете установить захват файла по чтению и по изменению получить информацию о захвате файла

ЧТО ТАКОЕ ЗАХВАТ ЗАПИСИ И ФАЙЛА? Совместные процессы работают вместе, выполняя определенным образом одну задачу. Запись - это последовательный набор байтов в файле Захват записи по чтению (разделяемый доступ) не дает другим процессам установить захват записи по изменению Захват записи по изменению (эксклюзивный доступ) не дает другим процессам установить захват записи по чтению/изменению, пока этот захват по изменению не будет снят Допустимое захватывание (advisory lock): захват записи проверяется прикладной программой перед попыткой установки захвата Обязательное захватывание (mandatory lock): захват записи проверяется ядром перед выполнением операций ввода/вывода

Mandatory/advisory По умолчанию захват происходит в advisory режиме Mandatory locking включается атрибутом файла: bash>chmod +l file Не работает на NFS (ваши домашние каталоги подключаются по NFS). Используйте /tmp

Установка захвата #include int fcntl(int fildes, int cmd, struct flock *arg); значения cmd F_GETLK получить информацию о захвате записи F_SETLK установить захват записи F_SETLKW установить захват записи (с блокировкой)

struct flock typedef struct flock { short l_type; /* F_RDLCK, F_WRLCK, F_UNLCK */ short l_whence; /* SEEK_SET, SEEK_CUR, SEEK_END */ off_t l_start; off_t l_len; /* len == 0 means until end of file */ long l_sysid; pid_t l_pid; long pad[4]; /* reserve area */ } flock_t;

lockf (3C) ИСПОЛЬЗОВАНИЕ #include int lockf (int fildes, int function, long size); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена