Поддержка синхронных и асинхронных операций ввода- вывода. Системные вызовы ввода-вывода. Внутренние вызовы операций ввода-вывода

Поддержка синхронных и асинхронных операций ввода- вывода

Подсистема ввода-вывода должна предоставлять своим клиентам (пользовательским процессам и кодам ядра) возможность выполнять как синхронные, так и асинхронные операции ввода-вывода, в зависимости от потребностей вызывающей стороны.

n Синхронный режим – приложение приостанавливает свою работу и ждет отклика от устройства.

n Асинхронный режим – приложение продолжает работу, параллельно с ожиданием отклика от устройства.

N Операционные системы для разных приложений должны обеспечить синхронную и асинхронную работу с устройствами.

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

Билет 14

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

Процесс - минимальный программный объект, обладающий собственными системными ресурсами (запущенная программа)

Процесс - программный модуль, выполняемый в центральном процессоре СРU

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

Процессом (process) называется экземпляр программы, загруженной в память. Этот экземпляр может создавать нити (thread), которые представляют собой последовательность инструкций на выполнение. Важно понимать, что выполняются не процессы, а именно нити.