· ожидание — пассивное состояние потока, находясь в котором, поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);
· готовность — также пассивное состояние потока, но в этом случае поток за блокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).
· С самых общих позиций все множество алгоритмов планирования можно разделить на два класса: вытесняющие и невытесняющие алгоритмы планирования.
· Не вытесняющие (поп-preemptive) алгоритмы основаны на том, что активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из ' очереди другой готовый к выполнению поток.
· Вытесняющие (preemptive) алгоритмы — это такие способы планирования потоков, в которых решение о переключении процессора с выполнения одного потока на выполнение другого потока принимается операционной системой, а не активной задачей.
· Почти во всех современных операционных системах, ориентированных на высокопроизводительное выполнение приложений (UNIX, Windows NT/2000/2003/2008, OS/2, VAX/VMS), реализованы вытесняющие алгоритмы планирования потоков (процессов).
В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. В соответствии с этой концепцией каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени — квант. Смена активного потока происходит, если:
· поток завершился и покинул систему;
· произошла ошибка;
· поток перешел в состояние ожидания;
· исчерпан квант процессорного времени, отведенный данному потоку.
Другой важной концепцией, лежащей в основе многих вытесняющих алгоритмов планирования, является приоритетное обслуживание. Приоритетное обслуживание предполагает наличие у потоков некоторой изначально известной характеристики — приоритета, на основании которой определяется порядок их выполнения. Приоритет — это число, характеризующее степень привилегированности потока при использовании ресурсов вычислительной машины, в частности процессорного времени: чем выше приоритет, тем выше привилегии, тем меньше времени будет проводить поток в очередях.
Приоритет может выражаться целым или дробным, положительным или отрицательным значением. В некоторых ОС принято, что приоритет потока тем выше, чем больше (в арифметическом смысле) число, обозначающее приоритет. В других системах, наоборот, чем меньше число, тем выше приоритет.
1.2 Преимущества и недостатки сетевых операционных систем
1.2.1 OC Unix
ОС Unixявляется старейшей сетевой операционной системой (создана в 1969г.) и по сегодняшний день использующейся в Internet. Существует множество клонов Unix— практически ничем не отличающихся друг от друга операционных систем разных производителей: FreeBSD, BSDUnix(университет Berkley), SunOS, Solaris(фирма SunMicrosystems), AIX(фирма IBM), HP-UX(фирмы HewletPackard), SCO(фирмы SCO) и др. Самым популярным клоном Unixпожалуй является FreeBSD, в основном из-за того, что ее исходные тексты распространяются свободно, что позволяет произвольно переделывать ОС "под себя", а также тестировать систему на отсутствие ошибок и "черного хода". В связи с этим, FreeBSDсодержит гораздо меньше ошибок, чем коммерческие варианты Unix, т.к. отладкой и устранением ошибок занималась не одна компания, а все программистское сообщество.
UNIX- группа переносимых,многозадачныхимногопользовательскихоперационных систем.
Первая система UNIX была разработана в 1969 г. в подразделенииBell LabsкомпанииAT&T. С тех пор было создано большое количество различных UNIX-систем. Юридически лишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотя и используют сходные концепции и технологии, объединяются термином«UNIX-подобные»(англ.Unix-like). Для краткости в данной статье под UNIX-системами подразумеваются как истинные UNIX, так и UNIX-подобныеОС.
Некоторые отличительные признаки UNIX-систем включают в себя:
· использование простыхтекстовых файловдля настройки и управления системой;
· широкое применение утилит, запускаемых вкомандной строке;
· взаимодействие с пользователем посредством виртуального устройства — терминала;
· представление физических и виртуальных устройств и некоторых средств межпроцессового взаимодействия какфайлов;
· использованиеконвейеровиз нескольких программ, каждая из которых выполняет одну задачу.
В настоящее время UNIX используются в основном насерверах, а также как встроенные системы для различного оборудования. На рынке ОС длярабочих станцийи домашнего применения лидером являетсяMicrosoft Windows, UNIX занимает только второе (Mac OS X) и третье (GNU/Linux) места.
UNIX-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС ипрограммного обеспечения. Также, в ходе разработки Unix-систем был создан языкСи.
В1957 годув Bell Labs была начата работа по созданию операционной системы для собственных нужд. Под руководствомВиктора Высотского(русского по происхождению) была создана системаBESYS. Впоследствии он возглавил проектMultics, а затем стал главой информационного подразделения Bell Labs.
В1964 годупоявились компьютеры третьего поколения, для которых возможности BESYS уже не подходили. Высотский и его коллеги приняли решение не разрабатывать новую собственную операционную систему, а подключиться к совместному проектуGeneral ElectricиМассачусетского технологического институтаMultics. Телекоммуникационный гигантAT&T, в состав которого входили Bell Labs, оказал проекту существенную поддержку, но в1969 годувышел из проекта, поскольку он не приносил никаких финансовых выгод.
Первоначально UNIX была разработана в конце1960-х годовсотрудникамиBell Labs, в первую очередьКеном Томпсоном,Денисом РитчииДугласом МакИлроем.
В1969 годуКен Томпсон, стремясь реализовать идеи, которые были положены в основу MULTICS, но на более скромном аппаратном обеспечении (DECPDP-7), написал первую версию новой операционной системы, аБрайан Керниганпридумал для неё название — UNICS (UNIplexed Information and Computing System) — в противовес MULTICS (MULTIplexed Information and Computing Service). Позже это название сократилось до UNIX.
В ноябре1971 годавышла версия дляPDP-11, наиболее успешного семейства миникомпьютеров1970-х(вСССРего аналоги, выпускавшиеся Министерством Электронной Промышленности были известно какСМ ЭВМи «Электроника», позже ДВК, производились вКиеве,Воронеже,Зеленограде). Эта версия получила название «первая редакция» (Edition 1) и была первой официальной версией. Системное время все реализации UNIX отсчитывают с1 января1970.
Первые версии UNIX были написаны наассемблереи не имели встроенногокомпиляторасязыком высокого уровня. Примерно в 1969 году Кен Томпсон при содействии Дениса Ритчи разработал и реализовал языкБи(B), представлявший собой упрощённый (для реализации на миникомпьютерах) вариант разработанного в1966языкаBCPL. Би, как и BCPL, былинтерпретируемымязыком. В 1972 году была выпущена вторая редакция UNIX, переписанная на языке Би. В 1969—1973 годах на основе Би был разработан компилируемый язык, получивший названиеСи(C).
В1973 годувышла третья редакция UNIX, со встроенным компилятором языка Си.15 октябрятого же года появилась четвёртая редакция, с переписанным наСисистемным ядром(в духе системы Multics, также написанной на языке высокого уровняПЛ/1), а в1975 — пятая редакция, полностью переписанная на Си.
С1974 годаUNIX стал бесплатнораспространяться средиуниверситетови академических учреждений. С1975 годаначалось появление новых версий, разработанных за пределами Bell Labs, и рост популярности системы. В том же1975 годуBell Labs выпустила шестую редакцию, известную по широко разошедшимсякомментариямДжона Лайонса.
К1978 годусистема была установлена более чем на 600 машинах, прежде всего, в университетах.Седьмая редакция была последней единой версией UNIX. Именно в ней появился близкий к современномуинтерпретатор командной строкиBourne shell.
С1978 годаначинает свою историю BSD UNIX, созданный вуниверситете Беркли. Его первая версия была основана на шестой редакции. В1979выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства, каквиртуальную памятьи замещение страниц по требованию. Автором BSD былБилл Джой.
В начале1980-хкомпанияAT&T, которой принадлежалиBell Labs, осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в1982 году, носила название UNIX System III и была основана на седьмой версии системы.
Важной причиной раскола UNIX стала реализация в1980 годустека протоколов TCP/IP. До этого межмашинное взаимодействие в UNIX пребывало в зачаточном состоянии — наиболее существенным способом связи былUUCP(средство копирования файлов из одной UNIX-системы в другую, изначально работавшее по телефонным сетям с помощьюмодемов).
Было предложено два интерфейса программирования сетевых приложений: Berkley sockets (сокетБеркли) иинтерфейс транспортного уровняTLI (англ.TransportLayerInterface). Интерфейс Berkley sockets был разработан в университете Беркли и использовал стек протоколовTCP/IP, разработанный там же. TLI был создан AT&T в соответствии с определением транспортного уровнямодели OSIи впервые появился в системе System V версии 3. Хотя эта версия содержала TLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевых протоколов, но подобные реализации предоставлялись сторонними фирмами. Реализация TCP/IP официально и окончательно была включена в базовую поставку System V версии 4. Это, как и другие соображения (по большей части, рыночные), вызвало окончательное размежевание между двумя ветвями UNIX —BSD(университета Беркли) иSystem V(коммерческая версия от AT&T). Впоследствии, многие компании, лицензировав System V у AT&T, разработали собственные коммерческие разновидности UNIX, такие, какAIX,CLIX,HP-UX,IRIX,Solaris.