Операционные системы (шпаргалка)
|раз с нового адреса. При этом|полному разрушению его |Двоичный семафор |
|мы должны настроить ее на |структуры, а чтение или поиск|соответствует случаю, когда с|
|новые адреса, а для этого |закончатся аварией. Поэтому |разделяемым ресурсом в каждый|
|прога представляет собой |изменяющая программа должна |момент времени может работать|
|послед-ть команд. В |каким-то образом блокировать |только одна программа. |
|процессорах 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-файлы в системе |
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
|