- •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
- •Спин-блокировки
3.7. Центры обработки данных (цод)
ЦОД физически – инженерное сооружение большой площади (например, заводы).
OutSourcing – предоставление вычислительных ресурсов.
В России существует около 100 дата-центров.
ОС Циркон-Т (Solaris 9) позволяет организовать облачные вычисления.
Особенностью работы ЦОД является катастрофоустойчивость. Как правило, делают два ЦОД, если вышел из строя один, работает другой.
На американском шаттле стояло пять ЭВМ, решение принималось, если верный результат давали три.
Все ЦОД строятся на кластерах. HP предлагает унифицированный кластерный портфель.
Инструментарий ос (на основе Windows)
Для изучения любой ОС необходимо знание инструментария, который позволяет определить использование вычислительных ресурсов, порядок взаимодействия приложений и организация разграничения доступа. Наиболее проработанными ОС являются ОС линейки Windows. Фирма Microsoft представляет в бесплатное пользование инструментарий, который использовался разработчиками тех или иных компонент ОС.
Основные базовые понятия: процессы и потоки
Принято считать, что внутри ОС Windows организовано совместное функционирование нескольких программ, однако вводится понятие «процесс». Программа – статический набор команд, процесс – набор ресурсов, используемых при выполнении программы.
Процесс Windows включает следующее:
1) закрытое виртуальное адресное пространство – диапазон адресов виртуальной памяти, которым может пользоваться процесс;
2) исполняемая программа: код и данные, проецируемые в виртуальное адресное пространство;
3) список открытых описателей (handles), структур описывающих различные системные ресурсы: память, прерывания, средства синхронизации, коммуникационные порты и др.
4) контекст защиты (Security Context), который называется маркером доступа, идентифицирующий пользователя и его права и привилегии по безопасности;
5) уникальный идентификатор процесса – в ОС Windows также называется идентификатор клиента;
6) минимум один поток, связанный с процессом;
7) указатель на родительский процесс и др.
Поток – некая сущность внутри процесса, получающая процессорное время для своего выполнения, включает следующие элементы:
1) содержимое регистров, доступных процессору и отражающих состояние процессора;
2) два стека: один используется, если процесс исполняется в режиме ядра, другой – в пользовательском режиме;
3) закрытая область памяти (в Windows локальная память потока);
4) уникальный идентификатор потока;
5) контекст защиты и др.
Переменные регистра, стека и локальных областей называются контекстом потока.
Волокна (Fibers) – позволяют приложениям планировать собственные потоки выполнения, т.е. без использования встроенного в ОС механизма планирования потоков (на основе приоритетов). Волокна поэтому еще называют облегченными потоками. Они не видны ядру.
Для использования волокон существует API (Convert Thread to Fiber), позволяющее преобразовать обычный поток в волокно. Само волокно может порождать новые волокна (API Create Fiber). Выполнение волокна, в отличие от потока, поэтому начинается «вручную» с запуска волокна (API switch to fiber). Волокно работает до завершения или до переключения на другое волокно.
Замечание: потоки имеют собственный контекст, но могут записывать и считывать содержимое реальной ОП любого потока процесса. Не могут обращаться в адресное пространство другого процесса. Исключение: некий процесс может предоставлять свою память (часть адресного пространства) как раздел общей памяти (Shared memory section) (API Read process memory, write process memory).
Реализация этого один из бонусов. Запускаются два процесса, один вмешивается в пространство другого ставит там флажок, который нужно увидеть.
С точки зрения безопасности у каждого потока имеются идентификаторы защиты и список управляющих таблиц, описывающих их (описатели файлов, памяти, мьютексов и др.). Каждый процесс обладает маркером защиты. Маркер содержит информацию о полномочиях данного процесса.
Замечание: по умолчанию при запуске потока у него нет собственного маркера, но он может его получить. Существуют также таблицы, которые описывают использование реальной и виртуальной памяти.
Следующим понятием, относящимся к процессам, является «задание» (job), являющееся расширением модели процесса. Используется для того, чтобы представлять группу процессов как единое целое (команда tlist)
Взаимоотношения процессов дочерние-родительские показаны отступами. Имена процессов, родительские процессы которых на данный момент завершились (слайд 4) выравниваются по левому краю.
