Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ANSWERS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
833.02 Кб
Скачать
  1. Подсистема ввода-вывода ос. Буферизация обмена данными между внешней и основной памятью. Дисковый (системный) кэш.

На подсистему ввода-вывода возлагаются следующие функции:

• организация параллельной работы устройств ввода-вывода и процессора;

• согласование скоростей обмена и кэширование данных;

• разделение устройств и данных между процессами (выполняющимися программами);

• обеспечение удобного логического интерфейса между устройствами и остальной частью системы;

• поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера;

• динамическая загрузка и выгрузка драйверов без дополнительных действий с операционной системой;

• поддержка нескольких различных файловых систем;

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

Эволюция ввода-вывода может быть представлена следующими этапами:

• Процессор непосредственно управляет периферийным устройством.

• Устройство управляется контроллером. Процессор использует программируемый ввод-вывод без прерываний (переход к абстракции интерфейса ввода-вывода).

• Использование контроллера прерываний. Ввод-вывод, управляемый прерываниями.

• Использование модуля (канала) прямого доступа к памяти. Перемещение данных в память (из нее) без применения процессора.

• Использование отдельного специализированного процессора ввода-вывода, управляемого центральным процессором.

• Использование отдельного компьютера для управления устройствами ввода-вывода при минимальном вмешательстве центрального процессора.

Для персональных компьютеров операции ввода-вывода могут выполняться тремя способами.

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

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

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

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

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

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

Дисковый кэш

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

1. Размещение в памяти структур файловой системы — каталогов, FAT пли таблицы инодов (эти понятия подробнее обсуждаются в главе И) и т. д.

2. Отложенная запись. Позволяет более равномерно распределить по времени загрузку дискового контроллера.

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

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

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

6. Сортировка запросов по номеру блока на диске. По идее, такая сортировка должна приводить к уменьшению времени позиционирования головок чтения/записи. Кроме того, если очередь запросов будет отсортирована, это облегчит работу алгоритмам кэширования, которые производят поиск буферов по номеру блока.

Кэширование значительно повышает производительность дисковой подсистемы, но создает ряд проблем, причем некоторые из них довольно неприятного свойства.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]