
- •1.Операционные системы.
- •2 . Архитектура ос.
- •4. Страничная организация виртуальной памяти.
- •5. Стратегии вытеснения страниц
- •6. Совместный доступ к памяти
- •7. Основы api Win32. Примеры.
- •8.Вытесняющая многозадачность, планирование.
- •10. Создание потоков (нитей, threads) и управление потоками.
- •11. Классы для работы с потоками
- •12. Синхронизация потоков. Критические секции
- •В начале критической секции необходимо вызвать подпрограмму api
- •13. Объекты синхронизации и функции ожидания
- •Wait-функции
- •14. Семафоры, мьютексы, события
- •Семафор создается функцией
- •InitialCount: longint; // Начальное число потоков, // допущенных к объекту
- •4.4. События (Event)
1.Операционные системы.
Классификация, примеры, функциональные компоненты
Операционная сис.-базовый комплекс компьютерных программ, обеспечевающих интерфейс с пользователем, управление аппаратными стредствами комп., работу с файлами, ввод-вывод, выполн-е прикладных программ и утилит.
ОС классифицируют:
По алгоритму управления ресурсами:
-по числу одновременно выполняемых з-ч ос могут быть однозадачные(ms-dos) и многозадачные(windows).
По числу одновременно работающих пользователей: однопользовательские (ms-dos) и многопользовательские (windows).
По реализации многозадачности:вытесняющая и невытесняющая.
По типу аппаратных платформ: персональные, mainframe.
Обычно в состав ос входят:
Исполняемые модули и объектные модули, библиотеки различных типов, загрузчики, драйверы, файлы конфигураций и документация.
Функции операционной системы объединяют в подсистемы, в соответствии с задачами. Наиболее важными подсистемами являются подсистема управления процессами, памятью, файлами и внешними устройствами, а подсистемами, общими для всх ресурсов являются подсистемы пользовательского интерфейса, защиты данных и администрирования.
2 . Архитектура ос.
ОС Windows состоит из компонентов, работающих в режиме ядра, и компонентов, работающих в режиме пользователя. Несмотря на миграцию системы в сторону монолитного ядра она сохранила некоторую структуру. В схеме, представленной рис отчетливо просматриваются несколько функциональных уровней, каждый из которых пользуется сервисами более низкого уровня.
Задача уровня абстрагирования от оборудования (hardware abstraction layer, HAL) - скрыть аппаратные различия аппаратных архитектур для потенциального переноса системы с одной платформы на другую.
Ядром обычно называют все компоненты ОС, работающие в привилегированном режиме работы процессора или в режиме ядра. Корпорация Microsoft называет ядром (kernel) компонент, находящийся в невыгружаемой памяти и содержащий низкоуровневые функции операционной системы, такие, как диспетчеризация прерываний и исключений, планирование потоков и др. Оно также предоставляет набор процедур и базовых объектов, применяемых компонентами высших уровней.
Исполнительная система (executive) обеспечивает управление памятью, процессами и потоками, защиту, ввод-вывод и взаимодействие между процессами. Драйверы устройств содержат аппаратно-зависимый код и обеспечивают трансляцию пользовательских вызовов в запросы, специфичные для конкретных устройств. Подсистема поддержки окон и графики реализует функции графического пользовательского интерфейса.
В пространстве пользователя работают разнообразные сервисы, управляемые диспетчером сервисов и решающие системные задачи. Некоторые системные процессы (например, обработка входа в систему) диспетчером сервисов не управляются и называются фиксированными процессами поддержки системы. Пользовательские приложения (user applications) бывают пяти типов: Win32, Windows 3.1, MS-DOS, POSIX и OS/2 1.2. Пользовательские приложения не могут вызывать системные вызовы ОС Windows напрямую, а вынуждены обращаться к DLL подсистем (краткое определение dll имеется в приложении).
Основные компоненты ОС Windows реализованы в следующих системных файлах, находящихся в каталоге system32:
ntoskrnl.exe - исполнительная система и ядро;
ntdll.dll - внутренние функции поддержки и интерфейсы диспетчера системных сервисов с функциями исполнительной системы;
hal.dll - уровень абстрагирования от оборудования;
win32k.sys - часть подсистемы Win32, работающая в режиме ядра;
kernel32.dll, advapi32.dll, user32.dll, gdi32.dll - основные dll подсистемы Win32.
3. Управление оперативной памятью (ОП). Основные подходы.(я незнаю, то ли я тут понаписал, что надо, крыжко этого не рассказывал, в инете либо ничего, либо такие дебри, ясно станет на консультациии, что надо тут писать)(с)Дима Глушков
Функциями ОС по управлению оперативной памятью являются:
1)отслеживание свободной и занятой памяти
2)выделение памяти процессам и освобождение по завершении
3)вытеснение данных на жесткий диск, когда размеры ОП не достаточны для размещения всех процессов и возвращение их назад.
4)помимо первоначального выделения памяти динамическое распределение(если во время выполнения процесса потребовалась дополнения память).
5)дефрагментация памяти6)защита памяти(во время чтения не позволять процессу производить запись)
Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые этого не делают. Самый простой способ управления памятью - разделение на несколько разделов фиксированной величины. При поступлении очередной задачи подсистема управления памятью:
-Сравнивая размер поступившей программы(задачи) и размер свободных разделов, выбирает подходящий раздел .
-Осуществляет загрузку программы и настройку адресов.
Разделение памяти разделами переменной величины. В этом случае память не делится заранее на разделы. Каждый вновь поступающий процесс берёт ровно столько память, сколько ему необходимо. Если памяти для его выполнения не хватает, задача становится в очередь на выполнение. При этом задачи ОС при управлении памятью:
-Ведение таблиц свободных и занятых областей.
-При поступлении новой задачи - просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для поступившей задачи
-Загрузка задачи в выбранный раздел, корректировка таблиц свободных и занятых областей.
Распределение памяти с использованием дискового пространства происходит с применением виртуальной памяти, при этом решаются задачи:
-Размещение данных в устройствах разного типа(часть в оперативной памяти, часть на диске)
-Перемещение данных по мере необходимости ( подгрузка )
-Преобразование виртуальных адресов в физические