
- •Системное по. Цели, задачи, классификация
- •Операционная система. Основные функции ос. Структура операционной системы.
- •Общая характеристика операционных систем Microsoft: семейства dos, Windows
- •Интерфейс прикладных программ (api). Apidos (программные прерывания) и Win32
- •Дисковая подсистема в архитектуре ibmpc
- •Низкоуровневая организация дисковой памяти. Сервис bios доступа к дисковой подсистеме.
- •Понятие файловой системы. Назначение, требования, функции. Способы организации фс.
- •Объекты файловой системы: файлы, директории, логические устройства, другие виды объектов.
- •Файловые системы на основе fat
- •X.2 Файловая система ntfs
- •Служебные структуры fat и их использование
- •Программный интерфейс файловой системы (функции для взаимодействия с фс, файлового ввода-вывода) – dos, Windows Функции общего назначения
- •Файловый ввод-вывод
- •14. Адресное пространство процесса (задачи).
- •15. Приложения Windows (Win 32), разновидности. Структура оконных приложений
- •1. Основные определения
- •2. Особенности приложений Win 32.
- •3. Событийное управление
- •4. Структура приложения
- •16. Окно Win32: назначение, виды, свойства. Оконные классы.
- •17. Создание и управление окнами.
- •18. Событийное управление в Win32. Сообщения и очереди сообщений Windows (Windowsmessages): назначение, структура, отсылка, доставка, обработка Сообщения и очереди сообщений.
- •19. Цикл обработки сообщений. Оконная процедура: назначение, выполнение, способы активизации и завершения.
- •20. Многозадачность, многозадачные операционные системы, особенности выполнения приложений в многозадачной среде. Модель многозадачности Win 32
- •21. Состояния процессов (многозадачная среда). Состояния процессов (потоков)
- •22. Многозадачность в win32. Планирование и выполнения программ в win32
- •23. Процессы win32. Атрибуты и состояния процессов. Порождение процессов и управление ими. Основы управления процессами Win32
- •24. Потоки и многопоточные приложения. Порождение потоков, состояние потоков, управление ими. Основы управления потоками Win32
- •25. Нити – альтернативное управление выполнением программы Управление нитями
- •26. Распределение времени выполнения программ в многозадачной системе. Приоритеты. Распределение времени между потоками (управление приоритетами)
- •27. Приоритеты процессов и потоков win32. Управление приоритетами.
- •28. Взаимодействие процессов/потоков, взаимное исключение, синхронизация (базовые сведения)
- •29. Реализация взаимного исключения. Механизм criticalsection.
- •30. Синхронизация при управлении процессами и потоками
- •31. Функция ожидания
- •32. Использование каналов и почтовых ящиков для обмена данными
- •33. Использование файловой системы для обмена данными
- •X.2.6. Использование сообщения wm_copydata
- •34. Графическая подсистема win32 – общая характеристика, основные принципы.
- •35. Основные объекты win32 gdi. Средства векторной и растровой графики
- •Растровая графика
- •36. Подсистема памяти. Основные задачи, функции, требования
- •37. Виртуальное адресное пространство, управление памятью.
- •38. Динамическое распределение памяти программами (heap). HeapApiWin32.
- •Функции работы с кучами (heap-область)
- •39. Подсистема памяти win32. Регионы(области) памяти. Группы функций api подсистемы памяти. Адресное пространство процесса.
- •40. Управление на уровне менеджера вирнуальной памяти. (vmm)
- •41. Отображение файлов в память Проецирование файлов в память
- •42. Системный реестр windows: назначение, организация, доступ
36. Подсистема памяти. Основные задачи, функции, требования
Основными задачами при управлении памятью являются:
– выделение памяти процессам (программам) и освобождение ее;
– идентификация принадлежности выделенных фрагментов и контроль доступа к ним;
– установка соответствия адресов программ и физических адресов памяти;
– перемещение выделенных фрагментов памяти, в т.ч. и с использованием внешних запоминающих устройств.
Память – второй (наряду с процессорным временем) важнейший ресурс вычислительной системы, распределяемый ее операционной системой. Память играет роль “среды обитания” программ, их “операционного поля”, места размещения обрабатываемых данных. Основу подсистемы памяти ЭВМ составляет физическая память, которая включает:
– оперативное запоминающее устройство (ЗУ) – ОЗУ или RAM (random-accessmemory), “основной” тип памяти, доступный для чтения и записи;
– постоянное ЗУ – ПЗУ или ROM (read-onlymemory), доступное только для чтения;
– внешнее ЗУ – ВЗУ, обычно с магнитным (диски, ленты, кассеты и т.д.) или оптическим типом записи, большой емкости и с низкой стоимостью хранения единицы информации; в дальнейшем здесь рассматриваются в основном дисковые устройства, используемые в т.н. виртуальной памяти.
По назначению память может быть разделена на память программ и память данных. Далее рассматривается т.н. фон-Неймановская архитектура подсистемы памяти: код программ и данные размещаются в физически едином адресном пространстве. Альтернативная архитектура, предусматривающая физически раздельные ЗУ для программ и данных, – т.н. Гарвардская – более распространена в специализированной вычислительной технике. Однако концепция логического разделения адресного пространства применяется в большинстве серьезных ОС.
Традиционно “внутренняя” память организуется как сплошной массив ячеек (слов), доступ к которым осуществляется по адресам. По соображениям производительности желательно, чтобы слова имели одинаковую разрядность, но может допускаться и адресация слов различной длины, например, в x86 – байт (8 бит), слово (2 байта), двойное слово (4 байта), четверное слово (8 байт), 10-байтовое слово. Минимальной единицей адресуемой памяти обычно считается байт.
Выделяются следующие виды адресов:
1) символические – используются при написании программ в читаемом виде, фактически эквиваленты имен элементов данных или элементов аппаратной архитектуры;
2) виртуальные – условные адреса, используемые в загружаемом модуле программы, назначаются транслятором исходя из принятого соглашения (например, начиная с нулевого);
3) логические – адреса времени выполнения программы, которыми она оперирует с точки зрения программиста и которые соответствуют программной модели процессора;
3) физические – соответствуют реальным ячейкам ЗУ данной архитектуры.
Для выполнения загруженной программы ее виртуальные адреса необходимо преобразовать в физические. Это может быть сделано 2 основными способами:
– настройка при загрузке (“раннее преобразование”) – выполняется однократно загрузчиком;
– настройка во время выполнения (“позднее преобразование”) – выполняется в момент обращения к адресам с помощью соответствующих аппаратных и/или программных средств.
В случае ранней настройки логические адреса соответствуют физическим либо однозначно переводятся в них простейшей процедурой. При позднем преобразовании логические адреса соответствуют виртуальным.