- •Операционные системы Оглавление
- •Введение. Общие сведения.
- •1.2 История вычислительной системы
- •1.2.1 Первый период 45 – 55 гг.
- •1.2.2 Второй период 55-60 гг.
- •1.2.3 Третий период 60 – 80 гг.
- •1.2.4 Четвертый период с 80-х годов по наст. Время (персональные компьютеры, сетевые и распределенные системы).
- •1.2.5 Итоги развития вс.
- •1.3 Основные понятия и концепции ос
- •1.3.1 Системные вызовы.
- •1.3.2 Программные прерывания.
- •1.3.3 Файл.
- •1.4 Процессы и потоки. Архитектурные особенности ос.
- •1.4.1 Монолитное ядро.
- •1.4.2 Слоеные системы (Layered Systems)
- •1.4.3 Виртуальные машины.
- •1.4.4 Микроядерная архитектура.
- •1.4.5 Смешанные системы.
- •1.5 Классификация ос
- •2. Процессы и их поддержка в ос.
- •2.1 Понятие процесса.
- •2.2 Состояние процесса.
- •2.3 Операции над процессами и связанные с ними понятия
- •2.3.1 Набор операций.
- •2.3.2 Процесс Control Block и контекст процесса.
- •2.3.3 Одноразовые операции.
- •2.3.4 Многоразовые операции над процессами.
- •2.3.5 Переключение контекста.
- •3.Планирование процесса.
- •3.1. Уровни планирования
- •3.2 Критерии планирования и требовании к алгоритмам.
- •3.3 Параметры планирования
- •3.4 Вытесняющие и невытесняющие планирования
- •3.5 Алгоритмы планирования
- •3.5.1FirstComeFirstServed
- •3.5.2 Round Robin
- •3.5.3ShortestJob–First
- •3.5.4 Гарантированное планирование
- •3.5.5 Приоритетное планирование
- •3.5.6 Многоуровневые очереди (multilevelQueue)
- •3.5.7 Многоуровневые очереди
- •4. Кооперация процессов и основные аспекты в её логической реализации.
- •4.1 Взаимодействующие процессы
- •4.2 Категории средств обмена информацией
- •4.3 Логическая организация механизма передачи информации
- •4.3.1 Установление связи
- •4.3.2 Информационная валентность процессов и средств связи.
- •4.3.3 Особенности передачи информации с помощью линии связи.
- •4.3.4 Надежность средств связи
- •4.3.5 Как завершается связь?
- •4.4 Потоки исполнения
- •5. Алгоритмы синхронизации
- •5.1 Interleaving race condition
- •5.2 Критическая секция
- •5.3 Программные алгоритмы организации взаимодействия процессов
- •5.3.1 Требования, предъявляемые к алгоритму.
- •5.3.2 Запрет прерываний
- •7.8.2 Недостатки алгоритма банкира
- •8.2 Логическая память
- •8.3 Связывание адресов
- •8.4 Функции системы управления памятью
- •8.6 Страничная память
- •8.7 Сегментная и сегментно-страничная организация памяти
- •9. Виртуальная память
- •9.1 Понятие виртуальной памяти
- •9.2 Архитектурные средства поддержки виртуальной памяти
4.3.2 Информационная валентность процессов и средств связи.
Сколько процессов можно задействовать между процессами?
Связь бывает однонаправленной и двунаправленной:
Под однонаправленной связью понимают связь при которой каждый процесс ассоциирован может использовать связь только для приёма, либо только для передачи. Принято называть однонаправленную связь симплексной, двунаправленную связь с передачей информации в разных направлениях – полудуплексной, а двунаправленную связь с возможностью одновременной передачи информации в обоих направлениях – дуплексной.
4.3.3 Особенности передачи информации с помощью линии связи.
Обмен наиболее безопасен. Разделяемую память трудно использовать процессом, запущенным в разных ВС, поэтому каналы сязи получили более широкое применение.
Буферизация
Канал связи может иметь или не иметь буфер.
Есть 3-ри варианта:
буфер 0.
буфер ограниченной ёмкости, линия связи не может хранить более nбайт информации
При использовании канального средства связи при непрямой адресации, под ёмкостью буфера понимают количество информации, которую можно поместить в буфер
Поток ввода/вывода из сообщений
Различают 2-модели передачи данных:
поток ввода/вывода
поток сообщений, весь поток делится и передается частями
Важен вопрос о положении канала связи в системе.Если процесс создавший трубу (pipe) сообщит о её положении другому процессу, сделав вход и выход видимым, то будет создан объект называемыйFIFO. Все каналы могут иметь или не иметь буфер.
4.3.4 Надежность средств связи
Способ связи будет показывать надежность, если при обмене информацией выполняются 4 условия:
Не происходит потери информации
Не происходит повреждение информации
Не появится лишней информации
Не нарушается порядок данных в процессе обмена
Считается, что передача данных через буфер – надежный способ.
Как бороться с ненадежностью? Для обнаружения потерь информации каждые передаваемые сообщения снабжаются контрольной суммой. Если обнаружилось, что блок информации не соответствует своему номеру – он перемещается. Действия по контролю над передаваемой информацией могут выполнять:
ОС
Процессы, которые этими данными обмениваются.
4.3.5 Как завершается связь?
Вопрос прекращения обмена. Важны два аспекта:
Требуется ли от процесса специальные действия по прекращению использования средств коммуникации
Влияют ли сообщения о прекращении использования связи на прекращение других процессов
Если один из взаимодействующих процессов не завершал общения, находится в ожидании получения данных, то ОС должна предпринимать действия для исключения блокирования этого процесса.
4.4 Потоки исполнения
Как уменьшить накладные расходы?
Даже в режиме мультипрограммирования процесс выполняется медленно. Для ускорения можно ввести понятие потока или задействовать внутренний параллелизм.
Можно использовать даже при одном процессе
Во время ввода/вывода ничего не выполняется в процессоре. Вычисляется сумма массивов а+в можно было бы делать параллельно с вводом/выводом массива С
Массив совмещения можно было бы организовать используя два процесса:
Нельзя забывать о переключении контекста и о выделении памяти. Вместе с этим схема будет выглядеть так:
Процесс 1 |
|
Процесс 2 |
Создать процесс 2 |
|
|
Переключение контекста | ||
|
|
Выделение общей памяти |
Ожидание ввода А и В | ||
Переключение контекста | ||
Выделение общей памяти |
|
|
Ввести массив А | ||
Ожидание ввода А | ||
Ввести массив В | ||
Ожидание ввода В | ||
Ввод массива С | ||
Ожидание ввода С | ||
Переключение контекста | ||
|
|
а = а + в |
Переключение контекста | ||
с = с + а |
|
|
Вывод С | ||
Ожидание вывода С |
Для реализации идеи параллелизма вводят новую абстракцию внутри понятия процесс - поток исполнения.
Потоки исполнения процесса разделяют его программный код, глобальные переменные и системные ресурсы, но каждый поток имеет свой программный счетчик, свое содержимое регистра и свой собственный стек.
Теперь процесс оказывается как совокупность взаимодействующих потоков и выделенных ресурсов. Потоки могут порождать потомков. При рождении процесс имеет один потом. Этот параллелизм и приводит к выигрышу во времени.
Потоки различают процессы так же, как это делают традиционные процессы и могут быть использованы те же алгоритмы планирования.