- •Дифференцируемость функции в точке, дифференциал
- •Интерполирование алгебраическими многочленами
- •Двухзвенная (сервер бд)
- •Заливка области, заданной координатами своих вершин
- •Заливка области, заданной цветом границы (заливка с затравкой)
- •По способу задания области делятся на два типа:
- •Основное отличие заливки области с затравкой от заполнения многоугольника:
- •Аддитивная цветовая модель rgb
- •Субтрактивная цветовая модель cmyk
- •Задача определения закона распределения с.В. По статистическим данным.
- •Задача нахождения неизвестных параметров распределения.
- •Задача проверки правдоподобия гипотез.
- •Простой пароль и его модификации
- •2 Основных этапа многокритериальной оптимизации.
- •Обучающие системы – задают вопросы, проверяют знания человека, и дают те знания, которыми он не владеет.
- •Архитектура и основные составные части систем ии.
- •Кластерный анализ.
- •Генетический алгоритм
Генетический алгоритм
Генетический алгоритм (ГА) является самым известным на данный момент представителем эволюционных алгоритмов, и, по своей сути, алгоритмом для нахождения глобального экстремума многоэкстремальной функции. ГА моделирует размножение живых организмов.
Для начала представим себе целевую функцию от многих переменных, у которой необходимо найти глобальный максимум или минимум:
f(x1, x2, x3, …, xN). (5.31)
Для того чтобы заработал ГА, необходимо представить независимые переменные в виде хромосом. Первым шагом является преобразование независимых переменных в хромосомы, которые будут содержать всю необходимую информацию о каждой создаваемой особи. Имеется два варианта кодирования параметров:
в двоичном формате;
в формате с плавающей запятой.
Если сравнивать эти два способа представления, то более хорошие результаты дает вариант представления в двоичном формате.
Генетический алгоритм работает следующим образом. В первом поколении все хромосомы генерируются случайно. Определяется их "полезность". Начиная с этой точки, ГА может начинать генерировать новую популяцию. Обычно, размер популяции постоянен. Репродукция состоит из четырех шагов:
селекции и трех генетических операторов (порядок применения не важен);
кроссовера;
мутации;
инверсии.
Кроссовер является наиболее важным генетическим оператором. Он генерирует новую хромосому, объединяя генетический материал двух родительских. Существует несколько вариантов кроссовера. Наиболее простой - одноточечный, где берутся две хромосомы и перерезаются в случайно выбранной точке. Результирующая хромосома получается из начала одной и конца другой родительских хромосом:
-
001100101110010|11000
001100101110010 11100
110101101101000|11100
Мутация представляет собой случайное изменение хромосомы (обычно простым изменением состояния одного из битов на противоположное). Данный оператор позволяет ГА более быстро находить локальные экстремумы, с одной стороны, и "перескочить" на другой локальный экстремум - с другой:
-
00110010111001011000
00110010111001111000
Инверсия инвертирует (изменяет) порядок битов в хромосоме путем циклической перестановки (случайное количество раз). Многие модификации ГА обходятся без данного генетического оператора.
-
00110010111001011000
11000001100101110010
Очень важно понять, за счет чего ГА на несколько порядков превосходит по быстроте случайный поиск во многих задачах. Дело, видимо, в том, что большинство систем имеют довольно независимые подсистемы. Вследствие этого, при обмене генетическим материалом часто может встретиться ситуация, когда от каждого из родителей берутся гены, соответствующие наиболее удачному варианту определенной подсистемы (остальные "уродцы" постепенно вымирают). Другими словами, ГА позволяет накапливать удачные решения для систем, состоящих из относительно независимых подсистем (а это большинство современных сложных технических систем и все известные живые организмы). Соответственно, можно предсказать, когда ГА скорее всего даст сбой (или, по крайней мере, не покажет особых преимуществ перед методом Монте-Карло) - системы, которые сложно разбить на подсистемы (узлы, модули), а также при неудачном порядке расположения генов (рядом расположены параметры, относящиеся к различным подсистемам), когда преимущества обмена генетическим материалом сводятся к нулю. Последнее замечание несколько ослабляется в системах с диплоидным (двойным) генетическим набором.
Организация ЭВМ и систем/Архитектура ЭВМ и систем
Шишаев М.Г.
Архитектура ЭВМ. Программная модель процессора. Режимы адресации памяти.
Для соединения нескольких функц-ых устр-в компа проще использовать общую шину, к кот подсоединяются все устр-ва. Шина – набор проводников – соединяет компоненты. Архитектура с общей шиной наиболее распространена. Т.к. за 1 раз по шине может пересылаться только 1 слово данных, в каждый конкретный момент шину исп-ют только 2 устр-ва. «+» низкая стоимость и гибкость в отношении подключения устр-в. Проблема: устр-ва отличаются по скорости функц-ния. Реш-е: исп-ние буферных регистров(хранят получаемую инфу) устр-в, что предотвращает блокирование процессора медлен устр-вами
О
сновные
аспекты функционирования ЭВМ. Исполнение
команды разделяется на 4 основных этапа:
выбор команды из памяти; декодирование
(анализ кода операции, извлечение из
памяти и подача на вход АЛУ), выполнение
(АЛУ считает), запись результатов (в
регистр или память).
Организация ввода-вывода между устройствами. 3 типа ввода-вывода: 1.программно-управляемый. Процессор постоянно опрашивает устройства на данные для пересылки. У устройств есть регистры данных и флаг состояния. Если флаг установлен, то устройству необходимо пересылать данные. Не эффективен много времени на опрос. 2.Ввод-вывод по прерыванию. Анологичен 1, только о необходимости пересылки данных устройство сигнализирует по линии прерываний. В этих 2 методах задействован ЦП, за каждую машинную операцию он может передать 1 маш. слово. 3.DMA (ПДП) – прямой доступ к памяти. Используется при пересылке больших объемов данных. У устройства должен быть контроллер DMA. Процессор передает контроллеру DMA начальные адрес передаваемого блока, длину блока. Может использоваться флаг, который сигнализирует о завершении операции по линии прерываний.
Е
сли
все устройства подключены к одной шине,
она ф-ет на скорости самого медленного
из устройств. Поэтому системная шина
use для в/д ОП и ЦП, а все
другие устройства подключ. через мост,
соединяющие с. шину с шиной расширения.
Устройства ЭВМ работают на разных
частотах. Для взаимодействия частоту
необходимо согласовывать. Решается эта
проблема при помощи использования
мостов и шин расширения (см. рис.) Примеры
шин расширения: PCI, AGP,
ISA, USB, IDE.
Программная модель процессора. Регистры общего назначения (AX, BX, CX, DX,BP,SP, SI, DI) – используются для хранения данных и адресов.
Сегментные регистры(CS, DS, SS,ES, FS,GS) – для хранения адресов сегментов памяти.
Регистры состояния и управления – содержат информацию о состоянии процессора, исполняемой команды и позволяют изменить это состояние (регистр флагов, регистр указателя команды).
Регистр – ячейка памяти внутри процессора.
Обобщенный формат команды. С-ма команд процессора (набор инстр-ций)-полный набор команд, кот может вып-ть данный проц-р. КОП+ АК (код операции (что делать)+ адресный код (с чем)- в нем наход. @ операндов, результаты операции). Сколько частей в АК различают без-, 1- и 2-адресные команды.
Режимы адресации. Прямая – АК=исполнительному адресу (АИ- № ячейки ОП); относительная AИ=PC(счетчик команд)+АК; базовая – АИ=АБ+АК (АБ – базовый адрес(значение второго регистра)); косвенная – адресация адреса АК указывает на АИ, а он на операнд в ОП. Ак не равно АИ.
PCI – взаимосвязь периферийных компонентов – для подключения внутренних доп. устройств.
AGP – ускоренный графический порт (сист. шина для видеокарты).
USB – универсальная последовательная шина.
IDE – интерфейс для подключения дисковых устройств внешней памяти.
Защищенный режим работы процессоров Intel: концепция, основные понятия, техника формирования физического адреса.
Защищенный режим позволяет использовать все возможности, заложеные в процессоре. Все современные ОС работают в этом режиме. Для обеспечения совместной работы нескольких программ, необходимо защитить их от взаимного влияния. Защищать требуется и аппаратуру, а обращения к ней идет через операции ввода-вывода и прерывания. В ЗР процессор аппаратно реализует многие функции защиты, которые необходимы для построения многозадачной системы. Защита памяти основывается на сегментации. Сегмент – непрерывный блок памяти, к его элементам возможно обращение с помощью различных инструкций процессора. Максимальный размер сегмента – 4Gb (в ранних процессорах 64Kb). В ЗР сегменты распределяются ОС, но любая прикладная программа может использовать только разрешенные для нее сегменты. Основные атрибуты, которые получил каждый сегмент в ЗР: распределение с. в памяти, размер с., Ур-нь привилегий, который определяет права данного сегмента относительно других сегментов. Программа не может обратиться к любому физ. адресу, для этого она д. иметь опред. полномочия. Ключевым объектом в ЗР явл. дескриптор сегмента – 8-байтная структура, содержащая следующие атрибуты: расположение сегмента в памяти; размер сегмента; уровень привелегий; тип доступа; некоторые другие атрибуты. Любая обл. памяти д.б. описана таким дескр. Все дескрипторы собираются в дескрипторные таблицы. В какую именно – определяется назначением сегмента (локальная, глобальная, прерывания). Адрес, по которому размещены эти таблицы, хранится в системном регистре (GDTR, LDTR, IDTR). В защ. режиме сегм. регистр содержит селектор (индекс) в таблице дескр.
Для обращения к требуемому сегменту в сегм. регистр заносится не сегм. адрес, а селектор. В состав селектора входит номер соответствующего сегменту дескриптора. Проц. по этому номеру находит нужный дескриптор, извлекает из него базовый адрес сегмента и прибавляет к ему смещение (относит. адрес). Внутри сегм. программа обращается к адресу относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот относит. адрес явл-ся эффективным.
Уровень привилегий (кольца защиты) – позволяет разграничивать доступ к сегментам памяти. Всего 4. Высший уровень – 0 (ОС), 1 – некоторые системные сервисы, 2 – расширение ОС, 3 – прикладные задачи. Межсегментная передача управления осуществляется только к тем сегментам, у которых уровень привилегий ниже.
Селектор – индекс в таблице дескрипторов сегментов (используется регистр CS-послед 2 бита, 0..15 -разрядность).
Ф
ормирование
линейного адреса в защищенном режиме
(см. рис)
Архитектура ЭВМ с общей шиной. Принцип действия синхронных и асинхронных шин. Примеры и характеристика шин ввода-вывода.??????
Информационные сети/сети ЭВМ и телекоммуникаций
Шишаев М.Г.
Основные задачи уровня канала данных в сетях ЭВМ и методы их решения.
Цель канального уровня превратить несовершенную среду передачи в надежный канал, свободный от ошибок.
Задачи: 1.реализация сервиса сетевого уровня 2.кадрирование (разбиение на кадры) 3.обработка ошибок передачи 4.управление потоком данных
1. сервис зависит от протокола. 3 основных вида:
без уведомления и без соединения – не надежный-надежная физ. среда-оптоволокно необходимо для приложений РВ (видео). С уведомлением и без соединения (когда физ. среда не надежна – радио. Кадры – протокольные куски данных, есть потерянные куски кадров). С уведомлением и с соединением – сам. надежный. Передача в 3 этапа: установление соединения, передача кадров, разрыв соед-я. Любой кадр нумеруется, кан. уровень обеспечивает сохранение посл-ти кадров и гарантирует, что любой кадр получаем 1 раз (исключено дублирование).
2. Проблема: На физическом уровне передаются биты, которые могут поменяться на противоположные или пропасть вообще. Общий принцип: деления на блоки и подсчет контрольной суммы – проверка use временных методов. Методы: «в лоб»- фиксир длина кадра и паузы между кадрами (полохо, не гибко. При обсчете возникает расхронизация)
1. Счетчик символов.В начале любого кадра вставляют байт, содержащий число символов в этом кадре. Yе используется, т.к. если хотя бы один из кадров нарушится, то придется передавать посл-ть заново. «+» кадры разл. длины «-» если ошибка в счетчике, то приход-ся повторно пересылать
2
.
Вставка старт- стоповых символов
(bite stuffing).
Любой кадр предваряется последовательностью
спец символов. DLE (Data Link Escape)
STX (Start Text) ETX (End Text). Проблема: м.
встретиться DLE – нужно
вставить DLE до него. «+»
если потеряна граница кадра, надо искать
пару DLE ETX
или DLE STX.
Недостаток: жесткая привязка к кодировке.
Байт - ориентированный (можно передавать
символы из нек набора) «+» кадры любой
длины
3. Вставка старт- стоповых битов (bit stuffing) (HDLC)
м
ожно
передавать любое кол-во битов и любые
битовые последовательности – нет
привязки к кодировке. «+» кадр любой
длины не кратной длине байта, выше
скорость передчаи, т.к. работа с битами
Границы кадра – флаг бит (01111110).
Пр: 01111110 1101101111 011010 01111110 Проблема: флаг может встретиться внутри кадра. Передающий после пяти единиц вставляет 0, а принимающий – удаляет 0.
4.нарушение кодировки на физическом уровне. Метод не такой универсальный, он привязан к физич. кодировке битов.
Пр: кадрирование в манчестерском коде: 1 -переход высокое - низкое напряжение; 0 – переход наоборот. Не используются переходы низк – низк и выс – выс, они используются для обозначения границ кадра. «+»экономичен и не требует бит-стаф, ни поля длины «-» зависит от принятого метода физ кодир-ния
3. Обнаружение ошибок.
- ошибки передачи: организация обратной связи в виде спец кадров-подтверждений. В нем указывается правильно ли вы приняли кадр или с ошибкой – механизм хорошо работает при обнаружении ошибок. Защита от дублирования: кадрам присваиваются номера и дубликаты выбрасываются.
- потеря кадров: вводится время ожидания – таймер. Ошибки бывают одиночные и групповые. Основа для обнаружения ошибок – избыточность. Коды бывают с обнаружением и с исправлением.
Контроль паритета (четности) – К каждому блоку добавл. бит – он зависит от кол- ва 1 – если четное-0 если нет -1. Обнаруживает 1 ошибку, а 2 нет.
Кодослово – сообщение + контрольный разряд. (n=m+r). Способен ли код обнаруживать (исправлять) ошибки определяется минимальным расстоянием Хемминга (кол-во различающихся разрядов в 2х кодословах) между его кодословами. Если мы хотим обнаруживать d ошибок, то мин раст Хем должно быть d+1, если мы хотим исправлять d ошибок, то мин раст Хем должно быть 2d+1. Обнаруживающие коды вносят большую избыточность. «-» кода Х: ловит только одиночные ошибки.
CRC -обнаруживающий код. Контрольная сумма формируется в рез-те деления по модулю 2 исходного сообщения на сгенерированный полином, остаток цепляется к исходному сообщению, в рез. полином будет делиться на генератор полинома. CRC-16, CRC-32 обнаруживают одиночные, двойные, групповые ошибки длины <= 16 и нечетное число изолированных ошибок с вер-тью 99,997%.
4
.
управление потоком данных: Перед
передачей отправитель спрашивает у
получателя разрешение на отсылку.
Проблема «захлебывания получателя» -
различие между быстродействием ПК
отправителя и получателя. Перед передачей
отправитель спрашивает можно ли
передавать. Рассмотрим протоколы
скользящего окна: набор последовательных
чисел – номера кадров, которые отправитель
может отправить не ожидая подтверждения
каждого. Эти кадры образуют окно отправки.
У получателя есть буфер (окно получения).
У окон есть верхняя и нижняя граница.
Порядковые номера кадров в окне отправки
– кадры отправленные, но не подтвержденные.
Верхняя граница окна смещается вверх
после отправки кадра, как только приходит
подтверждение нижняя граница смещается
вверх. Откат- когда появл. Ошибка в кадре
с №к, то повтор отправки всех кадров с
№к. Выборочный повтор сложнее организовать.
(HDLC).
Сравнительная характеристика методов коммутации: каналов, сообщений, пакетов. Коммутация в сетях АТМ.
3 принц. разл. схемы коммутации абонентов
в сетях:
Коммутация каналов (КК) - организация составного канала через несколько транзитных узлов из нескольких последовательно “соединенных” каналов на время передачи сообщения (оперативная коммутация) или на более длительный срок (долговременная ком-ция). Отдельные каналы соединяются между собой специальной аппаратурой – коммутаторами, которые могут устанавливать связи между любыми конечными узлами. Важным свойством КК является необходимость установления сквозного пути от одного абонента до другого до того, как будут посланы данные. После начала разговора линия уже не может вдруг оказаться занятой, хотя она может быть занятой до установки соединения. ”-”: возм-ть отказа в соединении.
Коммутация сообщений (КС) – разбиение инф-и на сообщения, которые передаются последовательно к ближайшему транзитному узлу, который приняв сообщение, запоминает его и передает далее таким же образом. Сообщение может иметь произвольную длину. Длина определяется характером информации, составляющей сообщение. КС предназначена для орг-ции взаим-я в режиме off-line, когда не ожид-ся немедл. реакции на сооб-е.
Коммутация пакетов (КП) – разбиение сообщения на пакеты, которые передаются отдельно. Разница между сообщением и пакетом: размер пакета ограничен технически, сообщения – логически. Если маршрут движения пакетов между узлами определен заранее, то виртуальный канал (с установлением соедиинения). Если для каждого пакета задача нахождения пути решается заново – дейтаграммный (без установления соединения) способ пакетной ком-ции. Ком-ция ячеек – как и КП, но пакеты всегда имеют фиксированный размер.
V передаваемых данных в ед. вр-ни > чем при КК. Но за счет очередей пакетов в ком-рах пропуск. спос-ть < чем в КК. Размер пакета сущ-но влияет на производ-ть в сети.
Осн различия методов:
при КК созд-ся линия, пропуск спос-ть полностью резервируется за 2мя абонентами, вне зав-ти от того, какая пропуск спос-ть реально потреб-ся. При КП физ. линия м.б. исп-на разными пакетами.
при КК гарантировано что все данные поступят абоненту и в том порядке, в каком их послали. При КП из-за ошибок маршрут-ции пакеты м.б. направлены не по назначению, порядок их поступления абоненту не гаран-ся.
КК абсолютно прозрачна для абонентов. Они м. пересылать данные в любой кодировке и формате. При КП формат и способ кодировки пакетов задан заранее.
Коммутация виртуальных каналов (АТМ) – гибрид КК и КП . От КК берем 3 фазы: установление связи - прокладка вирт. канала, № вирт.кан. пропис. в табл. коммутаторов, передача данных, завершение связи – удаление из таблицы. перед тем, как начать передачу данных между двумя конечными узлами, должен быть установлен виртуальный канал, который представляет собой единственный маршрут, соединяющий эти узлы (КК + КП). От КП: данные передаются пакетами, кот. наз. ячейками, они имеют фикс. длину 53 байта. Операция рассмотрения заголовка не нужна. + от КП возможность перераспределения пропускной способности, + от КК < непроизводит. трафика и скорость выше.
Виртуальные каналы:
PVC – постоянные. Создаётся между двумя точками и существует в течение длительного времени, даже в отсутствие данных для передачи;Используются при постоянной передаче данных
SVC – коммутируемые. Создается между двумя точками непосредственно перед передачей данных и разрывается после окончания сеанса связи. Временные (несколько часов в месяц).
Эталонная модель взаимодействия открытых систем. Состав уровней взаимодействия. Протокол уровня и межуровневый интерфейс.
С появлением необходимости объединения разнотипных ЭВМ в распределенные вычислительные сети возникла потребность в разработке некоторой идеологической концепции, которая позволила бы установить универсальные правила взаимодействия разнотипных ЭВМ. В рамках этой концепции должны быть предусмотрены различные уровни взаимодействия ЭВМ – от самых простейших до самых сложных (высоких). Самым высоким уровнем взаимодействия считается уровень прикладных вычислительных процессов, реализуемых в различных ЭВМ, самым низким – уровень установления соединения в канале связи. При этом каждая из взаимодействующих ЭВМ рассматривается как некоторая открытая система в том смысле, что реализуемое в ней программное обеспечение удовлетворяет некоторому набору универсальных соглашений (протоколов), точное выполнение которых гарантирует возможность взаимодействия различных ЭВМ (открытых систем).
Границы между уровнями устанавливается так, чтобы взаимодействие между смежными уровнями было минимальным, общее число уровней – сравнительно небольшим, а изменения, проводимые в пределах одного уровня не требовали бы перестройки смежных уровней.
Эталонная модель содержит семь уровней:
7. прикладной – отвечает за интерфейс с пользователем и взаимодействие прикладных программ, обеспеч. нужные часто use протоколы (передача файлов) – реализ. часто используемые прикладные протоколы (FTP, TELNET, SMTP);
6. представительский – занимается преобразованием форматов, проблемы семантики и синтаксиса (передача кодировок по e-mail) – имеет дело с инф-ей, а не с потоком битов;
5. сеансовый – отвечает за вызов удаленных процедур (RPC), управление диалогом: восстановление после сбоя - вспомогательный;
4. транспортный – отвечает за доставку данных, компенсируя ошибки – создает иллюзию связи напрямую;
3. сетевой – заведует движением информации по сетям, состоящих из нескольких сегментов, проблема маршрутизации – маршр-ция пакета от отправителя к получателю;
2. канальный – превратить несоверш. среду передачи в надежный канал, свободный от ошибок, формирует последовательность пакетов или фреймов из битов, получаемых от физического уровня;
1. физический – отвечает за передачу последовательности битов через канал связи
Протокол уровня – правила и соглашения по установлению и поддержанию связи между уровнями.
Интерфейс определяет какие примитивы и какие услуги (сервис) нижележащий уровень должен обеспечивать для верхнего уровня.
Сервисы определяются набором примитив. Сервис с соединением и сервис без соединения.
Телефонный разговор – пример сервиса с соединением.
Примитивы сервиса:
request – запрос сервиса
indication – средство обратной связи, информирование о событии.
response – реакция на событие
confirm – подтверждение запроса
Услуга может быть с подтверждением и без подтверждения:
Пр. Connect
Disconnect
Data- передача данных
Connect.request – сеть принимает №
Connect.indication – звучит звонок
Connect.response – поднятие трубки
Connect.confirm – подтв.
Маршрутизация в сетях ЭВМ, типология алгоритмов маршрутизации.
Сети соединяются между собой специальными устройствами - маршрутизаторами. Маршрутизатор – устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных переходов между сетями, или хопов (от hop - прыжок), каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет. Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня.
Типология алгоритмов. Статическая (не адаптивная) маршрутизация – все записи в таблице маршрутизации являются статическими. Динамическая (адаптивная) – записи в таблице маршрутизации обновляются через определенный промежуток времени либо при смене топологии.
Маршрутизация по вектору расстояния (distance vector) – не строят топологию сети (работают вслепую) - RIP. Каждый маршрутизатор периодически и широковещательно рассылает по сети вектор, компонентами которого являются расстояния от данного маршрутизатора до всех известных ему сетей. Под расстоянием обычно понимается число хопов. Возможна другая метрика. При получении вектора от соседа маршрутизатор наращивает расстояния до указанных в векторе сетей на расстояние до данного соседа. Получив вектор от соседнего маршрутизатора, каждый маршрутизатор добавляет к нему информацию об известных ему других сетях, о которых он узнал непосредственно (если они подключены к его портам) или из аналогичных объявлений других маршрутизаторов, а затем снова рассылает новое значение вектора по сети. В конце концов, каждый маршрутизатор узнает информацию обо всех имеющихся в интерсети сетях и о расстоянии до них через соседние маршрутизаторы. Данные алгоритмы хорошо работают т. В небол. сетях, в бол. – они засоряют линии связи интенсивным трафиком.(RIP) +пример(табличка)
Проблема бесконечного счета – потеря маршрута, когда счетчик станет =∞.
Пр: А B С Есть 3 узла, для кажд есть своя маршрут таблица. В получает от А рекламу маршрута до С с метрикой 2 и добавляет его в свою таблицу с метрикой 3. А получает от В рекламу маршр до С с метрикой 3 и добавляет в свою таблицу с метрикой 4 и т.д. до бескон-ти
Методы борьбы:
1.ограничение числа пересылок (маршруты с метрикой 16-RIP счит-ся недостижимыми и не рекламир-ся);
2.механизм расщепленного горизонта – информация о маршруте не отправляется туда, откуда только что пришла.
3.механизм триггерных изменений – команды изменения метрик примен-ся только теми маршр-ми, которые работают с сетью через данный шлюз (от кот. пришла новая метрика).
Маршрутизация по состоянию связей обеспечивают каждый маршрутизатор информацией, достаточной для построения точного графа связей сети – работают, исходя из текущей топологии сети, отслеживают ее изменения - OSPF. Все маршрутизаторы работают на основании одинаковых графов, что делает процесс маршрутизации более устойчивым к изменениям конфигурации. «Широковещательная» рассылка используется только при изменениях состояния связей, что происходит в надежных сетях не так часто. Вершинами графа являются как маршрутизаторы, так и объединяемые ими сети. Для проверки состояний линий связи, подключенных к портам, маршрутизатор обменивается короткими пакетами HELLO со своими ближайшими соседями.(OSPF)
Домен — определенная зона в системе доменных имен Интернет, выделенная владельцу домена (какой-либо стране, международной организации, региону, юридическому или физическому лицу) для целей обеспечения доступа к предоставляемой в Интернет информации принадлежащей владельцу домена. Внутридоменная – маршрутизация внутри домена (RIP, OSPF). Междоменная – между доменами(BGP).
RIP – динамическая маршрутизация по вектору расстояния. Применяется в небольших сетях. В больших сетях неэффективен.”-”: обл. вид-ти ограничена, бол. V непроизв. трафика
OSPF – динамическая маршрутизация по состоянию связей. Более эффективен, чем RIP. Умеет работать с альтернативными маршрутами. Поддерж. аут-цию маршрутов. Протокол строит топологию внутри своего домена + дополнительное структурирование сети (домен делится на зоны). Обмен м/д марш-ми происходит в случае изм. топологии.OSPF и RIP используются внутри одного домена. BGP – междоменная маршрутизация. Допускает наличие петель в структуре сети.
Методы аналоговой и дискретной модуляции и мультиплексирования.
Модуляция.
В вычислительных сетях применяют как потенциальное, так и импульсное кодирование данных, а также специфический способ представления данных – модуляцию. Модуляция бывает: амплитудная, частотная, фазовая.
Амплитудная модуляция — вид модуляции, при которой изменяемым параметром несущего сигнала является его амплитуда. При амплитудной модуляции выбирается один уровень амплитуды синусоиды несущей частоты. Этот способ на практике используется редко из-за низкой помехоустойчивости, но часто применяется в сочетании с фазовой модуляцией.
Фазовая модуляция — один из видов модуляции колебаний, при которой фаза несущего колебания управляется информационным сигналом. При фазовой модуляции значениям данных соответствуют сигналы одинаковой частоты, но с различной фазой. В скоростных модемах часто используются амплитудная модуляция в сочетании с фазовой.
Частотная модуляция (ЧМ) — вид аналоговой модуляции, при котором информационный сигнал управляет частотой несущего колебания. По сравнению с амплитудной модуляцией здесь амплитуда остаётся постоянной.
П
ри
частотной модуляции значения
исходных данных передаются синусоидами
с различной частотой. Применяется в
низкоскоростных модемах (300-1200 бит/с).
Мультиплексирование.
Мультиплекси́рование (англ. multiplexing, muxing) — уплотнение канала, т. е. передача нескольких потоков (каналов) данных с меньшей скоростью (пропускной способностью) по одному каналу. В информационных технологиях мультиплексирование подразумевает объединение нескольких потоков данных (виртуальных каналов) в один. Примером может послужить видеофайл, в котором поток (канал) видео объединяется с одним или несколькими каналами аудио.
С частотным разделением каналов (FDM): кабель разбивается на множество каналов, и данные передаются на множестве различных частот. Разделение области частот не только позволяет различным устройствам осуществлять передачу в одно и тоже время, но и обеспечивает возможность одновременной передачи разнородных форм данных или сигналов (т.е. голоса, видео и данных). FDM используется в системах кабельного телевидения и кабельных модемов (реализует передачу клиентам видеосигналов и данных). FDM разрабатывалась в расчете на передачу непрерывных сигналов, представляющих голос. При переходе к цифровой форме представления голоса была разработана техника TDM.
С разделением времени (TDM): Метод, когда каждому низкоскоростному каналу выделяется определенная доля времени (слот или квант). TDM поочередно обслуживает в течении цикла своей работы все каналы связи. Мультиплексор успевает вовремя обслужить канал и передать его очередной замер далее по сети.
С разделением длины волны (WDM): Использует передачу данных в одном направлении с помощью светового пучка одной длины волны, а в обратном – другой длины волны. WDM применяется для повышения скорости передачи данных в одном направлении, обычно используя от 2 до 16 каналов.
Д
искретная
модуляция. Это процесс, при котором
данные, изначально имеющие аналоговую
форму (речь, ТВ изображение) передаются
по каналу связи в дискретном виде, т.е.
в виде последовательности 1-ц и 0-лей.
В зависимости от того, какой из параметров несущего колебания изменяется, различают вид модуляции (амплитудная, частотная, фазовая и др.)
Фазово-импульсная модуляция (англ. Pulse-position modulation, PPM) — один из трёх основных способов цифрового модулирования информации в последовательность импульсов. Фазово-импульсная модуляция сигнала осуществляется путём задержки (или упреждения) появления импульса на время, соответствующее значению информационных символов. При фазово-импульсной модуляции кодирование передаваемой информации заключается в изменении позиции импульсов в группе импульсов, которая называется кадром.
Фазоимпульсная: меняется фаза импульса, на практике не применяется, а используется ИКМ (импульсно кодовая модуляция). Кодируем исходный сигнал 0 и 1-цами и применяем любой метод кодирования.
Широтно-импульсная: меняется широта импульса; Широтно-импульсная модуляция (ШИМ, англ. Pulse-width modulation (PWM)) — приближение желаемого сигнала (многоуровневого или непрерывного) к действительным бинарным сигналам (с двумя уровнями - вкл/выкл), так, что, в среднем, за некоторый отрезок времени, их значения равны.
Амплитудно-импульсная: меняется амплитуда импульса.
Дифференциальная (или дельта) импульсно-кодовая модуляция (ДИКМ) кодирует сигнал в виде разности между текущим и предыдущим значением. Для звуковых данных такой тип модуляции уменьшает требуемое количество бит на отсчёт примерно на 25 %.Разностная ИКМ (дельта модуляция): кодируется не мгновенная амплитуда, а только изменения. Можно получить на принимающей стороне сигнал того же качества. Использует малое количество разрядов для кодирования.
ИКМ (импульсно-кодовая модуляция)
Чтобы получить на входе канала связи (передающий конец) ИКМ-сигнал из аналогового, мгновенное значение аналогового сигнала измеряется через равные промежутки времени. Количество оцифрованных значений в секунду (или скорость оцифровки, частота дискретизации) должно быть не ниже 2-кратной максимальной частоты в спектре аналогового сигнала (по теореме Котельникова). Мгновенное измеренное значение аналогового сигнала округляется до ближайшего уровня из нескольких заранее определённых значений. Этот процесс называется квантованием, а количество уровней всегда берётся кратным степени двойки, например, 8, 16, 32 или 64. Номер уровня может быть соответственно представлен 3, 4, 5 или 6 битами. Таким образом, на выходе модулятора получается набор битов (0 и 1).
Через равные промежутки времени измеряются мгновенные амплитуды исходного сигнала, значения этих амплитуд кодируются и этот двоичный код отправляется по линии связи. F из [300, 3400] – речевой диапазон.
tg – скважность мгновенных амплитуд или цикл дискретизации. Fg = 1/tg – частота дискретизации.
Fg >=2*Fmax – условие для корректного кодирования сигнала.
Для 256 уровней квантования необходимо 8 разрядов, т.к 2^8=256. Чем больше уровней квантования, тем больше шумов квантования. Наиболее популярна дельтамодуляция.
Кодируем исходный сигнал (0 и 1),передаем скрытый.Чтобы качественно закодировать речь, замеры напряжения нужно делать каждые 125 мксек.
Частота дискретизации=8000Гц (8000 раз в минуту) Для кодир. Сигналов амплитуды исп-ся 8 двоич. Разрядов. Скорость:8000*8=64000 бит/сек. Должны передать для 1-го речевого канала. Речевые каналы уплотняются: 30-канал в Европе 30*64
Е0-реч. Канал, Е1- 30-канал, Е2-4Е1 и т. д.
Разностная ИКМ )дельта-модуляция)- кодир-ся изменение амплитуд.
Получаем тот же результат, но исп-ем меньший разряд.
20 ур.-5 разрядов в ИКМ, а значит получаем большую скорость передачи.
Дополнительно! ИКМ не совсем модуляция, а скорее кодирование – преобразование аналогового сигнала в цифровой код (каждая порция 0 и 1 – амплитуда). Можно получить исходный сигнал, но с помехами-шумами квантования.
Операционные системы
Шишаев М.Г.
Основные принципы организации файловых систем UNIX: пространство имен; структура записи каталога; структура описателя файла (inod-а); выделение блоков.
В юниксе файлы организованы в виде древовидной структуры (дерева), называемой файловой системой. Каждый файл имеет имя, определяющее его расположение в дереве файловой системы. Корнем этого дерева является корневой каталог («/»). Имена всех остальных файлов содержат путь – список каталогов (ветвей), которые необходимо пройти, чтобы достичь файла. Так как в юнихе все доступное пользователям файловое пространство объединено в единое дерево каталогов, корнем которого является «/», то полное имя любого файла начинается с «/» и не содержит в себе идентификатора устройства (дискового накопителя, CD-ROM или удаленного компьютера в сети), на котором он фактически хранится. В большинстве случаев единое дерево, каким его видит пользователь системы, составлено из нескольких отдельных файловых систем, которые могут иметь различную внутреннюю структуру, а файлы, принадлежащие этим файловым системам, могут быть расположены на различных устройствах.
В юниховой файловой системе каталог почти не содержит информации о файле. Он хранит в себе только имя файла и номер его инода.
В иноде хранится: тип файла (обычный файл, специальный файл устройства, кол- во ссылок на инод (link); каталог является примером файла, сохранены права доступа – чтение, запись); идентификаторы хозяина (кто его создал) и группы к которой принадлежит хозяин; времена создания файла, последней модификации файла, последнего доступа к файлу; длина файла; идентификатор файловой системы в которой расположен файл; адреса дисковых блоков в которых расположен файл.
В иноде информация о блоках данных файла хранится в массиве из 13 элементов. Первые 10 из них указывают непосредственно на блоки данных, 11й – адресует блок, в свою очередь содержащий адреса блоков хранения данных (блок косвенной адресации 1 уровня). 12й указывает на блок, также хранящий адреса блоков(на блок косвенной адресации1ур-ня), каждый из которых адресует блок хранения данных файла. 13й элемент используется для тройной косвенной адресации.
Наиболее интересная особенность Unix-овых ФС состоит в том, что инод не содержит имени файла. С другой стороны, он содержит счетчик связей (links) – ссылок на этот файл из каталогов. Т.е. на один и тот же инод можно ссылаться из различных каталогов или из одного каталога под различными именами. Иными словами, один и тот же файл в этих ФС может иметь несколько различных имен. Это свойство предоставляет неоценимые возможности для организации иерархии каталогов, но имеет и некоторые оборотные стороны (чтобы удалить файл надо удалить все связи)
Понятие операционной системы (ОС). Основные функции ОС. Классификация ОС.
ОС – упорядоченная последовательность системных управляющих программ совместно с необходимыми информационными массивами, предназначенная для планирования, исполнения пользовательских программ и управления всеми ресурсами ЭВМ с целью предоставления возможности пользователям эффективно решать задачи, сформулированные в терминах вычислительной системы.
Функции ОС: 1) Сокрытие аппаратуры 2) Предоставление удобного интерфейса пользователя 3) Управление процессором путем чередования выполнения программ 4) обработка прерываний и синхронизация доступа к ресурсам ОС 5)управление памятью путем выделения программам требуемого ресурса памяти 6) управление путем инициализации запросов на ввод-вывод, управление очередями и фиксации завершения обменов 7) управление инициализацией программ и обеспечения межпрограммных связей 8) управление данными путем поддержки создания, открытия, закрытия, чтения записей файлов 9) 9. обеспечение взаимодействия с внешними устройствами, драйверы устройств
В
операционном окружении сконцентрированы
функции, специфичные для аппаратуры.
API – Application Programming Interface – служит для взаимодействия ПО с ОС.
Виртуальная машина. В результате пользователи видят и используют виртуальную машину как некое устройство, способное воспринимать их программы, написанные на определенном языке программирования, выполнять их и выдавать результаты. При таком языковом представлении пользователя совершенно не интересует реальная конфигурация вычислительной системы, способы эффективного использования ее компонентов и подсистем. Он мыслит и работает с машиной в терминах используемого им языка и тех ресурсов, которые ему предоставляются в рамках виртуальной машины. [Это система, допускающая одновременную работу нескольких программ, но создающая при этом для каждой программы иллюзию, что машина находится в полном ее распоряжении.]
Классификация ОС:
Однозадачные, многозадачные.
Тип доступа к системе:
системы с пакетной обработкой (юзер составляет пакет заданий , затем передает его системе)
системы разделения времени (Виндовс, Юникс). Интерактивный режим работы. В диалоговом режиме требуется приемлемое время отклика;
системы реального времени – требуется гарантированное время отклика.
По интерфейсу пользователя:
Язык директив
Язык управления заданиями (сложнее а)
Системы с графическим интерфейсом
a), b) – интерфейс командной строки
4. Многопользовательские, однопользовательские
Системы реального времни – для разр-ки приложений реал.времени(бортовой компьютер): обязаны поддерж-ть многопроцессноть
Кросс-загрузчики: системы полностью ориетированные на работу с host-машиной. Для отладки кода, прошиваемого в ПЗУ
Смешанного типа Windows 95 – исп-ют аппартаные ср-ва процессора для защиты и виртуализации памяти, могут обеспечивать поддобие многозад. Работы, но не защищают себя и программы от ошибок др программ
ДОС – загружает с внеш. Носителя прогу в память и передает ей управление, после чего прога делает всё что хочет(MS DOS)
Принципы организации системы прерывания программ. Векторное прерывание. Программное управление приоритетом.
Понятие прерываемой и прерывающей программы.
В
о
время выполнения ЭВМ текущей программы
внутри машины и в связанной с ней внешней
среде могут возникать события, требующие
немедленной реакции на них со стороны
машины.
Реакция состоит в том, что машина прерывает обработку текущей программы и переходит к выполнению некоторой другой программы, специально предназначенной для данного события. По завершении этой программы ЭВМ возвращается к выполнению прерванной программы.
Рассматриваемый процесс, называемый прерыванием программ, поясняется на рисунке. Принципиально важным является то, что моменты возникновения событий, требующих прерывания программ, заранее неизвестны и поэтому не могут быть учтены при программировании.
Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ. Назовем эти сигналы запросами прерывания. Программу, затребованную запросом прерывания назовем прерывающей программой, противопоставляя ее прерываемой программе, выполнявшейся машиной до появления запроса.
Запросы на прерывания могут возникать внутри самой ЭВМ и в ее внешней среде. К первым относятся, например, запросы при возникновении в ЭВМ таких событий, как появление ошибки в работе ее аппаратуры, переполнение разрядной сетки, попытка деления на 0, выход из установленной для данной программы области памяти, завершение операции ввода-вывода периферийным устройством и др. Запросы во внешней среде могут возникать от других ЭВМ, от аварийных и некоторых других датчиков технологического процесса и т. п.
Возможность прерывания программ – важное архитектурное свойство ЭВМ, позволяющее эффективно использовать производительность процессора при наличии нескольких протекающих параллельно во времени процессов, требующих в произвольные моменты времени управления и обслуживания со стороны процессора. В первую очередь это относится к организации параллельной во времени работы процессора и периферийных устройств машины, а также к использованию ЭВМ для управления в реальном времени технологическими процессами. Чтобы ЭВМ могла реализовывать с высоким быстродействием прерывания программ, машине необходимо придать соответствующие аппаратурные и программные средства, совокупность которых получила название системы прерывания программ или контроллера прерывания.
Сохранение и восстановление состояния прерываемой программы.
Основными функциями системы прерывания являются:
запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе;
восстановление состояния прерванной программы и возврат к ней.
Обслуживание прерываний. ЦП, обнаружив сигнал прерывания, помещает в машинный стек слово состояния программы (определяющее различные флаги ЦП), регистр программного сегмента (CS) и указатель команд (IP) и блокирует систему прерываний. Затем ЦП с помощью 8-разрядного числа, установленного на системной магистрали прерывающим устройством, извлекает из таблицы векторов адрес обработчика и возобновляет выполнение с этого адреса.
Состояние системы в момент передачи управления обработчику прерываний совершенно не зависит от того, было ли прерывание возбуждено внешним устройством или явилось результатом выполнения программой команды INT. Это обстоятельство удобно использовать при написании и тестировании обработчиков внешних прерываний, отладку которых можно почти полностью выполнить, возбуждая их простыми программными средствами.
Проблема определения источника запроса, принцип векторного прерывания.
При наличии нескольких источников запросов прерывания должен быть установлен определенный порядок (дисциплина) в обслуживании поступающих запросов. Другими словами, между запросами (и соответствующими прерывающими программами) должны быть установлены приоритетные соотношения, определяющие, какой из нескольких поступивших запросов подлежит обработке в первую очередь, и устанавливающие, имеет право или не имеет данный запрос (прерывающая программа) прерывать ту или иную программу. Назовем вектором прерывания вектор «начального состояния прерывающей программы». Вектор прерывания содержит всю необходимую информацию для перехода к прерывающей программе, в том числе ее начальный адрес. Каждому запросу (уровню) прерывания соответствует свой вектор прерывания, способный инициировать выполнение соответствующей прерывающей программы. Векторы прерывания обычно находятся в специально выделенных фиксированных ячейках памяти. Главное место в процедуре перехода к прерывающей программе занимают передача из соответствующего регистра процессора в память на сохранение текущего вектора состояния прерываемой программы (чтобы можно было вернуться к ее исполнению) и загрузка в регистр процессора вектора прерывания прерывающей программы, к которой при этом переходит управление процессором. Процедура организации перехода к прерывающей программе включает в себя выделение из выставленных запросов такого, который имеет наибольший приоритет.
Различают абсолютный и относительный приоритеты. Запрос, имеющий абсолютный приоритет, прерывает выполняемую программу и инициирует выполнение соответствующей прерывающей, программы. Запрос с относительным приоритетом является первым кандидатом на обслуживание после завершения выполнения текущей программы. Если наиболее приоритетный из выставленных запросов прерывания не превосходит по уровню приоритета выполняемую программу, то запрос прерывания игнорируется или его обслуживание откладывается до завершения выполнения текущей программы. Простейший способ установления приоритетных соотношений между запросами (уровнями) прерывания состоит в том, что приоритет определяется порядком присоединения линий сигналов запросов ко входам системы прерывания. При появлении нескольких запросов прерывания первым воспринимается запрос, поступивший на вход с меньшим номером. В этом случае приоритет является жестко фиксированным. Изменить приоритетные соотношения можно лишь пересоединением линий сигналов запросов на входах системы прерывания.
Векторное прерывание.
[Устройство, выдавшее запрос, выставляет на шину адрес обработчика прерывания. Тем самым процессор освобождается от проблемы определения источника.]
Прерывание называется векторным, если источник прерывания, выставляя запрос прерывания, посылает в процессор (выставляет на шины интерфейса) код адреса в памяти своего вектора прерывания.
При векторном прерывании каждому запросу прерывания, или, другими словами, устройству – источнику прерывания, соответствует переход к начальному адресу соответствующей прерывающей программы, задаваемому вектором прерывания.
Проблема обработки при одновременном поступлении нескольких запросов.
Программно-управляемый приоритет прерывающих программ.
Относительная степень важности программ, их частота повторения, относительная степень срочности в ходе вычислительного процесса могут меняться, требуя установления новых приоритетных отношений. Поэтому во многих случаях приоритет между прерывающими программами не может быть зафиксирован раз и навсегда. Необходимо иметь возможность изменять по мере надобности приоритетные соотношения программным путем. В ЭВМ широко применяются два способа реализации программно-управляемого приоритета прерывающих программ, в которых используются соответственно порог прерывания (в малых и микроЭВМ) и маски прерывания (в ЭВМ общего назначения).
Порог прерывания. Этот способ позволяет в ходе вычислительного процесса программным путем изменять уровень приоритета процессора - другими словами, задавать порог прерывания, т. е. минимальный уровень приоритета запросов, которым разрешается прерывать программу, идущую на процессоре. Порог прерывания задается командой программы, устанавливающей в регистре порога прерывания код порога прерывания. Специальная схема выделяет наиболее приоритетный запрос прерывания, сравнивает его приоритет с порогом прерывания и, если он оказывается выше порога, вырабатывает общий сигнал прерывания, и начинается процедура прерывания.
В современных ЭВМ общего назначения наибольшее распространение получило программное управление приоритетом на основе маски прерывания. Маска прерывания представляет собой двоичный код, разряды которого поставлены в соответствие запросам или классам прерывания. Маска загружается командой программы в регистр маски. Состояние 1 в данном разряде регистра маски разрешает, а состояние 0 запрещает (маскирует) прерывание текущей программы от соответствующего запроса. Таким образом, программа, изменяя маску в регистре маски, может устанавливать произвольные приоритетные соотношения между программами без перекоммутации линий, по которым поступают запросы прерывания. Каждая прерывающая программа может установить свою маску. С замаскированным запросом в зависимости от причины прерывания поступают двояким образом: или он игнорируется, или запоминается, с тем, чтобы осуществить затребованные действия, когда запрет будет снят.
Концепция и принципы организации виртуальной памяти. Задачи управления виртуальной памятью. Страничный обмен.
Для достижения гибкого динамического распределения памяти, устранения ее фрагментации, а также создания значительных удобств для программирования в современных ОС широко используется виртуальная память. При этом на всех этапах подготовки программ, включая загрузку в оперативную память, программа представляется в виртуальных адресах и лишь при самом исполнении машиной команды производится преобразование виртуальных адресов в адреса действующей памяти (в так называемые физические адреса). Это преобразование составляет содержание динамического распределения памяти. Объем виртуального адресного пространства может даже превосходить всю доступную реальную память на ЭВМ. Содержимое виртуальной памяти, неиспользуемой программой, хранится на некотором внешнем устройстве (внешней памяти). По необходимости части этой виртуальной памяти отображаются в реальную память. Ни о внешней памяти, ни о ее отображении в реальную память программа ничего не знает. Она написана так, как будто бы виртуальная память существует в действительности (рис.).
Рисунок 1 Основная концепция виртуальной памяти
Задачи, возникающие при работе с ВП:
Размещение – в АПОП выбирается подходящая страница или сегмент, на который будет отображена страница или сегмент ВАП
Перемещение – в архивной среде выбирается информация, принадлежащая отображаемой странице по его виртуальному адресу, и переносится в страницу ОП
Задача преобразования – вычисляется абсолютный адрес слова в рабочей среде по его виртуальному адресу
Задача замещения – выбор среди страниц АПОП кандидата на перераспределение
Сегментная и страничная виртуальная память
В системах с сегментной и страничной адресацией виртуальный адрес имеет сложную структуру. Он разбит на два битовых поля: номер страницы (сегмента) и смещение в нем. Соответственно, адресное пространство оказывается состоящим из дискретных блоков. Если все эти блоки имеют фиксированную длину и образуют вместе непрерывное пространство, они называются страницами. Если длина каждого блока может задаваться произвольно, а неиспользуемым частям блоков соответствуют «дыры» в виртуальном адресном пространстве, они называются сегментами. Как правило, один сегмент соответствует коду или данным одного модуля программы. Со страницей или сегментом могут быть ассоциированы права чтения, записи и исполнения. Диспетчер памяти содержит регистр – указатель на таблицу трансляции. Эта таблица размещается где-то в физической памяти. Ее элементами являются дескрипторы каждой страницы/сегмента. Такой дескриптор содержит права доступа к странице, признак присутствия этой страницы в памяти и физический адрес страницы/сегмента. Для сегментов в дескрипторе также хранится длина сегмента. Как правило, диспетчер памяти имеет также кэш (cache) дескрипторов – быструю память с ассоциативным доступом. В этой памяти хранятся дескрипторы часто используемых страниц.
Отдельной проблемой при разработке системы со страничной или сегментной адресацией является выбор размера страницы или максимального размера сегмента. Этот размер определяется шириной соответствующего битового поля адреса и поэтому должен быть степенью двойки. С одной стороны, страницы не должны быть слишком большими, так как это может привести к неэффективному использованию памяти и перекачке слишком больших объемов данных при сбросе страниц на диск. С другой стороны, страницы не должны быть слишком маленькими, так как это приведет к чрезмерному увеличению таблиц трансляции, требуемого объема кэша дескрипторов и т.д. Что будет считаться «слишком» большим или, наоборот, маленьким, в действительности зависит от среднего количества памяти, используемого программой. В реальных системах размер страницы меняется от 512 байт до нескольких килобайт.
С сегментными диспетчерами памяти ситуация сложнее. С одной стороны, хочется, чтобы один программный модуль влезал в сегмент, поэтому сегменты обычно делают большими, от 32К и более. С другой стороны, хочется, чтобы в адресном пространстве можно было сделать много сегментов. Кроме того, может возникнуть проблема: как быть с большими неразделимыми объектами, например хэш-таблицами компиляторов, под которые часто выделяются сотни килобайт. С третьей стороны, при подкачке сегментов с диска не хочется качать за один раз много данных. Третье обстоятельство вынуждает многих разработчиков идти на двухступенчатую виртуальную память – сегментную адресацию, в которой каждый сегмент, в свою очередь, разбит на страницы. Это дает ряд мелких преимуществ, например, позволяет раздавать права доступа сегментам, а подкачку с диска осуществлять постранично.
[Селектор – номер дескриптора сегмента в таблице дескрипторов. Дескриптор сегмента - базовый адрес сегмента определяется с помощью таблицы дескрипторов сегмента. Хранит в себе базовый адрес, размер, права доступа на сегмент и т.д.]
Страничный обмен.
Подкачка, или своппинг (swapping - обмен), - это процесс сброса редко используемых областей виртуального адресного пространства программы на диск или другое устройство внешней памяти. Такая внешняя память всегда намного дешевле оперативной, хотя и намного медленнее.
Своппинг становится возможен благодаря тому, что далеко не все, что хранится в памяти системы, используется одновременно. В каждый заданный момент исполняется только часть программного обеспечения, и оно работает только с частью данных.
Это приводит нас к идее многослойной или многоуровневой памяти, когда в быстрой памяти хранятся часто используемые код или данные, а редко используемые постепенно мигрируют на более медленные устройства. Естественно, для того чтобы автоматизировать данный процесс мы должны иметь какой-то легко формализуемый критерий, по которому определяется, какие данные считаются редко используемыми.
При этом алгоритм автомата должен быть как можно более простым. Один простой критерий выбора очевиден - при прочих равных условиях, в первую очередь, мы должны выбирать в качестве жертвы для удаления тот объект, который не был изменен за время жизни в быстрой памяти.
Самый простой алгоритм - выкидывать случайно выбранный объект. Можно также удалять то, что дольше всего находится в данном слое памяти, используя алгоритм FIFO. Видно, что это уже чуть сложнее случайного удаления - нужно запоминать, когда мы что загружали. Понятно также, что это лишь очень грубое приближение к тому, что нам требуется. Наиболее честным будет удалять тот объект, к которому дольше всего не было обращений в прошлом - LRU (Least Recently Used). Минус: в аппаратной реализации счётчика обращения для каждой страницы и сегмента памяти.
clock-алгоритм. Дескриптор каждой страницы содержит бит, указывающий, что к данной странице было обращение. При первом обращении к странице, в которой clock-бит был сброшен, диспетчер памяти устанавливает этот бит. Программа, занимающаяся поиском жертвы, циклически просматривает все дескрипторы страниц. Если clock-бит сброшен, данная страница объявляется жертвой, и просмотр заканчивается - до появления потребности в новой странице. Если clock-бит установлен, то программа сбрасывает его и продолжает поиск.
В случае, когда памяти не хватает, программе почти на каждой команде требуется новая страница, и производительность системы катастрофически - в тысячи раз - падает. Это называется оверсвоппинг (overswap) – очень большая ВП, а ОП маленькая – нехватка страниц, постоянно решаются задачи перемещения и замещения.
