Билеты_ОС_full. Виды прерываний. Роль прерываний в операционной системе
![]()
|
25. Критерии планирования процессов и требования к алгоритмам планирования. Для каждого уровня планирования процессов можно предложить много различных алгоритмов. Выбор конкретного алгоритма определяется классом задач, решаемых вычислительной системой, и целями, которых мы хотим достичь, используя планирование. К числу таких целей можно отнести:
Независимо от поставленных целей планирования желательно также, чтобы алгоритмы обладали следующими свойствами:
Многие из приведенных выше целей и свойств являются противоречивыми. Улучшая работу алгоритма с точки зрения одного критерия, мы ухудшаем ее с точки зрения другого. Приспосабливая алгоритм под один класс задач, мы тем самым дискриминируем задачи другого класса. “В одну телегу впрячь не можно коня и трепетную лань”. Ничего не поделаешь. Такова жизнь. 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 — это имя файла, в котором хранится код программы. Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач: планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс; удовлетворение запросов на ресурсы; отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена; разрешение конфликтов между процессами. Ресурсом является средство вычислительной системы, которая м.б. выделено процессу на определенное время. 1. Классификационный признак — реальность существования: - физические — реально существующие ресурсы, при распределении м/у пользователями, облад. всеми присущими ему физическими характеристиками. - виртуальные — может дополнять свойства и хар-ки физич ресурса и явл. его моделю. 2. Возможность расширения свойств: - жесткие (не допускают виртуализации) - эластичные (может дополнять и расширять свойства) 3. Степень активности ресурса: - активный — способен выполн. действия по отношению к др. ресурсам или процессам, котор. в общем случае приводят к измен-ю последних. (П-р — процессор) - пассивный — не облад. свойством примен-я других процессов и рес-ов, но над ним можно производ. действ., котор. приводят к измен. его состояния (п-р опер. пам.) 4. Время существования: - постоянный — сущ. в системе до момента порождения процесса и доступен к использованию на всем протяж. интервала существования процесса. - временный — может создаваться во время существования процесса и отбираться у него. 5. Степень важности: - главный — без которого не может принципиально существовать процессор. - второстепенный — допускает некоторое альтернативное существование процесса. 6. Цена ресурса: - дорогой. - дешевый 7. Структурный признак: - простые — ресурс не содержит составных элементов и рассм. как единое целое (проц-р) - составной — характ-ся структурой и содержит в себе ряд однотипных элементов с одинак. характеристиками (память). Простой может пребыв. в 2-х состояниях: занят или свободен. 8. Восстанавливаемость ресурса: - восстанавливаемый. Для них существует след. система работы: запрос-использование-освобождение. - потребляемый — работает по системе: освобождение-запрос-использование. Такая схема использ. во взаимоотношениях производитель-потребитель. 9. Природа использования ресурса - последовательный. (устр. вывода). Последовательная схема исп-я ресурса предпологает, что в отношении некотор. ресурса допустимо строго послдев-е во времени выполнение цепочек действий: запрос-исполнение-освобождение. Для параллельных процессов этот ресурс явл. критическим. Для работы с дан. ресурсом исп. буфера процесса. - параллельный. (массив пам. данных) Под парал. схем предполаг. одноврем. использование одного ресурса. 10. Форма реализующие - твердые — аппаратные компоненты - мягкие: программные и информационные. Мягкие — допускают копирование и эффект от использования ресурса-оригинала и ресурса-копии идентичен. Все остальные мягкие ресурсы относятся к информационным. 33. Память, как ресурс операционной системы Для того, чтобы программа могла действительно воспользоваться виртуальной памятью (иллюзией очень большого количества памяти реальной) требуется, как мы видели, ещё и поддержка со стороны какого-то слоя промежуточного программного обеспечения – кто-то ведь должен обеспечить и обработчик страничной ошибки, и управление доступом к файлу подкачки и переключение процессов... Словом, все описанные ранее аппаратные возможности предназначены только для одного-единственного пользователя, который в состоянии ими воспользоваться – для операционной системы. А операционная система – и сама является источником абстракций. Поэтому программа пользователя "видит" не совсем то, что обеспечивает аппаратура процессора, а лишь то, что обеспечивает ей операционная система. При этом, в идеале, лучше бы, чтобы программа пользователя вообще ничего этого не видела, а пребывала в счастливом обмане, что она и в самом деле исполняется на машине с огромным количеством реальной оперативной памяти – проблем переносимости уже существующих программ в новое операционное окружение было бы меньше. Но, при всей желательности такого исхода, так не получается. Не получается по ряду причин (которые мы рассмотрим ниже), поэтому скрыть операционной системе сам факт того, что она поддерживает виртуальную память – невозможно. И соответствующий интерфейс управления самым нижним слоем системной абстракции, называемой "виртуальное адресное пространство процесса" система вынуждена программе пользователя обеспечивать, а программа пользователя совершенно законно может им воспользоваться. Над этим слоем абстракций можно надстроить и другие – например, "кучу динамической памяти", поэтому всякая программа и не обязана непременно управлять "своей виртуальной памятью", но может положиться на другие "абстракции памяти", тоже реализованные самой операционной системой. Тем не менее, все они начинаются с абстракции данной – виртуального адресного пространства процесса, ниже которой доступных программе пользователя абстракций нет. Рассмотрим её. Традиционно "адресное пространство процесса" определяется как "диапазон доступных процессу адресов памяти". Не утверждается, что все эти адреса доступны безусловно. Возможно, что для корректного доступа к каким-то из них требуется некая специальная процедура (выделение памяти). Не утверждается также и того, что обращение по любому из них обязательно должно быть успешно – возможно, попытка обратиться по адресу Х приведёт к немедленному прерыванию программы (примером такого "доступного и некорректного" адреса является 0x00000000 ), но важно, что программа потенциально может использовать этот диапазон, т.е. породить адрес. Операционная же система предоставляет программе пользователя некий набор элементов в виде которых это "пространство" процессу видимо и им используемо. 34. Аппаратная поддержка виртуальной памяти Очевидно, что невозможно создать полностью машинно-независимый компонент управления виртуальной памятью. С другой стороны, имеются существенные части программного обеспечения, связанного с управлением виртуальной памятью, для которых детали аппаратной реализации совершенно не важны. Одним из достижений современных ОС является грамотное и эффективное разделение средств управления виртуальной памятью на аппаратно-независимую и аппаратно-зависимую части. Коротко рассмотрим, что и каким образом входит в аппаратно-зависимую часть подсистемы управления виртуальной памятью. Компоненты аппаратно-независимой подсистемы будут рассмотрены в следующей лекции. В самом распространенном случае необходимо отобразить большое виртуальное адресное пространство в физическое адресное пространство существенно меньшего размера. Пользовательский процесс или ОС должны иметь возможность осуществить запись по виртуальному адресу, а задача ОС – сделать так, чтобы записанная информация оказалась в физической памяти (впоследствии при нехватке оперативной памяти она может быть вытеснена во внешнюю память). В случае виртуальной памяти система отображения адресных пространств помимо трансляции адресов должна предусматривать ведение таблиц, показывающих, какие области виртуальной памяти в данный момент находятся в физической памяти и где именно размещаются. |