Развитие на ос. Основни типове



страница6/8
Дата17.10.2018
Размер2.7 Mb.
#90651
1   2   3   4   5   6   7   8

МАТРИЦА НА ДОСТЪП


Един вариант на списъка на достъп известен като матрица на достъп. Тук достъпа се извършва само възоснова на идентифицирането на потребителя. Различните потребители може да искат различни типове достъп до файл или до справочник. С всеки файл(F1,F2,F3,…) се свързва списък на идентификаторите на потребителите(U1, U2,U3,…), които могат да имат достъп до файла.С всеки идентификатор се свързва дума, оказваща разрешените типове достъп(чрез състоянието на съответния бит :е- изпълнение, d-унищожаване, c-създаване, r-четене, w- запис). Получената матрица е голяма и разредена. Фигура6.

Опростен вариант е да се отбележи матрицата само чрез един бит разрешен или забранен достъп до файла, което намалява размера на матрицата и опростява операциите над нея. Друг подход е определяне на отношенията между всяка двойка потребители. Създава се матрица на идентификаторите на потребителите, показваща разрешените типове на достъп на всеки потребител към файловете на другите потребители.Всеки елемент на матрицата съдържа дума на достъпа, указваща разрешените типове на достъпа.Всички битове в тази дума са равни на “I” за достъпа към собствените файлове на потребителя.изредените подходи изискват голям обем от памет, но дават гъвкавост на защитата.

КЛАСОВЕ ОТ ПОТРЕБИТЕЛИ

Както беше казано, проблемът на списъците е в тяхната големина. Вместо това могат да се определят класове от потребители за всеки файл и в тях всички имат еднакви правила:


  1. Собственик - потребителя създал файл. Неговите права могат да бъдат предоставени на други потребители, но това не се прави често.

  2. Група – притежателя има партньори, които съвместно използват файла и им трябва подобен достъп.

  3. Назначен – на потребителя могат да бъдат предоставени особени права, в общия случай недостъпни за други потребители.

  4. Редовни – всички останали потребители в системата.Очевидно е, че в йерархията в правата на потребителите – собственика е с най-много, а редовния е с най – малко. Назначения потребител може да има произволни права. В други системи класификацията на потребителите и файловете може да бъде по - структурирана(MPE III за HP3000). Например в UNIX системата определя дума с три полета, всяко от тях включва 3 бита: rwx(четене, запис и изпълнение). Отделните полета се пазят за: собственик, група на собственика и всички останали потребители.Във VAX/VMS групите могат да бъдат управлявани точно, както файлове със съответният контрол.

10.7.ЦЯЛОСТНОСТ НА ДАННИТЕ И ВЪЗСТАНОВЯВАНЕ НА СИСТЕМАТА

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



  1. Данните по начало са грешни. С подобна грешка ОС нищо не може да направи

  2. Умишлени или случайни нарушения от страна на потребителите

  3. Неправилно функциониране на системата – тук могат да се включат различни причини : некоректна работа на потребителската програма(например неправилна синхронизация), неправилна работа на ОС, апаратурни проблеми. За повишаване на надеждността на системата се вземат мерки, както по отношение на апаратурата, така и при копиране на данни с оглед на тяхното възстановяване при повреда един от най – разпространените начините е ОС периодично да копира дисковете(евентуално и други носители при които може да се изгуби информацията) върху магнитни ленти, който се пазят отделно


Глава XI

ОПЕРАЦИОННИ СИСТЕМИ


ЗА МУЛТИПРОЦЕСОРНИ СИСТЕМИ И МРЕЖИ

Досега се разглеждаха централизираните ОС, работещи на еднопроцесорни компютри. Основна тенденция в развитието на компютърната техника е увеличаване на броя на процесорите и разпределение на работата между тях. Процесорите в тези системи могат да бъдат свързани по различни начини и териториално разположени. Мултипроцесорните системи и мрежите от компютри представляват две основни схеми за изграждане на такива системи.

В мултипроцесорните системи, процесорите споделят обща основна памет и такт, образувайки единен изчислителен комплекс. В тях комуникацията се основава главно на общата памет. Данните в основната памет са достъпни за всички процесори, а едни и същи програми могат да се изпълняват на няколко процесора. По правило взаимодействащите процеси трябва да бъдат синхронизирани.

В мрежите процесорите нямат обща памет и такт - всеки процесор има собствена локална памет. Процесорите работят с голяма степен на самосто­ятелност и процесите в тях могат да протичат асинхронно. Те комуникират чрез различни бързи или бавни линии за предаване на данни, такива като кабелни или телефонни линии.

Апаратната част е важна, но програмното осигуряване е още по-важно. Как компютърната система изглежда на потребителя и как тя работи като цяло се определя от ОС.

11.1. МУЛТИПРОЦЕСОРНИ СИСТЕМИ

Главните предимства на мултипроцесорните системи са повишаване на производителността и на надеждността. Проблемите, които трябва да се решат при проектирането на тези системи, са намиране на оптимални схеми за комутация, решаване на конфликтите между процесорите, организиране на системата така, че при повреда на процесор друг да поеме работата му.

Съществуват извънредно много конфигурации на мултипроцесорни системи. В „чист вид" тези системи включват повече от един процесори с приблизително еднаква производителност, които споделят обща памет и периферни устройства, и се управляват от една ОС. Много от реалните системи излизат извън тази дефиниция, например те могат да имат и локална памет.



11.1.1. Организация на апаратурата

Най-простият метод е да се свържат всички функционални модули към обща шина, по която те обменят данни. Шината включва линии за адреси, данни и управление. Тя е пасивно устройство и обменът на данни се извършва под управлението на самите модули. Шината е общ ресурс и трябва да бъде предвиден механизъм за определяне на реда на нейното използване.

Тази организация е проста и гъвкава - към нея лесно се включват нови модули. Главните й недостатъци са: цялата система става неработоспособна при повреда на шината, общата скорост на предаване на данни се ограничава от пропускателната способност на шината, състезанията за достъп до шината могат да доведат до деградация на производителността.

В големите системи шината става тясно място и затова трябва да се използват много шини. Разпространен подход е да се използва матрица за координатна комутация, която осигурява физическа връзка между произволен модул на паметта и произволен процесор. Тук е възможно едновременно да се прави обръщане към всички модули на паметта. Както при общата шина, е необходимо да се решават конфликтните ситуации при обръщане към един и същ модул на паметта.

Тази организация позволява максимална гъвкавост на обмена на данни и минимизира състезанията за достъп до общите ресурси, което осигурява по-висока пропускателна способност и производителност в сравнение с другите методи.

Разширението на системата зависи само от възможностите на комутатора, като това обикновено води до повишаване на производителността на системата. Надеждността зависи от начина на изграждане на комутатора - централизиран или разпределен между функционалните модули.

За да се опрости комутаторът, използват се и други методи за комутация. На фиг. 11.3 е показана мрежа за превключване, наречена омега. В примера тя включва само 2x2 превключвателя, всеки с два входа и два изхода. Всеки прев- ключвател може да свърже произволен вход с произволен изход - така всеки процесор има достъп до всеки модул на паметта.

Третата организация на свързване, показана на фиг. 11.4, използва мно-гопортова памет. Всеки процесор има собствена входна линия до всяка памет. Броят на пресечните точки практически е като на матрицата с координатна комутация, но превключването е разпределено между модулите на паметта. Обикновено портовете на паметта получават постоянни приоритети за разрешение на конфликтни ситуации.

Тази организация позволява процесорите да имат „частни" модули на паметта, т.е. до определени модули имат достъп само определени процесори. Независимо от начина на реализация, броят на съединенията е по-висок сравнение с другите организации, но могат да се постигнат високи скорости обмен на данни.

11.1.2. ОС за мултипроцесорни системи

Съществуват три най-общи организации на ОС за мултипроцесорни системи. В организацията главен-подчинен ОС се изпълнява само на главния процесор, докато на подчинените процесори се изпълняват потребителските програми. Главният процесор управлява подчинените, като планира натоварването им.

Процесорите си взаимодействат чрез общата памет или линии за връзка. Когато процес от подчинен процесор иска внимание от ОС, генерира се прекъсване и се чака за обслужване от главния процесор. Той трябва максимално бързо да обслужва заявките на подчинените процесори, иначе те ще работят неефективно. Ако подчинените процесори са много и/или генерират много активно прекъсвания, пред главния процесор могат да се образуват големи опашки. Когато подчинен процесор се освободи в момент, когато главният е зает, той трябва да бездейства и да чака, докато главният процесор не му предостави нова работа.

Тази организация на ОС е по-малко надеждна в сравнение с останалите -ако се повреди главният процесор, системата пропада. Друг недостатък е, че малката гъвкавост на метода може да доведе до неефективно управление на ресурсите.

Организацията главен-подчинен се смята за приемлива при работа в условия с точно определени натоварвания, тъй че да може да се реализира оптимално планиране на натоварването на главния процесор. Главният процесор може да бъде като останалите (подчинените) процесори или да бъде специално проектиран за работа с ОС.

По-надеждна е организацията с отделни монитори, където всеки процесор изпълнява собствена ОС. Затова управляващите програми на ОС трябва да са реентрантни или да съществуват в много екземпляри.

Функциите на ОС са реализирани на всеки процесор, като се работи подобно на еднопроцесорна машина със собствени ресурси (например файлове или входно/изходни устройства). ОС реагира на прекъсванията само от потребителските процеси, изпълнявани на собствения процесор. Всеки процес по време на съществуването си остава свързан само с един процесор (и се изпълнява от него).

Процесорите имат висока степен на независимост. Между тях няма взаимодействие при изпълнение на даден процес - той се изпълнява до завършването си на един процесор. Възможно е някои от процесорите да бездействат, докато дълъг процес се изпълнява на някакъв процесор.

Използването на ефективни алгоритми за разпределение на процесите между процесорите може съществено да повиши пропускателната способност на системата.

Повреда на процесор не води до пропадане на системата като цяло но обикновено повреда трудно се открива, а рестартирането на системата с повреден процесор може да стане доста сложно.

Най-сложна за реализация, но и най-ефективна, е симетричната организация, при която ОС управлява група идентични процесори (ресурси за ОС), всеки от които може да управлява произволни устройства или да се обръща към блок на паметта. Програмите на системата могат едновременно да се изпълняват от произволен брой процесори и затова реентрантно (единствено) копие на ОС се намира в общата памет.

Тъй като процесорите се разглеждат като ресурси, един процес може да се изпълнява от различни процесори (идентични) в различни моменти от време. Процесорите могат да се кооперират за изпълнение на конкретен процес. Това позволява по-точно и по-леко да се балансира натоварването на цялата система, като работа се възлага на произволен свободен процесор.

При излизане на процесор от строя, ОС го изключва от групата процесори и работата продължава с намалена производителност. Затова в общия случай тези мултипроцесорни системи се смятат най-надеждни.

ОС се премества от един процесор към друг - процесорът, който отговаря в момента за системните таблици и за системните функции, се нарича мониторен. В даден момент само един процесор може да е мониторен, което предпазва от конфликти при работа с глобалните данни.

Тъй като програмите на ОС и данните се намират в паметта, конкуренцията за тяхното използване е висока. Този проблем може да стане остър, особено във връзка с възможността няколко процесора да работят в супервайзорен режим. Затова се предприемат различни мерки при организирането на системните данни.

Windows NT. NТ (2000) поддържа симетрична мултиобработка и многопотокова работа, характеризиращи се със следното:


  • Потоците на всеки процес, включително и системните, могат да се изпълняват на кой да е процесор;

  • Потоците в един процес, включително и системните, могат да се изпълняват едновременно на отделни процесори;

  • Процесите-сървъри могат да използват няколко потока за обработка на повече от един процес-клиент едновременно;

Предоставят се удобен механизъм за делене на данни и ресурси между процесите и гъвкави възможности за комуникация между процесите.

11.1.3. Управление на ресурсите

Взаимодействие между процесите. При мултипроцесорните системи процесите се изпълняват действително паралелно и принципи за управление на взаимодействието между процесите се различават малко от еднопроцесорните системи. При използване на мултипроцесорни машини възниква въпросът, къде да се обработват прекъсванията. Обикновено вътрешните прекъсвания се обработват на процесора, където те настъпват. Външните прекъсвания могат да се обработват на произволен процесор. В система главен-подчинен всички външни прекъсвания се обработват от главния процесор. Въпреки че апаратната реализация е проста, времето за отговор може да е голямо. Друго решение е да се предостави на всички процесори правото да обработват прекъсвания. Прекъсванията се изпращат към всеки процесор в опашка в течение на определено време и всеки процесор е длъжен за това време да обработи прекъсването.

Междупроцесорните прекъсвания могат да служат като средство за синхронизация в мултипроцесорните системи. Например в системата Hydra тези прекъсвания се използват за организиране на взаимно изключване в операциите над опашките. Специална дума съдържа информация за това, кои процесори чакат ключ за достъп до данните. Когато процесор завърши обработката над общите данни, той дава сигнал, по който един от чакащите процесори захваща този ключ. Процес, намиращ се в опашката, не се снема от процесора, така че последният е недостъпен за други готови процеси. Затова от ключа на достъп се ползват само управляващите програми, а не потребителските.

Реализацията на примитивните операции е по-сложна. Забраната на прекъсванията в отделните процесори няма да има ефект - процесите се развиват на различни процесори и изпълнението на командите може да се припокрива, като достъпът до общата памет се решава с арбитраж. Ако няма специални апаратни команди, за целта може да се използват разгледаните програмни решения, където критични секции са процедурите за реализация на примитивните операции, например Р и V. Прекъсванията тук служат, за да завърши изпълнението на Р и V, преди да бъде освободен конкретният процесор. Един проблем, който може да възникне е, че процес може да прави постоянно Р и V на някакъв процесор, докато другите циклят в команда TS поради някакви времеви условия. За да се предотврати това, може да се разшири механизмът за влизане в критична секция въз основа на цикличен алгоритъм.

Планиране на процесора. Един главен фактор при избор на стратегия е типът на процесорите - дали са еднакви или са различни. Ако процесорите са различни, тогава възможностите за избор са относително ограничени. Всеки процесор има собствена опашка и собствен алгоритъм за планиране, а процесите се самоопределят на кой процесор могат да се изпълнят.

Ако процесорите са еднакви, възможно е всеки процесор да има опашка, но тогава един процесор може да стои, докато друг е претоварен. Обикновено този подход се използва при ОС с отделни монитори. За да се избегне тази ситуация, се използва обща опашка (споделяно зареждане). Тук са възможни два начина на реализация на планирането. Всеки процесор обработва общата опашка на готовите процеси и си избира процес за изпълнение (необходимо е общите структури да са защитени със семафори или друг механизъм). Трябва да бъде сигурно, че два процесора няма да изберат един и същ процес и че процеси няма да се загубят от опашката. Другият начин избягва този проблем, като използва един процесор за планиране на останалите процесори и конфигурация „главен/подчинен".



Управление на паметта. Времето за достъп до паметта и състезанията между процесорите за достъп често зависят от това какъв процесор към кой модул на паметта се обръща. В несиметричната конфигурация стойността на достъпа даже към еднородна памет може да е различна за различните процесори. Освен това, не винаги всички процесори имат достъп до цялата обща памет. Затова и общата ефективност на системата в голяма степен зависи къде се поместват програмите и данните. Най-известният алгоритъм за оптимално разпределение на време изисква време, експоненциално зависещо от броя на заявките, които е необходимо да се изпълнят едновременно.

Управление на файловете. Когато ОС се изпълнява само на определен процесор, тя включва традиционната файлова система за еднопроцесорни машини. В конфигурациите, където програми на ОС могат да се изпълняват от различни процесори, файловата система значително се различава от еднопроцесорната файлова система. В нея трябва да се вземат мерки за взаимно изключване на изпълнението на критичните секции или на достъпа до общите таблици. Когато някакъв процес, протичащ на даден процесор, се обърне за услуга към ОС чрез системно извикване, то се изпълнява на процесора, като при необходимост се използват семафори или други средства, за да не могат и други процесори да изпълняват в същото време критичните секции. Например, ако се изпълнява системно извикване за запис върху диск, записът на нови данни в буферния кеш се изпълнява като критична секция.
11.2. Мрежи.

Има няколко основни причини за из-граждане на мрежите. Първата от тях е възможността за делене на ресурси-те. Ако няколко компютъра са свърза-ни помежду си, потребител от един компютър може да ползва ресурси, разположени в друг комп. По-кон-кретно, това е възможност за изпол-зване на общи файлове, за обработка на данни в разпределени бази от данни, за отпечатване на файлове и т.н. Втората причина е, че се повиша-ва надежността, тъй като ако един компютър се повреди, другите потен-циално могат да продължат да рабо-тят. Проблем настъпва, когато мрежа-та се състои от компютри, всеки отго-варящ за критична системна функция (напр. файловата система)- тогава еди-нична повреда може да спре цялата мрежа. Мрежата трябва да открива такива повреди и евентуално да се вземат мерки за възстановяване. Мре-жите се използват и за повишаване на бързодействието. Ако една задача мо-же да се раздели на няколко изчисле-ния, които да се извършват едновре-менно, възможно е това да стане пара-лелно. Когато даден комп. се претова-ри със задания, някои от тях могат да бъдат изпратени към друг комп.(това движение се нарича делене на зареж-дането- load sharing). В мрежите по-требителите имат възможност да ко-муникират, обменяйки съобщения. Много мрежи моделират комуника-ционната система на пощите и тази възможност се нарича електронна по-ща. Няколко са и проблемите свърза-ни с мрежите. Това са липсата на опит в проектирането, реализацията и из-ползването на програмното осигурява-не. Трябва да се изясни какви ОС, програмни езици и приложения са подходящи, каква част от работата да върши ОС и каква потребителят. Друг проблем е този с комуникационната подсистема. Съобщения могат да се губят и това изсисква допълнителни средства за възстановяването им.



11.2.1. Типове мрежи.

Мрежите често се класифицират на глобални и локални. Разделението е въз основа на географското разполо-жение на компютрите. Тази разлика въвежда различие в скоростта и на-дежността на комуникационната под-система, което рефлектира и в/у ОС. В глобалните мрежи (WAN) компютри-те, обикновенно наричани главни ком-пютри (host), физически са разхвърля-ни на голяма реографска площ. Затова комуникационните линии са относи-телно бавни и ненадеждни. Типични линии са телефонните линии, микро-вълновите и сателитните канали. Тези линии се управляват от специални ко-муникационни процеси (възли), които отговарят за интерфейса, чрез който компютрите комуникират през мрежа-та, както и за предаването на данни м/у компютрите. Комуник. процесори и линии образуват комуник. подсис-тема (подмрежа). Главните комп. се вкючват към мрежата чрез локални комуник. процесори.



Когато потребителите са отдалечени на голямо разстояние от възел, те се включват към концентратор, който от своя страна е включен към възел на мрежата. Отделни мрежи могат да се съединят чрез шлюз (специализиран компютър), който се явява възел за всяка мрежа. Локалните мрежи (LAN) се развиват в началото на 70-те годи-ни като алтернатива на големите ком-пютърни системи. Те покриват малки географски площи (една или съседни сгради) и най често се използват за ра-бота в офиси. Близостта позволява ко-муник. линии да имат по-висока ско-рост и по-малко грешки в сравнение с глобалните мрежи. Линиите са усука-ни проводници, коаксиални кабели, оптични проводници.


11.2.2. Организиране на мрежите Топология на мрежите

Възлите в мрежата могат да бъдат свързани по различни начини фиг.1.



Всеки от тях има предимства и недостатъци.Пълно свързване. Всеки възел е директно свързан с всички останали. Мрежата е скъпа, тъй като директни комуникационни линии са необходими между всеки два възела (тя расте с квадрат от броя на възлите). Комуникациите обаче са много бързи - съобщенията използват само по една линия между два възела. Системата с високо надеждна, тъй като за нейното разпадане с необходимо да пропаднат много линии (системата се е разпаднала, ако се надроби на две или повече подсистеми, чиито възли не могат да комуникират повече с възли от другиподсистеми).



Частично свързване. В частично свързана мрежа директни линии има

само между някои възли. Мрежата има по-ниска цена, но съобщенията могат понякога да преминават през междинни възли и затова комуни-кацията е по-бавна. Надеждността е по-ниска в сравнение с напълно свързаната - повредата на една линия може да доведе до разпадане на мрежата. За да се намали тази опасност, обикновено всеки възел с свързан с най-малко два други.

Йерархии. В тази конфигурация възлите са организирани като дърво. Това е обща организация на корпоративните мрежи-индивиду-алните офиси са свързани към локален главен офис.Всеки възел (без корена) има уникален родител и няколко деца. Цената на тази мрежа обикновено е по-ниска от частично свързаната. В тази среда родители и деца комуникират директно. Децата могат да общуват само чрез техния общ родител. Ако възел-родител се повреди, неговите деца не могат да комуникират помежду си или с други възли. Най-общо, повредата на възел (сизключение на листата ) могат да раздроби мрежата на няколко независими поддървета.

Звезда. В тази мрежа един от възлите в системата е свързан с всички други ; възли (останалите възли не са свързани помежду си). Цената на системата расте линейно с броя на възлите. Стойността на комуникация е ниска, тъй като изпращане на съобщение от един възел до друг изисква най-много два трансфера. Проблемът е , чe централният възел може да се задръсти и дори броят на съобщенията за изпращане да е малък , времето за прехвърляне на тези съобщения да стане голямо. Затова в много системи централният възел е определен само за превклю-чване на съобщения. Ако този възел пропадне, мрежата напълно се разпада.Пръстен. В тези мрежи всеки възел е свързан с два други съседни, образувайки по този начин пръстен. Пръстенът може да е еднопосочен или двупосочен. В еднопосочната конфигурация всеки възел може да изпрати съобщение само на един от съседите са, при това само в една посока. В двупосо-чната конфигурация възлите могат да изпращат съобщения на всеки от съседите си. Цената също расте линейно с броя на възлите. Но стойността на комуникацията може да е висока - всяко съобщение пътува по целия пръстен до присти-гане на предназначението си. В еднопосочен пръстен това би могло да изисква до n-1 съобщения, а в двупосочен - не повече от п/2 съобщения.В еднопосочната пръстеновидна мрежа пропадането на една линия или възел води до разпадането й, а в двупосочната - трябва да се повредят две линии. Един начин да се предотврати това е мрежата да се снабди с двойни линии.Обща шина. В тази тополо-гия има една обща шина и всички възли са свързани към нея директно. Шината може да бъде пръетснови-дна или линейна.Възлитекомуники-рат помежду си през тази шина. Цената расте линейно на броя на възлите. Цената на комуникация също е ниска, освен ако линията не стане тясно място. Тази топология е подобна звездообразната със специ-ализиран централен възел. Пропада-нето на един възел не влияе на останалите. Повредата на шината води до пълно пропадане на мрежата.Стратегии на свързване

Съществуват различни начини за свързване на двойка процеси, които искат да комуникират през мрежата. В мрежите с комутация на линии се установява постоянна (физиче-ска) връзка между общуващите машини. Линията се използва от двата процеса през цялото време на тяхната комуникация и друг процес не може да я използва през това време (дори процесите да не общу-ват активно в даден момент).В мрежите с комутация на съобще-ния между комуникиращите процеси се установява временна връзка за периода на изпращане на едно съобщение -за всяко съобще-ние поотделно се избира маршрут. Възможно е много съобщения от различни податели да бъдат изпра-тени по същия маршрут. Схемата е подобна на пощенската система.

Всяко съобщение е блок от данни, придружен от системна информация -източник, получател, код за възста-новяване след грешка, което позво-лява на мрежата да изпрати съобще-нието коректно на получателя. Съобщенията могат да са с произволна дължина и затова обикновено се буферират и съхраняват във файлове за бъдещо използване. Предаването на съобщенията става бавно и затова този вид комутация не е приложима за интерактивна работа.В мрежите с комутация на пакет комуникацията се извършва със съобщения с фик-сирана дължина (наречени пакети). Маршрутът се определя динамично за всеки пакет и каналът за връзка е зает само за периода на предаване на пакета. Едно логическо съобще-ние може да бъде разделено на ня-колко пакета и всеки от тях може да бъде изпратен на получателя по различен маршрут на мрежата. Пакетите трябва да се съберат в съобщение при пристигането си. Пакетната комутация позволява диалогова работа.Описаният тип пакетна комутация често се нарича обикновена. Има и по-прост и евтин тип мрежи с пакетна комутация, наречени дейтаграмни, където се транспортират само единични пакети (дейтаграми).Дейгаграми и вируални линии.Дейтаграмите (единичните пакети) са самостоя-телни единици, всяка с адрес на получател. В дейтаграмните мрежи пакетите се транспортират, без да се контролира тяхното подреждане. Изпратено многопакетно съобщение може и да не пристигне в реда на изпращане на пакетите.Друг начин за транспортиране на пакети е изпо-лзването на виртуални линии, но които отделните машини си взаимо-действат. Те се създават чрез делене на общите комуникационни линии. Когато потребител желае да изпрати многопакетно съобщение (или група съобщения), което трябва да прис-тигне в реда на подреждане на пакетите, той трябва да установи временна виртуална линия (нарича-на още виртуално съединение или виртуално извикване). Виртуалното съединение преминава през фазите: начално установяване на виртуал-ната линия (при което се определя номер на логически канал), обмен на данните по канала и разединение на линията. След осигуряване на връзката, отделните пакети от данни нямат адрес на получателя, тъй като той е определен при началното уста-новяване (трябва да се отбележи, че при дейтаграмния модел няма уста-новяване). Съгласно препоръките виртуалните съединения използват за своя трафик дейтаграми (данните и управляващите съобщения за установяване и освобождаване на канала се предават във вид на дейтаграми), те. те се реализират в отделен слой, лежащ над дейтаграм-ното обслужване.Маршрутизация

Когато процес от един възел иска да комуникира с процес от друг възел, I това може да бъде извършено по различни начини.Ако има само един физически път между възлите (например при тип звезда или дърво), съобщението трябва да се изпрати по него. Ако има няколко пътя, тогава съществуват няколко възможности. Всеки възел може да има маршрутна таблица, описваща алтернативните пътища за изпраща-не на съобщения към другите възли. Изпращащият възел анализира адреса на възела-получател (респ. на подобластта при големи мрежи) и го търси в таблицата.Маршрутизация-та може да бъде статична или дина-мична. Когато пътят от един възел до друг е предварително определен и не може да се променя, говори се за фиксирана маршрутизация (и фиксирана таблица). При повреда или блокиране на пътя обикновено се избира резервен вариант от таблицата.При динамичната маршрутизация съдържанието на таблицата непрекъснато се променя в съответствие с трафика в мрежата. Решенията се вземат динамично и отделните съобщения могат да се изпращат по различни пътища (оби-кновено се избира най-малко нато-вареният маршрут). Тъй като мре-жата се адаптира към характера на трафика, маршрутизацията още се нарича адаптивна.Между тези два крайни подхода има много междин-ни решения. Например, при статич-на маршрутизация пътищата могат да се променят при повреда или при образуване на дълги опашки или периодично. Решенията за избор на маршрут могат да се прилагат спря-мо пакет, съобщение, сеанс или логически канал.Съществуват голям брой алгоритми , които се различа-ват в зависимост от степента на динамичност, момента на модифи-кация на таблицата (при генерация-та на мрежата, от оператора, непре-къснато и т.н.), къде се управлява маршрутизацията (в управляващия център, във възела-подател, във възела-получател и т.н.), степен на автоматизация (фиксирани маршру-ти, ръчно превключване на маршру-ти, автоматично превключване при повреда).Избягване на конфлик-тите в мрежатаТъй като една линия може да свързва няколко възела, възможно с няколко възела да искат да изпратят съобщение по линията едновременно. Тези проблеми нас-тъпват главно при мрежи с шинна топология. В този случай изпраща-ните данни могат да се объркат и трябва да се отхвърлят. Възлите трябва да бъдат информирани за проблема, така че да могат повторно да изпратят данните. Ако за целта няма предвидени някакви специал-ни възможности, тази ситуация може да се повтори, което води до деградиране на производителността. Има няколко техники, разработени за избягване на повторните колизии.

Един от тези методи, успешно реа-лизиран в Ethernet, е да се прави детекция на колизиите. Преди да изпрати съобщение по линията, възелът трябва да прослуша линията и да установи дали в момента не тече друго съобщение. В такъв случай възелът трябва да чака, дока-то линията не се освободи. Ако ня-колко възела започнат едновремен-но (точно в едно и също време, всеки мислейки, че друг не използва линията), тогава те трябва да спрат изпращането. Всеки възел опитва отново през някакъв случаен интер-вал от време. Когато даден възел започне да изпраща през линията, той трябва непрекъснато да прове-рява линията, за да детектира коли-зии със съобщения от други възли. Главният проблем с, че когато сис-темата е натоварена, много колизии могат да възникнат и произво-дителността да спадне.Друг метод е изпращане на маркер. Уникално съобщение, известно като маркер, последователно циркулира в мрежата (обикновено от пръстено-виден вид). Възел, желаещ да изпра-ти съобщение, чака докато маркерът пристигне. Той изважда маркера от пръстена и започва да изпраща не-говите съобщения. След като привъ-рши, възелът изпраща отново марке-ра. Така и други възли ще задържат маркера и ще изпращат съобщение. Ако маркерът се загуби, мрежата трябва да детектира този факт и да генерира нов маркер. Маркерът обикновено се генерира чрез ини-цииране на процедура за избор, чиято цел е да избере уникален възел. Този възел стартира маркера отново.Следващият метод използва определен брой сегменти от съоб-щения с фиксирана дължина, които непрекъснато циркулират в мрежата (обикновено от пръстено-виден тип). Всеки сегмент може да пази съобщение с фиксирана дължина, заедно с управляваща информация (подател, получател, пълен или пра-зен сегмент). Възел чака, докато не пристигне празен сегмент. Тогава той записва съобщението и управля-ващата информация в сегмента. Сегментът след това продължава в мрежата. Когато пристигне във възел, управляващата информация се преглежда, за да се разбере дали съобщението е за възела. Ако не е, той рециркулира сегмента. В проти-вен случай съобщението се изважда и в сегмента се отбелязва, че той е празен. Възелът може да използва сегмента да изпрати свое съобщение или да го освободи. Тъй като сегме-нтите могат да съдържат съобщения с фиксирана дължина, логическото съобщение трябва да се нацепи на по-малки пакети и всеки да се изп-рати в отделен сегмент.Именуване

Именуването на системите в мрежа-та е важен компонент на мрежовата комуникация. В единична система съобщения могат да се адресират чрез идентификаторите на процеси-те.Процесите в отдалечена система се идентифицират чрез двойката <име на възел, идентификатор>, където име на възел е символично име, уникално в мрежата, а иден-тификатор е идентификатор на процес или друг уникален в систе-мата номер. Символичното име (низ от знаци - букви или цифри) трябва да се преобразува във вътрешна форма (адрес), удобна за използване от мрежовата апаратура. За тази цел има две възможности:- Всеки възел (host) да има файл с имената и адре-сите на всички други възли, достъп-ни в мрежата. Този файл трябва да се обновява при всяка промяна в мрежата.Информацията да се разп-редели между системите в мре-жата. Мрежата трябва да използва прото-кол за разпределение и за получава-не на информация.Първоначално в Интернет се прилага първият метод, но разрастването на ирежата води до използването на втория метод - DNS(domain name service). DNS определя структурата на именува-нето на възлите, както и определя-нето на съответствието между име и адрес. Възлите в Интернет логичес-ки се адресират със съставни имена, чиито компоненти са разделени с точка. Имената започват от най-спе-цифичната част към най-общата. Обикновено при определяне на адресите системата изследва имената в обратен ред. Всеки ком-понент на името има сървър на име-ната (процес в системата), който получава име и връща адрес на сървъра, отговорен за това име. Накрая се контактува със сървъра на търсения възел, който връща Интернет-адрес за този възел (например 188.180.52.100).Модел на ISО.Международната организа-ция за стандартизация ISО препо-ръчва модела OSI (open systems interconnections) за свързване на отворени системи. Отворена систе-ма е такава, която е готова да кому-никира с друга отворена система, използвайки стандартни правила за формат, съдържание и средства за изпращане и получаване на съобще-ния. Правилата са формализирани в протоколи. В модела OSI комуника-цията с разделена на седем нива (слоеве), всяко решаващо специфи-чен аспект на комуникацията. Така моделът предоставя седем нива на мрежови протоколи и точни методи за комуникация помежду им. Реа-лизацията на протокол предполага комуникация само с равен, сравним обект, използвайки един и същи протокол в едно и също ниво, или интерфейс „протокол-протокол" на протокол в ниво, непосредствено над или под в същата система.

Когато процес иска да комуникира с друг, той изпраща съобщение от най-високото ниво. При премина-ването на съобщението надолу през нивата, към началото му се добавят съответни заглавия (фиг2), а на ниво 2 накрая се добавя контролна сума. Когато съобщението се получи, то се изпраща нагоре по нивата, като на всяко ниво се анализират и изтриват заглавията. Моделът включва следните нива:1.Физическо ниво. Има работа с механичните и електрическите елементи на реалната линия за връзка при предаването по нея на потоци от битове.2. Канално ниво. Преобра-зува данните в кадри от данни (терминьт не е общоприет) чрез прибавяне към тях на полета от битове (включително и контролни суми), предава кадрите по комуни-кационните линии и обработва по-лучаваните кадри (включително от-криване и изправяне на грешките, които настъпват на физическо ниво, повторно предаване при грешка, отстраняване ча дублирани данни и др.).3. Мрежово ниво. Управлява комутацията и маршрутизацията на пакетите от данни в мрежата, включително обработката на адре-сите на изходящите пакети, деко-диране на адресите на входящите пакети и поддържане на инфор-мация ча маршрута за подходящ отговор (противодействие) към променящите се натоварвания.

4. Транспортно ниво. Отговаря за достъпа на ниско ниво до мрежата н предаването на съобщения между потребителите, включително деле-нето на съобщенията на пакети, подреждането на пакетите, упра-влението и генерацията на физиче-ския адрес.5. Сесийно ниво. Предо-ставя средствата (протоколите), с чиято помощ процесите организират и синхронизират обмена на данни.

6. Представително ниво. На това ниво се решават различията във форматите на възлите па мрежата, включително и преобразуване на знаците и цяло/половин дупле-ксиране (ехо), (т.е. форматите на компютрите, терминалите, базите от данни и езиците, използвани в мрежата).1. Приложно ниво. Отго-варя непосредствено за взаимодей-ствието с потребителя. Това ниво работи с електронна поща и схемите за разпределени бази от данни. Данните са във вида, в който постъ-пват от потребителския процес или се изпращат към него.Някои мрежови протоколи Моделът OSI е твърде сложен. В реалните мрежи обикновено се използват по-малко нива (те се обединяват или елими-нират), както и често се прилагат фирмени протоколи. Освен 18О, много други организации и фирми, като 1ЕЕЕ, АNSI, ССIТТ (Междуна-роден консултативен комитет за телефония и телеграфия), EIA (Асо-циация на електронната индустрия), DARPA(Агенция на Министерство-то на отбраната на САЩ), IBM, и др, създават собствени протоколи и мрежи. Някои по-известни протокол са;НDLC, SDLС. Протоколът Нigh-level Data link Control на ISO е пред-назначен за управление на канално ниво. Х.25. Стандартът и приет за публични мрежи с пакетна комута-ция. Обхваща първите три нива на OSI. Кадровото ниво по същество отговаря на HDLC, Пакетното ниво осъществява функциите на мрежо-вото ниво на OSI, като се предвижда предварително установяване на връзката между подател и полу-чател, а често се следи и за маршру-тизацията.802.x. Комитетите на IЕЕЕ разработват група от мрежови стандарти. Три са за локални мрежи: 802.3 (стандарт СSМА/СD за топо-логия „линейна обща шина"), 802.4 (за линейна обща шина с управля-ващ маркер) и 802.5 (за топология „пръстеновидна обща шина" с упра-вляващ маркер). Четвърти стандарт 802.6 с за глобални мрежи.ТСР/IР. Набор от протоколи, разработен от DАRРА за експерименталната мре-жа с пакетна комутация АRРАNЕТ.

IР (internet protocol) е предназначен да изпълнява функциите на мрежо-вото ниво. Използва се не само в крайни системи, но и в маршру-тизатори. През 1996 г. е приет нов стандарт на съществуващия с озна-чение IPv6. Той има разширения за използване на по-високата скорост на днешните мрежи за предаване на смесицата от различни потоци данни (вкл. графика и видео), дока-то IРv4 използва 32-битови адреси, IPv6 прилага 128-битови адресни полета. ТСР се използва на тран-спортно ниво (само крайни систе-ми). Той предоставя надеждна връз-ка, като използва IР за прехвър-ляне на IР-пакети (дейтаграми) от данни между процесите.В допълне-ние към ТСР има и друг протокол на транспортно ниво –UDР(User datag-ram protocol), който предоставя ненадеждна, без предварително утановяване връзка. Поради това UDР е прост протокол. Той също работи с ротокола IР.Х.400, Х.500. Стандартът ССIТТ Х.400 включва поредица от протоколи за лектронна поща. Х.500 е поредица от протоко-ли за управление на глобални ката-лози за електронна поща.Пример за приложение на ТСР/IР.На фиг.3 са показани нивата от протоколи, чрез които всеки компютър може да ко-муникира, използвайки междумре-жова технология. Моделът е изгра-ден на базата на ТСP/IР и Ethernet.Както беше посочено, в ТСР/IР-мрежите всеки възел (host) има име и съответстващ 32-битов

Фиг.3


Интернет-адрес. Името е йерар-хично и описва възела и организа-цията, с която е свързан. Адресът в Интернет има две части - номер на мрежа и номер на възела в мрежата. Те се определят чрез 32-битова мре-жова маска. Изпращащата система проверява маршрутната си таблица, за да намеси необходимия й марш-рутизатор. Маршрутизаторите изпо-лзват мрежовия номер, за да прехвъ-рлят пакет от изходната в целевата мрежа. Пакетът може да е съобще-ние иличаст от съобщение, което ще се компанова, преди да се изпрати към процеса. След като приетигне в целевата мрежа, пакетът трябва да стигне до адресирания възел. Тази задача се изпълнява от Ethernet. Затова всеки работещ възел има, освен Интернет-адрес, и адрес на Ethernet. Ethernet.това е локална мрежа предоставяща услуги на първите две нива от модела OSI. Използва се машнна топология. Всеки възел (компютър, терминал и т.н.)се свързва към „ефира" (преда-вателната среда - коаксиалсн кабея, респ. усукана двойка или оптичен кабел) чрез контролер, приемо-предавател и разклонител. Достъпът до предавателната среда с множе-ствен с контрол на носещата н дете-кция на колизиите (СSМА/СD). Всеки контролер има 48-битов адрес, който с уникален. Всеки про-изводител получава от фирмата Хегох (мрежата с разработена от Хегох, DEC и INTEL) блок от числа. Номерът на блока използва 23 бита, 24 бита са за всяко устройство, предоставено от производителя, и един бит е за вида на пакетите. Контролерът преобразува данните в подходяща за компютъра форма. Мрежата може да се състои от ня-колко сегмента, съединени чрез повторител.Една мрежа Еthernet може да се евърже към втора мрежа Еthernet или друга, чрез мост. През мостовете преминават пакети от ка-налното ниво на. различни мрежи, независимо от протокола, по който работят. Благодарение на детек-цията на колизиите няма централен контролер, което позволява лесното добавяне на нови възли и всеки въ-зел да чува всички останали. Съо-бщенията се изпращат на пакети от данни (кадри) с дължина от 80 до 1534 байта. Пакетите включват н управляваща информация относно правилилното им местоназначение и проверка за грешки. Във всеки мо-мент само един възел може да из-праща пакет и само възелът, чиито адрес на получател е пакета, може да го получи. Преди възел да изпра-ти съобщение по линията, той тряб-ва да прослуша линията и да уста-нови дали в момента не тече друго съобщение (следене на носещата). В такъв случай възелът трябва да чака, докато линията не се oсвободи.Kо-гато някой възел започне да преда-ва по линията, съобщението се разпространява до всички възли (множествен достъп). По време на предаването възелът трябва nепрекъснато да проверява линията, за да детектира колизия със съобще-ния от други възли. Колизия може да възникне, ако няколко възела започнат едновременно да предават (точно в едно и също време, всеки мислейки, че друг не използва линията). Тогава те трябва да спрат изпращането и всеки възел да опитва отново през някакъв случаен интервал от време. Детекцията се извършва, като приемо- предава-телят прослушва собственото си предаване, сравнявайки какво изпраща и какво чува. Главният проблем е, че когато системата е натоварена, могат да възникнат много колизии и производител-ността да спадне.В Еthernet се при-лага и друга концепция за изпра-щане на пакети - един възел да изпраща към много други. Това се постига чрез уста -новяване на бита в адреса.ТСР/1Р. Наборът от прото-коли ТСР/IР се изпълнява над Еthernet (фиг.3). Ако по мрежата пристигне кадър, драйверът на Ethernet може да изпрати съответ-ния пакет или към модула АRР (Address Resolution Protocol), или към модула IP (ако пакетът е съобщение за този възел). Посоката се определя от полето за тип в кадъра.Полето за вид на протокол в заглавието на IР-пакета определя накъде да се изпратят данните по-нататък - към ТСР или към UDР. Ако дeйтаграма е пристигнала в UDP, респ. транспортно съобщение (сегмент) в ТСР, съобщение се из-праща към приложението, опреде-лено в полето „порт" на съответното заглавие.Обратно, съобщенията от приложенията, преминават надолу през съответните нива до мoдула IР и се изпращат през драйвера на интерфейса на мрежата. При преми- наване на съобщение по нивата, все- ки модул добавя (респ. премахва) съответно заглавие. Когато ТСР получи блок от данни, той може да го раздели на по-малки части. Към всяка част ТСР добавя управляваща информация в заглавието, форми-райки сегмент на ТСР. Сегментът се направлява към нивото IР. IР-загла-висто съдържа адрес и затова този адрес трябва да е уникален за всички свързани компютри и мре-жи. Ако един компютър е свързан към две отделни мрежи Ethernet, гой има два Ethernet-адрeси и два IР-адреси. Модул IР, който има две мрежови връзки, може да препраща пакети между мрежите. Такъв междумрежов възел се нарича IР-маршрутизатор. Действието му е свързано с мрежовото ниво и опре-деля пътя на предаване на пакетите. Препращаните IР-пакети не стигат до модулите UDР и ТСР (някои маршрутизатори не включват тези модули). Mаршрутизаторът може да обедини и мрежи с различни кому-никационни протоколи - тогава трябват маршрутизатори за всеки тип протоколи. Мрежови приложе-ния. Протоколът SМТР (Simple mail transfer protocol) е създаден да оси-гури проста и лесна за използване система за електронна поща за Интернет. SМТР не определя начи-на на създаване на съобщения. След като се създаде съобщение, то се получава от SМТР, който използва ТСР, за да го изпрати към модул SМТР в друг възел. Получаващият SМТР използва средствата на локал-ната поща, за да запомни съобще-нието в потребителската пощенска кутия.TELNET (Terminal Emulation Protocol) е типично приложение, използващо протокола ТСР. Чрез тази програма потребителският ком-пютър става отдалечен терминал на отдалечен компютър. Въвежданите команди се изпращат към отдале-чения компютър, а изходът от него се връща обратно на екрана на потребителския компютър. След като завърши сесията с другата система, потребителят трябва да прекъсне връзката. FТР е друго приложение, което използва ТСР и позволява да се копират цели файлове между машини, свързани в мрежа.ТFТР (Тривиалният FТР) е пример за приложение, използващо UDР.Пример: Комуникацията в UNIXОсновната концепция за осъществяване на комуникацията се гради върху механизма гнездo (socket). Този механизъм дава общ интерфейс не само до програмните канали , които са основно средство за комуникация между процесите и които са локални в една машина, но и до мрежата .Гнездото е крайна точка на комуникацията. Управле-нието му става чрез системни извик-вания. Гнезда се създават и унищо-жават динамично. При създаването на гнездо се връща дескриптор, който е в пространството на имена-та на файловите дескриптори. Дес-крипторът се използва при устано-вяване и освобождаване на връзка, при четене и запис на данни.

Има няколко типа гнезда, всяко поддържащо определен тип от мре-жови услуги: потоков, последо-вателно пакетен, дейтаграмен, прозрачен. Например потоковото гнездо (Sock_Stream) дава надеж-ден, дуплексиран, последователен поток от байтове. Чрез него два процеса, изпълнявани на различни машини, могат да установят помежду си подобие на програмен канал - байтове се записват в единия край и пристигат в същия ред на другия край.Когато се създаде гнез-до, един от параметрите определя протокола, чрез който то се реали-зира. Например за потоковия и последователно пакетния тип често се използва протоколът ТСР/IР, за дсйтаграмния - UDР (фиг.4).


Фиг.4

За да се използва за комуникация в мрежата, гнездото трябва предва-рително да се свърже с адрес. Същи-ната на адреса зависи от комуни-кационния му домен. Характерна черта на домена е, че процеси, кому-никиращи в един и същ домен, използват един и същ формат на адреса. Единично гнездо може да комуникира само в един домен. По подразбиране в UNIХ са реализи-рани два домена: вътрешен систе-мен UNIX-домeн (PF_UNIX) и Internet-домен (PF_INЕТ). Форматът на адреса в UNIX-домена е обикно-вено име-пътeка на файл, например /а/в/с. Комуникацията в Internet-домена използва протоколи, като ТСР/ТР и адреси, които се състоят от 32-битов номер на възел и 32-битов номер на порт.Когато гнезда са създадени в два компютъра, между тях може да се установи врьзка (за комуникация с предва-рително установяване на връзка, използвана например за гнездо от потоков или последователно паке-тен тип). За да могат процесите да адресират гнездата, последните се свързват с имена. Единият процес установява връзката, като използва за параметри в извикването дес-криптора на локалното гнездо и името на отдалеченото. Другият процес прослушва локалното си гнездо, което създава буфер и блокира до пристигане и данни. По-нататък процесите могат да кому-никират, използвайки обикновените извиквания за четене и запис на файлове с параметър дескриптора на локалното гнездо. Когато връз-ката повече не е необходима, тя може да се прекрати (и се унищожи съответното гнездо), като се затвори по обикновения за файловете път.



11.2.3 Операционни системи за мрежи




Сподели с приятели:
1   2   3   4   5   6   7   8




©obuch.info 2024
отнасят до администрацията

    Начална страница