- •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.2. Многомодульное программирование
ОС является, как правило, многомодульной программой. Разработку ОС ведет коллектив программистов. Спецификой процесса является то, что перед разработкой устанавливаются так называемые соглашения о связях (link considerations): как осуществляется передача управления и параметров при переходе из одного модуля в другой, как осуществляется совместное обращение к областям реальной ОП и т.д. Один из способов вызова одного модуля из другого – команда процессора call <имя модуля или процедуры>, где процедура может быть внутренней или внешней. Если процедура внешняя, то при ассемблировании (компиляции) ссылка на нее приведет к ошибке.
2.3. Реализация архитектурных решений. Обзор технологий процессоров Intel
Технология Hyper-Threading – улучшенное решение для повышения эффективности загрузки исполнительных модулей процессоров (по статистике загрузка 35%). Для увеличения коэффициента загрузки Hyper-Threading добавляет параллелизм MTLD. Идея: на одном процессоре эмулируются два и ОС посылает два потока инструкций.
Архитектура Net Burst – расширенный суперконвейер (31 этап), улучшенная технология Hyper-Threading, отдельное решение для Intel 64.
Микроархитектура Intel Core (2006 г.) – идея увеличить эффективность и снизить потребляемую энергию (выделяет меньше тепла), повышение производительности. Основных решений шесть.
Микроархитектура Nehalem.
Технология Turbo Boost.
Технология памяти DRAM.
3. Ос. Основные понятия и типы операционных систем
Сайт operating-system.org.
3.1. Основные технологии программирования
Технологии программирования важны с точки зрения ОС, т.к. ОС – это программа, которая разработана в существующей на текущий день технологии программирования. Если известны основные подходы и способы программирования, то можно предположить, что в ОС реализуются эти механизмы.
Г.С. Иванова, книги по программированию
Этапы развития технологии программирования и реализации их механизмов в ОС:
1) Стихийное программирование.
Период первых вычислительных машин, отсутствие сформулированных подходов программирования.
Программисты – великие люди. Программы имели простейшую структуру, писались в машинных кодах, непосредственно загружались в реальную ОП и выполнялись.
ОС как таковых не было. Машинные коды заменялись ассемблером (мнемоникой машинных команд). Появились команды, преобразующие программу на ассемблере в программу машинных команд. Появились понятия подпрограммы, которые можно было использовать из других программ. Типовая программа того времени – главная программа, набор подпрограмм (библиотечные) и глобальные данные, доступные всем подпрограммам.
2) Модульное программирование.
Программа состоит из нескольких модулей, каждый из которых отлаживается отдельно. Появляются программы, состоящие из нескольких подсистем.
Программы имеют иерархическую структуру: блочно-иерархический подход. В основе разработки программ лежат понятия декомпозиции и композиции проблемной задачи, в т. ч. и компонент ОС. Появляются первые операционные системы: однозадачные и многозадачные (1960-1970 г.). Использование модульного программирования позволяло писать достаточно надежные программы (включая ОС), размер которых не превышал 100 тыс. операторов. Недостаток: сложность межмодульных интерфейсов, сложность отладки. Первые ОС, наиболее надежные и популярные фирмы IBM. ОС DOS, MFT, MVT и т.д.
3) Объектный подход
Середина 80-х-конец 90-х.
Идея: создание сложного ПО, основанного на представлении программ в виде объектов, каждый из которых является экземпляром определенного типа (класса). Классы образуют в свою очередь иерархию с наследованием свойств. Идея объектного программирования используется в таких языках как Java, C++, Modula, Pascal.
Основным достоинством объектно-ориентированного программирования по сравнению с модульным является более естественная декомпозиция ПО на отдельные части, которые существенно облегчают его разработку.
На основе объектно-ориентированного программирования были созданы визуальные среды программирования, что позволило облегчить разработку отдельных компонент, например, пользовательского интерфейса. Недостатки технологии объектно-ориентированного программирования: отсутствуют достаточные стандарты компоновки результатов компиляции объектов в единое целое. Имеется проблема компиляции в различных средах одного и того же языка разных производителей.
Изменения реализации одного из программных объектов требуют перекомпиляции всего ПО, использующего данный объект. Представителем ОС является линейка операционных систем WINDOWS.
4) Компонентный подход и case-технологии.
Компонентный подход позволяет строить программное обеспечение из отдельных компонентов, физически отдельно существующих, которые взаимодействуют между собой через стандартные двоичные интерфейсы. В отличие от обычных объектов объекты компоненты можно собрать в динамически вызываемой библиотеке и распространять их в двоичном виде, затем использовать их в любом языке программирования. Компонентный подход лежит в основе технологий, разработанных на базе COM (Component Object Model, компонентная модель объектов) и технологии создания распределенных приложений. Технологии COM фирмы Microsoft – технологии развития COM OLE (object linking and embedding, связывание и внедрение объектов), которая использовалась в ранних версиях WINDOWS. Идея технологии COM: общий порядок взаимодействия объектов любых типов: приложений, компонент ОС, отдельных библиотек и т.д., что позволяет одной части ПО использовать функции и возможности другой части ПО независимо от того, функционируют ли они в пределах одного процесса на одном компьютере или в сети (модификация сети DCOM). В соответствии с технологией COM приложение представляет свои службы, используя специальные объекты COM. Каждый объект COM является экземпляром класса COM. В отличие от обычных объектов, объект COM может обеспечить несколько интерфейсов (параметров) для доступа к выполнению им тех или иных функций. Это достигается засчет таблицы адресов (адресов функций или методов объекта), осуществляя переход по тому или иному адресу, выполняется функция объекта. Возможно объединение одним интерфейсом нескольких однотипных функций объекта. Кроме того, каждый интерфейс имеет свое имя – идентификатор. Объект всегда функционирует в составе сервера – динамической библиотеки или исполняемого файла, которые обеспечивают функционирование объекта.
Различают три типа серверов:
1) внутренний – реализуется динамическими библиотеками, которые подключаются ОС к приложению-клиенту и работают в одном с ним адресном пространстве (наиболее эффективное построение сервера), не требуя специальных средств, можно перейти на выполнение по адресу.
2) локальный – создается отдельным процессом (например, запускается с помощью исполнительного модуля .exe), который работает на одном компьютере с клиентом.
3) удаленный сервер – создается процессом, который работает на другом компьютере (пример: Microsoft Word – локальный сервер, включает множество объектов, которые могут использоваться другими приложениями). Для обращения к службам сервера клиент посылает запрос к библиотеке COM, которая хранит информацию о всех зарегистрированных в системе классах COM объектов и передает в качестве параметра ей имя класса, идентификатор интерфейса и тип сервера. Библиотека запускает этот сервер, создает требуемые объекты и возвращает клиенту указатели на объекты-интерфейсы (адреса, по которым можно вызвать функции). Получив указатели, клиент может это сделать. На базе технологии COM и DCOM были разработаны следующие компонентные технологии, которые применяются при разработке сложного ПО: ActiveX, построенная на технологии OLE Automation, предназначен для разработки также и распределенных приложений. Предполагает использование элементов визуального программирования. OLE Automation – технология создания приложений, обеспечивающая программный доступ к внутренним службам другим приложений, используется в Microsoft Excel. Представителями таких ОС являются современные операционные системы WINDOWS и LINUX.
