
- •Основные понятия ос. Ос как расширенная машина. Ос как система управления ресурсами.
- •Функции ос. Подсистема управления подпрограммами. Диаграмма состояния процесса.
- •Процессы и потоки.
- •Алгоритмы синхронизации потоков. Критическая секция.
- •Синхронизация в режиме ядра. Семафоры, мьютексы. Типичные задачи: производители-потребители и читатели-писатели.
- •Организация памяти компьютера. Логическая память. Сегменты. Связывание адресов.
- •Простейшие схемы управления памятью. Схемы с фиксированными и переменными разделами. Страничная память. Сегментно-страничная организация памяти.
- •Файловые системы.
- •Архитектура ос. Ядро и вспомогательные модули. Микроядерная архитектура. Преимущества и недостатки.
- •Программирование, управляемое событиями. Простейшее приложение Windows.
- •Окна в Windows. Функции окна. Класс окна.
- •Обработка сообщений. Приложение с обработкой сообщений.
- •Вывод текста в окно. Контекст отображения.
- •Стили окна. Приложение, использующее предопределенные в Windows стили окна.
- •Работа с файлами в Windows.
Основные понятия ос. Ос как расширенная машина. Ос как система управления ресурсами.
Операционная система – это комплекс программ, организующих вычислительный процесс в вычислительной системе. Целью разработки ОС является решение 2-х задач:
представление пользователю вместо реальной аппаратуры некоторой расширенной виртуальной машины, с которой удобнее работать и легче программировать;
повышение качества использования компьютера с помощью рационального управления его ресурсами в соответствии с выбранными критериями.
ОС как расширенная машина: ОС предоставляет пользователю виртуальную машину, которая реализуется с помощью 2-х интерфейсов – программного и пользовательского:
программный интерфейс – тесно связан с понятием операционной среды. Операционная среда – набор интерфейсов, который необходим программам пользователя для обращения к управляющей части ОС (операционной системы).
Совокупность системных вызовов и правил определяет интерфейс прикладного программирования(API).
Программа, созданная для работы в одной ОС, не будет работать в другой. Для преодоления этого ограничения разрабатываются программные среды.
Программная среда – это системное программное окружение, позволяющее выполнять запросы от прикладной программы.
В операционной системе могут быть организованы при помощи эмуляции и другие программные среды. В этом случае можно выполнять программы, созданные для других ОС.
пользовательский интерфейс – делится на интерфейс командной строки и графический интерфейс.
С помощью команд можно запускать приложения, выполнять операции с файлами и
администрировать саму систему. Команды могут группироваться в командные файлы: для MS-DOS .bat. Для выполнения команд и командных файлов используется командный интерпретатор: в MS Windows cmd.exe, в UNIX shell.
Графический пользовательский интерфейс GDI: в UNIX представлен системой X-Windows(графическая оболочка). Системы X-Windows различаются использованием различных менеджеров окон: KDE (на основе Qt 4), GNOME (на основе glib), библиотека GTK+.
Функции ос. Подсистема управления подпрограммами. Диаграмма состояния процесса.
Функции ОС обычно группируются либо в соответствии с типами ресурсов, которыми управляет ОС, либо со специфическими задачами, решаемыми ОС.
Такие группы функций называются подсистемами. Наиболее важные из них – управление программами, управление ОП, управление внешними устройствами.
Подсистема управления программами – обеспечивает одновременный запуск и одновременную работу нескольких процессов. Процесс предоставляется как программа на стадии выполнения.
Программа – статический объект, файлы, с кодом и данными.
Процесс – динамический объект, который возникает в ОС после запуска программы на выполнение. Концепция процесса предусматривает цель – выработать механизм распределения и управления ресурсами.
Термин «ресурс» применяется к многократно используемому стабильному объекту, который запрашивается и освобождается в период их активности.
Т.о. ресурс – это любой объект, который может распределяться внутри ОС. Ресурсы могут быть разделяемыми, когда несколько процессов используют их одновременно, и неделимыми.
Важнейшим разделяемым ресурсом является процессорное время.
Среди существующих вариантов многозадачности выделяют 2 группы: реализующие алгоритмы с вытесняющей и не вытесняющей многозадачностью. Основное различие – централизация планирования процессов.
При вытесняющей многозадачности планирование сосредоточено в ОС, при не вытесняющей – распределено между системой и прикладными процессами. При не вытесняющей многозадачности активный процесс выполняется до тех пор, пока по собственной инициативе не передаст управление ОС.
При вытесняющей многозадачности решение о переключении процесса принимает ОС.
Поскольку процессы могут претендовать на один и тот же ресурс, то на ОС ложится задача поддержания очередей и заявок на такие ресурсы.
Другой задачей является защита выделенных процессом ресурсов от вмешательства других процессов.
ОС выполняет также функцию синхронизации процессов, позволяющую им приостанавливать свое выполнение до наступления какого-либо события.
Диаграмма состояния процесса. Процесс может находиться в активном и пассивном состояниях.
В активном состоянии процесс может конкурировать за ресурсы вычислительной системы.
В пассивном состоянии он известен системе, но за ресурсы не конкурирует. В свою очередь, активный процесс может быть в одном из следующих состояний:
состояние выполнения – все запрошенные ресурсы выделены.
состояние готовности к выполнению – если ресурсы предоставлены, то процесс переходит в состояние выполнения.
состояние блокирования (ожидания) – затребованные ресурсы не могут быть предоставлены либо не завершен ввод/вывод.
Информационная структура процесса. Для того, чтобы система могла управлять процессом, она должна иметь необходимую информацию. С этой целью на каждый процесс заводится информационная структура, называемая дескриптором процесса. Он содержит идентификатор процесса, переменное состояние, адрес и т.д.
В
ыполнение
Готовность Блокировка
(ожидание)