- •/Классификация операционных систем
- •Сравнительные характеристики ос.
- •/Процессы и примитивы.
- •Примитивы.
- •Процессы.
- •/Предполагаемая среда выполнения процессов.
- •/ Диаграмма переходов.
- •/Создание процессов.
- •/Уровневое представление ос unix
- •/Функции ядра операционной системы.
- •/Понятие прерываний в ос
- •/Структура ос
- •/Обзор подсистем ядра Unix
- •Описание подсистем ядра unix
- •Планирование но наивысшему приоритету (hpf)
- •Метод круговорота (карусель)
- •Очереди с обратной связно (fв)
- •Планирование в unix.
- •Типы многозадачности.
- •Состав планировщика
- •Зависимости подсистем ядра
- •Контроллер памяти (Метоrу Manager)
- •Механизм свопинга (Swapping)
- •Механизм пейджинга (Paging)
- •Внешний интерфейс
- •Verify_area()– проверка прав на доступ к выделенному региону памяти; get_free_page() / free_page() – выделение и освобождение физической памяти.
- •Реализация программ выделения памяти
- •Сборка мусора
- •Типы сборщиков памяти
- •Взаимодействие внутренних модулей мм
- •Архитектура vfs
- •Интерфейсы файловой системы
- •Ioctlo: установить атрибуты файла;
- •Защита файлов
- •Списки прав доступа
- •Механизмы обмена данными в vfs
- •Буферный кэш.
- •Механизмы обмена данными.
- •Логическая файловая система
- •Физическая организация файловой системы
- •Структура файла обычного типа
- •Примечания к физической организации vfs
- •Сетевая подсистема (Net)
- •Состав сетевой подсистемы
- •Представление и структуры данных
- •Внутренняя структура подсистемы
- •Зависимости сетевой подсистемы
- •Подсистема межпроцессного взаимодействия
Буферный кэш.
для улучшения производительности ОС Unix использует буферный кэш при обращении к блок-ориентированным устройствам. То есть все операции обмена данными с этими устройствами осуществляются через подсистему кэширования. За счет использования кэша производительность системы существенно улучшается при выполнении операций чтения и записи. Каждый винчестер в системе имеет свою собственную очередь запросов, при этом, если драйвер сразу не может удовлетворить запрос к памяти буфера, этот запрос добавляется в очередь, а процесс приостанавливается, пока его запрос не будет выполнен. В своей работе буфер кэша использует несколько потоков, управляемых, например, демоном kflushd.
Механизмы обмена данными.
Когда драйверу необходимо удовлетворить запрос, он начинает инициацию с подготовки устройства. Существует три механизма перемещения данных из компьютера к периферийным устройствам. Это механизмы поллинга (polling), прямого доступа в память (DMA) и прерываний. Первый из них (поллинг) основан на периодической проверке состояния регистров периферийных устройств на выполнение запросов, стоящих в очереди буфера. Если устройство готово выполнить запрос, то драйвер выполняет его и инициализирует следующий запрос из очереди. поллинг является самым простым, но и самым медленным механизмом и предназначен для таких устройств, как гибкие диски и модемы.
Следующим механизмом является прямой доступ в память (DМА). В этом случае драйвером инициализируется прямой канал между физической памятью компьютера и периферийным устройством. Передача информации осуществляется без использования центрального процессора, который до окончания операции передачи данных в это время может выполнять другую задачу. Когда DMA передача закончена, на процессор посылается прерывание. Это прерывание переключает процессор на выполнение завершающих операций в режиме DМА.
Третьим механизмом для организации обмена устройств с ОС является механизм прерываний. Когда некоторому периферийному устройству необходимо обменяться данными или сообщить о6 изменении своего состояния (например, нажатие клавиши клавиатуры или кнопки мыши), это устройство посылает специальный сигнал, называемый прерыванием на центральный процессор. Сигнал прерывания должен вызвать приостановку выполнения текущего процесса и переключить процессор на выполнение операции обслуживания устройства, которое послало этот сигнал.
Если в процессоре разрешена обработка прерываний, то происходит запуск специальной программой обработки прерываний. По окончании работы этой программы управление передается прерванному процессу. Если в момент поступления прерывания обработка прерываний запрещена, то этот сигнал прерываний может быть потерян.
Вообще говоря, процессор имеет только один уровень прерывания. Для того, чтобы можно было обрабатывать прерывания от множества устройств, в компьютере имеется специальное устройство - контроллер прерываний, который имеет несколько входов и один выход, соединенный с входом прерываний процессора.
Существует два механизма работы контроллера прерываний: поллинговый и приоритетный. Поллинговый механизм аналогичен поллинговому механизму работы с устройствами. Устройство подает сигнал прерывания на контроллер, а контроллер циклически проверяет все свои входы на наличие поступивших сигналов прерываний. Прерывания обрабатываются помере их поступлений. При приоритетном механизме обработки прерываний каждый вход контроллера прерываний имеет свой приоритет. Устройства, подключенные к входу контроллера с более высоким приоритетом, будут прерывать работу устройств с более низким приоритетом для выполнения своих функций (с учетом маскирования см. глоссарий).
Когда контроллер прерываний не может удовлетворить все запросы на прерывания в некоторый промежуток времени, он начинает строить свою собственную очередь. Эта очередь будет выполняться в согласовании с работой планировщика. Кроме того, выполнение этой очереди будет более приоритетно по сравнению с выполнением других процессов.
Суммируя, можно сказать, что драйверы скрывают детали управления периферийными устройствами и обеспечивают передачу данных. Буферный кэш помогает улучшить производительность системы путем размещения в нем фрагмента информации физической памяти.
