Сравнителна таблица
Основа за сравнение | многопроцесорна | Multithreading |
---|---|---|
Основен | Multiprocessing добавя процесори за увеличаване на изчислителната мощност. | Многопоточността създава множество нишки от един процес, за да увеличи изчислителната мощност. |
Екзекуция | Много процеси се изпълняват едновременно. | Едновременно се изпълняват множество нишки от един процес. |
създаване | Създаването на един процес отнема време и ресурси. | Създаването на нишка е икономично и в смисъл, и в ресурс. |
класификация | Мултипроцесирането може да бъде симетрично или асиметрично. | Многопоточността не е класифицирана. |
Дефиниция на мултипроцесиране
Многопроцесорна система е тази, която има повече от два процесора. Процесорите се добавят към системата, за да се увеличи скоростта на изчисление на системата. Всеки CPU има собствен набор от регистри и основна памет. Само защото процесорите са отделни, може да се случи, че един процесор не трябва да има нищо за обработка и може да стои празен, а другият може да бъде претоварен с процесите. В такива случаи процесите и ресурсите се споделят динамично между процесорите.
Мултипроцесирането може да се класифицира като симетрично многопроцесорно и асиметрично многопроцесорно . В симетричната многопроцесорна обработка, всички процесори са свободни да изпълняват всеки процес в системата. В асиметричната многопроцесорна обработка между процесорите съществува връзка майстор-подчинен. Главният процесор е отговорен за разпределянето на процеса на подчинени процесори.
Ако процесорът има вграден контролер на паметта, добавянето на процесор ще увеличи количеството адресируема памет в системата. Мултипроцесирането може да промени модела за достъп до паметта от единния достъп до неравномерния достъп до паметта . Еднородният достъп до паметта се равнява на едно и също време за достъп до RAM от всеки процесор. От друга страна, неравномерният достъп до паметта означава по-дълго време за достъп до част от паметта, отколкото другите части.
Определение за многопоточност
Многопоточността е изпълнение на множество нишки на един процес едновременно в контекста на този процес. Сега нека първо да обсъдим какво е нишката? Нишката на процес означава кодов сегмент на процес, който има свой собствен идентификатор на нишката, брояч на програми, регистри и стек и може да се изпълнява независимо. Но нишките, принадлежащи към един и същ процес, трябва да споделят вещите на този процес като код, данни и системни ресурси. Създаването на отделни процеси за всяка заявка за услуга изисква време и ресурси на изпускателната система. Вместо да се налага това, е по-ефективно да се създават нишки на процеса.
Създаването на нишка е икономично, тъй като споделя кода и данните на процеса, към който те принадлежат. Така че системата не трябва да отделя ресурси поотделно за всяка нишка. Мултирежима може да бъде увеличена на многопроцесорна операционна система. Тъй като многопоточността на множество процесори увеличава паралелизма .
Ключови разлики между многообработка и многопоточност
- Основната разлика между мултипроцесирането и многопоточността е, че мултипроцесирането позволява на системата да има повече от два CPU, добавени към системата, докато многопоточността позволява на процеса да генерира множество нишки, за да увеличи скоростта на изчисление на системата.
- Multiprocessing system изпълнява множество процеси едновременно, докато многопоточната система позволява едновременно изпълнение на множество нишки на процеса.
- Създаването на процес може да отнеме време и дори да изчерпи системните ресурси. Но създаването на нишки е икономично, тъй като нишките, принадлежащи към един и същи процес, споделят вещите на този процес.
- Мултипроцесирането може да се класифицира в симетрично многопроцесорно и асиметрично многопроцесорно, докато многопоточността не се класифицира по-нататък.
Заключение:
Ползите от многонишковостта могат постепенно да се увеличат в многопроцесорна среда, тъй като многопоточността на многопроцесорна система увеличава паралелизма.