Sunteți pe pagina 1din 54

Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Coerenţa memoriei
• trebuie ca toate procesoarele să folosească
ultima valoare scrisă pentru o variabilă
partajată
• problema - memoriile cache
• scopul - orice variabilă partajată să aibă
aceeaşi valoare
– în toate cache-urile
– în memoria principală
1
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Coerenţa - cache write-back


x - variabilă partajată
Valoare Valoare Valoare
Procesor Acţiune cache A cache B memorie
9
A i=x; 9 9
B j=x; 9 9 9
A x=5; 5 9 9
B k=x; 5 9 9
2
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Coerenţa - cache write-through


x - variabilă partajată
Valoare Valoare Valoare
Procesor Acţiune cache A cache B memorie
9
A i=x; 9 9
B j=x; 9 9 9
A x=5; 5 9 5
B k=x; 5 9 5
3
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Ce înseamnă coerenţa? (1)

1. ordinea execuţiei
a) procesorul P scrie în variabila X
b) apoi procesorul P citeşte X
– între a) şi b) nu există alte scrieri în X

 citirea b) returnează valoarea scrisă de a)

4
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Ce înseamnă coerenţa? (2)

2. viziune coerentă a memoriei


a) procesorul P scrie în variabila X
b) apoi procesorul Q (QP) citeşte X
– între a) şi b) nu există alte scrieri în X
– între a) şi b) a trecut suficient timp

 citirea b) returnează valoarea scrisă de a)

5
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Ce înseamnă coerenţa? (3)


3. serializarea scrierilor
a) procesorul P scrie în variabila X
b) procesorul Q (Q=P sau QP) scrie în variabila
X

 toate procesoarele văd cele două scrieri în


aceeaşi ordine
– nu neapărat a) înaintea b)
6
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Menţinerea coerenţei cache-urilor


• protocoale de menţinere a coerenţei
• se bazează pe informaţiile despre liniile de
cache
– invalid - datele nu sunt valide
– dirty - doar cache-ul curent deţine valoarea
actualizată
– shared - cache-ul curent deţine valoarea
actualizată, la fel memoria principală şi
eventual alte cache-uri
7
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tipuri de protocoale
• directory based
– informaţiile despre fiecare linie de cache -
ţinute într-un singur loc
• snooping
– fiecare cache are o copie a liniei partajate
– fără centralizarea informaţiei
– cache-urile monitorizează magistrala
• detectează schimbările produse în liniile de cache
8
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Actualizarea cache-urilor

• fiecare cache anunţă modificările făcute


• celelalte cache-uri reacţionează
• contează doar operaţiile de scriere
• variante
– scriere cu invalidare (write invalidate)
– scriere cu actualizare (write update)

9
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Scriere cu invalidare (1)


• un procesor modifică o dată
• modificarea se face în cache-ul propriu
– toate celelalte cache-uri sunt notificate
• celelalte cache-uri
– nu au o copie a datei modificate - nici o acţiune
– au o copie a datei modificate - îşi invalidează
linia corespunzătoare
– valoarea corectă va fi preluată când va fi nevoie
10
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Scriere cu invalidare (2)


x - variabilă partajată
Reacţie Cache Cache Memorie
Proc. Acţiune A B
cache
9
A i=x; read miss 9 9
B j=x; read miss 9 9 9
A x=5; invalidation 5 inv. 9
B k=x; read miss 5 5 5
11
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Scriere cu actualizare (1)


• un procesor modifică o dată
• modificarea se face în cache-ul propriu
– toate celelalte cache-uri sunt notificate
– se transmite noua valoare
• celelalte cache-uri
– nu au o copie a datei modificate - nici o acţiune
– au o copie a datei modificate - preiau noua
valoare
12
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Scriere cu actualizare (2)


x - variabilă partajată
Reacţie Cache Cache Memorie
Proc. Acţiune A B
cache
9
A i=x; read miss 9 9
B j=x; read miss 9 9 9
A x=5; invalidation 5 5 5
B k=x; read hit 5 5 5
13
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Invalidare vs. actualizare (1)

• mai multe scrieri succesive în aceeaşi


locaţie
– write invalidation - o singură invalidare (prima
dată)
– write update - câte o actualizare pentru fiecare
scriere
– mai avantajos - invalidare

14
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Invalidare vs. actualizare (2)

• mai multe scrieri în aceeaşi linie de cache


– modificarea unei locaţii necesită
invalidarea/actualizarea întregii linii
– write invalidation - o singură invalidare (prima
dată)
– write update - câte o actualizare pentru fiecare
scriere
– mai avantajos - invalidare
15
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Invalidare vs. actualizare (3)

• "timpul de răspuns"
– timpul între modificarea unei valori la un
procesor şi citirea noii valori la alt procesor
– write invalidation - întâi invalidare, apoi citire
(când este necesar)
– write update - actualizare imediată
– mai avantajos - actualizare

16
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Invalidare vs. actualizare (4)

• ambele variante au avantaje şi dezavantaje


• scrierea cu invalidare - ocupare (mult) mai
redusă a memoriei şi magistralelor
• scrierea cu actualizare - rata de succes a
cache-urilor mai mare
• mai des folosită - invalidarea

17
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

V. Dispozitivele periferice

18
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Magistrale (1)
• căi de comunicaţie a informaţiei
• o magistrală leagă între ele mai mult de 2
componente printr-o cale unică
• descrierea unei magistrale
– semnalele electrice folosite
– reguli de comunicare - trebuie respectate de
toate părţile implicate
– mod de conectare
19
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Magistrale (2)

Accesul la magistrală
• mai multe entităţi pot solicita simultan
accesul
• este necesară o procedură de arbitraj
– decide cine va primi accesul
– celelalte trebuie să aştepte eliberarea
magistralei

20
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Arbitrarea magistralelor

Tipuri de arbitrare a magistralelor


• centralizat
– decizia o ia un circuit specializat (arbitru)
• descentralizat
– componentele se înţeleg între ele
– pe baza regulilor care definesc funcţionarea
magistralei
21
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Conectarea la magistrală
• probleme de natură electrică
• mai multe circuite conectate împreună
– în intrare şi ieşire
• nu se pot conecta mai multe ieşiri
– nivelele diferite de tensiune ar distruge
circuitele
• o soluţie - multiplexarea
– toate ieşirile sunt conectate la un multiplexor
22
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Circuite tri-state
• ieşirea are 3 stări posibile
–0
–1
– impedanţă infinită (High-Z)
• primele două corespund valorilor obişnuite
• a treia implică decuplarea de pe magistrală
– ca şi cum ieşirea circuitului nici nu ar fi
conectată la magistrală
23
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Circuite open-collector

• în unele cazuri se numesc open-drain


– în funcţie de tehnologia utilizată
• este posibilă conectarea mai multor ieşiri
simultan
• valoarea rezultată - funcţia AND între
ieşirile conectate

24
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Magistrale - privire generală

Avantaje
• activitatea pe magistrală - uşor de controlat
• economic - structură relativ simplă
Dezavantaj
• performanţe mai scăzute
– doar 2 componente pot comunica la un moment
dat
25
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

VI. Sistemul de
întreruperi

26
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Ce este o întrerupere?

• procesorul poate suspenda execuţia


programului curent
• scop - tratarea unor situaţii neprevăzute
• după tratare se reia programul întrerupt
• scopul iniţial - comunicarea cu perifericele
• procesorul nu "aşteaptă" perifericele
– acestea îl solicită când este necesar
27
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Întreruperi hardware

• dezactivabile (maskable)
– procesorul poate refuza tratarea lor
– depinde de valoarea bistabilului IF (Interrupt
Flag): 1 - acceptare, 0 - refuz
– IF poate fi modificat prin program
• nedezactivabile (non-maskable)
– procesorul le tratează întotdeauna

28
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Controllerul de întreruperi (1)

• circuit specializat
• preia cererile de întrerupere de la periferice
• le trimite procesorului
• rezolvă conflictele (mai multe cereri
simultane) - arbitrare
– fiecare periferic are o anumită prioritate

29
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Controllerul de întreruperi (2)

• iniţial - Intel 8259


– se pot folosi mai multe (cascadare)

• astăzi - integrat în chipset


30
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tratarea întreruperilor - etape (1)

• dispozitivul periferic generează o cerere de


întrerupere pe linia sa IRQi
• controllerul trimite un semnal pe linia INT
• procesorul verifică valoarea bistabilului IF
– numai pentru întreruperi dezactivabile
– dacă este 0 - refuză cererea; stop
– dacă este 1 - răspunde cu un semnal INTA
31
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tratarea întreruperilor - etape (2)

• se întrerupe execuţia programului curent


• se salvează în stivă regiştrii (inclusiv PC)
• se şterge bistabilul IF
– se blochează execuţia altei întreruperi în timpul
execuţiei programului pentru întreruperea în
curs
– poate fi repus pe 1 prin program

32
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tratarea întreruperilor - etape (3)

• identificare periferic (sursa cererii)


– controllerul depune pe magistrala de date un
octet type
– indică perifericul care a făcut cererea
– maximum 28=256 surse de întrerupere
– fiecare sursă are rutina proprie de tratare
– periferice diferite - tratări diferite

33
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tratarea întreruperilor - etape (4)

• determinarea adresei rutinei de tratare


– adresa fizică 0 - tabelul vectorilor de întreruperi
– conţine adresele tuturor rutinelor de tratare
– dimensiune: 256 adrese  4 octeţi = 1 Ko
– octet type = n  adresa rutinei de tratare: la
adresa n  4

34
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tratarea întreruperilor - etape (5)

• salt la rutina de tratare a întreruperii


• execuţia rutinei de tratare
• revenire în programul întrerupt
– restabilire valoare bistabil IF
– restabilire valoare regiştri (din stivă)
– reluarea execuţiei programului de unde a fost
întrerupt
35
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Extindere

• sistem puternic şi flexibil


• poate fi extins - utilizare mai largă
• programele trebuie întrerupte şi în alte
situaţii (nu doar pentru comunicarea cu
perifericele)
• util mai ales pentru sistemul de operare

36
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Tipuri de întreruperi

• hardware - generate de periferice


• excepţii (traps) - generate de procesor
– semnalează o situaţie anormală
– exemplu: împărţire la 0
• software - generate de programe
– folosite pentru a solicita anumite servicii
sistemului de operare
37
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

VII. Sistemul de operare

38
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Rolul sistemului de operare (1)


• program cu rol de gestiune a sistemului de
calcul
• face legătura între hardware şi aplicaţii
• pune la dispoziţia aplicaţiilor diferite
servicii
• supraveghează buna funcţionare a
aplicaţiilor
– poate interveni în cazurile de eroare
39
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Rolul sistemului de operare (2)

• pentru a-şi îndeplini sarcinile, are nevoie de


suport hardware
– cel mai important - sistemul de întreruperi
• componente principale
– nucleu (kernel)
– drivere

40
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

VII.1. Nucleul sistemului


de operare

41
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Nucleul sistemului de operare

• în mare măsură independent de structura


hardware pe care rulează
• "creierul" sistemului de operare
• gestiunea resurselor calculatorului -
hardware şi software
– funcţionare corectă
– alocare echitabilă între aplicaţii
42
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Moduri de lucru ale procesorului

• utilizator (user mode)


– restricţionat
– accesul la memorie - numai anumite zone
– accesul la periferice - interzis
• nucleu (kernel mode)
– fără restricţii

43
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Modul de rulare al programelor

• sistemul de operare - în mod nucleu


– poate efectua orice operaţie
• aplicaţiile - în mod utilizator
– nu pot realiza anumite acţiuni
– apelează la nucleu

44
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Trecerea între cele două moduri

• prin sistemul de întreruperi


• utilizator  nucleu
– apel întrerupere software
– generare excepţie (eroare)
• nucleu  utilizator
– revenire din rutina de tratare a întreruperii

45
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Consecinţe

• codul unei aplicaţii nu poate rula în modul


nucleu
• avantaj: erorile unei aplicaţii nu afectează
alte programe
– aplicaţii
– sistemul de operare
• dezavantaj: pierdere de performanţă
46
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Structura nucleului

• nu este un program unitar


• colecţie de rutine care cooperează
• funcţii principale
– gestiunea proceselor
– gestiunea memoriei
– gestiunea sistemelor de fişiere
– comunicarea între procese
47
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

VII.2. Apeluri sistem

48
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Apeluri sistem (system calls)

• cereri adresate nucleului de către aplicaţii


• acţiuni pe care aplicaţiile nu le pot executa
singure
– numai în modul nucleu al procesorului
– motiv - siguranţa sistemului
• realizate prin întreruperi software
• similar apelurilor de funcţii
49
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Etapele unui apel sistem (1)

1. programul depune parametrii apelului


sistem într-o anumită zonă de memorie
2. se generează o întrerupere software
- procesorul trece în modul nucleu
3. se identifică serviciul cerut şi se apelează
rutina corespunzătoare

50
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Etapele unui apel sistem (2)

4. rutina preia parametrii apelului şi îi verifică


– dacă sunt erori - apelul eşuează
5. dacă nu sunt erori - realizează acţiunea
cerută
6. terminarea rutinei - rezultatele obţinute sunt
depuse într-o zonă de memorie accesibilă
aplicaţiei care a făcut apelul
51
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Etapele unui apel sistem (3)

7. procesorul revine în mod utilizator


8. se reia execuţia programului din punctul în
care a fost întrerupt
- se utilizează informaţiile memorate în acest scop
la apariţia întreruperii
9. programul poate prelua rezultatele apelului
din zona în care au fost depuse

52
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Apeluri sistem - concluzii

• comunicare între aplicaţie şi nucleu


– depunere parametri
– preluare rezultate
• acţiunile critice sunt realizate într-un mod
sigur
• mari consumatoare de timp
• apeluri cât mai rare - lucru cu buffere
53
Arhitectura calculatoarelor şi sisteme de operare - partea a II-a

Cum folosim bufferele


Exemplu - funcţia printf
• formatează textul, apoi îl trimite spre ecran
• nu are acces direct la hardware
– se foloseşte de un apel sistem
– write (în Linux)
• de fapt, printf depune textul formatat într-o
zonă proprie de memorie (buffer)
– doar când bufferul e plin se face un apel sistem
54

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

  • Curs 6
    Curs 6
    Document5 pagini
    Curs 6
    Emanuel Anton
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document9 pagini
    Curs 2
    Emanuel Anton
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document9 pagini
    Curs 3
    Emanuel Anton
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document8 pagini
    Curs 7
    Emanuel Anton
    Încă nu există evaluări
  • Introducere in Logica
    Introducere in Logica
    Document8 pagini
    Introducere in Logica
    Ciprian
    Încă nu există evaluări
  • Curs4 5
    Curs4 5
    Document15 pagini
    Curs4 5
    Emanuel Anton
    Încă nu există evaluări
  • Costache Negruzzi - Al. Lapusneanu
    Costache Negruzzi - Al. Lapusneanu
    Document11 pagini
    Costache Negruzzi - Al. Lapusneanu
    georgiana
    89% (45)
  • Curs13 PDF
    Curs13 PDF
    Document37 pagini
    Curs13 PDF
    Maftei Ervin
    Încă nu există evaluări
  • Introp Curs1
    Introp Curs1
    Document28 pagini
    Introp Curs1
    Vlad Marian
    Încă nu există evaluări
  • Progr Procedurala
    Progr Procedurala
    Document200 pagini
    Progr Procedurala
    Max Ciceu
    Încă nu există evaluări
  • 12 PDF
    12 PDF
    Document60 pagini
    12 PDF
    Emanuel Anton
    Încă nu există evaluări
  • Aplicatii C CPP Patrut
    Aplicatii C CPP Patrut
    Document218 pagini
    Aplicatii C CPP Patrut
    ElvisCodita
    Încă nu există evaluări
  • Curs9 Acso Fii
    Curs9 Acso Fii
    Document50 pagini
    Curs9 Acso Fii
    Biee
    Încă nu există evaluări
  • Curs9 PDF
    Curs9 PDF
    Document61 pagini
    Curs9 PDF
    Marius Donici
    Încă nu există evaluări
  • Curs1 ACSO
    Curs1 ACSO
    Document54 pagini
    Curs1 ACSO
    Alex Martinas
    Încă nu există evaluări
  • II.1.Programa Matematică Clasa 10 PDF
    II.1.Programa Matematică Clasa 10 PDF
    Document14 pagini
    II.1.Programa Matematică Clasa 10 PDF
    Lazar Mihai
    Încă nu există evaluări
  • Asm
    Asm
    Document20 pagini
    Asm
    Cãtãlin Marincia
    Încă nu există evaluări
  • Costache Negruzzi - Al. Lapusneanu
    Costache Negruzzi - Al. Lapusneanu
    Document11 pagini
    Costache Negruzzi - Al. Lapusneanu
    georgiana
    89% (45)
  • Asm Usage
    Asm Usage
    Document80 pagini
    Asm Usage
    stankiller
    Încă nu există evaluări
  • Cazare Tur 4 PDF
    Cazare Tur 4 PDF
    Document1 pagină
    Cazare Tur 4 PDF
    Emanuel Anton
    Încă nu există evaluări
  • Informatica Programa Intensiv
    Informatica Programa Intensiv
    Document5 pagini
    Informatica Programa Intensiv
    Darie Leolea
    Încă nu există evaluări
  • Mediul Polar AC
    Mediul Polar AC
    Document11 pagini
    Mediul Polar AC
    Emanuel Anton
    Încă nu există evaluări
  • Manual de Romana Cls. A X-A
    Manual de Romana Cls. A X-A
    Document10 pagini
    Manual de Romana Cls. A X-A
    Anton Emanuel
    Încă nu există evaluări