Рефераты

Операционные системы (шпаргалка)

|Загрузка состоит в том, что |какую-то другую операцию |вообще она может принимать |

|мы грузим программу каждый |изменения списка приведет к |только значения 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


© 2010 БИБЛИОТЕКА РЕФЕРАТЫ