Системные вызовы ввода-вывода — КиберПедия 

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Системные вызовы ввода-вывода

2020-06-05 171
Системные вызовы ввода-вывода 0.00 из 5.00 0 оценок
Заказать работу

  • блокирующиеся системные вызовы.

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

  • неблокирующиеся системные вызовы.

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

  • асинхронные системные вызовы.

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

Буферизация

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

Существует три причины, приводящие к использованию буферов в базовой подсистеме ввода-вывода:

    • разные скорости приема и передачи информации, которыми обладают участники обмена;
    • разные объемы данных, которые могут быть приняты или получены участниками обмена единовременно;
    • необходимость копирования информации из приложений, осуществляющих ввод-вывод, в буфер ядра операционной системы и обратно.

Кэширование

  • Кэш (cache – "тайник, запас") - область быстрой памяти, содержащую копию данных, расположенных где-либо в более медленной памяти, предназначенную для ускорения работы вычислительной системы.

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

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

В ряде ОС имеется возможность указать в явном виде параметры кэширования, в то время как в других за эти параметры отвечает сама ОС.

В файле system.ini ОС Windows есть возможность в секции [VCACHE] прописать, например, следующие значения:

[vcache]

MinFileCache=4096

MaxFileCache=32768

ChankSize=512

В других ОС можно указывать больше параметров, определяющих работу подсистемы кэширования.

Spooling и захват устройств

  • Spooling - механизм, впервые позволившем совместить реальные операции ввода-вывода одного задания с выполнением другого задания.
  • Под «spool» подразумевается буфер, содержащий входные или выходные данные для устройства, на котором следует избегать чередования его использования различными процессами.

*В современных вычислительных системах spool для ввода данных практически не используется, а в основном предназначен для накопления выходной информации.

В некоторых операционных системах вместо использования spooling для устранения «race condition» (гонки) применяется механизм монопольного захвата устройств процессами. Если устройство свободно, то один из процессов может получить его в монопольное распоряжение. При этом все другие процессы при попытке осуществления операций над этим устройством будут либо блокированы (переведены в состояние ожидание), либо получат информацию о невозможности выполнения операции до тех пор, пока процесс, захвативший устройство, не завершится или явно не сообщит операционной системе о своем отказе от его использования.

 

 

Задание для выполнения:

1. Ознакомиться с Лекцией №13 по ссылке

 https://drive.google.com/open?id=1JQFaCLLyP2f9_b8auih01JoCS9bWzyQP

Составить конспект лекции

 

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

* https://cloud.mail.ru/public/4h3C/5cCGjtb4t - ссылка на папку для сохранения файлов с ответами.

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

 


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.