Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
evm_k_dosroku.doc
Скачиваний:
8
Добавлен:
08.11.2019
Размер:
7.64 Mб
Скачать

Билет №13 Понятие процесса. Диаграммы состояний процесса. Параллельное выполнение программ в различных операционных средах. Многопоточные операционные системы. Д иаграмма сстояния процессора:

Готовый процесс – процесс, владеющий всеми ресурсами кроме процессорного времени

Блокированный процесс – процесс, не владеющий хотя-бы одним критическим ресурсом (кроме процессорного времени)

Р азличают 2 вида готовности задачи: готовность в режиме ядра и готовность в режиме пользователя

При вызове другой задачи, вызывающая задача передает ей часть своих ресурсов

Операционные системы:

1 Однозадачные

2 Многозадачные

  • событийно управляемые системы

  • системы реального времени

  • системы разделения времени

Системы разделения времени:

Задаче Т1 выделяется процессорное время t1, затем процессор переключается на задачу T2, которой выделяется процессорное время t2 и т.д.

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

Системы реального времени:

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

Статический алгоритм планирования:

Приоритеты заранее устанавливаются для каждого процесса.

Концепция:

- процесс должен быть завершен за время его периода

- процессы не зависят друг от друга

- каждому процессу требуется одинаковое процессорное время на каждом интервале

- у непериодических процессов нет жестких сроков

- прерывание процесса происходит за ограниченное время.

Процессы выполняются в соответствии с приоритетами.

Наибольшие приоритеты выдаются задачам с наименьшим сроком выполнения

Динамический алгоритм планирования:

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

Концепция:

- обеспечить выполнение процесса с наивысшим приоритетом

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

Событийно управляемые системы:

Процесс начинает выполняться при каком-то событии, например при нажатии кнопки.

Пример: ядро ОС – при обращении к ней какой-то задачи ядро выдает ответ.

Билет №14

Задача управления памятью. Связное и несвязное распределение физической памяти. Выделение памяти разделами фиксированного и переменного размера. Оверлейные структуры. Системы со свопингом. Виртуальная память. Сегментная и страничная организация виртуальной памяти. Трансляция адресов. Стратегии замещения разделов. Сегментно-страничная модель памяти микропроцессоров Intel x86.

У правление физической (реальной) памятью

1)связное распределение памяти разделами фиксированного размера

Размеры разделов не меняются. Они опр-ся архитектурой.

У каждой задачи свой раздел.

а) работа задачи в конкретном разделе

б) генерация перемещаемого кода

Плюс – простота

Минус – низкая эффективность использования памяти

2)связное распределение памяти разделами переменного размера

Каждой задаче выделяется необходимое кол-во памяти.

стратегия выбора раздела (при альтернативе)

  • выбор подходящего по размеру раздела

  • выбор первого подходящего (дабы не много ресурсов для хранения данных о задаче)

  • выбор наименее подходящего по размеру раздела (забить мелкие «ненужные» куски памяти)

Плюс – выс. эффективность начального исп-ия памяти

Минусы – выс. фрагментация памяти при послед. исп-ии разделов

  • слож. стратегия планирования исп-ия памяти

  • необходимость уплотнения памяти

  • Всё, что связано с задачей, лежит вместе (хрен malloc-у)

3)Несвязное распределение памяти разделами переменного размера

Код задачи спец. подготовлен.

Сегментная архитектура памяти – хорошая основа этой стратегии.

Минус – относительная слож-ть реализации

Плюсы – выс.гибкость и эфф-ть распределения

- уменьшение фрагментации

- упрощение сборки мусора

4)Системы со свопингом!

Вся память выделяется активной задаче.

Во вторичной памяти создаются образы задач, содержащие их коды, данные и пр.

Когда задача пассивна, у неё нет ни процессорного времени, ни памяти.

В сё получает при загрузке. По окончании работы её рез-ты копируются в образ задачи.

Т.е. постоянная перезагрузка м/у ОП и вторичной.

Плюсы – простое планирование памяти

  • прогнозируемое поведение задачи во времени

5)Оверлейные структуры

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

ВИРТУАЛЬНАЯ ПАМЯТЬ.

Сегментная модель

Страничная модель

Сегмент – раздел (блок) памяти переменного размера

+ : Хорошо адаптирована под

логическую структуру задачи

- : сложна для реализации обмена

между различными ур-ми памяти

Страница – раздел (блок) памяти

фиксированного размера

+ : простота реализации

- : плохо адаптирована по лог. структуру задачи

Дополнение

1)Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств, и обеспечить защиту памяти между разными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Свопинг).

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

Применение механизма виртуальной памяти позволяет:

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

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

  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

2) Страничная организация виртуальной памяти

В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры). Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. свопинг). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки).

Сегментная организация виртуальной памяти

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

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

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

3) Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).

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

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

Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP адрес, используя различные порты. Известен также как PAT (Port Address Translation)

Билет №15

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