Sunteți pe pagina 1din 72

Sisteme de operare - II

Partea I
Dispozitive de intrare/ieire
Dispozitive de intrare/ieire

PRINCIPII I/O HARDWARE


Dispozitive de intrare/ieire
Sistemele de calcul ofer o mare
diversitate de dispozitive i utilizri ale
acestora
(numii diferite tipuri de dispozitive i utilizri)
O abordare unitar a acestor dispozitive
este dificil de realizat, date fiind
caracteristicile extrem de diferite ale
acestora
Realizarea operaiilor de intrare/ieire este, de
asemenea, variat
Dispozitive de intrare/ieire
Dispozitive externe angrenate n operaii de
intrare/ieire:
Destinate utilizatorului:
Asigur comunicarea cu utilizatorul prin mijloace de
intrare (tastatur, mouse) sau ieire (ecran,
imprimant etc.)
Destinate mainii:
Asigur comunicarea intern. Dispozitivele tipice de
memorare, precum i senzori, actuatori, controllere.
Destinate comunicaiei:
Asigur mecanismele de comunicare cu dispozitive
aflate la distan.
Dispozitive de intrare/ieire
Oferun numr mare de caracteristici:
Rata de transfer:
msurat de regul n bps, variaz de la cteva caractere pe
secund, pn la cantiti impresionante de transfer n reea.
Unitatea de transfer:
clasific dispozitivele n dispozitive caracter (capabile s
suporte fluxuri de caractere exemple?) i dispozitive bloc
(capabile s suporte transferul unui bloc de date exemple?)
Condiii de eroare:
exist o imens varietate a tipurilor de erori, modului de
raportare, tipul de rspuns n caz de eroare, gravitatea
acestora, etc.
DISPOZITIVE DE
INTRARE/IEIRE

Serie 1
600000000
500000000
400000000
300000000
200000000
Axis Title 100000000
0

Rate de transfer pentru diferite dispozitive


Dispozitive de intrare/ieire
Complexitatea controlului:
Diferitele dispozitive de intrare/ie ire ofer diferite mecanisme
de control.
O unitate disc necesit un control complex, dat att de organizarea
specific, ct i de capacitatea de a transfera blocuri de date.
O imprimant necesit un control complet diferit, relativ u or prin
comparaie cu o unitate de disc.
Utilizarea:
Din punctul de vedere al domeniului de utilizare, exist cea mai
mare diversitate.
Modul de utilizare implic mecanisme software i politici
specifice.
Unitile disc suport att sisteme de fi iere ct i suportul pentru
gestiunea memoriei.
Un display poate suporta att un mod text, relativ simplu, ct i o
utilizare ntr-un mod grafic.
Dispozitive de intrare/ieire
Modelul de baz ofer dou categorii majore de dispozitive: bloc i caracter.
Aceast abordare este suficient pentru a putea dezvolta componente
software independente de dispozitiv (ex. sistemul de fi iere)
Dispozitive bloc:
Sunt capabile s depoziteze informaia n blocuri adresabile, de dimensiune fix.
Dimensiunea tipic a blocului variaz ntre 512 octei i 32 ko.
Ofer suportul pentru citirea/scrierea integral i independent a unui bloc.
Exemple: uniti de disc (acces aleatoriu), uniti de band (acces secvential).
Dispozitive caracter:
Sunt capabile s ofere fluxuri de caractere, fr vreun interes pentru o structur
(bloc).
Nu sunt adresabile, nu ofer suport pentru cutare.
Exemple: majoritatea celorlalte dispozitive intr n aceast categorie.
Exist, totui, dispozitive care nu se potrivesc n clasificare.
Un ceas nu ofer sau genereaz fluxuri de caractere, ns nici nu este adresabil, n
stilul dispozitivelor bloc.
Ce fel de dispozitive sunt cele mapate n memorie (ex. VGA-mapped, pentru MS-
DOS) ?
Controllerul
Dispozitivele I/O ofer, de regul, dou por iuni separabile:
poriunea mecanic (dispozitivul fizic) i electronica asociat
(controller)
Controllerul ofer mijloace de gestiune a unui numr de
dispozitive identice, sau care se conformeaz unui anumit
standard (ANSI/IEEE/ISO etc.)
Ex. unitile de disc sau similare ofer interfe e IDE, EIDE, SCSI, etc.
Interfaa dintre controller i dispozitiv este, de regul, de nivel
jos, strns legat de anumite caracteristici ale dispozitivului.
Ex. pentru o unitate disc este oferit, mai degrab, un flux de bi i serial
cu un format bine determinat.
Controllerul este cel care transform fluxul de bi i serial ntr-
un bloc de date i asigur mecanismele de identificare a erorilor.
Blocul de date este oferit abia dup aceast transformare i
verificare, prin intermediul memoriei principale.
Funcionarea I/O
Trei
tehnici de baz au putut fi identificate de-a lungul timpului:
Operaii de I/O programate
Procesorul emite cererile de I/O n numele unui proces, ctre un
anumit modul de intrare/ieire. Tipic, rspunsul este a teptat ntr-un
ciclu de ateptare activ.
Operaii de I/O bazate pe ntreruperi
Procesorul emite cererile de I/O n numele unui proces, ns i
continu activitatea. La terminarea operaiei acesta este ntrerupt i
operaia I/O poate fi finalizat. Ateptarea activ nu este necesar.
Operaii de tip DMA
Un modul DMA suport transferul direct de informa ie de la un modul
I/O ctre/dinspre memorie. Procesorul comand transferul unui bloc
de informaie ntre cele dou pri i este ntrerupt dup realizarea
transferului.
(Exemple?)
I/O mapate n memorie
Sistemul de operare faciliteaz comunicarea CPU cu un
controller prin intermediul unor regitri specializa i:
Sistemul de operare citete valoarea regitrilor pentru a determina
starea dispozitivelor
Sistemul de operare poate scrie n regitri pentru a comanda
dispozitivele sau operaii de intrare/ieire.
Peste sistemul de regitri, poate fi oferit un buffer de date
accesibil sistemului de operare.
Ex. video RAM, ca un mijloc de scriere a informa iei video
Comunicarea dintre CPU i regitri/buffer este realizabil n
dou moduri:
Maparea fiecrui registru de control pe un numr de port. Comunicarea
se realizeaz prin instruciuni de intrare/ieire specializate (tipic, IN i
OUT)
Maparea regitrilor de control n memorie, fiecrui registru
corespunzndu-i o adres unic. (I/O mapate n memorie)
I/O MAPATE N MEMORIE
a) spaii separate memorie/I/O (ex. IBM 360)
b) I/O mapate n memorie (PDP-11)
c) Hibrid (Pentium, pentru compatibilitate IBM PC) (dup
A.Tanenbaum, MOS)
Funcionarea I/O
Evoluia funcionrii:
1. Control direct CPU dispozitiv
2. Funcia controllerului este adugat: opera ii I/O
programate
3. Este adugat suportul ntreruperilor: opera ii I/O
asincrone (CPU nu mai ateapt finalizarea opera iilor)
4. Control direct la memorie (DMA): devine posibil
transferul unui bloc de date fr interven ia CPU
5. Module I/O specializate: CPU este capabil s comande
o secven de operaii
6. Capacitate de memorare pentru modulele I/O
specializate: minimizeaz interven ia CPU.
DMA
Pentru ca un procesor s realizeze opera ii de intrare/ie ire este
necesar un mecanism de adresare, indiferent de modul de func ionare
al I/O.
n funcionarea de baz (vezi pasul 1, slide-ul precedent), comunicarea
direct CPU-dispozitiv este lent.
Sistemele moderne ofer un mecanism de tip DMA pentru a evita
comunicarea direct. Utilizarea DMA este posibil doar cu sprijinul
unui controller specializat.
Tipic, este oferit un DMA comun, capabil s intermedieze (concurent)
transferuri de la/ctre dispozitive diferite.
Unui controller DMA i este oferit acces direct ctre magistrala
sistemului, independent de CPU
Sunt oferii mai muli regitri (adres de memorie, contor, regi tri de control)
destinai comunicrii cu CPU.
Prin regitrii de control se poate controla transferul de informa ie (prin
specificarea portului I/O, direcia de transfer, unitatea de transfer, cantitatea
de octei ntr-o operaie, etc.)
DMA
Funcionarea DMA (dup A.Tanenbaum,
MOS)
DMA
Exist diferite caracteristici n func ionarea DMA:
cycle stealing: tipic DMA folosete magistrala atunci
cnd nu este utilizat de ctre CPU. n cycle stealing DMA
are capabilitatea de a fura un ciclu CPU, fornd
suspendarea temporar a activitii acestuia (caracteristic
pentru mod caracter).
burst mode: n modul bloc de transfer, DMA realizeaz o
serie de transferuri ndat ce obine magistrala. Preul
acestui mod: posibila ncetinire a sistemului prin opera ii de
transfer lente.
Modelul tipic presupune c DMA comunic un controller
transferul de date direct ctre memorie (fly-by mode)
o serie de sisteme care renun la utilizarea
Exist
DMA, transfernd napoi controlul ctre CPU!
DMA
Realizareaunei operaii de ctre CPU prin
intermediul DMA:
CPU realizeaz cererea pentru operaie (citire/scriere)
prin linia de control specializat
Sunt comunicate prin linii de date, i depozitate n regi tri
specifici: adresa dispozitivului I/O, loca ia de memorie de
baz, cantitatea de cuvinte/octei destinai opera iei
Are loc o delegare a operaiei ctre DMA.
Mai departe, DMA transfer n memorie un ntreg bloc de
date, fr intervenia ulterioar a procesorului.
Nu este necesar un mecanism bazat pe ntreruperi. n schimb,
prin fly-by mode este ncetinit funcionarea procesorului prin
sacrificarea unor cicluri procesor, cu un pre mai mic dect
mecanismul bazat pe ntreruperi.
I/O BAZAT PE NTRERUPERI
Funcionarea mecanismului bazat pe
ntreruperi. (dup A.Tanenbaum, MOS)
I/O bazat pe ntreruperi
Mecanismul bazat pe ntreruperi este tipic pentru sisteme vechi, i are la
baz ideea c dac o ntrerupere are loc dup o instruc iune I, toate
instruciunile anterioare, inclusiv aceasta, au fost executate cu succes.
WALKER, W., and
CRAGON, H.G.:
Sistemele moderne ofer arhitecturi superscalare (execuii paralele de
Interrupt instruciuni). Aceast presupunere nu este neaprat adevrat!
Processing in ntreruperile precise sunt definite prin:
Concurrent
Processors, 1. Registrul PC este salvat ntr-o locaie bine stabilit
Computer, 2. Toate instruciunile anterioare celei identificate prin PC au fost executate complet
vol. 28, pp. 36-46,
June 1995. 3. Nicio instruciune ulterioar celei indicate prin PC nu a fost executat
4. Starea instruciunii indicate prin PC este cunoscut.

O ntrerupere care nu posed aceste propriet i este imprecis. Diferite


sisteme ofer abordri hibride n ceea ce prive te ntreruperile
precise/imprecise.
Un sistem superscalar Pentium Pro suporta ntreruperi precise pentru a
facilita execuia aplicaiilor create pentru procesoare mai vechi, cu pre ul
unor mecanisme complexe pentru a asigura precizia ntreruperilor.
Operaii I/O programate
Ofercel mai simplu mod de a rezolva
operaiile de intrare/ieire
Presupune implicarea CPU n realizarea
operaiilor.
Sistemul de operare va urmri ntreaga realizare a
operaiilor.
O caracteristic esenial este dat de faptul c
CPU este implicat ntr-un ciclu continuu de
verificare a dispozitivelor, pentru a verifica dac
noi operaii sunt posibile.
Aceast tehnic se numete polling (busy
waiting)
OPERAII I/O PROGRAMATE
Paii urmai pentru realizarea unei operaii
de ieire (dup A.Tanenbaum, MOS)
Operaii I/O programate
Paii din exemplul anterior:
1. Depoziteaz irul de caractere ntr-o zon din spa iul
utilizator
2. Obine dispozitivul de ieire, eventual prin a teptare
activ
3. Copiaz irul de caractere n spaiul nucleu
1. Este realizat o nou verificare a disponibilitii
dispozitivului.
4. Este copiat irul, caracter cu caracter, n regi trii
dispozitivului, folosind tehnica curent pentru
sistemul de operare (ex. memory-mapped I/O).
1. Pentru fiecare caracter, este verificat disponibilitatea
dispozitivului, pn la finalizarea operaiei.
OPERAII I/O PROGRAMATE
Paii urmai pentru realizarea unei operaii de
ieire programat (dup A.Tanenbaum, MOS)
Operaii I/O programate
OperaiileI/O programate presupun ntreaga
colaborare a procesorului.
Procesorul este ocupat pe ntreaga durat a
operaiei
Soluia este potrivit pentru sisteme mono-
utilizator simple (ex. de tip MS-DOS)
Soluia este potrivit pentru sisteme de operare
simple (ex. embedded), chiar dac implic un ciclu
de ateptare activ!
Soluia nu este indicat pentru sisteme de operare
complexe, bazate pe multiprogramare
(explicai de ce!)
Operaii I/O bazate pe ntreruperi
n cazul sistemele de operare
multiprogramate, utilizarea
ntreruperilor este necesar pentru a
permite planificarea procesorului
ntr-un scenariu simplu, similar situaiei
anterioare, pe durata unei operaii simple
de ieire procesorul ar putea realiza o
comutare de context.
O ntrerupere anun momentul n care
dispozitivul a finalizat operaia
OPERAII I/O BAZATE PE
NTRERUPERI
Paii urmai pentru realizarea unei opera ii de
ieire bazat pe ntreruperi (dup
A.Tanenbaum, MOS)
Cod de acces classroom.google.com:
Acelai cu SO1

Dispozitive de intrare/ieire

PRINCIPII I/O SOFTWARE


Cerine ale sistemului de operare
Obiectivecentrale pentru I/O:
Eficiena
Dispozitivele tipice I/O sunt lente prin comparaie cu CPU sau
memoria principal.
Multiprogramarea (plus gestiunea memoriei) ofer mijloace
pentru a trece peste aceast dificultate.
Generalitatea
Este necesar o abordare simpl, unitar, pentru dispozitive
comparabile.
Aceast abordare trebuie s fie aplicabil att n ceea ce privete
felul n care CPU vede dispozitivele, ct i n ceea ce privete
modul n care sistemul de operare gestioneaz dispozitivele i
operaiile asupra acestora.
Un design modular, ierarhic, ascunde detaliile dispozitivelor la un
nivel inferior.
Cerine ale sistemului de operare
O serie de cerine pot fi derivate din obiectivele centrale:
Numirea uniform:
numele fiierelor sau dispozitivelor trebuie s urmeze o conven ie uniform,
independent de dispozitiv.
Tratarea erorilor:
tratarea erorilor se va realiza ct mai aproape de sursa acestora (ex. o eroare
descoperit la nivel de controller va fi rezolvat, pe ct posibil, la acest nivel, ntr-
o manier transparent)
Transferuri sincrone vs. Asincrone:
majoritatea operaiilor sunt fr blocare (asincrone, bazate pe ntreruperi la
finalizarea operaiei). Majoritatea programelor ofer un stil cu blocare (sincron).
Sistemul de operare va suporta realizarea asincron a opera iilor la nivelul de
baz oferind impresia de operaii sincrone la nivel de program utilizator.
Buffering:
facilitate oferit peste sau n completarea capabilit ilor dispozitivelor.
Partajarea dispozitivelor:
sistemul de operare suport att dispozitive exclusive ct i dispozitive partajate,
tratnd problemele specifice ale acestora!
Structura funciilor sistemului I/O
O abordare stratificat este tipic
pentru sistemele de operare, cu funcii
oferite de nivelurile inferioare
nivelurilor superioare. Niveluri
minimale identificabile:
Nivel logic de intrare/ieire
Nivel fizic (driver de dispozitiv)
Nivel de planificare i control
NIVELURI SOFTWARE I/O
Niveluri n sistemul I/O software (dup
A.Tanenbaum, MOS), legate de structura
funciilor
Structura funciilor sistemului I/O
Nivel logic de intrare/ieire
Trateaz dispozitivul ca pe o resurs logic, fr
interes pentru detaliile de control ale
dispozitivului
Ofer suportul pentru funcii generice de
management n numele proceselor utilizator
Este realizat prin comenzi de baz, gen
open(), close(), read(), write(), etc.
Nivel fizic (driver de dispozitiv)
Nivel de planificare i control
Nivel logic de intrare/ieire
Ofer un nivel pentru software
independent de dispozitiv
Responsabilitile includ
Sistemul unitar de interfaare a
dispozitivelor
Sistem de buffering
Raportarea erorilor
Alocarea i eliberarea dispozitivelor dedicate
Oferirea unei dimensiuni bloc independent
de dispozitiv
Nivel logic de intrare/ieire
Sistemul unitar de interfaare a dispozitivelor
Se bazeaz pe identificarea unui numr mic de
categorii de dispozitive (ex. bloc/caracter), i
identificarea funcionalitilor comune ale acestora.
Necesitatea unei interfee dispozitiv standard
Acoper i aspecte de numire a dispozitivelor. Ex.
maparea numelor simbolice (/dev/sd0) peste
driverul corespunztor.
Sistemele UNIX ofer dou informaii men inute la nivel de
inod: numr major (folosit pentru selectarea driverului) i
numrul minor (folosit pentru specificarea unit ii accesate)
SISTEMUL UNITAR DE
INTERFAARE
a) Fr interfa standard pentru dispozitive similare.
b) Cu o interfa standard pentru dispozitive similare.
(dup A.Tanenbaum, MOS)
Nivel logic de intrare/ieire
Raportarea erorilor
Exist un numr mare de situaii de eroare
identificabile, datorit diversitii
dispozitivelor, diversele stri i utilizri ale
acestora.
Este necesar tratarea erorilor ct mai aproape
de surs.
Erorile de dispozitiv tratabile la nivelul driverului
Erorile de programare sunt raportate la nivelul
corespunztor
Erorile fizice raportate de preferat napoi la nivelul
independent de dispozitiv.
Nivel logic de intrare/ieire
Alocarea i eliberarea dispozitivelor dedicate
Sistemul de operare este responsabil cu rezolvarea
cererilor i meninerea unor cozi dedicate.
Sistemul de operare decide comportamentul sincron
sau asincron
Oferirea unei dimensiuni bloc independent de
dispozitiv
Exist o diversitate de dispozitive cu mrimi extrem
de diferite ale unitii de alocare.
Sistemul de operare va oferi o dimensiune bloc
abstract pentru a rspunde cerinelor dispozitivelor.
Structura funciilor sistemului I/O
Nivel logic de intrare/ieire
Nivel fizic (driver dispozitiv)
Este disponibil de regul la nivel apropiat de
controller
Ofer suportul pentru transformarea
informaiilor furnizate la nivel logic n
argumente pentru instruciuni specializate.
Este posibil utilizarea unor tehnici de
buffering, funcie de dispozitivul controlat.
Nivel de planificare i control
NIVELURI SOFTWARE I/O
Poziia logic a driverelor (dup
A.Tanenbaum, MOS)
Nivele software I/O
Drivere de dispozitiv
Driverele
sunt, de regul, clasificate ntr-un
numr mic de categorii
Pentru acestea sunt identificate o serie de
caracteristici comune, ca un minim satisfcut de
interfee.
Tipic, sunt oferite dispozitive caracter i bloc.
Peste acestea sunt definite opera ii elementare de
citire/scriere/accesare a unui bloc sau caracter.
Diversitatea dispozitivelor din sistemele PC au dus
la modificarea modului de utilizare a driverelor,
astfel nct acestea sunt ncrcate la cerere
Nivele software I/O
Drivere de dispozitiv
Funcii ale driverului
Preluarea operaiilor specificate la un nivel superior, n form
independent de dispozitiv, i transformarea ntr-o form specific
dispozitivului. Operaii adiionale specifice acestuia pot fi rezolvate cu
aceast ocazie.
Funcionarea tipic include:
Verificarea i validarea parametrilor de intrare, cu returnarea unui mesaj
de eroare sau transformarea acestora ntr-o form acceptabil pentru
dispozitiv.
Verificarea disponibilitii dispozitivului. Dac dispozitivul este ocupat,
cererea poate ajunge ntr-o coad; altfel este verificat starea
dispozitivului pentru realizarea operaiei
Controlul dispozitivului, printr-o serie de comenzi specifice. Controlul
este realizat prin regitrii specifici la nivel de controller.
Comportamentul driverului poate fi ntrziat/cu blocare (blocare pn la
apariia unei ntreruperi) sau imediat, funcie de caracteristicile fizice ale
dispozitivului. (Exemple?)
Structura funciilor sistemului I/O
Nivel logic de intrare/ieire
Nivel fizic (dispozitiv)
Nivel de planificare i control
Ofer suportul pentru gestiunea cozilor i
planificarea operaiilor de intrare/ieire (vezi
i cozile de planificare)
Ofer suportul pentru controlul operaiilor I/O.
Ofer interaciunea efectiv cu dispozitivul
(driverul de dispozitiv), dpdv. software.
Dac este utilizat un mecanism bazat pe ntreruperi,
acestea sunt gestionate la acest nivel.
BUFFERING
Buffering
O problem tipic la nivel de software independent de
dispozitiv
n realizarea operaiilor de intrare/ie ire sunt posibile diferite
strategii:
1. Procesul utilizator iniiaz operaia i se blocheaz n a teptarea
acesteia. Ex. pentru un dispozitiv caracter este a teptat
transmiterea/recepionarea fiecrui caracter, prin tratarea
ntreruperii asociate.
2. Alternativ, este oferit un spaiu (buffer) capabil s suporte un
numr de octei (caractere). Procedura de ntrerupere opereaz
asupra bufferului, interaciunea cu procesul utilizator este
realizat doar la umplerea bufferului.
1. Atunci cnd bufferul este oferit n spaiul utilizator, exist diferite riscuri,
bazate pe modul de utilizare a memoriei (ex. paginare i swapping)
2. Atunci cnd bufferul este oferit n spaiul nucleu este necesar interven ia
sistemului de operare. Schema suport mbunt iri prin double buffering.
Single Buffering
Cea mai simpl schem de buffering.
Este oferit un singur buffer, asignat de ctre sistemul de
operare la o operaie de intrare/ieire, i pstrat n
spaiul nucleu.
Pentru dispozitive bloc, operaiile de intrare se rezolv
direct n buffer. Cnd operaia curent este finalizat,
blocul de date este mutat n spaiul utilizator i este
ncrcat imediat un alt bloc de date.
Tehnica se numete read-ahead, sau intrare anticipat. Noul
bloc este ncrcat cu sperana c urmtoarea operaie se
realizez din acest bloc.
Pentru dispozitive caracter (stream-oriented), sunt
posibile abordri de tip linie-cu-linie (ex. terminal text)
i caracter-cu-caracter.
Double Buffering
naceast schem este oferit o pereche de
buffere.
n aceast schem aplicaia utilizator folosete
direct unul dintre buffere (ex. pentru citire), n
timp ce sistemul de operare l folosete pe cellalt
(ex. pentru scrierea datelor de la dispozitiv).
Ulterior este realizat o interschimbare a
bufferelor, de unde i numele buffer swapping.
Este obinut o mbuntire a performanei att
pentru dispozitive bloc, ct i pentru dispozitive
caracter cu abordare linie-cu-linie.
Circular Buffering
Se refer la scheme cu mai multe
buffere.
Este meninut o list circular pentru a
indica bufferul din care urmeaz s se
realizeze operaia I/O
Organizarea sistemului de buffere
corespunde problemei productor-
consumator.
TEHNICA BUFFERIZRII
Bufferizarea, aplicat pentru un dispozitiv caracter a) fr
bufferizare, b) cu un singur buffer, c) cu dou buffere, unul n
spaiul nucleu, unul n spaiul utilizator, d) cu buffer dublu.
(dup A.Tanenbaum, MOS)
PLANIFICARE SI CONTROL
Nivelul de planificare i control.
Planificarea discurilor
Planificarea discurilor se bazeaz pe o serie de
caracteristici:
Timpul de cutare
Timpul necesar poziionrii capului de citire pe o anumit pist.
Format din timp iniial de pornire (startup initial time) i timp
de traversare (a pistelor).
Timpul de traversare cuprinde, de asemenea, o component de
timp de pornire i timp de aezare (necesar pentru confirmarea
pistei)
ntrzierea de rotaie
Timpul necesar pentru poziionarea capului n vederea accesrii
sectorului int
Determinat de viteza de rotaie. Ex. 10.000 RPM corespunde
unui timp de revoluie de cca 6ms. ntrzierea medie este de cca
3ms.
Nivelul de planificare i control.
Planificarea discurilor
Timpul efectiv de acces i timpul de transfer
Suma celor dou valori anterioare. Timpul efectiv de
acces indic timpul necesar pentru ini ierea
operaiei de intrare/ieire. Realizarea opera iei ofer
timpul de transfer (timpul petrecut deasupra
sectorului pe durata operaiei de intrare/ie ire.
Timpul de transfer este de forma
T=b/rN, unde b-octei de transferat, r-viteza de rota ie (rps),
N-octei pe pist.
Timpul mediu de acces este de forma
Ta=Ts+1/2r+b/rN
Timpul mediu de acces se poate mbunt i pe baza
timpului de cutare (Ts)
Nivelul de planificare i control.
Planificarea discurilor
Planificarea
discurilor permite
mbuntirea timpului de cutare.
Politici de planificare:
1. Planificare aleatoare
2. Planificare FIFO
3. Planificare bazat pe prioriti
4. Planificare LIFO
5. Planificarea SSTF
6. Planificare SCAN
7. Planificare C-SCAN
8. Planificare FSCAN
Nivelul de planificare i control.
Planificarea discurilor
1. Planificarea aleatoare
. Presupune meninerea unei cozi comune
de cereri ctre dispozitivul I/O
Cererile provin de la procese diferite, sunt
destinate att operaiilor de intrare ct i celor
de ieire
. Cererile sunt satisfcute ntr-o ordine
aleatoare.
. Este de ateptat obinerea unei
perfomane slabe, folosit mai degrab ca
termen de comparaie.
Nivelul de planificare i control.
Planificarea discurilor
2. Planificare FIFO
. Cea mai simpl schem de planificare:
operaiile sunt onorate n ordinea din
coad
. Este un mecanism echitabil
. Performana poate fi acceptabil cu un
numr relativ mic de procese sau cu cereri
de intrare/ieire concentrate n aceea i
zon disc.
. Pentru o utilizare intens, FIFO se apropie
de planificarea aleatoare!
Nivelul de planificare i control.
Planificarea discurilor
3. Planificare bazat pe prioriti
. Un sistem bazat pe prioriti se
ndeprteaz de scopul iniial
(optimizarea timpului de acces)
. Folosirea prioritilor satisface politicile
sistemului de operare.
. Prioritile sunt n contradicie cu
mecanismele de gestiune a cozilor I/O
Nivelul de planificare i control.
Planificarea discurilor
4. Planificare LIFO
. Politica de planificare presupune o
organizare de tip stiv.
. Caracteristic mai degrab sistemelor
orientate spre tranzacii, exploatnd poziia
curent (localizarea tranzaciilor).
. Apare pericolul fenomenului de nfometare:
cererile vechi pot fi ntrziate nejustificat de
mult.
. La fel ca FIFO, nu ine seama de poziia
curent a capului de citire.
Nivelul de planificare i control.
Planificarea discurilor
5. Planificarea SSTF
. Politica presupune selectarea cererii care este
cea mai apropiat de poziia curent a
capului.
. Aceast politic ofer un timp de cutare
minim de la o operaie la alta, fr a garanta
ns un timp de cutare mediu la un nivel
acceptabil.
. Dat fiind capacitatea capului de a se deplasa
n dou direcii, pentru cereri aflate la distan
egal vor fi necesare mecanisme de decizie
suplimentare.
Nivelul de planificare i control.
Planificarea discurilor
6. Planificare SCAN
. Cu excepia FIFO, riscul nfometrii exist pentru
toate abordrile anterioare.
. Planificarea SCAN cere ca deplasarea capului s se
realizeze ntr-o singur direcie i s fie satisfcute
toate cererile ntlnite pe parcurs, pn la ultima
pist pe direcie sau pn la satisfacerea ultimei
cereri pe direcie (politica LOOK).
. Dup aceasta este inversat direcia de deplasare
pentru satisfacerea celorlalte cereri.
. Algoritmul favorizeaz zona recent traversat, ns
nu favorizeaz localizarea cererilor.
Nivelul de planificare i control.
Planificarea discurilor
7. Planificare C-SCAN
. Aceast politic extinde politica SCAN
prin restricionarea scanrii la o singur
direcie.
. Odat terminat cutarea, capul se
ntoarce n poziia iniial (prima pist)
i se execut o nou scanare.
Nivelul de planificare i control.
Planificarea discurilor
8. Planificare FSCAN
. Aceast politic ncearc s evite
monopolizarea capului de citire/scriere de
ctre un proces:
. Cu SCAN/CSCAN, SSTF un proces poate
abuza de poziia curent pentru a-i rezolva
un numr mare de cereri.
. Se bazeaz pe o segmentare a cozii de cereri,
pentru a evita un numr prea mare de cereri
ntr-o singur zon a discului.
. Alternativ, se poate considera SCAN n N pa i.
Disk cache
Prin disk cache se nelege un buffer n
memoria principal meninut pentru
sectoarele de disc.
Aceast zon depoziteaz o serie de sectoare
disc, astfel nct operaiile de intrare/ieire s
poat fi realizate mai rapid.
Fenomenul de localizare este folosit pentru a
justifica implementarea acestui mecanism:
atunci cnd un bloc de date este folosit, este
probabil ca urmtoarele cereri s fie localizate
n acelai bloc de date.
Disk cache
Principiilede implementare i utilizare sunt
similare celor de la memoria cache i memoria
principal (paginare)
Diferite probleme pot fi identificate n rela ie cu
aceast zon:
La realizarea unei operaii de intrare/ieire din cache,
este necesar transferul de date ctre/dinspre cache
dinspre/ctre memoria procesului.
Aceast operaia se poate realiza direct, printr-o opera ie de
copiere, sau printr-o zon partajat de memorie
Este necesar o strategie de nlocuire n disk cache.
Problema este similar problemei de nlocuire a paginilor. O
serie de algoritmi pot fi adaptai pentru aceast situa ie
Disk cache
Algoritmi de nlocuire a blocurilor:
LRU este nlocuit blocul care se gsete n memorie de cel
mai mult timp.
Tipic, zona cache pstreaz o stiv de blocuri.
Cnd este accesat un bloc, acesta se mut n vrful stivei.
nlocuirea se refer la blocul aflat la baza stivei.
LFU (Least Frequently Used) este nlocuit blocul cu cel mai
mic numr de referine, pstrnd principiul localizrii.
Pentru aceasta se poate asocia un contor fiecrei intrri din zona
cache.
Exist posibilitatea ca blocuri vechi s beneficieze de pe urma
mbtrnirii informaiilor (un numr mare de accesri n intervale
rare pot crea impresii greite)
O mbuntire a acestui algoritm propune ca efectul de localizare s nu fie
contorizat pentru numrul de referine: un bloc aflat n partea superioar a stivei
nu incrementeaz contorul, chiar dac este accesat.
CEASURI
Ceasuri
Un ceas (timer) este un dispozitiv atipic ntre
dispozitivele de intrare/ieire.
Acestea ofer diverse utilizri: suport pentru
multiprogramare, ceasul sistem, etc.
Prin intermediul acestora sunt men inute
diferite informaii: ceasul sistem, contor, etc.
Software-ul asociat este oferit ca un driver de
dispozitiv, dei un timer nu intr n niciuna
din categoriile caracter sau bloc.
Ceasuri
Un ceas pentru un calculator poate lua dou forme fizice:
Ceasuri vechi, cu alimentare direct, determin o ntrerupere de ceas la
fiecare ciclu de voltaj. Nu sunt caracteristice sistemelor moderne.
Ceasuri moderne, folosind un oscilator (bazat pe un cristal, tipic cuar ), un
contor i un registru. Acestea se bazeaz pe acurate ea semnalului
cristalului de cuar. Cel puin un astfel de ceas este oferit ntr-un sistem de
calcul, pentru a suporta un semnal de sincronizare intern. O ntrerupere
este generat cnd contorul asociat ajunge la 0.
Ceasurile programabile ofer diferite moduri de operare:
One-shot: copiaz valoarea depozitat n registru n contor, iar acesta este decrementat
la fiecare pulsaie. Cnd contorul ajunge la valoarea 0 este generat ntreruperea, ns
ceasul nu este repornit automat.
Squarewave: spre deosebire de situaia precedent, cnd contorul atinge valoarea 0,
valoarea din registru este din nou ncrcat n contor pentru un nou ciclu. Fiecare ciclu
de operare se numete btaie de ceas.
Un ceas programabil ofer posibilitatea controlului prin intermediul componentelor
software specializate.
Ex. un ceas bazat pe un cristal de 500 MHz ofer o pulsa ie la cca 2ns. Folosind un contor pe un
registru de 32 bii, este posibil setarea btii de la 2 ns pn la cca 8.59 secunde.
CEASURI PROGRAMABILE
Ceasuri
n timp ce un ceas fizic ofer doar un
mijloc de a genera un semnal la intervale
regulate de timp (2ns 8.59s), un driver
de ceas (ceas software) va oferi suportul
pentru sarcini complexe:
Ceasul sistem (time-of-day)
Durata ciclului de execuie
Contabilizarea utilizrii resurselor
Gestiunea unor mecanisme de alarm
Urmrirea utilizrii resurselor.
CEASURI

Modaliti de meninere a orei sistemului.


Ceasuri
Oferireaunor funcionaliti simple cum ar fi ora
sistem poate ridica anumite probleme:
Un ceas dotat cu un contor pe 32 bii are o capacitate limitat
de a nregistra numrul de secunde.
Ex. cu un ceas de 60MHz, capacitatea contorului este limitat la cca 2
ani.
Utilizarea unui contor pe 64 bii rezolv aceast problem
Alternativ, poate fi meninut numrul de secunde n locul
numrului de bti de ceas, ns va necesita un contor
suplimentar pentru secunde.
Totui, soluia este limitat la cca 136 ani (2^32 secunde)!
O a treia posibilitate presupune din nou contorizarea btilor
de ceas i folosirea momentului bootrii ca referin. Ora
sistem se obine printr-o operaie simpl de adunare.
Ceasuri
n diferite sisteme de operare procesele
pot utiliza facilitile oferite de ceasuri
pentru scopuri proprii, de la un semnal de
alarm pn la setarea unor timere de
nalt precizie.
n timp ce numrul de ceasuri fizice este
relativ mic, sistemul de operare poate oferi o
serie de ceasuri virtuale, pe scheletul unui ceas
fizic.
Utilizarea unei liste de momente asociat unui
ceas poate fi suficient pentru acest scop.
CEASURI
Modelarea unor ceasuri virtuale (A.
Tanenbaum, MOS)

S-ar putea să vă placă și