Программирование и комп-ры

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

|1. Операционная система.     |3. Операционная система.     |5) Архитектура операционной  |
|Определение. Функции         |Определение. Классификация   |системы. Режимы ядра и       |
|операционных систем.         |операционных систем по       |приложений. Многослойная     |
|Функции:                     |особенностям алгорифмов      |архитектура.                 |
|По современным               |управления ресурсами,        |Под архитектурой понимается  |
|представлениям, ОС должна    |особенностям аппаратных      |организация ОС. Из основных  |
|уметь делать следующее:      |платформ, особенностям       |программных модулей обычно   |
|Обеспечивать загрузку        |областей использования.      |выделяют две группы:         |
|пользовательских программ в  |По тому, какие из            |ядро – модули, выполняющие   |
|оперативную память и их      |вышеперечисленных функций    |основные функции ОС          |
|исполнение.                  |реализованы (см вопрос 1) и  |модули, выполняющие          |
|Обеспечивать работу с        |каким было уделено больше    |вспомогательные функции.     |
|устройствами долговременной  |внимания, а каким меньше,    |Вспомогательные модули       |
|памяти, такими как магнитные |системы можно разделить на   |делятся на группы:           |
|диски, ленты, оптические     |несколько классов.           |утилиты – программы решения  |
|диски и т.д. Как правило, ОС |ДОС (Дисковые Операционные   |отдельных задач управления и |
|управляет свободным          |Системы)                     |сопровождения компьютерной   |
|пространством на этих        |Это системы, берущие на себя |системы.                     |
|носителях и структурирует    |выполнение только первых     |Системные обрабатывающие     |
|пользовательские данные.     |четырех функций. Как правило,|программы – текстовые или    |
|Предоставлять более или менее|это просто некий резидентный |графические редакторы,       |
|стандартный доступ к         |набор подпрограмм, не более  |компиляторы, компоновщики,   |
|различным устройствам        |того. Он загружает           |трансляторы                  |
|ввода/вывода, таким как      |пользовательскую программу в |Программы представляющие     |
|терминалы, модемы, печатающие|память и передает ей         |пользователю дополнительные  |
|устройства.                  |управление, после чего       |услуги                       |
|Предоставлять некоторый      |программа делает с системой  |Библиотеки процедур          |
|пользовательский интерфейс.  |все, что ей                  |различного назначения        |
|Слово некоторый здесь сказано|заблагорассудится. Считается |Модули ОС, оформленные в виде|
|не случайно - часть систем   |желательным, чтобы после     |утилит, системных            |
|ограничивается командной     |завершения программы машина  |обрабатывающих программ и    |
|строкой, в то время как      |оставалась в таком состоянии,|библиотек - ? –              |
|другие на 90% состоят из     |чтобы ДОС могла продолжить   |Ядро в привилегированном     |
|средств интерфейса           |работу. Если же программа    |режиме.                      |
|пользователя.                |приводит машину в какое-то   |Важным свойством архитектуры |
|Более развитые ОС            |другое состояние...\ что ж,  |ОС является возможность      |
|предоставляют также следующие|ДОС ничем ей в этом не может |выполнения защиты данных за  |
|возможности:                 |помешать. Характерный пример |счет выполнения функций ядра |
|Параллельное (точнее,        |- различные загрузочные      |в привилегированном режиме.  |
|псевдопараллельное, если     |мониторы для машин класса    |Ни одно приложение не должно |
|машина имеет только один     |Spectrum. Как правило, такие |иметь возможности без ведома |
|процессор) исполнение        |системы работают одновременно|ОС получать  дополнительную  |
|нескольких задач.            |только с одной программой.   |память, занимать процессор   |
|Распределение ресурсов       |Дисковая операционная система|дольше разрешенного ОС       |
|компьютера между задачами.   |MS DOS для IBM PC-совместимых|времени,  непосредственно    |
|Организация взаимодействия   |машин является прямым        |управлять совместно          |
|задач друг с другом.         |наследником одного из таких  |используемыми внешними       |
|Взаимодействие               |резидентных мониторов. Она,  |устройствами.                |
|пользовательских программ с  |правда, умеет загружать      |Аппаратура компьютера должна |
|нестандартными внешними      |несколько программ, но не    |поддерживать минимум два     |
|устройствами.                |предоставляет средств для    |режима работы –              |
|Организация межмашинного     |исполнения этих программ.    |пользовательский и           |
|взаимодействия и разделения  |Более того, с точки зрения   |привилегированный (режим     |
|ресурсов.                    |документированных функций,   |ядра)                        |
|Защита системных ресурсов,   |этим программам нельзя       |Подразумевается, что ОС или  |
|данных и программ            |работать. Конечно, есть еще  |ее часть работают в          |
|пользователя, исполняющихся  |недокументированные задние   |привилегированном режиме, а  |
|процессов и самой себя от    |двери (backdoors)...\        |приложения в                 |
|ошибочных и зловредных       |Существование систем такого  |пользовательском.            |
|действий пользователей и их  |класса обусловлено их        |Системный вызов инициирует   |
|программ.                    |простотой и тем, что они     |переключение процессора из   |
|                             |потребляют мало ресурсов. Для|пользовательского в          |
|                             |машин класса Spectrum это    |привилегированный режим, а   |
|                             |более чем критичные          |при возврате к приложению –  |
|                             |параметры. Еще одна причина, |обратный процесс.            |
|                             |по которой такие системы     |                             |
|                             |могут использоваться даже на |                             |
|                             |довольно мощных машинах -    |                             |
|                             |требование программной       |                             |
|                             |совместимости с ранними      |                             |
|                             |моделями того же семейства   |                             |
|                             |компьютеров.                 |                             |
|                             |ОС                           |                             |
|                             |К этому классу относятся     |                             |
|                             |системы, берущие на себя     |                             |
|                             |выполнение всех              |                             |
|                             |вышеперечисленных функций.   |                             |
|                             |Разделение на ОС и ДОС идет, |                             |
|                             |по-видимому, от систем IBM   |                             |
|                             |DOS/360 и OS/360 для больших |                             |
|                             |компьютеров этой фирмы, клоны|                             |
|                             |которых известны у нас в     |                             |
|                             |стране под названием ЕС ЭВМ  |                             |
|                             |серии 10XX. (Кстати, у IBM   |                             |
|                             |была еще TOS/360, Tape       |                             |
|                             |Operating System - Ленточная |                             |
|                             |Операционная Система).       |                             |
|                             |Здесь под ОС мы будем        |                             |
|                             |подразумевать системы        |                             |
|                             |``общего назначения'', то    |                             |
|                             |есть рассчитанные на         |                             |
|                             |интерактивную работу одного  |                             |
|                             |или нескольких пользователей |                             |
|                             |в режиме разделения времени, |                             |
|                             |при не очень жестких         |                             |
|                             |требованиях на время реакции |                             |
|                             |системы на внешние события.  |                             |
|                             |Как правило, в таких системах|                             |
|                             |уделяется большое внимание   |                             |
|                             |защите самой системы,        |                             |
|                             |программного обеспечения и   |                             |
|                             |пользовательских данных от   |                             |
|                             |ошибочных и злонамеренных    |                             |
|                             |программ и пользователей.    |                             |
|                             |Обычно такие системы         |                             |
|                             |используют встроенные в      |                             |
|                             |архитектуру процессора       |                             |
|                             |средства защиты и            |                             |
|                             |виртуализации памяти. К этому|                             |
|                             |классу относятся такие широко|                             |
|                             |распространенные системы, как|                             |
|                             |VAX/VMS, системы семейства   |                             |
|                             |Unix и OS/2, хотя последняя  |                             |
|                             |не обеспечивает одновременной|                             |
|                             |работы нескольких            |                             |
|                             |пользователей и защиты       |                             |
|                             |пользователей друг от друга. |                             |
|                             |                             |                             |
|                             |Системы реального времени    |                             |
|                             |Это системы, предназначенные |                             |
|                             |для облегчения разработки так|                             |
|                             |называемых приложений        |                             |
|                             |реального времени. Это       |                             |
|                             |программы, управляющие       |                             |
|                             |некомпьютерным по природе    |                             |
|                             |оборудованием, часто с очень |                             |
|                             |жесткими ограничениями по    |                             |
|                             |времени. Примером такого     |                             |
|                             |приложения может быть        |                             |
|                             |программа бортового          |                             |
|                             |компьютера крылатой ракеты,  |                             |
|                             |системы управления           |                             |
|                             |ускорителем элементарных     |                             |
|                             |частиц или промышленным      |                             |
|                             |оборудованием. Такие системы |                             |
|                             |обязаны поддерживать         |                             |
|                             |многопроцессность,           |                             |
|                             |гарантированное время реакции|                             |
|                             |на внешнее событие, простой  |                             |
|                             |доступ к таймеру и внешним   |                             |
|                             |устройствам. Такие системы   |                             |
|                             |могут по другим признакам    |                             |
|                             |относиться как к классу ДОС  |                             |
|                             |(RT-11), так и к ОС (OS-9,   |                             |
|                             |QNX). Часто такие системы    |                             |
|                             |(например, VxWorks)          |                             |
|                             |рассчитаны на работу         |                             |
|                             |совместно с управляющей      |                             |
|                             |host-машиной, исполняющей    |                             |
|                             |``нормальную'' операционную  |                             |
|                             |систему.                     |                             |
|2. Операционная система.     |6. Микроядерная архитектура  |7. Средства аппаратной       |
|Определение. Эволюция        |Микроядро — это минимальная  |поддержки ОС                 |
|операционных систем.         |стержневая часть ОС, служащая|-- средства поддержки        |
|1945-55:                     |основой модульных и          |привелигерованного режима:   |
|Были созданы первые ламповые |переносимых расширений.      |обычно реализуется на основе |
|вычислительные устройства.   |Основная идея заключается в  |системы регистров процессора;|
|Программирование             |том, чтобы конструировать    |                             |
|исключительно на машинном    |необходимую среду верхнего   |-- средства трансляции       |
|языке. ОС не было. Для       |уровня, из которой можно     |адресов: выполняются операции|
|программирования             |легко получить доступ ко всем|преобразования виртуальных   |
|использовался пульт          |функциональным возможностям  |адресов (в кодах процессора) |
|управления. Из системного    |уровня аппаратного           |а адреса физической памяти;  |
|обеспечения были библиотеки  |обеспечения. Искусство       |-- средства переключения     |
|математических и служебных   |разработки микроядра         |процессов: предназначены для |
|подпрограмм.                 |заключается в выборе базовых |быстрого сохранения          |
|1955-65:                     |примитивов, которые должны в |приостанавливаемого контекста|
|Данный этап связан с         |нем находиться для           |и восстановления контекста,  |
|появлением новой технической |обеспечения необходимого и   |который становится активным  |
|базы программных продуктов.  |достаточного сервиса.        |(контекст – содержимое всех  |
|Появились первые языки. Для  |В микроядре содержится и     |регистров общего назначения, |
|эффективности использования  |исполняется минимальное      |регистров флага, а также всех|
|процессорного времени стали  |количество кода, необходимое |системных регистров, которые |
|использовать системы пакетной|для реализации основных      |связаны с отдельным          |
|обработки (прообразы ОС).    |системных вызовов. В число   |процессом);                  |
|Задания вводили с помощью    |этих вызовов входят передача |-- системный таймер:         |
|перфокарт.                   |сообщений и организация      |быстродействующий регистр,   |
|1965-80:                     |другого общения между        |счетчик используемый ОС для  |
|Произошел переход к ИМС.     |внешними по отношению к      |выдержки интервалов времени; |
|Появились                    |микроядру процессами,        |-- прерывания, система       |
|программно-совместимые       |поддержка управления         |прерываний;                  |
|машины, что потребовало      |прерываниями, а также ряд    |-- средства защиты областей  |
|появления совместимых ОС.    |некоторых других функций.    |памяти: обеспечивает на      |
|Большое распространение      |Остальные функции,           |аппаратном уровне проверку   |
|получили системы подобные    |характерные для «обычных» ОС,|возможности осуществления    |
|ОС/360. Главным достоинством |обеспечиваются как модульные |программным кодом операций с |
|ОС было появление            |дополнения-процессы,         |определенной областью памяти.|
|мультипрограммирования – это |взаимодействующие главным    |                             |
|способ организации           |образом между собой и        |[pic]                        |
|вычислительного процесса, при|осуществляющие взаимодействие|                             |
|котором на одном процессоре  |посредством передачи         |                             |
|попеременно выполняются      |сообщений.                   |                             |
|несколько программ. Появились|Микроядро является маленьким,|                             |
|системы  разделения времени, |передающим сообщения модулем |                             |
|при которых создавалась      |системного программного      |                             |
|иллюзия единоличного         |обеспечения, работающим в    |                             |
|использования машины каждым  |наиболее приоритетном        |                             |
|пользователем.               |состоянии компьютера и       |                             |
|1980-…                       |поддерживающим остальную     |                             |
|Потребовалась разработка     |часть операционной системы,  |                             |
|дружественного интерфейса,   |рассматриваемую как набор    |                             |
|из-за широкого               |серверных приложений.        |                             |
|распространения компьютеров. |Достоинства:                 |                             |
|Первыми такими ОС были MS-DOS|- более простая организация  |                             |
|и Unix.                      |чем у монолитных ОС;         |                             |
|                             |- с микроядром функция       |                             |
|                             |операционной системы         |                             |
|                             |разбивается на модульные     |                             |
|                             |части, которые могут быть    |                             |
|                             |сконфигурированы целым рядом |                             |
|                             |способов, позволяя строить   |                             |
|                             |большие системы добавлением  |                             |
|                             |новых частей;                |                             |
|                             |- микроядра также облегчают  |                             |
|                             |поддержку мультипроцессоров  |                             |
|                             |созданием стандартной        |                             |
|                             |программной среды, которая   |                             |
|                             |может использовать           |                             |
|                             |множественные процессоры в   |                             |
|                             |случае их наличия, однако не |                             |
|                             |требует их, если их нет.     |                             |
|                             |- сети из общающихся между   |                             |
|                             |собой микроядер могут быть   |                             |
|                             |использованы для обеспечения |                             |
|                             |операционной системной       |                             |
|                             |поддержки возникающего класса|                             |
|                             |массивно параллельных машин. |                             |
|                             |- поскольку микроядра малы и |                             |
|                             |имеют сравнительно мало      |                             |
|                             |требуемого к исполнению кода |                             |
|                             |уровня ядра, они обеспечивают|                             |
|                             |удобный способ поддержки     |                             |
|                             |характеристик реального      |                             |
|                             |времени, требующихся для     |                             |
|                             |мультимедиа, управления      |                             |
|                             |устройствами и               |                             |
|                             |высокоскоростных             |                             |
|                             |коммуникаций.                |                             |
|                             |- хорошо структурированные   |                             |
|                             |микроядра обеспечивают       |                             |
|                             |изолирующий слой для         |                             |
|                             |аппаратных различий. Таким   |                             |
|                             |образом, они упрощают        |                             |
|                             |перенесение кода и           |                             |
|                             |увеличивают уровень его      |                             |
|                             |повторного использования.    |                             |
|                             |Недостатки:                  |                             |
|                             |Ухудшение показателя         |                             |
|                             |производительности за счет   |                             |
|                             |большого числа переключений  |                             |
|                             |между пользовательским и     |                             |
|                             |привелигерованным режимами.  |                             |
|8. Иерархия памяти.          |9. Способы управления        |12.Кэширование данных.       |
|Управление памятью без       |оперативной памятью. Типы    |Принцип работы кэш-памяти.   |
|использования внешней памяти.|адресов. Страничное          |Способы отображения данных на|
|                             |распределение памяти,        |кэш.                         |
|Иерархия памяти. Память      |сегментное,                  |Кэширование данных.          |
|вычислительной машины        |сегментно-страничное         |Кэш-память - это способ      |
|представляет собой иерархию  |распределение.               |организации совместного      |
|запоминающих устройств       |Управление памятью. Память   |функционирования двух типов  |
|(внутренние регистры         |является важнейшим ресурсом, |запоминающих устройств,      |
|процессора, различные типы   |требующим тщательного        |отличающихся временем доступа|
|сверхоперативной и           |управления со стороны        |и стоимостью хранения данных,|
|оперативной памяти, диски,   |мультипрограммной            |который позволяет уменьшить  |
|ленты), отличающихся средним |операционной системы.        |среднее время доступа к      |
|временем доступа и стоимостью|Распределению подлежит вся   |данным за счет динамического |
|хранения данных в расчете на |оперативная память, не       |копирования в "быстрое" ЗУ   |
|один бит. Методы             |занятая операционной         |наиболее часто используемой  |
|распределения памяти без     |системой. Обычно ОС          |информации из "медленного"   |
|использования дискового      |располагается в самых младших|ЗУ.                          |
|пространства. Все методы     |адресах, однако может        |Механизм кэш-памяти является |
|управления памятью могут быть|занимать и самые старшие     |прозрачным для пользователя, |
|разделены на два класса:     |адреса. Функциями ОС по      |который не должен сообщать   |
|методы, которые используют   |управлению памятью являются: |никакой информации об        |
|перемещение процессов между  |отслеживание свободной и     |интенсивности использования  |
|оперативной памятью и диском,|занятой памяти, выделение    |данных и не должен никак     |
|и методы, которые не делают  |памяти процессам и           |участвовать в перемещении    |
|этого. Начнем с последнего,  |освобождение памяти при      |данных из ЗУ одного типа в ЗУ|
|более простого класса        |завершении процессов,        |другого типа, все это        |
|методов. Этот метод имеет 3  |вытеснение процессов из      |делается автоматически       |
|решения. Рассмотрим их.      |оперативной памяти на диск,  |системными средствами.       |
|Распределение памяти         |когда размеры основной памяти|Кэш память используется для  |
|фиксированными разделами.    |не достаточны для размещения |уменьшения среднего времени  |
|Самым простым способом       |в ней всех процессов, и      |доступа к данным, хранящимся |
|управления оперативной       |возвращение их в оперативную |в оперативной памяти. Для    |
|памятью является разделение  |память, когда в ней          |этого между процессором и    |
|ее на несколько разделов     |освобождается место, а также |оперативной памятью          |
|фиксированной величины. Это  |настройка адресов программы  |помещается быстрое ЗУ,       |
|может быть выполнено вручную |на конкретную область        |называемое просто            |
|оператором во время старта   |физической памяти.           |кэш-памятью. Содержимое      |
|системы или во время ее      |Типы адресов. Для            |кэш-памяти представляет собой|
|генерации. Очередная задача, |идентификации переменных и   |совокупность записей обо всех|
|поступившая на выполнение,   |команд используются          |загруженных в нее элементах  |
|помещается либо в общую      |символьные имена (метки),    |данных. Каждая запись об     |
|очередь, либо в очередь к    |виртуальные адреса и         |элементе данных включает в   |
|некоторому разделу.          |физические адреса.           |себя адрес, который этот     |
|Подсистема управления памятью|Виртуальные адреса           |элемент данных имеет в       |
|в этом случае выполняет      |вырабатывает транслятор,     |оперативной памяти, и        |
|следующие задачи:            |переводящий программу на     |управляющую информацию:      |
|(1)сравнивая размер          |машинный язык. Так как во    |признак модификации и признак|
|программы, поступившей на    |время трансляции в общем     |обращения к данным за        |
|выполнение, и свободных      |случае не известно, в какое  |некоторый последний период   |
|разделов, выбирает подходящий|место оперативной памяти     |времени.                     |
|раздел. (2) осуществляет     |будет загружена программа, то|Принцип работы кэш. В        |
|загрузку программы и         |транслятор присваивает       |системах, оснащенных         |
|настройку адресов. При       |переменным и командам        |кэш-памятью, каждый запрос к |
|очевидном преимуществе -     |виртуальные (условные)       |оперативной памяти           |
|простоте реализации - данный |адреса, обычно считая по     |выполняется в соответствии со|
|метод имеет существенный     |умолчанию, что программа     |следующим алгоритмом:        |
|недостаток - жесткость. Так  |будет размещена, начиная с   |1.Просматривается содержимое |
|как в каждом разделе может   |нулевого адреса. Совокупность|кэш-памяти с целью           |
|выполняться только одна      |виртуальных адресов процесса |определения, не находятся ли |
|программа, то уровень        |называется виртуальным       |нужные данные в кэш-памяти;  |
|мультипрограммирования       |адресным пространством.      |кэш-память не является       |
|заранее ограничен числом     |Каждый процесс имеет         |адресуемой, поэтому поиск    |
|разделов не зависимо от того,|собственное виртуальное      |нужных данных осуществляется |
|какой размер имеют программы.|адресное пространство.       |по содержимому - значению    |
|Даже если программа имеет    |Максимальный размер          |поля "адрес в оперативной    |
|небольшой объем, она будет   |виртуального адресного       |памяти", взятому из запроса. |
|занимать весь раздел, что    |пространства ограничивается  |                             |
|приводит к неэффективному    |разрядностью адреса, присущей|                             |
|использованию памяти. С      |данной архитектуре           |                             |
|другой стороны, даже если    |компьютера, и, как правило,  |                             |
|объем оперативной памяти     |не совпадает с объемом       |                             |
|машины позволяет выполнить   |физической памяти, имеющимся |                             |
|некоторую программу,         |в компьютере. Физические     |                             |
|разбиение памяти на разделы  |адреса соответствуют номерам |                             |
|не позволяет сделать этого   |ячеек оперативной памяти, где|                             |
|                             |в действительности           |                             |
|                             |расположены или будут        |                             |
|                             |расположены переменные и     |                             |
|                             |команды. Переход от          |                             |
|                             |виртуальных адресов к        |                             |
|                             |физическим может             |                             |
|                             |осуществляться двумя         |                             |
|                             |способами. В первом случае   |                             |
|                             |замену виртуальных адресов на|                             |
|                             |физические делает специальная|                             |
|                             |системная программа -        |                             |
|                             |перемещающий загрузчик.      |                             |
|                             |Второй способ заключается в  |                             |
|                             |том, что программа           |                             |
|                             |загружается в память в       |                             |
|                             |неизмененном виде в          |                             |
|                             |виртуальных адресах, при этом|                             |
|                             |операционная система         |                             |
|                             |фиксирует смещение           |                             |
|                             |действительного расположения |                             |
|                             |программного кода            |                             |
|                             |относительно виртуального    |                             |
|                             |адресного пространства. Во   |                             |
|                             |время выполнения программы   |                             |
|                             |при каждом обращении к       |                             |
|                             |оперативной памяти           |                             |
|                             |выполняется преобразование   |                             |
|                             |виртуального адреса в        |                             |
|                             |физический.                  |                             |
|                             |Страничное распределение     |                             |
|                             |памяти. Виртуальное адресное |                             |
|                             |пространство каждого процесса|                             |
|                             |делится на части одинакового,|                             |
|                             |фиксированного для данной    |                             |
|                             |системы размера, называемые  |                             |
|                             |виртуальными страницами. Вся |                             |
|                             |оперативная память машины    |                             |
|                             |также делится на части такого|                             |
|                             |же размера, называемые       |                             |
|                             |физическими страницами (или  |                             |
|                             |блоками). Размер страницы    |                             |
|                             |обычно выбирается равным     |                             |
|                             |степени двойки: 512, 1024 и  |                             |
|                             |т.д., это позволяет упростить|                             |
|                             |механизм преобразования      |                             |
|                             |адресов. При загрузке        |                             |
|                             |процесса часть его           |                             |
|                             |виртуальных страниц          |                             |
|                             |помещается в оперативную     |                             |
|                             |память, а остальные - на     |                             |
|                             |диск. Смежные виртуальные    |                             |
|                             |страницы не обязательно      |                             |
|                             |располагаются в смежных      |                             |
|                             |физических страницах. При    |                             |
|                             |загрузке операционная система|                             |
|                             |создает для каждого процесса |                             |
|                             |информационную структуру -   |                             |
|                             |таблицу страниц, в которой   |                             |
|                             |устанавливается соответствие |                             |
|                             |между номерами виртуальных и |                             |
|                             |физических страниц для       |                             |
|                             |страниц, загруженных в       |                             |
|                             |оперативную память, или      |                             |
|                             |делается отметка о том, что  |                             |
|                             |виртуальная страница         |                             |
|                             |выгружена на диск. При       |                             |
|                             |активизации очередного       |                             |
|                             |процесса в специальный       |                             |
|                             |регистр процессора           |                             |
|                             |загружается адрес таблицы    |                             |
|                             |страниц данного процесса. При|                             |
|                             |каждом обращении к памяти    |                             |
|                             |происходит чтение из таблицы |                             |
|                             |страниц информации о         |                             |
|                             |виртуальной странице, к      |                             |
|                             |которой произошло обращение..|                             |
|Многослойная архитектура.    |                             |                             |
|Вычислительную систему можно |* Гарантированное время      |                             |
|рассматривать как систему,   |реакции на внешнее событие   |                             |
|составленную из трех         |является отличительным       |                             |
|иерархических слоев. Нижний  |признаком систем РВ.         |                             |
|слой образует аппаратура.    |Требование гарантированного  |                             |
|Промежуточный – ядро ОС.     |времени реакции налагает     |                             |
|Верхний слой – утилиты,      |специфические требования на  |                             |
|обрабатывающие программы и   |архитектуру ОС; большинство  |                             |
|приложения.                  |современных ОС общего        |                             |
|Ядро ОС имеет также сложную  |назначения непригодно для    |                             |
|структуру и может содержать  |задач РВ.                    |                             |
|следующие слои               |*                            |                             |
|средства аппаратной поддержки|Любопытно, что новомодное    |                             |
|ОС                           |течение в компьютерной       |                             |
|машинно-зависимые модули     |технике - 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 и 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.   |мини-процессами. Каждая нить |разбиении его на несколько   |
|Алгоритмы основанные на      |выполняется строго           |уровней, причем нижние уровни|
|приоритете процесса.         |последовательно и имеет свой |обеспечивают экранирование   |
|Приоритет - это число,       |собственный программный      |особенностей аппаратуры от   |
|характеризующее степень      |счетчик и стек. Нити, как и  |верхних, а те, обеспечивают  |
|привилегированности процесса |процессы, могут, например,   |удобный интерфейс для        |
|при использовании ресурсов   |порождать нити-потомки, могут|пользователей.               |
|вычислительной машины, в     |переходить из состояния в    |Ключевым принципом является  |
|частности, процессорного     |состояние. Подобно           |независимость от устройств.  |
|времени: чем выше приоритет, |традиционным процессам (то   |Вид программы не должен      |
|тем выше привилегии, тем     |есть процессам, состоящим из |зависеть от того, читает ли  |
|меньше времени он будет      |одной нити), нити могут      |она данные с гибкого диска   |
|проводить в очередях.        |находится в одном из         |или с жесткого диска. Другим |
|Приоритет может назначаться  |следующих состояний:         |важным вопросом для          |
|директивно администратором,  |ВЫПОЛНЕНИЕ, ОЖИДАНИЕ и       |программного обеспечения     |
|либо вычисляться самой ОС, он|ГОТОВНОСТЬ.                  |ввода-вывода является        |
|может оставаться             |                             |обработка ошибок. Вообще     |
|фиксированным либо изменяться|                             |говоря, ошибки следует       |
|во времени в соответствии с  |                             |обрабатывать как можно ближе |
|некоторым законом. В         |                             |к аппаратуре. Если контроллер|
|последнем случае приоритеты  |                             |обнаруживает ошибку чтения,  |
|называются динамическими. На |                             |то он должен попытаться ее   |
|выполнение из очереди готовых|                             |скорректировать. Если же это |
|выбирается процесс, имеющий  |                             |ему не удается, то           |
|наивысший приоритет.         |                             |исправлением ошибок должен   |
|Существуют алгоритмы,        |                             |заняться драйвер устройства. |
|использующие относительные и |                             |И только если нижний уровень |
|абсолютные приоритеты. В     |                             |не может справиться с        |
|системах с относительными    |                             |ошибкой, он сообщает об      |
|приоритетами активный процесс|                             |ошибке верхнему уровню.      |
|выполняется до тех пор, пока |                             |Еще один ключевой вопрос -   |
|он сам не покинет процессор. |                             |это использование блокирующих|
|В системах с абсолютными     |                             |(синхронных) и неблокирующих |
|приоритетами еще и если в    |                             |(асинхронных) передач.       |
|очереди готовых процессов    |                             |Большинство операций         |
|появился процесс, приоритет  |                             |физического ввода-вывода     |
|которого выше приоритета     |                             |выполняется асинхронно -     |
|активного процесса. Алгоритмы|                             |процессор начинает передачу и|
|с относительными (а) и       |                             |переходит на другую работу,  |
|абсолютными (б) приоритетами.|                             |пока не наступает прерывание.|
|                             |                             |Необходимо, чтобы операции   |
|Во многих ОС алгоритмы       |                             |ввода-вывода были блокирующие|
|планирования построены с     |                             |- после команды READ         |
|использованием как           |                             |программа автоматически      |
|квантования, так и           |                             |приостанавливается до тех    |
|приоритетов. Например, в     |                             |пор, пока данные не попадут в|
|основе планирования лежит    |                             |буфер программы.             |
|квантование, но величина     |                             |Последняя проблема состоит в |
|кванта и/или порядок выбора  |                             |том, что одни устройства     |
|процесса из очереди готовых  |                             |являются разделяемыми(диски: |
|определяется приоритетами    |                             |одновременный доступ         |
|процессов.                   |                             |нескольких пользователей к   |
|                             |                             |диску не представляет собой  |
|                             |                             |проблему), а другие -        |
|                             |                             |выделенными(принтеры: нельзя |
|                             |                             |смешивать строчки, печатаемые|
|                             |                             |различными пользователями).  |
|Вопрос 25. Файловая система. |Вопрос 26. Файловые системы. |Вопрос 27. Примеры           |
|Файлы с точки зрения         |Общая структура и            |организации файловых систем. |
|пользователя и системы.      |функционирование.            |Разработчики новых           |
|Логическая организация файла.|Физическая организация файла |операционных систем стремятся|
|                             |описывает правила            |обеспечить пользователя      |
|Файловая система - это часть |расположения файла на        |возможностью работать сразу с|
|операционной системы,        |устройстве внешней памяти, в |несколькими файловыми        |
|назначение которой состоит в |частности на диске. Файл     |системами. Новая файловая    |
|том, чтобы обеспечить        |состоит из физических записей|система имеет многоуровневую |
|пользователю удобный         |- блоков. Блок - наименьшая  |структуру (см. рис. 1), на   |
|интерфейс при работе с       |единица данных, которой      |верхнем уровне которой       |
|данными, хранящимися на      |внешнее устройство           |располагается так называемый |
|диске, и обеспечить          |обменивается с оперативной   |переключатель файловых       |
|совместное использование     |памятью. Непрерывное         |систем. Он обеспечивает      |
|файлов несколькими           |размещение - простейший      |интерфейс между запросами    |
|пользователями и процессами. |вариант физической           |приложения и конкретной      |
|В широком смысле понятие     |организации (см. рис. 1,а),  |файловой системой, к которой |
|"файловая система" включает: |при котором файлу            |обращается это приложение.   |
|1)совокупность всех файлов на|предоставляется              |Переключатель файловых систем|
|диске 2) наборы структур     |последовательность блоков    |преобразует запросы в формат,|
|данных, используемых для     |диска, образующих единый     |воспринимаемый следующим     |
|управления файлами, такие,   |сплошной участок дисковой    |уровнем - уровнем файловых   |
|например, как каталоги       |памяти. Для задания адреса   |систем.                      |
|файлов, дескрипторы файлов,  |файла в этом случае          |                             |
|таблицы распределения        |достаточно указать только    |Рис. 1. Архитектура          |
|свободного и занятого        |номер начального блока.      |современной файловой системы |
|пространства на диске        |Недостатки: 1)во время       |                             |
|3)комплекс системных         |создания файла заранее не    |Каждый компонент уровня      |
|программных средств,         |известна его длина, а значит |файловых систем выполнен в   |
|реализующих управление       |не известно, сколько памяти  |виде драйвера соответствующей|
|файлами, в частности:        |надо зарезервировать для     |файловой системы и           |
|создание, уничтожение,       |этого файла, 2)при таком     |поддерживает определенную    |
|чтение, запись, именование,  |порядке размещения неизбежно |организацию файловой системы.|
|поиск и другие операции над  |возникает фрагментация.      |Переключатель является       |
|файлами.                     |Следующий способ физической  |единственным модулем, который|
|Файлы идентифицируются       |организации - размещение в   |может обращаться к драйверу  |
|именами. Пользователи дают   |виде связанного списка блоков|файловой системы. Приложение |
|файлам символьные имена, при |дисковой памяти (см. рис.    |не может обращаться к нему   |
|этом учитываются ограничения |1,б). При таком способе в    |напрямую. Драйвер файловой   |
|ОС как на используемые       |начале каждого блока         |системы может быть написан в |
|символы, так и на длину      |содержится указатель на      |виде реентерабельного кода,  |
|имени. До недавнего времени  |следующий блок. В этом случае|что позволяет сразу          |
|эти границы были весьма      |адрес файла может быть задан |нескольким приложениям       |
|узкими. Так в популярной     |одним числом - номером       |выполнять операции с файлами.|
|файловой системе FAT длина   |первого блока. Фрагментация  |Каждый драйвер файловой      |
|имен ограничивается известной|отсутствует. Файл может      |системы в процессе           |
|схемой 8.3 (8 символов -     |изменяться во время своего   |собственной инициализации    |
|собственно имя, 3 символа -  |существования, наращивая     |регистрируется у             |
|расширение имени). Однако    |число блоков. Недостатки:    |переключателя, передавая ему |
|пользователю гораздо удобнее |1)сложность реализации       |таблицу точек входа, которые |
|работать с длинными именами. |доступа к произвольно        |будут использоваться при     |
|При переходе к длинным именам|заданному месту файла        |последующих обращениях к     |
|возникает проблема           |2)количество данных файла,   |файловой системе.            |
|совместимости с ранее        |содержащихся в одном блоке,  |Для выполнения своих функций |
|созданными приложениями,     |не равно степени двойки (одно|драйверы файловых систем     |
|использующими короткие имена.|слово израсходовано на номер |обращаются к подсистеме      |
|Таким образом, одной из      |следующего блока)            |ввода-вывода, образующей     |
|важных задач становится      |Рис. 1. Физическая           |следующий слой файловой      |
|проблема генерации           |организация файла            |системы новой архитектуры.   |
|соответствующих коротких     |                             |Подсистема ввода вывода - это|
|имен. При реализации нового  |Популярным способом является |составная часть файловой     |
|варианта FAT важной задачей  |использование связанного     |системы, которая отвечает за |
|была задача хранения длинных |списка индексов. С каждым    |загрузку, инициализацию и    |
|имен при условии, что        |блоком связывается некоторый |управление всеми модулями    |
|принципиально метод хранения |элемент – индекс (см. рис    |низших уровней файловой      |
|и структура данных на диске  |1,в). Индексы располагаются в|системы. Обычно эти модули   |
|не должны были измениться.   |отдельной области диска (в   |представляют собой драйверы  |
|Файлы бывают разных типов:   |MS-DOS это таблица FAT). Если|портов, которые              |
|1)обычные файлы 2)специальные|некоторый блок распределен   |непосредственно занимаются   |
|файлы 3)файлы-каталоги.      |некоторому файлу, то индекс  |работой с аппаратными        |
|1)Обычные файлы в свою       |этого блока содержит номер   |средствами. Кроме этого      |
|очередь подразделяются на    |следующего блока данного     |подсистема ввода-вывода      |
|текстовые и двоичные.        |файла.                       |обеспечивает некоторый сервис|
|Текстовые файлы состоят из   |Определить права доступа к   |драйверам файловой системы,  |
|строк символов,              |файлу - значит определить для|что позволяет им осуществлять|
|представленных в ASCII-коде. |каждого пользователя набор   |запросы к конкретным         |
|Это могут быть документы,    |операций, которые он может   |устройствам. Подсистема      |
|исходные тексты программ и   |применить к данному файлу.   |ввода-вывода должна постоянно|
|т.п. Двоичные файлы не       |Этот список может включать   |присутствовать в памяти и    |
|используют ASCII-коды, они   |следующие операции:          |организовывать совместную    |
|часто имеют сложную          |1)создание файла             |работу иерархии драйверов    |
|внутреннюю структуру,        |2)уничтожение файла          |устройств. В эту иерархию    |
|например, объектный код      |3)открытие файла и т.д. Права|могут входить драйверы       |
|программы или архивный файл. |доступа могут быть описаны   |устройств определенного типа |
|2)Специальные файлы - это    |матрицей прав доступа (см.   |(драйверы жестких дисков или |
|файлы, ассоциированные с     |рис. 2). В некоторых системах|накопителей на лентах),      |
|устройствами ввода-вывода,   |пользователи могут быть      |драйверы, поддерживаемые     |
|которые позволяют            |разделены на отдельные       |поставщиками (такие драйверы |
|пользователю выполнять       |категории. Для всех          |перехватывают запросы к      |
|операции ввода-вывода,       |пользователей одной категории|блочным устройствам и могут  |
|используя обычные команды    |определяются единые права    |частично изменить поведение  |
|записи в файл или чтения из  |доступа.                     |существующего драйвера этого |
|файла.                       |                             |устройства, например,        |
|3)Каталог - это, с одной     |                             |зашифровать данные), драйверы|
|стороны, группа файлов,      |                             |портов, которые управляют    |
|объединенных пользователем   |                             |конкретными адаптерами.      |
|исходя из некоторых          |                             |                             |
|соображений (файлы,          |                             |                             |
|составляющие один программный|                             |                             |
|пакет), а с другой стороны - |                             |                             |
|это файл, содержащий         |                             |                             |
|системную информацию о группе|                             |                             |
|файлов, его составляющих. В  |                             |                             |
|каталоге содержится список   |                             |                             |
|файлов, входящих в него, и   |                             |                             |
|устанавливается соответствие |                             |                             |
|между файлами и их           |                             |                             |
|характеристиками             |                             |                             |
|(атрибутами).                |                             |                             |
|Cписок вопросов              |                             |                             |
|к экзамену «Операционные     |                             |                             |
|системы»                     |                             |                             |
|Введение в операционные      |                             |                             |
|системы:                     |                             |                             |
|Операционная система.        |                             |                             |
|Определение. Функции         |                             |                             |
|операционных систем.         |                             |                             |
|Операционная система.        |                             |                             |
|Определение. Эволюция        |                             |                             |
|операционных систем.         |                             |                             |
|Операционная система.        |                             |                             |
|Определение. Классификация   |                             |                             |
|операционных систем по       |                             |                             |
|особенностям алгорифмов      |                             |                             |
|управления ресурсами,        |                             |                             |
|особенностям аппаратных      |                             |                             |
|платформ, особенностям       |                             |                             |
|областей использования.      |                             |                             |
|Обзор современных            |                             |                             |
|операционных систем.         |                             |                             |
|Архитектура операционной     |                             |                             |
|системы и ядра:              |                             |                             |
|Архитектура операционной     |                             |                             |
|системы. Режимы ядра и       |                             |                             |
|приложений. Многослойная     |                             |                             |
|архитектура.                 |                             |                             |
|Архитектура операционной     |                             |                             |
|системы. Режимы ядра и       |                             |                             |
|приложений. Микроядерная     |                             |                             |
|архитектура. Достоинства и   |                             |                             |
|недостатки микроядерной      |                             |                             |
|архитектуры.                 |                             |                             |
|Архитектура операционной     |                             |                             |
|системы. Режимы ядра и       |                             |                             |
|приложений. Средства         |                             |                             |
|программной и аппаратной     |                             |                             |
|поддержки операционной       |                             |                             |
|системы.                     |                             |                             |
|Управление памятью:          |                             |                             |
|Иерархия памяти. Управление  |                             |                             |
|памятью без использования    |                             |                             |
|внешней памяти.              |                             |                             |
|Способы управления           |                             |                             |
|оперативной памятью. Типы    |                             |                             |
|адресов. Страничное          |                             |                             |
|распределение памяти,        |                             |                             |
|сегментно-страничное         |                             |                             |
|распределение.               |                             |                             |
|Способы управления           |                             |                             |
|оперативной памятью. Типы    |                             |                             |
|адресов. Сегментное          |                             |                             |
|распределение памяти,        |                             |                             |
|сегментно-страничное         |                             |                             |
|распределение.               |                             |                             |
|Способы управления           |                             |                             |
|оперативной памятью. Типы    |                             |                             |
|адресов. Сегментно-страничное|                             |                             |
|распределение.               |                             |                             |
|Кэширование данных. Принцип  |                             |                             |
|работы кэш-памяти. Способы   |                             |                             |
|отображения данных на кэш.   |                             |                             |
|Кэш-память. Случайное        |                             |                             |
|отображени данных на кэш.    |                             |                             |
|Выполнение запроса с системах|                             |                             |
|с кэш памятью.               |                             |                             |
|Кэш-память. Прямое отображени|                             |                             |
|данных на кэш. Выполнение    |                             |                             |
|запроса с системах с кэш     |                             |                             |
|памятью.                     |                             |                             |
|Двухуровневое кэширование.   |                             |                             |
|Принцип работы. Выполнение   |                             |                             |
|запроса с системах с         |                             |                             |
|многоуревневой кэш памятью.  |                             |                             |
|                             |                             |                             |
|Для решения поставленных     |Пока одна нить заблокирована,|[pic]                        |
|проблем целесообразно        |другая нить того же процесса |Вытесняющие и не вытесняющие |
|разделить программное        |может выполняться. Нити      |алгоритмы планирования       |
|обеспечение ввода-вывода на  |разделяют процессор так, как |Non-preemptive multitasking -|
|четыре слоя (см. рис. 1)     |это делают процессы, в       |невытесняющая многозадачность|
|1)Обработка прерываний       |соответствии с различными    |- это способ планирования    |
|2)Драйверы устройств         |вариантами планирования.     |процессов, при котором       |
|3)Независимый от устройств   |Однако различные нити в      |активный процесс выполняется |
|слой операционной системы    |рамках одного процесса не    |до тех пор, пока он сам, по  |
|4)Пользовательский слой      |настолько независимы, как    |собственной инициативе, не   |
|программного обеспечения.    |отдельные процессы. Все такие|отдаст управление            |
|                             |нити имеют одно и то же      |планировщику ОС для того,    |
|Рис.1. Многоуровневая        |адресное пространство.       |чтобы тот выбрал из очереди  |
|организация подсистемы       |Поскольку каждая нить может  |другой, готовый к выполнению |
|ввода-вывода                 |иметь доступ к каждому       |процесс.                     |
|Весь зависимый от устройства |виртуальному адресу, одна    |Preemptive multitasking -    |
|код помещается в драйвер     |нить может использовать стек |вытесняющая многозадачность -|
|устройства. Каждый драйвер   |другой нити. Между нитями нет|это такой способ, при котором|
|управляет устройствами одного|полной защиты, потому что,   |решение о переключении       |
|типа или одного класса.      |во-первых, это невозможно, а |процессора с выполнения      |
|Первый шаг в реализации      |во-вторых, не нужно. Все нити|одного процесса на выполнение|
|запроса ввода-вывода состоит |одного процесса всегда решают|другого процесса принимается |
|в преобразовании его из      |общую задачу одного          |планировщиком ОС, а не самой |
|абстрактной формы в          |пользователя, и аппарат нитей|активной задачей.            |
|конкретную.                  |используется здесь для более |Основным различием между     |
|Хотя большая часть           |быстрого решения задачи путем|preemptive и non-preemptive  |
|программного обеспечения     |ее распараллеливания. Кроме  |вариантами многозадачности   |
|ввода-вывода находится внутри|разделения адресного         |является степень             |
|ОС, некоторая его часть      |пространства, все нити       |централизации механизма      |
|содержится в библиотеках,    |разделяют также набор        |планирования задач. При      |
|связываемых с                |открытых файлов, таймеров,   |вытесняющей многозадачности  |
|пользовательскими            |сигналов и т.п.              |механизм планирования задач  |
|программами. Системные       |Нити имеют собственные:      |целиком сосредоточен в ОС, и |
|вызовы, включающие вызовы    |1)программный счетчик 2)стек |программист пишет свое       |
|ввода-вывода, обычно делаются|3)регистры 4)нити-потомки    |приложение, не заботясь о    |
|библиотечными процедурами.   |5)состояние.                 |том, что оно будет           |
|Набор подобных процедур      |Нити разделяют: 1)адресное   |выполняться параллельно с    |
|является частью системы      |пространство 2)глобальные    |другими задачами. При этом ОС|
|ввода-вывода. Другой         |переменные 3)открытые файлы  |выполняет следующие функции: |
|категорией программного      |4)таймеры 5)семафоры         |определяет момент снятия с   |
|обеспечения ввода-вывода     |6)статистическую информацию. |выполнения активной задачи,  |
|является подсистема спулинга.|Некоторые прикладные задачи  |запоминает ее контекст,      |
|Спулинг - это способ работы с|легче программировать,       |выбирает из очереди готовых  |
|выделенными устройствами в   |используя параллелизм,       |задач следующую и запускает  |
|мультипрограммной системе.   |например задачи типа         |ее на выполнение, загружая ее|
|Создается специальный процесс|"писатель-читатель", в       |контекст.                    |
|- монитор, который получает  |которых одна нить выполняет  |При невытесняющей            |
|исключительные права на      |запись в буфер, а другая     |многозадачности механизм     |
|использование данного        |считывает записи из него.    |планирования распределен     |
|устройства (принтер). Также  |Поскольку они разделяют общий|между системой и прикладными |
|создается специальный        |буфер, не стоит их делать    |программами. Прикладная      |
|каталог, называемый каталогом|отдельными процессами. В     |программа, получив управление|
|спулинга.                    |мультипроцессорных системах  |от ОС, сама определяет момент|
|                             |для нитей из одного адресного|завершения своей очередной   |
|                             |пространства имеется         |итерации и передает          |
|                             |возможность выполняться      |управление ОС с помощью      |
|                             |параллельно на разных        |какого-либо системного       |
|                             |процессорах. Это один из     |вызова, а ОС формирует       |
|                             |главных путей реализации     |очереди задач и выбирает в   |
|                             |разделения ресурсов в таких  |соответствии с некоторым     |
|                             |системах.                    |алгоритмом (например, с      |
|                             |                             |учетом приоритетов) следующую|
|                             |                             |задачу на выполнение. Такой  |
|                             |                             |механизм создает проблемы как|
|                             |                             |для пользователей, так и для |
|                             |                             |разработчиков.               |
|                             |                             |Однако распределение функций |
|                             |                             |планировщика между системой и|
|                             |                             |приложениями не всегда       |
|                             |                             |является недостатком, а при  |
|                             |                             |определенных условиях может  |
|                             |                             |быть и преимуществом, потому |
|                             |                             |что дает возможность         |
|                             |                             |разработчику приложений      |
|                             |                             |самому проектировать алгоритм|
|                             |                             |планирования, наиболее       |
|                             |                             |подходящий для данного       |
|                             |                             |фиксированного набора задач. |
|                             |                             |Так как разработчик сам      |
|                             |                             |определяет в программе момент|
|                             |                             |времени отдачи управления, то|
|                             |                             |при этом исключаются         |
|                             |                             |нерациональные прерывания    |
|                             |                             |программ в "неудобные" для   |
|                             |                             |них моменты времени. Кроме   |
|                             |                             |того, легко разрешаются      |
|                             |                             |проблемы совместного         |
|                             |                             |использования данных: задача |
|                             |                             |во время каждой итерации     |
|                             |                             |использует их монопольно и   |
|                             |                             |уверена, что на протяжении   |
|                             |                             |этого периода никто другой не|
|                             |                             |изменит эти данные.          |
|                             |                             |Существенным преимуществом   |
|                             |                             |non-preemptive систем        |
|                             |                             |является более высокая       |
|                             |                             |скорость переключения с      |
|                             |                             |задачи на задачу.            |
|                             |                             |                             |
|Большое число уровней        |Рис. 2. Матрица прав доступа |Иерархия каталогов может быть|
|архитектуры файловой системы |                             |деревом или сетью. Каталоги  |
|обеспечивает авторам         |Различают два основных       |образуют дерево, если файлу  |
|драйверов устройств большую  |подхода к определению прав   |разрешено входить только в   |
|гибкость - драйвер может     |доступа: 1)избирательный     |один каталог, и сеть - если  |
|получить управление на любом |доступ, когда для каждого    |файл может входить сразу в   |
|этапе выполнения запроса - от|файла и каждого пользователя |несколько каталогов. В MS-DOS|
|вызова приложением функции,  |сам владелец может определить|каталоги образуют древовидную|
|которая занимается работой с |допустимые операции;         |структуру, а в UNIX'е -      |
|файлами, до того момента,    |2)мандатный подход, когда    |сетевую.                     |
|когда работающий на самом    |система наделяет пользователя|                             |
|низком уровне драйвер        |определенными правами по     |Рис. 1. Логическая           |
|устройства начинает          |отношению к каждому          |организация файловой системы |
|просматривать регистры       |разделяемому ресурсу (в      |                             |
|контроллера. Многоуровневый  |данном случае файлу) в       |а - одноуровневая; б -       |
|механизм работы файловой     |зависимости от того, к какой |иерархическая (дерево); в -  |
|системы реализован           |группе пользователь отнесен. |иерархическая (сеть)         |
|посредством цепочек вызова.  |                             |Программист имеет дело с     |
|В ходе инициализации драйвер |                             |логической организацией      |
|устройства может добавить    |Кэширование диска. В файловых|файла, представляя файл в    |
|себя к цепочке вызова        |системах запросы к внешним   |виде определенным образом    |
|некоторого устройства,       |устройствам, в которых       |организованных логических    |
|определив при этом уровень   |адресация осуществляется     |записей. Логическая запись - |
|последующего обращения.      |блоками, перехватываются     |это наименьший элемент       |
|Подсистема ввода-вывода      |промежуточным программным    |данных, которым может        |
|помещает адрес целевой       |слоем-подсистемой            |оперировать программист при  |
|функции в цепочку вызова     |буферизации. Подсистема      |обмене с внешним устройством.|
|устройства, используя        |буферизации представляет     |Даже если физический обмен с |
|заданный уровень для того,   |собой буферный пул,          |устройством осуществляется   |
|чтобы должным образом        |располагающийся в оперативной|большими единицами,          |
|упорядочить цепочку. По мере |памяти, и комплекс программ, |операционная система         |
|выполнения запроса,          |управляющих этим пулом.      |обеспечивает программисту    |
|подсистема ввода-вывода      |Каждый буфер пула имеет      |доступ к отдельной логической|
|последовательно вызывает все |размер, равный одному блоку. |записи. На рис. 2 показаны   |
|функции, ранее помещенные в  |                             |несколько схем логической    |
|цепочку вызова.              |Функционирование любой       |организации файла. Записи    |
|Внесенная в цепочку вызова   |файловой системы можно       |могут быть фиксированной     |
|процедура драйвера может     |представить многоуровневой   |длины или переменной длины.  |
|решить передать запрос дальше|моделью (см. рис. 3), в      |Записи могут быть расположены|
|- в измененном или в         |которой каждый уровень       |в файле последовательно      |
|неизмененном виде - на       |предоставляет некоторый      |(последовательная            |
|следующий уровень, или, если |интерфейс (набор функций)    |организация) или в более     |
|это возможно, процедура может|вышележащему уровню, а сам, в|сложном порядке. В файловых  |
|удовлетворить запрос, не     |свою очередь, для выполнения |системах ОС UNIX и MS-DOS    |
|передавая его дальше по      |своей работы использует      |файл имеет простейшую        |
|цепочке.                     |интерфейс (обращается с      |логическую структуру -       |
|                             |набором запросов)            |последовательность           |
|                             |нижележащего уровня.         |однобайтовых записей.        |
|                             |                             |                             |
|                             |Рис. 3. Общая модель файловой|Рис. 2. Способы логической   |
|                             |системы                      |организации файлов           |
|                             |                             |                             |
|                             |                             |Процессы:                    |
|                             |                             |Способы загрузки программ.   |
|                             |                             |Относительная и абсолютная   |
|                             |                             |загрузка. Оверлеи.           |
|                             |                             |Способы загрузки программ.   |
|                             |                             |Относительная и абсолютная   |
|                             |                             |загрузка. Загрузка           |
|                             |                             |операционной системы.        |
|                             |                             |Определение термина          |
|                             |                             |"процесс". Процессы и        |
|                             |                             |программы. Состояния         |
|                             |                             |процесса. Операции над       |
|                             |                             |процессами.                  |
|                             |                             |Контекст и дескриптор        |
|                             |                             |процесса. Определение термина|
|                             |                             |"процесс". Состояния         |
|                             |                             |процесса.                    |
|                             |                             |Планирование процессов.      |
|                             |                             |Вытесняющие и невытесняющие  |
|                             |                             |алгоритмы планирования.      |
|                             |                             |Синхронизация параллельных   |
|                             |                             |процессов. Проблема          |
|                             |                             |критических участков. Подходы|
|                             |                             |к решению проблемы           |
|                             |                             |(прерывания, семафоры,       |
|                             |                             |сигналы, блокировка).        |
|                             |                             |Cемафоры: определение,       |
|                             |                             |назначение, реализация.      |
|                             |                             |Потоки (нити) управления.    |
|                             |                             |Определение, назначение,     |
|                             |                             |состояния, операции.         |
|                             |                             |                             |
|                             |                             |Устройства ввода-вывода,     |
|                             |                             |файловая система:            |
|                             |                             |Программное и аппаратное     |
|                             |                             |обеспечение устройств        |
|                             |                             |ввода-вывода.                |
|                             |                             |Файловая система. Файлы с    |
|                             |                             |точки зрения пользователя и  |
|                             |                             |системы. Логическая          |
|                             |                             |организация файла.           |
|                             |                             |Файловые системы. Общая      |
|                             |                             |структура и функционирование.|
|                             |                             |                             |
|                             |                             |Примеры организации файловых |
|                             |                             |систем.                      |
|                             |                             |                             |
|                             |                             |Аппаратная поддержка         |
|                             |                             |операционных систем:         |
|                             |                             |Механизм прерываний          |
|                             |                             |процессоров семейства i80x86.|
|                             |                             |                             |
|                             |                             |Устройство процессоров       |
|                             |                             |i80x86. Назначение и         |
|                             |                             |традиционное применение      |
|                             |                             |регистров.                   |
|                             |                             |Кодогенерация для языков     |
|                             |                             |высокого уровня: базовые     |
|                             |                             |блоки и способы адресации    |
|                             |                             |структур данных.             |

-----------------------
серверы ОС

микроядро

ядро

пользовательский
привелигерованный

пользовательский
привелигерованный

Утилиты                       приложения

Утилиты                       приложения

микроядерная архитектура

Классическая архитектура

серверы ОС

микроядро

ядро

пользовательский
привелигерованный

пользовательский
привелигерованный

Утилиты                       приложения

Утилиты                       приложения

микроядерная архитектура

Классическая архитектура

серверы ОС

приложения

Реализация системного вызова

                                  файловый

                                    сети

                                  процессов

                                      …

Пользовательский
привелигерованный

                                          микроядро

Граф состояний процесса в многозадачной среде

готовность

ожидание

выполнение

а)

готовность

ожидание

выполнение

б)

готовность

ожидание

выполнение





смотреть на рефераты похожие на "Операционные системы (шпаргалка) "