
- •Введение. Основные понятия и определения.
- •Раздел 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)
Введение. Основные понятия и определения.
Операционная система - это комплекс программ, которые выполняют функции посредника между пользователем и компьютером.
ОС, выполняя роль посредника, служит двум целям:
эффективно использовать компьютерные ресурсы.
создавать условия для эффективной работы пользователя
Основные компоненты ОС:
управление процессами (распределяет ресурс — процессорное время);
управление памятью (распределяет ресурс — адресное пространство основной памяти);
управление устройствами (распределяет ресурсы) — оборудование ввода - вывода;
управление данными (распределяет ресурс — данные или файлы).
Функционирование компьютера после включения питания начинается с запуска программы первоначальной загрузки — Boot Track. Программа Boot Track инициализирует основные аппаратные блоки компьютера и регистры процессора (CPU), накопитель памяти, контроллеры периферийного оборудования. Затем загружается ядро ОС, то бишь Operating System Kernel. Дальнейшее функционирование ОС осуществляется как реакция на события, происходящие в компьютере. Наступление того или иного события сигнализируется прерываниями - Interrupt. Источниками прерываний могут быть как аппаратура (HardWare), так и программы (SoftWare).
Аппаратура “сообщает” о прерывании асинхронно (в любой момент времени) путем пересылки в CPU через общую шину сигналов прерываний. Программа “сообщает” о прерывании путем выполнения операции System Call. Примеры событий, вызывающих прерывания:
попытка деления на 0
запрос на системное обслуживание
завершение операции ввода - вывода
неправильное обращение к памяти
Каждое прерывание обрабатывается соответственно обработчиком прерываний (Interrupt handler), входящим в состав ОС.
Главные функции механизма прерываний — это:
распознавание или классификация прерываний
передача управления соответственно обработчику прерываний
корректное возвращение к прерванной программе
Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Такая таблица называется вектором прерываний (Interrupt vector) и хранится в начале адресного пространства основной памяти (UNIX/MS DOS).
Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний, содержимое регистров процессора запоминается либо в памяти с прямым доступом либо в системном стеке — System Stack.
Обычно запрещаются прерывания обработчика прерываний. Однако, в некоторых ОС прерывания снабжаются приоритетами, то есть работа обработчика прерывания с более низким приоритетом может быть прервана, если произошло прерывание с более высоким приоритетом.
Раздел 1. Организация программ.
1 .1. Модульный принцип разработки и организации программ
Алгоритм (algorithm) – это содержание и последовательность операций, точно определяющие решение задачи путем вычислительного процесса, преобразующего исходные данные в конечный результат.
Свойства алгоритма:
результативность
детерминированность - однозначность результата при заданных исходных данных;
конечность
варьированность - способность получения результата для множества исходных данных, соответствующих множеству однотипных задач.
Алгоритм должен иметь возможность расчленения процесса на конечное число отдельных операций.
Цель деления алгоритма на части:
уменьшить сложность
сделать возможной параллельную разработку.
Составные части можно рассматривать как объект программирования. В результате программирования эти части превращаются в исходные модули (будучи программируемыми на некотором языке программирования).
Части исходного алгоритма только тогда являются частями целого, когда у них есть связи.
Модули также имеют связи. Существует два типа связей:
связь по данным (данные одного модуля передаются в другой)
связь по управлению, которая реализуется через вызовы (выполнение модуля 2 вызывается из первого модуля).
Исходные модули1хранятся как файлы или библиотеки.
Система программирования - это то, что используется на дальнейших этапах, позволяет превратить исходные модули в объектные (в результате трансляции2). Объектные модули3, будучи ориентированы на определенную архитектуру, имеют форму близкую к выполнимой. Объектные модули являются элементами соответствующих библиотек или просто файлами. Для решения задачи объектные модули должны быть связаны друг с другом по данным и управлению. Независимость трансляции порождает определенные проблемы их объединения. Эта задача должна быть решена абсолютно корректно. Ее решает не программист, а программное обеспечение. Объектные модули объединяются с помощью системных программ (редакторов связей), которые из библиотек объектных модулей строят целое путем установления связей. Результатом работы редактора связей является загрузочный модуль4.
На каждом этапе создания загрузочного модуля работают разные программы:
редакторы текстов
отладчики и трансляторы
редакторы связей
загрузчики5
Загрузочный модуль – это программный модуль в виде, пригодном для загрузки и выполнения. Загрузочный модуль может быть помещен в ОП для выполнения. Обычно этот файл не является образом выполняемой программы. Он представлен в некотором, удобном для хранения, виде. Загрузочный модуль должен быть переместимым6. Это необходимо для многопрограммного режима работы.
Загрузка7– это помещение модуля в память и настройка на определенный адрес.