
- •1.2. Операционная среда
- •1.4. Процессы и потоки
- •1.5. Файлы и файловые системы
- •1.6. Память
- •2. Управление процессами 2.1. Концепция процесса
- •2.2. Идентификатор, дескриптор и контекст процессов.
- •2.5. Понятие приоритета и очереди процессов
- •2.8. Понятие событийного программирования
- •2.9. Средства коммуникации процессов
- •2.10. Способы реализации мультипрограммирования.
- •3. Управление памятью 3.1. Организация памяти. Адресное пространство.
- •3.2. Методы управления памятью
- •3.3. Принципы организации виртуальной памяти
- •3.4. Сегментная организация памяти
- •3.5. Страничная организация памяти
- •3.6. Ускорение работы страничной памяти
- •3.7. Принципы замещения страниц
- •3.8. Алгоритмы замещения страниц
- •4. Управление вводом-выводом 4.1. Прерывания от внешних устройств Смотри пункт 1.3 4.2. Классификация устройств ввода-вывода Классификация по способу вывода
- •4.3. Основные принципы организации ввода — вывода
- •4.6. Закрепление устройств, общие устройства ввода-вывода.
- •4.7. Основные системные таблицы ввода-вывода
- •4.8. Синхронный и асинхронный ввод вывод
- •4.9. Организация внешней памяти на магнитных дисках
- •4.10. Кэширование операций ввода вывода при работе с накопителями на магнитных дисках
- •5. Принципы построения и классификация 5.1. Принципы построения
- •5.4. Классификация ос
- •6. Защита от сбоев и несанкционированного доступа
- •6.1. Анализ угроз и уязвимостей ос
- •6.2. Основы криптографии
- •6.3. Механизмы защиты
- •6.4. Надежные вычислительные системы
- •6.6. Инсайдерские атаки
- •6.10. Средства зашиты от вредоносных программ
2.10. Способы реализации мультипрограммирования.
Мультипрограммирование — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ. Пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при последовательном выполнении программ однопрограммный режим, а выполняет другую программу многопрограммный режим.
Многозадачность почти синоним мультпрограммирования — способность ОС, обеспечивающая одновременное но не параллельное выполнение нескольких задач на одном процессоре. Существует несколько типов многозадачности. Самым простым является контекстное переключение, при котором загружаются два или более приложений, но процессорное время предоставляется только основному приложению foreground. Для выполнения фонового приложения background пользователь должен его активизировать. При кооперативной многозадачности фоновые задачи выполняются только во время простоя основного процесса например, ожидания события и только в том случае, если на это получено разрешение последнего.
В режиме разделения времени вытесняющая многозадачность процессорное время разделяется между задачами в соответствии с той или иной схемой приоритета.
Мультипрограммирование было реализовано в двух вариантах — в системах пакетной обработки и разделения времени.
Мультипрограммные системы пакетной обработки так же, как и их
однопрограммные предшественники, имели своей целью обеспечение максимальной загрузки аппаратуры компьютера, однако решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода как это происходило при последовательном выполнении программ в системах ранней пакетной обработки, а переключался на другую готовую к выполнению программу. В результате достигалась сбалансированная загрузка всех устройств компьютера, а следовательно, увеличивалось число задач, решаемых в единицу времени.
В мультипрограммных системах пакетной обработки пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими программами. Для того чтобы хотя бы частично вернуть пользователям ощущение непосредственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем — системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых операционных систем разделения времени, разработанных в середине 60-х годов, были TSS360 компания IBM, CTSS и MULTICS Массачусетский технологический институт совместно с Bell Labs и компанией General Electric.
Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.