Домой

Ми, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений




НазваниеМи, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений
страница6/6
Дата07.02.2013
Размер0.78 Mb.
ТипПрограмма
Tcp/ip, udp/ip
Подобные работы:
1   2   3   4   5   6

Windows

Microsoft Windows -- семейство проприетарных операционных систем корпорации Майкрософт (Microsoft), ориентированных на применение графического интерфейса при управлении. Изначально были всего лишь графическими надстройками для MS-DOS.

В настоящее время под управлением операционных систем семейства Windows, по данным ресурса Netmarketshare (Net Applications) на 2009 год, работает около 89 % персональных компьютеров.

Операционные системы Windows работают на платформах x86, x86-64, IA-64, ARM. Существовали также версии для DEC Alpha, MIPS, PowerPC и SPARC.

История Windows

История Windows берет свое начало в 1986 году, когда появилась первая версия системы. Она представляла собой набор программ, расширяющих возможности существующих операционных систем для большего удобства в работе. Через несколько лет вышла вторая версия, но особой популярности система Windows не завоевала. Однако в 1990 году вышла новая версия - Windows 3.0, которая стала использоваться на многих персональных компьютерах. Популярность новой версии Windows объяснялась несколькими причинами. Графический интерфейс позволяет работать с объектами вашего компьютера не с помощью команд, а с помощью наглядных и понятных действий над значками, обозначающими эти объекты. Возможность одновременной работы с несколькими программами значительно повысила удобство и эффективность работы. Кроме того, удобство и легкость написания программ для Windows привели к появлению все больше разнообразных программ, работающих под управлением Windows. Наконец, лучше была организована работа с разнообразным компьютерным оборудованием, что также определило популярность системы. Последующие версии Windows были направлены на повышение надежности, а также поддержку средств мультимедиа (версия 3.1) и работу в компьютерных сетях (версия 3.11).

Параллельно с разработкой Windows компания Microsoft в 1988 году начала работу над новой операционной системой, названной Windows NT. Перед новой системой были поставлены задачи существенного повышения надежности и эффективной поддержки сетевой работы. При этом интерфейс системы не должен был отличаться от интерфейса Windows 3.0. Интересно, что самой распространенной версией Windows NT также стала третья версия. В 1992 году появилась версия Windows NT 3.0, а в 1994 году - Windows NT 3.5.

Процесс развития операционных систем не стоит на месте, и в 1995 появилась система Windows 95, ставшая новым этапом в истории Windows. По сравнению с Windows 3.1 значительно изменился интерфейс, выросла скорость работы программ. Одной из новых возможностей Windows 95 была возможность автоматической настройки дополнительного оборудования компьютера для работы без конфликтов друг с другом. Другой важной особенностью системы стала возможность работы с Интернетом без использования дополнительных программ.

Интерфейс Windows 95 стал основным для всего семейства Windows, и в 1996 появляется переработанная версия Windows NT 4.0, имеющая такой же интерфейс, как и Windows 95. Продолжением развития Windows 95 стала операционная система, появившаяся в 1998 году. При сохранившемся интерфейсе внутренняя структура была значительно переработана. Много внимания было уделено работе с Интернетом, а также поддержке современных протоколов передачи информации - стандартов, обеспечивающих обмен информацией между различными устройствами. Кроме того, особенностью Windows 98 является возможность работы с несколькими мониторами.

Следующим этапом в развитии Windows стало появление Windows 2000 и Windows Me (Millennium Edition - редакция тысячелетия). Система Windows 2000 разработана на основе Windows NT и унаследовала от нее высокую надежность и защищенность информации от постороннего вмешательства. Операционная система Windows Me стала наследницей Windows 98, но приобрела многие новые возможности. Прежде всего, это улучшенная работа со средствами мультимедиа, возможность записывать не только аудио, но и видеоинформацию, мощные средства восстановления информации после сбоев и многое другое. Постепенно разница между разными системами Windows стирается, и новая операционная система Windows XP предназначена для замены как Windows 2000, так и Windows Me.

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

Каждому процессу в Win32 доступно линейное 4-гигабайтное (2^32 = 4 294 967 296) виртуальное адресное пространство. Обычно верхняя половина этого пространства резервируется за операционной системой, а вторая половина доступна процессу.

Виртуальное адресное пространство процесса доступно всем потокам этого процесса. Иными словами, все потоки одного процесса выполняются в едином адресном пространстве.

С другой стороны, механизм виртуальной памяти позволяет изолировать процессы друг от друга. Потоки одного процесса не могут ссылаться на адресное пространство другого процесса.

Виртуальная память может вовсе не соответствовать структуре физической памяти. Диспетчер памяти транслирует виртуальные адреса на физические, по которым реально хранятся данные. Поскольку далеко не всякий компьютер в состоянии выделить по 4 Гбайт физической памяти на каждый процесс, используется механизм подкачки (swapping). Когда оперативной памяти не хватает, операционная система перемещает часть содержимого памяти на диск, в файл (swap file или page file), освобождая, таким образом, физическую память для других процессов. Когда поток обращается к странице виртуальной памяти, записанной на диск, диспетчер виртуальной памяти загружает эту информацию с диска обратно в память.

Планирование потоков

Чтобы все потоки работали, операционная система отводит каждому из них определенное процессорное время. Тем самым создается иллюзия одновременного выполнения потоков (разумеется, для многопроцессорных компьютеров возможен истинный параллелизм). В Windows реализована система вытесняющего планирования на основе приоритетов, в которой всегда выполняется поток с наибольшим приоритетом, готовый к выполнению. Выбранный для выполнения поток работает в течение некоторого периода, называемого квантом. Квант определяет, сколько времени будет выполняться поток, пока операционная система не прервет его. По окончании кванта операционная система проверяет, готов ли к выполнению другой поток с таким же (или большим) уровнем приоритета. Если таких потоков не оказалось, текущему потоку выделяется еще один квант. Однако поток может не полностью использовать свой квант. Как только другой поток с более высоким приоритетом готов к выполнению, текущий поток вытесняется, даже если его квант еще не истек.

Квант не измеряется в каких бы то ни было единицах времени, а выражается целым числом. Для каждого потока хранится текущее значение его кванта. Когда потоку выделяется квант процессорного времени, это значит, что его квант устанавливается в начальное значение. Оно зависит от операционной системы. Например, для Win2000 Professional начальное значение кванта равно 6, а для Win2000 Server - 36.

Это значение можно изменить вызвав Control Panel - > System -> Advanced -> Performance options. Значение "Applications" - как для Win2000 Professional; "Background Services" - как для Win2000 Server.

Или напрямую в ключе реестра HKLM Win32PrioritySeparation.

Всякий раз, когда возникает прерывание от таймера, из кванта потока вычитается 3, и так до тех пор, пока он не достигнет нуля. Частота срабатывания таймера зависит от аппаратной платформы. Например, для большинства однопроцессорных x86 систем он составляет 10мс, а на большинстве многопроцессорных x86 систем - 15мс.

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

Планирование в Windows осуществляется на уровне потоков, а не процессов. Это кажется понятным, так как сами процессы не выполняются, а лишь предоставляют ресурсы и контекст для выполнения потоков. Поэтому при планировании потоков, система не обращает внимания на то, какому процессу они принадлежат. Например, если процесс А имеет 10 готовых к выполнению потоков, а процесс Б - два, и все 12 потоков имеют одинаковый приоритет, каждый из потоков получит 1/12 процессорного времени.

Приоритеты

В Windows существует 32 уровня приоритета, от 0 до 31. Они группируются так: 31 - 16 уровни реального времени; 15 - 1 динамические уровни; 0 - системный уровень, зарезервированный для потока обнуления страниц (zero-page thread).

При создании процесса, ему назначается один из шести классов приоритетов:

Real time class (значение 24),

High class (значение 13),

Above normal class (значение 10),

Normal class (значение 8),

Below normal class (значение 6),

и Idle class (значение 4).

В Windows NT/2000/XP можно посмотреть приоритет процесса в Task Manager.

Above normal и Below normal появились начиная с Win2000.

Приоритет каждого потока (базовый приоритет потока) складывается из приоритета его процесса и относительного приоритета самого потока. Есть семь относительных приоритетов потоков:

Normal: такой же как и у процесса;

Above normal: +1 к приоритету процесса;

Below normal: -1;

Highest: +2;

Lowest: -2;

Time critical: устанавливает базовый приоритет потока для Real time класса в 31, для остальных классов в 15.

Idle: устанавливает базовый приоритет потока для Real time класса в 16, для остальных классов в 1

Привязка к процессорам

Если операционная система выполняется на машине, где установлено более одного процессора, то по умолчанию, поток выполняется на любом доступном процессоре. Однако в некоторых случаях, набор процессоров, на которых поток может работать, может быть ограничен. Это явление называется привязкой к процессорам (processor affinity). Можно изменить привязку к процессорам программно, через Win32-функции планирования.

Создание процессов

Создание Win32 процесса осуществляется вызовом одной из таких функций, как CreateProcess, CreateProcessAsUser (для Win NT/2000) и CreateProcessWithLogonW (начиная с Win2000) и происходит в несколько этапов:

- Открывается файл образа (EXE), который будет выполняться в процессе. Если исполняемый файл не является Win32 приложением, то ищется образ поддержки (support image) для запуска этой программы. Например, если исполняется файл с расширением.bat, запускается cmd.exe и т.п.

В WinNT/2000 для отладки программ реализовано следующее. CreateProcess, найдя исполняемый Win32 файл, ищет в SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option раздел с именем и расширением запускаемого файла, затем ищет в нем параметр Debugger, и если строка не пуста, запускает то, что в ней написано вместо данной программы.

- Создается объект Win32 "процесс".

- Создается первичный поток (стек, контекст и объект "поток").

- Подсистема Win32 уведомляется о создании нового процесса и потока.

- Начинается выполнение первичного потока.

- В контексте нового процесса и потока инициализируется адресное пространство (например, загружаются требуемые DLL) и начинается выполнение программы.

Пример создания процесса calc.exe:

#include

int main(int argc, char* argv[])

{

STARTUPINFO si;

PROCESS_INFORMATION pi;

ZeroMemory(&si, sizeof(si));

si.cb = sizeof(si);

ZeroMemory(&pi, sizeof(pi));

if(!CreateProcess(NULL, "c:/windows/calc.exe", NULL, NULL, FALSE,

0, NULL, NULL, &si, &pi))

return 0;

// Close process and thread handles.

CloseHandle(pi.hProcess);

CloseHandle(pi.hThread);

return 0;

}

Завершение процессов

Процесс завершается если:

- Входная функция первичного потока возвратила управление.

- Один из потоков процесса вызвал функцию ExitProcess.

- Поток другого процесса вызвал функцию TerminateProcess.

Когда процесс завершается, все User- и GDI-объекты, созданные процессом, уничтожаются, объекты ядра закрываются (если их не использует другой процесс), адресное пространство процесса уничтожается.

Создание потоков

Первичный поток создается автоматически при создании процесса. Остальные потоки создаются функциями CreateThread и CreateRemoteThread (только в Win NT/2000/XP).

Завершение потоков

Поток завершается если

- Функция потока возвращает управление.

- Поток самоуничтожается, вызвав ExitThread.

- Другой поток данного или стороннего процесса вызывает TerminateThread.

- Завершается процесс, содержащий данный поток.

История Mac OS X

В IT индустрии далеко не последнюю роль здесь сыграла компания Apple.

История компании Apple началась тридцать лет назад, когда два друга Стив Джобс и Стив Возняк решили основать собственную компанию по производству и выпуску компьютеров. Официально Apple была основана 1 апреля 1976 года, и именно тогда на рынке появился собранный вручную компьютер Apple Computer I - за десять месяцев было собрано и продано 175 штук по цене 666,66 долларов. По сути дела, Apple I представлял собой материнскую плату без корпуса, клавиатуры, звука и графики.

В феврале 1977 года президентом Apple становится Майкл Скотт. Существенным шагом вперед стал выпуск в апреле этого же года Apple Computer II - первый персональный компьютер с цветной графикой. Здесь была поддержка вывода на экран различных цветов, разработаны команды для работы со звуком и, следовательно, имелся встроенный динамик и клавиатура, появилась возможность оперативной смены изображения на дисплее, был блок питания и т.д. Вся эта «начинка» была упакована в специально разработанный литой пластиковый корпус, что очень выгодно отличало новый Apple от других компьютеров, имевших вид неуклюжих ящиков из листового металла. Тогда же появился известный теперь всему миру логотип - надкушенное разноцветное яблоко - созданный рекламным агентством Regis McKenna.

В мае 1979 года сотрудник Apple Джеф Раскин начал работать над новым компьютером «все в одном», который был ориентирован на рядового пользователя. Именно этот период и можно назвать началом рождения первого Macintosh.

В 1983 году Apple выпустил Lisa - первый персональный компьютер с графическим пользовательским интерфейсом, названный так в честь дочери Джобса. Но из-за довольно высокой цены и ограниченного набора приложений эта модель не получила широкого распространения. Хотя с коммерческой точки зрения Lisa была полным провалом, тем не менее, ее выпуск не прошел зря - использованная здесь операционная система Lisa 7/7 имела оконный интерфейс, буфер, который позволял передавать данные между приложениями и многое другое.

Самый первый свой Macintosh компания Apple официально представила 22 января 1984 года рекламным роликом «1984», основанным на сюжете книги Д. Оруэлла. Этот клип был назван рекламным клипом десятилетия, получил гран-при в Каннах и по сей день считается в истории рекламы одним из самых оригинальных. Это событие стало значимой вехой в истории персональных компьютеров. С появлением Macintosh в корне изменилось представление людей о компьютерах, и были заложены те основы, которые в дальнейшем стали использовать все компьютерные фирмы. В сентябре этого же года Apple начинает продавать компьютеры Macintosh 512K по цене 2495 долларов.

Шли годы и, естественно, что компьютерная отрасль тоже не стояла на месте. В течение всего времени совершенствования компьютеров Macintosh развивалась и их операционная система Mac OS (System), то есть расширялись новые возможности, менялись ее отдельные элементы и внедрялись новые технологии. Когда Mac OS была впервые представлена в 1984 году, то для того времени она являла собой совершенство современного программирования.

Система с самого начала разрабатывалась с расчетом на то, чтобы любой пользователь, не имея нужной квалификации, впервые сев за компьютер, мог, сразу же через несколько минут начать работать на нем, не вникая в технические параметры. Операционные системы для других платформ, которые появились несколько лет спустя, предлагали такие вещи, как защищенная память и многозадачность, что в конечном итоге давало лучший пользовательский опыт. Apple не встраивала этих вещей в Mac OS потому, что микропроцессоры, которые были доступны во время разработки Mac OS, не были достаточно мощными. Но течением времени Mac OS обрастала дополнительной функциональностью, и при этом оставалась наиболее легкой в изучении и использовании. Удобство и простота работы в этой системе были одними из главных целей ее создателей, и внутренняя логика взаимодействия отдельных частей операционной системы была в первую очередь подчинена этим требованиям.

Когда перед Apple встал вопрос о разработке операционной системы нового поколения, то, взвесив все «за» и «против» компания в качестве основы для новой Mac OS решила воспользоваться разработками фирмы NeXT, которая использовала операционные системы под общим назва¬нием UNIX. Именно система OpenStep (NeXTStep) стала основой для построения новой Mac OS. Разработчикам новой Mac OS надо было обеспечить плавный переход от старой системы к новой так, чтобы пользователи могли по-прежнему работать с большим количеством уже имеющихся программ, пока не будут созданы более мощные и удобные. Так появилась новая система Mac OS X.

Структура Mac OS X

Наиболее удачным описанием общей концепции Mac OS X считается представление операционной системы в виде некоторой многоуровневой структуры, в которой каждый уровень имеет свое назначение и свой круг решаемых задач.

Mac OS X состоит из нескольких частей, вложенных одна в другую. На самом верху - новый пользовательский интерфейс Aqua. Под ним - слой поддержки прикладных программ: окружения Classic, Carbon, Cocoa, Java. Еще глубже - графика и мультимедиа: Quartz, OpenGL, QuickTime. И, наконец, в самой глубине - главный двигатель системы, ядро Darwin.

Ядро Darwin

В основе операционной системы Mac OS X находится ядро Darwin. Чтобы ускорить ввод продукта и повысить его качество компания Apple при разработке Darwin, открыла доступ к исходным кодам для всех желающих. Модули ядра Darwin были полностью открыты и доступны для рограммистов-разработчиков, вплоть до исходных текстов. Таким образом, над разработкой и реализацией Darwin трудилось огромное количество людей - свыше 100 тыс. человек.

Центральной частью Darwin является микроядро Mach 3, пришедшее в Mac OS из системы NextStep/OpenStep. Оно отвечает за самые базовые особенности поведения операционных систем более высокого уровня. Преимущество этой микроядерной архитектуры перед архитектурой с монолитным ядром состоит в том, что все базовые функции ядра выполняются в виде небольшой компоненты, которая работает в привилегированном режиме, остальные функции системы оформлены в виде подключаемых модулей и работают в обычном, пользовательском, режиме. Таким образом, значительно повышается надежность, стало довольно легко модифицировать ключевые компоненты ОС и т.д.

Забегая вперед, можно сказать, что в результате, в 2001 году после пяти лет выхода различных ядер (Rhapsody, Darwin) и получилась Mac OS X 10.0 (Cheetah) - на базе микроядра Mach, позаимствованного из NeXT OS и BSD, с системой эмуляции старых Mac OS Classic, рядом новых технологий, направленных на то, чтобы новая ОС от Apple соответствовала требованиям времени. В 2001 году вышли Mac OS X 10.1 (Puma), в 2002 году - Mac OS X 10.2 (Jaguar), в 2003 - Mac OS X 10.3 (Panther), в 2005 - Mac OS X 10.4 (Tiger). Mac OS X 10.4

Итак, на самом нижнем уровне расположено открытое интегрированное ядро, которое называется Darwin.Компьютерный термин «ядро» обычно означает небольшую, как правило, монолитную часть системы, в обязанности которой входит выполнение минимальных базовых функций для поддержки всех основных сервисов операционной системы. В Mac OS X понятие ядра существенно расширено. Под ядром в Маc OS X подразумеваются все программные модули, исполняемые в адресном пространстве ядра. Darwin объединяет в себе несколько технологий, основные из которых:

микроядро Mach 3.0;

сервисы операционной системы на базе BSD 4.4-Lite;

быстрые, основанные на сложившихся стандартах сетевые модули;

система ввода-вывода (I/O Kit);

поддержка различных файловых систем.

Микроядро Mach

Микроядро Mach(разработка Carnegie-Mellon University) является основой всего ядра Darwin, так как выполняет все критически важные функции операционной системы. Оно управляет загрузкой процессора, создает расписания и отслеживает их выполнение, распределяет память и обеспечивает ее защиту, формирует централизованную инфраструктуру системных сообщений для других уровней операционной системы.

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

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

Виртуальная память. Каждой задаче в Mac OS X выделяется свое виртуальное адресное пространство объемом до 4 Гбайт. Но реальное выполнение любой задачи возможно только в истинной физической памяти - оперативной памяти компьютера. Mach осуществляет выделение задачам пространства физической памяти и преобразование виртуальных адресов в адреса физической памяти. Обычно только один фрагмент программы или данных, находящихся в виртуальном адресном пространстве задачи, загружен в физическую память. Если требуется другой фрагмент, он загружается в память с носителя данных, обычно с магнитного диска, вытесняя предыдущий фрагмент. Mach контролирует загрузку и освобождение памяти, обеспечивая эффективную работу многих задач одновременно.

Режим реального времени. Для процессов, требующих быстрой реакции, Mach обеспечивает доступ к ресурсам процессора за минимальное время.

Система BSD

Тесно интегрированная с микроядром Mach, система BSD в Mac OS X является несколько видоизмененной версией операционной системы BSD 4.4-Lite (Berkeley Software Distribution, разработка University of California at Berkeley). Версия BSD ядра Darwin осуществляет в Mac OS X поддержку различных файловых систем и сетевых технологий. Кроме того, BSD отвечает:

за систему безопасности, идентификацию и права пользователей,

преобразование вызовов из уровня программ на уровень системы,

BSD-модель процессов,

реализацию механизма BSD sockets,

реализацию так называемых нитей процессов (POSIX threads),

Application Program Interface (API) ядра.

Система ввода-вывода

Система ввода-вывода (I/O Kit) построена на объектно-ориентированной модели и соответствующих библиотеках. Она поддерживает множество устройств различного типа, облегчает написание драйверов, является модульной и расширяемой системой. Важнейшие ее черты:

истинный режим plug-and-play,

динамическое управление устройствами (горячее подключение),

динамическая загрузка драйверов по мере необходимости,

управление энергопотреблением как для портативных, так и для настольных компьютеров,

многопроцессорная обработка.

На уровне пользователя программной основой сетевых и коммуникационных средств Mac OS X является технология OpenTransport.OpenTransport Mac OS X поддерживает большинство функций, имевшихся еще в Mac OS 8 и 9, хотя кое-что пришлось изменить. Для работы в сети в Mac OS X имеется:

стек протоколов ТСРДР от BSD 4.4,

поддержка IP и AppleTalk,

поддержка нескольких IP-адресов при одном сетевом интерфейсе (multihoming),

маршрутизация (routing),

многоадресная передача одних и тех же данных нескольким адресатам -- multicast,

реализация AppleTalk на базе технологии socket,

поддержка Mac OS Classic,

набор модулей для работы с сетью (OpenTransport), переписанный для работы в окружении Carbon.

Mac OS X поддерживает следующие типы сетевых сред:

Ethernet-10/100Base-T;

Ethernet-1000Base-T;

Jumbo Frame;

Последовательная передача;

Беспроводная передача.

Mac OS X поддерживает следующие стандартные сетевые протоколы:

^ TCP/IP, UDP/IP;

PPP;

PAP;

HTTP;

FTR;

DNS;

SLP;

DHCP и BOOTP;

Для добавления новых сетевых технологий без необходимости перекомпиляции ядра предусмотрен механизм сетевых расширений ядра -- Network Kernel Extensions. Этот механизм позволяет не только добавлять отдельные сетевые модули, но и полный набор (стек) новых протоколов, которые динамически загружаются в ядро или выгружаются из ядра по мере необходимости.

Используемая литература

Эндрю Стюарт Таненбаум, Modern Operating Systems, ISBN 0-13-031358-0

Эндрю Стюарт Таненбаум, Operating Systems: Design and Implementation, ISBN 0-13-638677-6

http://www.wikipedia.org/

http://education.aspu.ru

http://www.intuit.ru

Размещено на Allbest.ru
1   2   3   4   5   6

Поиск по сайту:



База данных защищена авторским правом ©dogend.ru 2014
При копировании материала укажите ссылку
обратиться к администрации
Уроки, справочники, рефераты