Modulele Windows
Asa cum am mai aratat Windows '95/'98 si Windows NT pot fi considerate sisteme de operare in timp ce Windows 3.1 sau Windows 3.11 sunt doar interfete grafice de exploatare ce datoreaza foarte mult sistemului de operare DOS. Cele doua versiuni nu realizeaza un multitasking adevarat deoarece procesorul nu poate sa aloce singur timp de calcul programelor ce lucreaza aparent paralel. In functionarea sistemului Windows trebuie avuta in vedere corelatia a trei componente: Kernel, User, GDI.
KERNEL este nucleul mediului Windows. Rolul lui este de a rezolva toate sarcinile elementare ale unui sistem de operare: incarca programele si realizeaza administrarea memoriei, regleaza impartirea timpului de calcul intre aplicatii, controleaza task-urile distincte. Programele KRNL386.EXE si KERNEL32.DLL constituie nucleul sistemului de operare, oferind suportul pentru functiile la nivelul jos de care are nevoie o aplicatie pentru a rula.
Kernel nu este responsabil cu functiile de intrare/iesire si de interfata cu utilizatorul, proprii unui sistem de operare. Denumirea de nucleu al sistemului de operare provine din faptul ca el interactioneaza numai cu Windows.
USER prin componentele sale USER.EXE si USER32.DLL nu se refera la utilizator, ci la comanda tuturor ferestrelor si administrarea acestora: continutul de informatie al ferestrei, structura de baza a lor, toate informatiile din meniuri si submeniuri. In afara ferestrelor modulul USER se ingrijeste si de alte elemente cum sunt casetele de dialog sau structurile de control apelabile prin butoane sau combinatii de taste. In acelasi timp, USER se ocupa cu incarcarea driverelor, perifericelor, supravegherea comunicatiei intre task-urile distincte, a ferestrelor, a iconurilor si aplicatiilor; realizeaza comanda cursorului si iconurilor. In cele din urma acesta gestioneaza intr-o oarecare masura resursele aplicatiilor: iconuri, meniuri, cimpuri de dialog pe care Windows le retine in memoria RAM.
GDI (graphic device interface) prin GDI.EXE si GDI32.DLL asigura toate afisarile pe ecran, imprimanta sau orice alt periferic contribuind la realizarea unei legaturi intre Windows si mediul exterior. Se administreaza procesul grafic la modul general, independent de dispozituvul folosit pentru afisare.
Atit pentru modulul USER, cit si pentru cel GDI, exista resurse de memorii speciale; daca ele sunt depasite atunci sistemul se poate bloca.
Mecanisme de gestionare a memoriei
Sub sistemul de operare DOS, fiecare program avea incorporat in fisierul executabil coduri pentru functiile de baza. Acest principiu functiona perfect, deoarece sub DOS intotdeauna rula un singur program care stapinea in exclusivitate memoria.
Sub Windows mai multe programe trebuie sa-si partajeze memoria disponibila, deoarece sistemul este cunoscut ca fiind un mare consumator de memorie RAM. Daca proiectantii de aplicatii ar fi incorporat fiecarui program codurile de baza pentru administrarea memoriei, a ferestrelor, afisarea caracterilor, imprimarea etc. memoria de lucru nu ar fi suficienta pentru incarcarea aplicatiilor.
Sub Windows exista patru principii de gestionare a memoriei interne, in sensul economisirii ei:
principiul DLL
principiul segmentelor de cod retrase
principiul replicarii instantelor active
principiul memorarii virtuale
Principiul DLL reprezinta o facilitate de gestionare a memoriei prin care se pot
introduce toate functiile de baza, care sunt necesare tuturor programelor in module care contin seturi de functii utilizate in comun de catre aplicatii.
Principiul DLL consta in faptul ca un program care se afla in executie 'stie' dinainte ce
functie trebuie sa foloseasca pentru a executa o anumita prelucrare si comunica astfel inca de la lansare ce DLL trebuie sa utilizeze. Daca Windows gaseste DLL-ul cautat, il incarca si-l executa, dupa care, la terminare reda controlul programului apelant.
Avantajul incontestabil pe care il dau fisierele DLL este economiserea memoriei necesare aplicatiilor care prin punerea in comun a functiilor de baza, ocupa mai putina memorie. Un fisier DLL se introduce o singura data in memorie indiferent cite programe ii acceseaza functiile. Toate facilitatile noi proprii aplicatiilor (OLE, multimedia) sunt introduse prin fisiere tip biblioteca de functii: DLL.