Sunteți pe pagina 1din 11

2.5.

Contextul de execuie, sau de stat proces, este de date interne prin care sistemul de operare este capabil de a supraveghea i controla procesul. Aceast informaie intern este separat din proces, deoarece OS are informaii interzise la proces. Contextul include toate informaiile de care sistemul de operare are nevoie pentru a gestiona procesul i c procesorul are nevoie pentru a executa procesul, inclusiv n mod corespunztor: coninutul diferitelor registre procesor, cum ar fi contorul programului i registrele de date i informaii de utilizare a sistemului de operare, cum ar fi prioritatea procesului i dac procesul este n ateptare pentru finalizarea unui anumit eveniment I / O. 2.6 Principalele cinci responsabiliti de management de stocare : Procesul de izolare :sistem de operare trebuie s mpiedice procese independente de interferen cu memoria celuilalt , att de date i instruciuni . 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 preocuprile referitoare la limitri de memorie , iar sistemul de operare se poate obine 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 . protecia i controlul accesului : Schimbul de memorie , la orice nivel de memorie ierarhie , creeaz potenialul pentru un program pentru a aborda spaiul de memorie de altul. Acest lucru este de dorit atunci cnd partajarea este nevoie de aplicaii specifice . n alte momente , ea amenin integritatea programelor i chiar a sistemului de operare n sine . Sistemul de operare trebuie s permit poriuni de memorie pentru a fi accesibile n diferite moduri de diveri utilizatori . Depozitarea pe termen lung : Multe programe necesit mijloace de stocare Informaii pentru perioade lungi de timp , dup ce calculatorul a fost alimentat n jos . 2.7 De obicei, sisteme de operare ndeplineasc aceste cerine de memorie virtual i faciliti de sistemul de fiiere. Sistemul de fiiere pune n aplicare un magazin pe termen lung, cu informaii stocate ntr denumite obiecte, numite fiiere. Fiierul este un concept convenabil pentru programator i este o unitate de util de control al accesului i de protecie pentru sistemul de operare. Memoria virtual este o facilitate care permite programe pentru a aborda de memorie de la un punct de vedere logic, indiferent de cantitatea de memorie principal punct de vedere fizic disponibil. Memorie virtual a fost conceput pentru a satisface cerina de a avea multiple Locuri de munca utilizator locuiesc n memoria principal n acelai 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 inch Depozitarea format din direct adresabile (de instruciuni main) memorie principal i memorie auxiliar inferior de vitez, care este accesat indirect prin blocuri de ncrcare n memoria principal. Adresa hardware traducere (unitate de management al memoriei) este interpus ntre procesor i memorie. Programe de locaii de referin utiliznd adrese 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 coninutului de memoria real este schimbat de la memorie auxiliar i blocul dorit de date este schimbat inch n aceast activitate, procesul care a generat de referinta adresa trebuie suspendat. Sistemul de operare proiectantul trebuie s dezvolte un mecanism de translatare de adrese care genereaz puin deasupra capului i o politic de alocare de stocare care minimizeaz traficul ntre nivelurile de memorie. 2.8 . Este pn la planificator pe termen scurt , sau dispecer , pentru a alege unul . O strategie comun este de a oferi fiecrui proces n coada de ateptare un moment dat , la rndul su , aceasta este menionat ca o tehnica round-robin . De fapt , tehnica round-robin are o coad circular . O alt strategie este de a atribui nivele de prioritate pentru diferitele procese , cu programatorul procesele de selecie n ordinea de prioritate .

Coada pe termen lung este o list de noi locuri de munc n ateptare pentru a folosi procesorul . OS adaug locuri de munc n sistemul de transferul unui proces de coada pe termen lung a coada pe termen scurt . La acea vreme , o poriune din memoria principal trebuie s fie alocate aprocesului de intrare . Astfel , sistemul de operare trebuie s fie sigur c nu a supra memorie sau timpul de prelucrare prin admisie prea multe procese lasistem . acolo este o coada I / O pentru fiecare dispozitiv I / O . Mai mult de un proces poate solicitautilizarea n acelai I / O dispozitiv . Toate procesele de ateptare pentru a utiliza fiecare dispozitiv sunt aliniate n care coada aparatului . Din nou , sistemul de operare trebuie s determine care procesul s atribuie un disponibil I / O dispozitiv . 2.9 Cele mai multe sisteme de operare , pn de curnd , a prezentat un nucleu mare monolit . Cele mai multe din ceea ce se crede a fi funcia de sistem de operare este prevzut n aceste boabe mari , inclusiv de planificare , sistemul de fiiere , de reea , driverele de dispozitive , gestionarea memoriei , i mai mult . De obicei , un nucleu monolitic este implementat ca un singur proces , cu toate elementele mpart acelai spaiu de adrese . O arhitectur microkernel atribuie doar cteva funcii eseniale pentru kernel, inclusiv spaiile adresa , intre-procese comunicare ( IPC ) , i programarea de baz . Alte servicii OS sunt furnizate de ctre proceselor , uneori numite servere , care ruleaz n modul utilizator i sunt tratate ca orice alte cereri de microkernel . Aceast abordare kernel i server detaeaz dezvoltare . Serverele pot fi personalizate pentru aplicaii specifice sau de mediu cerine . Abordarea microkernel simplific implementarea , ofer flexibilitate , i este bine adaptate la un mediu distribuit . n esen , un microkernel interacioneaz cu procesele de servere locale i de la distan n acelai fel , facilitarea de construcie de sisteme distribuite . 2.10 Multithreading este o tehnic n care un proces , o cerere de executare , este mprit n fire care pot rula simultan . Putem face urmtoarea distincie : Subiect : O unitate dispecerizabil de lucru . Acesta include un procesor de context ( care include programul de combatere i indicatorul de stiv ) i propria sa zon de date pentru o stiv ( pentru a permite subrutina ramificare ) . Un fir execut secvenial i este ntreruptibil , astfel nct procesorul poate transforma ntr-un alt fir . Procesul de : O colecie de unul sau mai multe fire i resursele sistemului asociate ( cum ar fi de memorie care conine att cod i date , fiierele deschise i dispozitive ) . acest corespunde ndeaproape cu conceptul de un program n execuie . de rupere o singur cerere n mai multe fire , programator are un control mare pe modularitate de aplicare i calendarul de aplicare legate de evenimente . Multithreading este util pentru aplicaii care realizeaz un numr de esen activiti independente, care nu trebuie s fie serializat . Un exemplu este un server de baze de date care ascult i pentru procesele numeroase cereri client . Cu mai multe fire de funcionare n cadrul aceluiai proces , de comutare nainte i napoi ntre fire implic aeriene de procesor mai puin de un comutator proces major ntre procese diferite . 2.11 Multiprocesare simetric (SMP) este un termen care se refer la un hardware Arhitectura (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 tot procesoare. Multithreading i lapte praf degresat sunt adesea discutate mpreun, dar cele dou sunt instalaiilor independente. Chiar i pe un sistem uniprocesor, multithreading este util pentru structurare aplicaii i procese de kernel. Un sistem SMP este util chiar i pentru procesele nonthreaded, deoarece mai multe procese pot rula n paralel. Cu toate acestea, dou instalaii se completeaz reciproc i pot fi folosite n mod eficient mpreun. O caracteristic atractiv a unui SMP este c existena mai multor procesoare este transparent pentru utilizator. Sistemul de operare are grija de programare de fire sau procese pe procesoare individuale i de sincronizare ntre procesoare. SMP are un numr de poteniale avantaje fa de arhitectura uniprocesor , inclusiv urmtoarele : Performan : n cazul n care locul de munc s fie fcut de ctre un calculator poate fi organizat astfel nct

unele poriuni ale lucrrii se poate face n paralel , apoi un sistem cu multiple procesoare va produce o performan mai mare dect unul cu un singur procesor de acelai tip . Acest lucru este ilustrat n figura 2.12 . Cu multiprogramming , numai un proces poate executa la un moment dat , ntre timp, toate celelalte procese sunt n ateptare pentruprocesor . Cu multiprocesare , mai mult de un proces pot fi difuzate simultan , fiecare pe un procesor diferit . Disponibilitate : ntr- un simetric multiprocesor , deoarece toate procesoarele pot efectua aceleai funcii , eecul de un singur procesor nu se opreasc sistem . n schimb ,sistemul poate continua s funcioneze la performan redus . Creterea incremental : Un utilizator poate mbunti performana unui sistem prin adugarea un procesor suplimentar . Scalarea : Furnizorii pot oferi o gam de produse cu pre i performan diferite caracteristici bazate penumrul de procesoare configurate n sistem . Este important de remarcat faptul c acestea sunt potenial , mai degrab dect garantat , beneficii . OS trebuie s ofere instrumente i funcii pentru a exploata paralelismul ntr-un sistem SMP . 3.1 Putem caracteriza comportamentul unui proces individual de listare secven de instruciuni care se execut pentru acest proces. Aceast list s fie menionat ca un trasor de proces. Putem caracteriza comportamentul procesorului artnd cum sunt intercalate urmele diferitelor procese. 3.2 Ca un alt exemplu, un proces de sistem (de exemplu, server de imprimare, server de fiiere), poate genera un nou proces pentru fiecare solicita ca aceasta manipuleaz. n cazul n care sistemul de operare creeaz un proces, la cererea explicit a un alt proces, aciunea este menionat ca process spawning . Cnd un proces de icre altul, fostul este menionat ca parent process proces, iar procesul dat natere este menionat ca procesul child process. De obicei, Procese "legate de" necesitatea de a comunica i de a coopera ntre ele 3.3 Figura 3.6 indic tipurile de evenimente care duc la fiecare tranziie de stat pentru o proces; posibilelor tranziii sunt dup cum urmeaz : Null : Nou : Un nou proces este creat pentru a executa un program . Acest eveniment are loc pentru oricare dintre motivele enumerate n tabelul 3.1 . Nou : Gata :OS se va muta un proces de statul New la Ready precizeze dac este pregtit s-i asume un proces suplimentar . Cele mai multe sisteme stabilite unele limite n funcie de numrul de procese existente saucantitatea de virtuale memorie angajamentul de a proceselor existente . Aceast limit asigur c nu exist att de multe procese active, astfel cum a degrada performana . Gata : Rularea : Cnd este timpul pentru a selecta un proces pentru a rula , sistemul de operare alege unul dintre procesele n starea READY . Aceasta este de locuri de munc de programatorul sau dispecer . Programarea este explorat n partea a patra . Rularea : Exit :proces care ruleaz n prezent este reziliat de ctre sistemul de operare n cazul n care proces indic faptul c sa terminat , sau n cazul n care se intrerupe . Vezi Tabelul 3.2 . Rularea : Gata : Cel mai frecvent motiv pentru aceast tranziie este faptul c Procesul de funcionare a atins timpul maxim admisibil pentru nentrerupt execuie , aproape toate sistemele de operare Multiprogramare impune acest tip de de timp disciplin . Exist mai multe alte cauze alternative pentru aceast tranziie , 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 diferite proceselor . Rularea : blocat : Un proces este pus n starea blocat dac solicit ceva pentru care aceasta trebuie s atepte . O cerere deoperare este, de obicei , sub forma unui apel de serviciu de sistem , care este , un apel de la programul de funcionare a unei proceduri , care este parte din codul sistemului de operare . De exemplu , un proces poate solicita un serviciu desistem de operare care sistemul de operare nu este pregtit pentru a efectua imediat . ea poate solicita o resurs , cum ar fi un fiier sau o seciune partajat de memorie virtual , care nu este disponibil imediat . Sauprocesul poate iniia o aciune , cum ar ca o operaiune de I / O , care trebuie s fie finalizate nainte de procesul poate continua .

Cnd procesele comunica ntre ele , un proces poate fi blocat atunci cnd este n ateptare pentru un alt proces de a furniza date sau de ateptare pentru un mesaj dintr-un alt proces . Blocat : Ready : Un proces n stare blocat este mutat la starea Ready cndevenimentul pentru care a fost de ateptare apare . Gata : Ieire : Pentru claritate , aceast tranziie nu este prezentat pe diagrama de stare . n unele sisteme , o mam poate termina procesul unui copil , n orice moment . De asemenea , dac un printe nceteaz , toate procesele copilului asociate cu care printele poate fi reziliat . Blocat : Iesire : comentariile de sub elementul precedent se aplic . 3.4 n primul rnd , s ne considerm sistemul ntrerupe . De fapt , putem distinge , ct mai multe Sistemele se , dou tipuri de sistemul ntrerupe , dintre care unul este pur i simplu menionat ca o ntrerupe , iarcellalt ca o capcan . Fosta se datoreaz un fel de eveniment care este extern i independent deproces care ruleaz n prezent , cum ar ficompletarea a unei operaiuni I / O . Acesta din urm se refer la o eroare sau condiie excepie generat n cadrul procesului de funcionare n prezent , cum ar fi un acces la dosar ncercare ilegal . cu o ntrerupere ordinar , controlul este mai nti transferat la o tratare a ntreruperii , care face unele menaj de baz i apoi ramuri pentru o rutina de sistem de operare , care este n cauz cu un anumit tip de ntrerupere , care a avut loc . Exemplele includ urmtoarele : Ceas de ntrerupere :OS determin dac procesul ruleaz n prezent a fost de executare pentruunitatea de timp maxim admisibil , menionat ca o timp felie . C este , o felie de timp este suma maxim de timp n care un proces poate executa nainte de a fi ntrerupt . Dac este aa , acest proces trebuie s fie trecut la un Starea Ready i un alt proces expediate . I / O ntrerup :OS determin ceea ce sa ntmplat aciune I / O . n cazul n care I / O aciune constituie un eveniment pentru care unul sau mai multe procese sunt n ateptare , apoiOS mut toate procesele corespunztoare blocate laReady de stat ( blocai i / Suspendare procese la starea Ready / Suspendare ) . Sistemul de operare trebuie s decid apoi dac s reia executarea procesului n prezent n starea de funcionare sau s previn acest proces pentru un Ready prioritate mai mare proces . defect Memorie :procesor ntlnete o adres de referinta memorie virtual pentru un cuvnt care nu este n memoria principal . OS trebuie s aduc nbloc ( pagina sau segment ) de memorie care conine trimitere la memoria secundar la memoria principal . Dup ce cererea I / O este emis pentru a aduce n blocul de memorie ,procesul cudefect de memorie este plasat ntr -o stare blocat ; OS efectueaz apoi un comutator proces pentru a relua executarea de un alt proces . Dupblocul dorit este adus n memorie , acest proces este plasat n Starea Ready . Cu o capcan , sistemul de operare determin dac situaia de eroare sau excepie este fatal . Dac este aa , atunci procesul care ruleaz n prezent este mutat n statul Exit i un proces comutator apare . Dac nu , atunciaciunea deOS va depinde denatura eroarea i de proiectare a sistemului de operare . Se poate ncerca unele proceduri de recuperare sau notifica simpluutilizator . Se poate face un comutator proces sau reluan curs de desfurare proces . 3.5 O alt soluie este swapping, care implic o parte sau toate mutarea unui proces din memoria principal de disc. Atunci cnd nici unul din procesele din memoria principal este n Starea Ready, a swap OS unul dintre procesele blocate pe de disc ntr-o suspendare coada. Aceasta este o coad a proceselor existente, care au fost lovite temporar din memoria principal, sau suspendate. Sistemul de operare apoi aduce ntr-un alt proces de suspenda coad, sau onoreaz o cerere nou-proces. Executarea apoi continu cu procesul de nou venit. Swapping, cu toate acestea, este o operaie I / O, i, prin urmare, exist potenialul pentru a face problema mai ru, nu mai bine. Dar deoarece disc I / O este n general cel mai rapid I / O pe un sistem (de exemplu, n comparaie cu band sau imprimanta I / O), schimbarea va fi, de obicei, mbunti performanele.

3.6 S ne uitm acum , n figura 3.9b , la model de tranziie de stat pe care le avem dezvoltat . ( Liniile punctate dinfigur indic posibile , dar nu este necesar tranziii . ) Noi tranziii importante sunt urmtoarele : Blocat : Blocat / Suspendare : Dac nu exist procese gata , atunci cel puin Procesul de unul blocat este schimbat pentru a face loc pentru un alt proces care nu este blocat . Aceast tranziie poate fi fcut chiar dac exist procese gata disponibile , dac sistemul de operare stabilete cprocesele curente sau o gata proces care ar dori sa o expediem necesit mai mult memorie principal de a menine de performan adecvate . Blocat / Suspendare : Gata / Suspendare : Un proces n stare blocate / Suspendare este mutat la starea Ready / Suspendare atunci cnd evenimentul pentru care a fost ateptare apare . Reinei c acest lucru necesit ca informaiile cu privire la starea procesele suspendate trebuie s fie accesibile pentru sistemul de operare . Pregtit / Suspend : Gata : Atunci cnd nu exist procese gata n memoria principal , sistemul de operare va trebui s aduc o pentru a continua execuia . n plus , acesta ar putea fi cazul n care un proces n starea Ready / Suspendare are prioritate mai mare dect oricare dintre procesele n starea READY . n acest caz , proiectantul sistemului de operare poate dicta c este mult mai important pentru a obine de la procesul cu prioritate mai mare dect a minimiza schimbarea . Gata : Gata / Suspend : n mod normal , sistemul de operare ar prefera s suspende o proces , mai degrab dect unul gata blocat , deoareceprocesul poate acum gata fie executat , ntruct procesul blocat este de a lua spaiu de memorie principal i nu poate fi executat . Cu toate acestea , poate fi necesar s suspende o gata Procesul n cazul n care este singura modalitate de a elibera un bloc suficient de mare de principal memorie . De asemenea , sistemul de operare poate alege pentru a suspenda un proces de prioritate mai mic gata mai degrab dect un proces cu prioritate mai mare blocat n cazul n care consider cblocat Procesul va fi gata n curnd . 3.7 Tabelul 3.3 enumer cteva motive pentru suspendarea unui proces . Un motiv pentru care am discutat este de a oferi spaiu de memorie , fie pentru a aduce ntr- un Ready / suspendat prelucra sau pentru a cretememoria alocat alte procese Ready . Sistemul de operare poate au alte motivaii pentru suspendarea unui proces . De exemplu , un audit sau de urmrire Procedeul poate fi folosit pentru a monitoriza activitatea de pesistemul ;procesul poate fi 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 sens este impas , care este discutat n capitolul 6 . Ca un alt exemplu , o problem este detectat pe o linie de comunicaii , iaroperatorul areOS suspendaprocesul care utilizeaz linia n timp ce unele teste sunt rulate . Un alt set de motive se refer la aciunile unui utilizator interactiv . De exemplu , dac un utilizator suspecteaz o eroare n program , el sau ea poate depana programul de suspendarea executarea 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 msur pentru a porni i opri . Considerente de timp poate duce de asemenea la o decizie schimbarea . De exemplu , dac un proces este de a fi activat periodic dar nu este folosit cele mai multe ori , atunci ar trebui s fie schimbat n ntre utilizri . Un program care monitorizeaz activitatea de utilizare sau utilizator este un exemplu . n cele din urm , un proces printe poate dori s suspende un proces descendent . De exemplu ,

Un proces poate da natere la procesul B pentru a efectua un fiier citit . Ulterior , procesul B ntlnete o eroare n dosarul procedurii de citit i raporteaz acest lucru pentru a procesa A. Procesul Un proces suspend B a investiga cauza . n toate aceste cazuri ,activarea unui proces suspendat este solicitat de Agentul care a solicitat iniialsuspendare . 3.8 Tabele de memorie sunt utilizate pentru a urmri att principal (real) i secundar (virtual) de memorie. Unele din memoria principal este rezervat pentru utilizare de ctre sistemul de operare; restul este disponibil pentru utilizare de ctre procese. Procesele sunt meninute pe secundar de memorie utiliznd un fel de memorie virtual sau mecanism simplu swapping. tabele de memorie trebuie s includ urmtoarele informaii: alocarea de memorie principal a proceselor Alocarea memoriei secundare la procese Atribute de protecie de blocuri de memorie principal sau virtuale, cum ar fi care procese pot accesa anumite zone de memorie partajat orice informaii necesare pentru gestionarea memoriei virtuale Sistemul de operare poate menine, de asemenea, tabele de fiiere. Mai mult, dac nu toate, aceste informaii pot fi ntreinute i folosite de un sistem de gestionare a fiierelor, n cazul n care sistemul de operare are puin sau deloc cunostinte de fiiere. n alte sisteme de operare, o mare parte din detaliile de gestionare a fiierelor este gestionat de sistemul de operare n sine. 3.9 n cele din urm , sistemul de operare trebuie s menin tabele de proces pentru a gestiona procesele . Restul de aceast seciune este dedicat o examinare a procesului de necesare tabele . nainte de a trece la aceast discuie , trebuie s se fac dou puncte suplimentare . n primul rnd , dei 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 , i fiierele sunt gestionate n numele proceselor , deci trebuie s existe o referire la aceste resurse , direct sau indirect , n tabelele de proces . Fiierele menionate n dosar Tabelele sunt accesibile prin intermediul unui dispozitiv de I / O i va la unele momente , fie , n principal sau virtuale memorie . Tabelele de sine trebuie s fie accesibile de ctre sistemul de operare i , prin urmare, sunt supuse de gestionare a memoriei . n al doilea rnd , cum sistemul de operare tie pentru a crea tabelele n primul rnd ? n mod clar , sistemul de operare trebuie s aib cunotine de baz mediu , cum ar fi ct de mult principal exist memorie , care sunt dispozitive I / O i care sunt identificatori lor , i aa mai departe . acest este o problem de configurare . Care este , atunci cndsistemul de operare este iniializat , acesta trebuie s aib acces la unele date de configurare care definesc mediul de baz , iar aceste date trebuie s fie a creat n afara sistemului de operare , cu asisten uman sau de un software de configurare automat . 3.10 nainte de a continua cu discuia noastr a modului n care sistemul de operare gestioneaz procesele, avem nevoie pentru a distinge ntre modul de executare procesorului n mod normal asociat cu sistemul de operare i care n mod normal asociate cu programe pentru utilizator. cele mai multe procesoare sprijini cel puin dou moduri de execuie. Anumite instruciuni poate doar s fie executate n mod mai-privilegiat. Acestea ar include citirea sau modificarea un registru de control, cum ar fi cuvntul de stare programului; I / O instruciuni primitive; i instruciuni care se refer la managementul memoriei. n plus, anumite regiuni ale memorie pot fi accesate numai n modul mai-privilegiat. Modul puin privilegiat este adesea menionat ca modul de utilizare, deoarece utilizatorul Programele de obicei, s-ar executa n acest mod. Modul mai-privilegiat este menionat n continuare modul de sistem, modul de control, sau modul nucleu. Acest ultim termen se refer la nucleu al sistemului de operare, care este acea parte a sistemului de operare, care cuprinde importante funciilor sistemului. 3.11 Odat ce sistemul de operare decide , indiferent de motiv ( tabelul 3.1 ) , pentru a crea un nou proces ,

se poate proceda astfel: 1 . Atribuie un identificator unic proces de noul proces . n acest moment , o nou intrare se adaug n tabel procesul primar , care conine cte o intrare pentru fiecare proces . 2 . Aloca spaiu pentru procesul . Aceasta include toate elementeleimaginii procesului . Astfel , sistemul de operare trebuie s tie ct de mult este nevoie de spaiu pentru adresa de utilizator privat spaiu ( programe i date ) istiva utilizator . Aceste valori pot fi atribuite de ctre implicit n funcie de tipul de proces , sau ele pot fi stabilite n funcie de cererea utilizatorului n timp crearea de locuri de munc . Dac un proces este generat de un alt proces ,printe Procesul poate trece valorile necesare pentruOS ca parte aprocesului de creare cerere . n cazul n care orice spaiu de adrese existente s fie mprtit de acest nou proces , legturile corespunztoare trebuie s fie configurat . n cele din urm , spaiu pentru un bloc de control al procesului trebuie s fie alocate . 3 . Initializeaza blocul de control al procesului . Poriunea de identificare a procesului conine ID al acestui proces , plus alte ID-uri adecvate , cum ar fi cea de-mam proces . Procesorul stat parte informaii vor fi de obicei iniializat cu cele mai multe intrri la zero , cu excepia programului contor ( setat la program punct de intrare ) i sistemul de indicii stiv ( setat s defineasc limitele stiva de proces ) . De control al procesului Partea informaii este iniializat bazeaz pe standardul Valorile implicite plus atributele care au fost solicitate pentru acest proces . pentru de exemplu , statul procesul ar fi de obicei iniializat la Ready sau Ready / Suspendare . Prioritatea poate fi setat n mod implicit la cea mai mic prioritate excepia cazului n care un cererea expres este fcut pentru o prioritate mai mare . Iniial , procesul poate s dein nici resurse ( dispozitive I / O , fiiere ), dac nu exist o cerere explicit de acestea sau cu excepia cazului n care acestea sunt motenite de la mama . 4 . Stabilit legturile necesare . De exemplu , n cazul n care sistemul de operare menine fiecare programarea coada ca o lista inlantuita , atunci noul proces trebuie s fie pus n Ready sau Pregtit / Suspend lista . 5 . Crearea sau extinderea altor structuri de date . De exemplu ,sistemul de operare poate menine un fiier de contabilitate pe fiecare proces s fie utilizate ulterior pentru facturare i / sau scopuri de evaluare a performanei . 3.12 n primul rnd , s ne considerm sistemul ntrerupe . De fapt , putem distinge , ct mai multe Sistemele se , dou tipuri de sistemul ntrerupe , dintre care unul este pur i simplu menionat ca o ntrerupe , iarcellalt ca o capcan . Fosta se datoreaz un fel de eveniment care este extern i independent deproces care ruleaz n prezent , cum ar ficompletarea a unei operaiuni I / O . Acesta din urm se refer la o eroare sau condiie excepie generat n cadrul procesului de funcionare n prezent , cum ar fi un acces la dosar ncercare ilegal . cu o ntrerupere ordinar , controlul este mai nti transferat la o tratare a ntreruperii , care face unele menaj de baz i apoi ramuri pentru o rutina de sistem de operare , care este n cauz cu un anumit tip de ntrerupere , care a avut loc . Exemplele includ urmtoarele : Ceas de ntrerupere :OS determin dac procesul ruleaz n prezent a fost de executare pentruunitatea de timp maxim admisibil , menionat ca o timp felie . C este , o felie de timp este suma maxim de timp n care un proces poate executa nainte de a fi ntrerupt . Dac este aa , acest proces trebuie s fie trecut la un Starea Ready i un alt proces expediate . I / O ntrerup :OS determin ceea ce sa ntmplat aciune I / O . n cazul n care I / O aciune constituie un eveniment pentru care unul sau mai multe procese sunt n ateptare , apoiOS mut toate procesele corespunztoare blocate laReady de stat ( blocai i / Suspendare procese la starea Ready / Suspendare ) . Sistemul de operare trebuie s decid apoi dac s reia executarea procesului n prezent n starea de funcionare sau s previn acest proces pentru un Ready prioritate mai mare proces . defect Memorie :procesor ntlnete o adres de referinta memorie virtual

pentru un cuvnt care nu este n memoria principal . OS trebuie s aduc nbloc ( pagina sau segment ) de memorie care conine trimitere la memoria secundar la memoria principal . Dup ce cererea I / O este emis pentru a aduce n blocul de memorie ,procesul cudefect de memorie este plasat ntr -o stare blocat ; OS efectueaz apoi un comutator proces pentru a relua executarea de un alt proces . Dupblocul dorit este adus n memorie , acest proces este plasat n Starea Ready . Cu o capcan , sistemul de operare determin dac situaia de eroare sau excepie este fatal . Dac este aa , atunci procesul care ruleaz n prezent este mutat n statul Exit i un proces comutator apare . Dac nu , atunciaciunea deOS va depinde denatura eroarea i de proiectare a sistemului de operare . Se poate ncerca unele proceduri de recuperare sau notifica simpluutilizator . Se poate face un comutator proces sau reluan curs de desfurare proces . 3.13 n capitolul 1 , am discutat despre includerea unei etape de ntrerupere ca parte aciclului de instruciuni. Amintii-v c , n etapa de ntrerupere , procesorul verific pentru a vedea dac exist ntreruperile sunt n curs , indicate prinprezena unui semnal de ntrerupere . Dac nu ntrerupe sunt n curs , procesorul trece la etapa descrca i extrage urmtoarea instruciune a programului actual n procesul de curent . Dac o ntrerupere este ateptarea ,procesorul efectueaz urmtoarele : 1 . Aceasta stabilete programul n contradicie cu adresa de nceput a unei rutine de ntrerupere programul . 2 . Se trece de la modul de utilizare n modul kernel , astfel nct procesul de ntrerupere Codul poate include instructiuni privilegiate . Procesorul trece laetapa aduc i preiaprimei instruciuni de programul de tratare a ntreruperii , care va deservintrerupere . La acest punct , de obicei , contextul procesului care a fost ntrerupt este stocat n acest proces Blocul de control alprogramului ntrerupt . O ntrebare care pot aprea acum pentru tine este , ce constituie contextul n care este salvat ? Rspunsul este c acesta trebuie s includ orice informaii care pot fi modificate prin executarea de tratare a ntreruperii i care vor fi necesare pentru a relua programul care a fost ntrerupt . Astfel ,poriunea deblocul de control al procesului , care a fost denumit n continuare informaii de stare procesorul trebuie s fie salvate . Aceasta includeprogramul contra , alte registre procesor , i informaii stiv. Are nevoie s fie fcut altceva ? Asta depinde de ceea ce se ntmpl n continuare . de tratare a ntreruperii este de obicei un program de scurt, care ndeplinete cteva sarcini de baz legate la o ntrerupere . De exemplu , se reseteaz de pavilion sau indicator care semnaleaza prezenta de o ntrerupere . Se poate trimite o confirmare a entitii care a emis ntrerupere , cum ar fi un modul de I / O . i -ar putea face unele menaj de baz referitoare la efectele evenimentului care a cauzat ntreruperea . De exemplu , dacse refer ntrerupere la un eveniment I / O , rutina de tratare a ntreruperii va verifica pentru o stare de eroare . n cazul n care o eroare a avut loc , rutina de tratare a ntreruperii poate trimite un semnal la procesul care iniial a solicitat operaie I / O . n cazul n care ntreruperea este de ceas , apoihandler va controlul predea la dispecerat , care vor dori s treac de control pentru un alt proces deoarece felie de timp alocat pentru procesul de funcionare n prezent a expirat . Ce zici dealte informaii din blocul de control al procesului ? Dac aceast ntrerupere trebuie s fie urmat de o trecere la un alt proces , atunci ceva de lucru va trebui s fie fcut . Totui , n cele mai multe sisteme de operare ,apariia unei ntreruperi nu nseamn neaprat un comutator proces . Este posibil ca , dup ce handler de ntrerupere a executat ,proces care ruleaz n prezent va relua execuia . n acest caz , tot ce este necesar este de a salva informaiile de stat procesor atunci cndapare i ntrerup restaura aceste informaii atunci cnd controlul este returnat la programul care a fost difuzate . De obicei , funciile Salvarea i restaurarea sunt efectuate n hardware . 3.14 Este clar , deci , c comutatorul de mod este un concept

distinct de cea acomutatorului procesului . 10 Un comutator poate avea loc fr schimbarea strii a procesului , care este n prezent n stare de alergare . n acest caz , de economisire context i, ulterior, Restabilire implica puin 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 schimbri substaniale n mediul su . Paii implicai ntr -un comutator plin proces sunt urmtoarele : 1 . Salvacontextulprocesorului , inclusiv contor program i alte registre . 2 . Actualizaiblocul de control al procesului deproces , care este n prezent n Rularea de stat . Aceasta include schimbareastrii procesului la una dintre alte state ( Ready , blocate , Ready / Suspend sau Ieire ) . Alte domenii relevante De asemenea, trebuie actualizate , inclusiv motivul pentru care a plecat de stat de funcionare i informaiilor contabile . 3 . Mutai blocul de control al procesului de acest proces n coada corespunztoare ( Gata, blocate pe Event I ; Pregtit / Suspendare ) . 4 . Selectai un alt proces de executare , acest subiect este analizat n partea a patra . 5 . Actualizaiblocul de control al procesului deproces selectate . Aceasta include modificarea starea acestui proces de alergare . 6 . Actualizare structuri de date de management al memoriei . Acest lucru poate fi necesar , n funcie la 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 momentul Procesul a fost selectat ultima pornit din starea de alergare , de ncrcare n valorile anterioare ale programului contra i alte registre . Astfel ,comutatorul proces , care implic o schimbare de stare , necesit efort mai mult dect un comutator .

1.1. Enumerai i definii pe scurt cele patru elemente principale ale unui calculator.. 1.2. Definii cele dou categorii principale de regitri procesor. 1.3. Care sunt, n termeni generali, cele patru aciuni distincte pe care le pot specifica instruciunile 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 diferena ntre un sistem multimicroprocesor i unul multinucleu? 1.9. Care este distincia ntre localizarea spaial i cea temporal? 1.10. In general, care sunt strategiile pentru a exploata localitatea spaial i cea temporal? 2.1 Care sunt trei dintre obiectivele proiectrii 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 execuie a unui proces utilizat de ctre sistemul de operare OS? 2.6.Enumerai i explicai pe scurt cinci responsabiliti ale gestiunii sistemului de memorare ale unui SO tipic. 2.7 Explicai distincia dintre o adres real i o adres virtual. 2.8 Descriei tehnica de planificare de tip round robin. 2.9 Explicai diferena dintre un nucleu monolitic li un microkernel. 2.10 Ce este multithreading (fire de execuie multiple)? 2.11 Enumerai facilitile cheie ale proiectrii unui sistem de operare SMP (Multiprocesor Simetric). 3.1 Ce este un trasor (trace) de instruciuni? 3.2 Care sunt evenimentele cele mai cunoscute care conduc la crearea unui proces? 3.3 Pentru modelul de procesare din Fig. 3.6 , definii pe scurt fiecare stare. 3.4 Ce nseamn ntreruperea (suspendarea) unui proces - What does it mean to preempt a process? 3.5 Ce se nelege prin swapping (comutarea a dou procese n memorie) i care este scopul acestuia 3.6 De ce sunt dou stri blocate n figura Fig. 3.9b? 3.7 Enunai patru caracteristici ale unui proces suspendat. 3.8 Pentru ce tipuri de entiti SO menine tabele cu informaii pentru management? 3.9 Enunai trei categorii generale de informaii dintr-un bloc de control al procesului. 3.10 De ce sunt necesare dou moduri de lucru (utilizator i kernel)? 3.11 Care sunt paii realizai de un SO pentru a crea un nou proces? 3.12 Care este diferena ntre o ntrerupere i o capcan (trap)? 3.13 Dai trei exemple de ntreruperi. 3.14 Care este diferena ntre comutarea ntre moduri i comutarea ntre procese? 4.1 Tabelul 3.5 prezint elementele tipice care se regsesc ntr-un bloc de control al procesului pentru un SO fr fire de execuie. Dintre acestea, care pot aparine unui bloc de control al firului de execuie i care pot s aparin unui bloc de control al procesului ntr-un sistem cu fire multiple de execuie. 4.2 Enumerai motivele pentru care o comutare de mod ntre firele de execuie poate fi mai rapid dect o comutare de moduri ntre procese. 4.3 Care sunt cele dou caracteristici separate i potenial independente nglobate n conceptul de proces? 4.4 Dai patru exemple generale de utilizare a firelor de execuie ntr-un sistem cu multiprocesare i un singur utilizator. 4.5 Care sunt resursele tipice partajate de toate firele de execuie ale unui proces? 4.6 Enumerai trei avantaje ale utilizrii ULT-urilor n raport cu KLT-urile. 4.7 Enumerai dou dezavantaje ale ULT-urilor n raport cu KLT-urile. 4.8 Definii jacketing-ul. 5.1 Enumerai patru caracteristici care fac relevant conceptul de concuren. 5.2 Care sunt cele trei contexte n care apare concurena? 5.3 Care este cerina de baz pentru execuia proceselor concurente? 5.4 Enumerai trei grade de contientizare ntre procese i definiiile pe scurt pe fiecare. 5.5 Care este diferena ntre procesele competitive i procesele cooperative? 5.6 Enumerai trei probleme de control asociate cu procesele competitive li definiiile pe scurt pe fiecare.

5.7 Enumerai cerinele pentru excluderea mutual. 5.8 Ce operaii trebuie realizate pe un semafor? 5.9 Care este diferena ntre semafoarele binare i cele generale? 5.10 Care este diferena ntre semafoarele puternice i cele slabe? 5.11 Ce este un monitor? 5.12 Care este distincia ntre mesajele cu blocare i fr blocare? 5.13 Ce condiii sunt n general asociate cu problema cititorilor/scriitorilor? 6.1 Dai exemple de resurse reutilizabile i consumabile. 6.2 Care sunt trei condiii care trebuie s fie prezente pentru ca blocajul (deadlock) s fie posibil ? 6.3 Care sunt cele patru condiii care creeaz blocaj? 6.4 Cum poate fi prevenit condiia hold-and-wait? 6.5 Enumerai dou ci prin care poate fi prevenit condiia fr suspendare (no-preemption). 6.6 Cum poate fi prevenit condiia de ateptare circular (circular wait condition)? 6.7 Care este diferena ntre evitarea, detecia i prevenirea blocajului (deadlock)? 7.1 Ce cerine intenioneaz 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 fora protecia memoriei pe durata compilrii? 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 partiii de mrime inegal atunci cnd se folosete o schem cu partiii fixe? 7.6 Care este diferena ntre fragmentarea intern i fragmentarea extern? 7.7 Care sunt distinciile ntre adresarea logic, relativ i fizic? 7.8 Care este diferena ntre pagin i cadru? 7.9 Care este diferena ntre pagin i segment? 8.1 Care este diferena ntre paginarea simpl i paginarea memoriei virtuale? 8.2 Explicai ce este thrashing. 8.3 De ce este principiul localitii crucial pentru utilizarea memoriei principale? 8.4 Ce elemente se gsesc n mod tipic ntr-o intrare dintr-o tabel cu pagini? Descriei pe scurt fiecare element. 8.5 Care este scopul bufferului de translatare anticipat (translation lookaside buffer)? 8.6 Descriei 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 relaia ntre algoritmii FIFO i cel de nlocuire n sensul acelor de ceasornic (clock page replacement algorithms)? 8.9 Ce se nelege 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 diferena ntre tergerea la cerere i pre-tergerea (precleaning)?