Upload
vasily-dyachenko
View
46.883
Download
3
Tags:
Embed Size (px)
Citation preview
Безопасность Singularity
Драйвер Процесс
1) Микроядро
Singularity
Микроядро
2) Изоляция процессов SIP (Software-Isolated Process)
Процесс 1 (SIP)
Процесс 2 (SIP)
контракт канал
Цена Безопасности(проблема)
Процесс – Сервер Int g=5;
Точка(Exp).SendOne(g);
Процесс – Клиент Int x=0;
Точка(Imp). RecvOne(x); Канал(2)
ExHeap
4
KERNEL
4
1
Контракт Message One(int x);
3 5
Технология передачи данных между процессами путём создания высокоуровневых каналов
Архитектура веб - сервера
Дисковый Драйвер
Сетевой Драйвер
канал канал Процесс 2
Процесс 1
канал
канал
Процесс 3
контракт контракт
контракт
контракт
Микроядро
Веб-Сервер
Singularity
Веб – Сервер для Singularity (Spec Web) Singularity
Singularity 91 операция в
секунду (362 Kбит/с)
Windows XP 761 операция в
секунду (362 Kбит/с)
VS
Разница в 8.3 раз!
Где проблема в Веб-Сервере?
Архитектура Веб-Сервера
Проблема в быстродействии передачи данных между
процессами. (В технологии отправки данных
путём канала)
Решение! Singularity Стандартная технология(Channel, ExHeap)
Технология CSM
Процесс - Сервер CSM.Share(“ID”,name,5);
Процесс – Клиент CSM.DataOut(“ID”,name);
CSM
Реализация CSM Singularity
Реализация CSM разбита на 8 частей: 1) Создание объекта CSM с указанным размером и с уникальным идентификатором 2) Реализация базовых функций объекта - записи и чтение данных в CSM: • Share – функция, записывающая в общую память данные • DataOut – функция, читающая данные из общей памяти • SizeOut - функция , возвращающая размер общей памяти 3) Создание проверок на совместимость вызываемых или записываемых данных 4) Инициализация объекта в Singularity 5) Создание безопасного контракта, по которому будет осуществлен канал между процессами. 6) Создание новых API(в Singularity ABI) функций 7) Создание Сервиса CSM, благодаря которому процессы смогут обращаться к Singularity и вызывать уже ABI функции CSM 8) Создание функции Back In Time!
Тест 3
Процесс
Дисковый драйвер
“Start Disk Test”
“End Disk Test”
2000 чисел 2000 чисел
4
2
3
CSM 164 секунд
Channel (ExHeap) 841 секунд VS
1
Разница в 5.12 раз!
Тест 4
Дисковый Драйвер
Сетевой Драйвер
канал канал Процесс 2
Процесс 1
канал
канал
Процесс 3
Веб-Сервер Клиент 10 файлов
(20000 строк)
CSM 839 операций
Channel (ExHeap) 173 операций VS
Разница в 4.8 раз!
Заключение
Тест 1 Тест 2 Тест 3 Тест 4 Разница между
CSM и стандартной технологии
(В пользу CSM)
в 7.12
в 4.7
в 5.12
в 4.8
Микроядро Дисковый драйвер
Веб-сервер
1. Веб сервер Singularity в 8.3 раз медленнее аналогичного под Windows
2. Выявлена проблема (меж-процессная взаимодействие) 3. Создание технологии CSM 4. CSM внедрена в дисковый драйвер и в веб-сервер 5. Проведены тесты, показана эффективность CSM: