
- •Основные понятия ос. Ос как расширенная машина. Ос как система управления ресурсами.
- •Функции ос. Подсистема управления подпрограммами. Диаграмма состояния процесса.
- •Процессы и потоки.
- •Алгоритмы синхронизации потоков. Критическая секция.
- •Синхронизация в режиме ядра. Семафоры, мьютексы. Типичные задачи: производители-потребители и читатели-писатели.
- •Организация памяти компьютера. Логическая память. Сегменты. Связывание адресов.
- •Простейшие схемы управления памятью. Схемы с фиксированными и переменными разделами. Страничная память. Сегментно-страничная организация памяти.
- •Файловые системы.
- •Архитектура ос. Ядро и вспомогательные модули. Микроядерная архитектура. Преимущества и недостатки.
- •Программирование, управляемое событиями. Простейшее приложение Windows.
- •Окна в Windows. Функции окна. Класс окна.
- •Обработка сообщений. Приложение с обработкой сообщений.
- •Вывод текста в окно. Контекст отображения.
- •Стили окна. Приложение, использующее предопределенные в Windows стили окна.
- •Работа с файлами в Windows.
Синхронизация в режиме ядра. Семафоры, мьютексы. Типичные задачи: производители-потребители и читатели-писатели.
Типовыми задачами, где используется синхронизация процессов, является задача: потребитель-производитель (доступ к буферу в оперативно памяти нескольких потоков) и читатель-писатель (доступ к данным на внешнем устройстве) Математически обоснованными алгоритмами решений этих задач является алгоритм Деккера и более простой вариант – алгоритм Петерсона. Обобщение этих алгоритмов на n-процессов называется алгоритм булочной.
Средства синхронизации в режиме ядра. Основное средство – семафоры – представляют собой целую переменную, которая принимает не отрицательные значения и к которой осуществляется доступ через две атомарные операции.
Реализация:
HANDLE CreateSemaphore( PSECURITY_ATTRIBUTE psa, LONG lInitialCount, LONG lMaximumCount, PCTRTR pszName)// lInitialCount – начальное значение счетчика.
HANDLE OpenSemaphore( DWORD fdwAccess, BOOL bInhentHandle, PCTSTR pszName); – открыть семафор.
Реализуется:
DWORD WaitForSingleObject(HANDLE obj, DWORD Miliseconds); // если счетчик = 0, то ставит его в очередь ожидания.
BOOL ReleaseSemaphore( HANDLE hSem, LONG lReleaseCount, PLONG p]PreviousCount);
Мьютекс – двоичный семафор, реализует взаимоисключение, аналог критической секции для пользовательского режима.
Монитор - объектно-ориентированные средства, содержат собственные внутренние данные и функции.
Все средства синхронизации ядра эквивалентны, т.е. через любое из них можно реализовать другое.
Организация памяти компьютера. Логическая память. Сегменты. Связывание адресов.
Память компьютера делиться на основную, оперативную и вторичную оперативную. Оперативная и вторичная оперативная память является энергозависимой, а основная – энергонезависимой. В энергонезависимой части памяти находится BIOS – базовая система ввода/вывода.
Существует виртуальная память, которая находится на внешних устройствах. При этом интерфейс
доступа к ней такой же как и к оперативной памяти.
Процессор Intel поддерживает доступ к виртуальной памяти на аппаратном уровне.
Логическая память. Схема управления памятью, которая поддерживает представление программиста об организации хранения программ и данных, называется сегментацией. Сегмент – область памяти, внутри которой поддерживается линейная адресация.
Первоначально сегменты появились в связи с необходимостью обобществления процессами фрагментов программного кода, это позволило и исключить дублирующую информацию. Память таким образом перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номера сегмента и смещения внутри сегмента.
Т.о. логические и физические адресные пространства ни по организации ни по размеру не соответствуют друг другу. Максимальный размер логического пространства определяется размерностью процессора.
Логическое пространство значительно превышает размер физического пространства.
Процессор и операционная система осуществляют процесс отображения логических адресов в физические. Этот процесс называется связыванием адресов.