Скачиваний:
29
Добавлен:
02.05.2014
Размер:
48.33 Кб
Скачать

Эмуляция BSD UNIX в Mach pre {border: 1px solid; padding: 3px; padding-bottom: 11pt; width: 468px; overflow-x: auto; font-size: 9pt;}     Шквал(!) новостей на CitCity.ru Океан(!) софта на CITKIT.ru Форумы Все публикации Учебный центр Курилка    CITForum на CD Подписка на новости портала Море(!) аналитической информации! :: CITFORUM.RU Motorola объявляет конкурс на вакансии разработчиков ПО

Проверь себя - пройди тест и направь резюме

ВКШ "Эксперт" Диплом МГУ + сертификаты Microsoft, SUN, Linux

2-х годичное вечернее обучение:

Администрирование

Безопасность

Разработка КИС IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware 17.08.2006 WWW CITForum.ru Новости мира IT: 17.08 - Состоялась мировая презентация Panda GateDefender Integra - нового объединенного устройства безопасности17.08 - Microsoft запустила международную версию вирусного сканера17.08 - ICANN останется хозяином интернета до 2011 года17.08 - Русская "Википедия" содержит уже более 100 тысяч статей17.08 - Недавний патч для Internet Explorer провоцирует сбои17.08 - Новый сервер от Sun побил мировой рекорд производительности17.08 - Терабайтный жесткий диск поступит в продажу в 2006 году17.08 - В Сан-Франциско проходит выставка LinuxWorld 200617.08 - nVidia представила новые чипсеты для процессоров Opteron17.08 - Apple выпустила новый загрузчик Windows16.08 - Началась регистрация участников Google Code Jam 200616.08 - ИСП РАН выпустил систему Sedna 1.016.08 - Грядет кризис WiFi-несовместимости16.08 - Motorola сделает упор на Linux16.08 - Microsoft зафиксирует стоимость лицензий для многоядерных процессоров16.08 - Levi Strauss начала выпуск джинсов для iPod16.08 - Business Control добрался до Владивостока16.08 - Microsoft объявляет итоги Imagine Cup16.08 - Исходный код Java начнут открывать в октябре16.08 - IBM выпустила решение для управления электронной почтой16.08 - Доменная зона .mobi открыта для регистрации16.08 - AMD представила новые процессоры для серверных станций16.08 - Logitech и Skype объявили о сотрудничестве16.08 - Red Hat усилит поддержку JBoss16.08 - DeviceLock – решение проблемы несанкционированного использования материалов ФГУ «Российская государственная библиотека»15.08 - «Доктор Веб» информирует о вирусной опасности - Win32.HLLW.Gavir заражает исполняемые файлы и ворует пароли15.08 - Технология TruPreventTM, разработанная Panda Software, обнаружила первого червя, эксплуатирующего уязвимость Microsoft MS06-04015.08 - Компания Oracle становится ближе к народу15.08 - Лицензии на услуги связи третьего поколения будут выданы в этом году15.08 - Google оказался лучшей инновационной компанией 2006 года Все новости на CitCity.ru Citforum.Direct:

- У кого разместить сервер на colocation?

- У кого заказать хостинг? Эмуляция BSD UNIX в Mach В ядре Mach имеется различные серверы, которые работают над ним. Наверно, наиболее важным сервером является программа, которая содержит большое количество кодов BSD UNIX (например, весь код файловой системы). Этот сервер представляет собой основной эмулятор UNIX. Такая конструкция - отражение реальной истории Mach как модифицированной версии BSD UNIX. Рис. 6.15. Эмуляция UNIX в Mach Реализация механизма эмуляции UNIX в среде Mach состоит из двух частей, сервера UNIX и библиотеки эмуляции системных вызовов, как это показано на рисунке 6.15. Когда система стартует, сервер UNIX инструктирует ядро, чтобы оно перехватывало все прерывания системных вызовов и отображало вектора этих прерываний на адреса внутри библиотеки эмуляции процесса UNIX'а, по которым расположены обрабатывающие данные вызовы функции. Любой системный вызов, который делается UNIX-процессом, приводит к кратковременной передаче управления ядру, а затем к немедленной передаче управления библиотеке эмуляции. Значения машинных регистров в момент передачи управления библиотеке становятся теми же, что и в момент прерывания. Такой метод иногда называют методом батута. Как только библиотека эмуляции получает управление, она проверяет регистры для того, чтобы определить, какой системный вызов нужно обработать. Затем библиотека делает вызов RPC другого процесса, сервера UNIX, который и должен выполнить эту работу. После завершения обработки вызова пользовательская программа снова получает управление. Эта передача управления не проходит через ядро. Когда процесс init порождает потомков с помощью системного вызова fork, то они автоматически наследуют как библиотеку эмуляции, так и механизм батута, поэтому они могут выполнять системные вызовы UNIX. Сервер UNIX реализован в виде набора С-нитей. Хотя некоторые нити управляют таймерами, работают с сетью и другими устройствами ввода-вывода, большинство нитей обрабатывают системные вызовы BSD. Библиотека эмуляции взаимодействует с этими нитями с использованием обычного механизма межпроцессного взаимодействия Mach. Когда сообщение поступает на UNIX-сервер, его принимает свободная простаивающая нить, определяет, от какого процесса пришел вызов, извлекает номер системного вызова и параметры, выполняет системный вызов, и, наконец, отсылает ответ. Большинство сообщений соответствует точно одному системному вызову BSD. Существует один набор системных вызовов, выполняющихся по другому - это вызовы операций ввода-вывода с файлами. Они могли бы выполняться и по описанной схеме, но из-за соображений производительности был реализован другой подход. Когда файл открывается, то он отображается непосредственно в адресное пространство вызывающего процесса, так что библиотека эмуляции получает к нему доступ непосредственно, без необходимости делать вызов RPC сервера UNIX. Например, чтобы выполнить системный вызов READ, библиотека эмуляции определяет место расположения байтов в отображенном файле, которые нужно прочитать, определяет место расположения буфера и просто копирует байты в буфер с максимально возможной скоростью. Во время цикла копирования может случиться страничный отказ, если некоторые страницы файла не находятся в памяти. Каждый отказ приводит к тому, что Mach посылает сообщение внешнему менеджеру памяти, управляющему отображением файла. Этот менеджер памяти представляет собой нить внутри UNIX-сервера, называемую пейджером i-узла (i-node pager). Менеджер читает с диска нужную страницу файла и отображает ее в адресное пространство прикладной программы. Он также синхронизирует операции над файлами, которые открыты несколькими UNIX-процессами одновременно. Хотя описанный метод выполнения программ UNIX и кажется запутанным, многочисленные измерения показали, что он работает лучше, чем традиционные монолитные реализации ядра. В дальнейшем работы над Mach будут фокусироваться на разделении сервера UNIX на несколько серверов с более специфическими функциями. Предыдущая глава || Оглавление || Следующая глава   Размещение рекламы - pr@citforum.ru, ICQ 232284597 Подписка на новости IT-портала CITForum.ru

(библиотека, CITKIT.ru, CitCity) Новые поступления: 17 августа Проблемы сравнения стоимости выполнения запросов Параллельное дежавю или... "эффект Бартини" Создание и тестирование многопоточной программы Обзоры журнала Computer: Игры и образование Возвращение микроядерных операционных систем Как сделать так, чтобы компьютеры не вредили людям Полезны ли толстые клиенты без собственного состояния? 15 августа Транспортные сети мобильных операторов: время переходить на IP Композиции объектов KDE vs GNOME: еще одно размышление на вечную тему Ubuntu Linux: каталог ссылок Acer TravelMate 2403WXCi 8 августа Распределение нагрузки на WEB приложения Модуль mod_dav. Архитектура модуля ZenWalk-2, или еще раз о Дзэн-буддистском Linux'е Собери свой Ubuntu Настройка WMII3 Ion3: положительный wm 1 августа CitCity: Microsoft поворачивается лицом к управлению документами – «на запах» больших денег? Суета вокруг Apple Электронные деньги: миф или реальность Соединяем 25 июля CitCity: Автоматизация хаоса, или зачем нужны системы электронного документооборота Ядрена мощь (краткий обзор прессы о новых процессорах Intel) Угроза стабильности Евросоюза (об отношениях Еврокомиссии и Microsoft) Интеллектуальная видеосеть Корпоративная сетевая архитектура будущего О роли сетевых технологий в здравоохранении XXI века 18 июля CitCity: Кто заплатит за свободу? "Цифровой дом" на колесах Приобретение средств data mining: как избежать ошибок при создании системы прогнозной аналитики Как начать внедрение технологии data mining, не теряя ее ценных возможностей Инструменты data mining: что лучше выбрать? Нормативное регулирование IT-безопасности 13 июля Технологии виртуализации: вчера, сегодня, завтра Программные решения для выявления и предотвращения утечек конфиденциальных данных Рынок 3D-акселераторов: закат или трансформация? Калифорнийское яблоко оказалось "антоновкой" Спутниковые навигационные системы GPS и ГЛОНАСС 11 июля "Двойной" Centrino (обзор ноутбуков) Индустриальное распространение SAS Serial Attached SCSI - время пришло? Серверное противостояние Платформа для ERP Управление электропитанием: когда вы последний раз заходили в серверную? CitCity: У Питона ожидается прибавление семейства 6 июля Мой офис - моя крепость (о политиках безопасности) Сетевой швейцарский нож (беспроводной роутер BR-6114Wg) Linspire: уже не Linux, но еще не Windows Простая почтовая система с защитой от вирусов и спама (FreeBSD+ClamAV) Kubuntu Dapper. Кратко о доводке 4 июля Критерии полноты тестового покрытия в генетических алгоритмах генерации тестов Паттерны проектирования тестовых сценариев Анализ и трансформации исполняемых UML моделей Использование ролей в сценариях взаимодействия Интегрированная среда описания системы команд встраиваемых процессоров 29 июня Метод виртуального процессора в защите программного обеспечения Генерация тестовых данных сложной структуры с учетом контекстных ограничений Open Source: MEPIS, или Linux под сенью пирамид email-ng (о почтовой программе imapfilter) 27 июня Использование параллелизма на уровне команд в компиляторе для Intel Itanium Разреженная модель базовых блоков для оптимизации потоков команд Разработка системной поддержки вызова программ, реализованных на языке Fortran, из среды Java 22 июня Раскрутка и оптимизация сайта - краткий курс Автоматическая генерация тестовых данных для оптимизаторов графических моделей Применение технологии UniTesK для тестирования систем с различной конфигурацией активных потоков управления Использование информации о линейных зависимостях для обнаружения уязвимостей в исходном коде программ Архив новостей >>>

IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware Информация для рекламодателей PR-акции, размещение рекламы - pr@citforum.ru, тел. +7 495 4119920, ICQ 232284597 Пресс-релизы - manager@citforum.ru Послать комментарий

Информация для авторов This Web server launched on February 24, 1997

Copyright © 1997-2000 CIT, © 2001-2005 CIT Forum Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...

Соседние файлы в папке sos