|
Понятие процесса. Диаграммы состояний процесса. Параллельное выполнение программ в различных операционных средах. Многопоточные операционные системы.
Диаграмма сстояния процессора:
Готовый процесс – процесс, владеющий всеми ресурсами кроме процессорного времени
Блокированный процесс – процесс, не владеющий хотя-бы одним критическим ресурсом (кроме процессорного времени)
Различают 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 ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|