Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы операционные системы.doc
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
987.14 Кб
Скачать

Классификация ос

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

Реализация многозадачности

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

·         многозадачные (Unix, OS/2, Windows);

·         однозадачные (например, MS-DOS).

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

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

В некоторых ОС (Windows 3.11, например) пользовательская программа может монополизировать процессор, то есть работать в невытесняющем режиме. Как правило, в большинстве систем не подлежит вытеснению код собственно ОС. Ответственные программы, в частности задачи реального времени, также не вытесняются. Более подробно об этом рассказано в лекции, посвященной планированию работы процессора.

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

Поддержка многопользовательского режима

По числу одновременно работающих пользователей ОС можно разделить на:

·         однопользовательские (MS-DOS, Windows 3.x);

·         многопользовательские (Windows NT, Unix).

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

Многопроцессорная обработка

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

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

Поддержка мультипроцессирования является важным свойством ОС и приводит к усложнению всех алгоритмов управления ресурсами. Многопроцессорная обработка реализована в таких ОС, как Linux, Solaris, Windows NT, и ряде других.

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

В асимметричных ОС процессоры неравноправны. Обычно существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор.

Системы реального времени

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

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

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

Управление заданиями. Классификация процессов.

Процесс - минимальный программный объект, обладающий собственными системными ресурсами.

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

2) По генеалогическому признаку различают порождающие и порожденные процессы.

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

4) По связности: взаимосвязанные, которые имеют какую-то связь (пространственно-временную, управляющую, информационную); изолированные — слабо связанные; информационно-независимые, которые используют совместные ресурсы, но имеют собственные информационные базы; взаимодействующие - имеют информационные связи и разделяют общие структуры данных; взаимосвязанные по ресурсам; конкурирующие.

5) По времени развития: последовательные, параллельные, комбинированные.

6)По месту развития: внутренние ( на ЦП), внешние ( на внешних процессорах).

7)По принадлежности ОС: системные и пользовательские.

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

Управление процессами. Диаграмма состояний процесса.

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

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:

выполнение - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

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

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

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

В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.

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

1)операционная система прекращает его деятельность;

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

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

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

Планирование процессов. Понятие очереди. Планировщики.

В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс, например новый процесс, необходимо разместить в основной памяти, следовательно, ему необходимо выделить часть адресного пространства. Процессу в состоянии «готовый» должно быть предоставлено процессорное время. Выполненный процесс может потребовать оборудование ввода-вывода. Распределение процессов между имеющимися ресурсами носит название планирование процессов. Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей. Новые процессы, находящиеся во входной очереди, часто называются очередью работ (заданий). Входная очередь располагается во внешней памяти. Во входной очереди процессы ожидают освобождения ресурса – адресного пространства основной памяти. Готовые к выполнению процессы располагаются в основной памяти и связаны очередью готовых процессов. Процесс в состоянии ожидания завершения операции ввода – вывода находится в одной из очередей к оборудованию. Таким образом, процесс мигрирует между различными очередями под управлением программы, которая называется планировщик. Операционная система, обеспечивающая режим мультипрограммирования обычно включает 2 планировщика: долгосрочный и краткосрочный. Например, в ОС/360 долгосрочный планировщик называется планировщиком заданий, а краткосрочный – супервизором задач. На уровень долгосрочного планирования выносятся редкие системные действия, требующие больших затрат системных ресурсов, на уровень краткосрочного планирования – частые и более короткие процессы. Основное отличие между долгосрочным и краткосрочным планировщиками заключается в частоте запуска, например, краткосрочный может запускаться каждые 100 мл секунд, долгосрочный – 1 раз за несколько минут или больше. Долгосрочный планировщик (ДП) решает какой из процессов, находящихся во входной очереди должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти. ДП выбирает процесс из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых процессов должны находится в разной пропорции как процессы, ориентированные на ввод – вывод, так и процессы, ориентированный преимущественно на работу с ЦПУ. На уровне долгосрочного планирования объектом является не отдельный процесс, а некоторое объединение процессов по функциональному назначению, которые называются работой или приложением. По мере порождения новых работ создается собственная виртуальная машина для их выполнения. Краткосрочный планировщик (КП) решает какой из процессов, находящихся в очереди готовых процессов должен быть передан на выполнение в ЦПУ. В некоторых ОС ДП может отсутствовать, например, в системах разделения времени. На уровне КП объектом управления являются процессы, которые выступают как потребители ЦП для внутренних процессов или внешнего процессора для внешних процессов. Предметом порождения процессов могут быть процессы на том же уровне или сигналы ДП. Выделение процессора процессу производится с целью достижения эффекта мультипрограммирования. Такой процесс называется диспетчеризацией.

Взаимодействие процессов. Транспортеры, очереди, сигналы, семафоры.

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

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

Очереди могут обеспечить передачу или использование общих данных без перемещения данных, а с передачей элемента очереди, содержащего указатель данных и объем массива данных. Очередь используется вместе с механизмом общей памяти. Элемент очереди может быть считан с уничтожением или без уничтожения этого элемента. Чтение элемента может осуществляться в соответствии с механизмом очереди, например, fifo или стека. Чтение элементов очереди осуществляется только процессом, создавшим очередь. Все другие процессы могут только записать элемент в очередь. Создающий очередь процесс может выполнять следующие действия над очередью: 1)создание очереди; 2)просмотр очереди; 3)чтение очереди; 4)закрытие очереди. Записывающий процесс осуществляет действия: 1)открыть очередь; 2)записать в очередь; 3)закрыть очередь. Имя очереди, которое присваивается создающим процессом, имеет вид полной спецификации файла. Ожидание элемента в очередь организуется с помощью семафора, сигнализирующего о записи элемента в очередь. Дополнительные функции для работы с очередью: 1)определение количества элементов в очереди в текущий момент; 2)очистка очереди, создавшим ее процессом. Преимущества очереди: 1)передача данных осуществляется по указателю без копирования; 2)гибкие изменения порядка передачи и доступа; 3)возможность просмотра элементов очереди без их удаления.

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

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

ОС использует разные термины для определения способов межпроцессорного взаимодействия. В OS/2, MS Windows существует специальный термин (механизм) для взаимодействия процессов в реальном времени (DDE – Dynamic Data Exchange). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах, созданных другой программой, а также редактировать, печатать их без нарушения целостности информации и связей. Одним из наиболее простых, удобных и интуитивно понятных интерфейсов межпрограммного взаимодействия является буфер обмена.