Главная
  Диссертация
  Библиотека
  Ссылки  
 

ДонНТУ


Факультет Вычислительной Техники и Информатики

Панов Дмитрий Юрьевич

Группа:   ВТ-99а
Тема магистерской работы:   "Разработка автоматизированной обучающей системы программированию в среде Linux".
Руководитель:   Шевченко О.Г.

Оглавление
  1. История создания ОС UNIX
  2. Классы тестируемых операционных систем.
    1. Операционная система Linux
    2. Операционные системы *BSD.
  3. Краткое описание проводимых тестов.
  4. Анализ результатов тестирования.
    1. Socket - тестирование
    2. Bind - тестирование.
    3. Fork - тестирование.
    4. Статическое fork - тестирование.
    5. Mmap - тестирование.
    6. Определение задержки при вызове connect.
    7. Измерение латентности НТТР-запроса.
  5. Выводы.

1. История создания ОС UNIX

В середине 60-х годов Bell Telephone Laboratories, подразделение американского гиганта AT&T , в рамках научно-исследовательского проекта решает создать совершенно новую операционную систему для компьютеров третьего поколения. К разработке присоединяются корпорация General Electric Company и Массачусеттский институт технологии MIT (Massachusetts Institute of Technology) . ОС, получившая название MULTICS (MULTiplexed Information and Computing System) , должна была стать многозадачной операционной системой с разделением времени и новым пользовательским интерфейсом, обеспечивающей одновременную работу нескольких сотен пользователей. Затраты на разработку ОС себя не оправдали, система получилась ненадежной и громоздкой. Были допущены некоторые серьезные ошибки (в частности, основным языком программирования выбрали PL/I, не справлявшийся с возложенными на него надеждами), работу над MULTICS прекратили.

В 1969 году Bell Labs (в которой особую роль сыграли Ken Tompson и Dennis Ritchie) выходит из проекта. Однако, во время работы над MULTICS у разработчиков появились новые идеи (в том числе, об архитектуре файловой системы), которые позже были воплощены в жизнь. Tompson, Ritchie и множество других сотрудников Bell Labs начинают разработку новой операционной системы, стараясь внести в нее все лучшее, что было в MULTICS. Всеобщими усилиями создаются первая версия ядра, свой ассемблер, необходимые утилиты. Новую операционную систему, работающую на PDP-7 называют UNICS (Uniplexed Information and Computing System). Название системе придумал Brian Kernighan. Система полностью написана на ассемблере, официальным днем ее рождения считается 1 января 1970 года 12.00 пополудни, с этого момента и ведется отсчет времени в секундах в функциях некоторых языков программирования, в частности С/С++.

В 1971 году патентному подразделению Bell Labs потребовалась система обработки текста. В качестве операционной системы была выбрана UNIX, теперь работающая на более мощном компьютере PDP-11. Сама система занимала 12 килобайт, прикладные программы- 8 кб, максимальный размер файла ограничивался 64 кб. Assembler стал неудобен из-за слабой переносимости UNIX на разные платформы. Tompson, занимаясь созданием компилятора FORTRAN, придумывает новый язык- B. D. Ritchie же в свою очередь переработал его в C, способный генерировать машинный код. В 1973 году большая часть ядра UNIX переписывается на C- теперь ОС может быть легко перенесена на другие аппаратные платформы, что значительно повышает ее популярность. В Bell Labs уже работает 25 систем, появляется группа UNIX-системщиков- UNIX System Group (USG) .

С 1974 года AT&T начинает распространять исходные коды системы в университеты. Благодаря своей небольшой цене UNIX приобретает новых сторонников, количество ее разработчиков значительно возрастает.

В конце 70-х гг. в AT&T была создана группа поддержки UNIX (UNIX Support Group, USG), впооследствии преобоазованная в систему лабораторий UNIX (UNIX System Laboratories, USL). Задачей группы была распространение UNIX как коммерческого продукта.

В 1980 году фирма Bolt, Beranek and Newman (BBN) подписала контракт с Отделом перспективных исследовательских проектов (DARPA) Министерства обороны США на разработку поддержки протоколов TCP/IP в BSD UNIX. Работа над ней завершается в конце 1981 года, переносится в 4.2BSD UNIX. В 1982 году AT&T объединила несколько существующих версий UNIX, создав System III. Данная версия уже была предназначена не для внутреннего использования, а для распространения вне Bell Labs и AT&T.

В 1983 году выходит System V, а лаборатория USDL (UNIX System Development Laboratory), в которую переросла USG, выпускает ее модификацию- System V RELEASE 2. В 1987 году ATTIS (AT&T Information Systems), новое подразделение AT&T, выпускает System V RELEASE 3. В 1988 году AT&T и Sun Microsystems заключили соглашение о сотрудничестве в разработке последующих версий System V.

Другие компьютерные гиганты по-своему отвечают на данный ход- IBM, DEC, Hewlett-Packard создали организацию Open Software Foundation (OSF). Результатом ее деятельности стала OSF/1- UNIX операционная система, созданная независимо от AT&T.

В 1989 году выходит System V RELEASE 4, вобравшая в себя возможности SunOS от Sun Microsystems, BSD UNIX от Berkley Software Distribution и предыдущих версий System V.



2. Классы тестируемых операционных систем.

2.1. Операционная система Linux

В начале 1990-х начинает развиваться проект GNU, организованный Richard'ом Stallman'ом и создающий бесплатное программное обеспечение. А в это время в мире UNIX появляется новый человек, существенно повлиявший на его дальнейшее развитие. Им стал Linus Torvalds из Хельсинки (Финляндия), который, будучи в 1991 году студентом второго курса местного университета, начинает разработку своей операционной системы, базирующейся на ОС Minix (демонстрационная операционная система, написанная известным ученым-компьютерщиком Andrew Tannebaum'ом и предназначавшаяся для демонстрации различных концепций операционных систем). Свой систему он называет Linux.

25 августа 1991 года приходит первое сообщение о появлении Linux-ядра, а днем рождения Linux'а становится 17 сентября 1991 года, когда выходит версия 0.0.1.

Первая официальная версия Linux - версия 0.0.2 - была анонсирована 5 октября 1991 года. Распространяется система в качестве части проекта GNU (до этого главным его достижением был GNU C Compiler, но ему не хватало свободной операционной системы, которой и стал GNU/Linux). Со временем появляется огромное количество фирм, создающих свои версии Linux'а, берущих за основу общее ядро, модифицируемое тысячами разработчиками по всему миру (руководит процессом по-прежнему Torvalds) и на свое усмотрение добавляющих существующие, а также свои, приложения. Наибольшей популярности достигают Red Hat Linux, Mandrake Linux, SuSE Linux, Debian GNU/Linux, Slackware Linux (из российских производителей- ASPLinux, ALT Linux).

Linux - это полная многозадачная многопользовательская операционная система, которая представляет собой совокупность ядра и основных прикладных программ. Объединение ядра и прикладных программ в единое целое проявляется и в названии системы.

Сегодня Linux - это полноценная ОС семейства UNIX, способная работать с X Window, TCP/IP, Emacs, UUCP, mail и USENET. Linux достаточно хорошо совместим с рядом стандартов для UNIX на уровне исходных текстов, включая IEEE POSIX.1, System V и BSD.

Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs, были созданы специально для Linux. Поддерживаются также другие типы файловых систем, такие как Minix-1, Xenix, ReiserFS, XFS, UFS, FAT 12/16/32, NTFS 4/5, ISO 9660 с различными дополнениями и расширениями и многие другие.

Linux обеспечивает полный набор протоколов TCP/IP для сетевой работы. Это включает драйверы устройств для многих популярных карт Ethernet, SLIP (Serial Line Internet Protocol, обеспечивающие вам доступ по TCP/IP при последовательном соединении), PLIP (Parallel Line Internet Protocol), PPP (Point-to-Point Protocol), NFS (Network File System), и так далее. Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP.

Ядро Linux создано с учетом специального защищенного режима для процессоров Intel 80386 и выше. В частности, Linux использует парадигму описания памяти в защищенном режиме и другие новые свойства процессоров.

Выполняемые программы используют динамически связываемые библиотеки, т.е. выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске.

2.2. Операционные системы *BSD.

OC Berkley UNIX была создана в 1977 г., когда Исследовательская группа по вычислительным системам (Computer System Research Group, CSRG), организованная в Калифорнийском университете в Беркли, приобрела лицензию на исходный код системы AT&T версии 7. Версии, выпускаемые этой группой, сокращенно назывались BSD (Berkeley Software Distribution). Их выпуск начался в 1977 г. с версии 1BSD для машины PDP-11 и достиг кульминации в 1993г., когда вышла версия 4.4BSD. На данной версии основаны такие популярные BSD-системы как FreeBSD, NetBSD, OpenBSD.

FreeBSD - операционная система, разрабатываемая в университете Беркли, появилась в 1993 году, за основу взята версия 4.4BSD-Lite, код косвенно базируется на 386BSD Patchkit. Система поддерживает архитектуры Intel, DEC Alpha и PC-98. На основе ядра FreeBSD создано ядро Darwin для операционной системы MacOS X фирмы Apple.

NetBSD - проект, появившийся одновременно с FreeBSD и также базирующийся на 4.4BSD Lite. Основное направление развития системы - переносимость на различные платформы и архитектуры. Это достигается путем стандартизации программного интерфейса API и сетевых протоколов.

Канадский проект OpenBSD начал свое развитие как вариант NetBSD, основными направлениями развития которого являлись переносимость, стандартизация, безопасность, и встроенная криптография. Система поддерживает 12 платформ, но не поддерживает многопроцессорные системы. Является одной из самых безопасных UNIX- систем.

Все вышеперечисленные BSD - системы, так же как и Linux, являются многопользовательскими системами, поддерживают различные файловые системы, стек протоколов, TCP/IP, который де-факто признан эталонной реализацией программного обеспечения TCP/IP, динамически связываемые библиотеки и, XWindow, распределенную файловую систему NFS и многое другое.



3. Краткое описание проводимых тестов.

Все существующие на данный момент серверные операционные системы можно поделить на следующие четыре класса:

  1. Операционные системы класса Windows NT/2000/2003 .NET.
  2. Корпоративные UNIX- операционные системы операционные системы, производимые такими компаниями как IBM (AIX), Sillicon Graphics (IRIX), Hewlett-Packard (HP-UX) и другие.
  3. Свободно распространяемые операционные системы - Linux и разновидности BSD - UNIX: FreeBSD, OpenBSD, NetBSD, PicoBSD.
  4. Другие операционные системы: Novell NetWare, IBM OS/2 и др.

Выбор систем, принадлежащих к третьему классу, в качестве тестируемых обусловлен следующими причинами:

  • данные системы принадлежат к классу UNIX- систем, являются мультизадачными и многопользовательскими, что предопределяет их использование, прежде всего, на серверах;
  • эти системы являются свободно распространяемыми, т.е. стоимость приобретения системы ограничивается стоимостью носителя, на котором находится инсталлятор системы, следовательно, нет необходимости покупать лицензию, часто весьма дорогостоящую;
  • высокая надежность, быстродействие и масштабируемость, сравнимая с коммерческими версиями UNIX и превосходящая системы класса Windows NT;
  • большая популярность использование данных систем в качестве серверных решений на пост- советском пространстве.

Использование свободно распространяемых операционных систем в качестве серверных решений приносит ощутимую экономию средств, И хотя по данным британской компании mi2g, специализирующейся на проблемах компьютерной безопасности, ОС Linux является самой атакуемой системой, успешные атаки связаны не с уязвимостями, обнаруженными в самой системе или ее приложениях, а в сложности ее правильной настройки и администрирования.

Цель данного тестирования - показать насколько масштабируемы и быстры могут быть сетевые приложения, выполняемые на стандартном РС оборудовании, используемом в качестве Web-, Proxy-, FTP-, сервера, сервера баз данных и сервера приложений.

Измерение временных характеристик производится двумя способами: путем вызова функции gettimeofday() и подсчетом тактов счетчика микропроцессора. Использование 2-х методов обуславливается следующими причинами: в тестах 1, 2 и 5 разница в определяемых с помощью функции gettimeofday() временных характеристиках для тестируемых систем настолько мала, что находится на уровне погрешности измерения. В данных тестах использование метода подсчета тактов счетчика дает приблизительно 900-кратное улучшение измеряемых значений.

Тестирования производились на ядрах версий Linux-2.4 (2.4.22) и 2.6 (2.6.0-test7) с использованием т.н. "домашних дистрибутивов", т.е. дистрибутивов, специально не оптимизированных для работы в сети. В качестве BSD - систем были взяты FreeBSD-5.1-RELEASE, NetBSD-1.6.1-RELEASE и OpenBSD-3.4-CURRENT.

Сравнение проводилось по результатам следующих семи тестов:

  1. socket-тестирование - производится вызов команды socket 10 тыс. раз.
  2. bind- тестирование - производится вызов команды bind с портом номер 0 на каждом сокете. Задачей данного тестирования является скорость выбора неиспользуемого ТСР- порта ядром операционной системы.
  3. Статическое fork- тестирование - производится создание конвейера (pipe), а затем происходит создание множества дочерних процессов, которые производят запись одного байта в конвейер и после происходит их уничтожение.
  4. Динамическое fork - тестирование - производится динамическое fork-тестирование со статически загруженными процессами.
  5. mmap тестирование - производится отображение файла размером в 200 Мб в оперативную память страницами по 4 Кб. Сначала производится чтение каждой страницы для занесения их в системный кэш, затем производится определение времени, занимаемое для отображения файла в память и время, которое необходимо для чтения первого байта каждой страницы памяти.
  6. Определение задержки при вызове команды connect - производится определение производительности HTTP- запросов.
  7. Измерение латентности НТТР- запроса - определение задержки при ответе сервера на НТТР- запрос.


4. Анализ результатов тестирования.

Оборудование, на котором производилось тестирование было следующим: ноутбук Dell Inspiron 8000 с процессором Pentium III 900MHz, 256 MB RAM и 100 Мбит. сетевой картой MiniPCI INTEL eepro 100 card. Так как данное тестирование подразумевает исследование производительности программного обеспечения, а не аппаратной части ПК, был выбран сравнительно медленный процессор, с малым объемом оперативной памяти и медленным IDE- винчестером.

Параметры настройки операционных систем:

На всех операционных системах все установки были стандартными, т.е. устанавливаемыми по умолчанию. Если была необходимость, производилось включение режима DMA. Также на всех операционных системах был включена поддержка протокола IРv6.

Используемые обозначения.

Примем следующие обозначения: О(1) - значения, при которых зависимость распределения тестируемых параметров от времени можно представить в виде F(x)=K, где К - некоторая константа и О(n) - для всех остальных видов распределений.

4.1. Socket - тестирование

В данном тесте производится вызов команды socket() 10 тыс. раз с замером времени выполнения.



Рисунок 1. Socket тестирование.

На данной диаграмме можно увидеть, что результаты тестирования всех операционных систем довольно хороши - разброс значений достаточно велик, но нет характеристики типа О(n) или худшей. Интересные результаты получены у FreeBSD: при преодолении рубежа приблизительно в 3700 открытых сокетов происходит значительное увеличение производительности системы.

Вывод: FreeBSD в данном тесте превосходит по производительности все тестируемые системы. Но тем не менее результаты всех остальных участников тестирования достаточно хороши - нет явных проигравших. Также разница в результатах настолько мала, что в реальных условиях результаты могут быть иными.

4.2. Bind - тестирование.

Тестирование производится путем вызова команды bind с портом номер 0 на каждом сокете. Всего имеется 65536 ТСР портов, но по крайней мере в Linux это значение изменяемо (команда cat /proc/sys/net/ipv4/ip_local_port_range выдает значение 32768-61000) Результаты данного тестирования не очень важны для масштабируемых Web-серверов, но важны для Proxy- и FTP-серверов.


Рисунок 2. bind тестирование.

На данной диаграмме отсутствуют результаты тестирования FreeBSD и Linux-2.4 по причине их перекрытия значениями, полученными при тестировании Linux-2.6.

По результатам тестирования видно, что при количестве используемых портов приблизительно равное 1000 у OpenBSD происходит значительное возрастание задержки при обработке, которая затем начинает возрастать в линейной прогрессии. Для NetBSD - аналогичная ситуация, только перелом в скорости обработки наступает при количестве открытых портов приблизительно равное 2500. Для Linux-2.4, Linux-2.6 и FreeBSD график зависимости скорости обработки от времени можно представить в виде О(1), т.е. количество одновременно открытых портов не влияет на скорость обработки.

Таким образом, в данном тесте OpenBSD является проигравшей т.к. имеет максимальную среди всех тестируемых систем латентность.

4.3. Fork - тестирование.

В данном тесте после создания каждого дочернего процесса производится ожидание пока тест не получит один байт из нового дочернего процесса, из конвейера и получает время из fork() до тех пор, пока не прочтет байт.



Рисунок 3. Динамическое fork - тестирование.

На представленной диаграмме видно, что графики зависимостей количества созданных процессов от времени для OpenBSD и FreeBSD обрываются почти сразу по следующим причинам:
  • OpenBSD: происходит аварийный сбой системы при создании множества дочерних процессов ("падение" системы);
  • FreeBSD: ограничение на максимальное количество одновременно запущенных процессов
  • Необходимо заметить, что линкование создаваемых процессов производилось динамически. График Linux-2.4 очень своеобразен- он выглядит как два графика. Это происходит по следующей причине: все графики во всех тестах представлены как результаты пяти тестирований, т.к. планировалось выведение среднего значения для каждой системы в каждом тесте. Linux-2.4 в данном тесте составляет исключение: все 5 результатов тестирования были отображены на вышеприведенном графике. ми .

    Лидером в данном тестировании является Linux-2.6, т.к. распределение имеет линейный вид, т.е. его можно представить в виде О(1). OpenBSD не масштабируется совсем и даже происходит "падение" системы при большой нагрузке. NetBSD показывает довольно неплохие результаты. Результаты по Linux-2.4 говорят о том, что работа над ядром еще не завершена. По результатам тестирования FreeBSD можно предполагать распределение типа О(1), которое говорит о хорошей масштабируемости данной системы.



4.4. Статическое fork - тестирование.

В данном тесте производится динамическое fork-тестирование со статически загруженными процессами лидеров предыдущего тестирования- Linux-2.6 и FreeBSD.



Рисунок 4. Статическое fork - тестирование.

Как можно заметить, статическая линковка уменьшает латентность при обработке процессов почти на 50% на обеих системах.

4.5. Mmap - тестирование.

Целью данного теста является определение эффективности использования структур данных ядром операционной системы при управлении страницами памяти. Тест заключается в отображении в память файла размером 200 Мб блоками по 4 Кб.

Системный вызов для отображения файлов в оперативную память в UNIX - mmap(). Управление памятью производится страницами - блоками данных по 4 Кб. Многие архитектуры, включая х86, при необходимости могут оперировать страницами памяти размером 4Мб. На некоторых SPARC-процессорах размер страницы памяти составляет 8 Кб, на IA-64 - от 4 Кб до 16 Кб.

Для баз данных и больших Web- и Proxy-серверов важно отображать файлы в оперативную память вместо того, чтобы иметь буфер и заносить содержимое в него. Если файл отображается непосредственно в оперативную память, то операционной системе остается больше свободного места для буферирования циклов ввода/вывода.

Для файлов, отображаемых в память, операционной системе приходится поддерживать 2 структуры данных: системная таблица страниц - структура данных, создаваемая для всех процессов и предназначенная для предоставления по необходимости доступа к данной области памяти другим процессам и таблицы для каждого процесса.

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

На самом деле операционной системе нет необходимости отображать файл в память когда происходит вызов mmap. Только лишь при получении доступа к данной странице происходит обновление таблицы локальной страницы MMU сигнализирует операционной системе посредством исключения о том, что произошло обращение к странице памяти которая в действительности еще в ней не находится



Рисунок 5. Mmap - тестирование: отображение файла в память.

На данном графике можно заметить, что Linux-2.4, NetBSD и FreeBSD по своим показателям значительно проигрывают Linux-2.6 и, в меньшей степени, OpenBSD распределение которых, при некотором приближении, можно представить в виде О(1).

Также на диаграмме можно заметить, что у Linux-2.4, NetBSD и FreeBSD при практически одинаковом количестве отображенных страниц, равном приблизительно 2500, происходит резкое падение скорости обработки.

Таким образом, явным победителем при отображении страницы в оперативную память является Linux-2.6, т.к. зависимость количества отображаемых страниц от времени наиболее приближена к виду О(1).



Pисунок 6. Mmap - тестирование: чтение байта из отображенной страницы.

Вышеприведенный график показывает латентность для систем Linux и FreeBSD при обращении к только что отображенным в память страницам.

По результатам видно, что в данном тестировании график распределения для FreeBSD имеет вид О(1) с наименьшем временем обработки, т.е. данная система является лидером. Но учитывая затраты времени при отображении страницы в память общий результат mmap- тестирования получается худшим чем у Linux.



Рисунок 7. Mmap - тестирование: чтение байта из отображенной страницы.

На данном графике приводятся те же результаты, но уже вместе с NetBSD. Как можно заметить, результаты NetBSD значительно (более, чем на 2 порядка) хуже, чем у Linux и FreeBSD.

И, наконец, сравнение с OpenBSD.



Рисунок 8. Mmap - тестирование: чтение байта из отображенной страницы.

По результатам тестирования производительность OpenBSD значительно (более чем на порядок) ниже, чем у остальных систем. Также распределение носит практически случайный характер.

Таким образом, лидером mmap-тестирования является Linux-2.6 Второе и третье место занимают FreeBSD и NetBSD соответственно. И в явном проигрыше находится OpenBSD т.к. ее производительность на 3 порядка хуже, чем у лидера - Linux-2.6.

4.6. Определение задержки при вызове connect.

Латентность НТТР- запроса состоит из двух частей: задержки при вызове connect и и задержки при ответе на реальный НТТР- запрос. Задержка при вызове команды connect состоит из времени, которое необходимо серверу для обработки поступившего запроса и вызова accept. Задержка существенно зависит от применяемого оборудования.

Подтверждение соединения означает просто посылку соответствующего ТСР- пакета и определение дескриптора файла. socket-тестирование уже показало, что определение дескриптора файла во всех тестируемых системах лежит в пределах О(1). Поэтому логично ожидать таких же результатов при использовании специальных для каждой системы API-функций ( Linux-2.4: SIGIO, Linux-2.6: epoll, FreeBSD+OpenBSD: kqueue, NetBSD: poll).

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



Рисунок 9. Определение задержки при вызове connect.

На данном графике не отображены результаты теста Linux и FreeBSD потому, что их результаты оказались такими какими и предполагались - в пределах О(1).

По результатам тестирования видно, что значения для OpenBSD при использовании kqueue лежат в пределах О(n), тогда как результаты для NetBSD - О(1). Таким образом, в данном тесте в проигрыше снова оказывается OpenBSD.

4.7. Измерение латентности НТТР-запроса.

В данном тесте, который является последним, производится измерение задержки при ответе сервера на поступивший НТТР- запрос. В данную задержку не входит значение connect- задержки, результаты измерения которой приводились выше.



Рисунок 10. Определение НТТР - задержки.

Из графика следует, что значения для Linux-2.4 и Linux-2.6 перекрывают друг друга и имеют вид О(1). Интересные результаты получены у FreeBSD: задержка для первых 4000 соединений больше чем у Linux'a, а после -значительно меньше. Результаты для OpenBSD снова представлены в виде О(n). Результаты тестирования NetBSD - на следующем графике:



Рисунок 11. Определение задержки при ответе на НТТР - запрос (без connecnt- задержки ).

NetBSD имеет значительно большую (более, чем на порядок ), по сравнению с другими тестируемыми системами задержку при обработке НТТР- запроса и в данном тесте находится в явном проигрыше. Данное отставание системы можно объяснить тем, что используемая API-функция имеет худшую, чем функция poll () производительность.

5. Выводы.

Linux-2.6 во всех тестах показывает линейную зависимость типа О(1) и практически во всех тестах имеет наибольшее быстродействие и наименьшую латентность.

FreeBSD-5.1 имеет значительную масштабируемость и лучшую производительность среди всех тестируемых BSD - систем. По результатам тестирования FreeBSD подходит вплотную к Linux-2.6

Результаты для Linux-2.4 также хороши, но она имеет худшую масштабируемость в тестах mmap и fork.

В целом NetBSD показывает неплохие результаты, с отставанием в тестах mmap.

OpenBSD практически во всех тестах находится в проигрыше по сравнению с другими системами.

По материалам статьи "Benchamrking BSD and Linux". http://bulk.fefe.de/scalability



Главная ||  Диссертация ||  Библиотека ||  Ссылки


Designed by Dmitry Panoff
© 2003.All rights reserved.