Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Атцовская шпора по ОСям.doc
Скачиваний:
12
Добавлен:
27.09.2019
Размер:
1.27 Mб
Скачать
  • Задачи производители – потребители.

    Необходимо согласовать работы двух процессов при обмене сообщениями таким образом, чтобы удовлетворить следующим требованиям:

    • выполнить требования задачи взаимного исключения;

    • учитывать состояния области памяти: попытка записи сообщения в память должна быть блокирована, если не считано предыдущее сообщение или если его там нет. При этом процессы должны быть оповещены о невозможности передачи сообщения.

    1. Задача читатели – писатели.

    Могут быть установлены приоритеты как для читателя, так и для писателя. Если установлена приоритетность писателя, то он осуществляет запись, решает задачу на основе взаимного исключения: он исключает и писателей, и читателей. Если приоритет читателя, то читатели могут исключить и тех, и других или только писателей.(эта задача наиб часто решается при построении файловых систем).

    1. Задачи кругового распределения ресурса («обедающие философы»)

    Задача состоит в том, что нужно упорядочить действия процесса по захвату ресурсов во избежание возможных блокировок одних процессов другими.

    Могут возникнуть 2-е опасности:

    1. Возникновение тупиковой ситуации.

    2. Возникновение ситуации голодания.

    Чаще всего механизмы имеют программно-аппаратную форму синхронизации.

    Вопрос 8. Синхронизация параллельных процессов, Механизмы синхронизации. Аппаратная и программная реализация взаимоисключений. Семафорные примитивы Дейкстры.

    Механизмы синхронизации.

    Эти механизмы имеют аппаратно- программную форму. Средства синхронизации, имеющие машинно- ориентированный характер и требующие специальных программ, называются низкоуровневыми. Средства синхронизации, реализованные в виде программной системы и предназначенные для решения конкретных задач синхронизации, называются высокоуровневыми.

    Реализация задачи взаимного исключения.

    Аппаратно: блокировка памяти (нет доступа 2 процессам к одной ячейке), запрещение прерывания (процесс, который использует критический ресурс, блокирует обработку всех прерываний (снятие задачи) и никакой другой процесс не развивается), проверка и установка (TS (test-set) ).

    «-» низкая эффективность, не гибкий механизм мешает мультипрограммированию.

    Программно: на практике используют двухуровневую схему реализации взаимного исключения: вводится специальная переменная – переменная состояния. Доступ к этой переменной имеют все процессы, использующие данный ресурс. Она указывает на состояние ресурса (занят/свободен). Переменная состояния является критическим ресурсом, для пользования которым надо решать задачу взаимного исключения.

    Задача взаимного исключения решается в 3 этапа:

    1. Выполняется вспомогательный критический интервал, при котором блокируется прерывание. В этом критическом интервале анализируется значение переменной состояния; если переменная состояния указывает на незанятость основного критического ресурса, то переходят ко второму этапу.

    2. Занятие основного критического ресурса, при этом нет необходимости блокировать прерывания.

    3. Выполняется вспомогательный критический интервал, при этом блокируется прерывание, состояние переходит в свободное.

    Если на 1-ом этапе обнаруживается, что критический ресурс занят, то возможны 2 решения:

    • режим занятого ожидания (проверка через определенный промежуток времени, не освободился ли ресурс)

    • режим пассивного ожидания: строится очередь процессов к данному ресурсу, в состав механизма синхронизации включаются некоторые средства для управления этой очередью. Все это осуществляется на уровне ОС.

    Проверка и установка TS- является аппаратно поддерживаемой составной командой.

    Выполняются команды:

    1. Вводится специальная переменная, которая называется- блокирующая переменная ресурсов( 0- свободен, 1- занят).

    2. Перед входом в критическую секцию процесс выполняет команду TS:

    1. циклически проверяется состояние блокирующей переменной.

    2. если Test F(D)=0 –то Set F(D)=1 устанавливается в 1 и выполняется критический интервал, после выполнения критического интервала устанавливаем F(D)=0.

    Test Set- неделимые примитивы.

    В системе команд многих процессоров предусмотрены единые неделимые команды анализа и присвоения значения логической переменной - BIC,STR, BTS (Pentium). Если соответствующих команд в составе процессора нет, то они реализуются в рамках ОС путем организации примитивов с помощью запретов.

    Программная реализация взаимного исключения.

    • семафоры

    • мониторы

    • рандеву

    • программные каналы

    Семафоры (семафорные примитивы Дейкстры).

    Семафор- это переменная специального вида (S), которая доступна параллельным процессам для проведения только 2-ух операций: P(S) и V(S) операций.

    P(S) ( закрытие семафора)

    V(S) (открытие семафора)

    Эти операции являются неделимыми примитивами.

    Три основных класса семафоров:

    1. Двоичный (S=0 или S=1)

    2. Целочисленный (S= n, n- натуральное или S=0)

    3. Любой целочисленный( S= z, z- целое, в т. ч. и отрицательное)

    1) Выполнение P(S) – значение семафора S уменьшается на 1:

    if S>0 S=S-1 - переход к следующей команде(операции);

    if S=0 - процесс блокируется и становится в очередь ожидания к семафору S.

    Значение S указывает на то, сколько может быть выполнено процессов.

    if S<0 - равно количеству процессов, блокированных по данному семафору.

    2) V(S)

    if S=0 , то семафор S предоставляется следующему процессу из очереди ожидания .

    else S:=S+1

    Достоинства семафоров.

    1.Простота. 2. независимость от числа синхр-ных процессов. 3. отсутствие активного ожидания.

    Недостатки семафоров.

    1. не наглядны(не указ-ет непосредственно на то правило, кот-е реализует) 2. При сложном проц достаточно сложны, не указ-ют на синхр процесс.

    В простейшем случае используется двоичный семафор. Если на время работы процесса к некоторому ресурсу нужно закрыть доступ, то выполняется P(S), а по окончании работы процесса выполняется любой оператор.

    Пример исп-я семафора- mutex.

    1) mutex – семафоры взаимного исключения, простейший двоичный семафор, который находится в двух состояниях: отмеченное и неотмеченное .

    Если процесс становится владельцем объекта mutex, то он переводится в неотмеченное состояние, а когда процесс его возвращает – в отмеченное состояние.

    Каждый mutex имеет собственное имя.

    Для работы с mutex-ами исп-ся след функции:

    • создание mutex (при этом создаётся его имя. Mutex может наследоваться, т.е. передаваться потомкам, для этого и сущ-ет его имя)

    • открытие mutex

    • ожидание события mutex

    • освобождение mutex

    2) Монитор. (мониторы синх-ии процессов (мониторы Хоара))

    Монитор- набор разделяемых переменных и повторно входимых процедур доступа к ним. Они (эти процедуры) образуют программу планировщика. Каждый раз, когда процесс хочет получить в распоряжение ресурс, он обращается к процессу-планировщику(монитор), который имеет переменные, указ-е на состояние соответ-го ресурса (информацию о доступности и недоступности ресурса) и выделяет или не выделяет ресурс. Этот планировщик и есть монитор. К планировщику может обратиться только один процесс- остальные стоят в очереди. Т. обр. решается задача взаимного исключения и синхронизации процессов. Сущ-ют различные алгоритмы организации реализации схем мониторов.

    3) Рандеву.

    Рассматривается задача межпроцессионной связи и синхронизации, т.е. сущ-ют 2-а процесса Pa и Pb.

    Pa должен передать данные Pb. Для осущ-я передачи оба процесса должны выразить готовность для передачи сообщения. Эти сигналы могут не совпадать по времени. Тогда ждут ответного сигнала о принятии сообщения. После передачи сообщения процессы продолжают своё выполнение.

    1. Программные каналы (транспортёр).

    Программные каналы- средство, реализ-е во многих ОС (UNIX, Windows).

    Как информационная структура и средство синхронизации канал описывается именем, размером и 2-мя указателями: указатели на первый и последний элементы канала. В результате операций записи и чтения указатели будут перемещаться. Массив представляет собой кольцо: указатель после последнего элемента становится в начало. Канал представляет собой системный ресурс. Для того, чтобы использовать канал, процесс должен запросить его у системы. Сущ-ют ф-ии создания канала, записи в канал и чтения из канала. Эти ф-ии имеют соответ-ий набор параметров.

    Реализация взаимоисключений в ОС Windows NT

    Вопрос 9-10.

    9. Дедлок( тупиковая ситуация). Условия возникновения. 10. Дедлок( тупиковая ситуация). Стратегии предотвращения и обхода дедлоков.

    Deadlock – тупиковая ситуация. Возникает в том случае, когда даже при наличии ресурсов ни один процесс системы не выполняется.

    Условия возникновения дедлока:

    1. Условие взаимного исключения, при котором процесс монопольно владеет ресурсом.

    2. Условие ожидания. Процесс, запросивший ресурс, будет ждать, пока запрос не будет удовлетворен, удерживая при этом те ресурсы, которые ему уже выделены.

    3. Отсутствие перераспределения. Никакие ресурсы у процесса отнимать нельзя, если они ему уже выделены.

    4. Условие кругового ожидания. Существует замкнутая цепь процессов, каждый из которых ждет ресурс, удерживаемый процессом-предшественником.

    Решение проблемы дедлока.

    1. Стратегия предотвращения тупиков.

    Применяется, когда потери от тупиков очень высоки. Позволяет исключить саму возможность взаимоблокировки. Методы предотвращения блокировок можно разбить на 2 класса:

    1. косвенный метод – предотвращение возникновения одного из первых 3-ёх условий возникновения дедлока;

    2. прямой метод – предотвращение 4-го условия- циклического ожидания.

    • Условия взаимного исключения можно подавить неограниченным выделением ресурсов – это слишком дорого.

    • Условия ожидания можно подавить, предварительно распределяя ресурсы. В этом случае ресурсы выделяются процессу только все сразу. В этом случае процессу нужно заранее сформулировать запрос на все необх-е ресурсы, это возможно только при статическом выполнении запроса.

    • Отсутствие перераспределения подавляется отниманием операционной системой ресурсов.

    • Условие кругового ожидания можно подавить, предотвращая образование цепи: метод иерархического выделения ресурсов. Все ресурсы образуют иерархию; процесс, запросив ресурс на определенном уровне иерархии, после этого может запросить ресурс только с более высокого уровня. Процесс может освободить ресурс на данном уровне только после освобождения всех ресурсов на более высоких уровнях. Кругового ожидания не будет.

    Стратегия обхода дедлоков.

    Можно доказать, что если совокупность процессов находится в неопасном состоянии (отсутствуют дедлоки), то существует, по крайней мере, одна последовательность неопасных состояний процесса. Предполагает, что всегда анализируется, не приводит ли выделение ресурса к тупику. Решение данной задачи – алгоритм банкира. Алгоритм позволяет обходить опасные состояния.

    Банкир клиентам выдает сумму денег. Каково должно быть поведение банкира, чтобы он не попал в тупиковую ситуацию: клиент пришёл за деньгами, а их у банкира нет? Поэтому: когда поступает запрос на сумму от клиента, банкир оценивает, может ли он после выдачи кредита удовлетворить хотя бы следующему минимальному запросу. Ограничение: мы должны заранее знать верхние границы мах запросов (границы запроса на ресурс).

    Стратегия распознавания дедлока.

    Мы должны постоянно проверять, не образуется ли замыкание цепи запросов. Этот алгоритм может выполняться при каждом запросе ресурсов или через некоторый заданный промежуток времени (дорогостоящие вычисления ОС).

    Методы восстановления системы после возникновения дедлока.

    1. Reset- принудительное завершение всех процессов, работы ОС и запуск ее заново;

    2. Завершение процессов по одному, лучше всего завершать процесс, который находится в дедлоке;

    3. Подождать, пока система сама предотвратит дедлок.

    Вопрос 11-12

    11. Управление ресурсами. Дескрипторы воспроизводимых и потребляемых ресурсов. Операции над семафорами ресурсов. Распределение ресурсов ос. Задачи распределения.

    12. Дисциплины распределения ресурсов, используемые в ОС. Дисциплины формирования очередей на ресурсы и дисциплины обслуживания очереди. Централизованная и децентрализованная схемы распределения ресурсов.

    Управление ресурсами в ОС.

    Ресурсы делятся на:

    1. воспроизводимый (повторно используемый, системный)

    2. потребляемый (после потребления изымается из сферы обращения)

    Для описания ресурсов в системе используются соответ-е дескрипторы ресурсов.

    Каждый воспроизводимый ресурс требует для описания 3-и компоненты:

    1. Опись(включает число и идентификацию доступных ресурсов)

    2. Список ожидания (либо ссылка на него)(список процессов, ждущих определённое сообщение; с неудов-ми запросами на данный ресурс)

    3. Указатель на распределитель ресурсов

    Для потребляемых ресурсов дескриптор должен содержать:

    1. Опись(содержит список сообщений, которые были выданы, но не были получены)

    2. Список ожидания (либо ссылка на него)(в нём- блокированные процессы с неудов-ми запросами на данный ресурс)

    3. Указатель на распределитель ресурсов

    И воспроизводимые, и потребляемые ресурсы имеют одно общее свойство: процесс может быть заблокирован благодаря неудовлетворенному запросу на такой ресурс.

    Логический ресурс – это то, что может вызвать переход процесса в логически-блокируемое состояние (семафоры ресурсов – аналогичное понятие). Для описания ресурсов создают дескрипторы ресурсов (для каждого).

    Основные элементы дескриптора(ещё раз на всякий случай)

    1. Информация об идентификаторе.

    2. Тип (воспроизводимый или потребляемый).

    3. Имя процесса, создавшего ресурс.

    • Опись доступности. Содержит ссылки на списки доступных элементов ресурсов или список единиц потребляемого ресурса.

    • Список ожидающих процессов. В нем находятся все процессы, заблокированные на данном семафоре (имя и область памяти для данного ресурса).

    • Указатель на распределитель ресурса (имя процесса, который отвечает за использование данного ресурса).

    Операции над семафорами ресурсов.

    • Создать семафор ресурса. Эта операция создает дескриптор ресурса и помещает его в списки ОС.

    • Уничтожить семафор. Дескриптор удаляется.

    • Запросить элементы семафора. Процесс выдает команду «запросить». Процесс заносится в список ожидания и вызывается распределитель ресурсов.

    • Освободить элементы семафора ресурса – добавляет элементы сообщения в список (?).

    Распределение ресурсов ОС

    2-е основные схемы:

    1. Централизованное распределение ресурсов.

    2. Децентрализованная схема распределения ресурсов (на основе соглашений между процессами, без монитора)

    Статическое и динамическое распределение ресурсов.

    1. Статическое: ресурсы распределяются процессу в момент его рождения и являются постоянными для процесса всё время его сущ-я(такая схема соот-ет наиб быстрому развитию процесса).

    2. Динамическое: ресурсы выдаются процессу по мере его развития(соот-ет наиб эффективному использованию ресурсов и минимизации простоев).

    На планировщик ресурсов поступает поток запросов на соответствующие ресурс. Формируется очередь процессов и существуют соответствующие дисциплины формирования очереди процессов. Заявки могут содержать требуемое время ожидания. Приоритеты, которые используются при распред-ии ресурсов: выбор заявок производится по правилам, которые называются дисциплинами обслуживания. Время обслуж складывается из врем ожид + время использ рес-сов(время нахожд в очереи ресурсов, случ хар-р). Т.обр основными дисциплинами распределения ресурсов являются дисциплины формирования очередей.

    Дисциплина распределения ресурсов.

    Различают дисциплины формирования очередей на ресурсы и дисциплины обслуживания очереди (правила извлечения процесса из очереди). Чаще всего используются приоритетные дисциплины.

    Дисциплины формирования очередей (совокупность правил размещен процессов в очереди к ресурсам)делятся на 2 класса:

    1. статические – приоритет назначается до формирования;

    2. динамические – приоритет в процессе формирования очереди.

    Дисциплины обслуживания очереди (правило извлечен процесса из очереди с предоставлением ему ресурсов) разделяют на множество классов. Наиболее часто:

    1. бесприоритетные

      • линейные

    1. FIFО обслуживание в порядке поступления (по времени рождения запроса на ресурс);

    2. LIFO в порядке, обратном времени поступления;

    3. случайный выбор

      • циклические

    4. RR круговой, циклический алгоритм (процессы выстраиваются в круг);

    5. FB круговой многоочередные дисциплины – строится несколько очередей.

    6. смешанный RR+FB

    1. приоритетные

    • с фиксированным приоритетом: относительным, абсолютным, адаптивный алгоритм

    • с динамическим ожиданием: функция от ожидания или от обслуживания

    Системы распределения ресурсов.(ещё раз)

    1. Централизованная схема распределения, т.е. существует распределитель для каждого ресурса + решение задач синхронизации.

    2. Децентрализованная схема распределения. Распределение ресурсов осуществляется на основе некоторого соглашения между процессами.

    Статические и динамические распределения.

    Статические распределения – ресурсы распределяются процессу до его рождения и являются постоянными. Это способствует наиболее быстрому развитию процесса.

    Динамические распределения – ресурсы выделяются процессу по мере их развития. Позволяет наиболее эффективно использовать ресурс.

    Защита ресурсов.

    Угрозы ресурсам:

    1. Несанкционированный доступ (предотвращается программно).

    2. Нарушение целостности.

    3. Утрата данных.

    4. Злоупотребление ресурсом.

    5. Утечка информации.

    Вопрос 13-15.

    13. Мультипрограммирование. Планирование и диспетчеризация процессов при МП. 14. Мультипрограммирование. Дисциплины диспетчеризации для невытесняющей и вытесняющей многозадачности. 15. Мультипрограммирование. Приоритетные и многоочередные дисциплины диспетчеризации.

    Мультипрограммирование.

    Характеристические состояния процесса при мультипрограммировании:

    1. состояние планирования ресурсов;

    2. состояние владения ресурсами;

    3. состояние выполнения.

    Единицами планирования и владения являются процессы (или задачи). Единицей выполнения или диспетчеризации являются потоки, либо нити управления. В случае использования потоков или нитей управления, то говорят о многопоточной системе.

    Планирование – выделение ресурсов процессу, кроме выделения фактического процесса, т.е. процессу выделен виртуальный процессор (1 раз). А если выделен фактический процессор, то это диспетчеризация (многократно).

    Варианты многопоточности процессов.

    1. 1 процесс-1 поток (MS-DOS).

    2. Несколько процессов, а в каждом процессе по одному потоку (UNIX)

    3. 1 процесс и в нем несколько потоков управления (среда JAVA).

    4. Несколько процессов и в каждом процессе несколько потоков (Windows 2000, Linux, Solaris).

    Мультипрограммная система – система, которая выполняет несколько потоков одновременно.

    Мультипрограммные ОС реализуют сложные методы управления процессами и ресурсами. Они распределяют ресурсы CPU, ОП, внеш памяти и назначают приоритеты(являются приоритетными системами).

    Планирование процессов МП производит планировщик процессов. Он реализует дисциплины организации очередей ресурсов.

    ОС включает 2-а планировщика:

          1. планировщик верхнего уровня (планировщик) (долгосрочного планирования)

          2. планировщик нижнего уровня (диспетчер) (краткосрочного планирования)

    Планировщик распределяет все процессы, кроме центрального и формирует очередь готовых процессов для диспетчера.

    Планирование верхнего уровня отвечает за выделение виртуальных процессоров, предоставляет ресурс центрального процессора.

    Планирование нижнего уровня- диспетчеризация.

    Планирование выполняется один раз, диспетчеризация- многократно(особенно при режиме квантования).

    Мультипрограммная система – система, которая выполняет несколько потоков одновременно.

    Достоинства и недостатки мультипрограммной системы.

    • Сложность системы.

    • Перемещение процессов с помощью специальных механизмов (требуется).

    • Мультипрограммирование позволяет равномерно загружать ресурсы.

    • Снижает время ожидания ответа в интерактивном времени.

    МП обеспечивается двумя механизмами:

    1. механизм переключения с процесса на процесс;

    2. механизм координации использования ресурсов конкурирующими процессами.

    Два основных компонента МП:

    • Планировщик процессов – создание процессов, выделение ресурсов, завершение процессов.

    • Диспетчеризация – выделение процессора готовому активному процессу. Диспетчер передает управление процессу либо по истечении фиксированного интервала t, либо при возникновении некоторого внешнего события по отношению к данному событию.

    Дисциплины диспетчеризации.

    Различают дисциплины диспетчеризации:

    1. без перераспределения процессов (невытесняющая многозадачность)

    2. с перераспределением процессов (циклические).

    3.Приоритетные дисциплины диспечеризации процессов

    1. Без перераспределения (ОС не забирает процессор у процесса, процесс может освободить процессор только по собственной инициативе)

    1.1. Дисциплина FСFS (первый пришел – первый обслужился) (каждому процессу одинаковая возможность в обслуживании, все имеют одинаковое среднее время ожидания, стоимость реализации невелика )

    Недостатки:

    1. короткий процесс вынужден ждать столько же, сколько и длинный (св-во конвоя)

    2. среднее время ожидания может неограниченно расти по мере приближения системы к 100% загруженности.

    3. с увеличением дисперсии времени выполнения увеличивается время ожидания.

      1. Дисциплина: следующий с кратчайшим заданием sjn (short job next).

    Приоритет- время выполнения.

    Состоит в минимизации общего времени ожидания => среднего времени ожидания. Среднее время ожидания коротких процессов меньше, чем длинных, т.к. появляется приоритет. Для этой дисциплины надо использовать дисциплину гарантированного окончания процесса. В этом случае ОС должна просматривать очередь процессов и повышать приоритет некоторых процессов, перемещая их тем самым в зону выполнения. Растет дисперсия среднего времени ожидания .

    2.Циклические дисциплины (или с перераспределением)

    2.1.Круговой циклический алгоритм rr.

    1. Каждому процессу выделяется некоторый квант времени q, и если к окончанию этого кванта процесс не был заблокирован, то он снимается с процессора с помощью аппаратного прерывания и ставится в конец очереди к процессору до получения следующего кванта q. Процессор предоставляется следующему готовому процессу из очереди.

    + учет старения процессов, увеличивается приоритет коротких.

    Размеры кванта настраиваемы для разных дисциплин обслуживания.

      1. Многоуровневый циклический алгоритм fb.

    Сущ-ет несколько очередей. Есть входная очередь (очередь уровня 1)

    Дисциплины с несколькими очередями – процессы делятся на классы, и каждый класс делится на очереди. Для каждой из очередей – своя дисциплина диспетчеризации.

    (Процессор перевёлся в очередь 2 с более низким приоритетом)

    Низкоприоритетные очереди наз-ся фоновыми.

    2.3.Смешанный алгоритм RR+FB.

    Смешанный алгоритм – каждый из процессов в очереди обслуживается несколько раз, только после этого переводится в следующую очередь.

    Особенности бесприоритетных циклических дисциплин

      1. Обслуживают короткие заявки с неявным приоритетом

      2. Не требуют предварительной инф-ии о времени выполнения

      3. Уменьшение длительности ожидания коротких процессов происходит за счет увеличения длительности ожидания длинных процессов

    3.Приоритетные дисциплины диспечеризации процессов

    Право на внеочередное обслуживание.

    Происходит на основе:

    1.Статических характеристик процесса, задания внешнего статического приоритета (требует ОП).

    2.Динамических характеристик (формир-ся в процессе выполнения)

    3.1.Дисциплины с фиксированным приоритетом.

    Процессы попадают в ту очередь, куда их определили. Приоритеты не меняются.

    Особенность: нет возможности настраивать характеристики в процессе выполнения.

    3.2.Дисциплины с динамическим приоритетом.

    Приоритет меняется в процессе выполнения. Для изменения приоритета используются временные характеристики времени выполнения и ожидания.

    1)Дисциплина: следующий с минимально оставшимся временем SRT.

    Оставшееся время- разность между временем, запрошенным процессом и временем, которое он уже получил.

    Исп-ся для диспетчеризации интерактивных процессов.

    2)Дисциплина: следующий с наивысшим отношением отклика HRRN.

    Для каждого процесса вычисляется отношение отклика: R=(W+S)/S, где

    W- время отклика процесса. S- время обслуживания процесса.

    R=1 , если W=0.

    Чтобы повысить качество обслуживания, нужно повысить приоритет.

    Динамические дисциплины сложнее в реализации.

    Дисциплины с несколькими очередями.

    Процессы делятся на классы и каждый класс обслуживается по-разному.

    Связь процессов с определенной очередью может быть статичной или динамической.

    Статичная – после снятия процесса с процессора, он помещается в ту же очередь, в которой был.

    Динамическая (в другую очередь) – дисциплина с обратной связью; может произойти увеличение или снижение приоритета.

    Гарантии обслуживания

    3 основных способа гарантии обслуживания :

    1.Выделять минимальную долю процессорного времени классу процессов, если хотя бы один процесс готов к выполнению.

    2. Выделять минимальную долю процессорного времени процессу, готовому к выполнению.

    3.Выделять процессу столько времени, сколько ему необходимо(до указанного предела).

    Вопрос 16. Структуры объектных модулей программ. Способы использования объектных модулей.

    Особенности распределения оперативной памяти.

    1. Потребности пользователя опережают возможности системы (памяти не хватает).

    2. Пользователь должен работать не на физическом, а на некотором логическом уровне, который предоставляет более удобные средства для работы с оперативной памятью.

    3. Алгоритм распределения оперативной памяти должен быть согласован с алгоритмом распределения процессов для обеспечения функционирования системы в мультисистеме.

    Структура объектных модулей программ.

    1. Унитарная структура (структура без внешних связей с другими модулями).

    2. С внешними ссылками – модули, которые имеют связи с другими модулями с помощью механизма внешних ссылок.

    3. Сегментная структура – в этом случае модуль(программа) разбивается на некоторые сегменты, каждый из которых хранит в себе часть модуля(программы). Она формируется на этапе компиляции.

    Способы использования объектных модулей программы.

    1. Однократно используемые. В процессе выполнения они портят код, данные. Выполняются однократно, на этапе загрузки.

    2. Многократно используемые.

    • непривилегированные программные модули – обычные программные модули, которые могут быть прерваны во время своей работы; предназначаются для выполнения одного процесса.

    • привилегированные программные модули – модули, которые работают в привилегированном режиме. При отключенной системе прерывания последовательное использование. Структура состоит из 3-х частей: отключение системы прерывания, выполнение тела модуля, включение системы прерывания.

    3. Реентерабельные – дополнительное повторное обращение, которое допускает многократное прерывание и повторный запуск из других процессов. В этих модулях используется сохранение промежуточных вычислений и возврат к ним, когда процесс восстановлен. Сохранение промежуточных вычислений обеспечивается с помощью статических и динамических методов.

    При статическом методе резервируется область памяти, сохраняющая значение для фиксированного числа вычислительных процессов.

    При динамическом методе структура модуля следующая:

          • выполняется привилегированный модуль, запрашивающий в системе блок ячеек для сохранения результата;

          • выполняется основное тело реентерабельного модуля, которое моет быть прервано;

          • привилегированный модуль, который освобождает блок ячеек, который мы запросили вначале.

    4. Повторно входимые программные модули – состоят из секций. Каждая секция представляет собой привилегированный программный модуль. Секцию прервать нельзя. Но при передаче управления в следующую секцию модуль может быть прерван. Модули допускают повторное параллельное использование, но прерывать их можно только в строго определенных точках (при переключении между секциями).

    Вопрос 17. Отображение программных модулей на оперативную память. Частные случаи отображения.

    Отображение программных модулей на ОП.

    Каждая программа на исходном языке имеет неупорядоченное пространство имен: имена переменных, секций, входных точек. Имя пр-ву имен присваивает программист.

    Оперативная память – это упорядоченное множество ячеек. Количество этих ячеек ограничено и фиксировано. Системное программное обеспечение должно связать каждое имя исходного пространства имён с ячейкой ОП.

    Отображение осуществляется в 2 этапа:

    1. Системное программирование на основе логических или символьных имен формирует виртуальное адресное пространство программы, т.е. множество допустимых двоичных адресов. Может иметь как двоичную форму, так и символьную. Это виртуальное адресное пространство не зависит от физической памяти, а зависит от системы программирования и архитектуры микропроцессора, оно создаёт адреса модулей, которые программа использует при своём выполнении. Осуществляется компоновка адресного пространства.

    2. 2-ой этап производит ОС. ОС с помощью программных модулей управляет памятью, производит отображение виртуального адресного пространства на физическую память.

    Частные случаи отображения.

    1. Виртуальное адресное пространство программы тождественно адресам физической памяти ОП (абсолютно двоичная программа, нет отображения, т.к. адреса уже связаны с ОП).

    2. Виртуальное адресное пространство тождественно пространству исходных имен программы (схема интерпретации).

    Вопрос 18-19.

    18. Управление оперативной памятью. Свопинг, смежное и несмежное размещение процессов. 19. Управление оперативной памятью. Страничная, сегментная и сегментно-страничная организация оперативной памяти.

    Методы управления памятью.

    1. Swapping (свопинг). Этот метод управления основан на том, что процессы, располагаются до выполнения во внешней памяти. При выделении процессора процессу, он перемещается в оперативную память (swap in). Как только процесс забирает процессор, процесс помещается во внешнюю память (swap out) – выгружается из ОП (полный свопинг). Исп-ся так же модифицированный свопинг, который предполагает, что свопинг начинается только в том случае, когда число процессов в ОП превышает какое-то число, заданное ОС.

    1. Смежное размещение процессов в ОП. В этом случае для каждого процесса выделяется непрерывный участок адресного пространства.

    2.1.Простейший случай – однопрограммный режим, когда в ОП находится только одна программа, после её выполнения память освобождается.

      1. 2-ой случай – мультипрограммирование с фиксированным числом разделов(MFT).

    В этом случае ОП разбивается на разделы фиксированного размера и в каждый раздел загружается только один процесс.

    M FT

    Этому методу присуща фрагментация (внутренняя и внешняя). Внутренняя: размер процесса меньше раздела ОП;

    Внешняя: размер процесса больше раздела ОП.

    2.3. Мультипрограммирование с переменными разделами(MVT). В этом случае границы раздела не фиксируются и вначале фрагментации нет. Те же режимы для внутренней и внешней фрагментации.

    2.4.Мультипрограммирование с переменными разделами и уплотнением памяти. В этом случае используется перемещение процессов по ОП. Перемещает чтобы не было свободных областей. Фрагментации не будет.

    1. Несмежное размещение процессов. Процесс разбивается на множество частей, которые располагаются в различных необязательно смежных участках адресного пространства.

    3.1.При сегментном способе организации ОП процесс разбивается на ряд сегментов, нет условия равенства. Они могут быть разными. Логический адрес ячейки памяти при сегментной организации состоит из двух частей: номер сегмента S и смещение ячейки в пределах сегмента d. ОС для каждого процесса ведёт таблицу сегментов процесса.

    Для управления памятью в этом случае должен быть регистр таблицы сегментов, который содержит адрес таблицы сегментов. Она даёт адрес строки в таблице, которая соот-ет данному сегменту.

    Сегментной организации присуща внутренняя и внешняя фрагментация.

    Достоинство: можно разбить процесс на логические части.

    Для каждого процесса своя таблица сегментов.

    3.2.Страничная организация памяти ОП.

    Адресное пространство ОП и внешней памяти, в котором размещается процесс, разбивается на блоки фиксированного размера, которые разбиваются страничными рамками. Логическое адресное пространство программы разбивается на блоки фиксированного размера, которые называются страницами. Размеры страниц и страничных рамок совпадают. Процесс в этом случае помещается в ОП постранично. Каждая страница перемещается в любую страничную рамку. При этом внешняя фрагментация полностью ликвидируется, а внутренняя ограничивается размерами последней страницы.

    Адрес состоит из 2-ух частей: 1.Адрес страницы. 2. Смещение внутри страницы(номер ячейки внутри страницы).

    В ОС используется страничная организация памяти (в соответствии с возможностями процессора Intel 80386 и более новых), страницы выделяются по требованию приложения. Система использует 32битную, “плоскую”, линейную модель памяти. Каждому приложению выделяется уникальное виртуальное адресное пространство размером в 4Гб. Верхние 2Гб адресного пространства используются ОС и приложением совместно, а нижние 2Гб принадлежат исключительно приложению. Это виртуальное адресное пространство разделено на равные блоки – страницы. Размер каждой страницы – 4096 байт (4Кб), выбор страниц такого размера обусловлен архитектурой микропроцессоров семейства Intel, которые имеют аппаратную поддержку страниц такого размера.

    Страницы памяти могут быть выгружены из физической памяти в файл подкачки на диске. Как только процесс снова затребует выгруженные страницы, ОС помешает их с диска в физическую память.

    Менеджер виртуальных машин(VMM) обеспечивает преобразование виртуальных (логических) адресов страниц памяти каждого приложения в реальные физические адреса в оперативной памяти компьютера. Таким образом от приложения скрыта реальная организация и распределение памяти в системе. Каждый поток запущенного процесса имеет свободный доступ к памяти, выделенной всему процессу, но мне может получить доступ к областям памяти других процессов.

    В среднем до 30% инструкций каждого приложения – это инструкции доступа к памяти, но преобразование виртуальных адресов в физические осуществляется программно, этим и объясняется довольно медленная работа ОС на казалось бы относительно быстрых микропроцессорах (Pentium 100, 133, 166, 200…). Но такая схема работы ОС вполне оправдана, так как система работает значительно устойчивее и надежнее.

    3.3.Сегментно-страничная организация.

    Позволяет сочетать преимущества обеих организаций (сегментная – распределение процесса на отдельные модули, страничная – позволяет уменьшать фрагментацию). Разбиение на сегменты, которые состоят из страниц. Адрес состоит из 3-ёх полей: 1.Адрес сегмента. 2.Адрес страницы. 3. Смещение внутри страницы(номер ячейки внутри страницы). Для каждой таблицы сегмента строится таблица страниц сегмента.

    Вопрос 20-21.

    20. Технология виртуальной памяти. Алгоритмы замещение страниц. 21. Двухуровневая страничная организации виртуальной памяти.

    Виртуальная память.

    ВП – технология, которая позволяет выполнять процессы, которые лишь частично располагаются в ОП. Это позволяет располагать больше программ, размеры которых выше физической памяти. ВП чаще всего реализуется на базе страничной организации памяти, совмещенной со свопингом страниц. Каждому процессу предоставляется соответствующее непрерывное адресное пространство, которое включает как ОП(valid), так и ВП (внешнюю память-invalid).

    Обращение к invalid- стр. недостаточность. Тогда ос загружает необх стр в оп – valid.

    Она разбивает на страницы или сегменты, которые могут находиться как в ОП, так и во внешней памяти. Могут использоваться методы, рассмотренные выше. Только каждая строка должна дополняться полем «бит присутствия», который указывает, где находится страница (ОП или внешняя память). Если при вычислении адреса окажется, что страница находится во внешней памяти, то возникает событие – страничная недоступность, которая вызывает прерывание процесса и передачу управления ОС. В функции ОС входит загрузка требований страницы в ОП.

    Страницы, если не в ОП, то в области свопинга. Для этой области используется высокоскоростное устройство – Swapdevice. В большинстве систем для каждого процесса используется одна глобальная таблица страниц. При этом при большом размере процессов таблица страниц может быть достаточно большой.

    т.е. в таблице 222 записей. Они могут находиться целиком или частично в виртуальной памяти.

    Для организации хранения страниц в виртуальной памяти и минимизации страниц используется двухуровневая страничная организация виртуальной памяти.

    Достаточно хранить каталог, можно организовать Х*У страниц. Если каждая строка в каталоге КТС 4 б.

    А размер КТС - 4 Кб, то число строк в КТС = 1024 (Х)

    Число страниц Х*У.

    Если теперь умножить на размер страницы в ТС- 4 кБ, то получим 4 Гб ВП.

    Алгоритм замещения страниц.

    ОС при страничной недостаточности прерывает процесс. Может оказаться, что все страничные рамки заняты мы должны выполнить операцию свопинга.

    Алгоритмы.

    1. Уменьшение на 1 количества мультипрограммной смеси.

    2. Приостановка процесса, который требует страницы до тех пор, пока они не освободятся.

    3. Замещение страниц

      1. замещается та страница, которая дольше всего находится в ОП (наиболее «старая» страница);

      2. замещается та страница, на которую нет ссылок на протяжении большого периода времени.

      3. Случайно удалённая страница ОП помещается в свопинг файл, а из swap может потом подгрузиться.

      4. По вероятности использования.

      5. Удаление по приоритетам (наиболее эффективно)

    Вопрос 22. Задачи программного обеспечения ввода/вывода(в/в). В/в без использования и с использованием прерываний. Прямой доступ к памяти. Синхронный и асинхронный в/в.

    Управление вводом/выводом.

    Ввод/вывод – обмен данными между процессом и внешним устройством.

    Задачи ПО ввода/вывода.

    1. Обеспечение независимости от устройств, т.е. мы можем писать программы без предварительного указания устройств, способные получать сообщения ввода/вывода без дополнительных устройств.

    2. Единообразное именование. Имя устройства или файлов должно быть текстовой строкой или числом(не должно зависеть от внешнего устройства).

    3. Обработка ошибок ввода/вывода должна быть реализована как можно ближе к аппаратному уровню (повторная запись или прочитывание).

    4. Способ переноса данных – синхронный (блокирующий, супервизор заканчивает операцию -процесс активизируется) либо асинхронный(после запуска программы ввода/вывода происходит прерывание, процессор переключается на другие виды задач (в режиме мультипрограммирования)), управляющий прерываниями.

    5. Буферизация данных. Часто данные, поступающие в устройство вв/выв, не могут быть сразу отправлены адресату т.к. может происходить:.

    - Предварительный анализ

    - в устройствах реального времени важно время поступления данных, необходимо согласовать время внешних устройств со временем считывания и записью в ОП.

    Чаще всего внеш устройства медленнее, чем ОП и процессор. t не совпадают. Используется буферизация (однако это приводит к понижению производительности).

    1. Задача выделенных устройств и устройств коллективного пользования .Отдельные устройства в/в могут использоваться несколькими пользователями, это не должно приводить к конфликтам(устройства коллективного пользования). Выделенные устройства используются в монопольном режиме (запрос- использование- освобождение). ОС обеспечивает коллективный или выделенный доступ

    Уровни ввода – вывода.

    1. Верхний уровень. ОС предоставляет приложению высокоуровневый интерфейс, позволяющий работать с созданными системами для некоторых виртуальных устройств. Этот интерфейс зависит от ОС.

    2. Нижний уровень. Обеспечивает интерфейс (управление) с аппаратным обеспечением.

    1. Языковой интерфейс. Предоставляется на уровне языка (программа производителя).

    Запрещается прямое программирование устройств ввода/вывода. Ввод/вывод осуществляется путем запроса сервисом ОС с помощью системных вызовов.

    1. Системные вызовы. Отделяет пользовательский уровень от ОС.

    Независимый от языка интерфейс ввода/вывода.

    1. Уровень ОС.

    Управления ввода/вывода определяет тип устройства, конкретно определяет модуль управления устройством (драйвер).

    Эти 3 модуля составляют процесс организации ввода/вывода на прикладном уровне, который предполагает переключение привилегий (либо пользователь, либо ОС) и некоторые команды для работы с буфером. Для организации ввода/вывода есть область буфера для данного типа устройств.

    Драйвер.

    Должен быть сертифицирован (автоматизирован), т.е. должен знать все детали устройства. Этот процесс работает с теми же командами, что и прикладной процесс. 1 процесс на 1 устройство.

    1. Интерфейс ввода/вывода представляется в виде набора процедур, вызываемых приложением управления для выполнения операций ввода/вывода.

    В разных языках программирования интерфейс разный.

    1. ОС предоставляет высокоуровневый интерфейс системных вызовов, который позволяет работать с созданными системой виртуальными устройствами, управление которыми намного проще, чем реальными.

    2. Программно-аппаратный интерфейс внешнего устройства. Буферы являются критическими ресурсами в отношении к прикладным процессам и внешним программам. Через него данные посылаются от некоторого процесса в адрес внешнего устройства (вывода на внешнее устройство) либо от внешнего процесса передается программному.

    Получить буфер, освободить буфер. Записать в буфер и считывать байты из буфера. Необходимо обеспечивать синхронизацию процесса, т.е. драйвер должен иметь возможность получать данные из буфера, не дожидаясь, пока все данные не поступят из прикладного процесса в буфер (при выводе) и, с другой стороны, прикладной процесс должен иметь возможность получить данные из буфера частями.

    Технология ввода – вывода(с/без прерываний).

    1. Способы ввода/вывода. Существует 3(2!по лекц) основных способа: 2 связанных с использованием центрального процессора и 1 без.

    Программируемый ввод/вывод с режимом опроса готовности (без использования системы прерываний). Когда процессор встречает команду ввода/вывода, то он выполняет ее и передается информация соответствующим модулям управления ввода/вывода. После окончания ввода/вывода соответствующие аппаратно программируемые модули ввода/вывода устанавливают некоторые соответствующие биты в регистрах состояния ввода/вывода – ввод/вывод завершен. В этом случае процессор сам контролирует окончание ввода/вывода, проверяя соответствующие регистры состояния ввода/вывода.

    1. Режим обмена с прерыванием. В этом случае после выдачи очередной команды по управлению вводом/выводом происходит прерывание процесса. После выполнения ввода/вывода устройство ввода/вывода генерирует прерывание, сигнализирующее о завершении операции. В этом случае асинхронное управление. Для того, чтобы не потерять связь с устройством в/в чаще всего запускается некоторый отсчет времени, в течение которого устройство должно обязательно выполнить команду в/в и выдать сигнал запроса на прерывание (time out). Если прерывание не поступило, то ОС считает, что связь с устройством потеряна и сигнализирует об этом прикладному процессу.

    2. Прямой доступ к памяти. В/в осуществляет специальное устройство, которое дублирует функции ЦП по в/в – это устройство (канал) прямого доступа (аппаратный способ).

    Схема работы. Когда процессору необходимо произвести операцию чтения/ записи блока данных, он направляет запрос к модулю канала прямого доступа и передает ему информацию, необходимую для организации в/в. После этого происходит прерывание процесса и передача процессору следующего активного процесса. Модуль DMA, минуя процессор, передает данные непосредственно в ОП (или считывает из ОП). После выполнения операции модуль DMA выставляет сигнал прерывания для передачи управления ЦП. Таким образом, ЦП работает только в начале и в конце выполнения операции.

    Синхронный и асинхронный ввод/вывод.

    Различают синхронное и асинхронное управление в/в.

    Синхронный в/в: программируемый в/в (в/в в режиме опроса готовности)

    Когда процессор встречает команду в/в, он выполняет эту команду, передавая сигналы устройству в/в. Устройство в/в выполняет операцию и по окончанию устанавливает соответствующие флаги. Никаких сообщений процессору устройство не передает. Процессор должен сам опрашивать все устройства на признаки окончания в/в. Программное обеспечение ОС разрабатывается т.о., что процессор сам осуществляет управление в/в. В набор используемых команд входят команды управления внеш. устройством, проверки состояния, передачи.

    Асинхронный в/в: с использование прерываний. После того как процессор выдал команду на обмен данными, происходит прерывание процесса. После выполнения в/в устройство в/в генерирует прерывание, которое сигнализирует об окончании в/в. При выполнении в/в связь с устройством в/в практически отсутствует. Чтобы не потерять связь с устройством, выполняется специальная операция – установка TimeOut’а (максимальный интервал времени, в течение которого устройство должно выдать прерывание об окончании в/в). Если в течение этого времени прерывание не поступило, в/в прошел неудачно.

    Драйверы, которые осуществляют в/в асинхронный и синхронный – отличаются. Синхронные драйверы проще. Асинхронные – многоуровневые, состоящие из нескольких секций. Используются и те и другие. Драйверы Windows – синхронные.

    Прямой доступ к памяти

    Использует канал прямого доступа. После передачи данных канал (DMA) Вырабатывает прерывание. Т.образом ценральный процессор участвует в начале и в конце операции.

    Системные таблицы ввода/вывода.

    Для организации в/в каждая ОС имеет свои таблицы в/в. Состав может меняться в зависимости от ОС.

    1. Таблицы оборудования (внешних устройств). Unit Control Block (UCB) – каждый элемент должен создать информацию о конкретном устройстве (тип, модель, имя, адреса каналов в/в, указание на управляющие драйверы, адреса буферов для в/в, информация о time out ах и др.)

    2. Таблицы логических имен содержат логические имена устройств (для независимости от оборудования), для реализации принципов виртуализации. Связана с таблицей оборудования.

    3. Таблица прерываний. Каждому устройству определенный номер прерывания.

    Вопрос 23. Уровни управления вводом-выводом. Буферизация и синхронизация данных.

    Уровни ввода – вывода.

    1. Верхний уровень. ОС предоставляет приложению высокоуровневый интерфейс, позволяющий работать с созданными системами для некоторых виртуальных устройств. Этот интерфейс зависит от ОС.

    2. Нижний уровень. Обеспечивает интерфейс (управление) с аппаратным обеспечением.

    + смотри предыдущий билет

    Использование буферизации при вв/выв

    Предназначена для оптимизации работы с внешними устройствами. Буфер – критический ресурс (по отношению к процессам верх уровня -программному процессору и процессору нижн уровня). Через буфер данные переносятся от некоторого процесса к внешним устройствам, либо от внеш уст-в к процессору. Необходима синхронизация процессов.

    Набор операций для работы должен включать:

    • Получить буфер

    • Освободить буфер

    • Записать в буфер

    • Считать из буфера

    Для рассмотрения вопросов буферизации важным считается то что существует уст-ва вв/выв 2 типов:

    1. блочноориентированные – сохраняющие информацию блоками фиксированного размера, информация передается блоками, ссылка на данные-ссылка на блок и смещение внутри блока. Пример: магн диски, устр-ва долговременного хранения инф-ии.

    2. поточнооринтированные – передающие неструктурированный поток байтов. Пример: терминал клавиатуры, мыши, не запоминающие устройства.

    Схема буферизации

    1.Одинарный буфер – простой тип буфера. Процессу требуется операция в/в, ему в некоторой области отводится буфер для записи и считывания данных. Для блочно-ориентированного устройства производится передача входных данных в системный буфер После этого процесс перемещает блок в пользовательское пространство и тут же производит запрос следующего блока. Считывание по сравнению с отсутствием буферизации обеспечивает повышение быстродействия.

    Рис.1 Опережающее считывание.

    2. Двойной буфер

    При использовании двойного буфера процесс может выполнять передачу данных в один буфер, в то время как ОС записывает данные в др буфер- технология двойной (сменной) буферизации

    3.Циклическая буферизация

    Используется задача взаимного потребления (Задача производитель- потребитель (вопрос 7))

    Выводы: буферизация представляет собой метод сглаживания кол-ва операций вв/выв, но любое кол-во буферов не позволяют устройствам вв/выв работать так же производительно как и центр. процессор. Следовательно любое кол-во буферов не позволяет работать на равнее с проц-ром. Даже при большом числе буферов их переполнение вызывает приостановление процесса, работающего с внешним устройством.

    В мультипрограммируемой системе в которой идет обмен с внеш. устр-вом. буфер дает явное преимущества и увеличивает производительность системы в целом и отдельных устройств.

    Вопрос 24. Логическая структура файла Типы файлов. Атрибуты файлов. Операции с файлами. Каталоговые системы. Операции с каталогами.

    Файловые системы.

    Необходимость создания ФС:

    1. Процесс может хранить в ОП лишь ограниченное число данных.

    2. После завершения процесса, результаты должны быть сохранены на устройстве долговременного хранения.

    3. Когда несколько процессов хотят иметь одновременный доступ к одним и тем же данным, возникает необходимость долговременного хранения данных.

    Требования:

    1. Для каждого процесса необходимо свое виртуальное адресное пространство.

    2. Необходимо долговременное хранение информации.

    3. Процессам необходим обмен данными между собой.

    4. Одновременный доступ к данным нескольких процессов.

    Решение- хранение информации в файлах.

    Файл. Основные понятия.

    Возможность хранения информации после завершения процесса. Информация во внешней памяти хранится в объектах, которые называются файлами. Файл: поле, запись, файл.

    Поле – основной элемент данных. Содержит единственное значение. Характеризуется длиной и типом хранимых данных. Поля могут быть фиксированной или переменной длины.

    Запись – набор связанных между собой полей. Записи могут быть переменной или фиксированной длины.

    Файл – набор данных, организованный в виде совокупности записей одинаковой структуры (поименованный набор данных).

    ФС определяет способ организации данных на диске или ином носителе данных и принцип доступа к данным, организованным в файлы. Система управления файлами (СУФ) – конкретная организация ФС, обеспечивающая работу с файлами конкретной ОС. Каждая ОС может поддерживать несколько ФС, и для каждой ФС должна быть реализована своя СУФ. Система управления файлами обеспечивает:

    1. связь по данным системных и прикладных программ (процессов);

    2. обеспечивает централизованное распределение дискового пространства и управление данными.

    Основное назначение ФС и соответствующей ей СУФ – это организация удобного доступа к данным, организованным в виде файлов, т.е. вместо низкоуровневого доступа к данным с указанием конкретных физических адресов обеспечивают логический доступ с указанием имени файла и записи в этом файле.

    Именование файлов.

    При создании файла процесс присваивает ему имя. По этому имени процесс может обращаться к файлам. Правила именования в различных ОС разные.

    Логическая структура файла (4 типа структур):

    1. Файл как неструктурированная последовательность байтов. Обеспечивает максимальную гибкость при работе с файлами. Чтение и запись – поток байтов. Задача ОС в этом случае – обеспечивать передачу байтов. Вся интерпретация потока байтов лежит на уровне прикладных процессов. Такие файлы поддерживаются основными ОС: Unix, Windows.

    2. Файл – последовательность логических записей фиксированной длины. ОС работает с записями. Доступ к записям: надо или прочитать все предыдущие записи, или указать адрес этой записи ( порядковый номер записи). Является достаточно удобным: к этим файлам можно иметь как последовательный доступ, так и прямой – по адресу, который вычисляется по номеру записи.

    3. Файл как последовательность записей переменной длины. Доступ к записи может быть только путем последовательного чтения предыдущих записей, т.к. адрес указать не можем.

    4. Файл как дерево записей (записи необязательно одной длины) «Индексированные» файлы. Каждая запись содержит специальное поле, которое называется ключом. Дерево сортируется по данному ключу и доступ осуществляется по ключу. Основная функциональная операция – поиск ключа. При добавлении записи в дерево ОС решает какой ключ назначить и записывает в это дерево.

    Для быстрого поиска данных предусматривается специальная индексная таблица, в которой значениям ключевых полей ставится в соответствие с внешней памятью. Этот адрес может указывать на искомую запись или на область внешней памяти, занимает несколькими записями (индексно-последовательная запись).

    Индексная последовательность файла включает 2 этапа:

    –прямой доступ к памяти по ключу.

    –последовательный просмотр в этой области памяти.

    Индексные таблицы составляет и ведёт ОС.

    Каждое поле индексной таблицы содержит индекс и адрес записи.

    Индексированные файлы: индексные файлы, в которых в индексной таблице содержится адрес записи, и индексно последовательные файлы, когда в индексной таблице содержится адрес некоторой последовательности записей. В этом случае поиск записи состоит из 2-х шагов: поиск по индексу последовательности записей и поиск в последовательности записей.

    Типы файлов.

    ОС поддерживает различные типы файлов. Каждая ОС поддерживает двоичные файлы, которые являются выполнимыми (они содержат команды процессора)

    В системах Unix, Windows поддерживается 2 типа файлов: регулярные и каталоги. К регулярным относятся все файлы прикладных и системных процессов. Каталоги – файлы, которые поддерживают структуру и целостность системы. Регулярные файлы: текстовые (состоят из ASCII кода и легко отображаются) и двоичные.

    Доступ к файлам.

    2 типа доступа: последовательный и прямой (произвольный). Для указания места начала считывания с файла используются 2 метода:

    • указание непосредственно в операции (read, например)

    • должна быть специальная программа позиционирования seek.

    Атрибуты файлов.

    В некоторых ОС в момент создания файла может быть указан метод доступа.

    1. Имя файла.

    2. Данные файла.

    3. Дополнительные сведения. Каждая система может связать с файлом некоторое количество дополнительных сведений:

      • атрибуты защиты (кто и как может получить доступ к файлу)

      • пароль

      • идентификатор пользователя

      • текущий владелец

      • флаги (системный, скрытый, только для чтения, архивный)

      • ASCII или двоичный – тип

      • флаг доступа (последовательный или произвольный)

      • флаг времени жизни (будет ли он жить после окончания процесса)

      • длина (в байтах)

      • дата и время создания

      • дата и время последнего доступа

      • дата и время последнего изменения

      • максимальный размер

    Операции с файлами.

    В каждой ОС различные наборы их. Системные вызовы.

    • Создание файла – создание имени файла без данных (только имя и атрибуты)

    • Удаление файла

    • Открытие файла – происходит считывание в ОП атрибутов и создание системных таблиц открытого файла.

    • Закрытие файла – сохранение атрибутов и удаление системных таблиц

    • Операция чтения и записи

    • Поиск данных (записей)

    • Чтение/установка атрибутов.

    Каталоговые системы.

    Каталоги – файлы специального типа, хранят информацию о данных. Информация о файле в каталоге может храниться полностью (в тех ОС, где файл только в одном каталоге) либо информация о файле хранится вне каталога, тогда возможен доступ к файлу из нескольких каталогов. ОС имеет систему каталогов в виде дереыва – возможность структурирования:

    • имя файла

    • полное имя

    • имя от текущего каталога

    Иерархическая система: при ней важен способ указания имен файла для организации поиска его в каталогах. Операции с каталогами:

    • создание каталога

    • удаление каталога

    • открытие каталога

    • закрытие

    • Читать элемент каталога

    • операции связывания файлов с каталогом

    • удаление ссылок из каталога

    Вопрос 25. Методы физической реализации файлов и каталогов.

    Физическая реализация ФС организует хранение файловых каталогов, управление дисковым пространством и обеспечение надежности работы ФС.

    Физическая реализация файлов.

    Определяет соответствие блоков диска файлам. Различают способы реализации:

    1. Н епрерывные файлы

    В этом случае файл представляет собой непрерывный набор соседних блоков диска (занимает сплошной участок памяти). Простейшая организация файлов, которая обладает преимуществам:

    • легко реализовать

    • высокая производительность

    Недостаток: очень сильная фрагментация. Непрерывные файлы изначально были самыми распространенными.

    1. Связные списки. Файл представляется в виде связного списка блоков диска. Первое слово каждого блока хранит ссылку на следующий блок.

    1. Связный список с таблицей в памяти. В этом случае у файла есть отдельная таблица, которая хранит адреса этих блоков. И элементы этой таблицы связаны в список. Для того, чтобы ускорить доступ, список разбивается на 2 части. Так построена ФС FAT.

    Нужно место в ОП для размещения списков блоков.

    1. Метод индексных узлов. i-node. С каждым файлом связана некоторая структура данных, которая называется индексным узлом. Индексный узел содержит атрибуты файла и адреса блоков хранения данных.

    Доступ быстрее. Ограниченное число блоков, к которым можно адресоваться (атрибуты хранятся в индексном узле). Это ограничение обходят путем введения косвенной адресации. Если файл большой и прямой адресации недостаточно, для этого предназначен элемент этого узла. Индексный узел имеет ряд элементов прямой адресации к ряду элементов косвенной адресации.

    Реализация каталогов.

    Запись в каталоге должна содержать информацию для поиска данных. В зависимости от реализации файла это может быть:

    • адрес начала файла (для непрерывных файлов);

    • адрес 1-го элемента списка (для схем со списками)

    • адрес индексного узла (для 4-го узла)

    В первых трех случаях должна быть дана информация об атрибутах файла, в 4-м достаточно иметь номер или адрес индексного узла.

    Совместно используемые файлы (имеется в виду несколько процессами).

    В файловых системах, где информация находится в каталогах, совместное использование файлов затруднено. Когда файл модифицируется каким-либо процессом, то все изменения будут отражены только в данном каталоге. Информация об адресах и атрибутах файлов хранится в областях, которые отделены от каталогов, из которых есть ссылки. Возможны 2 варианта совместного использования.

    1. Использование жестких ссылок.

    И процесс А. и процесс В имеют ссылку на один и тот же файл. Возникает ряд трудностей. В атрибутах файлов есть информация о владельце. Если какой-то файл, на который ссылается узел, создается процессом А, то имя владельца будет А. Организация жесткой (2-ой) ссылки на этот узел владельца не меняет, увеличивается счетчик ссылок. Проблема: процесс А попытается удалить file 1. Тогда процесс В будет иметь несуществующую ссылку, что недопустимо. Решение: удаление файла 1 из каталога и сохранение жесткой ссылки из каталога В. Если в системе установлены квоты, то платить будет А, а пользоваться В.

    1. Символическая связь.

    Создается связь типа Link. Если хотим сослаться из каталога В на файл 1, то создается ссылка А (новая).

    Одновременно двумя процессами данные изменяться не могут. Сложность: каждый раз должен вычисляться этот путь. Кроме жестких ссылок ОС должна обеспечивать синхронизацию.

    Организация дискового пространства.(нет в лекц и билетах)

    2 стратегии:

    1. Выделение пространства непрерывными участками для файла. Недостатки: в случае расширения файла мы можем тлько переписать его на новое место (страничная организация ОП – аналог). Все современные ОС используют механизм блочного разделения дискового пространства.

    Проблема: выбор размера блока:

    • производительность системы

    • рациональное использовании дискового пространства.

    Требуется при разработке файловых систем находить компромисс между производительностью и рациональным использованием дискового пространства. Чем больше размер, тем выше производительность, но тем менее рационально используется дисковое пространство. В Unix блок – 1 Кб, в Microsoft – 512 байт – 64 Кб.

    Учет свободных блоков.

    2 метода, как учитывать свободные и занятые блоки.

    • Использование связного списка свободных и занятых блоков. Для данного списка резервируется место. В нем содержатся адреса свободных и занятых блоков.

    • Хранение информации в виде битового массива (бит-карта). В ней отмечаются свободные и занятые блоки. Хранение в виде битовой карты занимает меньше места, но механизм работы сложнее.

    Дисковые квоты ФС.

    Администратор ОС назначает каждому пользователю максимальную долю файлов и блоков, которые данный пользователь может использовать. ОС контролирует этот процесс. 2 лимита:

    • жесткий

    • гибкий

    Когда пользователь пытается зарегистрироваться, если система обладает гибкими и жесткими лимитами, ОС считывает его файл квот и проверяет, не превысил ли пользователь гибкие лимиты. Если лимит превышен, то пользователь регистрируется и число предупреждений уменьшается на 1. Когда оно будет =0, то пользователь в системе не регистрируется. При жестком лимите пользователь не может его превысить.

    Надежность ФС.

    Различные способы резервирования, средства обеспечения надежности закладываются в реализацию ФС. Путем копирования: полная копия ФС с последующим восстановлением.

    Непротиворечивость ФС.

    FAT NTFS Unix

    Вопрос 26. Принципы построения интерфейсов ос. Интерфейс прикладного программирования(арi). Варианты реализации арi.

    Принципы построения интерфейса ОС.

    3 типа:

    • интерфейс пользователя (интерфейс командной строки)

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

    • интерфейс прикладного программирования API (1)

    Варианты реализации (1).

    1. Реализация функции API на уровне ОС, ответственность за выполнение несет ОС (API на уровне системных вызовов). Достигается наибольшая эффективность исполнения, но объектные коды и исходные программы не переносятся на другую ОС. WinAPI – пример.

    «-» отсутствие переносимости на ОСна Уровне объектного и исходного кода.

    1. Реализация функции API на уровне системы программирования. Функции API предоставляются пользователю в виде библиотечных функций системного программирования (соответствующего языка программирования) (RTL-библиотеки). Эффективность реализации ниже, но переносимость исходной программы будет наилучшей. Для каждой ОС должна быть своя библиотека RTL.

    2. Реализация функции API с помощью внешних библиотек (с помощью библиотек, созданных сторонними разработчиками). Эффективность наименьшая, т.к. эти библиотеки обращаются с библиотекой СП, а они обращаются к системным вызовам, но повышается эффективность создания программных продуктов. Переносимость «проблематична», т.к. может быть связано с ОС.Может быть сокращено время создания программ.

    Вопрос 27. Основные структуры операционных систем. Структуры многопроцессорных операционных систем

    Основные структуры ОС.

    1. ОС как набор процедур, взаимодействующих друг с другом (отсутствие структуры): MS-DOS – монолитные (трудно выносить изменения, работать).

    2. Многоуровневая ОС. ОС разделены на слои (уровни), каждый уровень общается с соседним. Простота отладки ОС, взаимодействия. Windows 95.

    3. Приложения отделены от ОС. Приложения и ОС работают в разлиичных режимах процессора: ОС – в привилегированном режиме, приложения – в пользовательском режиме. Достигается наибольшая устойчивость. Windows NT.

    4. Модель «Клиент – сервер» (оптимизированная структура)

    Часть функции ядра ОС переносит в режим пользователя – в режиме ядра реализуются самые необходимые функции – ядро называется микроядром (управление процессами, памятью, обеспечение взаимодействие клиентов и серверов). Клиенты – приложения и некоторые компоненты ОС, которые функционируют в режиме пользователя. !!! Минимизация числа процедур в режиме ядра. Windows NT обладает элементами микроядерной архитектуры.

    Вопрос 28. Архитектура операционной системы msdos. Основные модули ос.

    Модули:

    • MSDOS.SYS модуль обработки прерываний. Взаимодействие м/у программами происходит посредством прерываний. Передается через процессора и области памяти.

    • IO.SYS взаимодействие с BIOS (базовой системой ввода-вывода). в этом модуле находятся те драйверы, которые загруж, вместе с компом. Резидентный.

    • COMMAND.COM – командый процессор, предназначенный для приемки команд с клавиатуры или командных файлов.

    Состоит из:

    - резидентная часть (процессоры обслуживания некоторых прерываний, обработки стандартных ошибок MSDOS).

    - инициализирующая часть ( ей передается управление во время загрузки ОС, выполняет файл AUTOEXEC.BAT(текст. файл – содерж. инфу для настройки ОС) – затирается первой загруженной программой.

    CONFIG.SYS – спец.текстовый файл, содерж. инф-ию о доп. загруженных драйверах.

    Вопрос 29. Операционная система ms dos. Управление оперативной памятью.

    MSDOS была рассчитана на на реальный режим работы процессора Intel 8688. Программы в этом режиме адресуются непосредственно к физической памяти, используя непосредственно смещение и адрес сегмента

    3 уровня

    • {0-640 Кб} - стандартная память, доступна в реальном режиме работы процессора. [кусками по 64 Кб] для драйверов

    Оставшаяся память называется доступной, делится на блоки разной длины, кратной 16 байтам.

    Расширенная память – память старше 1 Мб. Зависит от версии (до 32 Мб). Еще называется EMS. Делится на страницы по 16 Кб, и просматривается через окно размером до 64 Кб, находя щегося в стандартной библиотеке.

    • {640-1024} зарезервировано под ОС

    • {1024-32 Мб} [окно 64 Кб, страницы по 16 Кб] только через окно. Extended memory specification. Драйвер-EMM

    Управление памяти лишь условно в MSDOS. Фактически проги сами должны следить за использованием памяти. Каждый программе отводится соотв. блок памяти и с этим блоком ассоциирован с блоком управления памятью.

    недостатки: любой процесс может получить доступ к любой области памяти.

    Вопрос 30. Операционная система msdos Архитектура файловых систем fат.

    В ФС FAT соотв. логич. диска, на котором ограничена эта система, делится на 2 области

    - системная область ( загрузочный сектор, зарезервированный сектор, таблицы изменения файлов(FAT – таблицы) и корневой каталог(RD), который находится в системной области.

    - создается и инициализ. при форматировании. ФС создается, когда выполняется команда Format.

    Область данных при форматировании делится на участки одинакового размера (кластеры), которые содержат 1 и более сектор. Каждому кластеру соотв. Запись в таблице FAT. Размер таблицы FAT равен кол-ву кластеров на диске. Записи в таблице FAT связ. в список. Информация в файлах хранится в фйалах спец. вида, называем. каталогом.

    Номер цилиндра-> диск -> сегмент

    можем создать логические диски

    format – созд. файл систему

    Файловая система имеет 2 области

    • Системная [загруз. сектор, зарезерв.сектор, таблица FAT, корневой каталог]

    • Обл. данных содержит файлы и каталоги, подчин-ые корневому

    доступ: C:/folder1/folder2/file.exe

    размер корневого каталога ограничен

    вся область разбита на равные кластеры [несколько смеж сегментов] min 512 б.

    файл – один или несколько кластеров, связ в список.

    Адрес 1-ого кластера в FAT-таблице. На адрес 32 байта

    имя в формате 11 байт: 8.3

    VFAT – можно использовать длинные имена до 256 байт.

    Вопрос 31. Архитектура операционной системы Windows 95/98. Основные компоненты.

    Многоуровневая архитектура

    • Ядро

      • User’s interface управление I/O. Асинхронная модель. передача сообщ. в поток (w32 отдельные очереди сообщений; w16 – общая очередь)

      • GDI[graphic device interface] множество мелких функций

      • Kernel само ядро с библиотеками для 16/32 битной сист.

    • Реестр БД о конфигурации системы и подключенных программах( хранит информацию в виде структурно-древовидной формы)

    Особенность:

    - данные о конфигурации хранятся в 1 мосте.

    - хранятся настройки для различн. пользователей.

    - наличие спец. программного обеспечения

    удаленный доступ к системе, что немаловажно

    • Manager of configuration хранит инфу об устройствах. ставит каждому устройству

      • IRQ прерывание

      • DMA канал прямого доступа

      • I/O порт ввода/вывода

    • Manager of Virt.Machine обл.памяти, которая выглядит для процесса как отдельный комп.( обеспечивает приложение и системные процессы необходимыми ресурсами)

      • Диспетчеризация

      • поддержка MS-DOS-приложений

      • распределение виртуальной памяти

    Вопрос 32. Управление процессами в Windows 95/98. Мультапрограммирование.

    Многозадачность:

    • Кооперативная [для приложений W16] процессор берет из одной очереди сообщения, обслуживает по одному, не успел за квант времени - ставит в эту же очередь.

    • Вытесняющая [32] процессор обслуживает сообщ. квант времени, если не успел – ставит его в другую очередь с более высоким приоритетом. получается многоочередная система.

    Вопрос 33. Управление оперативной памятью в Windows 95/98.

    В ОС используется страничная организация памяти (в соответствии с возможностями процессора Intel 80386 и более новых), страницы выделяются по требованию приложения. Система использует 32битную, “плоскую”, линейную модель памяти. Каждому приложению выделяется уникальное виртуальное адресное пространство размером в 4Гб. Верхние 2Гб адресного пространства используются ОС и приложением совместно, а нижние 2Гб принадлежат исключительно приложению. Это виртуальное адресное пространство разделено на равные блоки – страницы. Размер каждой страницы – 4096 байт (4Кб), выбор страниц такого размера обусловлен архитектурой микропроцессоров семейства Intel, которые имеют аппаратную поддержку страниц такого размера.

    Страницы памяти могут быть выгружены из физической памяти в файл подкачки на диске. Как только процесс снова затребует выгруженные страницы, ОС помешает их с диска в физическую память.

    Менеджер виртуальных машин(VMM) обеспечивает преобразование виртуальных (логических) адресов страниц памяти каждого приложения в реальные физические адреса в оперативной памяти компьютера. Таким образом от приложения скрыта реальная организация и распределение памяти в системе. Каждый поток запушенного процесса имеет свободный доступ к памяти, выделенной всему процессу, но мне может получить доступ к областям памяти других процессов.

    В среднем до 30% инструкций каждого приложения – это инструкции доступа к памяти, но преобразование виртуальных адресов в физические осуществляется программно, этим и объясняется довольно медленная работа ОС на казалось бы относительно быстрых микропроцессорах (Pentium 100, 133, 166, 200…). Но такая схема работы ОС вполне оправдана, так как система работает значительно устойчивее и надежнее.

    Вопрос 34. Поддержка приложений в Windows 95/98.

    Ядро ОС состоит из 3-х частей.

    1) пользовательская

    1. интерфейс графического устройства (GDI)

    2. ядра

    Каждая из этих компонент содержит пару DLL библиотек 32-х битную и 16-ти битную, которые обеспечивают работу соответственно 32 и 16 приложений.

    ОС использует асинхронную модель ввода/вывода. Все прерывания, которые генерируются устройствами, обрабатываются обработчиком прерываний и генерируется соответствующее сообщение, которое поступает в общий поток ввода и из этого потока распределяется в соответствующую очередь приложения. Каждое приложение Win32 имеет собственную очередь сообщений. Все приложения win16 имеют единственную очередь для всех приложений и получают к ней поочередный доступ.

    GDI содержит функции манипулирования графическими объектами, окнами. Эти функции малого размера, но большого количества. Эти функции используют центральный процессор. В основном все они являются 16 битными.

    Windows 95, 98 явл. Смесью 16 и 32 битного кода, хотя ОС явл. 16 битной.

    Вопрос 35. Архитектура операционной системы WindowsNt. Подсистема среды и исполняющая система.

    Компоненты разделены на 2 режима: пользовательский и ядро. В пользовательском режиме выполняются как приложения, так и компоненты ОС, которые выполняются в подсистеме.

    Микроядерная архитектура – в привилегированном режиме остается лишь небольшое количество модулей, остальное предоставляется в пользовательском режиме. Можно выделить 3 уровня:

      1. Привилег.

      2. Компоненты ОС

      3. Приложения ОС

    Основными уровнями NT явл:

    1. Уровень аппаратных абстракций – это слой программ, обеспечивающих ОС, который скрывает от остальных уровней особенности реализации аппаратных средств. Замена этого уровня позволяет реализовать эту ОС для различных процессоров.

    2. Ядро осуществляет диспетчеризацию нитей управления процессом. Эти нити определяются в контексте каждого процесса, т.к. каждый процесс состоит из нескольких нитей управления. Понятие «нить управления» аналогично понятию «поток управления» в Win95. Реализацию такого управления осуществляется на уровне API вызовов. Ядро выполняется полностью в привилегированном режиме, и неперемещаемого в памяти и невыгружаемым. Ядро может выполняться на всех процессорах в мультипроцессорной конфигурации.

    3. Диспетчер объекта ( для управления объектами). Для управления объектами определенного класса используются спец. диспетчеры( диспетчеры процессов)

    4. Диспетчеры процессов

    Ядро + диспетчеры + мониторы = исполняющая система WinNT. Она взаимодействует с компонентами в пользовательском режиме с помощью интерфейса исполняющей системы. Компоненты исполняющей системы:

    1. диспетчер объектов

    2. диспетчер виртуальной памяти

    3. диспетчер процессов

    4. средство локальных процедур

    5. диспетчер ввода/вывода

    6. монитор безопасности

    Вопрос 36. Управление процессами в WindowsNt. Мультипрограммирование.

    Ядро + диспетчеры + мониторы = исполняющая система WinNT. Она взаимодействует с компонентами в пользовательском режиме с помощью интерфейса исполняющей системы. Компоненты исполняющей системы:

    1. диспетчер объектов

    2. диспетчер виртуальной памяти

    3. диспетчер процессов

    4. средство локальных процедур

    5. диспетчер ввода/вывода

    6. монитор безопасности

    Нить процесса – основной объект диспетчерезации. Каждая нить имеет собственный набор рег-ов(?), стеки дра и пользователя. Прцесс имеет хотя бы 1 нить управления.

    Вопрос 37. Управление оперативной памятью в WindowsNt.

    Здесь так же как и в ОС Win98 каждому процессу предоставляется 4Гб виртуальной памяти, но все системные модули находятся в своих собственных адресных пространствах, и доступ к ним прикладных процессов не возможен. Прикладным процессам выделяется 2Гб локального адресного пространства.

    Диспетчер ВП по алгоритму схож с Win95. По умолчанию выгруженные страницы хранятся в файле подкачки, которые могут быть либо поставленными, либо временными и являются чаще всего функцией размера физической памяти.

    ///

    ОП работает в страничном режиме со swapping’ом. Размер страницы [frame] 4 Кб. Всего виртуальной памяти предоставляется для каждого процесс – 4 Гб. Каждый поток имеет доступ ко всем 4 Гб.

    Область swapping’а может быть как постоянной так и переменной

    Нижние 2Гб для приложения. Верхние – для системы. Они общаются через .dll сообщения

    Вопрос 38. Обьектная модель WindowsNt. Менеджер объектов.

    Можно выделить ОС, построенные по объектно-ориентированному принципу. Полностью объектно-ориентированной ОС нет, но WinNT наиболее близка к этому. Фундаментальным понятием является понятие объекта. В данном случае система состоит из множества объектов определенного типа. Тип объекта включает определенный системой тип данных, набор атрибутов объекта, список операций, которые могут выполняться над данным типом объекта. Существует униори***** средство управления объектами. Определяя параметры объекта, можно проводить с ними соответствующие операции.

    Для управления объектом в WinNT процесс должен получить описатель объекта. Его процесс может получить через диспетчер объектов. Существует список объектов, которые есть в ОС WinNT, но схема работы с объектами примерно одинакова. Для создания процесса диспетчер процессов будет обращаться к диспетчеру объектов. Такая унифицированная работа с объектами позволяет создать эффективную систему обеспечения безопасности объектов.

    ///

    Объект =

    • тип данных

    • тип объекта

    • атрибуты

    • список возможных действий

    Менеджер Объектов нужен для унификации хранения и именования объектов.

    Объектно-ориентированные ОС

    • с поддержкой объектов

    • ! сделанные на объектах [сис.прог]

    Вопрос 39. Взаимодействие между приложениями и подсистемами среды в WindowsNt.

    Взаимодействие между системным ПО и прикладными программами осуществляется с помощью специальных функций, т.е. с помощью передачи сообщений между системой и прикладными процессами.

    Приложение и подсистемы среды реализуют взаимодействие типа клиент-сервер. Средство вызовов локальных процедур, находящиеся в ***, обеспечивает прохождение сообщений между клиентом и сервером. Процесс прохождения сообщений скрыт.

    Существует также средство удаленных процедур, схожее по организации со средством локальных процедур.

    Для реализации механизма передачи сообщений существуют заглушки.

    Когда приложение производит обращение к интерфейсу прикладных программ (API) подсистемы среды, заглушка клиентского процесса приложения упаковывает параметры для вызова и направляет их серверному процессу, который осуществляет выполнение. На это время клиент ждет.

    ////

    взаимодействие либо через

    • сообщения [безопасно]

    • память [быстро]

    LPC [local process calling]

    когда приложение обращается к API – интерфейсу, то сообщение .dll, которое оно генерирует идет НЕ «в открытую», а через заглушки [stub]. Заглушка генерирует правильное API – обращение со всеми параметрами и отправляет его win32 процессору. Он отрабатывает сообщение и пересылает его обратно.

    Вопрос 40. Структура системы и ядро ос Unix

    Unix – самая старая ОС (70-е гг.), изначально написана на Ассемблере, затем на Си.

    Основные черты:

    1. Код системы на C.

    2. Открытость и переносимость системы.

    3. Многопользовательская и многозадачная система – каждый пользователь обладает собственной виртуальной машиной. Поддерживается круговое квантование с многоуровневой обратной связью с использованием динамических приоритетов, которые назначается на основании некоторых факторов.

    4. Модульный пользовательский интерфейс (администрирование, управление файлами и др.) Shell.

    5. Графический интерфейс пользователя (GUI - Graphic User Interface) XWindow.

    6. Единая легкообслуживаемая иерархическая файловая система (единый корень).

    7. Доступ

    8. Наличие большого числа приложений: коммерческих и shareware.

    Структура системы.

    Ядро Unix отвечает за управление устройством от имени приложений пользовательского режима, управление ресурсами и взаимодействие между процессами, выполнение кода ядра. Оно происходит с помощью системных вызовов. Интерфейс системного вызова – стандартный способ входа прикладных процессов в ядро с переключением в привилегированный режим. При этом не происходит переключения контекста, т.е. ядро ОС выполнятся в контексте пользовательского процесса. Ядро Unix выполняется без вытеснения – когда процесс в пользовательском режиме, он может быть прерван.

      1. Интерфейс системного вызова обеспечивает процессам обращение к сервисам ядра.

      2. Модули символьного и блочного ввода и вывода используются для реализации файловой системы и доступа к устройствам.

      3. Буферный кэш отвечает за увеличение скорости.

      4. Файловая подсистема управляет иерархическим пространством имён файлов, каталогов и устройств ввода/вывода.

      5. Модуль управления процессами отвечает за создание и планирование процессов и поддержку средств взаимодействия.

      6. Модуль правления памятью поддерживает виртуальную память ОС.

    UCB – стандартный управляющий способ входа циклического процесса в ядро ОС с переключением в привилегированный режим процессора.

    Модули выполняются без вытеснения.

    Типы процессов в Unix.

    1. системные (могут выполняться как в режиме ядра, так и в режиме пользователя)

    • диспетчеры буферного кэша, страничного замещения, свопинга, памяти ядра

    • процесс инициализации init()

    1. прикладные процессы:

    • интерактивные – монопольно владеют терминалом

    • фоновые процессы (демоны)

    • процессы реального времени – требуют гарантированного времени обслуживания

    Атрибуты процессов.

    1. Идентификатор процесса

    2. Идентификатор родительского процесса

    3. Относительный приоритет ( может быть присвоен при рождении)

    4. Приоритет выполнения ( динамический, информация в процессе выполнения)

    5. Терминальная линия (терминал, связанный с данным процессом и др.)

    6. Идентификатор пользователя (реальный и эффективный). Определяет права доступа к ресурсам

    Вопрос 41. Управление процессами в ос Unix. Граф состояния процесса. .

    Типы процессов в Unix.

    1. системные (могут выполняться как в режиме ядра, так и в режиме пользователя)

    • диспетчеры буферного кэша, страничного замещения, свопинга, памяти ядра

    • процесс инициализации init()

    1. прикладные процессы:

    • интерактивные – монопольно владеют терминалом

    • фоновые процессы (демоны)

    • процессы реального времени – требуют гарантированного времени обслуживания

    Атрибуты процессов.

    1. Идентификатор процесса

    2. Идентификатор родительского процесса

    3. Относительный приоритет (может быть присвоен при рождении)

    4. Приоритет выполнения

    5. Терминальная линия (терминал, связанный с данным процессом и др.)

    6. Идентификатор пользователя (реальный и эффективный). Определяет права доступа к ресурсам

    Каждый процесс работает в собственном виртуальном адресном пространстве.

    Для управления процессом используется структуры информации, содержащие информацию о процессе, которая необходима ядру ОС в течение всего жизненного цикла процесса:

    1. Дескриптор. Дескрипторы объединяются в список, образуя системную таблицу процессов, находящуюся в оперативной памяти ядра. На основании информации, хранящейся в системной таблице процессов, ОС осуществляет планирование и синхронизацию процессов.

    Основная информация дескриптора:

    • состояние

    • расположение

    • отдельные состояния приоритета

    • глобальный приоритет

    • идентификатор пользователя