Опашка за вход

от Уикипедия, свободната енциклопедия

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

По същество, опашката е сбор от данни, добавени в задно положение и извадени от предно.

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

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

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

Операционна система[редактиране | редактиране на кода]

В операционните системи, процесите са заредени в паметта и изчакват своя ред да бъдат изпълнени. Разпределението на процесора управлява състоянията на процесите и решава кога един процес ще бъде изпълнен с помощта на опашката за вход. -Първи дошъл-първи обслужен: Процесите на първи дошъл, първи обслужен се изваждат от опашката в същия ред в който са въведени в нея. Този метод е прекалено прост и води до лоша ефективност, защото към всеки процес се отнасят еднакво. Ако процес (А), който отнема 5 минути за да се изпълни, и влезе в опашката преди процес (B), който е изключително важен, B пак трябва да изчака докато A завърши. Този метод е справедлив, но отнема прекалено много време за да се обработват данните.

Най-кратко оставащо време[редактиране | редактиране на кода]

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

Поставен приоритет на предпочитане[редактиране | редактиране на кода]

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

Всеки с всеки метод[редактиране | редактиране на кода]

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

Многоетажна опашка[редактиране | редактиране на кода]

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

Работа в мрежа[редактиране | редактиране на кода]

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

Първа влязъл-първа излязъл[редактиране | редактиране на кода]

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

Претеглен справедливи опашки[редактиране | редактиране на кода]

Претеглените справедливи опашки използват алгоритъм мин/макс справедливо споделяне за разпространение на пакетите. Минимум справедливо споделяне означава, че операционната система на мрежата ще разпредели по минимално равно ресурсите от всеки тип пакет. Максимално справедливо споделяне означава, че операционната система на мрежата ще осигури повече ресурс за пакети, на които трябва да се прехвърли голям обем данни в дадения момент. Това ще върне ресурса обратно след прехвърлянето. „Претеглен“ означава, че разпределителят ще постави тегло за всеки тип пакет. На базата на теглото, ще определи как да се постави пакет в опашката и да го обслужи. Обикновено, всеки пакет ще бъдат претеглен на базата на IP полето за предимство от IP хедър на всеки пакет.

Приоритетна опашка[редактиране | редактиране на кода]

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

Опашка по поръчка[редактиране | редактиране на кода]

Опаката по поръчка е разделена на 17 различни под опашки. Първата от които, опашка 0, е запазена за операционната системата на мрежата за предаване на системни пакети, останалите 16 опашки са за потребителски дефинирани пакети. Потребителят може да дефинира различни пакети и да ги възлагат на всяка опашка. Всяка опашка има ограничени размери и ще разпусне всички идващи пакети, ако достигне тази граница. Всяка опашка се обслужва въз основа на това колко пакета се сервират в нея. Ако този срок е спазен, операционната система на мрежата ще превежда пакети и услуги от текущата в следващата опашката, докато опашката не остане празна или не достигне своя лимит. Ако една опашка е празна, операционната система на мрежата ще пропусне тази опашката и ще обслужи следващата.

Източници[редактиране | редактиране на кода]

  Тази страница частично или изцяло представлява превод на страницата Input queue в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​