Концепция виртуализации. концепция прерывания.

Концепция виртуальности используется в ОС как средство для:

— уменьшения конфликтов при управлении процессами т распределении ресурсов;

— облегчения работы пользователя с системой;

освобождения пользователя от рутинных процедур при обращении к тем или иным ресурсам.

Виртуализация при централизованном распределении ресурсов обеспечивает две формы обмана пользователей на ЭВМ:

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

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

Принято считать, что обман первого рода впервые реализовывался оператором ЭВМ следующим образом. Пользовательские программы обращались к магнитной ленте с использованием не физических а логических адресов накопителей на магнитной ленте (НМЛ).

При запросе от программы, оператор устанавливал требуемую магнитную ленту на любой свободный НМЛ, а затем с помощью переключателей на коммутационной панели, связывал конкретные физические адреса накопителей с соответствующими логическими адресами.

В результате пользователь работал с виртуальным магнитофонами.

Виртуальность проявлялась в том, что пользователь мог не знать реальное количество НМЛ и их физических адресов каждого.

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

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

Во время сеанса одного устройства, другие могут выполнять работу не требующую использования ресурсов канала. Для каждого устройства создается иллюзия использования собственного канала, но не реального а

виртуального. Каналы работающие подобным образом, называют мультиплексными.

Наиболее полным проявлением концепции виртуальности является понятие виртуальной машины. Любая ОС являясь средством распределения ресурсов и организуя по определенным правилам управление процессами

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

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

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

Низшим уровнем иерархии являются аппаратные средства машины.

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

Далее, относительно виртуальной машины первого уровня разрабатывается новый программный слой, который представляет виртуальную машину второго уровня.

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

Концепция виртуальности стала одной из ведущих при создании современных ОС.

КОНЦЕПЦИЯ ПРЕРЫВАНИЯ

Реализация многопрограммного режима работы ЭВМ основана на использовании прерывания.

Обобщенная временная диаграмма выполнения прерывания

Концепция виртуализации. концепция прерывания.

При обработке прерывания обычно выполняется следующая последовательность действий:

1)t2 — t1 — восприятие запроса на прерывание в течение времени реакции. В общем случае величина этого времени случайна из-за следующих причин:

— в момент t1 была выключена система прерываний;

— в момент t1 данное прерывание было замаскировано;

— в момент t1 возникло одновременно несколько запросов на прерывание и они последовательно обрабатываются в соответствии с их приоритетами.

2) сохранение состояния прерванного процесса, включающее, в общем случае:

— адрес команды, перед выполнение которой произошло прерывание;

— содержимое регистров общего назначения;

— режим процессора ( привилегированный или непривилегированный)

3) передача управления прерывающей программе, путем занесения в регистр адреса команд адреса первой исполняемой команды этой программы.

4) обработка прерывания , то есть выполнение обрабатывающей программы.

5) восстановление состояния прерванного процесса, то есть :

— запись в регистры общего назначения сохраненных ранее данных(см п.2)

— перевод процессора в ранее сохраненный режим (см.п.2);

— передача управления прерванной программе на команду , перед выполнением которой произошло прерывание .

В большинстве ЭВМ этапы 1-3 реализуются аппаратными средствами, а этапы 4 и 5 -средствами ОС.

В зависимости от источника запроса на прерывание выделяют следующие основные классы прерываний:

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

Прерывания от схем контроля процессора возникают при :

— при попытке выполнить несуществующую команду;

— нарушении защиты памяти;

— переполнение разрядной сетки или исчезновение порядка в арифметических командах;

— падение напряжения питания процессора ниже предельно допустимого.

Прерывания, возникшие по первым трем причинам иногда называют “программными, поскольку эти причины возникают в выполняемых программах.

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

Существует классификация прерываний, в которой различают:

прерывания первого и второго рода.

Системные причины прерывания первого рода возникают в случае,

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

Прерывания первого рода порождаются самой программой, исполняемой в данный момент процессором, в момент времени определяемый этой же программой.

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

При ее выполнении происходит переключение процессора с обработки программы процесса на работу ОС, которая обеспечивает выполнение требуемых процессу действий.

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

при возникновений каких либо важных событий при их выполнении вырабатывают сигнал прерывания(например: возникновение переполнения при выполнении арифметической операции, завершении операции ввода-вывода)

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

15. Дисциплины распределения ресурсов в ОС. Бесприоритетные дисплины.

Дисциплины распределения ресурсов мультипрограммной ЭВМ

Дисциплина с относительными приоритетами: если в момент работы процесса с приоритетом i, в систему приходит процесс с приоритетом i-1, то процесс с приоритетом i прерывается, становится в очередь , и на выполнение идёт процесс с приоритетом i-1.

Дисциплины распределения ресурсов ( ДРР ) — весьма важный показатель, влияющий на эффективность работы ЭВМ. Применение той или иной дисциплины распределения зависит от особенностей использования данного ресурса, критериев оценки эффективности работы системы, а также от сложности реализации данной ДРР [12]

Одноочередные дисциплины

FIFO ( First In — First Out ) — первый пришел — первый обслужен

Концепция виртуализации. концепция прерывания.

Рис. 13.1. Схема распределения ресурса по дисциплине FIFO

Схема доступа — очередь.

Время нахождения в очереди длинных (то есть требующих большого времени обслуживания) и коротких запросов зависит только от момента их поступления.

LIFO ( Last In — First Out ) — последний пришел — первый обслужен

Концепция виртуализации. концепция прерывания.

Рис. 13.2. Схема распределения ресурса по дисциплине LIFO

Схема доступа — стек.

Круговой циклический алгоритм

Концепция виртуализации. концепция прерывания.

Рис. 13.3. Схема распределения ресурса по круговому циклическому алгоритму

Запрос обслуживается в течение кванта времени tk. Если за это время обслуживание не завершено, то запрос передается в конец входной очереди на дообслуживание.

Здесь короткие запросы находятся в очереди меньшее время, чем длинные.

1. Многоочередные дисциплины

2. Базовый вариант многоочередной дисциплины обслуживания

Концепция виртуализации. концепция прерывания.

Рис. 13.4. Схема распределения ресурса при многоочередной дисциплине обслуживания

Основа дисциплины — круговой циклический алгоритм.

Все новые запросы поступают в очередь 1.

Время, выделяемое на обслуживание любого запроса, равно длительности кванта tk. Если запрос обслужен за это время, то он покидает систему, а если нет, то по истечении выделенного кванта времени он поступает в конец очереди i +1.

На обслуживание выбирается запрос из очереди i, только если очереди 1,…, i -1 пусты.

Таким образом, длинные запросы поступают сначала в очередь 1, затем постепенно доходят до очереди N и здесь обслуживаются до конца либо по дисциплине FIFO, либо по круговому циклическому алгоритму.

16. Дисциплины распределения ресурсов в ОС. Дисплины приориоритетного обслуживания.

Дисциплина с абсолютными приоритетами: если ресурсом пользуется процесс с уровнем приоритета i и в данный момент и в данный момент в систему поступает процесс с приоритетом i-1, то после окончания работы процесса с приоритетом i, ресурс захватывается процессом с приоритетом i-1.

17. Взаимодействие процессов. Виды отношений.

Между процессами в мультипрограммной ВС могут возникать различного типа отношения. Рассмотрим основные из них:

Отношение предшествования. Для двух процессов существование такого отношения означает, что один процесс должен переходить в активное состояние всегда раньше второго процесса.

Отношение приоритетности. Процесс с приоритетом P может быть в активное состояние только при выполнении двух условий:

— в состоянии готовности к рассматриваемому процессору НЕТ процессов с большим приоритетом;

— процессор либо свободен, либо используется процессом с приоритетом меньшим Р.

Отношение взаимного исключения.

Пусть два процесса A и B используют при своем развитии некоторый общий ресурс R. Тогда совокупность действий над этим ресурсом в ходе каждого процесса называется критической областью (секцией), а совместно используемый ресурс называется критическим ресурсом.

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

Отношения производители — потребители.

Концепция виртуализации. концепция прерывания.

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

В эту область памяти процесс-производитель должен помещать очередное сообщение, а процесс потребитель должен считывать очередное сообщение.

Синхронизация этих двух процессов требует выполнения следующих условий:

— обеспечить отношения взаимного исключения по отношению к буферной памяти для хранения сообщений;

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

Процесс-производитель должен быть переведен в состояние ожидания, если предыдущее сообщение не было забрано из буфера процессом-потребителем.

Аналогично процесс-потребитель должен быть переведен в состояние ожидания, если процесс-производитель не поместил в буфер очередное сообщение.

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

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

— первый тип- процессы-читатели — они могут одновременно считывать информацию из области памяти;

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

Существует множество вариантов взаимодействия таких процессов.

Наиболее распространенные следующие два:

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

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

Отношения обедающие философы.

Концепция виртуализации. концепция прерывания.

Пусть имеются три параллельных процесса X,Y,Z и три ресурса P1- (клавиатура), P2- (дисплей), P3- (накопитель на магнитном диске)

Особенность развития процессов такова, что

— для пребывания процесса X в активном состоянии ему требуется выделить одновременно ресурсы Р1 и Р2

— для пребывания процесса Y в активном состоянии ему требуется выделить одновременно ресурсы Р2 и Р3

— для пребывания процесса Z в активном состоянии ему требуется выделить одновременно ресурсы Р3 и Р1

Переходы процессов в активное состояние происходят в непредсказуемые моменты времени.

18. Синхронизация процессов. Способ использования

блокирующих переменных.

Установление определенной последовательности (очередности) использования ресурсов множеством параллельных процессов называется синхронизацией(приведение двух или более процессов к согласованному по времени выполнению)

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

3. Концепция виртуализации. концепция прерывания.

Рис. 2.4. Реализация критических секций с использованием блокирующих переменных

использование блокирующих переменных. С каждым разделяемым ресурсом связывается двоичная переменная, которая принимает значение 1, если ресурс свободен (то есть ни один процесс не находится в данный момент в критической секции, связанной с данным процессом), и значение 0, если ресурс занят. Перед входом в критическую секцию процесс проверяет, свободен ли ресурс D. Если он занят, то проверка циклически повторяется, если свободен, то значение переменной F(D) устанавливается в 0, и процесс входит в критическую секцию. После того, как процесс выполнит все действия с разделяемым ресурсом D, значение переменной F(D) снова устанавливается равным 1.

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

Реализация критических секций с использованием блокирующих переменных имеет существенный недостаток: когда один процесс находится в критической секции, другой процесс, которому требуется тот же ресурс, будет выполнять рутинные действия по опросу блокирующей переменной, бесполезно тратя процессорное время. Для этого используют так называемый аппарат событий. В разных операционных системах аппарат событий реализуется по своему, но в любом случае используются системные функции аналогичного назначения, которые условно назовем WAIT(x) и POST(x), где x — идентификатор некоторого события. Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(D), здесь D обозначает событие, заключающееся в освобождении ресурса D. Функция WAIT(D) переводит активный процесс в состояние ОЖИДАНИЕ и делает отметку в его дескрипторе о том, что процесс ожидает события D. Процесс, который в это время использует ресурс D, после выхода из критической секции выполняет системную функцию POST(D), в результате чего операционная система просматривает очередь ожидающих процессов и переводит процесс, ожидающий события D, в состояние ГОТОВНОСТЬ.

Концепция виртуализации. концепция прерывания.

Рис. 2.5. Реализация критической секции с использованием системных
функций WAIT(D) и POST(D)

19. Синхронизация процессов. Способ использования

примитивов.

Установление определенной последовательности (очередности) использования ресурсов множеством параллельных процессов называется синхронизацией(приведение двух или более процессов к согласованному по времени выполнению)

Обобщающее средство синхронизации процессов предложил Дейкстра, который ввел два новых примитива. В абстрактной форме эти примитивы, обозначаемые P и V, оперируют над целыми неотрицательными переменными, называемыми семафорами. Пусть S такой семафор. Операции определяются следующим образом:

V(S) : переменная S увеличивается на 1 одним неделимым действием; выборка, инкремент и запоминание не могут быть прерваны, и к S нет доступа другим процессам во время выполнения этой операции.

P(S) : уменьшение S на 1, если это возможно. Если S=0, то невозможно уменьшить S и остаться в области целых неотрицательных значений, в этом случае процесс, вызывающий P-операцию, ждет, пока это уменьшение станет возможным. Успешная проверка и уменьшение также является неделимой операцией.

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

20. Синхронизация процессов. Способ использования

семафорного механизма. Мониторы.

Установление определенной последовательности (очередности) использования ресурсов множеством параллельных процессов называется синхронизацией(приведение двух или более процессов к согласованному по времени выполнению)

Семафорный механизм. Предложен в 1965г Э.Дейкстра.

Семафор- переменная специального типа, которая доступна параллельным процессам для проведения над ней только двух видов примитивных операций (простейших) закрытия и открытия, называемых соответственно P- и V-операциями.

Пусть имеется некоторый ресурс R. Поставим ему в соответствие целочисленную переменную семафор: S. Тогда:

— операция P(S) уменьшает величину S на единицу и :

если S.0, то процесс продолжает работу;

если S

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

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

Процессы используют P и V в сочетании: P, работа с критическим ресурсом, затем V. Операция P закрывает доступ к ресурсу другим процессам, а операция V открывает. В каждый момент времени только одна операция P или V может выполнятся над данным семафором.

Для решения задачи синхронизации взаимоисключения достаточно использовать семафоры, принимающие целочисленные значения, большие или равные единице.

Для синхронизации обобщенных отношений поставщиков и потребителей (количество сообщений в буфере больше одного) вводят три общих семафора:

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

Для синхронизации процессов кроме семафорного механизма применяются так называемые мониторы.

Монитор — это набор процедур и структур данных, которые выполняют все работы по организации доступа к ресурсу или группе однотипных ресурсов.

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

Концепция виртуализации. концепция прерывания.

21. Синхронизация процессов. Тупики.

Установление определенной последовательности (очередности) использования ресурсов множеством параллельных процессов называется синхронизацией(приведение двух или более процессов к согласованному по времени выполнению)

ТУПИКИ

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

Пусть процесс А владеет ресурсом R1 и ему дополнительно требуется ресурс R2, в то же время процесс В владеет ресурсом R2 и ему дополнительно требуется ресурс R1. В этом случае говорят, что эти процессы зашли в тупик.

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

— принудительное изъятие ресурсов или;

— ликвидация процессов.

Концепция виртуализации. концепция прерывания.

Совокупность условий необходимых и достаточных для возникновения тупиков:

Процессы не разрешают отведенный им ресурс одновременно использовать другим процессам(взаимное исключение);

Требуя новые ресурсы, процессы не отдают полученные ранее (условие ожидания);

Ресурсы не могут быть отняты у процессов(отсутствие предпочтения);

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

Тупики можно предотвращать, обнаруживать и устранять.

Способы предотвращения тупика.

ПЕРВЫЙ ПОДХОД

Каждый процесс должен запрашивать сразу все необходимые ему ресурсы, и только получив их может начинать свою работу(устраняется условие ожидания);

Если процесс получает отказ на запрашиваемый ресурс, то он должен освободить занятые им ресурсы(устраняется отсутствие предпочтения);

Типы ресурсов упорядочиваются. Если процесс получил некоторый ресурс, то он может требовать только следующий по порядку ресурс(устраняется циклическое ожидание)

Такой подход приводит к неэффективному использованию ресурсов,

однако легко реализуется.

ВТОРОЙ ПОДХОД (Алгоритм банкира)

Имеется N единиц некоторого ресурса R и на обслуживание принимаются только те процессы, которым может потребоваться не более N единиц ресурса.

Пусть частично запросы некоторых процессов удовлетворены и поэтому соответствующие части ресурса находятся у этих процессов, а некоторая часть ресурса R — свободна.

Поступает новый запрос. Он может быть принят на обслуживание если:

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

— освобожденный этим процессом ресурс и неиспользованный ранее ресурс вместе должны быть достаточны для завершения еще хотя бы одного процесса;

— и так далее, до завершения всех начатых процессов.

Обнаружение тупика (распознавание). Незаблокированный процесс приобретает любые ресурсы, в которых он нуждается, выполняет необходимые действия, а затем освобождает ВСЕ свои ресурсы и засыпает. Освобождение ресурсов может освободить некоторые ранее заблокированные процессы. Такая работа ВС продолжается до тех пор, пока не останется незаблокированных процессов.

Выход из тупика: Существует два общих подхода:

Прекращение процессов, Процессы в тупике последовательно прекращаются(уничтожаются) в некотором систематическом порядке до тех пор, пока не станет доступным достаточное количество ресурсов для устранения тупика. В худшем случае уничтожаются все процессы, первоначально находившиеся в тупике, кроме одного (Почему?)

Наиболее простым и практичным порядком уничтожения является стратегия, при которой первыми уничтожаются процессы с наименьшей ценой прекращения. Такой ценой может быть:

а) Приоритет процесса;

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

в) Внешняя цена, определяемая пользователем породившим этот процесс (студент, администрация, системный программист, производство)

2) Перехват ресурсов. У процессов отнимается достаточное количество ресурсов и отдается процессам, находящимся в тупике, чтобы ликвидировать тупик. Процессы, у которых ресурсы были отняты, остаются с выставленными запросами на перехваченные у них ресурсы.

22. Управление памятью.Содержимое памяти . Типы

адресов.

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

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

К основным функциям ОС по управлению памятью относятся:

Учет свободной и занятой памяти;

Выделение памяти процессам и ee освобождение;

Вытеснение кодов и данных процессов на диск, когда памяти не хватает и возврат на место;

Настройка адресов на конкретную область физической памяти;

Дефрагментация;

Защита памяти.

операционная система должна выполнять такие функции.

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

Автоматическое размещение и управление. Программы должны динамически размещаться в памяти в соответствии с определенными требованиями.

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

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

Долгосрочное хранение. Многим приложениям требуются средства, с помощью которых можно было бы хранить информацию в течение длительного периода времени после выключения компьютера.

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

Виртуальная память — это устройство, позволяющее программистам рассматривать память с логической точки зрения, не заботясь о наличии физической памяти достаточного объема.

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

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

Типы адресов

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

Адреса подразделяются на:

Символьные имена. Присваивает программист (например метки);

Виртуальные адреса. Формирует транслятор. Начальный адрес равен нулю;

Физические адреса — номера ячеек памяти, где в действительности будут расположены команды и данные.

Совокупность виртуальных адресов составляет виртуальное адресное пространство. Виртуальное адресное пространство определяется разрядностью компьютера. Для 32-разрядных –4 Гб.

Существует два основных типа представления виртуальных адресов:

Линейная, при которой адрес начала всегда равен нулю, а адрес целое число;

Деление на сегменты, при котором адрес – это пара чисел (n,m), где n- номер сегмента, m- смещение.

Некоторые понятия связанные с виртуальными адресами

Максимально возможное виртуальное адресное пространство(ВАП) – определяется разрядностью процессора. Для 32 – разрядного Intel Pentium эта величина составляет 4Гб.

Назначенное ВАП – действительно необходимое процессу для работы. Его также называют образом процесса. Назначенное ВАП может превышать физический объем памяти. На этом основан механизм виртуальной памяти.

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

Системная и пользовательская части ВАП (по 2 Гб каждая).

23. Иерархия запоминающих устройств. Принцип и

алгоритм кэширования данных . Проблема согласо-

вания данных.

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

Концепция виртуализации. концепция прерывания.

Рис. 2.17. Иерархия ЗУ

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

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

Концепция виртуализации. концепция прерывания.

Рис. 2.18. Кэш-память

В системах, оснащенных кэш-памятью, каждый запрос к оперативной памяти выполняется в соответствии со следующим алгоритмом:

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

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

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

Проблема согласования данных

Во власти гипервизора


Похожие статьи.

Понравилась статья? Поделиться с друзьями: