Операционные системы (шпаргалка)
|Загрузка состоит в том, что |какую-то другую операцию |вообще она может принимать |
|мы грузим программу каждый |изменения списка приведет к |только значения 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
|