КАТЕГОРИИ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) П Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военно дело (14632) Висока технологиите (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къщи- (47672) журналистика и SMI- (912) Izobretatelstvo- (14524) на външните >(4268) Informatika- (17799) Iskusstvo- (1338) История- (13644) Компютри- (11121) Kosmetika- (55) Kulinariya- (373) култура (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23,702) Matematika- (16,968) инженерно (1700) медицина-(12,668) Management- (24,684) Mehanika- (15423) Naukovedenie- (506) образование-(11,852) защита truda- (3308) Pedagogika- (5571) п Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) oligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97182) от промишлеността (8706) Psihologiya- (18,388) Religiya- (3217) с комуникацията (10668) Agriculture- (299) Sotsiologiya- (6455) спортно-(42,831) Изграждане, (4793) Torgovlya- (5050) превозът (2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596 ) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Telephones- (8441) Elektrotehnika- (4623) Мощност инженерно (12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Изпълнение на процеси в многопроцесорни системи




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

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

бездейства Проблемът с решение на процесора е да добавите към кеша на процесора и на местния частен памет. Но дори и при използване на оптимален кеш като една обща шина ограничава броя на UMA -multiprotsessorov (32 или 64). За преодоляване на ограничение верига използвайки съединението като 2x2 Crosspoint ключ (фиг.3. 13) или многостепенен колектор мрежа. Шина превключвател има два входа и два изхода. Съобщенията, пристигащи на входа линия или В), могат да се включват за всеки изход линия (X или Y). Съобщенията се състои от четири части (фиг. 3.14.). Невярно показва паметта на модула. Адрес поле показва адреса в рамките на модула с памет. Операция код поле показва операцията (четат или пишат - четат или пишат). Стойност незадължително поле може да съдържа операнда (например, 32-битова дума, за да бъдат написани Напиши операция) стойност, за които преминаването определя коя линия (X или Y) трябва да изпратите съобщение. Въз основа на комутатора за превключване изгради многостепенен мрежа.


2. Мултипроцесори NUMA (Non с обща памет - нееднороден достъп с памет). Използва се за създаване на редица процесори многопроцесорни повече от 100. Основни характеристики, които отличават Numa мултипроцесори други мултипроцесори:

- за всички процесори имат един адрес пространство;

- достъп до отдалечени модули памет се извършва от специален екип Load и се съхранява на процесора;

- достъп до отдалечен памет модули по-бавно от местната памет.

Ако достъп до отдалечен памет не е скрит (кеширане не се използва), системата се нарича Северна Каролина - NUMA (Без Cachihg NUMA - NUMA система без кеширане). При наличието на съгласуван кеш система модул, наречен СС NUMA (Cache-Съгласувано NUMA - NUMA система с последователна кеширане). Най-популярни подход в изграждането на големи Мултипроцесори СС- NUMA е cataloqgue многопроцесорни (фиг. 3.15.). Идеята е да се поддържа база данни, която съдържа информация за това къде е всеки ред на кеша и нейното състояние. При достъп до базата данни на кеш линия получи заявка за тази линия и дава своя статус (пълен или празен). Заявки към базата данни се изпращат с всяка команда процесор за достъп до паметта.


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


Вторият модел (фиг. 3.16.) Е да се използва едно копие на операционната система на един от централните процесори (например номер 1) и цялата система разговори се изпраща за преработка на централния процесор (№1). Номерът на CPU 1, ако той е имал време, също така служи като потребителските процеси. Тази схема се нарича "майстор - роб". В този модел, единна структура на данни се използва (например, един списък или набор от приоритетни списъци), като се вземат предвид готови процеси. При преминаване на процесора в състояние на покой, той запитва процеса на операционна система, които могат да се обработват; Ако сте приключили с операционната система процеси го изпратете на процеса. По тази схема на товара се разпределя равномерно във всички процесори и паметта страници са динамично разположение на всички процеси. В допълнение към компютърната система има една обща кеш буфер блок устройство, така че дискът не е застрашена данни за щети. Недостатък на този модел е доказано, че когато голям брой процесори хост компютър ( "домакин") може да бъде претоварена система повиквания от други процесори.

Повечето съвременни трети модел (фиг. 3.17.) Е симетрични мултипроцесори (SMP, Symmetric многопроцесорни) и премахва всички недостатъци на предишните модели. Като вторият модел в хранилището е само едно копие на операционната система, но тя може да изпълни всяко CPU. Когато една система обаждане от централния процесор, свържете системата с призива система, прекъсване случва на прехода към режим на ядрото и обработката на системата повикване. Моделът осигурява динамично равновесие на процеси и паметта, тъй като има само един набор от системни таблици за експлоатация и избягват престоите, свързан с процесора от претоварване ( "магистър").


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

В многопроцесорни системи, специална мутекс протокол за синхронизиране на процесорите, която се изпълнява от всички процесори за да се гарантира функционирането на взаимно изключване. В основата на протокола мутекс е екип от TCL (Тест и настройка на заключването - тест и настройка на заключването) за изпълнението на критични области. TSL първи командни автобусни блокове (не позволява лечение и на други свои процесори) и след това изпълнява достъп с памет, а след това за печата автобуса.

За да заключите гумите първоначално заявен от стандартната автобус протокол, след което стойност 1 по специална автобусна линия до друг процесор не е в състояние да получите достъп до нея. Този процес използва взаимно изключване spinlock изпълнение [7], и е неефективна, защото тя може да наложи значително натоварване на автобуса или паметта, значително намаляване на скоростта на всички други процесори, които се опитват да изпълняват служебните си задължения. Проблемът е решен по няколко начина.

Метод 1: да се отървем от напишете операции, причинени от TSL команда молещата страна. Заявител за първи път изпълни една проста операция за четене, за да се гарантира, че мутекс е безплатна. Ако мутекс е безплатно, процесорът изпълнява екипа TSL да го улови. В резултат на това повечето операции избирателни се четат операции, а не напишете операции. Когато мутекс се чете, собственикът извършва операция за запис, което изисква изключителен достъп.

Метод 2: Използване на двоичен експоненциален алгоритъм намаление на цените, използвани в Ethernet мрежа. Вместо непрекъснато забавяне избирателната вмъква между избирателната цикъл. Първоначално забавяне е една единствена команда. Ако мутекс е заета, забавяне е удвоил, четири пъти, и т.н. до максимално ниво. На забавяне на ниско ниво се проявява бърза реакция освобождавайки мутекс, но изисква повече достъпи до автобуса за четене на кеш блок. Висока максимална намалява броя на ненужните разговори към автобуса се дължи на по-бавна реакция на програмата за освобождаване на мутекс. С помощта на алгоритъм на двоично експоненциално намаление на цените не зависи от използването на чисти операции преди да сте прочели TSL екип.

Метод 3: Използване на заключване променлива. Всеки процесор, който искате да получите мутекс, че е необходимо да разпитва своя променлив заключване. За да се избегнат конфликти, променливата се намира в един неизползван за други цели кеш блок. Работата на алгоритъм е, че на процесора, който не може да получи мутекс променлива улавя заключване и е прикрепен към края на списъка на процесори в очакване на освобождаването на мутекс. Когато процесора държи мутекс, оставяйки критичната област, той освобождава частна променлива, проверява първо централен процесор в списъка (в собствен кеш). По този начин, след CPU е в състояние да влезе в критичната област. След напускане на критичната област, процесорът освобождава променлива заключване, изпитването със следните процесори и т.н. Въпреки сложността, протоколът е ефективна.

При многопроцесорни системи, график е двуизмерен и едномерна планиране е различна от еднопроцесорни, тъй като разработчикът трябва да реши кой процес и които CPU да се изпълнява. Друг усложнява фактор е, че в някои мулти-процесорни системи, всички процеси са независими [8], и в други системи те формират групи [9].

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

- потенциал за растеж на конкуренцията за планиране на структурата на данните, тъй като броят на процесори;

- натоварването при превключването на контекст в блокирането на процеса на чакане за извършване на входно-изходни операции.

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

Някои мултипроцесори използват свързаното планиране, идеята за който е в приложението на усилия за започване на процеса на същия процесор като за последен път. Един от начините за прилагане на този метод е да се използва алгоритъм за планиране на две нива. По време на процеса на създаване се възлага на определен процесор. Тази задача процесор процеси е алгоритъм горното ниво. В резултат на това всеки CPU получава свой собствен набор от процеси. същинския процес на планиране е по-ниско ниво и алгоритъма да се извършва отделно от всеки централен процесор с приоритет или други средства. Усилията за запазване на процеса на една и съща за увеличение на кеша на процесора афинитет. Все пак, ако някой от процесора не работи, са натоварени процес CPU отнема и работата даде. планиране на две нива има три предимства:

- равномерно разпределен товар между наличните процесори;

- се възползва от афинитет кеш;

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

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

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

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

- група свързани потоци планирани като една единица (команда);

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

- всички членове на екипа започват и завършват своите времеви интервали заедно.

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