Операционные системы (шпаргалка)
|Первый способ - разрешить |запись запрещает всем, кроме |ms-dos. оверлей (over-lay - |
|программе в каждый момент |блокирующего процесса, любой |лежащий сверху) или |
|времени держать закрытым |доступ к заблокированному |перекрытие. Смысл оверлея |
|только один семафор - прост и|участку файла. Это означает, |состоит в том, чтобы не |
|решает проблему в корне, но |что данный участок файла |загружать программу в память |
|часто оказывается |сейчас будет |целиком, а разбить ее на |
|неприемлемым. Более |модифицироваться, и |несколько модулей и |
|приемлемым оказывается |целостность данных в нем не |затаскивать их в память по |
|соглашение, что семафоры |гарантирована. |мере необходимости. |
|всегда должны закрываться в |В UNIX возможны два режима |Потребность в таком способе |
|определенном порядке. Этот |блокировки: допустимая |загрузки появляется, если у |
|порядок может быть любым, |(advisory) и обязательная |нас виртуальное адресное |
|важно только чтобы он всегда |(mandatory). Как та, так и |пространство мало, а |
|соблюдался. Третий, наиболее |другая блокировка может быть |программа велика. Основная |
|радикальный, вариант состоит |блокировкой на чтение либо на|проблема при оверлейной |
|в предоставлении возможности |запись. Допустимая блокировка|загрузке состоит в следующем:|
|объединить семафоры и/или |является ``блокировкой для |прежде чем ссылаться на |
|операции над ними в |честных'': она не оказывает |оверлейный адрес, мы должны |
|неразделяемые группы. При |влияния на подсистему |понять, какой из оверлейных |
|этом программа может |ввода/вывода, поэтому |модулей в данный момент там |
|выполнить операцию закрытия |программа, не проверяющая |находится. Для ссылок на |
|семафоров sem1 и sem2 единой |блокировок или игнорирующая |функции это просто: вместо |
|командой, во время исполнения|их, сможет писать или читать |точки входа функции мы |
|которой никакая другая |из заблокированного участка |вызываем некую процедуру, |
|программа не может получить |без проблем. Обязательная |называемую менеджером |
|При доступе к нескольким |блокировка требует больших |перекрытий. Эта процедура |
|различным ресурсам с |накладных расходов, но |знает, какой модуль куда |
|использованием семафоров |запрещает физический доступ к|загружен, и при необходимости|
|может возникнуть |файлу: чтение или запись, в |подкачивает то, что загружено|
|специфическая проблема, |зависимости от типа |не было. Каждый оверлейный |
|называемая мертвой |блокировки. |модуль должен быть |
|блокировкой (dead lock). |Семафоры смотри билет 22 |самодостаточным. Каждый |
|Остановимся на ней несколько | |оверлейный модуль может быть |
|подробнее.(Тупик) | |как абсолютным, так и |
| | |перемещаемым. |
|Процесс – абстракция, |В состоянии ВЫПОЛНЕНИЕ в |. Очевидно, что если мы |
|описывающая выполняющуюся |однопроцессорной системе |захотим ''сдвинуть'' прогу по|
|программу. Для операционной |может находиться только один |адресам виртуальной памяти, |
|системы процесс представляет |процесс, а в каждом из |то мы должны будем найти все |
|собой единицу работы, заявку |состояний ОЖИДАНИЕ и |команды с абсолютными |
|на потребление системных |ГОТОВНОСТЬ - несколько |адресными полями и прибавить |
|ресурсов. Подсистема |процессов, эти процессы |ко всем этим полям разность |
|управления процессами |образуют очереди |нового и старого адресов. 2: |
|планирует выполнение |соответственно ожидающих и |мы берем значение одного из |
|процессов, то есть |готовых процессов. Жизненный |регистров процессора, |
|распределяет процессорное |цикл процесса начинается с |прибавляем к нему значение |
|время между несколькими |состояния ГОТОВНОСТЬ, когда |адресного поля и получаем |
|одновременно существующими в |процесс готов к выполнению и |адрес. Такая адресация |
|системе процессами, а также |ждет своей очереди. При |называется базовой. Если |
|занимается созданием и |активизации процесс переходит|адрес формируется сложением |
|уничтожением процессов, |в состояние ВЫПОЛНЕНИЕ и |двух или более регистров c |
|обеспечивает процессы |находится в нем до тех пор, |адресным полем, то это |
|необходимыми системными |пока либо он сам освободит |называется базово-индексной |
|ресурсами, поддерживает |процессор, перейдя в |адресацией. В более сложных |
|взаимодействие между |состояние ОЖИДАНИЯ |ситуациях мы должны: |
|процессами. |какого-нибудь события, либо |запомнить все места в |
|Состояние процессов: в |будет насильно "вытеснен" из |программе, где загружаются |
|многозадачной системе процесс|процессора, например, |базовые регистры, и добавить |
|может находиться в одном из |вследствие исчерпания |к загружаемым значениям новый|
|трех основных состояний: |отведенного данному процессу |стартовый адрес. Преимущество|
|ВЫПОЛНЕНИЕ - активное |кванта процессорного времени.|состоит в том, что таких мест|
|состояние процесса, во время |В последнем случае процесс |в программе гораздо меньше, |
|которого процесс обладает |возвращается в состояние |чем при абсолютной адресации.|
|всеми необходимыми ресурсами |ГОТОВНОСТЬ. В это же |В перемещаемой программе мы |
|и непосредственно выполняется|состояние процесс переходит |должны запоминать все ссылки |
|процессором; |из состояния ОЖИДАНИЕ, после |на абсолютные адреса и в |
|ОЖИДАНИЕ - пассивное |того, как ожидаемое событие |момент загрузки производить |
|состояние процесса, процесс |произойдет. |их настройку на начальный |
|заблокирован, он не может | |адрес. Такой файл гораздо |
|выполняться по своим | |сложнее абсолютного |
|внутренним причинам, он ждет | |загружаемого модуля, и носит |
|осуществления некоторого | |название относительного или |
|события, например, завершения| |перемещаемого загрузочного |
|операции ввода-вывода, | |модуля. Именно такой формат |
|получения сообщения от | |имеют .exe-файлы в системе |
|другого процесса, | |ms-dos. Загрузка ОС. |
|освобождения какого-либо | |Рассмотрим на примере UNIX. |
|необходимого ему ресурса; | |Имеется специальная |
|ГОТОВНОСТЬ - также пассивное | |инициализационная программа, |
|состояние процесса, но в этом| |которая так и называется - |
|случае процесс заблокирован в| |init. Эта программа запускает|
|связи с внешними по отношению| |различные процессы-демоны, |
|к нему обстоятельствами: | |например cron - программу, |
|процесс имеет все требуемые | |которая умеет запускать |
|для него ресурсы, он готов | |другие заданные ей программы |
|выполняться, однако процессор| |в заданные моменты времени, |
|занят выполнением другого | |различные сетевые сервисы, |
|процесса. | |программы, которые ждут ввода|
|В ходе жизненного цикла | |с терминальных устройств |
|каждый процесс переходит из | |(getty) то, что она запускает|
|одного состояния в другое в | |задается в специальном файле |
|соответствии с алгоритмом | |/etc/inittab. Администратор |
|планирования процессов, | |системы может редактировать |
|реализуемым в данной | |этот файл и устанавливать те |
|операционной системе. | |сервисы, которые в данный |
|Типичный граф состояний | |момент нужны, избавляться от |
|процесса показан на рисунке. | |тех, которые не нужны, и т.д.|
| | |Существуют ОСы, которые не |
|В состоянии ВЫПОЛНЕНИЕ в | |умеют самостоятельно |
|однопроцессорной системе | |выполнять весь цикл . Они |
|может находиться только один | |используют более примитивную |
|процесс, а в каждом из | |операционную систему, которая|
|состояний ОЖИДАНИЕ и | |исполняет их вторичный |
|ГОТОВНОСТЬ - несколько | |загрузчик, и помогает этому |
|процессов, эти процессы | |загрузчику затянуть в память |
|образуют очереди | |ядро ОС. На пример MS Windows|
|соответственно ожидающих и | |используют DOS. |
|готовых процессов. Жизненный | | |
|цикл процесса начинается с | | |
|состояния ГОТОВНОСТЬ, когда | | |
|процесс готов к выполнению и | | |
|ждет своей очереди. При | | |
|активизации процесс переходит| | |
|в состояние ВЫПОЛНЕНИЕ и | | |
|находится в нем до тех пор, | | |
|пока либо он сам освободит | | |
|процессор, перейдя в | | |
|состояние ОЖИДАНИЯ | | |
|какого-нибудь события, либо | | |
|будет насильно "вытеснен" из | | |
|процессора, например, | | |
|вследствие исчерпания | | |
|отведенного данному процессу | | |
|кванта процессорного времени.| | |
|В последнем случае процесс | | |
|возвращается в состояние | | |
|ГОТОВНОСТЬ. В это же | | |
|состояние процесс переходит | | |
|из состояния ОЖИДАНИЕ, после | | |
|того, как ожидаемое событие | | |
|произойдет. | | |
| | | |
|20. Планирование процессов |Вопрос 23. Потоки (нити) |Вопрос 24. Программное и |
|включает в себя решение |управления. Определение, |аппаратное обеспечение |
|следующих задач: 1) |назначение, состояния, |устройств ввода-вывода. |
|определение момента времени |операции. |Устройства ввода-вывода |
|для смены выполняемого |Отдельный процесс никогда не |делятся на два типа: |
|процесса; 2) выбор процесса |может быть выполнен быстрее, |блок-ориентированные |
|на выполнение из очереди |чем если бы он выполнялся в |устройства и |
|готовых процессов; 3) |однопрограммном режиме |байт-ориентированные |
|переключение контекстов |(всякое разделение ресурсов |устройства. |
|"старого" и "нового" |замедляет работу одного из |Блок-ориентированные |
|процессов. |участников за счет |устройства хранят информацию |
|Наиболее часто встречаются |дополнительных затрат времени|в блоках фиксированного |
|алгоритмы, основанные: на |на ожидание освобождения |размера, каждый из которых |
|квантовании, на приоритетах. |ресурса). Однако задача, |имеет свой собственный адрес.|
| |решаемая в рамках одного |Самое распространенное |
|В алгоритмах, основанных на |процесса, позволяет ускорить |блок-ориентированное |
|квантовании, смена активного |ее решение. Например, в ходе |устройство - диск. |
|процесса происходит, если: 1)|выполнения задачи происходит |Байт-ориентированные |
|процесс завершился и покинул |обращение к внешнему |устройства не адресуемы и не |
|систему; 2) произошла ошибка;|устройству, и на время этой |позволяют производить |
|3) процесс перешел в |операции можно не блокировать|операцию поиска, они |
|состояние ОЖИДАНИЕ; 4) |полностью выполнение |генерируют или потребляют |
|исчерпан квант процессорного |процесса, а продолжить |последовательность байтов. |
|времени, отведенный данному |вычисления по другой "ветви" |Примерами являются терминалы,|
|процессу. |процесса. Для этих целей |строчные принтеры, сетевые |
|Процесс, который исчерпал |современные ОС предлагают |адаптеры. Электронный |
|свой квант, переводится в |использовать сравнительно |компонент называется |
|состояние ГОТОВНОСТЬ и |новый механизм многонитевой |контроллером устройства или |
|ожидает, когда ему будет |обработки. |адаптером. Операционная |
|предоставлен новый квант |Мультипрограммирование теперь|система имеет дело с |
|процессорного времени, а на |реализуется на уровне нитей, |контроллером. Контроллер |
|выполнение в соответствии с |и задача, оформленная в виде |выполняет простые функции, |
|определенным правилом |нескольких нитей в рамках |осуществляет контроль и |
|выбирается новый процесс из |одного процесса, может быть |исправляет ошибки. Каждый |
|очереди готовых. Таким |выполнена быстрее за счет |контроллер имеет несколько |
|образом, ни один процесс не |псевдопараллельного (или |регистров, которые |
|занимает процессор надолго, |параллельного в |используются для |
|поэтому квантование широко |мультипроцессорной системе) |взаимодействия с центральным |
|используется в системах |выполнения ее отдельных |процессором. ОС выполняет |
|разделения времени. Граф |частей. |ввод-вывод, записывая команды|
|состояний процесса, |Нити, относящиеся к одному |в регистры контроллера. |
|изображенный на рисунке (б), |процессу, не настолько |Контроллер гибкого диска IBM |
|соответствует алгоритму |изолированы друг от друга, |PC принимает 15 команд, таких|
|планирования, основанному на |как процессы в традиционной |как READ, WRITE, SEEK, FORMAT|
|квантовании. Кванты, |многозадачной системе, между |и т.д. Когда команда принята,|
|выделяемые процессам, могут |ними легко организовать |процессор оставляет |
|быть одинаковыми для всех |тесное взаимодействие. |контроллер и занимается |
|процессов или различными. |Действительно, в отличие от |другой работой. При |
|Кванты, выделяемые одному |процессов, которые |завершении команды контроллер|
|процессу, могут быть |принадлежат разным |организует прерывание для |
|фиксированной величины или |конкурирующим приложениям, |того, чтобы передать |
|изменяться в разные периоды |все нити одного процесса |управление процессором |
|жизни процесса. Процессы, |всегда принадлежат одному |операционной системе, которая|
|которые не полностью |приложению, поэтому можно |должна проверить результаты |
|использовали выделенный им |заранее продумать работу |операции. Процессор получает |
|квант, могут получить или не |множества нитей процесса |результаты и статус |
|получить компенсацию в виде |таким образом, чтобы они |устройства, читая информацию |
|привилегий при последующем |могли взаимодействовать, а не|из регистров контроллера. |
|обслуживании. По разному |бороться за ресурсы. |Основная идея организации |
|может быть организована |Нити иногда называют |программного обеспечения |
|очередь готовых процессов: |облегченными процессами или |ввода-вывода состоит в |
|циклически, FIFO или LIFO. |мини-процессами. Каждая нить |разбиении его на несколько |
|Алгоритмы основанные на |выполняется строго |уровней, причем нижние уровни|
|приоритете процесса. |последовательно и имеет свой |обеспечивают экранирование |
|Приоритет - это число, |собственный программный |особенностей аппаратуры от |
|характеризующее степень |счетчик и стек. Нити, как и |верхних, а те, обеспечивают |
|привилегированности процесса |процессы, могут, например, |удобный интерфейс для |
|при использовании ресурсов |порождать нити-потомки, могут|пользователей. |
|вычислительной машины, в |переходить из состояния в |Ключевым принципом является |
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
|