Cтраница 1
Файловый ввод-вывод представляет собой еще одну проблемную область. Предположим, что один поток блокирован при чтении из файла, а другой поток закрывает файл и обращается к системному вызову 1 seek, чтобы изменить текущий указатель файла. [1]
Важной частью многих программ является файловый ввод-вывод. С точки зрения Win32, файл представляет собой просто линейную последовательность байтов. Интерфейс Win32 предоставляет более 60 вызовов для создания и уничтожения файлов и каталогов, открытия и закрытия файлов, их чтения и записи, чтения и изменения атрибутов файлов и многого другого. [2]
Более подробную информацию о работе с двоичными файлами можно найти в какой-либо книге по Си, где детально рассмотрен файловый ввод-вывод. [3]
Описав планирование процессов в мультимедийных системах, продолжим наше изучение мультимедийных файловых систем. В этих файловых системах применяются парадигмы, отличные от используемых в традиционных файловых системах. Сначала мы рассмотрим традиционный файловый ввод-вывод, затем обратим внимание на то, как организованы мультимедийные файловые серверы. Для доступа к файлу процесс сначала обращается к системному вызову open. Если эта операция проходит успешно, процессу возвращается нечто вроде маркера, называемого дескриптором или описателем файла. С этого момента процесс может обращаться к системному вызову read, указывая на входе полученный маркер, адрес буфера и счетчик байтов в качестве параметров. При этом операционная система возвращает в буфер требуемые данные. Пока процесс не завершил свою работу, он может издавать дополнительные системные вызовы read, а затем процесс должен обратиться к системному вызову close, чтобы закрыть файл и вернуть ресурсы системе. [4]
![]() |
Трехуровневое планирование. [5] |
С одной стороны, распределение процессов необходимо часто пересматривать, чтобы у процессов, хранящихся на диске, тоже был шанс получить доступ к процессору. С другой стороны, перемещение процесса с диска в память требует затрат, поэтому к диску следует обращаться не чаще, чем раз в секунду, а может быть и реже. Если содержимое оперативной памяти будет слишком часто меняться, пропускная способность диска будет расходоваться впустую, что замедлит файловый ввод-вывод. [6]