Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ч5Дайте краткое сравнение разных алгоритмов распределения ОП.

Читайте также:
  1. Step Mix – супер интенсивная тренировка на степ платформах разных уровней сложности.
  2. V этап - сравнение групп по общим интенсивным (или средним) и стандартизованным показателям. Выводы.
  3. X. Краткое изложение Православного учения о посмертной судьбе души
  4. Анализ направлений распределения прибыли
  5. Анализ разных теоретических точек зрения по психическому процессу памяти
  6. Анализ физических закономерностей формирования распределения случайных величин по значениям исследуемого показателя
  7. Аудит формирования финансовых результатов и распределения прибыли

Страничное распределение памятиРазмер ВАП процесса в общем случае не кратен размеру страницы. Размер страницы специально выбирается равным 2к, например, 512, 1024, 4096 байт, что упрощает механизм преобразования адресов [2]. При порождении процесса ОС загружает в ОП несколько его виртуальных страниц (начальные страницы кодового сегмента и сегмента данных). Страницы могут быть расположены в ОП не подряд. Копия всего ВАП находится на диске.Для каждого порождаемого процесса ОС создает в ОП таблицу страниц, содержащую записи о каждой виртуальной странице процесса - дескрипторы страниц$$$$$$$Сегментное распределение памяти При страничной организации ВАП процесса делится на равные часта механически, без учета смыслового значения данных. Это не позволяет эффективно дифференцировать доступ для записи к сегментам кода или сегментам данных процесса. Кроме того, разбиение ВАП на «осмысленные» части делает принципиально возможным совместное использование фрагментов программ разными процессами. Например, двум процессам может требоваться одна и та же реентерабельная подпрограмма. Тогда ее можно в качестве сегмента включить в ВАП обоих процессов, а при отображении в физическую память сегменты ВАП с этой подпрограммой проецировать на одну и ту же область физической памяти (рис.22). Так оба процесса получат доступ к единственной копии подпрограммы в ОП $$$Сегментно-страничное распределение памяти
Это комбинация страничного и сегментного механизмов управления памятью с реализацией достоинств обоих подходов [2]:ВАП процесса разделено на сегменты, что обеспечивает поддержку разных прав доступа;
• перемещение данных между ОП и диском осуществляется страницами.
Для этого каждый виртуальный сегмент и физическая память делятся на страницы равного фиксированного размера, что позволяет более эффективно использовать ОП, до минимума сокращая фрагментацию.

30)_Ч5 Для чего нужны разделяемые сегменты памяти и какие варианты их организации существуют?

Для чего нужны разделяемые сегменты памяти и какие варианты их организации существуют?
Подсистема виртуальной памяти может обеспечивать и совместный доступ нескольких процессов к одному и тому же сегменту памяти, который в этом случае называется разделяемой памятью (shared memory) [2-5].Хотя основной задачей ОС при управлении памятью является защита областей ОП процесса от доступа к ней остальных процессов, в некоторых случаях необходим контролируемый совместный доступ нескольких процессов к определенной области ОП. Разделяемый сегмент необходимо поместить в ВАП каждого работающего с ним процесса, после чего настроит


1)_Ч6 Перечислите и кратко поясните задачи ОС по управлению УВВ и файлами.

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

Основными компонентами подсистемы ввода-вывода являются драйверы, управляющие УВВ, и ФС. К подсистеме ввода-вывода можно условно отнести и диспетчер прерываний, обслуживающий не только ее модули, но и другие модули ОС, например, планировщик/диспетчер потоков. Но поскольку планирование работ именно подсистемы ввода-вывода составляет основную долю нагрузки диспетчера прерываний, его логично рассматривать как ее составную часть.

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

При обмене данными с внешними устройствами компьютера подсистема ввода-вывода должна решать ряд общих задач, наиболее важными из которых являются следующие восемь задач [1-6].

 

2)_Ч6 Опишите необходимость и организацию параллельной работы УВВ и процессора, согласования скоростей обмена и кэширования.

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

 


 

3)_Ч6 Опишите необходимость и организацию разделения УВВ и данных между процессами, логического интерфейса между УВВ и остальной частью ОС.

УВВ могут предоставляться процессам в монопольное или совместное (разделяемое) использование. При этом ОС должна обеспечивать контроль доступа теми же способами, что и при доступе процессов к другим ресурсам ВС – путем проверки прав пользователя или группы, от имени которых действует процесс, на выполнение данной операции над УВВ. Например, определенной группе пользователей разрешено захватывать последовательный порт в монопольное владение, а другим пользователям это запрещено.

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

При разделении УВВ между процессами может возникнуть необходимость в разграничении порции данных двух процессов друг от друга. Так бывает при совместном использовании устройств последовательного доступа, данные в которых не адресуются, в отличие от устройств прямого доступа. Например, это принтер (УВВ последовательного доступа), который не выделяется в монопольное владение процессам, но должен печатать каждый документ в виде последовательного набора страниц. Для подобных устройств организуется очередь заданий на вывод, причем каждое задание представляет собой порцию данных, которую нельзя разрывать (документ). Для хранения очереди заданий используется спул-файл, который одновременно согласует скорости работы принтера и ОП и позволяет организовать разбиение данных на логические порции. Поскольку спул-файл находится на разделяемом устройстве прямого доступа (диске), процессы могут одновременно выполнять вывод на принтер, помещая данные в свой раздел спул-файла.

Обеспечение удобного логического интерфейса между УВВ и остальной частью ОС. Разнообразие УВВ делает особенно актуальной функцию ОС по созданию экранирующего логического интерфейса между периферийными устройствами и приложениями. Почти все ОС поддерживают в качестве его основы файловую модель, когда любое УВВ выглядит для прикладного программиста как последовательный набор байтов, с которым можно работать с помощью унифицированных системных вызовов (например, read и write), задавая имя файла-устройства и смещение от начала последовательности байтов. Для поддержки такого удобного интерфейса подсистема ввода-вывода должна проделать немалую работу, учитывая разницу в организации операций обмена данными, например, с жестким диском и с графическим терминалом.

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

 

4)_Ч6 Опишите необходимость и организацию поддержки широкого спектра драйверов, динамической загрузки и выгрузки драйверов.

Достоинством подсистемы ввода-вывода любой универсальной ОС является наличие разнообразного набора драйверов для наиболее популярных УВВ. Администраторы и пользователи не должны искать нужный драйвер, а тем более разрабатывать его.Подсистема ввода-вывода может поддерживать несколько различных видов интерфейсов «драйвер-ядро»/«драйвер-устройство», предоставляя специфический интерфейс для УВВ определенного класса.Обычно подсистема ввода-вывода поддерживает большое число системных функций, которые драйвер может вызвать для выполнения некоторых типовых действий (например, операции обмена с регистрами контроллера, ведение буферов для промежуточного хранения данных ввода-вывода, синхронизация работы нескольких драйверов, копирование данных из пространства пользователя в пространство ОС). Включение драйвера в состав модулей работающей ОС и его выключение «на ходу», то есть динамическая загрузка/выгрузка драйверов является важным свойством ОС, поскольку набор потенциально поддерживаемых данной ОС УВВ всегда существенно больше набора реальных устройств, которыми ОС должна управлять при ее установке на конкретном компьютере. При этом актуальна возможность динамически загружать в ОП требуемый драйвер без останова ОС и так же выгружать ненужный драйвер для экономии ОП.Альтернативой динамической загрузке/выгрузке драйверов является повторная компиляция кода ядра с требуемым набором драйверов, что создает между всеми компонентами ядра статические связи вместо динамических. Например, так решалась данная проблема в ранних версиях ОС UNIX, упрощая структуру системы, но при этом требовалось наличие исходных кодов модулей ОС.


 

5)_Ч6 Опишите необходимость и организацию поддержки нескольких ФС, синхронных и асинхронных операций ввода-вывода.

Большая часть системных и пользовательских данных хранится на дисках, делая дисковые накопители важнейшими УВВ. Данные на дисках организуются в различные ФС, а свойства отдельной ФС во многом определяют такие свойства самой ОС, как отказоустойчивость, быстродействие, максимальный объем хранимых данных. Популярность некоторой ФС часто приводит к ее миграции из «родной» ОС в другие ОС. Например, ФС «таблица расположения файлов» (FileAllocationTable, FAT) была создана для MS-DOS, но затем была реализована в OS/2, семействеMSWindows и многих реализациях UNIX. Именно поэтому поддержка нескольких популярных ФС для подсистемы ввода-вывода имеет принципиальное значение. При этом архитектура подсистемы ввода-вывода должна обеспечивать легкое включение в ее состав новых типов ФС без необходимости переписывания кода ОС. Обычно в ОС имеется специальный слой, отвечающий за решение этой задачи, например, слой «виртуальная файловая система» (VirtualFileSystem, VFS) в разных реализациях UNIXна основе SystemVRelease 4. Операция ввода-вывода по отношению к запросившему ее программному модулю может выполняться, как и в случае ранее рассмотренных системных вызовов, синхронно (с приостановкой работы модуля и ожиданием ее завершения) или асинхронно (с продолжением работы модуля параллельно с операцией ввода-вывода). Причем, операция ввода-вывода может быть инициирована не только пользовательским процессом (когда она выполняется в рамках системного вызова), но и кодом ядра, например, подсистемы виртуальной памяти для считывания отсутствующей в ОП страницы. Системные вызовы ввода-вывода чаще выполняются как синхронные, поскольку такие операции длятся долго, и пользовательскому процессу/потоку все равно необходимо ожидать их результатов для продолжения своей работы. Внутренние же вызовы операций ввода-вывода из модулей ядра обычно выполняются как асинхронные, поскольку ядру нужна свобода в выборе дальнейшего поведения после запроса операции ввода-вывода. Асинхронный вариант дает более гибкое решение, позволяя всегда добавить при необходимости промежуточную синхронную процедуру, блокирующую выполнение асинхронной до завершения ввода-вывода

6)_Ч6Представьте и опишите обобщенную структуру подсистемы ввода-вывода.

Идея многослойной организации ОС оказывается полезной и при построении подсистемы ввода-вывода. При большом разнообразии УВВ, обладающих существенно разными характеристиками, ее иерархическая структура позволяет соблюсти баланс между двумя противоречивыми требованиями. При этом нижние слои подсистемы ввода-вывода должны включать индивидуальные драйверы, написанные для конкретных физических устройств, а верхние слои должны обобщать процедуры управления этими устройствами, представляя общий интерфейс для всех устройств или для групп устройств, обладающих некоторыми общими характеристиками, например, для лазерных принтеров компании HewlettPackard.Обобщенная структура подсистемы ввода-вывода представлена на рис.6.1.ПО ввода-вывода здесь делится не только на горизонтальные слои, но и на вертикальные. Необходимость вертикальных слоев обусловлена наличием групп разнотипных УВВ со своими способами управления [1-2].

Рис.6.1.стр Обобщенная структура подсистемы ввода-вывода

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

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

7)_Ч6Опишите организацию и особенности менеджера ввода-вывода.

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

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

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

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

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

Наличие стандартного внутреннего межмодульного интерфейса повышает устойчивость и улучшает расширяемость подсистемы ввода-вывода, но может и несколько замедлять ее работу за счет взаимодействия слоев (по сравнению с монолитной организацией с прямыми передачами управления) [2].

8)_Ч6Опишите организацию и особенности многоуровневых драйверов.

Изначально термин «драйвер» применялся в достаточно узком смысле для обозначения программного модуля, который

· входит в состав ядра ОС, работая в привилегированном режиме;

· непосредственно управляет УВВ, взаимодействуя с его контроллером с помощью команд ввода-вывода компьютера;

· обрабатывает прерывания от контроллера УВВ;

· предоставляет прикладному программисту удобный логический интерфейс для работы с УВВ, экранируя от него низкоуровневые детали управления УВВ и организации его данных;

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

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

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

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

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

Высокоуровневые драйверы оформляются по тем же правилам и придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы. Единственным отличием является то, что высокоуровневые драйверы, как правило, не вызываются по прерываниям, поскольку взаимодействуют с управляемым устройством через аппаратные драйверы. Менеджер ввода-вывода управляет всеми драйверами однотипно [1].

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


Дата добавления: 2015-12-08; просмотров: 118 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.02 сек.)