Разделы презентаций


Архитектура ЭВМ. Операционные системы

Содержание

Файлсущность, позволяющая получить доступ к какому- либо ресурсу вычислительной̆ системы. В большинстве случаев файл определяет именованную область на устройстве хранения данных. В unix-like операционных системах файлом является большинство ресурсов вычислительной̆ системы.

Слайды и текст этой презентации

Слайд 1Архитектура ЭВМ. Операционные системы
Власов Евгений

Архитектура ЭВМ. Операционные системыВласов Евгений

Слайд 2Файл
сущность, позволяющая получить доступ к какому- либо ресурсу вычислительной̆ системы. В

большинстве случаев файл определяет именованную область на устройстве хранения данных.

В unix-like операционных системах файлом является большинство ресурсов вычислительной̆ системы.

Файлсущность, позволяющая получить доступ к какому- либо ресурсу вычислительной̆ системы. В большинстве случаев файл определяет именованную область

Слайд 3В UNIX и POSIX- системах существуют следующие типы файлов[]
Обычный̆

файл
Каталог
FIFO-файл
Символическая ссылка
Байт-ориентированный̆ файл устройства
Блок-ориентированный файл

устройства.

В UNIX и POSIX- системах существуют следующие типы файлов[] Обычный̆ файл Каталог FIFO-файл Символическая ссылка Байт-ориентированный̆ файл

Слайд 4Обычный̆ файл может быть тестовым и двоичным. В unix системах

эти типы файлов не различаются и оба могут быть «исполняемыми»

при условии, что на них установлено разрешение на выполнение и они могут читаться и записываться пользователем, имеющим соответствующие права доступа.

FIFO-файл является специальным файлом, который̆ предназначен для организации обмена данными между процессами.

Символическая ссылка содержит путевое имя, которое обозначает другой̆ файл в файловой̆ системе.

Каталог содержит файлы и каталоги. Концепция каталога позволяет организовать файлы в некоторую иерархическую структуру. В Unix ситемах базовым является каталог ‘/’.



Обычный̆ файл может быть тестовым и двоичным. В unix системах эти типы файлов не различаются и оба

Слайд 5Блок-ориентированные файл устройства служит для представления физического устройства, которое передает

данные блоками. Примерами таких устройств являются жесткие диски.
Байт-ориентированный̆ файл

устройства служит представления физического устройства, которое передает данные побайтно, например, модем.

Блок-ориентированные файл устройства служит для представления физического устройства, которое передает данные блоками. Примерами таких устройств являются жесткие

Слайд 6Файловый дескриптор
Информация о файлах, используемых процессом, входит в состав его

системного контекста и хранится в его блоке управления – PCB.

В операционной̆ системе UNIX можно упрощенно полагать, что информация о файлах, с которыми процесс осуществляет операции потокового обмена, наряду с информацией̆ о потоковых линиях связи, соединяющих процесс с другими процессами и устройствами ввода-вывода, хранится в некотором массиве, получившем название таблицы открытых файлов или таблицы файловых дескрипторов. Индекс элемента этого массива, соответствующий̆ определенному потоку ввода-вывода, получил название файлового дескриптора для этого потока.

Файловый дескрипторИнформация о файлах, используемых процессом, входит в состав его системного контекста и хранится в его блоке

Слайд 7Дескриптор файла – это индекс открытого файла в таблице дескрипторов

файлов.

Файловый̆ дескриптор представляет собой̆ небольшое целое неотрицательное число, которое

для текущего процесса в данный̆ момент времени однозначно определяет некоторый̆ действующий̆ канал ввода-вывода. Некоторые файловые дескрипторы на этапе старта любой̆ программы ассоциируются со стандартными потоками ввода-вывода. Файловый̆ дескриптор 0 соответствует стандартному потоку ввода, файловый дескриптор 1 – стандартному потоку вывода, файловый̆ дескриптор 2 – стандартному потоку для вывода ошибок. В нормальном интерактивном режиме работы стандартный̆ поток ввода связывает процесс с клавиатурой̆, а стандартные потоки вывода и вывода ошибок – с текущим терминалом.


Дескриптор файла – это индекс открытого файла в таблице дескрипторов файлов. Файловый̆ дескриптор представляет собой̆ небольшое целое

Слайд 8API работы с файлами

API работы с файлами

Слайд 9#include
#include
int open(const char *path_name, int access_mode,

mode_t permission);


Системный̆ вызов open() устанавливает соединение между процессом и

файлом. Этот системный̆ вызов позволяет создавать файлы. В случае успешного выполнения функция open() возвращает дескриптор файла. Все другие системные вызовы для работы с файлами используют файловый̆ дескриптор, полученный̆ после выполнения open().

#include #include int open(const char *path_name, int access_mode, mode_t permission); Системный̆ вызов open() устанавливает соединение между процессом

Слайд 10Параметр access_mode может быть составлен как битовая маска из следующих

макросов
●  O_RDONLY – открыть файл для чтения;
●  O_WRONLY

– открыть файл для записи;
●  O_RDWR – открыть файл чтения и записи.

Параметр permission – необходим только в том случае, если в access_mode установлен флаг O_CREAT. Он задает права доступа к файлу для его владельца, членов группы и все остальных пользователей̆.


Параметр access_mode может быть составлен как битовая маска из следующих макросов ●  O_RDONLY – открыть файл для

Слайд 11Каждое из этих значений может быть скомбинировано посредством операции «побитовое

или ( | )» с одним или несколькими флагами:

 O_CREAT – создать файл, если файла с таким именем не существует;
●  O_EXCL – применяется совместно с флагом O_CREAT. При совместном их использовании и существовании файла с указанным именем, открытие файла не производится и констатируется ошибочная ситуация;
●  O_NDELAY – запрещает перевод процесса в состояние ожидание при выполнении операции открытия и любых последующих операциях над этим файлом;
● O_APPEND – при открытии файла и перед выполнением каждой̆ операции записи (если она, конечно, разрешена) указатель текущей̆ позиции в файле устанавливается на конец файла;
● O_TRUNC – если файл существует, уменьшить его размер до 0, с сохранением существующих атрибутов файла, кроме, быть может, времен последнего доступа к файлу и его последней̆ модификации.
Кроме того, в некоторых версиях операционной̆ системы UNIX могут применяться дополнительные значения флагов:
● O_SYNC – любая операция записи в файл будет блокироваться (т. е. процесс будет переведен в состояние ожидание) до тех пор, пока записанная информация не будет физически помещена на соответствующий̆ нижележащий̆ уровень hardware;
● O_NOCTTY – если имя файла относится к терминальному устройству, оно не становится управляющим терминалом процесса, даже если до этого процесс не имел управляющего терминала.

Каждое из этих значений может быть скомбинировано посредством операции «побитовое или ( | )» с одним или

Слайд 12Параметр permission задается как сумма следующих восьмеричных значений:
●  0400

– разрешено чтение для пользователя, создавшего файл;
●  0200 –

разрешена запись для пользователя, создавшего файл;
●  0100 – разрешено исполнение для пользователя, создавшего файл;
●  0040 – разрешено чтение для группы пользователя, создавшего файл;
●  0020 – разрешена запись для группы пользователя, создавшего файл;
●  0010 – разрешено исполнение для группы пользователя, создавшего
файл;
● 0004 – разрешено чтение для всех остальных пользователей̆;
●  0002 – разрешена запись для всех остальных пользователей̆;
●  0001 – разрешено исполнение для всех остальных
пользователей̆.

Параметр permission задается как сумма следующих восьмеричных значений: ●  0400 – разрешено чтение для пользователя, создавшего файл;

Слайд 13При создании файла реально устанавливаемые права доступа получаются из стандартной̆

комбинации параметра mode и маски создания файлов текущего процесса umask,

а именно – они равны mode & ~umask.
В случае, когда мы требуем, чтобы файл на диске отсутствовал и был создан в момент открытия, флаг для набора операций должен использоваться в комбинации с флагами O_CREAT и O_EXCL.


При создании файла реально устанавливаемые права доступа получаются из стандартной̆ комбинации параметра mode и маски создания файлов

Слайд 14Системные вызовы read() и write()
#include
#include
size_t

read(int fd, void *addr, size_t nbytes);
size_t write(int fd, void

*addr,size_t nbytes);

Системные вызовы read() и write() предназначены для осуществления потоковых операций ввода (чтения) и вывода (записи) с файлами.

Системные вызовы read() и write()  #include #include size_t read(int fd, void *addr, size_t nbytes); size_t write(int

Слайд 15Параметр fd является файловым дескриптором, полученным с помощью системного вызова

open().
Параметр addr представляет собой адрес области памяти, начиная с

которого будет браться информация для передачи или размещаться принятая информация.
Параметр nbytes для системного вызова write определяет количество байт, которое должно быть передано, начиная с адреса памяти addr. Параметр nbytes для системного вызова read определяет количество байт, которое мы хотим получить из канала связи и разместить в памяти, начиная с адреса addr.

Параметр fd является файловым дескриптором, полученным с помощью системного вызова open(). Параметр addr представляет собой адрес области

Слайд 16Дополнительные системные вызовы

Дополнительные системные вызовы

Слайд 17Блокирующий режим
По умолчанию все файловые дескрипторы в Unix-системах создаются в

“блокирующем” режиме. Это означает, что системные вызовы для ввода-вывода, такие

как read, write или connect, могут заблокировать выполнение программы вплоть до готовности результата операции. Например, чтение данных из потока stdin в консольной программе. Как вызывается read для stdin, выполнение программы блокируется, пока данные не будут введены пользователем с клавиатуры и затем прочитаны системой. То же самое происходит при вызове функций стандартной библиотеки, таких как fread, getchar, std::getline, поскольку все они в конечном счёте используют системный вызов read. Если говорить конкретнее, ядро переводит процесс в состояние «Ожидание», пока данные не станут доступны в псевдо-файле stdin. То же самое происходит и для любых других файловых дескрипторов.
Блокирующий режимПо умолчанию все файловые дескрипторы в Unix-системах создаются в “блокирующем” режиме. Это означает, что системные вызовы

Слайд 18Блокировки - это проблема для всех программ, требующих конкурентного выполнения,

поскольку заблокированные потоки процесса засыпают и не получают процессорное время.

Существует несколько различных, но взаимодополняющих способа устранить блокировки:
неблокирующий режим ввода-вывода
мультиплексирование с помощью системного API, такого как select либо epoll
Асинхронный ввод/вывод
Эти решения часто применяются совместно, но предоставляют разные стратегии решения проблемы.

Блокировки - это проблема для всех программ, требующих конкурентного выполнения, поскольку заблокированные потоки процесса засыпают и не

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика