Операционные системы (шпаргалка) 
	
	
|Загрузка состоит в том, что  |какую-то другую операцию     |вообще она может принимать   | 
|мы грузим программу каждый   |изменения списка приведет к  |только значения 1 и 0.       | 
|раз с нового адреса. При этом|полному разрушению его       |Двоичный семафор             | 
|мы должны настроить ее на    |структуры, а чтение или поиск|соответствует случаю, когда с| 
|новые адреса, а для этого    |закончатся аварией. Поэтому  |разделяемым ресурсом в каждый| 
|прога представляет собой     |изменяющая программа должна  |момент времени может работать| 
|послед-ть команд. В          |каким-то образом блокировать |только одна программа.       | 
|процессорах 70-80-х гг у     |доступ к списку на время     |Семафоры общего вида могут   | 
|команды м.б. переменное      |изменения.                   |принимать любые целочисленные| 
|количество таких полей(0-6). |Прерывания и сигналы         |значения. Значение семафора  | 
|У современных                |Исторически первым методом   |большее 1 соответствует      | 
|RISC-процессоров кол-во полей|сообщения системе о внешнем  |случаю, когда несколько      | 
|меньше. Существуют три       |событии является аппаратное  |процессов могут работать с   | 
|способа вычисления адреса в  |прерывание. Идея прерывания  |ресурсом одновременно, или   | 
|команде. 1: берется адресное |состоит в том, чтобы в момент|когда ресурс состоит из      | 
|поле и говорится, что это    |события вызывать некоторую   |нескольких независимых, но   | 
|будет наш виртуальный адрес. |подпрограмму, которая и      |равноценных частей -         | 
|Это называется абсолютной    |выполнит действия по         |например, несколько          | 
|адресацией.                  |обработке события.           |одинаковых принтеров         | 
|                             |Получив запрос, процессор    |                             | 
|                             |завершает исполнение текущей |                             | 
|                             |команды и выставляет сигнал  |                             | 
|                             |готовности к прерыванию.     |                             | 
|                             |После этого внешнее          |                             | 
|                             |устройство выставляет на шине|                             | 
|                             |данных номер вектора         |                             | 
|                             |прерывания.                  |                             | 
|17.Способы загрузки программ.|18. Процесс – абстракция,    |19. Контекст и дескриптор    | 
|Относительная и абсолютная   |описывающая выполняющуюся    |процесса                     | 
|загрузка. Загрузка           |программу. Для операционной  |На протяжении существования  | 
|операционной системы.        |системы процесс представляет |процесса его выполнение может| 
|Абсолютная загрузка. Самый   |собой единицу работы, заявку |быть многократно прервано и  | 
|простой вариант состоит в    |на потребление системных     |продолжено. Для того, чтобы  | 
|том, что мы всегда будем     |ресурсов. Подсистема         |возобновить выполнение       | 
|загружать программу с одного |управления процессами        |процесса, необходимо         | 
|и того же адреса. Это        |планирует выполнение         |восстановить состояние его   | 
|возможно если: система может |процессов, то есть           |операционной среды. Состояние| 
|предоставить программе свое  |распределяет процессорное    |операционной среды           | 
|адресное пространство,       |время между несколькими      |отображается состоянием      | 
|Система может исполнять в    |одновременно существующими в |регистров и программного     | 
|каждый момент только одну    |системе процессами, а также  |счетчика, режимом работы     | 
|программу. Такой модуль      |занимается созданием и       |процессора, указателями на   | 
|называется абсолютным        |уничтожением процессов,      |открытые файлы, информацией о| 
|загрузочным модулем – это    |обеспечивает процессы        |незавершенных операциях      | 
|копия содержимого            |необходимыми системными      |ввода-вывода, кодами ошибок  | 
|виртуального пространства    |ресурсами, поддерживает      |выполняемых данным процессом | 
|проги в момент ее запуска. В |взаимодействие между         |системных вызовов и т.д. Эта | 
|системе UNIX используется    |процессами.                  |информация называется        | 
|абсолютная загрузка.         |Понятие программы – это набор|контекстом процесса.         | 
|Загружаемый файл начинается с|команд, который можно        |Кроме этого, операционной    | 
|заголовка, который содержит: |загрузить в память и на      |системе для реализации       | 
|''магическое число'' -       |который можно передать       |планирования процессов       | 
|признак того, что это        |управление. Часто программой |требуется дополнительная     | 
|загружаемый модуль, число    |называют цельный загрузочный |информация: идентификатор    | 
|TEXT_SIZE - длину области    |модуль.                      |процесса, состояние процесса,| 
|кода программы (TEXT),       |Процесс представляет собой   |данные о степени             | 
|DATA_SIZE - длину области    |программу, которая           |привилегированности процесса,| 
|инициализованных данных      |исполняется последовательно. |место нахождения кодового    | 
|программы (DATA), BSS_SIZE - |При этом ее исполнение может |сегмента и другая информация.| 
|длину области                |быть прервано передачей      |В некоторых ОС (например, в  | 
|неинициализованных данных    |управления другому процессу, |ОС UNIX) информацию такого   | 
|программы (BSS), Стартовый   |но после этого оно должно    |рода, используемую ОС для    | 
|адрес программы. За          |быть возобновлено с той      |планирования процессов,      | 
|заголовком следует содержимое|точки, где прервалось.       |называют дескриптором        | 
|областей TEXT и DATA. Затем  |Состояние процессов: в       |процесса.                    | 
|может следовать отладочная   |многозадачной системе процесс|Дескриптор процесса по       | 
|информация. При загрузке     |может находиться в одном из  |сравнению с контекстом       | 
|система выделяет программе   |трех основных состояний:     |содержит более оперативную   | 
|TEXT_SIZE байтов виртуальной |ВЫПОЛНЕНИЕ - активное        |информацию, которая должна   | 
|памяти, доступной для        |состояние процесса, во время |быть легко доступна          | 
|чтения/исполнения, и копирует|которого процесс обладает    |подсистеме планирования      | 
|туда содержимое сегмента     |всеми необходимыми ресурсами |процессов. Контекст процесса | 
|TEXT. Затем отматывается     |и непосредственно выполняется|содержит менее актуальную    | 
|DATA_SIZE байтов памяти,     |процессором;                 |информацию и используется    | 
|доступной для чтения/записи, |ОЖИДАНИЕ - пассивное         |операционной системой только | 
|и туда копируется содержимое |состояние процесса, процесс  |после того, как принято      | 
|сегмента DATA. Затем         |заблокирован, он не может    |решение о возобновлении      | 
|отматывается еще BSS_SIZE    |выполняться по своим         |прерванного процесса.        | 
|байтов памяти. После этого   |внутренним причинам, он ждет |Очереди процессов            | 
|выделяется пространство под  |осуществления некоторого     |представляют собой           | 
|стек, в стек помещаются      |события, например, завершения|дескрипторы отдельных        | 
|позиционные аргументы и среда|операции ввода-вывода,       |процессов, объединенные в    | 
|исполнения, и управление     |получения сообщения от       |списки. Таким образом, каждый| 
|передается на стартовый      |другого процесса,            |дескриптор, кроме всего      | 
|адрес. Программа начинает    |освобождения какого-либо     |прочего, содержит по крайней | 
|исполняться.                 |необходимого ему ресурса;    |мере один указатель на другой| 
|Относительная загрузка.      |ГОТОВНОСТЬ - также пассивное |дескриптор, соседствующий с  | 
|Загрузка состоит в том, что  |состояние процесса, но в этом|ним в очереди. Такая         | 
|мы грузим программу каждый   |случае процесс заблокирован в|организация очередей         | 
|раз с нового адреса. При этом|связи с внешними по отношению|позволяет легко их           | 
|мы должны настроить ее на    |к нему обстоятельствами:     |переупорядочивать, включать и| 
|новые адреса, а для этого    |процесс имеет все требуемые  |исключать процессы,          | 
|прога представляет собой     |для него ресурсы, он готов   |переводить процессы из одного| 
|послед-ть команд. В          |выполняться, однако процессор|состояния в другое.          | 
|процессорах 70-80-х гг у     |занят выполнением другого    |Программный код только тогда | 
|команды м.б. переменное      |процесса.                    |начнет выполняться, когда для| 
|количество таких полей(0-6). |В ходе жизненного цикла      |него операционной системой   | 
|У современных                |каждый процесс переходит из  |будет создан процесс. Создать| 
|RISC-процессоров кол-во полей|одного состояния в другое в  |процесс - это значит:        | 
|меньше. Существуют три       |соответствии с алгоритмом    |создать информационные       | 
|способа вычисления адреса в  |планирования процессов,      |структуры, описывающие данный| 
|команде. 1: берется адресное |реализуемым в данной         |процесс, то есть его         | 
|поле и говорится, что это    |операционной системе.        |дескриптор и контекст;       | 
|будет наш виртуальный адрес. |Типичный граф состояний      |включить дескриптор нового   | 
|Это называется абсолютной    |процесса показан на рисунке  |процесса в очередь готовых   | 
|адресацией                   |                             |процессов;                   | 
|                             |                             |загрузить кодовый сегмент    | 
|                             |                             |процесса в оперативную память| 
|                             |                             |или в область свопинга.      | 
|                             |Если нужных данных нет, то   |3 Если нужных данных нет, то | 
|                             |они вместе со своим адресом  |они вместе со своим адресом  | 
|                             |копируются из оперативной    |копируются из оперативной    | 
|                             |памяти в кэш-память, и       |памяти в кэш-память, и       | 
|                             |результат выполнения запроса |результат выполнения запроса | 
|                             |передается в процессор. При  |передается в процессор. При  | 
|                             |копировании данных может     |копировании данных может     | 
|                             |оказаться, что в кэш-памяти  |оказаться, что в кэш-памяти  | 
|                             |нет свободного места, тогда  |нет свободного места, тогда  | 
|                             |выбираются данные, к которым |выбираются данные, к которым | 
|                             |в последний период было      |в последний период было      | 
|                             |меньше всего обращений, для  |меньше всего обращений, для  | 
|                             |вытеснения из кэш-памяти.    |вытеснения из кэш-памяти.    | 
|                             |Если вытесняемые данные были |Если вытесняемые данные были | 
|                             |модифицированы за время      |модифицированы за время      | 
|                             |нахождения в кэш-памяти, то  |нахождения в кэш-памяти, то  | 
|                             |они переписываются в         |они переписываются в         | 
|                             |оперативную память. Если же  |оперативную память. Если же  | 
|                             |эти данные не были           |эти данные не были           | 
|                             |модифицированы, то их место в|модифицированы, то их место в| 
|                             |кэш-памяти объявляется       |кэш-памяти объявляется       | 
|                             |свободным. Если каждый блок  |свободным. При ассоциативной | 
|                             |основной памяти имеет только |организации кэша имеются     | 
|                             |одно фиксированное место, на |несколько блоков, из кот.    | 
|                             |котором он может появиться в |надо выбрать кандидата в     | 
|                             |кэш-памяти, то такая         |случае промаха. Для замещения| 
|                             |кэш-память называется кэшем с|блоков применяются две       | 
|                             |прямым отображением (direct  |основных стратегии: случайная| 
|                             |mapped). Это наиболее простая|и LRU. 1: блоки-кандидаты    | 
|                             |организация кэш-памяти, при  |выбираются случайно. В       | 
|                             |которой для отображения      |некоторых системах, чтобы    | 
|                             |адресов блоков основной      |получить воспроизводимое     | 
|                             |памяти на адреса кэш-памяти  |поведение, которое полезно во| 
|                             |просто используются младшие  |время отладки аппаратуры,    | 
|                             |разряды адреса блока. Т.о.,  |используют псевдослучайный   | 
|                             |все блоки основной памяти,   |алгоритм замещения. 2: все   | 
|                             |имеющие одинаковые младшие   |обращения к блокам           | 
|                             |разряды в своем адресе,      |фиксируются. Заменяется тот  | 
|                             |попадают в один блок         |блок, который не             | 
|                             |кэш-памяти. Кэш с прямым     |использовался дольше всех    | 
|                             |отображением есть просто     |(LRU - Least-Recently Used). | 
|                             |одноканальная                |Достоинство случайного       | 
|                             |множественно-ассоциативная   |способа заключается в том,   | 
|                             |кэш-память, а полностью      |что его проще реализовать в  | 
|                             |ассоциативная кэш-память с m |аппаратуре. Когда количество | 
|                             |блоками может быть названа   |блоков для поддержания трассы| 
|                             |m-канальной                  |увеличивается, алгоритм LRU  | 
|                             |множественно-ассоциативной. В|становится все более дорогим | 
|                             |современных процессорах      |и часто только приближенным. | 
|                             |используется кэш-память с    |различия в долях промахов при| 
|                             |прямым отображением, или     |использовании алгоритма      | 
|                             |двух- (четырех-) канальная   |замещения LRU и случайного   | 
|                             |множественно-ассоциативная   |алгоритма.                   | 
|                             |кэш-память.                  |                             | 
|Например, один процесс       |Процессор считывает номер и  |Очевидно, что если мы захотим| 
|копирует данные со стримера  |вызывает соответствующую     |''сдвинуть'' прогу по адресам| 
|на кассету Exabyte, а другой |процедуру из таблицы. При    |виртуальной памяти, то мы    | 
|- в обратном направлении.    |этом вызов обработчика       |должны будем найти все       | 
|Доступ к стримеру            |прерывания отличается от     |команды с абсолютными        | 
|контролируется семафором     |вызова обычной процедуры: при|адресными полями и прибавить | 
|sem1, а к кассете - семафором|обычном вызове в стеке       |ко всем этим полям разность  | 
|sem2.                        |сохраняется только адрес     |нового и старого адресов. 2: | 
|Первая программа сначала     |команды, на которую следует  |мы берем значение одного из  | 
|закрывает семафор sem1, затем|возвратить управление.       |регистров процессора,        | 
|sem2. Вторая программа       |При завершении процедуры     |прибавляем к нему значение   | 
|поступает наоборот. Поэтому, |обработки вызывается команда |адресного поля и получаем    | 
|если вторая программа получит|RTI (ReTurn from Interrupt - |адрес.Такая адресация        | 
|управление и защелкнет sem2 в|возврат из прерывания). Эта  |называется базовой. Если     | 
|промежутке между             |команда выталкивает из стека |адрес формируется сложением  | 
|соответствующими операциями  |адрес прерванной команды и   |двух или более регистров c   | 
|первой программы, то мы      |старое слово состояния.      |адресным полем, то это       | 
|получим мертвую блокировку - |Блокировка участков файлов   |называется базово-индексной  | 
|первая программа никогда не  |Если говорить именно о файле |адресацией. В более сложных  | 
|освободит sem1, потому что   |с базой данных, оказывается  |ситуациях мы должны:         | 
|стоит в очереди у sem2,      |удобно блокировать доступ к  |запомнить все места в        | 
|занятого второй программой,  |участкам файла. При этом     |программе, где загружаются   | 
|которая стоит в очереди у    |целесообразно ввести два типа|базовые регистры, и добавить | 
|sem1, занятого первой... Все |блокировок: на чтение и на   |к загружаемым значениям новый| 
|остальные программы,         |запись. Блокировка на чтение |стартовый адрес. Преимущество| 
|пытающиеся получить доступ к |разрешает другим процессам   |состоит в том, что таких мест| 
|стримеру или кассете, также  |читать из заблокированного   |в программе гораздо меньше,  | 
|будут становиться в          |участка и даже ставить туда  |чем при абсолютной адресации.| 
|соответствующие очереди и    |такую же блокировку, но      |В перемещаемой программе мы  | 
|ждать, пока администратор не |запрещает писать в этот      |должны запоминать все ссылки | 
|убьет одну из защелкнувшихся |участок и, тем более,        |на абсолютные адреса и в     | 
|программ. (Нетрудно заметить,|блокировать его на запись.   |момент загрузки производить  | 
|что здесь мы имеем дело с    |Этим достигается уверенность |их настройку на начальный    | 
|частным случаем задачи       |в том, что структуры данных, |адрес. Такой файл гораздо    | 
|“обедающие философы”, где    |считываемые из захваченного  |сложнее абсолютного          | 
|происходит доступ к          |участка, никем не            |загружаемого модуля, и носит | 
|пересекающимся группам       |модифицируются, поэтому      |название относительного или  | 
|ресурсов).                   |гарантирована их целостность |перемещаемого загрузочного   | 
|Эта проблема может быть      |и непротиворечивость.        |модуля. Именно такой формат  | 
|решена несколькими способами.|В свою очередь, блокировка на|имеют .exe-файлы в системе   | 
|Первый способ - разрешить    |запись запрещает всем, кроме |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 
	
	
					
							 |