
- •Введение. Основные понятия и определения.
- •Раздел 1. Организация программ.
- •1 .1. Модульный принцип разработки и организации программ
- •1.2. Связи между модулями.
- •Связь по управлению
- •Связь по данным
- •1.3. Структура объектного модуля
- •1.3.1. Принцип редактирования связей9.
- •1.4. Структура программ.
- •1. Программы простой структуры
- •2. Структуры с перекрытиями12
- •1.5. Первоначальная загрузка (Initial Program Loading) – ipl.
- •1.6. Замечание об адресных пространствах:
- •1.7. Динамическая организация программ
- •1.7.1. Загрузка модуля
- •1.7.2. Выделение памяти под загружаемый модуль
- •1.7.3. Реентерабельные14 программы
- •1.7.4. Замечание о динамических параллельных процессах:
- •Раздел 2. Организация мультиобработки
- •Типы систем обработки данных
- •Раздел 3. Управление процессами.
- •3.1 Понятие Процесс. Состояния процесса
- •3.2. Планирование процессов. Понятие очереди.
- •3.3. Взаимодействие процессов. Пользовательский уровень.
- •3.4. Планирование процессора.
- •3.4.1. Критерии планирования процессора.
- •3.4.2. Стратегии планирования процессора. Первый пришел – первый обслуживается (fifo). First Come – First Served (fcfs)
- •Стратегия наиболее короткая работа —sjf
- •Приоритетное планирование.
- •Планирование с использованием многоуровневой очереди.(Multilevel queue scheduling)
- •Планирование с использованием многоуровневой очереди с обратными связями (multilevel feedback queue sheduling)
- •3.5. Многопотоковые процессы
- •Раздел 4. Файловая система.
- •4.1. Основные понятия организации данных
- •4.2. Организация файла
- •4.2.1. Последовательная и произвольная обработка
- •4.3. Организация дисковой памяти
- •4.3.1. Диски – физическая структура
- •4.3.2. Диски – логическая структура
- •4.3.3. Распределение дискового пространства
- •4.3.4. Особенности жестких дисков
- •4.4. Древовидная файловая организация
- •4.4.1. Организация каталогов
- •4.4.2. Создание и удаление файла
- •4.5. Управление дисковым пространством и способы размещения файлов на поверхности
- •4.5.1. Непрерывное распределение
- •4.5.2. Распределение в разброс
- •2. Индексирование кластеров.
- •4.6. Связь программ с файлами.
- •4.6.1. Проблема обеспечения независимости программ от расположения и характеристик файлов
- •4.6.2. Действия open.
- •4.6.2. Действия close.
- •4.7.3. Логическая буферизация.
- •Раздел 5. Управление невиртуальной памятью.
- •5.1. Своппинг. (swapping)
- •5.2. Смежное размещение процессов.
- •5.2.1. Однопрограммный режим.
- •5.2.2 Мультипрограммный режим с фиксированными границами.
- •5.2.3. Мультипрограммирование с переменными разделами. (multiprogramming with a variable number of tasks (mvt).
- •5.2.4. Мультипрограммирование с переменными разделами и уплотнением памяти.
- •5.2.5. Основные стратегии заполнения свободного раздела.
- •5.3. Страничная организация памяти.
- •5.3.1. Базовый метод.
- •5.3.2. Аппаратная поддержка страничной организации памяти.
- •5.4. Сегментная организация памяти.
- •5.4.1. Базовый метод сегментной организации памяти.
- •5.4.2. Разделение сегмента между несколькими процессами.
- •5.4.3. Фрагментация.
- •Раздел 6. Управление виртуальной памятью.
- •6.1. Страничирование по запросу (demand paging).
- •6.2. Замещение страниц.
- •6.3.1. Fifo.
- •6.3.2. Оптимальный алгоритм.
- •6.3.3. Lru — алгоритм (least recently used)
1.4. Структура программ.
1. Программы простой структуры
Это загрузочный модуль, отредактированный статически. Для выполнения ее достаточно загрузить в ОП и передать управление. Структура программы должна размещаться в физической памяти.
Программы простой структуры выполняются с минимальными затратами, оптимальны с точки зрения скорости, но, к сожалению, имеется дефицит ОП.
2. Структуры с перекрытиями12
Большинство программ работает последовательно, никакие две части не работают параллельно. Поэтому нет необходимости загружать в память всю программу, а можно части одного и того же модуля помещать в одно и то же место (перекрывать отработавшую часть нужной).
Рассмотрим программу на модульном уровне.
Программист должен сам принимать решение о том, какие части программы он будет перекрывать. Но не стоит забывать, что выигрыш в памяти ведет к снижению быстродействия. Программист должен создать оверлейную структуру на основе знания программы.
Редактор связей производит адресную настройку и создает таблицу, где будет информация о точках перекрытия и перекрывающихся модулях. Такая таблица называется оверлейной и присоединяется к корневому сегменту, который постоянно находится в ОП.
Характеристики оверлейной организации программ:
Этот способ позволяет выполнять программы, размер которых больше основной памяи.
Это сложный процесс, который требует дополнительных затрат процессорного времени (оверлейные программы медленнее, чем программы простой структуры). Эффективность зависит от того, как программист сделал эту структуру.
Оверлейный модуль строится редактором как загрузочный (все необходимое включается в его состав до выполнения – статическое подключение)
Выполнение программы простой структуры
Д
Выполнение оверлейной программы
Выполнение оверлейной программы требует дополнительных действий, которые нужны если управление передается в модуль или сегмент, которого нет в ОП.
В системах общего назначения для выполнения оверлейных программ используются специальные системные компоненты, которые вызываются, если нужны действия по прерыванию. При выполнении оверлейных программ имеется явная необходимость помещения в ОП отсутствующих частей программы, т.е. организации обращений к ОС, умеющей загружать сегменты (оверлейный супервизор).
Для того, чтобы ОС могла загрузить недостающий сегмент должно возникнуть прерывание, однако на уровне самой подпрограммы прерывание не предусмотрено. Это прерывание загружается искусственным путем с помощью оверлейного редактора.
Редактирование обеспечивает искусственное прерывание в результате подключения перекрывающихся модулей.
При обращении к модулю происходит прерывание, ОС должна его обработать; по известному в таблице адресу будет помещен модуль.
Перекрытие – это затраты процессорного времени на помещение перекрываемых частей в память. Если перекрытие попадет в цикл, то снижение быстродействия может быть значительным.