Документирование среды программирования для операционной системы L4Ka(Documenting the programmer environment for L4ka)

Содержание

Слайд 2

Цель работы

Главными задачами диплома являются:

Работа раскрывает два аспекта: управление памятью (memory management)

Цель работы Главными задачами диплома являются: Работа раскрывает два аспекта: управление памятью
и взаимодействие между процессами (ВМП) (IPC – inter-process communication)

документирование системных вызовов (system calls) среды программирования операционной системы L4Ka

создание полноценного руководства программиста

расширение функциональности менеджера памяти σ0

написание процедуры обработки аппаратных прерываний (interrupt service routine)

Слайд 3

Управление памятью

выделение (mapping) регионов физической памяти

выделение/освобождение (unmapping) и передача (granting) регионов памяти

Управление памятью выделение (mapping) регионов физической памяти выделение/освобождение (unmapping) и передача (granting)
между задачами (tasks)

Слайд 4

Взаимодействие между процессами

написание сервиса для аппаратных прерываний (interrupt service routine)

расширение функциональности

Взаимодействие между процессами написание сервиса для аппаратных прерываний (interrupt service routine) расширение
менеджера памяти σ0

обмен сообщениями между задачами (tasks) и нитями (threads)

Слайд 5

Операционные системы (ОС)

ОС – это программа, предназначенная для управления всеми ресурсами вычислительной

Операционные системы (ОС) ОС – это программа, предназначенная для управления всеми ресурсами
машины с целью предоставления возможности пользователям эффективно решать прикладные задачи

Классификация по структуре ядра (kernel):

операционные системы без ядра (MS-DOS)

операционные системы с макро-ядром (Unix, Windows)

операционные системы с микро-ядром (L4, Mac OS X, Mach, Nomad OS)

Слайд 6

Схема ОС с макро-ядром

Схема ОС с макро-ядром

Слайд 7

Схема ОС с микро-ядром

Схема ОС с микро-ядром

Слайд 8

L4Ka – ОС с микро-ядром

Основные механизмы:
нити (threads) – процессы, имеющие единое адресное пространство

L4Ka – ОС с микро-ядром Основные механизмы: нити (threads) – процессы, имеющие
и выполняющиеся параллельно
ВМП (IPC) – фундаментальный способ взаимодействия между нитями
адресное пространство (address space) – защищенный набор преобразований виртуальных адресов в физические
планирование машинного времени (scheduling) – обеспечи- вает контроль над порядком и длительностью выполнения нитей

Системные вызовы:

7 системных вызовов для изменения состояния системы

Слайд 9

Адресное пространство (АП)

АП – это набор преобразований (translations) из виртуальных адресов в

Адресное пространство (АП) АП – это набор преобразований (translations) из виртуальных адресов
физические; содержит все регионы памяти доступные для нити напрямую.

Слайд 10

Адресное пространство (2)

map – регион памяти в общем владении

grant – регион памяти передается с

Адресное пространство (2) map – регион памяти в общем владении grant –
потерей прав

Слайд 11

Адресное пространство (3)

Задача – набор нитей, использующих адресное пространство совместно (shared)

Нить определяется:
используемым адресным

Адресное пространство (3) Задача – набор нитей, использующих адресное пространство совместно (shared)
пространством
уникальным идентификатором (unique ID)
набор регистров (register set)
менеджер памяти (pager – page fault handler)

Менеджер памяти – нить, которая обрабатывает ошибки из-за отсутствия страницы памяти (page faults)

σ0 – корневой менеджер памяти, владеющий всей памятью после запуска L4Ka

Слайд 12

Менеджер памяти

Менеджер памяти

Слайд 13

Корневой менеджер памяти σ0

Корневой менеджер памяти σ0

Слайд 14

Планирование машинного времени

Планирование машинного времени

Слайд 15

Типы данных OC L4Ka

Основные типы данных:
уникальный идентификатор (UID – unique ID)
flex-pages
тайм-аут (timeout)
результат

Типы данных OC L4Ka Основные типы данных: уникальный идентификатор (UID – unique
ВМП (IPC result status)
параметр планирования (schedule parameter word)

Слайд 16

Уникальный идентификатор

Уникальный идентификатор

Слайд 17

Flex-pages

Flex-page – это непрерывные регионы адресного пространства
необходимы для операций map и grant
передаются

Flex-pages Flex-page – это непрерывные регионы адресного пространства необходимы для операций map
как часть ВМП сообщений (IPC messages)
имеют размер 2s (для х86 архитектуры s≥12)
базовый адрес b выровнен по значению 2s

Слайд 18

Тайм-аут (timeout)

Тайм-аут используется для контроля ВМП.
В 32-х битном поле определены четыре тайм-аута.

Тайм-аут (timeout) Тайм-аут используется для контроля ВМП. В 32-х битном поле определены четыре тайм-аута.

Слайд 19

Тайм-аут (timeout) (2)

Тайм-аут (timeout) (2)

Слайд 20

Результат одной коммуникации между нитями возвращается в 32х-битном поле.
Поле «mwords» говорит

Результат одной коммуникации между нитями возвращается в 32х-битном поле. Поле «mwords» говорит
о числе принятых 32х-битных слов.
Поле «strings» говорит о числе принятых строк.
Младшие восемь бит представляют «код условия» (condition code), в котором закодирован код ошибки и тип сообщения.

Результат ВМП (IPC result status)

Слайд 21

В L4Ka имеется только один параметр для планирования. Он содержит поля в

В L4Ka имеется только один параметр для планирования. Он содержит поля в
которых закодирован приоритет и длина кванта времени (в соответствии со спецификацией тайм-аута).

Параметр планирования (schedule parameter word)

Слайд 22

Системный вызов l4_myself

Системный вызов возвращает уникальный идентификатор текущей нити.

Системный вызов l4_myself Системный вызов возвращает уникальный идентификатор текущей нити.

Слайд 23

Системный вызов l4_unmap

Регион памяти, описанный входным параметром fpage, будет освобожден (удален из адресного

Системный вызов l4_unmap Регион памяти, описанный входным параметром fpage, будет освобожден (удален из адресного пространства нити).
пространства нити).

Слайд 24

Системный вызов l4_thread_ex_regs

С помощью этого системного вызова можно получить или изменить регистры EIP

Системный вызов l4_thread_ex_regs С помощью этого системного вызова можно получить или изменить
и ESP набора регистров нити.
Таким образом, можно создать новую нить, указав в качестве входных параметров значения для EIP, ESP, уникальный идентификатор менеджера памяти.

Слайд 25

Системный вызов l4_thread_switch

Вызывающая нить добровольно освобождает ресурсы процессора. Планировщик выбирает следующую нить.

Системный вызов l4_thread_switch Вызывающая нить добровольно освобождает ресурсы процессора. Планировщик выбирает следующую нить.

Слайд 26

Системный вызов l4_thread_schedule

Изменение значений приоритета и длины кванта времени нити производится посредством передаче

Системный вызов l4_thread_schedule Изменение значений приоритета и длины кванта времени нити производится
в качестве входного параметра структуры schedule param word.
Системный вызов также возвращает время процессора в микросекундах, израсходованное нитью.

Слайд 27

Системный вызов l4_task_new

Этот системный вызов удаляет и/или создает задачу.
Удаление задачи означает удаление

Системный вызов l4_task_new Этот системный вызов удаляет и/или создает задачу. Удаление задачи
адресного пространства задачи и всех ее нитей.
Задачи могут быть созданы активными или пассивными.
При создании активной задачи создается новое адресное пространство вместе с полным набором нитей (64).
Пассивная задача пуста – не поглощает ресурсов процессора, не имеет ни адресного пространства, ни нитей, коммуникация с ней невозможна.
Пассивная задача по сути не существует и представляет собой лишь возможность, право создать активную задачу с данным уникальным идентификатор.
Имя файла: Документирование-среды-программирования-для-операционной-системы-L4Ka(Documenting-the-programmer-environment-for-L4ka).pptx
Количество просмотров: 128
Количество скачиваний: 0