- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •1.1. Управление процессами
- •1.2. Управление памятью
- •1.3. Управление файлами и внешними устройствами
- •Функциональные компоненты операционных систем: подсистема управления задачами
- •2.1. Защита данных и администрирование
- •2.2. Интерфейс прикладного программирования
- •2.3. Пользовательский интерфейс
- •Архитектура операционных систем: ядро и вспомогательные модули ос
- •Модулями ос
- •Архитектура операционных систем: ядро в привилегированном режиме
- •В привилегированном режиме
- •К привилегированному ядру
- •Архитектура операционных систем: многослойная структура ос
- •Типовые средства аппаратной поддержки операционных систем
- •Концепция, преимущества и недостатки микроядерной архитектуры
- •Пространство
- •Мультипрограммирование. Реализация в системах пакетной обработки
- •Ввода-вывода
- •В мультипрограммной системе (б)
- •Мультипроцессорная обработка: сущность и характеристика
- •Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах
- •Планирование и диспетчеризация потоков в мультипрограммных системах
- •Состояния потока в мультипрограммных системах
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Синхронизация процессов и потоков: цели и средства синхронизации
- •Синхронизация процессов и потоков: гонки и тупики
- •Синхронизация процессов и потоков: критическая секция, блокирующие
- •Синхронизация процессов и потоков: использование семафоров
- •Синхронизация процессов и потоков: синхронизирующие объекты ос
- •Функции операционных систем по управлению памятью
- •Управление памятью: виртуальное адресное пространство и виртуальная память
- •Алгоритмы распределения памяти: распределение памяти фиксированными разделами
- •Алгоритмы распределения памяти: распределение памяти динамическими разделами, перемещаемые разделы
- •Управление памятью: страничное распределение
- •Управление памятью: сегментное распределение
- •Управление памятью: сегментно-страничное распределение
- •Мультипрограммирование на основе прерываний: диспетчеризация и приоритезация прерываний в ос
- •Мультипрограммирование на основе прерываний: системные вызовы
- •Управление вводом-выводом в операционной системе: основные понятия и концепции организации ввода/вывода
- •Режимы управления вводом/выводом. Основные системные таблицы ввода/вывода
- •2.1. Режимы управления вводом/выводом
- •2.2. Основные системные таблицы ввода-вывода
- •Управление вводом-выводом в операционной системе: кэширование операций ввода/вывода при работе с накопителями на магнитных дисках
- •Управление файлами: общий принцип работы операционной системы с файлами
- •Управление файлами: общая характеристика файловых систем (fat, fat32 и ntfs)
- •2.1. Файловая система fat
- •2.2. Файловые системы vfat и fat32
- •3. Файловая система ntfs
- •3.1. Структура тома с файловой системой ntfs
- •3.2. Возможности файловой системы ntfs по ограничению
- •Сетевые и распределенные операционные системы
- •Функциональные компоненты сетевой операционной системы
- •Одноранговые и серверные сетевые операционные системы
- •Интерфейс прикладного программирования (api)
- •1.1. Принципы построения интерфейсов ос
- •1.2. Варианты реализации функций api
- •1). Реализация функций api на уровне ос
- •2). Реализация функций api на уровне системы программирования
- •3). Реализация функций api с помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •Технологии программирования сом
Функции операционных систем по управлению памятью
Функции операционных систем по управлению памятью
Память является важнейшим ресурсом, требующим тщательного управления со стороны.
С появлением мультипрограммирования на ряду с задачей загрузки в ОП (основную память) прикладных программ перед ОС появились новые задачи, а следовательно у неё появились новые функции.
Функции ОС по управлению памятью в мультипрограммной системе:
отслеживание свободной и занятой памяти;
выделение памяти процессам и освобождение памяти по завершению процессов;
вытеснение кодов и данных процессов из оперативной памяти на диск (полное или частичное), когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место;
настройка адресов программы на конкретную область физической памяти;
динамическое распределение памяти;
дефрагментация памяти;
защита памяти.
Для реализации названных функций требуется уточнить некоторую терминологию, в частности какие существую типы адресов (пояснение 4й функции)
Рис.1 Типы адресов
Рис. 1. Типы адресов
Символьные имена – присваивает программист при написании программы на языках высокого уровня java или accembler.
Виртуальные адреса (условные адреса) – вырабатывает транслятор, переводящий программу на машинный язык
Физические адреса – соответствую номерам ячеек оперативной памяти, где в действительности расположены или будут расположены или будут расположены переменные команды
Для ОС самым важным является преобразование из виртуальные адресов в физические.
Совокупность виртуальных адресов процесса называется виртуальным адресным пространством
Следует сказать, что виртуальное адресное пространство создается ОС для каждого процесса, при этом для 32-разрядных машин будет вот такой объём адресного пространства
Рис. 2 – Виртуальные адресные пространства нескольких программ
Рис. 2. Виртуальные адресные пространства нескольких программ
Управление памятью: виртуальное адресное пространство и виртуальная память
Виртуальные адреса (условные адреса) – вырабатывает транслятор, переводящий программу на машинный язык
Физические адреса – соответствую номерам ячеек оперативной памяти, где в действительности расположены или будут расположены или будут расположены переменные команды
Для ОС самым важным является преобразование из виртуальные адресов в физические.
Совокупность виртуальных адресов процесса называется виртуальным адресным пространством
Следует сказать, что виртуальное адресное пространство создается ОС для каждого процесса, при этом для 32-разрядных машин будет вот такой объём адресного пространства
Рис. 2 – Виртуальные адресные пространства нескольких программ
Рис. 2. Виртуальные адресные пространства нескольких программ
Таким образом, совпадение виртуальных адресов переменных и команд различных процессов не приводит конфликтов, т.к. ОС отображает их на разные физические адреса.
Такой подход снимает ограничение по объёмам использованной памяти с программистом, ОС сделаёт всё как надо.
Технология управлению памятью со стороны ОС во многом зависит от способов структуризации виртуального адресного пространства. Различают:
Непрерывные линейные последовательные виртуальных адресов
Рис. 3 а) - плоское
Для определения адресов требуется одного числа m – смещения
Сегментное распределение виртуальных адресов
Рис. 3 б) - сигментированное
В этом случае определение нужного адреса необходимо знание двух значений: m – смещение, n – номер сегмента.
Рис. 3. Типы виртуальных адресных пространств: плоское (а),
сегментированное (б)
Современные ОС используют и более сложные способы структуризации памяти (например, сегментно-страничное/странично-сегментное)
Данные виды структур виртуальной памяти необходимо учитываются ОС при преобразовании виртуальных адресов в физические. Для решения этой задачи существуют два отличающихся подхода:
Замена виртуальных адресов на физические выполняется один раз для каждого процесса в ходе его начальной загрузки. Для этого в ОС есть специальный модуль – перемещающий загрузчик
Программа загружается в неизменном виде в виртуальных адресах, а по мере выполнения программы каждый раз происходит преобразование адресов с учётом заданного смещения.
Рис. 4. – Схема динамического преобразования адресов
Рис. 4. Схема динамического преобразования адресов
2й подход, с точки зрения удобства, значительно лучше 1го, т.е. является более гибким, но менее экономичным, с точки зрения производительности.
Кроме структуры виртуальной памяти и способа преобразования виртуальных адресов в физические для управления памятью важным является учёт соотношений назначенного виртуального пространства и существующего физического пространства
Под максимальным возможным виртуальным адресным пространством процесса понимают максимальный размер виртуального адресного пространства, определяемый архитектурой компьютера, на котором работает ОС.
Назначенное виртуальное адресное пространства представляет собой набор виртуальных адресов, действительно нужных процессу для работы.
Рис.5. Соотношение объёмов ФП
Рис. 5. Соотношение объемов виртуального адресного пространства и
физической памяти:
- виртуальное адресное пространство превосходит объем физической памяти (а),
- виртуальное адресное пространство меньше объема физической памяти (б)
Рисунком 5 поясняется соотношение назначенного адресного пространства и физической памяти
На рис. 5 а) ВАП превосходит объём ФП
На рис. 5 б) ВАП меньше объёма ФП
На рис. а) имеется в виду, что для отдельных процессов ФП может не хватить, поэтому ОС заблаговременно в режиме свопинга выделяют свободные участки внешней памяти для отображения назначенной виртуальной памяти процессов на эти участки.
Для эффективного управления памяти ОС должна учитывать, что прикладные процессы реализуются во взаимодействии с системными процессами. Поэтому можно сказать, что виртуальное адресное пространство процесса делится на две непрерывные части:
системная;
пользовательская.
Поэтому при смене активного потока одного процесса на поток другого процесса требуется заменить только вторую часть ВАП, что показано на рис. 6. (Общая и индивидуальные части виртуальных адресных пространств)
Рис. 6. Общая и индивидуальные части виртуальных
адресных пространств
Такой подход позволяет существенно экономить процессорное время, а следовательно повысить производительность ВС.