процесите на планиране
Вече е повдигнат въпросът за опашката на готови процеси. Решението за това кой datsleduyuschy време планиране парче protsessoraopredelyaet.
Планиране процеси в операционната система е процесът на подбор - който ще се проведе следващата, и колко време ще продължи.
Да не се бърка с превключването на контекст, който е просто механизма на прехвърляне на контрола.
Context превключване не е операция за планиране, това е техническа експлоатация.
- Един прекъсване случва;
- Потокът предизвиква изключение или капан (капан);
- След това, се избира друга поток.
Т.е. по време на преминаването контекст трябва ясно да избере на кого да прехвърли контрола.
класове по планиране
- Партида - фокусира върху дългосрочните задачи, които изискват големи изчислителни ресурси, които не изискват чести прекъсвания. Т.е. включва обработка на голям обем задачи големи пакети, няма ограничение за времето.
- Interactive - насочена към намаляване на времето за реакция, т.е. системата изглежда "симпатичен". Обикновените абонат на системата на компютъра - това интерактивна система, когато в отговор на действията на потребителя (като например преместване на мишката), операционната система прави нещо. И винаги потребителят иска отговорът дойде възможно най-бързо.
Основното нещо, което да пристигнете в молбата е получена възможно най-бързо отговор. Запитване - е всяко взаимодействие с компютъра. - В реално време - специализиран клас фокусирани върху крайния срок - крайния срок за завършване на всяка raboty.Glavnoe за конкретно действие се допълва от определена дата, тази концепция се нарича .Postupayuschy искането за срок трябва да се обработват не повече от определен период от vremeni.Klassichesky пример за Виетнам - управление на ядрен реактор, който надхвърли времето за реакция ще доведе до извънредна ситуация.
нива на планиране
- Дългосрочна (dogosrochnoe) - реши кои нови задачи са добавени (концептуални въпроси).
- В средносрочен план - да се реши дали временно да качите програмата за вторично съхранение е необходимо (което по принцип е необходимо).
- Краткосрочно - решава кои поток към следващия квант процесорно време и колко дълго. Координати потоци, работи на различни процесори.
Основната задача на процесите на планиране в операционната система е да се осигури висока производителност OS.
Има различни показатели, които оценява изпълнението на това. Тези показатели са често противоречиви.
Това концептуално се изисква при проектирането на OS-диспечер:
- Увеличете натоварването на процесора (да, той maksimalnorabotal на задачи)
- Увеличете пропускателната способност (chislovypolnennyh искания за единица време)
- Минимизиране Средното време за отговор (средното време за обработка на исканията за otpodachi отговор е завършена)
- За да се намали средното време за изчакване (средно vremyaot искане преди неговото изпълнение)
- Намалете до минимум енергия (джаула на обучение)
показатели за планиране
Следващата илюстрация, помислете за пример на показатели за планиране.
та - с развитието на процеса (когато процесът е готов за изпълнение);
Tw - време (което прекарва процесът протича опашката) чака;
Ц. - по време на работа на процесора;
Tr - времето на оборота (общото време за чакане и изпълнение).
Схема 5 и 6, получена в процеса на опашката на готови процеси.
5 забавено от 1-4 protsesov. За пета процеса Tw - времето за изчакване Ts - по време на работа на процесора.
Времето за изпълнение е времето от датата на получаването му до точката, където тя завърши извършване Tr = Tw + Цв.
При планирането основният въпрос остава: Как да избера кой процес да работи по-дълго и по-далеч?
Следните процес алгоритми:
- В FIFO - класически - първи дошъл, пръв излязъл
- Най-къс работа след това. т.е. избира следващата задача, която изисква най-ниската време завършване
- Кръгла Робин
- многостепенно опашка
- Многоетажен опашка obratnoysvyazyu
Помислете наричат процеса алгоритми.
В този случай, ние го разбираме като не-изпреварваща многозадачност
- Процесите са планирани, тъй като те пристигат;
- Водещ време се игнорира (нищо);
- Друг процес с малко време да чака Tr (намалена чувствителност на системата);
- Когато процесът се движи до състояние на готовност, той се премества в края на опашката.
Да предположим, че има три процеси, които са в същото време Т = 0 от порядъка на Р1, Р2, Р3.
Всяка операция, има време, че трябва да извърши част от проблема. Това е част от проблема, че той трябва да изпълни, се нарича английска дума се пръсне. Три различни процеси него.
След това времето за изчакване
Средното време за изчакване = 17
Ако тези три получили график процес на друг, значително може да се намали времето за реакция на системата.
Поемат процеси пристигат в ред Р2, Р3, Р1
След това времето за изчакване
Средното време за изчакване = 3
Тя е спаднала рязко се дължи на факта, че ние сме се променили от порядъка на работни процеси, постъпил в същото време.
За един прост пример на данните е скрита цялата сила и значение на процесите на планиране в алгоритмите на операционната система.
- Той повече от всеки друг за дълги, изискващи време процеси на процесора;
- Лош използване на входно / изходни устройства на процесора и;
- Средното време за изчакване варира в широки граници.
Най-къс работа следващия
Ние сме съгласни, имам предвид не-изпреварваща политика график - колко време слот с искане процес, тъй като тя се намира, и.
Същността на този процес - трябва да насрочи процес, който изисква най-малко vremenidlya неговото изпълнение, т.е. процес като най-кратко време за обработка.
Необходимо е да се изчисли необходимото време за обработка за всеки процес.
- За задания, на базата на предишен опит или на ръка (няма гаранция, че отново)
- За интерактивни работни места въз основа на времето, прекарано
Веднага след като получим показатели на процеса, като кратък процес се поставя в опашката.
Най-къс работа следващото разместване вариант
Има вариант на изместването на най-краткия от следващия.
Сортирането се извършва в момента, в който искате да завърши процеса на тяхната част от проблема. Ако тя се премества в процес на изпълнение, времето, което му е останало, се нарича остатъчна.
Остатъчното време, за да сортирате и решава кой процес да тече по-нататък.
Съответно тези процеси, които се изпълняват от процесора, изместена от процеса, който е близо до завършване, както и да го работят, за да се поклонят до него.
Тези процеси, които произведение дълго време, да оставят за по-късно, и ги вършат "в стегнат". Логиката в това.
Обобщаване на "най-краткия работа следващата":
- Процесите, протичащи на процесора вече е разселени най-близо до решаването на задачата;
- По-малко цялостен процес време за движението;
- По-малко CPU време за изчакване.
приоритети за планиране
Същият алгоритъм-краткия работа следващата може да се представи като приоритет за планиране, където приоритет - най-малко време.
В крайна сметка: всеки процес е свързан с редица, която характеризира определя приоритета на процеса. Намалете броя, толкова по-висок приоритет.
Starvatsii проблем - проблем на "висящи", "глад" - ако процес сърбеж на висок приоритет за извършване на много дълго на работа, всички други процеси ще "висят" и изчакайте.
процесорно време, определен за най-висок приоритет на процеса (превантивен или не-превантивен). Процесът на нисък приоритет никога не могат да бъдат изпълнени, преди тя няма да дойде всичко.
Starvatsiya - тя може да бъде представен като всички на опашката и кой привилегирован изкачване от своя страна.
Тя се проявява в алгоритъма Раман. С нисък приоритет искания никога не могат да бъдат изпълнени.
Въвеждане на понятието "остаряване": тъй като с течение на времето да се увеличи приоритета на процеса.
Приоритет = Очаквано време на изпълнение на процесора - време на изчакване
Приоритети - инструмент, с който трябва да се направи цялостния процес на планиране ефективно.
Кръгла Робин
Този график алгоритъм е цикличен алгоритъм с изпреварващ график.
- Всеки процес получава фиксиран квант процесорно време (фиксирана единица време CPU).
- След изтичане на процеса на отрязък от време се премества принудително и се поставя в готов опашката за изпълнение.
- Процесът винаги е планирано по същия начин и всеки процес получава едно и също време слота
- Не е трудно да се изчисли, че ако кванта време е р и н-процеси в опашката, а след това всеки ще получи 1 / п от времето на процесора, парчета от максимум р
- Нито един от процесите не очаква повече от (п-1) * р единици време
- Ако р е голям (цел за ∞), след това RR се възражда в алгоритъм FIFO;
- Ако р е малък (но не са склонни да се 0, в противен случай компютърът ще се включи само процеси и вече не носят нищо на всички), а след това всичко е наред;
- Не starvatsii;
- Появява високата отзивчивостта на системата;
- Равно разпределение на времето;
- Ако р е по-малко от времето, необходимо за превключване на контекста, а след това мениджърът ще бъде неефективен.
Интензивни процеси на I / O (t.e.zablokirovannye очакване на I / O) не се използват напълно времето слот, така че се получава процесите на CPU-интензивен предимство.
Има два процеса Р1 и Р2
Процес P1 чака вход / изход в точката (●), а на I / O завършва част белязана от мътене време процес P1 ще прекарат "губи", той ще бъде изключен само в зелената точка в края на парче време.
P2 в този момент е активно използване на процесора, например, той вярва.
RR проблем, който не взема под внимание закъснението. и полезен операционна време P1 възлиза само на 10%.
многостепенно опашка
Тя предоставя множество различни опашки, например:
- Включете интерактивни процеси, т.е. тези, които изискват ниско време за реакция;
- От всички фонови процеси, които изискват много vych.resursov, но за които няма значение бързо време за реакция (пакетна обработка), ще ви трябва много povychislyat.
Всяка опашка е свързано с алгоритъм за планиране, така че ние имаме "баланс на силите":
- в интерактивна процеси RR;
- във фонов режим - FIFO.
Но в случай на опашки няколко нива трябва да не се планира само в рамките на всеки етап, но също така планира между изблици. Спечелете "блокирани" плановик може да предложи много възможности:
1) Планиране на фиксиран приоритет
- Първоначално се погрижат за всички взаимодействащи си процеси, а след това всички фон
- възможно starvatsiya
2) време Разделяне
Всяка опашка се разпределя част от процесорното време, което да може да се планира между нейните процеси. Така например 80% от процесорното време на интерактивните процеси чрез RR, 20% над изходното ниво FIFO.
3 с обратна връзка) многостепенното опашка
многостепенно обратна връзка опашка
въз основа на времето, прекарано в планирането, ако процесът е прекарал известно време слот, тя се поставя в определено място - динамично пренасрочено опашка.
многостепенно обратна връзка опашка
Ако тя се извършва достатъчно бързо, а след това попада в първите "бързи" процеси.
Ако тя е по средата на хода на времето, в средата.
Ако това отнема време изчислителни ресурси, тя се поставя в последния FIFO.
В резултат на това процеси са в постоянно движение между изблици, като по този начин не е необходимо да гледаме напред, къде да поставите на процеса и да го сравни някои собственост.
Програматорът се определя от много параметри:
- Обороти;
- Алгоритми за всяка опашка;
- Методът, използван за определяне на процеса на членство за определен опашка.
Пример многостепенно обратна връзка опашка
Има три етапа:
- Q0 -RR с квантова от време Т = 16ms
- Q1 -RR с квантова от време Т = 32ms
- Q2 -FIFO
Новият процес е поставено в края на първия етап Q0
- Когато в процеса на тази опашка получава процесорно време парче се разпределя т = 16ms
- Ако процесът отнема повече време, не се върна контрола на операционната система, тя е принудително разселените и се поставя в края на Q1 опашка
- Когато в процеса на тази опашка получава процесорно време парче се разпределя т = 32ms
- Ако процесът отнема повече време, той се премества и насилствено поставени в Q2 на опашката и се извършва съгласно FIFO до края