
- •Введение. Основные понятия и определения.
- •Раздел 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)
4.5.1. Непрерывное распределение
Файл занимает соседние сектора. Достоинство: может быть достигнут наивысшая скорость доступа.Недостаток: такое размещение сложно обеспечить, если не распределять память статически.
4.5.2. Распределение в разброс
Такое распределение возможно только в секторной организации. Файл может занимать любое количество секторов, находящихся в любом месте диска. При расположении в разброс необходим способ связи между секторами одного файла. В каталоге указан только адрес первого сектора, который необходимо связать с остальными. Существует несколько решений:
организация цепей или списков
способ связывания секторов, называемый индексированием
1. Организация цепей или списков. Секторы связываются в цепочки. Возможно два способа организации связей:
Связи хранятся в самом секторе (последние несколько байт представляют собой ссылку или связку со следующим сектором). Связи могут быть двунаправленными.
Связи хранятся отдельно (в секторе хранятся только данные, а связи находятся в FAT)
2. Индексирование кластеров.
При такой организации с файлом связывают таблицу, которая называется дескриптором.
-
№ блока
№ кластера
Индексирование идеально приспособлено для прямого доступа. Индекс определенным образом хранится как часть файла. Практическая реализация метода – многоуровневая индексация.
Применяется для индексирования больших FAT.
4.6. Связь программ с файлами.
4.6.1. Проблема обеспечения независимости программ от расположения и характеристик файлов
Программа работает с файлами, выполняя операции ввода/вывода, т.е. обменивается данными. Если в программе задано физическое имя (том, характеристики файла), то она будет жестко связана с характеристиками файлов и внешних устройств. Это приводит к проблемам при тиражировании программ. Необходимо было разработать идеологию, при которой программа связывалась бы с файлами только при ее исполнении. Возникла следующие идеи.
Метод FCB. При создании программы для каждого файла, с которым программа работает, программист должен построить блок управления файлом (FCB).FCBпредставляет собой область пользовательской памяти определенной длины. ВFCBподдерживается необходимая для работы с файлом информация: устройство, имя, размер, дата, размер записи, текущая позиция в файле и т.д. Следует отметить, что не предусмотрено место для пути к файлу – доступны только файлы текущего каталога. Часть информации (устройство, имя) заполняется программой еще до открытия файла При открытии ОС заполняет другие поляFCB. Пользовательская программа задает параметры для системных функций ОС в поляхFCB, а они со своей стороны возвращают информацию только черезFCB. При этом методе обмен данными между программой и файлом осуществляется через буфер, или так называемую область обмена с диском (Disk Transfer Area - DTA). Адрес буфера поддерживается ОС в указателе наDTA. При запуске программы указатель наDTAуказывает на область в префиксе сегмента программы (Program Segment Prefix). Впоследствии программа может изменить указатель наDTA. Во всех случаях пользовательская программа записывает и читает записи файла через установленную в текущий моментDTA.
Метод ФМ. При этом методе ОС строит блок управления файлом при его открытии. Структура этого блока подобна структуреFCB. Блок строится в рабочих областях ОС и его адрес неизвестен пользовательской программе. Блок (и соответствующий файл) идентифицируется двухбайтовым номером, который ОС возвращает программе после открытия файла – этот номер называется файловым манипулятором. Во всех дальнейших обращениях к системным функциям используется файловый манипулятор. Здесь, в отличии от методаFCB, можно указать не только устройство и имя файла, а полную файловую спецификацию, включающую и путь к файлу. Таким образом непосредственно доступны все файлы, а не только файлы текущего каталога. При открытии файла можно указать какие права доступа имеет программа – только для записи, только для чтения или для чтения и записи. Можно указать и режим совместного использования файла различными процессами. Очень полезна возможность наследования открытых одним процессом файлов другими, активированным им процессом (порожденным процессом). Только некоторые из системных функций, обслуживающих метод ФМ, используютDTA. Как правило, обмен данными между программой и файлами осуществляется при помощи буфера пользователя, адрес которого задается динамически как параметр используемой динамической функции. Это решение более гибко, чем использование статического буфера типаDTA.