Sistemul de procesare a pachetelor
Procesele de planificare pentru calculatoare personale.
Astfel, pe calculatoarele personale simple de planificare nu joacă un rol semnificativ.
Procesele de planificare pentru servere de rețea și stații de lucru puternice.
Există mai multe procese care încearcă să acceseze CPU. De exemplu, atunci când procesorul trebuie să aleagă între procesul, redesena ecranul după ce utilizatorul închide fereastra aplicației, iar procesul, trimite e-mail, impresia utilizatorului de reacție a computerului va depinde în mod substanțial de această alegere. La urma urmei, în cazul în care Redesenați ecran ia 2s în timp ce trimiterea de mesaje, utilizatorul decide că sistemul este foarte lent, în timp ce cele două doua adresă de referință nu va fi chiar observat. În acest caz, procesul de planificare este foarte important.
În plus față de alegerea corectă a procesului următor, planificatorul trebuie să aibă grijă și de utilizarea eficientă a procesorului. deoarece comutarea între procese este costisitoare.
În primul rând, aveți nevoie pentru a trece de la modul utilizator la modul nucleu.
În al doilea rând, este necesar pentru a salva starea procesului actual, inclusiv păstrarea registrelor în tabelul de proces, astfel încât acestea să poată fi reîncărcată mai târziu. Cele mai multe sisteme, de asemenea, necesitatea de a menține cartela de memorie (de exemplu, biți, semnează o pagină nevalidă).
În al treilea rând, trebuie să selectați procesul următor prin rularea algoritmului de planificare.
În al patrulea rând. trebuie să reporniți unitatea de gestionare a memoriei cu noul proces al cardului de memorie.
În al cincilea rând, trebuie să începem un nou proces.
Aproape toate procesele de calcul alternat perioade ale operațiilor (disc) IO. De obicei, procesorul în timp ce rulează fără să se oprească, atunci există un apel de sistem pentru a citi din fișierul sau scrie la dosar. După procesarea apelului sistem a spus odată în timp ce el nu are nevoie de noi date sau nu trebuie să scrie datele.
Unele procese (Figura 2.20a.) Cea mai mare parte a timpului ocupat cu calcule - astfel de procese sunt menționate capacitățile CPU ca limitate. Procesele, capacități limitate de procesor, de obicei caracterizate prin perioade lungi de utilizare rare și așteptările procesor IO.
Altele (Figura 2.20b.) Majoritatea timpului de așteptare pentru I-O - astfel de procese sunt numite dispozitive de intrare-ieșire cu handicap. Procese handicap dispozitive de intrare-ieșire, caracterizate prin perioade scurte de utilizare a procesorului și așteptările frecvente IO.
Situații în care aveți nevoie de planificare.
În primul rând, atunci când un nou proces, trebuie să decidă ce proces pentru a rula: un părinte sau copil. Deoarece ambele procese sunt într-o stare de pregătire, această situație nu este ieșit din comun și planificatorul poate rula oricare dintre cele două procese.
În al doilea rând, planificarea este necesară când se termină procesul. Acest proces nu există, prin urmare, necesitatea unui set de procese gata pentru a selecta și începe următoarea. În cazul în care procesele sunt într-o stare de pregătire, în mod normal nu rula sistemul furnizat de proces inactiv.
În al treilea rând. atunci când procesul este blocat pe funcționare IO, semafor, sau pentru orice alt motiv, trebuie să selectați și să înceapă un alt proces. Uneori, motiv pentru blocarea poate afecta alegerea. De exemplu, în cazul în care A este - proces important și așteaptă procesul de ieșire din regiune critică, procesul de mai jos poate fi rulat prin aceea că a ieșit din regiune un mod critic, iar procesul a permis să continue să lucreze. Complexitatea, cu toate acestea, faptul că, în general, programatorul nu are informațiile de care au nevoie pentru a lua decizia corectă.
În al patrulea rând, nevoia de planificare poate fi apariția întreruperii de intrare-ieșire. Dacă întreruperea a venit de la dispozitivul IO pentru a termina lucrarea, puteți începe procesul care a fost blocat în așteptarea-Institutul de Cercetare a evenimentului. Programatorul trebuie să decidă ce proces pentru a rula: dar-st, cel care a fost oprit de întrerupere, sau orice alt.
programarea algoritmi fără comutare. uneori, de asemenea, menționată ca programarea neprioritare. procesul selectat și lăsați-o să curgă în jos pentru a bloca (în curs IO sau un alt proces) sau până în momentul în care procesul în sine dat procesor. Procesul nu va fi întrerupt, chiar dacă funcționează ore întregi. Prin urmare, decizia de planificare nu este acceptată de întrerupere timer. După procesarea Cronocomandă întrerupere revine întotdeauna la procesul oprit.
Algoritmii de planificare cu comutare, de asemenea, numit prioritate de programare. alege procesul și lăsați-l să ruleze un timp maxim posibil fix. Dacă până la sfârșitul intervalului de timp specificat procesul este încă în desfășurare, acesta este oprit, iar controlul este trecut la un alt proces (dacă există un proces în coadă). Planificarea prioritară necesită cronometrul de întrerupere care apar la sfârșitul perioadei de timp alocat pentru a trece controlul planificator.
În diferite medii necesită diferite algoritmi de planificare. Acest lucru se datorează faptului că diferite sisteme de operare și aplicații diferite sunt axate pe diferite sarcini. Cu alte cuvinte, ceva pentru care ar trebui să optimizeze planificator, este diferită în diferite sisteme.
trei medii sunt:
Sisteme de prelucrare a datelor 1. pachete.
2. Sisteme interactive.
3. Sistemele în timp real.
În lot sisteme de prelucrare sunt utilizatori stau la terminale și așteaptă să se răspundă. In astfel de sisteme, algoritmi sunt acceptabile fără comutare sau de comutare, dar cu mai mult timp dedicat fiecărui proces. Această metodă reduce numărul de comutare între procese și îmbunătățește eficiența.
În sistemele interactive, algoritmi de planificare trebuie să trecerea pentru a preveni capturarea procesorului printr-un singur proces. Chiar dacă nici un proces surprinde procesor pe termen nelimitat în mod intenționat, din cauza unei erori în procesul de program se poate bloca restul. Pentru a evita astfel de situații folosiți de planificare cu comutare.
În sistemele cu timp real prioritate constrângeri, destul de ciudat, nu este necesară întotdeauna, deoarece procesele știu timpul lor este limitat și rapid face munca și apoi blocate. Spre deosebire de sistemele interactive, care numai în programe destinate să promoveze aplicațiile specifice ale sistemelor de operare în timp real. Sistemele interactive sunt sisteme versatile. Ele pot rula programe arbitrare care nu cooperează între ele și chiar ostile între ele.
Sarcină algoritmi de planificare.
Pentru a dezvolta un algoritm de planificare, trebuie să aveți o idee despre ce să facă un algoritm bun.
Unele sarcini sunt dependente de mediul înconjurător (sistem de prelucrare a lot, interactiv sau în timp real), dar există o problemă, la fel pe toate sistemele.
Corectitudinea - oferind fiecărui proces o parte echitabilă a timpului CPU
Previzibilitatea - pentru a preveni degradarea calității în sistemele multimedia
Sarcini pentru toate sistemele.
aplicarea politicilor. Cu principiul justiției într-un fel legate de punerea în aplicare a politicii sistemului. Dacă politica locală este de a oferi procesorul de control de securitate procesează prima solicitare, planificatorul trebuie să se asigure că politica este pusă în aplicare, chiar și atunci când aceasta duce la salarizare în anii '30 mai târziu.
Sold. O altă provocare la nivel mondial este de a controla angajarea tuturor părților sistemului. În cazul în care dispozitivele de intrare-ieșire și procesorul toate lucrările de timp pe unitatea de timp va fi realizată mult mai util de lucru decât în cazul în care componentele individuale vor fi inactiv. De exemplu, planificatorul selectează sistemele de prelucrare de pachete care sarcinile încărcate în memoria de lucru. Mult mai bine să fie în memorie simultan mai multe procese, capacități limitate, procesor și procese multiple, de intrare limitate și dispozitive de ieșire decât prima descărcare și rula mai multe procese, capacități limitate de procesor, și numai după mai multe procese, dispozitive de intrare-ieșire limitate. În acest din urmă caz, în timp ce procesele, capacitățile de procesor limitate, va fi disc inactiv, în timp ce procesele, dispozitivele de intrare-ieșire limitate, procesorul va fi inactiv. Este înțelept să facă întreg sistemul să funcționeze, se amestecă ușor procesele.
sistem discontinuu.
Managerii centrelor informatice de mari dimensiuni în cazul în care sunt prelucrate de locuri de muncă mari lot, sunt monitorizate în mod obișnuit trei indicatori pentru a evalua eficacitatea sistemului:
Lățimea de bandă este numărul de sarcini finalizate în ceasul sistemului. În orice caz, 50 de sarcini pe oră, mai degrabă decât de 40 de sarcini pe oră.
Timpul de procesare - un timp mediu statistic de la primirea problemei înainte de executarea sa. Se caracterizează momentul în care utilizatorul mediu trebuie să aștepte pentru datele de ieșire. Regula de bază este „mai puțin este mai bine“.
Algoritmul de planificare, care maximizează tranzitată nu poate reduce la minimum necesar timp de răspuns.
Dacă există un amestec de sarcini lungi și scurte algoritm rula doar scurt sarcină, se poate atinge lățime de bandă mare (o mulțime de sarcini scurte într-o oră), dar din cauza timpului de răspuns teribil pentru sarcini lungi. În cazul în care sarcinile scurte ajunge la o rată constantă a sarcinilor de afaceri lungi nu pot ajunge niciodată, ca urmare timpul de răspuns va fi infinit, cu randament ridicat.
Reduceri pentru caracteristici, cum ar fi utilizarea procesorului, datorită faptului că procesorul este în continuare cea mai costisitoare parte a mainframe-ului, care utilizează sistemul de prelucrare a lot. Liderii acestor centre sunt incomode, în cazul în care procesorul nu este ocupat tot timpul. Cu toate că, în realitate, cifra nu este atât de important. Este mult mai important decât timpul de transfer și de răspuns. Luați în considerare utilizarea procesorului ca un indicator al eficienței este aproximativ la fel de rezonabil ca mașini de rating vizualizate, pe baza numărului de rotații ale motorului pe minut.
Pentru sistemele interactive, în special sisteme și servere care operează într-un time-sharing sunt importante alte sarcini.
Cel mai important este de a minimiza timpul de răspuns. adică perioada dintre introducerea echipei și rezultatele obținute. Pe un calculator personal cu un proces de fond (de exemplu, trimite și primi e-mail) cererea de utilizator pentru a începe un program sau deschide un fișier ar trebui să aibă prioritate față de un proces de fond. Tratamentul primar al tuturor cererilor online, considerate ca fiind un serviciu bun.