Фоновый баннер
sun-v2-www

Внутренняя структура операционной системы Solaris 10

Solaris 10 Operating System Internals


15.05.2017

Цена: 65,000 

Продолжительность (дни/часы): 5/40

Подробнее о курсе

Краткое описание курса
Курс предоставляет обучаемым сведения о различных подсистемах ядра, процедурах и структурах, образующих операционную систему Solaris 10. В рамках лабораторных заданий используется веб-доступ к OpenSolaris для знакомства с принципами работы операционных систем, а также команды dtrace, kmdb и mdb для проверки структур на работающих системах. В курсе рассматриваются многопоточная архитектура, виртуальная память, планирование задач, срок жизни процесса, управление сигналами, уровень vnode и такие файловые системы, как UFS, ZFS и swapfs. Данный курс предназначен для программистов, системных инженеров и технического персонала.

Получаемые знания и навыки
По окончании курса слушатели научатся

  • Давать поэтапное объяснение получения блокировки;
  • Обсуждать причину наследования приоритетов и его реализацию;
  • Определять действия, выполняемые в рамках преобразования из виртуального в физический адрес памяти;
  • Перечислять структуры процессов и подпрограммы, необходимые для реализации класса планирования;
  • Перечислять структуры процессов, используемые для реализации нескольких классов, и поля планирования в таблицах параметров; диспетчеризации с разделением времени и реального времени;
  • Описывать алгоритмы страничной подкачки и обмена, которые управляют физической памятью в качестве кэша;
  • Описывать создание, выполнение и завершение процесса;
  • Обсуждать планирование и вытеснение потоков ядра;
  • Использовать kmdb, mdb и DTrace для определения и отображения системных структур открытого файла в конкретном процессе;
  • Описывать политики размещения, использующиеся файловой системой UFS для размещения индексных дескрипторов и блоков данных.

Необходимая предварительная подготовка
Слушатели данного курса должны выполнить следующие предварительные требования

  • Соответствовать уровню опытного системного администратора Solaris 10;
  • Обладать опытом создания и отладки shell-скриптов и скриптов DTrace;
  • Уметь читать программы на языке C и объяснять значение выражений вида a = (struct foo *) b и int func(int);
  • Знать и быть в состоянии объяснить принципы функционирования указателей, структур, объединений, списков ссылок, хеширования и двоичных деревьев.

 

Предварительно рекомендуется прослушать курс(ы)

Краткое содержание курса
Мод
уль 1 — Введение в операционную систему Solaris 10
  • Определение назначения операционной системы и принципа деления ядра на слои
  • Объяснение и представление в виде диаграммы сегментов, составляющих адресное пространство процесса
  • Принцип механизма ловушки
  • Разница между аппаратным и программным прерываниями
  • Новые возможности в последних версиях ОС Solaris 10
  • Использование наборов средств mdb, kmdb и DTrace для изучения структур данных ядра
  • Использование http://cvs.opensolaris.org/source/ для изучения исходного кода

Модуль 2 — Многопоточная архитектура

  • Разница между симметричной многопроцессорной обработкой (SMP) и асимметричной многопроцессорной обработкой (ASMP)
  • Определение потока приложения и потока ядра
  • Определение «легковесного» процесса (LWP)
  • Разница между потоком и LWP
  • Структуры, описывающие состояние потока ядра, LWP и процесса
  • Работа блокировки взаимного исключения (мьютекс)
  • Определение переменной условия
  • Реализация семафора со счетчиком
  • Объяснение работы блокировки многократного чтения и однократной записи
  • Преимущества множественных LWP для данного процесса

Модуль 3 — Аппаратное управление памятью

  • Способы использования таблиц MMU для выполнения преобразования адреса памяти из виртуального в физический
  • Различия между блоком управления памятью (MMU) x86/x64 и SFMMU
  • Типы реализации кэша в системах Sun
  • Назначение слоя преобразования аппаратного адреса — hardware address translation (HAT)

Модуль 4 — Программное управление памятью

  • Слои системы виртуальной памяти (VM) SunOS 5.x и определение роли каждого слоя
  • Структуры сопоставления, составляющие адресное пространство процесса
  • Расположение структур страниц и структур адресного пространства процесса в mdb или dtrace и определение поля в пределах структур
  • Способы использования прикладным программистом системных вызовов для распределения памяти и управления памятью с целью эффективного управления потребностями процессов в памяти

Модуль 5 — Страничная подкачка и обмен

  • Многоуровневый подход к обработке ситуации непопадания на страницу
  • Условия для запуска демона подкачки
  • Функции демона подкачки
  • Условия, при которых запускается программа обмена

Модуль 6 — Файловая система swapfs

  • Недостатки управления страничным обменом в SunOS 4.x
  • Изменения, которые были выполнены на уровне анонимной памяти для организации размещения файловой системы swapfs
  • Два преимущества, обусловленные добавлением файловой системы swapfs в SunOS 5.x

Модуль 7 — Планирование

  • Перечисление, как минимум, двух основных препятствий обработки в реальном времени в таких традиционных архитектурах UNIX, как система V, версия 3 (SVR3), версия UNIX Berkeley Software Design (BSD) 4.3 и SunOS 4.x
  • Разница между полностью выгружаемым ядром и ядром с выгрузкой
  • Процедура, используемая для помещения потока в очередь диспетчеризации
  • Описание условий, при которых поток помещается в голову очереди диспетчеризации
  • Как выполняется упорядочивание очередей ожидания
  • Определение выгрузки на уровне пользователя
  • Определение выгрузки на уровне ядра
  • Определение детерминированной задержки диспетчеризации
  • Определение инверсии приоритетов

Модуль 8 — Срок жизни процесса

  • Различия между системными вызовами, используемыми для создания новых процессов
  • Подпрограммы ядра, используемые для реализации создания процессов
  • Различные типы исполняемых файлов, поддерживаемых в ОС Solaris 10.
  • Подпрограммы, используемые для реализации исполняемых файлов формата ELF (исполняемый и компонуемый формат)
  • Преимущества формата исполнимых файлов ELF
  • Действия, выполняемые процессом при его завершении
  • Системный вызов waitid(2) и его реализация

Модуль 9 — Сигналы

  • Различные типы сигналов, которые могут передаваться в процесс или поток
  • Разница между сигналом ловушки и сигналом прерывания
  • Подпрограммы управления сигналами и их функции
  • Для чего используется функция сигнала и как передается сигнал

Модуль 10 — Файловые системы

  • Слой интерфейса vnode в файловой системе
  • Четыре поля в записи каталога
  • Преимущества файловой системы BSD 4.3
  • Функция суперблока и структур групп цилиндров
  • Поля в структуре inode диска и порядок их использования
  • Подпрограммы, используемые при определении политик глобального размещения
  • Подпрограммы выделения с использованием блок-схем и порядок быстрого поиска фрагментов

Отзывы по курсу