Операционные системы (шпаргалка)
| |происходит чтение из таблицы | |
| |страниц информации о | |
| |виртуальной странице, к | |
| |которой произошло обращение..| |
|Многослойная архитектура. | | |
|Вычислительную систему можно |* Гарантированное время | |
|рассматривать как систему, |реакции на внешнее событие | |
|составленную из трех |является отличительным | |
|иерархических слоев. Нижний |признаком систем РВ. | |
|слой образует аппаратура. |Требование гарантированного | |
|Промежуточный – ядро ОС. |времени реакции налагает | |
|Верхний слой – утилиты, |специфические требования на | |
|обрабатывающие программы и |архитектуру ОС; большинство | |
|приложения. |современных ОС общего | |
|Ядро ОС имеет также сложную |назначения непригодно для | |
|структуру и может содержать |задач РВ. | |
|следующие слои |* | |
|средства аппаратной поддержки|Любопытно, что новомодное | |
|ОС |течение в компьютерной | |
|машинно-зависимые модули |технике - multimedia - при | |
|базовые механизмы ядра |качественной реализации | |
|менеджеры ресурсов |предъявляет к системе те же | |
|интерфейс системных вызовов. |требования, что и | |
|Средства аппаратной поддержки|промышленные задачи реального| |
|включают в себя несколько |времени. В multimedia | |
|пунктов |основной проблемой является | |
|средства поддержки |синхронизация изображения на | |
|привилегированного режима |экране со звуком. Именно в | |
|средства трансляции адресов |таком порядке. Звук обычно | |
|средства переключения |генерируется внешним | |
|процессов |аппаратным устройством с | |
|системный таймер |собственным таймером, и | |
|система прерываний |изображение синхронизуется с | |
|средства защиты областей |ним же. Человек способен | |
|памяти |заметить довольно малые | |
| |временные неоднородности в | |
| |звуковом потоке. Напротив, | |
| |пропуск кадров в визуальном | |
| |потоке не так заметен, а | |
| |расхождение звука и | |
| |изображения заметно уже при | |
| |задержках около 30 мс. | |
| |Поэтому системы качественного| |
| |multimedia должны | |
| |обеспечивать синхронизацию с | |
| |такой же или более высокой | |
| |точностью, что мало | |
| |отличается от систем мягкого | |
| |реального времени | |
| |Кросс-загрузчики | |
| |Это системы - полностью | |
| |ориентированные на работу с | |
| |host-машиной. Чаще всего они | |
| |используются для написания и | |
| |отладки кода, позднее | |
| |прошиваемого в ПЗУ. Это | |
| |системы программирования | |
| |микроконтроллеров семейства | |
| |Intel 8048 и подобных им, TDS| |
| |(Transputer Development | |
| |System) фирмы Inmos, и многие| |
| |другие. Такие системы, как | |
| |правило, включают в себя | |
| |набор компиляторов и | |
| |ассемблеров, работающих на | |
| |host-системе (реже - | |
| |загружаемых с host-машины в | |
| |целевую систему), библиотеки,| |
| |выполняющие большую часть | |
| |функций ОС при работе | |
| |программы (но не загрузку | |
| |этой программы!), и средства | |
| |отладки. | |
| |Системы промежуточных типов | |
| |Существуют системы, которые с| |
| |первого взгляда нельзя | |
| |отнести к одному из | |
| |вышеперечисленных классов. | |
| |Такова, например, система | |
| |RT-11, которая, по сути | |
| |своей, является ДОС, но | |
| |позволяет одновременное | |
| |исполнение нескольких | |
| |программ с довольно богатыми | |
| |средствами взаимодействия и | |
| |синхронизации. Другим | |
| |примером промежуточной | |
| |системы являются | |
| |MS Windows 3.x и Windows 95 | |
| |которые, как ОС, используют | |
| |аппаратные средства | |
| |процессора для защиты и | |
| |виртуализации памяти и даже | |
| |могут обеспечивать некоторое | |
| |подобие многозадачной работы,| |
| |но не защищают себя и | |
| |программы от ошибок других | |
| |программ. | |
| |В последнее время вошел в | |
| |употребление еще один термин:| |
| |сетевые ОС, или сокращенно | |
| |NOS (Networking Operating | |
| |System). На взгляд авторов, | |
| |сложившееся использование | |
| |этого термина несколько | |
| |неудачно. Его можно | |
| |употреблять в двух различных | |
| |смыслах: | |
| |Системы, предназначенные для | |
| |предоставления сетевых услуг,| |
| |аналогично тому, как ДОС | |
| |предназначена для | |
| |предоставления средств работы| |
| |с диском. Под такое понимание| |
| |NOS подходят | |
| |узкоспециализированные | |
| |системы, такие как Novell | |
| |Netware, K9Q или программное | |
| |обеспечение маршрутизаторов | |
| |Cisco. | |
| |Системы, способные | |
| |предоставлять сетевые услуги.| |
| |Под такое определение | |
| |подходят практически все | |
| |современные ОС общего | |
| |назначения. | |
| |Судя по тому, что большинство| |
| |``обзоров сетевых | |
| |операционных систем'' в | |
| |компьютерных журналах | |
| |сравнивают не маршрутизатор | |
| |Cisco с K9Q, а Windows NT с | |
| |SunSoft Solaris или OS/2, | |
| |термин NOS в этих публикациях| |
| |понимается во втором смысле. | |
| |Как уже говорилось, | |
| |практически все современные | |
| |ОС и некоторые ДОС способны | |
| |предоставлять сетевые | |
| |сервисы, поэтому этот термин | |
| |почти эквивалентен словам | |
| |``Современная ОС общего | |
| |назначения'' и, таким | |
| |образом, почти не несет | |
| |полезной информации. | |
| | | |
| |[pic] | |
| |[pic] | |
|2.Если данные обнаруживаются |На производительность системы|. Распределение памяти |
|в кэш-памяти, то они |со страничной организацией |разделами переменной |
|считываются из нее, и |памяти влияют временные |величины(динамическими). В |
|результат передается в |затраты, связанные с |этом случае память машины не |
|процессор. |обработкой страничных |делится заранее на разделы. |
|3. Если нужных данных нет, то|прерываний и преобразованием |Сначала вся память свободна. |
|они вместе со своим адресом |виртуального адреса в |Каждой вновь поступающей |
|копируются из оперативной |физический. Сегментное |задаче выделяется необходимая|
|памяти в кэш-память, и |распределение. Этот метод |ей память. Если достаточный |
|результат выполнения запроса |позволяет дифференцировать |объем памяти отсутствует, то |
|передается в процессор. При |способы доступа к разным |задача не принимается на |
|копировании данных может |частям программы (сегментам).|выполнение и стоит в очереди.|
|оказаться, что в кэш-памяти |Например, если два процесса |После завершения задачи |
|нет свободного места, тогда |используют одну и ту же |память освобождается, и на |
|выбираются данные, к которым |математическую подпрограмму, |это место может быть |
|в последний период было |то в оперативную память может|загружена другая задача. |
|меньше всего обращений, для |быть загружена только одна |Таким образом, в произвольный|
|вытеснения из кэш-памяти. |копия этой подпрограммы |момент времени оперативная |
|Если вытесняемые данные были |Виртуальное адресное |память представляет собой |
|модифицированы за время |пространство процесса делится|случайную последовательность |
|нахождения в кэш-памяти, то |на сегменты, размер которых |занятых и свободных участков |
|они переписываются в |определяется программистом с |(разделов) произвольного |
|оперативную память. Если же |учетом смыслового значения |размера. Например в момент t0|
|эти данные не были |содержащейся в них |в памяти находится только ОС,|
|модифицированы, то их место в|информации. Отдельный сегмент|а к моменту t1 память |
|кэш-памяти объявляется |может представлять собой |разделена между 5 задачами, |
|свободным. |подпрограмму, массив данных и|причем одна из задач, |
|В кэш считывается не один |т.п. При загрузке процесса |завершаясь, покидает память. |
|элемент данных, к которому |часть сегментов помещается в |На освободившееся место после|
|произошло обращение, а целый |оперативную память, а часть |этой задачи загружается |
|блок данных. Это уменьшит |сегментов размещается в |другая задача, поступившая в |
|время доступа к данным. Т.к. |дисковой памяти(если нет |момент t3. Задачами |
|среднее время доступа к |места в оп. памяти). Сегменты|операционной системы при |
|данным в системе с |одной программы могут |реализации данного метода |
|кэш-памятью линейно зависит |занимать в оперативной памяти|управления памятью является: |
|от вероятности нахождение |несмежные участки. Во время |(1) ведение таблиц свободных |
|нужных данных в кэш. |загрузки система создает |и занятых областей, в которых|
|В реальных системах |таблицу сегментов процесса |указываются начальные адреса |
|вероятность попадания в кэш |(аналогичную таблице |и размеры участков памяти; |
|составляет примерно 0,9. |страниц), в которой для |(2)при поступлении новой |
|Высокое значение вероятности |каждого сегмента указывается |задачи - анализ запроса, |
|нахождения данных в |начальный физический адрес |просмотр таблицы свободных |
|кэш-памяти связано с наличием|сегмента в оперативной |областей и выбор раздела, |
|у данных объективных свойств:|памяти, размер сегмента, |размер которого достаточен |
|пространственной и временной |правила доступа, признак |для размещения поступившей |
|локальности. Пространственная|модификации, признак |задачи; (3) загрузка задачи в|
|локальность: если произошло |обращения к данному сегменту |выделенный ей раздел и |
|обращение по некоторому |за последний интервал времени|корректировка таблиц |
|адресу, то с высокой степенью|и некоторая другая |свободных и занятых областей;|
|вероятности в ближайшее время|информация. Если виртуальные |(4) после завершения задачи |
|произойдет обращение к |адресные пространства |корректировка таблиц |
|соседним адресам. Временная |нескольких процессов включают|свободных и занятых областей.|
|локальность: если произошло |один и тот же сегмент, то в |По сравнению с методом |
|обращение по некоторому |таблицах сегментов этих |распределения памяти |
|адресу, то следующее |процессов делаются ссылки на |фиксированными разделами |
|обращение по этому же адресу |один и тот же участок |данный метод обладает гораздо|
|с большой вероятностью |оперативной памяти, в который|большей гибкостью, но ему |
|произойдет в ближайшее время.|данный сегмент загружается в |присущ очень серьезный |
| |единственном экземпляре. |недостаток - фрагментация |
| |Виртуальный адрес при |памяти. Фрагментация - это |
| |сегментной организации памяти|наличие большого числа |
| |может быть представлен парой |несмежных участков свободной |
| |(g, s), где g - номер |памяти очень маленького |
| |сегмента, а s - смещение в |размера (фрагментов). |
| |сегменте. Физический адрес |Настолько маленького, что ни |
| |получается путем сложения |одна из вновь поступающих |
| |начального физического адреса|программ не может поместиться|
| |сегмента, найденного в |ни в одном из участков, хотя |
| |таблице сегментов по номеру |суммарный объем фрагментов |
| |g, и смещения s. |может составить значительную |
| |Недостатком данного метода |величину, намного превышающую|
| |распределения памяти является|требуемый объем памяти. |
| |фрагментация на уровне |Распределение памяти |
| |сегментов и более медленное |перемещаемыми разделами. |
| |по сравнению со страничной |Одним из методов борьбы с |
| |организацией преобразование |фрагментацией является |
| |адреса. |перемещение всех занятых |
| |Сегментно-страничное |участков в сторону старших |
| |распределение. Как видно из |либо в сторону младших |
| |названия, данный метод |адресов, так, чтобы вся |
| |представляет собой комбинацию|свободная память образовывала|
| |страничного и сегментного |единую свободную область. В |
| |распределения памяти и, |дополнение к функциям, |
| |вследствие этого, сочетает в |которые выполняет ОС при |
| |себе достоинства обоих |распределении памяти |
| |подходов. Виртуальное |переменными разделами, в |
| |пространство процесса делится|данном случае она должна еще |
| |на сегменты, а каждый сегмент|время от времени копировать |
| |в свою очередь делится на |содержимое разделов из одного|
| |виртуальные страницы, которые|места памяти в другое, |
| |нумеруются в пределах |корректируя таблицы свободных|
| |сегмента. Оперативная память |и занятых областей. Эта |
| |делится на физические |процедура называется |
| |страницы. Загрузка процесса |"сжатием". Сжатие может |
| |выполняется операционной |выполняться либо при каждом |
| |системой постранично, при |завершении задачи, либо |
| |этом часть страниц |только тогда, когда для вновь|
| |размещается в оперативной |поступившей задачи нет |
| |памяти, а часть на диске. Для|свободного раздела |
| |каждого сегмента создается |достаточного размера. |
| |своя таблица страниц, | |
| |структура которой полностью | |
| |совпадает со структурой | |
| |таблицы страниц, используемой| |
| |при страничном распределении.| |
| |Для каждого процесса | |
| |создается таблица сегментов, | |
| |в которой указываются адреса | |
| |таблиц страниц для всех | |
| |сегментов данного процесса. | |
| |Адрес таблицы сегментов | |
| |загружается в специальный | |
| |регистр процессора, когда | |
| |активизируется | |
| |соответствующий процесс. | |
|13.Кэш-память. Случайное |14.Кэш-память. Прямое |15.Двухуровневое кэширование.|
|отображение данных на кэш. |отображение данных на кэш. |Принцип работы. Выполнение |
|Выполнение запроса в системах|Выполнение запроса в системах|запроса с системах с |
|с кэш памятью. |с кэш памятью. |многоуревневой кэш памятью. |
|Кэш-память-способ организации|Кэш-память-способ организации|Каждый процессор для своей |
|совместного функц-ия двух |совместного функц-ия двух |работы использует |
|типов ЗУ, отличающихся |типов ЗУ, отличающихся |двухуровневый кэш со |
|временем доступа и стоимостью|временем доступа и стоимостью|свойствами охвата. Это |
|хранения данных, кот. |хранения данных, кот. |означает, что кроме |
|позволяет уменьшить время |позволяет уменьшить время |внутреннего кэша первого |
|доступа к данным за счет |доступа к данным за счет |уровня (кэша L1), встроенного|
|динамического копирования в |динамического копирования в |в каждый процессор PowerPC, |
|"быстрое" ЗУ наиболее часто |"быстрое" ЗУ наиболее часто |имеется связанный с ним кэш |
|используемой информации из |используемой информации из |второго уровня (кэш L2). При |
|"медленного" ЗУ. |"медленного" ЗУ. |этом каждая строка в кэше L1 |
|На практике в кэш-память |На практике в кэш-память |имеется также и в кэше L2. В |
|считывается не один элемент |считывается не один элемент |настоящее время объем кэша L2|
|данных, к которому произошло |данных, к которому произошло |составляет 1 Мбайт на каждый |
|обращение, а целый блок |обращение, а целый блок |процессор, а в будущих |
|данных, это увеличивает |данных, это увеличивает |реализациях предполагается |
|вероятность так называемого |вероятность так называемого |его расширение до 4 Мбайт. |
|"попадания в кэш", то есть |"попадания в кэш", то есть |Сама по себе кэш-память |
|нахождения нужных данных в |нахождения нужных данных в |второго уровня позволяет |
|кэш-памяти. |кэш-памяти. |существенно уменьшить число |
|В реальных системах |В реальных системах |обращений к памяти и |
|вероятность попадания в кэш |вероятность попадания в кэш |увеличить степень локализации|
|составляет примерно 0,9. |составляет примерно 0,9. |данных. Для повышения |
|Высокое значение вероятности |Высокое значение вероятности |быстродействия кэш L2 |
|связано с наличием у данных |связано с наличием у данных |построен на принципах прямого|
|свойств: пространственной и |свойств: пространственной и |отображения. Длина строки |
|временной локальности. |временной локальности. |равна 32 байт (размеру |
|Пространственная локальность.|Пространственная локальность.|когерентной гранулированности|
|Если произошло обращение по |Если произошло обращение по |системы). Следует отметить, |
|некоторому адресу, то с |некоторому адресу, то с |что, хотя с точки зрения |
|высокой степенью вероятности |высокой степенью вероятности |физической реализации |
|в ближайшее время произойдет |в ближайшее время произойдет |процессора PowerPC, 32 байта |
|обращение к соседним адресам.|обращение к соседним адресам.|составляют только половину |
| | |строки кэша L1, это не меняет|
|Временная локальность. Если |Временная локальность. Если |протокол когерентности, |
|произошло обращение по |произошло обращение по |который управляет операциями |
|некоторому адресу, то |некоторому адресу, то |кэша L1 и гарантирует что кэш|
|следующее обращение по этому |следующее обращение по этому |L2 всегда содержит данные |
|же адресу с большой |же адресу с большой |кэша L1. |
|вероятностью произойдет в |вероятностью произойдет в |Кэш L2 имеет внешний набор |
|ближайшее время. |ближайшее время. |тегов. Таким образом, любая |
|В системах, оснащенных |В системах, оснащенных |активность механизма |
|кэш-памятью, каждый запрос к |кэш-памятью, каждый запрос к |наблюдения за когерентным |
|оперативной памяти |оперативной памяти |состоянием кэш-памяти может |
|выполняется в соответствии со|выполняется в соответствии со|быть связана с кэшем второго |
|следующим алгоритмом: |следующим алгоритмом: |уровня, в то время как |
|Просматривается содержимое |Просматривается содержимое |большинство обращений со |
|кэш-памяти с целью |кэш-памяти с целью |стороны процессора могут |
|определения, не находятся ли |определения, не находятся ли |обрабатываться первичным |
|нужные данные в кэш-памяти; |нужные данные в кэш-памяти; |кэшем. Если механизм |
|кэш-память не является |кэш-память не является |наблюдения обнаруживает |
|адресуемой, поэтому поиск |адресуемой, поэтому поиск |попадание в кэш второго |
|нужных данных осуществляется |нужных данных осуществляется |уровня, то он должен |
|по содержимому - значению |по содержимому - значению |выполнить арбитраж за |
|поля "адрес в оперативной |поля "адрес в оперативной |первичный кэш, чтобы обновить|
|памяти", взятому из запроса. |памяти", взятому из запроса. |состояние и возможно найти |
| | |данные, что обычно будет |
|Если данные обнаруживаются в |Если данные обнаруживаются в |приводить к приостановке |
|кэш-памяти, то они |кэш-памяти, то они |процессора. Поэтому |
|считываются из нее, и |считываются из нее, и |глобальная память может |
|результат передается в |результат передается в |работать на уровне тегов кэша|
|процессор. |процессор. |L2, что позволяет существенно|
| | |ограничить количество |
| | |операций наблюдения, |
| | |генерируемых системой в |
| | |направлении данного |
| | |процессора. Это, в свою |
| | |очередь, существенно |
| | |увеличивает |
| | |производительность системы, |
| | |поскольку любая операция |
| | |наблюдения в направлении |
| | |процессора сама по себе может|
| | |приводить к приостановке его |
| | |работы. |
|16.Способы загрузки программ.|21.Синхронизация параллельных|22. Семафор Дийкстры |
|Относительная и абсолютная |процессов. Проблема |представляет собой |
|загрузка. Оверлеи. |критических участков. Подходы|целочисленную переменную, с |
|Абсолютная загрузка. Самый |к решению проблемы |которой ассоциирована очередь|
|простой вариант состоит в |(прерывания, семафоры, |ожидающих процессов. Над |
|том, что мы всегда будем |сигналы, блокировка). |семафором возможно проведение|
|загружать программу с одного |Первой из проблем является |только двух операций - |
|и того же адреса. Это |проблема разделения ресурсов.|“открытия” и “закрытия”, |
|возможно если: система может |Действительно, представим |названных соответственно P- и|
|предоставить программе свое |себе две программы, |V- операциями. Существенно, |
|адресное пространство, |пытающиеся печатать что-то на|что операции над семафорами |
|Система может исполнять в |одном принтере их вывод на |являются неделимыми |
|каждый момент только одну |бумаге будет перемешан. Одним|(непрерываемыми), поэтому их |
|программу. Такой модуль |из разумных решений может |часто называют примитивами. |
|называется абсолютным |быть монопольный захват |Пытаясь пройти через семафор,|
|загрузочным модулем – это |принтера одной из программ |процесс пытается вычесть из |
|копия содержимого |Другая проблема - это |значения переменной 1. Если |
|виртуального пространства |проблема реентерабельности |значение переменной больше |
|проги в момент ее запуска. В |(reenterability - повтоpной |или равно 1, процесс проходит|
|системе UNIX используется |входимости, от re-enter) |сквозь семафор успешно |
|абсолютная загрузка. |разделяемых программ. |(семафор открыт). Если |
|Загружаемый файл начинается с|Представим себе, что две |переменная равна нулю |
|заголовка, который содержит: |задачи используют общий |(семафор закрыт), процесс |
|''магическое число'' - |программный модуль. |останавливается и ставится в |
|признак того, что это |Представим себе, что одна из |очередь. Таким образом, |
|загружаемый модуль, число |программ вызвала процедуру из|семафор выполняет роль |
|TEXT_SIZE - длину области |разделяемого модуля. После |вспомогательного критического|
|кода программы (TEXT), |этого произошло переключение |ресурса. Закрытие семафора |
|DATA_SIZE - длину области |задач, и вторая задача |соответствует захвату |
|инициализованных данных |обращается к тому же модулю. |ресурса, доступ к которому |
|программы (DATA), BSS_SIZE - | |контролируется этим |
|длину области |Очень широкий класс проблем -|семафором. Процесс, закрывший|
|неинициализованных данных |проблемы синхронизации, |семафор, захватывает ресурс. |
|программы (BSS), Стартовый |возникающие при попытках |Если ресурс захвачен, |
|адрес программы. За |организовать взаимодействие |остальные процессы вынуждены |
|заголовком следует содержимое|нескольких программ. |ждать его освобождения. |
|областей TEXT и DATA. Затем |Первая, состоит в вопросе - |Закончив работу с ресурсом, |
|может следовать отладочная |если одна задача производит |процесс увеличивает значение |
|информация. При загрузке |данные, а вторая их |семафора на единицу, открывая|
|система выделяет программе |потребляет, то как |его. При этом первый из |
|TEXT_SIZE байтов виртуальной |задача-потребитель узнает, |стоявших в очереди процессов |
|памяти, доступной для |что готова очередная порция |активизируется, вычитает из |
|чтения/исполнения, и копирует|данных? Или, что еще |значения семафора единицу, и |
|туда содержимое сегмента |интереснее, как она узнает, |снова закрывает семафор. Если|
|TEXT. Затем отматывается |что очередная порция данных |же очередь была пуста, то |
|DATA_SIZE байтов памяти, |еще не готова? |ничего не происходит, просто |
|доступной для чтения/записи, |Другая проблема называется |семафор остается открытым. |
|и туда копируется содержимое |проблемой критических секций.|Тогда первый процесс, |
|сегмента DATA. Затем |Например, одна программа |подошедший к семафору, |
|отматывается еще BSS_SIZE |вставляет данные в |успешно пройдет через него. |
|байтов памяти. После этого |разделяемый двунаправленный |Это действительно похоже на |
|выделяется пространство под |список, а другая достает их |работу железнодорожного |
|стек, в стек помещаются |оттуда. Те, кто знаком с |семафора, контролирующего |
|позиционные аргументы и среда|алгоритмом вставки в список, |движение поездов по |
|исполнения, и управление |легко поймут, что есть |одноколейной ветке. |
|передается на стартовый |момент, когда указатели |Наиболее простым случаем |
|адрес. Программа начинает |элементов показывают вовсе не|семафора является двоичный |
|исполняться. |туда, куда надо. Попытка |семафор. Начальное значение |
|Относительная загрузка. |произвести в этот момент |такого семафора равно 1, и |
Страницы: 1, 2, 3, 4
|