Sunteți pe pagina 1din 5

În interiorul fiecărui sistem de operare bate inima unui

procesor. Win95 este scris pentru familia de procesoare


IA32 (Intel Architecture 32 bits). Deoarece WinNT este un
sistem de operare pentru servere, el funcţionează atât pe
maşini Intel, cât şi pe MIPS, Alpha, R400, PowerPC, etc.
Pentru aplicaţii DOS, WinNT conţine un emulator pentru
lucrul pe 16 biţi.
Deoarece Win95 a fost gândit pentru păstrarea
compatibilităţii 100% cu aplicaţiile Win3.1 şi DOS, el şi-a
luat adio de la orice fel de portabilitate.
8086 - procesorul iniţial pentru DOS, lucrează numai în
modul real
80286 - introduce lucrul protejat şi mediul multitasking
80386 - principalul procesor ce oferă suport pentru
Win95. Din punct de vedere al sistemului de operare, 386,
486 şi Pentium pot fi considerate ca identice, diferenţele
dintre ele constând în sporirea vitezei de lucru prin diferite
metode şi artificii.

Intel 80286: (16 MB RAM maxim adresabili)


- mod de adresare real şi protejat, cu posibilitatea de
comutare de task-uri a fost neinspirat deoarece la trecerea
din modul real în cel protejat, computerul trebuia reboot-at.
Modul protejat pune la dispoziţia sistemului de operare
multitasking-ul. În modul protejat, registrul de segmente
este folosit pentru accesarea unei zone de memorie denumită
descriptor de 8 bytes lungime. În fiecare descriptor se găseşte
informaţia care duce la construirea adresei fizice.

Registrul de segment cu un selector pe 13 biţi


1 2 3 4 0
Deplasare
1 2 3 4 0

6
5
4
3
2
1 2 3 4 5 6 1 1 2 3 4 5 6
Adresa fizică
(însumare)
Descriptorul conţine în rest informaţii legate de solicitările
de protecţie a memoriei. Sistemul de operare setează toţi
descriptorii unui program într-o zonă contiguă de memorie
care constituie tabela Local Descriptor Table. Sistemul de
operare setează de asemenea şi tabela Global Descriptor
Table pentru a-şi aloca lui însuşi memorie şi pentru a
permite unor programe accesarea unei aceleiaşi zone de
memorie.
LDTR – Local Descriptor Table Register
GDTR – Global Descriptor Table Register
Conţin baza tabelelor pentru programul care tocmai se
execută. Dacă sistemul de operare comută un task, el va
rescrie registrul LDTR. În general, GDTR rămâne
neschimbat. Cele două registre nu pot fi setate decât de
sistemul de operare prin intermediul unor instrucţiuni
privilegiate.
Două aspecte ale modului protejat:
- introduce noţiunea de protecţie a memoriei, iar sistemul de
operare poate fixa un mediu de lucru în care mai multe
programe pot rula concurent în zone de memorie separate
proprii.
- arhitectura dă posibilitatea accesului indirect la memorie
prin intermediul LDT şi GDT, permiţând sistemului de
operare să utilizeze orice zonă din RAM ca un segment.
Segmentele unui program nu este necesar să fie contigue, ci
pot fi chiar şi de dimensiuni diferite. Dacă un program
doreşte, el poate accesa toată memoria descrisă de LDT-ul
propriu. Programul nu ştie şi nu trebuie să poarte grija
locului exact din memoria fizică în care se află segmentele.

Intel 80386: (4 GB RAM maxim adresabili)


Se dezvoltă din 286 pe două căi distincte:
- intern, totul creşte de la 16 la 32 de biţi (rezultă 232 = 4
GB RAM accesibili). 80386 poate rula în mod virtual 8086,
286 Protejat şi pe 32 de biţi
- îmbunătăţeşte schema protecţiei memoriei astfel încât
aceasta să poată fi privită linear şi se pot crea sisteme de
operare cu o schemă completă de memorie virtuală
paginată. Din această cauză, tabela descriptorilor pe 32 de
biţi trebuie să treacă prin încă un nivel de interpretare
înainte de utilizarea ei ca adresă actuală de memorie.

Descriptorul A
adresa de bază biţii 0-15 limita biţii 0-15
Acest tip de adresare este utilizat în modul virtual 8086. În
modul protejat 286 şi în adresarea pe 32 de biţi este ignorat.
Descriptorul B
adresa G B/D B/D 0 0 limita P DPL DPL S TYPE TYPE TY
de 16-19
bază
24-31

Pentru modul 286 protejat se folosesc descriptorii A şi


adresele de bază 16-23 de la descriptorul B.
Pentru modul de adresare pe 32 de biţi se foloseşte
descriptorul A, precum şi adresele de bază din descriptorul
B

G – granularitatea – Limita de adresare este de 1 MB, astfel


încât granularitatea defineşte:
G = 0 → adresare de maxim 1 MB,
G = 1 → adresare a 1 GPagină = 1.000.000  4 KB = 4
GB
B/D – determină dacă segmentul este de date sau de cod,
precum şi caracteristica de dimensiune a segmentului
D = 0 → cod 286
D = 1 → cod 386
B = 0 → segment < 64KB
B = 1 → segment > 64KB
P – present, arată dacă segmentul este prezent în memoria
fizică sau pe disc:
P = 0 → segmentul nu se află în memorie; se generează
o întrerupere în urma căreia segmentul va fi adus de pe
disc
P = 1 → segmentul se află în RAM
DPL – Descriptor Priviledge Level – determină nivelul de
privilegiu al programului
Acest descriptor este folosit mai târziu de sistemul de
operare pentru sistemul de protecţie. Windows nu
foloseşte decât două din aceste nivele: nivelul 0 (pentru
sistemul de operare) şi nivelul 3 (pentru programele de
aplicaţii). Programele de Ring3 nu au privilegiul de a
executa instrucţiuni de Ring0 (nu se pot porni / referi /
opri întreruperi).
S – segment
S = 0 → este vorba de altceva în afară de un segment de
memorie (Ex.: o structură caracteristică unei
întreruperi)
S = 1 → este vorba de un segment de memorie
TYPE – o construcţie de trei biţi ce oferă opt situaţii
posibile. Acest câmp spune sistemului de informaţie ce tip de
informaţie este referită, în scopul implementării
mecanismelor de protecţie.
read-only
read-write
system
A – access – indică faptul că segmentul respectiv a fost cel
puţin odată referit. Orice referire a segmentului face ca
bitul să fie setat. Managerul de memorie utilizează bitul
A pentru schema de memorie virtuală. Un segment care
nu este niciodată accesat e un bun candidat pentru
evacuarea pe disc.

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