Кооперативна и изпреварваща многозадачност

Кооперативна и изпреварваща многозадачност. Процеси, нишки на изпълнение. Скаларни, супер-скаларна, вектор, SMTprotsessory. Автобус достъп до паметта и NUMA.

Кооперативна и изпреварваща многозадачност

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

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

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

· Всяка задача има приоритет, според която получи времето и паметта

· Системата организира опашки задачи, така че всички задачи, с ресурси, в зависимост от приоритетите и стратегиите на системата

· Система организира на прекъсвания, кои задачи може да се активира, деактивира или изтрита

· В края на задачата по парче време пут може временно да изхвърля от паметта, като ресурси за други задачи, а след това след известно време на системата за възстановяване на паметта (суап)

· Системата осигурява защита памет от неоторизиран смущения от други задачи

· Системата разпознава катастрофи и виси индивидуални задачи и да ги спира

· Системата решава конфликтите на достъп до ресурси и средства, като се избягват мъртвите зони общо висят на очакванията на блокираните средства

· Системата осигурява на всяка задача, то рано или късно ще се активира

· Системата обработва заявки в реално време

· Системата позволява комуникация между процесите

Видове псевдо многозадачност

1. не-превантивна мултитаскинга

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

2. съвместно или в сътрудничество мултитаскинга

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

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

3. Изпреварваща многозадачност или приоритет (в реално време)

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

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

Обработва изпълнение конци

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

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

· Изпълним код и данни;

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

· Flow (резба) определя последователност на изпълнение на кода в процес.

· Процесът отнема нищо, просто служи като контейнер потоци.

· Потоци винаги са създадени в рамките на един процес, и целият им живот е само в рамките на нейните граници.

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

· Тъй като скоростта на потока е значително по-малко средства, отколкото процесите, опитайте се да решат проблемите си чрез използването на допълнителни теми, и да се избегне създаването на нови процеси (но подходът към този с интелект).

Скаларни, супер-скаларна, вектор, SMTprotsessory

Класификация паралелни архитектури за Flynn (М. Flynn)

Компютърна система с поток от команди и данни (еднопроцесорни компютър - SISD, един поток Инструкция над поток Single Data).

Системата за компютри с обща инструкция поток (SIMD, една инструкция, множество данни - един поток инструкции и многократно потока от данни).

Системата за компютри с няколко инструкции поток и поток единствен данни (MISD, множествена команда Single Data - поточна компютър).

Системата за компютри с няколко команди и потока от данни (MIMD, множествена команда за множество данни).

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

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

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

· Системата извършва повтарящи операция;

· Тази операция може да бъде разделен на обособени части, които са малка степен на припокриване;

· Сложността на под-дейности е приблизително същата.

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

Увеличаването на скоростта, която може да бъде получена чрез конвейера се дава приблизително със следната формула:

където п - брой на операнди да бъде зареден в тръбопровод, г на - конвейер дълбочина. Да предположим, че искате да се направи операция на добавяне на двумерен масив от 200 елемента, които изпълняват допълнение изисква пет операции. В този случай, ускорението ще бъде (200 * 5) / (200 + 5) = 4,88. Разбира се, това е една идеална ситуация, недостижим в реалния живот, по-специално, като се смята, че няма "балони" и така нататък. D. Това означава, както вече бе споменато, взаимното независимостта на данните.

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

Пример за суперскаларна компютър процесор IBM RISC / 6000. Процесор тактова честота от компютър е 62,5 MHz, а производителността на системата на аритметични тестове достигна 104 Mflop (Mflop - измерване на скорост обработващо устройство - милиона операции с плаваща запетая в секунда). Суперскаларна процесор не изисква специални векторни като съставител, но компилаторът трябва в този случай да се вземат предвид архитектурни особености.

Едновременно Multithreading (SMT - едновременно многонишкова) - следващия етап на разширяване на капацитета на процесора, ориентирани приложения, изискващи изпълнение, и метода на поддържане на паралелизация на задачите на множество инструкции на процесора за обработка на канали.

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

Автобус достъп до паметта и NUMA

Нивата на тези сигнали в даден момент да определят състоянието на системата в този момент.

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

Контрол автобус образува сигнали, идващи директно от микропроцесор, сигналите от контролера на шината и сигналите, идващи от микропроцесора на други схеми и периферни адаптери.

Микропроцесорът използва контролера на шината за генериране на управляващи сигнали за определяне на прехвърлянето на шината за данни. Това показва три сигнала - SO, - SI, M / -IO, които определят вида на автобус цикъл (прекъсне признае, чете I / O порт, стоп, памет четене, запис в паметта). Въз основа на стойностите на тези сигнали на контролера автобус генерира управляващи сигнали, които контролират динамиката на този вид гуми.

Така, ако честотата на кварцов генератор, който определя честотата на CLK е 20 MHz, тогава максималната пропускателна способност на шината за данни е равна на (20/4) милиона цикъла за секунда или 10 V / сек. Реалната производителност е значително по-ниска.

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

ОМП е само един подход към изграждането на мулти-кола; Друг подход е да NUMA, което осигурява отделни паметта банки процесори. Това позволява на процесора да работи в паралел с памет, и тя може значително да увеличи честотната лента на паметта, в случаите, когато данните е свързана с определен процес (и следователно на процесора). От друга страна, Нума увеличава цената на движението на данни между процесорите, като по този начин за балансиране на натоварването е по-скъп. Ползите са ограничени до конкретна NUMA кръг от задачи в главния сървър, където данните се често силно свързани с конкретни задачи или потребители.