- •1. Понятие вычислительной системы
- •1.1. Модель вычислителя
- •1.2. Модель коллектива вычислителей
- •1.3. Понятие параллельных алгоритмов
- •1.4. Принципы технической реализации модели коллектива вычислителей
- •1.9. Распределенные вычислительные системы
- •1.5. Классификация архитектур вычислительных систем
- •1.6. Конвейерные вычислительные системы
- •1.7. Матричные вычислительные системы
- •1.8. Мультипроцессорные системы
- •1.10. Вычислительные системы с программируемой структурой
- •1.11. Примеры реализаций вычислительных систем.
- •2. Аппаратные средства вс
- •2.1. Прерывания
- •2.2. Многомодульное программирование
- •2.3. Реализация архитектурных решений. Обзор технологий процессоров Intel
- •3. Ос. Основные понятия и типы операционных систем
- •3.1. Основные технологии программирования
- •3.2. Общие подходы к построению ос. Классификация ос.
- •3.3. Основные функции ос
- •3.4. Подходы к построению ос.
- •3.5. Виртуализация
- •3.6. Подходы Oracle
- •3.7. Центры обработки данных (цод)
- •Инструментарий ос (на основе Windows)
- •Основные базовые понятия: процессы и потоки
- •Инструментарий
- •Режим ядра и пользовательский режим
- •Средства изучения внутреннего устройства Windows
- •Основные концепции построения Windows
- •Архитектура современных ос
- •Лекция Основные требования при проектировании
- •Модель ос Windows
- •Обзор архитектуры
- •Многопроцессорная обработка
- •Различия между клиентскими и серверными версиями ос Windows
- •Лекция. Проверочный выпуск ос
- •Ключевые компоненты системы
- •Подсистема окружения
- •Подсистема окружения Windows
- •Исполнительная система Windows
- •Объекты ядра
- •Поддержка оборудования
- •Уровень абстрагирования от оборудования (Hardware Abstraction Layer)
- •Драйверы устройств в ос Windows
- •Недокументированные интерфейсы
- •Системные процессы
- •Прерывания (interrupts) и dpc (deferred procedure calls)
- •Процесс system и его потоки
- •Диспетчер сеансов
- •Диспетчер управления сервисами
- •Системные механизмы Windows
- •Виртуальная память
- •Режим ядра и пользовательский режим
- •Другие механизмы
- •Уровни запросов программных прерываний
- •Объекты прерывания
- •Программные прерывания
- •Прерывания apc (Asynchronous Procedure Call)
- •Диспетчеризация исключений
- •Необработанные исключения
- •Поддержка отчетов об ошибках
- •Диспетчеризация системных сервисов
- •Диспетчеризация 32-разрядных системных сервисов
- •Диспетчеризация системных сервисов режима ядра
- •Диспетчер объектов
- •Объекты исполнительной системы
- •Структура объектов в Windows
- •Заголовки и тела объектов
- •Объекты типа
- •Атрибуты объекта типа
- •Методы объекта
- •Описатели объектов и таблица описателей
- •Глобальные флаги Windows
- •Трассировка событий ядра
- •Управление процессами и потоками
- •Внутреннее устройство процессов
- •Создание процессов
- •Внутреннее устройство процессов. Структуры данных
- •Внутреннее устройство потоков
- •Основные блоки описания потоков в ос Windows
- •Взаимодействие процессов (ipc)
- •Взаимоисключения
- •Синхронизация в Windows
- •Спин-блокировки
Управление процессами и потоками
Объект «процесс», как и другие объекты, содержит заголовок, создаваемый и инициализируемый диспетчером объектов. В заголовке хранятся атрибуты объекта такие как идентификатор процесса, маркер доступа, базовый приоритет.
Тело объекта «процесс» состоит из атрибутов, которые определяет диспетчер объектов. В соответствии с атрибутами, определяются сервисы, которые можно использовать для объекта «процесс».
К экзамену знать 2-3 атрибута и сервиса для объектов «процесс» и «поток»
Объект «поток» тоже описывается структурой, имеющей заголовок и сервисы, которые с объектом можно использовать.
Внутреннее устройство процессов
Модель процесса (слайд 10). Весь вычислительный процесс вычислительной системы состоит из набора процессов.
Процесс – некоторая абстракция, у которой есть текущее состояние счетчика команд, показывающее, по какому адресу должна выполняться следующая команда, состояние регистров и переменных.
У процесса существует также некоторая управляющая информация, позволяющая использовать ее для загрузки и выполнения образа или контекста процесса.
Замечание: различие между процессом и исполнительным модулем принципиально.
Знать различие между процессом и исполнительным модулем
Таненбаум. Современные ОС.
Создание процессов
События, приводящие к созданию процессов:
1) инициализация системы
2) выполнение системного запроса на создание процесса
3) запрос пользовательского приложения на создание процесса
4) инициирование пакетного задания.
Как правило, при загрузке ОС создается несколько процессов сразу. Одни из созданных процессов являются высокоприоритетными, другие фоновыми. В некоторых ОС фоновые процессы называются демонами.
Процессы, как правило, создаются и завершаются в ходе вычислительного процесса.
Каждый процесс имеет свое состояние, которое показано на слайде 11.
1) выполнение (running);
2) готовность к выполнению (ready);
3) заблокирован, ожидает завершения какого-либо события.
Завершение процессов. Каждый процесс может завершиться, как правило в следующих случаях:
1) штатный выход – после завершения процесс сообщает ОС, что закончил работу Windows API ExitProcess();
2) Преднамеренная или непреднамеренная ошибка, например, попытка запуска процесса, образа которого нет по указанному пути к файлу;
3) аварийное завершение – как правило, в серьезных ОС указываются каталожные номера ошибок причин возникновения ошибок;
4) выполнение недействительной операции, например, деление на ноль или обращение к недействительному адресу.
Как может получиться недействительная операция?
Недействительная операция – когда нет команды в системе команд процессора, она не может быть распознана и выполнена.
5) завершение процесса другим процессом – например TerminateProcess().
Замечание: состояние процесса меняется в течение времени. Из готовокого к выполнению он может стать выполняющимся и т.д. Процесс может находиться в состоянии ожидания какого-либо события. Поэтому существует определенный механизм, позволяющий процессу отслеживать, состоялось это событие или нет.
Например, в ОС MVT фирмы IBM предусматривался механизм синхронизации Post-Wait. По команде Wait процесс останавливался до завершения какого-либо события. Событие указывалось в ECB = FLAG (EventControlBlock). Как только FLAG станет «1», процесс возобновлял работу.
Каждый процесс описывается своей таблицей. Одно из полей, которое указывает на таблицу процессов: регистры, счетчики команд, слово состояний, указатель на вершину стека и т.д. Это нужно для того, чтобы один выполнение контекста одного процесса можно было переключать на выполнение контекста другого процесса.
Потоки. Поток является продолжением и дополнением к модели процесса. Идея заключается в том, что организуется возможность выполнять в одной и той же среде процесса несколько исполнительных модулей – потоков. Все ресурсы процессора являются общими ресурсами всех потоков процесса.
Каждый поток также имеет свой счетчик команд, область сохранения регистров, свой стек и т.д. Сходно по описанию с блоков описания процесса. Кроме того, в него включаются и данные родительского процесса, который его породил. Поток, так же как процесс, имеет состояния: выполнение, готовность и заблокирован.
Запуск и завершение потока может осуществляться на основе Windows API ThreadCreate, ThreadExit. Существует несколько опций по управлению запуском и завершением потоков.
Достоинство поточной модели заключается в том, что:
1) позволяет исключить блокировку процесса в случае его однопроточного режима (т.е. если в процессе несколько потоков, то приостановка одного из них не вызывает приостановку процесса в целом);
2) позволяет снизить системные издержки на диспетчирование процессов и потоков. Потоки являются частью процесса, используют процессную память, открытые файлы. и другие ресурсы, поэтому сокращается количество обращений по открытию файлов для потоков, например;
3) позволяет повысить эффективность вычислений разнесением быстрых и медленных вычислений по потокам;
4) использование параллелизма вычислений – разные потоки выполняются, например, на разных процессорах или ядрах.
