Скачиваний:
94
Добавлен:
10.05.2014
Размер:
11.4 Mб
Скачать

MC - Midnight comander

DeCo – Demos Comander

5. Принципы организации многозадачного режима в операционных системах.

(лекция 01.09.2003)

Режимы вычислительного процесса. С точки зрения программиста-администратора (?) можно выделить три основных типа вычислительного процесса:

1.1) пакетный режим

1.2) режим разделения времени

1.3) режим реального времени С точки зрения пользователя-оператора различают: 2.1) диалоговый режим 2.2) режим виртуальных машин.

1.1) Пакетный режим:

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

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

SJF (кратчайшее задание выполняется первым)

SRF (наибольшим приоритетом обладает задание с наименьшим остающимся

до конца временем)

1.2) Режим разделения времени:

Все ресурсы передаются поочерёдно активным задачам, которые одновременно существуют в вычислительной системе. Находится в контуре управления (??):

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

Выделяется квант времени: t = Tциклаn , где n - число процессов.

1.3) Режим реального времени: характеризуется "немедленной" реакцией системы на предусмотренное внешнее событие (например, на сигналы, поступающие от внешних устройств). Система реального времени характеризуется временем реакции на событие. 2.1) Диалоговый режим: характеризуется интерактивным взаимодействием пользователя и программы, решающей конкретную задачу.

2.2) Режим виртуальных машин:

Вычислительные системы <=> многопользовательский режим. Обеспечивает оптимальное использование ресурсов супермашин. Взаимодействие виртуальных машин обеспечивает монитор виртуальных машин (МВМ):

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

Средства организации многозадачного режима:

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

Типовой состав ОС:

обработчики прерываний нижнего уровня и супервизоры *

планировщики * (отвечают за распределение времени процессов конкретным задачам)

система (или - системы) управления процессами и ресурсами *

программы управления основной памятью

программы управления виртуальной памятью *

программы обслуживания файловых систем

загрузчики

система генерации ОС

Основные функции ядра ОС:

Обработка прерываний *

Создание и уничтожение процессов *

Диспетчеризация * ("диспетчер")

Синхронизация *

Поддержка операций ввода/вывода

Поддержка работы файловой системы.

Обслуживание аппаратного контроля

...подробнее о некоторых из них:

1)Прерывания:

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

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

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

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

trap

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

trap 'команды' сигнал[сиргнал...]

Пример:

$cat > mytrap

trap 'echo bye; exit' INT QUIT TERM

В качестве команды для trap можно использовать специально написанную Shellпроцедуру. Обычно командуtrap помещают в начало Shell-процедуры.

Супервизорные программы и обработчики прерываний бывают нескольких типов: 1-го рода - полностью резидентные (постоянно находятся в оперативной памяти); 2-го рода - частично резидентные 3-го рода - резидентные по условию.

2) Планировщики - это программы, которые отвечают за распределение времени процессов конкретным задачам. Они различаются по уровню планирования и по дисциплинам планирования. Обычно в системе существует 3 уровня планировщиков:

0.Диспетчеры (самые быстрые)

1.Планировщики первого уровня (оперативные)

2.Планировщики второго уровнядолговременные планировщики.

В качестве дисциплин планирования чаще всего используются дисциплины: FIFI, LIFO, RL (Routine Round (?) - круговой циклический алгоритм) и RL (чем раньше поступил запрос, тем выше приоритет планирования). Классическим примером динамического приоритетного планирования является алгоритм Корбато. По этому алгоритму для планирования выделяется несколько приоритетных уровней, причём каждому уровню соответствует свой квант времени, который может получить активный процесс, находящийся на данном уровне. Существует несколько уровней планирования и каждому соответствует свой квант времени:

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

3) Управление оперативной памятью (некоторые сведения):

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

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

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

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

6. Коммуникационные средства многопользовательских операционных систем.

В качестве Коммуникационных средств в Unix имеется электронная почта , через почтовый ящик (на базе команды mail) и прямые сообщения на экран определённого терминала (write) либо всех терминалов сразу ( wall).

Команда mail имеет множество модификаций, задаваемых ключами и аргументами команды, предоставляя мощные средства поддержки разнообразных форм взаимодействия: от организации обмена сообщениями с их хранением в "почтовом ящике" до формирования и редактирования самих сообщений. Роль почтового ящика выполняет специальный системный файл. Каждое сообщение сопровождается заголовком, идентифицирующим пользователя-отправителя. Если при очередном входе пользователя в систему в почтовом ящике для него есть хотя бы одно сообщение, то система выводит на экран: you have mail

Write -> сообщение на терминал пользователей.

Результатом работы команды является "вторжение" на экран адресата приоритетного по отношению к текущей экранной выдаче приглашения к общению с отправителем и текст передаваемого сообщения с идентификатором конца сообщения <EOT>:

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

$ mesg n <NewLine>

< прием сообщений блокирован > $ mesg y <NewLine>

< прием сообщений разрешен >

Wall (write all) может отправить только root.

Система UNIX позволяет пользователям, работающим на одной и той же или на разных машинах, посылать почту другим пользователям или общаться друг с другом. Команда mail посылает сообщения (письма) другимпользователям, в то время как командаwrite используется для связи спользователем, работающим задругим терминалом, винтерактивномрежиме.

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

Команда mail напечатает на терминале первое письмо из текущей почты, снабдив его «почтовым штемпелем». Затембудет выдано приглашение. Полученное письмо можно уничтожить, набрав литеру d, напечатать его снова, набрав р, или напечатать следующее письмо из текущей почты, нажав клавишу возврата каретки. Чтобы сохранить письмо в некотором файле, следует воспользоваться запросом:s имя-файла.Если в запросе s не указано имя файла, письмо будет сохранено в файле mbox в регистрационном оглавлении пользователя. Сохраненные и уничтоженные письма удаляются из почтового файла при выходе из команды mail. Выход осуществляетсяпри помощи запросаq. Чтобы выйти из команды mailбез каких-либоизменений в почтовом файле, следует воспользоваться запросом-. Это полезно в случае,если некоторые письма были уничтожены по ошибке.В процессе обработки корреспонденции нажатие клавиши (del. приводит к прекращению выполнения текущего действия (обычно печати письма); выдается приглашение для ввода следующего запроса. Почту можно послать одному или нескольким пользователям спомощью команды:

mailjnc ken

текстписьма

которая отправит письмо указанным пользователям (jnc, ken), дополнив его именем отправителя и почтовым штемпелем. Текст письма заканчивается признаком конца файла или литерой., введенной наотдельной строке.Если в процессе составленияписьма произойдеткакоелибо прерывание, тонедописанное письмо будет сохраненов файлеdead.letter в регистрационном оглавлении пользователя,ипроизойдетвыходизкомандыmail.

Командаwrite

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

Write bill

проверит, работает ли пользователь bill в системе в данный момент, и, если да, пошлет на его терминалсообщениевида

message from srb on tty20 at 13:36

(сообщение от пользователя srb с терминала 20, время 13:36). Если пользователь bill вошел в систему более чем с одного терминала, то команда bill сообщит об этом и выберет для связи один из этих терминалов. По принятому протоколу взаимодействияbill должен ответить вводом команды

Соседние файлы в папке docs