Raspunsuri sisteme de operare

19
2.5. Contextul de execuție, sau de stat proces, este de date interne prin care sistemul de operare este capabil de a supraveghea și controla procesul. Această informație internă este separat din proces, deoarece OS are informații interzise la proces. Contextul include toate informațiile de care sistemul de operare are nevoie pentru a gestiona procesul și că procesorul are nevoie pentru a executa procesul, inclusiv în mod corespunzător: conținutul diferitelor registre procesor, cum ar fi contorul programului și registrele de date Și informații de utilizare a sistemului de operare, cum ar fi prioritatea procesului și dacă procesul este în așteptare pentru finalizarea unui anumit eveniment I / O. 2.6 Principalele cinci responsabilități de management de stocare : • Procesul de izolare :sistem de operare trebuie să împiedice procese independente de interferență cu memoria celuilalt , atât de date și instrucțiuni . • alocare automată și de gestionare a : programe ar trebui să fie dinamic alocat pesteierarhie memorie după cum este necesar . Alocare ar trebui să fie transparentă pentruprogramator . Astfel , programatorul este exonerat de preocupările referitoare la limitări de memorie , iar sistemul de operare se poate obține o eficiență de atribuire memorie de locuri de muncă numai după cum este necesar . • Suport de programare modulară : Programatorii ar trebui să poată defini programul module , și pentru a crea , distruge , și modificadimensiunea modulelor dinamic . • protecția și controlul accesului : Schimbul de memorie , la orice nivel de memorie ierarhie , creează potențialul pentru un program pentru a aborda spațiul de memorie de altul. Acest lucru este de dorit atunci când partajarea este nevoie de aplicații specifice . În alte momente , ea amenință integritatea programelor și chiar a sistemului de operare în sine . Sistemul de operare trebuie să permită porțiuni de memorie pentru a fi accesibile în diferite moduri de diverși utilizatori . • Depozitarea pe termen lung : Multe programe necesită mijloace de stocare Informații pentru perioade lungi de timp , după ce calculatorul a fost alimentat în jos . 2.7 De obicei, sisteme de operare îndeplinească aceste cerințe de memorie virtuală și facilități de sistemul de fișiere. Sistemul de fișiere pune în aplicare un magazin pe termen lung, cu informații stocate într denumite obiecte, numite fișiere. Fișierul este un concept convenabil pentru programator și este o unitate de util de control al accesului și de protecție pentru sistemul de operare.

description

raspunsuri partial sisteme de operare

Transcript of Raspunsuri sisteme de operare

Page 1: Raspunsuri sisteme de operare

2.5. Contextul de execuție, sau de stat proces, este de date interne prin care sistemul de operare este capabil de a supraveghea și controla procesul. Această informație internă este separat din proces, deoarece OS are informații interzise la proces.

Contextul include toate informațiile de care sistemul de operare are nevoie pentru a gestiona procesul și că procesorul are nevoie pentru a executa procesul, inclusiv în mod corespunzător: conținutul diferitelor registre procesor, cum ar fi contorul programului și registrele de dateȘi informații de utilizare a sistemului de operare, cum ar fi prioritatea procesului și dacă procesul este în așteptare pentru finalizarea unui anumit eveniment I / O.

2.6 Principalele cinci responsabilități de management de stocare :• Procesul de izolare :sistem de operare trebuie să împiedice procese independente de interferențăcu memoria celuilalt , atât de date și instrucțiuni .• alocare automată și de gestionare a : programe ar trebui să fie dinamicalocat pesteierarhie memorie după cum este necesar . Alocare ar trebui să fietransparentă pentruprogramator . Astfel , programatorul este exonerat de preocupărilereferitoare la limitări de memorie , iar sistemul de operare se poate obține o eficiență de atribuirememorie de locuri de muncă numai după cum este necesar .• Suport de programare modulară : Programatorii ar trebui să poată defini programulmodule , și pentru a crea , distruge , și modificadimensiunea modulelor dinamic .• protecția și controlul accesului : Schimbul de memorie , la orice nivel de memorieierarhie , creează potențialul pentru un program pentru a aborda spațiul de memoriede altul. Acest lucru este de dorit atunci când partajarea este nevoie de aplicații specifice .În alte momente , ea amenință integritatea programelor și chiar a sistemului de operare în sine .Sistemul de operare trebuie să permită porțiuni de memorie pentru a fi accesibile în diferite moduri dediverși utilizatori .• Depozitarea pe termen lung : Multe programe necesită mijloace de stocareInformații pentru perioade lungi de timp , după ce calculatorul a fostalimentat în jos .2.7 De obicei, sisteme de operare îndeplinească aceste cerințe de memorie virtualăși facilități de sistemul de fișiere. Sistemul de fișiere pune în aplicare un magazin pe termen lung, cu informațiistocate într denumite obiecte, numite fișiere. Fișierul este un concept convenabil pentruprogramator și este o unitate de util de control al accesului și de protecție pentru sistemul de operare.

Memoria virtuală este o facilitate care permite programe pentru a aborda de memorie de laun punct de vedere logic, indiferent de cantitatea de memorie principal punct de vedere fizicdisponibilă. Memorie virtuală a fost conceput pentru a satisface cerința de a avea multipleLocuri de munca utilizator locuiesc în memoria principală în același timp, astfel că nu ar fi un hiatusîntre executarea de procese succesive în timp ce un proces a fost scrisăpentru a stoca secundar și procesul de succesor a fost citit inchDepozitarea format din direct adresabile (de instrucțiuni mașină) memorie principalăși memorie auxiliar inferior de viteză, care este accesat indirect prin blocuri de încărcareîn memoria principală. Adresa hardware traducere (unitate de management al memoriei) esteinterpus între procesor și memorie. Programe de locații de referință utilizândadrese virtuale, care sunt folosite în adrese reale principale de memorie. Dacă o referințăse face la o adresă virtuală nu în memoria reală, atunci o parte a conținutuluide memoria reală este schimbat de la memorie auxiliar și blocul dorit de dateeste schimbat inch În această activitate, procesul care a generat de referinta adresatrebuie suspendată. Sistemul de operare proiectantul trebuie să dezvolte un mecanism de translatare de adresecare generează puțin deasupra capului și o politică de alocare de stocare care minimizeazătraficul între nivelurile de memorie.2.8 . Este până la planificator pe termen scurt , saudispecer , pentru a alege unul . O strategie comună este de a oferi fiecărui proces în coada de așteptareun moment dat , la rândul său , aceasta este menționată ca o tehnica round-robin . De fapt ,tehnica round-robin are o coadă circulară . O altă strategie este de a atribuinivele de prioritate pentru diferitele procese , cu programatorul procesele de selecție înordinea de prioritate .

Page 2: Raspunsuri sisteme de operare

Coada pe termen lung este o listă de noi locuri de muncă în așteptare pentru a folosi procesorul .OS adaugă locuri de muncă în sistemul de transferul unui proces de coada pe termen lung acoada pe termen scurt . La acea vreme , o porțiune din memoria principală trebuie să fie alocateaprocesului de intrare . Astfel , sistemul de operare trebuie să fie sigur că nu a supramemorie sau timpul de prelucrare prin admisie prea multe procese lasistem . acoloeste o coada I / O pentru fiecare dispozitiv I / O . Mai mult de un proces poate solicitautilizareaÎn același I / O dispozitiv . Toate procesele de așteptare pentru a utiliza fiecare dispozitiv sunt aliniate în carecoada aparatului . Din nou , sistemul de operare trebuie să determine care procesul să atribuie un disponibilI / O dispozitiv .2.9 Cele mai multe sisteme de operare , până de curând , a prezentat un nucleu mare monolit .Cele mai multe din ceea ce se crede a fi funcția de sistem de operare este prevăzut în aceste boabe mari ,inclusiv de planificare , sistemul de fișiere , de rețea , driverele de dispozitive , gestionarea memoriei ,și mai mult . De obicei , un nucleu monolitic este implementat ca un singur proces , cutoate elementele împart același spațiu de adrese . O arhitectură microkernel atribuiedoar câteva funcții esențiale pentru kernel, inclusiv spațiile adresa , intre-procesecomunicare ( IPC ) , și programarea de bază . Alte servicii OS sunt furnizate de cătreproceselor , uneori numite servere , care rulează în modul utilizator și sunt tratate ca oricealte cereri de microkernel . Această abordare kernel și server detașeazădezvoltare . Serverele pot fi personalizate pentru aplicații specifice sau de mediucerințe . Abordarea microkernel simplifică implementarea , oferă flexibilitate ,și este bine adaptate la un mediu distribuit . În esență , un microkernelinteracționează cu procesele de servere locale și de la distanță în același fel , facilitarea de construcțiede sisteme distribuite .2.10 Multithreading este o tehnică în care un proces , o cerere de executare , esteîmpărțit în fire care pot rula simultan . Putem face următoarea distincție :• Subiect : O unitate dispecerizabilă de lucru . Acesta include un procesor de context ( careinclude programul de combatere și indicatorul de stivă ) și propria sa zonă de date pentru ostivă ( pentru a permite subrutina ramificare ) . Un fir execută secvențial și esteîntreruptibil , astfel încât procesorul poate transforma într-un alt fir .• Procesul de : O colecție de unul sau mai multe fire și resursele sistemului asociate( cum ar fi de memorie care conține atât cod și date , fișierele deschise și dispozitive ) . acestcorespunde îndeaproape cu conceptul de un program în execuție . de rupereo singură cerere în mai multe fire , programator are un control marepe modularitate de aplicare și calendarul de aplicare legate deevenimente .

Multithreading este util pentru aplicații care realizează un număr de esențăactivități independente, care nu trebuie să fie serializat . Un exemplu este un server de baze de datecare ascultă și pentru procesele numeroase cereri client . Cu mai multe fire de funcționareîn cadrul aceluiași proces , de comutare înainte și înapoi între fire implicăaeriene de procesor mai puțin de un comutator proces majoră între procese diferite .2.11 Multiprocesare simetrică (SMP) este un termen care se referă la un hardwareArhitectura (descris în capitolul 1) și, de asemenea, la comportamentul de operare care exploateazăcă arhitectura. Sistemul de operare a unui program SMP procese sau fire peste totprocesoare.

Multithreading și lapte praf degresat sunt adesea discutate împreună, dar cele două suntinstalațiilor independente. Chiar și pe un sistem uniprocesor, multithreading este util pentrustructurare aplicații și procese de kernel. Un sistem SMP este utilă chiar și pentruprocesele nonthreaded, deoarece mai multe procese pot rula în paralel. Cu toate acestea,două instalații se completează reciproc și pot fi folosite în mod eficient împreună.O caracteristică atractivă a unui SMP este că existența mai multor procesoare estetransparent pentru utilizator. Sistemul de operare are grija de programare de fire sau procese peprocesoare individuale și de sincronizare între procesoare.SMP are un număr de potențiale avantaje față de arhitectura uniprocesor ,inclusiv următoarele :• Performanță : În cazul în care locul de muncă să fie făcut de către un calculator poate fi organizată astfel încât

Page 3: Raspunsuri sisteme de operare

unele porțiuni ale lucrării se poate face în paralel , apoi un sistem cu multipleprocesoare va produce o performanță mai mare decât unul cu un singur procesor deacelași tip . Acest lucru este ilustrat în figura 2.12 . Cu multiprogramming , numaiun proces poate executa la un moment dat , între timp, toate celelalte procese sunt în așteptarepentruprocesor . Cu multiprocesare , mai mult de un proces pot fi difuzatesimultan , fiecare pe un procesor diferit .• Disponibilitate : Într- un simetric multiprocesor , deoarece toate procesoarele pot efectuaaceleași funcții , eșecul de un singur procesor nu se opreascăsistem . În schimb ,sistemul poate continua să funcționeze la performanță redusă .• Creșterea incrementală : Un utilizator poate îmbunătăți performanța unui sistem prin adăugareaun procesor suplimentar .• Scalarea : Furnizorii pot oferi o gamă de produse cu preț și performanță diferitecaracteristici bazate penumărul de procesoare configurate însistem .Este important de remarcat faptul că acestea sunt potențial , mai degrabă decât garantată , beneficii .OS trebuie să ofere instrumente și funcții pentru a exploata paralelismul într-un sistem SMP .

3.1 Putem caracteriza comportamentul unui proces individual de listaresecvență de instrucțiuni care se execută pentru acest proces. Această listă să fie menționatăca un trasor de proces. Putem caracteriza comportamentul procesorului arătândcum sunt intercalate urmele diferitelor procese.3.2 Ca un alt exemplu,un proces de sistem (de exemplu, server de imprimare, server de fișiere), poate genera un nou proces pentru fiecaresolicita ca aceasta manipulează. În cazul în care sistemul de operare creează un proces, la cererea explicită aun alt proces, acțiunea este menționată ca process spawning .Când un proces de icre altul, fostul este menționată ca parent processproces, iar procesul dat naștere este menționată ca procesul child process. De obicei,Procese "legate de" necesitatea de a comunica și de a coopera între ele3.3 Figura 3.6 indică tipurile de evenimente care duc la fiecare tranziție de stat pentru oproces; posibilelor tranziții sunt după cum urmează :• Null : Nou : Un nou proces este creat pentru a executa un program . Acest eveniment are locpentru oricare dintre motivele enumerate în tabelul 3.1 .• Nou : Gata :OS se va muta un proces de statul New la Readyprecizeze dacă este pregătită să-și asume un proces suplimentar . Cele mai multe sisteme stabiliteunele limite în funcție de numărul de procese existente saucantitatea de virtualememorie angajamentul de a proceselor existente . Această limită asigură că nu existăatât de multe procese active, astfel cum a degrada performanța .• Gata : Rularea : Când este timpul pentru a selecta un proces pentru a rula , sistemul de operare alegeunul dintre procesele în starea READY . Aceasta este de locuri de muncă de programatorul saudispecer . Programarea este explorat în partea a patra .• Rularea : Exit :proces care rulează în prezent este reziliat de către sistemul de operare în cazul în careproces indică faptul că sa terminat , sau în cazul în care se intrerupe . Vezi Tabelul 3.2 .• Rularea : Gata : Cel mai frecvent motiv pentru această tranziție este faptul căProcesul de funcționare a atins timpul maxim admisibil pentru neîntreruptăexecuție , aproape toate sistemele de operare Multiprogramare impune acest tip dede timp disciplină . Există mai multe alte cauze alternative pentru această tranziție ,care nu sunt implementate în toate sistemele de operare . De o importanță deosebităîn cazul în care sistemul de operare atribuie diferite niveluri de prioritate diferiteproceselor .Rularea : blocat : Un proces este pus în starea blocat dacă solicită cevapentru care aceasta trebuie să aștepte . O cerere deoperare este, de obicei , sub forma unuiapel de serviciu de sistem , care este , un apel de la programul de funcționare a unei proceduri, care este parte din codul sistemului de operare . De exemplu , un proces poate solicitaun serviciu desistem de operare care sistemul de operare nu este pregătită pentru a efectua imediat . eapoate solicita o resursă , cum ar fi un fișier sau o secțiune partajată de memorie virtuală ,care nu este disponibil imediat . Sauprocesul poate iniția o acțiune , cum arca o operațiune de I / O , care trebuie să fie finalizate înainte de procesul poate continua .

Page 4: Raspunsuri sisteme de operare

Când procesele comunica între ele , un proces poate fi blocatatunci când este în așteptare pentru un alt proces de a furniza date sau de așteptare pentru un mesajdintr-un alt proces .• Blocat : Ready : Un proces în stare blocată este mutat la starea Readycândevenimentul pentru care a fost de așteptare apare .• Gata : Ieșire : Pentru claritate , această tranziție nu este prezentată pe diagrama de stare . înunele sisteme , o mamă poate termina procesul unui copil , în orice moment . De asemenea , dacă un părinteîncetează , toate procesele copilului asociate cu care părintele poate fi reziliat .• Blocat : Iesire : comentariile de sub elementul precedent se aplică .3.4 În primul rând , să ne considerăm sistemul întrerupe . De fapt , putem distinge , cât mai multeSistemele se , două tipuri de sistemul întrerupe , dintre care unul este pur și simplu menționată ca oîntrerupe , iarcelălalt ca o capcană . Fosta se datorează un fel de eveniment care esteextern și independent deproces care rulează în prezent , cum ar ficompletareaa unei operațiuni I / O . Acesta din urmă se referă la o eroare sau condiție excepție generatăîn cadrul procesului de funcționare în prezent , cum ar fi un acces la dosar încercare ilegal . cu oîntrerupere ordinară , controlul este mai întâi transferat la o tratare a întreruperii , care faceunele menaj de bază și apoi ramuri pentru o rutina de sistem de operare , care este în cauză cuun anumit tip de întrerupere , care a avut loc . Exemplele includ următoarele :• Ceas de întrerupere :OS determină dacă procesul rulează în prezenta fost de executare pentruunitatea de timp maxim admisibil , menționată ca otimp felie . Că este , o felie de timp este suma maximă de timp în care un procespoate executa înainte de a fi întrerupt . Dacă este așa , acest proces trebuie să fie trecut la unStarea Ready și un alt proces expediate .• I / O întrerup :OS determină ceea ce sa întâmplat acțiune I / O . În cazul în care I / Oacțiune constituie un eveniment pentru care unul sau mai multe procese sunt în așteptare ,apoiOS mută toate procesele corespunzătoare blocate laReadyde stat ( blocați și / Suspendare procese la starea Ready / Suspendare ) . Sistemul de operaretrebuie să decidă apoi dacă să reia executarea procesului în prezent înstarea de funcționare sau să prevină acest proces pentru un Ready prioritate mai mareproces .• defect Memorie :procesor întâlnește o adresă de referinta memorie virtualăpentru un cuvânt care nu este în memoria principală . OS trebuie să aducă înbloc( pagina sau segment ) de memorie care conține trimitere la memoria secundarăla memoria principală . După ce cererea I / O este emis pentru a aduce în blocul dememorie ,procesul cudefect de memorie este plasat într -o stare blocată ;OS efectuează apoi un comutator proces pentru a relua executarea de un alt proces .Dupăblocul dorit este adus în memorie , acest proces este plasat înStarea Ready .Cu o capcană , sistemul de operare determină dacă situația de eroare sau excepție este fatal .Dacă este așa , atunci procesul care rulează în prezent este mutat în statul Exit și un procescomutator apare . Dacă nu , atunciacțiunea deOS va depinde denaturaeroarea și de proiectare a sistemului de operare . Se poate încerca unele proceduri de recuperare saunotifica simpluutilizator . Se poate face un comutator proces sau reluaîn curs de desfășurareproces . 3.5 O altă soluție este swapping, care implică o parte sau toate mutarea unui procesdin memoria principală de disc. Atunci când nici unul din procesele din memoria principală este înStarea Ready, a swap OS unul dintre procesele blocate pe de disc într-o suspendarecoada. Aceasta este o coadă a proceselor existente, care au fost lovite temporardin memoria principală, sau suspendate. Sistemul de operare apoi aduce într-un alt proces desuspenda coadă, sau onorează o cerere nou-proces. Executarea apoi continuă cuprocesul de nou venit.

Swapping, cu toate acestea, este o operație I / O, și, prin urmare, există potențialulpentru a face problema mai rău, nu mai bine. Dar deoarece disc I / O este în generalcel mai rapid I / O pe un sistem (de exemplu, în comparație cu bandă sau imprimanta I / O), schimbarea va fi, de obicei,îmbunătăți performanțele.

Page 5: Raspunsuri sisteme de operare

3.6 Să ne uităm acum , în figura 3.9b , la model de tranziție de stat pe care le avemdezvoltat . ( Liniile punctate dinfigură indică posibile , dar nu este necesar tranziții . )Noi tranziții importante sunt următoarele :

• Blocat : Blocat / Suspendare : Dacă nu există procese gata , atunci cel puținProcesul de unul blocat este schimbat pentru a face loc pentru un alt proces carenu este blocat . Această tranziție poate fi făcută chiar dacă există procese gatadisponibile , dacă sistemul de operare stabilește căprocesele curente sau o gataproces care ar dori sa o expediem necesită mai multă memorie principală de a menținede performanță adecvate .

• Blocat / Suspendare : Gata / Suspendare : Un proces în stare blocate / Suspendareeste mutat la starea Ready / Suspendare atunci când evenimentul pentru care a fostașteptare apare . Rețineți că acest lucru necesită ca informațiile cu privire la stareaprocesele suspendate trebuie să fie accesibile pentru sistemul de operare .

• Pregătit / Suspend : Gata : Atunci când nu există procese gata în memoria principală ,sistemul de operare va trebui să aducă o pentru a continua execuția . În plus , acestaar putea fi cazul în care un proces în starea Ready / Suspendare are prioritate mai maredecât oricare dintre procesele în starea READY . În acest caz , proiectantul sistemului de operare poatedicta că este mult mai important pentru a obține de la procesul cu prioritate mai mare decât aminimiza schimbarea .

• Gata : Gata / Suspend : În mod normal , sistemul de operare ar prefera să suspende oproces , mai degrabă decât unul gata blocat , deoareceprocesul poate acum gatafie executat , întrucât procesul blocat este de a lua spațiu de memorie principalăși nu poate fi executată . Cu toate acestea , poate fi necesar să suspende o gataProcesul în cazul în care este singura modalitate de a elibera un bloc suficient de mare de principalmemorie . De asemenea , sistemul de operare poate alege pentru a suspenda un proces de prioritate mai mică gatamai degrabă decât un proces cu prioritate mai mare blocat în cazul în care consideră căblocatProcesul va fi gata în curând .

3.7 Tabelul 3.3 enumeră câteva motive pentru suspendarea unui proces . Un motiv pentru caream discutat este de a oferi spațiu de memorie , fie pentru a aduce într- un Ready / suspendatprelucra sau pentru a creștememoria alocată alte procese Ready . Sistemul de operare poateau alte motivații pentru suspendarea unui proces . De exemplu , un audit sau de urmărireProcedeul poate fi folosit pentru a monitoriza activitatea de pesistemul ;procesul poatefi folosite pentru a înregistranivelul de utilizare a diferitelor resurse ( procesor , memorie ,canale ) și rata de progres a proceselor de utilizatori dinsistem . Sistemul de operare ,sub controlul operatorului , se poate transforma acest proces pe și în afara din timp în timp . DacăOS detectează sau suspectează o problemă , se poate suspenda un proces . Un exemplu în acest senseste impas , care este discutat în capitolul 6 . Ca un alt exemplu , o problemă estedetectat pe o linie de comunicații , iaroperatorul areOS suspendaprocesulcare utilizează linia în timp ce unele teste sunt rulate .

Un alt set de motive se referă la acțiunile unui utilizator interactiv . De exemplu , dacăun utilizator suspectează o eroare în program , el sau ea poate depana programul de suspendareaexecutarea sa , examinarea și modificarea programului sau de date , și reluarea executie .Sau poate exista un proces de fundal , care este colectarea de date statistice urme sau de contabilitate ,pe care utilizatorul ar putea dori să fie în măsură pentru a porni și opri .

Considerente de timp poate duce de asemenea la o decizie schimbarea . De exemplu , dacă unproces este de a fi activat periodic dar nu este folosit cele mai multe ori , atunci ar trebui să fieschimbat în între utilizări . Un program care monitorizează activitatea de utilizare sau utilizator esteun exemplu .

În cele din urmă , un proces părinte poate dori să suspende un proces descendent . De exemplu ,

Page 6: Raspunsuri sisteme de operare

Un proces poate da naștere la procesul B pentru a efectua un fișier citit . Ulterior , procesul Bîntâlnește o eroare în dosarul procedurii de citit și raportează acest lucru pentru a procesa A. ProcesulUn proces suspendă B a investiga cauza .

În toate aceste cazuri ,activarea unui proces suspendat este solicitată deAgentul care a solicitat inițialsuspendare .3.8 Tabele de memorie sunt utilizate pentru a urmări atât principal (real) și secundar(virtuală) de memorie. Unele din memoria principală este rezervat pentru utilizare de către sistemul de operare;restul este disponibil pentru utilizare de către procese. Procesele sunt menținute pe secundarde memorie utilizând un fel de memorie virtuală sau mecanism simplu swapping.tabele de memorie trebuie să includă următoarele informații:

• alocarea de memorie principală a proceselor• Alocarea memoriei secundare la proceseAtribute de protecție de blocuri de memorie principală sau virtuale, cum ar fi careprocese pot accesa anumite zone de memorie partajată• orice informații necesare pentru gestionarea memoriei virtualeSistemul de operare poate menține, de asemenea, tabele de fișiere.

Mai mult, dacă nu toate, aceste informații pot fi întreținute și folosite de un sistem de gestionare a fișierelor, în cazul în care sistemul de operare are puțin sau deloc cunostinte de fișiere.

În alte sisteme de operare, o mare parte din detaliile de gestionare a fișierelor este gestionat de sistemul de operare în sine.3.9 În cele din urmă , sistemul de operare trebuie să mențină tabele de proces pentru a gestiona procesele .Restul de această secțiune este dedicată o examinare a procesului de necesaretabele . Înainte de a trece la această discuție , trebuie să se facă două puncte suplimentare .În primul rând , deși figura 3.11 prezintă patru seturi distincte de mese , ar trebui să fie clar căaceste tabele trebuie să fie legate sau corelate într- un mod . Memorie , I / O , șifișierele sunt gestionate în numele proceselor , deci trebuie să existe o referire la acesteresurse , direct sau indirect , în tabelele de proces . Fișierele menționate în dosarTabelele sunt accesibile prin intermediul unui dispozitiv de I / O și va la unele momente , fie , în principal sau virtualememorie . Tabelele de sine trebuie să fie accesibile de către sistemul de operare și , prin urmare, sunt supusede gestionare a memoriei .

În al doilea rând , cum sistemul de operare știe pentru a crea tabelele în primul rând ? în mod clar ,sistemul de operare trebuie să aibă cunoștințe de bază mediu , cum ar fi cât de mult principalăexistă memorie , care sunt dispozitive I / O și care sunt identificatori lor , și așa mai departe . acesteste o problemă de configurare . Care este , atunci cândsistemul de operare este inițializat , acesta trebuie să aibă acces launele date de configurare care definesc mediul de bază , iar aceste date trebuie să fiea creat în afara sistemului de operare , cu asistență umană sau de un software de configurare automată .3.10 Înainte de a continua cu discuția noastră a modului în care sistemul de operare gestionează procesele,avem nevoie pentru a distinge între modul de executare procesorului în mod normalasociată cu sistemul de operare și care în mod normal asociate cu programe pentru utilizator. cele mai multeprocesoare sprijini cel puțin două moduri de execuție. Anumite instrucțiuni poate doarsă fie executate în mod mai-privilegiat. Acestea ar include citirea sau modificareaun registru de control, cum ar fi cuvântul de stare programului; I / O instrucțiuni primitive;și instrucțiuni care se referă la managementul memoriei. În plus, anumite regiuni alememorie pot fi accesate numai în modul mai-privilegiat.

Modul puțin privilegiat este adesea menționată ca modul de utilizare, deoarece utilizatorulProgramele de obicei, s-ar executa în acest mod. Modul mai-privilegiat este menționatăîn continuare modul de sistem, modul de control, sau modul nucleu. Acest ultim termen se referă lanucleu al sistemului de operare, care este acea parte a sistemului de operare, care cuprinde importantefuncțiilor sistemului.3.11 Odată ce sistemul de operare decide , indiferent de motiv ( tabelul 3.1 ) , pentru a crea un nou proces ,

Page 7: Raspunsuri sisteme de operare

se poate proceda astfel:

1 . Atribuie un identificator unic proces de noul proces . În acest moment , o nouă intrarese adaugă în tabel procesul primar , care conține câte o intrare pentru fiecare proces .

2 . Aloca spațiu pentru procesul . Aceasta include toate elementeleimaginii procesului .Astfel , sistemul de operare trebuie să știe cât de mult este nevoie de spațiu pentru adresa de utilizator privatspațiu ( programe și date ) șistiva utilizator . Aceste valori pot fi atribuite de cătreimplicit în funcție de tipul de proces , sau ele pot fi stabilite în funcție de cererea utilizatoruluiîn timp crearea de locuri de muncă . Dacă un proces este generat de un alt proces ,părinteProcesul poate trece valorile necesare pentruOS ca parte aprocesului de crearecerere . În cazul în care orice spațiu de adrese existente să fie împărtășită de acest nou proces ,legăturile corespunzătoare trebuie să fie configurat . În cele din urmă , spațiu pentru un bloc de control al procesuluitrebuie să fie alocate .

3 . Initializeaza blocul de control al procesului . Porțiunea de identificare a procesului conțineID al acestui proces , plus alte ID-uri adecvate , cum ar fi cea de-mamăproces . Procesorul stat parte informații vor fi de obicei inițializatcu cele mai multe intrări la zero , cu excepția programului contor ( setat la programpunct de intrare ) și sistemul de indicii stivă ( setat să definească limitele stiva de proces ) .De control al procesului Partea informații este inițializat bazează pe standardulValorile implicite plus atributele care au fost solicitate pentru acest proces . pentrude exemplu , statul procesul ar fi de obicei inițializat la Ready sau Ready /Suspendare . Prioritatea poate fi setat în mod implicit la cea mai mică prioritate excepția cazului în care uncererea expresă este făcută pentru o prioritate mai mare . Inițial , procesul poate să deținănici resurse ( dispozitive I / O , fișiere ), dacă nu există o cerere explicită de acestea saucu excepția cazului în care acestea sunt moștenite de la mama .

4 . Stabilit legăturile necesare . De exemplu , în cazul în care sistemul de operare menține fiecare programareacoada ca o lista inlantuita , atunci noul proces trebuie să fie pus în Ready sauPregătit / Suspend lista .

5 . Crearea sau extinderea altor structuri de date . De exemplu ,sistemul de operare poate mențineun fișier de contabilitate pe fiecare proces să fie utilizate ulterior pentru facturare și / sauscopuri de evaluare a performanței .3.12 n primul rând , să ne considerăm sistemul întrerupe . De fapt , putem distinge , cât mai multeSistemele se , două tipuri de sistemul întrerupe , dintre care unul este pur și simplu menționată ca oîntrerupe , iarcelălalt ca o capcană . Fosta se datorează un fel de eveniment care esteextern și independent deproces care rulează în prezent , cum ar ficompletareaa unei operațiuni I / O . Acesta din urmă se referă la o eroare sau condiție excepție generatăîn cadrul procesului de funcționare în prezent , cum ar fi un acces la dosar încercare ilegal . cu oîntrerupere ordinară , controlul este mai întâi transferat la o tratare a întreruperii , care faceunele menaj de bază și apoi ramuri pentru o rutina de sistem de operare , care este în cauză cuun anumit tip de întrerupere , care a avut loc . Exemplele includ următoarele :• Ceas de întrerupere :OS determină dacă procesul rulează în prezenta fost de executare pentruunitatea de timp maxim admisibil , menționată ca otimp felie . Că este , o felie de timp este suma maximă de timp în care un procespoate executa înainte de a fi întrerupt . Dacă este așa , acest proces trebuie să fie trecut la unStarea Ready și un alt proces expediate .• I / O întrerup :OS determină ceea ce sa întâmplat acțiune I / O . În cazul în care I / Oacțiune constituie un eveniment pentru care unul sau mai multe procese sunt în așteptare ,apoiOS mută toate procesele corespunzătoare blocate laReadyde stat ( blocați și / Suspendare procese la starea Ready / Suspendare ) . Sistemul de operaretrebuie să decidă apoi dacă să reia executarea procesului în prezent înstarea de funcționare sau să prevină acest proces pentru un Ready prioritate mai mareproces .• defect Memorie :procesor întâlnește o adresă de referinta memorie virtuală

Page 8: Raspunsuri sisteme de operare

pentru un cuvânt care nu este în memoria principală . OS trebuie să aducă înbloc( pagina sau segment ) de memorie care conține trimitere la memoria secundarăla memoria principală . După ce cererea I / O este emis pentru a aduce în blocul dememorie ,procesul cudefect de memorie este plasat într -o stare blocată ;OS efectuează apoi un comutator proces pentru a relua executarea de un alt proces .Dupăblocul dorit este adus în memorie , acest proces este plasat înStarea Ready .Cu o capcană , sistemul de operare determină dacă situația de eroare sau excepție este fatal .Dacă este așa , atunci procesul care rulează în prezent este mutat în statul Exit și un procescomutator apare . Dacă nu , atunciacțiunea deOS va depinde denaturaeroarea și de proiectare a sistemului de operare . Se poate încerca unele proceduri de recuperare saunotifica simpluutilizator . Se poate face un comutator proces sau reluaîn curs de desfășurareproces .3.13 n capitolul 1 , am discutat despre includerea unei etape de întrerupere caparte aciclului de instrucțiuni. Amintiți-vă că , în etapa de întrerupere , procesorul verificăpentru a vedea dacă există întreruperile sunt în curs , indicate prinprezența unui semnal de întrerupere .Dacă nu întrerupe sunt în curs , procesorul trece la etapa descărca și extrageurmătoarea instrucțiune a programului actual în procesul de curent . Dacă o întrerupere esteașteptarea ,procesorul efectuează următoarele :1 . Aceasta stabilește programul în contradicție cu adresa de început a unei rutine de întrerupereprogramul .2 . Se trece de la modul de utilizare în modul kernel , astfel încât procesul de întrerupereCodul poate include instructiuni privilegiate .

Procesorul trece laetapa aducă și preiaprimei instrucțiuni deprogramul de tratare a întreruperii , care va deserviîntrerupere . La acest punct , de obicei ,contextul procesului care a fost întreruptă este stocat în acest procesBlocul de control alprogramului întrerupt .

O întrebare care pot apărea acum pentru tine este , ce constituie contextul în careeste salvat ? Răspunsul este că acesta trebuie să includă orice informații care pot fi modificate prinexecutarea de tratare a întreruperii și care vor fi necesare pentru a relua programulcare a fost întreruptă . Astfel ,porțiunea deblocul de control al procesului , care a fostdenumit în continuare informații de stare procesorul trebuie să fie salvate . Aceasta includeprogramulcontra , alte registre procesor , și informații stivă.

Are nevoie să fie făcut altceva ? Asta depinde de ceea ce se întâmplă în continuare .de tratare a întreruperii este de obicei un program de scurt, care îndeplinește câteva sarcini de bază legatela o întrerupere . De exemplu , se resetează de pavilion sau indicator care semnaleaza prezentade o întrerupere . Se poate trimite o confirmare a entității care a emis întrerupere ,cum ar fi un modul de I / O . Și -ar putea face unele menaj de bază referitoare laefectele evenimentului care a cauzat întreruperea . De exemplu , dacăse referă întreruperela un eveniment I / O , rutina de tratare a întreruperii va verifica pentru o stare de eroare . În cazul în care o eroarea avut loc , rutina de tratare a întreruperii poate trimite un semnal la procesul care inițiala solicitat operație I / O . În cazul în care întreruperea este de ceas , apoihandler vacontrolul predea la dispecerat , care vor dori să treacă de control pentru un alt procesdeoarece felie de timp alocat pentru procesul de funcționare în prezent a expirat .

Ce zici dealte informații din blocul de control al procesului ? Dacă această întreruperetrebuie să fie urmată de o trecere la un alt proces , atunci ceva de lucru va trebui să fiefăcut . Totuși , în cele mai multe sisteme de operare ,apariția unei întreruperi nuînseamnă neapărat un comutator proces . Este posibil ca , după ce handler de întrerupere aexecutat ,proces care rulează în prezent va relua execuția . În acest caz , tot ceeste necesar este de a salva informațiile de stat procesor atunci cândapare și întrerupărestaura aceste informații atunci când controlul este returnat la programul care a fost difuzate .De obicei , funcțiile Salvarea și restaurarea sunt efectuate în hardware .3.14 Este clar , deci , că comutatorul de mod este un concept

Page 9: Raspunsuri sisteme de operare

distinctă de cea acomutatorului procesului . 10 Un comutator poate avea loc fărăschimbarea stării a procesului , care este în prezent în stare de alergare . În acest caz ,de economisire context și, ulterior, Restabilire implica puțin deasupra capului . Cu toate acestea , dacăproces care rulează în prezent este de a fi mutat într-un alt stat ( Ready , blocate , etc ) ,atunci sistemul de operare trebuie să facă schimbări substanțiale în mediul său . Pașii implicațiîntr -un comutator plin proces sunt următoarele :1 . Salvacontextulprocesorului , inclusiv contor program și alteregistre .2 . Actualizațiblocul de control al procesului deproces , care este în prezent înRularea de stat . Aceasta include schimbareastării procesului la una dintrealte state ( Ready , blocate , Ready / Suspend sau Ieșire ) . Alte domenii relevanteDe asemenea, trebuie actualizate , inclusiv motivul pentru care a plecat de stat de funcționare șiinformațiilor contabile .3 . Mutați blocul de control al procesului de acest proces în coada corespunzătoare( Gata, blocate pe Event I ; Pregătit / Suspendare ) .4 . Selectați un alt proces de executare , acest subiect este analizat în partea a patra .5 . Actualizațiblocul de control al procesului deproces selectate . Aceasta include modificareastarea acestui proces de alergare .6 . Actualizare structuri de date de management al memoriei . Acest lucru poate fi necesar , în funcțiela modul în care este gestionată de traducere adresa , acest subiect este analizat în partea a treia .7 . Restabili contextul procesorului la ceea ce a existat la momentulProcesul a fost selectat ultima pornit din starea de alergare , de încărcare învalorile anterioare ale programului contra și alte registre .

Astfel ,comutatorul proces , care implică o schimbare de stare , necesită efort mai mult decât uncomutator .

Page 10: Raspunsuri sisteme de operare

1.1. Enumerați și definiți pe scurt cele patru elemente principale ale unui calculator.. 1.2. Definiți cele două categorii principale de regiștri procesor. 1.3. Care sunt, în termeni generali, cele patru acțiuni distincte pe care le pot specifica instrucțiunile

procesor. 1.4. Ce este o întrerupere? 1.5. Cum se lucrează cu întreruperile multiple? 1.6. Ce caracteristici disting diferitele elemente ale ierarhiei de memorie? 1.7. Ce este memoria cache? 1.8. Care este diferența între un sistem multimicroprocesor și unul multinucleu? 1.9. Care este distincția între localizarea spațială și cea temporală? 1.10. In general, care sunt strategiile pentru a exploata localitatea spațială și cea temporală? 2.1 Care sunt trei dintre obiectivele proiectării unui sistem de operare? 2.2 Ce este nucleul (kernel-ul) unui sistem de operare? 2.3 Ce este multiprogramarea? 2.4 Ce este un proces? 2.5 Care este contextul de execuție a unui proces utilizat de către sistemul de operare OS? 2.6.Enumerați și explicați pe scurt cinci responsabilități ale gestiunii sistemului de memorare ale unui SO

tipic. 2.7 Explicați distincția dintre o adresă reală și o adresă virtuală. 2.8 Descrieți tehnica de planificare de tip round robin. 2.9 Explicați diferența dintre un nucleu monolitic li un microkernel. 2.10 Ce este multithreading (fire de execuție multiple)? 2.11 Enumerați facilitățile cheie ale proiectării unui sistem de operare SMP (Multiprocesor Simetric). 3.1 Ce este un trasor (trace) de instrucțiuni? 3.2 Care sunt evenimentele cele mai cunoscute care conduc la crearea unui proces? 3.3 Pentru modelul de procesare din Fig. 3.6 , definiți pe scurt fiecare stare. 3.4 Ce înseamnă întreruperea (suspendarea) unui proces - What does it mean to preempt a process? 3.5 Ce se înțelege prin swapping (comutarea a două procese în memorie) și care este scopul acestuia 3.6 De ce sunt două stări blocate în figura Fig. 3.9b? 3.7 Enunțați patru caracteristici ale unui proces suspendat. 3.8 Pentru ce tipuri de entități SO menține tabele cu informații pentru management? 3.9 Enunțați trei categorii generale de informații dintr-un bloc de control al procesului. 3.10 De ce sunt necesare două moduri de lucru (utilizator și kernel)? 3.11 Care sunt pașii realizați de un SO pentru a crea un nou proces? 3.12 Care este diferența între o întrerupere și o capcană (trap)? 3.13 Dați trei exemple de întreruperi. 3.14 Care este diferența între comutarea între moduri și comutarea între procese? 4.1 Tabelul 3.5 prezintă elementele tipice care se regăsesc într-un bloc de control al procesului pentru un

SO fără fire de execuție. Dintre acestea, care pot aparține unui bloc de control al firului de execuție și care pot să aparțină unui bloc de control al procesului într-un sistem cu fire multiple de execuție.

4.2 Enumerați motivele pentru care o comutare de mod între firele de execuție poate fi mai rapidă decât o comutare de moduri între procese.

4.3 Care sunt cele două caracteristici separate și potențial independente înglobate în conceptul de proces? 4.4 Dați patru exemple generale de utilizare a firelor de execuție într-un sistem cu multiprocesare și un

singur utilizator. 4.5 Care sunt resursele tipice partajate de toate firele de execuție ale unui proces? 4.6 Enumerați trei avantaje ale utilizării ULT-urilor în raport cu KLT-urile. 4.7 Enumerați două dezavantaje ale ULT-urilor în raport cu KLT-urile. 4.8 Definiți jacketing-ul. 5.1 Enumerați patru caracteristici care fac relevant conceptul de concurență. 5.2 Care sunt cele trei contexte în care apare concurența? 5.3 Care este cerința de bază pentru execuția proceselor concurente? 5.4 Enumerați trei grade de conștientizare între procese și definițiile pe scurt pe fiecare. 5.5 Care este diferența între procesele competitive și procesele cooperative? 5.6 Enumerați trei probleme de control asociate cu procesele competitive li definițiile pe scurt pe fiecare.

Page 11: Raspunsuri sisteme de operare

5.7 Enumerați cerințele pentru excluderea mutuală. 5.8 Ce operații trebuie realizate pe un semafor? 5.9 Care este diferența între semafoarele binare și cele generale? 5.10 Care este diferența între semafoarele puternice și cele slabe? 5.11 Ce este un monitor? 5.12 Care este distincția între mesajele cu blocare și fără blocare? 5.13 Ce condiții sunt în general asociate cu problema cititorilor/scriitorilor? 6.1 Dați exemple de resurse reutilizabile și consumabile. 6.2 Care sunt trei condiții care trebuie să fie prezente pentru ca blocajul (deadlock) să fie posibil? 6.3 Care sunt cele patru condiții care creează blocaj? 6.4 Cum poate fi prevenită condiția hold-and-wait? 6.5 Enumerați două căi prin care poate fi prevenită condiția fără suspendare (no-preemption). 6.6 Cum poate fi prevenită condiția de așteptare circulară (circular wait condition)? 6.7 Care este diferența între evitarea, detecția și prevenirea blocajului (deadlock)? 7.1 Ce cerințe intenționează să satisfacă managementul memoriei? 7.2 De ce este necesară capabilitatea de a reloca procesele dorite? 7.3 De ce nu este posibil de a forța protecția memoriei pe durata compilării? 7.4 Care sunt unele dintre motivele de a permite ca două sau mai multe procese că să aibă acces la o

regiunea anume de memorie? 7.5 Care sunt avantajele de a utiliza partiții de mărime inegală atunci când se folosește o schemă cu partiții

fixe? 7.6 Care este diferența între fragmentarea internă și fragmentarea externă? 7.7 Care sunt distincțiile între adresarea logică, relativă și fizică? 7.8 Care este diferența între pagină și cadru? 7.9 Care este diferența între pagină și segment? 8.1 Care este diferența între paginarea simplă și paginarea memoriei virtuale? 8.2 Explicați ce este thrashing. 8.3 De ce este principiul localității crucial pentru utilizarea memoriei principale? 8.4 Ce elemente se găsesc în mod tipic într-o intrare dintr-o tabelă cu pagini? Descrieți pe scurt fiecare

element. 8.5 Care este scopul bufferului de translatare anticipată (translation lookaside buffer)? 8.6 Descrieți succint politicile alternative de extragere a unei pagini. 8.7 Care este diferență între politicile de gestiune cu set rezident (resident set management) și de înlocuire

a paginilor (page replacement policy)? 8.8 Care este relația între algoritmii FIFO și cel de înlocuire în sensul acelor de ceasornic (clock page

replacement algorithms)? 8.9 Ce se înțelege prin bufferarea paginilor? 8.10 De ce nu este posibilă combinarea unei politici globale de înlocuire cu o politică ce utilizează alocarea

fixă? 8.11 Care este diferență între un set rezident și un set de lucru (working set)? 8.12 Care este diferența între ștergerea la cerere și pre-ștergerea (precleaning)?