Процессы определяются рядом временных характеристик. В некоторый момент времени процесс может быть порожден (образован), а через некоторое время закончен. Интервал между этими моментами называют интервалом существования процесса.
В момент порождения последовательность и длительность пребывания процесса в каждом из своих состояний (трасса процесса) в общем случае непредсказуемы. Следовательно, непредсказуема и длительность интервала существования. Однако отдельные виды процессов требуют такого планирования, чтобы гарантировать окончание процесса до наступления некоторого конкретного момента времени. Процессы такого класса называютпроцессами реального времени. В другой класс входят процессы, время существования которых должно быть не более интервала времени допустимой реакции ЭВМ на запросы пользователя. Процессы такого класса называютинтерактивными. Процессы, не вошедшие в эти классы, называютпакетными.
В любой ОС по требованию существующего или существовавшего процесса проводится работа по порождению процессов. Процесс, задающий данное требование, называют порождающим, а создаваемый по требованию —порожденным. Если порожденный процесс на интервале своего существования в свою очередь выдает требование на порождение другого процесса, то он одновременно становится и порождающим.
При управлении процессами важно обеспечить воспроизводимость результатов работы каждого процесса, учитывать и управлять той ситуацией, которая складывалась при развитии процесса. Поэтому часто для оказывается важен не только результат счета, но и каким образом этот результат достигается. С этих позиций ОС сравнивает процессы по динамическим свойствам, используя понятие "трасса"—порядок и длительность пребывания процесса в допустимых состояниях на интервале существования.
Два процесса, которые имеют одинаковый конечный результат обработки одних и тех же исходных данных по одной и той же или даже различным программам на одном и том же или на различных процессорах, называют эквивалентными. Трассы эквивалентных процессов в общем случае не совпадают. Если в каждом из эквивалентных процессов обработка данных происходит по одной и той же программе, но трассы при этом в общем случае не совпадают, то такие процессы называют тождественными. При совпадении трасс у тождественных процессов их называют равными. Во всех остальных случаях процессы всегда различны.
Проблематичность управления процессами заключается в том, что в момент порождения процессов их трассы неизвестны. Кроме того, требуется учитывать, каким образом соотносятся во времени интервалы существования процессов. Если интервалы двух процессов не пересекаются во времени, то такие два процесса называют последовательными друг относительно друга. Если на рассматриваемом интервале времени существуют одновременно два процесса, то они на этом интервале являются параллельными друг относительно друга. Если на рассматриваемом интервале найдется хотя бы одна точка, в которой существует один процесс, но не существует другой, и хотя бы одна точка, в которой оба процесса существуют одновременно, то такие два процесса называют комбинированными.
В операционной системе принято различать процессы не только по времени, но и по месту их развития, т. е. на каком из процессоров исполняется программа процесса. Точкой отсчета принято считать центральный процессор (процессоры), на котором развиваются процессы, называемые программнымиили внутренними. Такое название указывает на возможность существования в системе процессов, называемых внешними. Это процессы, развитие которых происходит под контролем или управлением ОС на процессорах, отличных от центрального. Ими могут быть, например, процессы ввода — вывода, развивающиеся в канале. Деятельность любого пользователя ЭВМ, который в том или ином виде вводит посредством ОС информацию, требуемую для исполнения одной или нескольких программ, можно также рассматривать как внешний процесс.
Программные процессы принято делить на системные и пользовательские. При развитии системного процесса исполняется программа из состава операционной системы. При развитии пользовательского процесса исполняется пользовательская (прикладная) программа.
Процессы независимо от их вида могут быть взаимосвязанными илиизолированными друг от друга. Два процесса являются взаимосвязанными, если между ними поддерживаются с помощью системы управления процессами какого-либо рода связи: функциональные, пространственно-временные, управляющие, информационные и т. д. В противном случае они являются изолированными (точнее - процессами со слабыми связями, так как при отсутствии явных связей они могут быть связаны косвенно и определенным образом влиять на развитие друг друга).
При наличии между процессами управляющей связи устанавливается отношение вида "порождающий—порождаемый", рассмотренное выше. Если два взаимосвязанных процесса при развитии используют совместно некоторые ресурсы, но информационно между собой не связаны, т. е. не обмениваются информацией, то такие процессы называют информационно-независимыми. Связь между такими процессами может быть либо функциональная, либо пространственно-временная. При наличии информационных связей между двумя процессами их называют взаимодействующими, причем схемы, а следовательно, и механизмы установления таких связей могут быть различными. Особенность, во-первых, обусловлена динамикой процессов (т. е. являются ли взаимодействующие процессы последовательными, параллельными или комбинированными); во-вторых, выбранным способом связи (явным, с помощью явного обмена сообщениями между процессами, или неявным, с помощью разделяемых структур данных). Когда необходимо подчеркнуть связь между взаимосвязанными процессами по ресурсам, их называют конкурирующими.
Управление взаимосвязанными процессами в составе ОС основано на контроле и удовлетворении определенных ограничений, которые накладываются на порядок выполнения таких процессов. Данные ограничения определяют виды отношений, которые допустимы между процессами, и составляют в совокупности синхронизирующие правила.
Отношение предшествования. Для двух процессов это отношение означает, что первый процесс должен переходить в активное состояние всегда раньше второго.
Отношение приоритетности. Процесс с приоритетом Р может быть переведен в активное состояние только при соблюдении двух условий: в состоянии готовности к рассматриваемому процессору нет процессов с большим приоритетом; процессор либо свободен, либо используется процессом с меньшим, чем Р, приоритетом.
Отношение взаимного исключения. Здесь два процесса используют обобщенный ресурс. При этом совокупность действий над этим ресурсом в составе одного процесса называют критической областью. Критическая область одного процесса не должна выполняться одновременно с критической областью над этим же ресурсом в составе другого процесса.
Трудность в реализации синхронизирующих правил в составе системы управления процессами обусловлена динамикой процессов, неопределенностью и непредсказуемостью порядка и частотой перехода процессов из состояния в состояние по мере их развития. Причем в отношении каждой совокупности взаимосвязанных процессов приходится решать собственную задачу синхронизации, которая требует определенного порядка выполнения процессов с целью установления требуемого взаимодействия. Помимо рассмотренных в каждой из задач могут использоваться и другие, более сложные виды отношений. Например, отношения "производители—потребители", "читатели—писатели" и т. д., устанавливаемые между взаимодействующими процессами.
Результатом рассмотрения основных свойств процессов явилось упорядочение процессов в одну из возможных классификационных схем, которая приведена на рис. 2.2.
21. Понятие вычислительного потока. Свойства и характеристики потоков (нитей)
Пото́к выполне́ния — наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы. Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса. Несколько потоков выполнения могут существовать в рамках одного и того же процесса и совместно использовать ресурсы, такие как память, тогда как процессы не разделяют этих ресурсов. В частности, потоки выполнения разделяют инструкции процесса (его код) и его контекст (значения переменных, которые они имеют в любой момент времени). Потоки выполнения отличаются от традиционных процессов многозадачной операционной системы тем, что:
процессы, как правило, независимы, тогда как потоки выполнения существуют как составные элементы процессов
процессы несут значительно больше информации о состоянии, тогда как несколько потоков выполнения внутри процесса совместно используют информацию о состоянии, а также память и другие вычислительные ресурсы
процессы имеют отдельные адресные пространства, тогда как потоки выполнения совместно используют их адресное пространство
процессы взаимодействуют только через предоставляемые системой механизмы связей между процессами
переключение контекста между потоками выполнения в одном процессе, как правило, быстрее, чем переключение контекста между процессами.
Каждый поток выполняется строго последовательно и имеет свой собственный программный счетчик и стек.
22.Понятие системного планировщика. Функции и алгоритмы работы системного планировщика. Планирование - обеспечение поочередного доступа процессов к одному процессору.
Планировщик - отвечающая за это часть операционной системы.
Алгоритм планирования без переключений (неприоритетный) - не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу.
Алгоритм планирования с переключениями (приоритетный) - требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику. Задачи алгоритмов планирования:
Для всех систем Справедливость - каждому процессу справедливую долю процессорного времени Контроль над выполнением принятой политики Баланс - поддержка занятости всех частей системы (например: чтобы были заняты процессор и устройства ввода/вывода)
Системы пакетной обработки Пропускная способность - количество задач в час Оборотное время - минимизация времени на ожидание обслуживания и обработку задач. Использование процесса - чтобы процессор всегда был занят.
Интерактивные системы Время отклика - быстрая реакция на запросы Соразмерность - выполнение ожиданий пользователя (например: пользователь не готов к долгой загрузке системы)
Системы реального времени Окончание работы к сроку - предотвращение потери данных Предсказуемость - предотвращение деградации качества в мультимедийных системах (например: потерь качества звука должно быть меньше чем видео
Алгоритмы: FiFO, RoundRobin, ShortestJobFirst
23. Многозадачность в операционных системах. Различные типы многозадачности.
Многозада́чность— свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах.
Существует 2 типа многозадачности:
Процессная многозадачность (основанная на процессах — одновременно выполняющихся программах). Здесь программа — наименьший элемент кода, которым может управлять планировщик операционной системы. Более известна большинству пользователей (работа в текстовом редакторе и прослушивание музыки).
Поточная многозадачность (основанная на потоках). Наименьший элемент управляемого кода — поток (одна программа может выполнять 2 и более задачи одновременно).
24. Простейшие схемы управления памятью.
ОС начали свое существование с применения очень простых методов управления памятью. Применявшаяся техника распространялась от статического распределения памяти (каждый процесс пользователя должен полностью поместиться в основной памяти, и система принимает к обслуживанию дополнительные пользовательские процессы до тех пор, пока все они одновременно помещаются в основной памяти), с промежуточным решением в виде "простого свопинга" (система по-прежнему располагает каждый процесс в основной памяти целиком, но иногда на основании некоторого критерия целиком сбрасывает образ некоторого процесса из основной памяти во внешнюю память и заменяет его в основной памяти образом некоторого другого процесса). Схемы такого рода имеют не только историческую ценность. В настоящее время они применяются в учебных и научно-исследовательских модельных ОС, а также в ОС для встроенных (embedded) компьютеров.
1. схема с фиксированными разделами.
Самым простым способом управления оперативной памятью является ее предварительное (обычно на этапе генерации или в момент загрузки системы) разбиение на несколько разделов фиксированной величины. По мере прибытия процесс помещается в тот или иной раздел.
Как правило, происходит условное разбиение физического адресного пространства. Связывание логических адресов процесса и физических происходит на этапе его загрузки в конкретный раздел.
Каждый раздел может иметь свою очередь или может существовать глобальная очередь для всех разделов.
2. Свопинг
Имея дело с пакетными системами можно обходиться фиксированными разделами и не использовать ничего более сложного. В системах с разделением времени возможна ситуация, когда память не в состоянии содержать все пользовательские процессы. Приходится прибегать к свопингу (swapping) - перемещению процессов из главной памяти на диск и обратно целиком. Частичная выгрузка процессов на диск связана с пейджингом (paging) будет рассмотрена ниже.
Выгруженный процесс может быть возвращен в то же самое адресное пространство или в другое. Это ограничение диктуется методом связывания. Для схемы связывания на этапе выполнения можно загрузить процесс в другое место памяти.
Свопинг не имеет непосредственного отношения к управлению памятью, скорее он связан с подсистемой планирования процессов. В системах со свопингом время переключения контекстов лимитируется временем загрузки выгрузки процессов. Для эффективной утилизации процессора необходимо, чтобы величина кванта времени существенно его превышала
Оптимизация свопинга может быть связана с выгрузкой лишь реально используемой памяти или выгрузкой процессов, реально не функционирующих. Кроме того, выгрузка обычно осуществляется в специально отведенное пространство для свопинга, то есть быстрее, чем через стандартную файловую систему (пространство выделяется большими блоками, поиск файлов и методы непосредственного выделения не используются).
Во многих версиях Unix свопинг обычно запрещен, однако он стартует, когда возрастает загрузка системы.
3. В принципе, система свопинга может базироваться на фиксированных разделах. На практике, однако, использование фиксированных разделов приводит к большим потерям используемой памяти, когда задача существенно меньше раздела.
Более эффективной представляется схема с переменными (динамическими) разделами. В этом случае вначале вся память свободна и не разделена заранее на разделы. Вновь поступающей задаче выделяется необходимая память. После выгрузки процесса память временно освобождается. По истечении некоторого времени память представляет собой набор занятых и свободных участков (рис. 8.4) Смежные свободные участки могут быть объединены в один.
Типовой цикл работы менеджера памяти состоит в анализе запроса на выделение свободного участка (раздела), выборке его среди имеющихся в соответствие с одной из стратегий (first fit, best fit, worst fit), загрузке процесса в выбранный раздел и последующем внесении изменений в таблицы свободных и занятых областей. Аналогичная корректировка необходима и после завершения процесса. Связывание адресов может быть осуществлено на этапах загрузки и выполнения.
Этот метод более гибок по сравнению с методом фиксированных разделов
Этому методу также присуща внешняя фрагментация вследствие наличия большого числа участков свободной памяти. Проблемы фрагментации могут быть различными. В худшем случае мы можем иметь участок свободной (потерянной) памяти между двумя процессами. Если все эти куски объединить в один блок, мы смогли бы разместить больше процессов. Выбор между first-fit и best-fit слабо влияет на величину фрагментации.
В зависимости от суммарного размера памяти и среднего размера процесса эта проблема может быть большей или меньшей. Статистический анализ показывает, что при наличии n блоков пропадает n/2 блоков, то есть 1/3 памяти! Это известное 50% правило (два соседних свободных участка в отличие от двух соседних процессов могут быть объединены в один).
Одно из решений проблемы внешней фрагментации - разрешить адресному пространству процесса не быть непрерывным, что разрешает выделять процессу память в любых доступных местах. Один из способов реализации такого решения - это paging , используемый во многих современных ОС (будет рассмотрен ниже).
Другим способом борьбы с внешней фрагментацией является сжатие, то есть перемещение всех занятых (свободных) участков в сторону возрастания (убывания) адресов, так, чтобы вся свободная память образовала непрерывную область. Этот метод иногда называют схемой с перемещаемыми разделами. В идеале фрагментация после сжатия должна отсутствовать.
Сжатие, однако, является дорогостоящей процедурой, алгоритм выбора оптимальной стратегии сжатия очень труден, и, как правило, сжатие осуществляется в комбинации с выгрузкой и загрузкой по другим адресам.
25. Критерии планирования процессов и требования к алгоритмам планирования.
Для каждого уровня планирования процессов можно предложить много различных алгоритмов. Выбор конкретного алгоритма определяется классом задач, решаемых вычислительной системой, и целями, которых мы хотим достичь, используя планирование. К числу таких целей можно отнести:
§ Справедливость: гарантировать каждому заданию или процессу определенную часть времени использования процессора в компьютерной системе, стараясь не допустить возникновения ситуации, когда процесс одного пользователя постоянно занимает процессор, в то время как процесс другого пользователя фактически не приступал к выполнению.
§ Эффективность: постараться занять процессор на все 100% рабочего времени, не позволяя ему простаивать в ожидании процессов готовых к исполнению. В реальных вычислительных системах загрузка процессора колеблется от 40 до 90 процентов.
§ Сокращение полного времени выполнения (turnaround time): обеспечить минимальное время между стартом процесса или постановкой задания в очередь для загрузки и его завершением.
§ Сокращение времени ожидания (waiting time): минимизировать время, которое проводят процессы в состоянии готовность и задания в очереди для загрузки.
§ Сокращение времени отклика (response time): минимизировать время, которое требуется процессу в интерактивных системах для ответа на запрос пользователя.
Независимо от поставленных целей планирования желательно также, чтобы алгоритмы обладали следующими свойствами:
§ Были предсказуемыми. Одно и то же задание должно выполняться приблизительно за одно и то же время. Применение алгоритма планирования не должно приводить, к примеру, к извлечению корня квадратного из 4 за сотые доли секунды при одном запуске и за несколько суток при втором запуске.
§ Имели минимальные накладные расходы, связанные с их работой. Если на каждые 100 миллисекунд, выделенных процессу для использования процессора, будет приходиться 200 миллисекунд на определение того, какой именно процесс получит процессор в свое распоряжение, и на переключение контекста, то такой алгоритм, очевидно, использовать не стоит.
§ Равномерно загружали ресурсы вычислительной системы, отдавая предпочтение тем процессам, которые будут занимать малоиспользуемые ресурсы.
§ Обладали масштабируемостью, т. е. не сразу теряли работоспособность при увеличении нагрузки. Например, рост количества процессов в системе в два раза не должен приводить к увеличению полного времени выполнения процессов на порядок.
Многие из приведенных выше целей и свойств являются противоречивыми. Улучшая работу алгоритма с точки зрения одного критерия, мы ухудшаем ее с точки зрения другого. Приспосабливая алгоритм под один класс задач, мы тем самым дискриминируем задачи другого класса. “В одну телегу впрячь не можно коня и трепетную лань”. Ничего не поделаешь. Такова жизнь.
26, 29. Страничная, сегментная и странично-сегментная организация памяти.
Страничная. В наиболее простом и наиболее часто используемом случае страничной виртуальной памяти виртуальная память и физическая представляются состоящими из наборов блоков или страниц одинакового размера. Виртуальные адреса делятся на страницы (page), соответствующие единицы в физической памяти образуют страничные кадры (page frames), а в целом система поддержки страничной виртуальной памяти называется пейджингом (paging). Передача информации между памятью и диском всегда осуществляется целыми страницами. Страницы, в отличие от сегментов, имеют фиксированную длину, обычно являющуюся степенью числа 2, и не могут перекрываться.
Для преобразования адресного пространства каждого процесса используется одна или несколько таблиц страниц, которые обычно хранятся в оперативной памяти. Для ссылки на таблицу страниц используется специальный регистр процессора
Сегментная и странично-сегментная.
Существуют две другие схемы организации виртуальной памяти: сегментная и сегментно-страничная. Идеи сегментации изложены во введении к предыдущей главе. При сегментной организации виртуальный адрес по-прежнему является двумерным и состоит из двух полей - номера сегмента и смещения внутри сегмента. Заметим, что с точки зрения ОС сегменты являются логическими сущностями и их главное назначение хранение и защита однородной информации (кода, данных и т.д.).
С точки зрения пользователя процесс представляется обычно не как линейный массив байтов, а как набор сегментов переменного размера (данные, код, стек). Сегментация - схема управления памятью, поддерживающая этот взгляд пользователя. Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа.
Программисты, пишущие на языках низкого уровня должны иметь представление о сегментной организации, явным образом меняя значения сегментных регистров (это хорошо видно по текстам программ, написанных на Ассемблере). Логическое адресное пространство - набор сегментов. Каждый сегмент имеет имя, размер и другие параметры (уровень привилегий, разрешенные виды обращений, флаги присутствия). Пользователь специфицирует каждый адрес двумя величинами: именем сегмента и смещением. (В отличие от схемы пэйджинга, где пользователь задает только один адрес, который разбивается hardware на номер страницы и смещение, прозрачным для программиста образом.)
Каждый сегмент - линейная последовательность адресов от 0 до максимума. Различные сегменты могут иметь различные длины, которые могут меняться динамически (например, сегмент стека). В элементе таблицы сегментов помимо физического адреса начала сегмента (если виртуальный сегмент содержится в основной памяти) содержится длина сегмента. Если размер смещения в виртуальном адресе выходит за пределы размера сегмента, возникает прерывание.
Хранение в памяти сегментов большого размера может оказаться неудобным. Возникает идея их пейджинга. При сегментно-страничной организации виртуальной памяти происходит двухуровневая трансляция виртуального адреса в физический. В этом случае виртуальный адрес состоит из трех полей: номера сегмента виртуальной памяти, номера страницы внутри сегмента и смещения внутри страницы. Соответственно, используются две таблицы отображения - таблица сегментов, связывающая номер сегмента с таблицей страниц, и отдельная таблица страниц для каждого сегмента.
Сегментно-страничная организация виртуальной памяти позволяла совместно использовать одни и те же сегменты данных и программного кода в виртуальной памяти разных задач (для каждой виртуальной памяти существовала отдельная таблица сегментов, но для совместно используемых сегментов поддерживались общие таблицы страниц).
27. Алгоритмы планирования процессов FCFS, RR, SJF.
FCFS – задачи обслуживаются в порядке очереди, то есть в порядке их появления. Задачи, заблокированные на время, могут уйти либо в конец очереди, либо встать перед ещё не начатыми процессами. Из достоинств – простота реализации, недостатки – увеличивается время работы, маленькие задачи, требующие небольшого времени для выполнения, стоят в общей очереди.
SJF – “кратчайшая работа первой» - требует, чтобы для каждого задания была оценка в потребностях машинного времени. То есть процесс с наименьшим временем выполнения ставится вперед в очереди.
RR - Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin (Round Robin – это вид детской карусели в США) или сокращенно RR. По сути дела это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Можно представить себе все множество готовых процессов организованным циклически — процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени, обычно 10 - 100 миллисекунд (см. рисунок 3.4.). Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться.
28. Понятие адресного пространства. Виды адресных пространств.
Адресное пространство — это просто диапазон адресов, обозначающих определенное место в памяти. Адресные пространства подразделяются на три разновидности:
Физическое адресное пространство
Линейное адресное пространство
Логическое адресное пространство, известное также как виртуальное адресное пространство
(ещё может быть виды)
Простая — указание объекта с помощью идентификатора или числа, не имеющего внутренней структуры.
Расширенная — доступ к запоминающему устройству с адресным пространством, бо́льшим диапазона адресов, предусмотренного форматом команды.
Виртуальная — принцип, при котором каждая программа рассматривается как ограниченное непрерывное поле логической памяти, а адреса этого поля — как виртуальные адреса.
Ассоциативна — точное местоположение данных не указывается, а задаётся значение определённого поля данных, идентифицирующее эти данные
29. Страничная, сегментная и странично-сегментная организация памяти.
ТОЖЕ САМОЕ В 26 ВОПРОСЕ.
30. ЕГО НЕТУ.
31. Понятие ресурса. Виды ресурсов. Управление ресурсами.
Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы. Например, мультипрограммная операционная система организует одновременное выполнение сразу нескольких процессов на одном компьютере, поочередно переключая процессор с одного процесса на другой, исключая простои процессора, вызываемые обращениями процессов к вводу-выводу. ОС также отслеживает и разрешает конфликты, возникающие при обращении нескольких процессов к одному и тому же устройству ввода-вывода или к одним и тем же данным. Критерий эффективности, в соответствии с которым ОС организует управление ресурсами компьютера, может быть различным. Например, в одних системах важен такой критерий, как пропускная способность вычислительной системы, в других — время ее реакции. Соответственно выбранному критерию эффективности операционные системы по-разному организуют вычислительный процесс.
Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа — это статический объект, представляющий собой файл с кодами и данными. Процесс — это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prgl. exe, где prgl. exe — это имя файла, в котором хранится код программы.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
удовлетворение запросов на ресурсы;
отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
разрешение конфликтов между процессами.
Ресурсом является средство вычислительной системы, которая м.б. выделено процессу на определенное время.
- физические — реально существующие ресурсы, при распределении м/у пользователями, облад. всеми присущими ему физическими характеристиками.
- виртуальные — может дополнять свойства и хар-ки физич ресурса и явл. его моделю.
2. Возможность расширения свойств:
- жесткие (не допускают виртуализации)
- эластичные (может дополнять и расширять свойства)
3. Степень активности ресурса:
- активный — способен выполн. действия по отношению к др. ресурсам или процессам, котор. в общем случае приводят к измен-ю последних. (П-р — процессор)
- пассивный — не облад. свойством примен-я других процессов и рес-ов, но над ним можно производ. действ., котор. приводят к измен. его состояния (п-р опер. пам.)
4. Время существования:
- постоянный — сущ. в системе до момента порождения процесса и доступен к использованию на всем протяж. интервала существования процесса.
- временный — может создаваться во время существования процесса и отбираться у него.
5. Степень важности:
- главный — без которого не может принципиально существовать процессор.
- второстепенный — допускает некоторое альтернативное существование процесса.
6. Цена ресурса:
- дорогой.
- дешевый
7. Структурный признак:
- простые — ресурс не содержит составных элементов и рассм. как единое целое (проц-р)
- составной — характ-ся структурой и содержит в себе ряд однотипных элементов с одинак. характеристиками (память).
Простой может пребыв. в 2-х состояниях: занят или свободен.
8. Восстанавливаемость ресурса:
- восстанавливаемый. Для них существует след. система работы: запрос-использование-освобождение.
- потребляемый — работает по системе: освобождение-запрос-использование.
Такая схема использ. во взаимоотношениях производитель-потребитель.
9. Природа использования ресурса
- последовательный. (устр. вывода). Последовательная схема исп-я ресурса предпологает, что в отношении некотор. ресурса допустимо строго послдев-е во времени выполнение цепочек действий: запрос-исполнение-освобождение. Для параллельных процессов этот ресурс явл. критическим. Для работы с дан. ресурсом исп. буфера процесса.
- параллельный. (массив пам. данных) Под парал. схем предполаг. одноврем. использование одного ресурса.
10. Форма реализующие
- твердые — аппаратные компоненты
- мягкие: программные и информационные.
Мягкие — допускают копирование и эффект от использования ресурса-оригинала и ресурса-копии идентичен. Все остальные мягкие ресурсы относятся к информационным.
33. Память, как ресурс операционной системы
Для того, чтобы программа могла действительно воспользоваться виртуальной памятью (иллюзией очень большого количества памяти реальной) требуется, как мы видели, ещё и поддержка со стороны какого-то слоя промежуточного программного обеспечения – кто-то ведь должен обеспечить и обработчик страничной ошибки, и управление доступом к файлу подкачки и переключение процессов... Словом, все описанные ранее аппаратные возможности предназначены только для одного-единственного пользователя, который в состоянии ими воспользоваться – для операционной системы. А операционная система – и сама является источником абстракций. Поэтому программа пользователя "видит" не совсем то, что обеспечивает аппаратура процессора, а лишь то, что обеспечивает ей операционная система. При этом, в идеале, лучше бы, чтобы программа пользователя вообще ничего этого не видела, а пребывала в счастливом обмане, что она и в самом деле исполняется на машине с огромным количеством реальной оперативной памяти – проблем переносимости уже существующих программ в новое операционное окружение было бы меньше.
Но, при всей желательности такого исхода, так не получается. Не получается по ряду причин (которые мы рассмотрим ниже), поэтому скрыть операционной системе сам факт того, что она поддерживает виртуальную память – невозможно. И соответствующий интерфейс управления самым нижним слоем системной абстракции, называемой "виртуальное адресное пространство процесса" система вынуждена программе пользователя обеспечивать, а программа пользователя совершенно законно может им воспользоваться. Над этим слоем абстракций можно надстроить и другие – например, "кучу динамической памяти", поэтому всякая программа и не обязана непременно управлять "своей виртуальной памятью", но может положиться на другие "абстракции памяти", тоже реализованные самой операционной системой. Тем не менее, все они начинаются с абстракции данной – виртуального адресного пространства процесса, ниже которой доступных программе пользователя абстракций нет. Рассмотрим её.
Традиционно "адресное пространство процесса" определяется как "диапазон доступных процессу адресов памяти". Не утверждается, что все эти адреса доступны безусловно. Возможно, что для корректного доступа к каким-то из них требуется некая специальная процедура (выделение памяти). Не утверждается также и того, что обращение по любому из них обязательно должно быть успешно – возможно, попытка обратиться по адресу Х приведёт к немедленному прерыванию программы (примером такого "доступного и некорректного" адреса является 0x00000000 ), но важно, что программа потенциально может использовать этот диапазон, т.е. породить адрес. Операционная же система предоставляет программе пользователя некий набор элементов в виде которых это "пространство" процессу видимо и им используемо.
34. Аппаратная поддержка виртуальной памяти
Очевидно, что невозможно создать полностью машинно-независимый компонент управления виртуальной памятью. С другой стороны, имеются существенные части программного обеспечения, связанного с управлением виртуальной памятью, для которых детали аппаратной реализации совершенно не важны. Одним из достижений современных ОС является грамотное и эффективное разделение средств управления виртуальной памятью на аппаратно-независимую и аппаратно-зависимую части. Коротко рассмотрим, что и каким образом входит в аппаратно-зависимую часть подсистемы управления виртуальной памятью. Компоненты аппаратно-независимой подсистемы будут рассмотрены в следующей лекции.
В самом распространенном случае необходимо отобразить большое виртуальное адресное пространство в физическое адресное пространство существенно меньшего размера. Пользовательский процесс или ОС должны иметь возможность осуществить запись по виртуальному адресу, а задача ОС – сделать так, чтобы записанная информация оказалась в физической памяти (впоследствии при нехватке оперативной памяти она может быть вытеснена во внешнюю память). В случае виртуальной памяти система отображения адресных пространств помимо трансляции адресов должна предусматривать ведение таблиц, показывающих, какие области виртуальной памяти в данный момент находятся в физической памяти и где именно размещаются.
35. Стратегии управления страничной памятью: Стратегия выборки определяет в какой момент следует переписать страницу из вторичной памяти в первичную. Существуют 2 основных варианта выборки: по запросу и с упреждением.
1) По запросу. Вступает в действие в тот момент, когда процесс обращается к отсутствующей странице, содержимое которой находится на диске. Его реализация заключается в загрузке страницы с диска в свободную физическую страницу и коррекции соответствующей записи таблицы страниц.
2) Алгоритм выборки с упреждением осуществляет опережающее чтение, т.е кроме страницы, вызвавшей исключительную ситуацию в памяти, также загружается несколько страниц окружающих её. Такой алгоритм призван уменьшить накладные расходы, связанные с большим количеством исключительных ситуаций, возникших при работе со значительными объемами данных или кода. Кроме того, оптимизируется работа с диском.
Стратегия размещения определяет, в какой участок первичной памяти поместить поступающую страницу. В системе со страничной организацией она помещается в любой свободный страничный кадр. В случае системы с сегментной организацией необходима стратегия, аналогичная стратегии с динамическим распределением.
Стратегия замещенияопределяет, какую страницу надо вытолкнуть во внешнюю память, чтобы освободить место в ОП. Стратегия позволяет хранить в памяти самую нужную информацию и тем самым снизить частоту страничных нарушений. Замещение должно происходить с учетом выделенного каждому процессу количества кадров. Кроме того, надо решить должна ли замещаемая страница принадлежать процессу, который вызвал замещение или она должна быть выбрана среди всех кадров основной памяти.
Алгоритм FIFO. Выталкивание первой пришедшей страницы
Простейший алгоритм. Каждой странице присваивается временная метка. Реализуется это просто созданием очереди страниц, в конец которой страницы попадают, когда загружаются в физическую память, а из начала берутся, когда требуется освободить память. Для замещения выбирается старейшая страница. К сожалению, эта стратегия с достаточной вероятностью будет приводить к замещению активно используемых страниц, например страниц кода текстового процессора при редактировании файла. Заметим, что при замещении активных страниц все работает корректно, но page fault происходит немедленно.