Sunteți pe pagina 1din 2

1.Comunicarea interprocese LINUX 2.varianta system V 3.Arhitectura si componentele sistemului 4.

Sistemul de fişiere – cum este organizat şi caracteristici


Pachetul de comunicare interprocese din varianta System V Nivelul de Abstractizare a Hardware-ului
Un proces este defapt un program care se află în execuţie şi Sistemele MS-DOS foloseau sistemul de fişiere FAT (File
conţine trei mecanisme, şi anume mesaje, memorie partajată şi HAL este un nivel de software care ascunde diferenţele de
constă dintr-un şir de octeţi pe care CPU-ul le interpretează ca Allocation Table). Sistemul de fişiere FAT pe 16 biţi are mai
semafoare. Mesajele permit proceselor să trimită fluxuri de hardware faţă de nivelele superioare ale sistemului de operare,
şi instrucţiuni maşină (numit "text"), date şi stivă. Mai multe multe neajunsuri, incluzând fragmentarea internă, limitarea
date formatate la procese arbitrare, memoria partajată permite pentru a ajuta portarea NT-ului. HAL exportă o interfaţă de
procese sunt executate simultan, pe unele sisteme doar în spaţiului la 2GB şi totodată nu prezintă protecţie la accesul la
ca procesele să partajeze părţi din spaţiul lor de adrese virtuale, maşină virtuală care este folosită de nucleu, executiv şi drivere.
aparenţă, ordinea execuţiei depinzând de planificarea acestora fişiere. Sistemul FAT pe 32 de biţi rezolvă unele dintre
iar semafoarele permit sincronizarea execuţiei proceselor. HAL oferă deasemenea suportul pentru multiprocesare
de către kernel. Deasemenea mai multe procese pot fi instanţe probleme, cum ar fi dimensiunea şi fragmentarea, dar
Implementate ca şi unităţi, aceste mecanisme au anumite simetrică. Din motive de performanţă anumite drivere de I/O
ale unui acelaşi program. performanţa şi alte caracteristici sunt încă destul de slabe faţă
proprietăţi comune: (în versiunea 4.0 şi driverele grafice) pot accesa direct
Un proces se execută urmând o secvenţă strictă de instrucţiuni, de alte sisteme de fişiere moderne. Sistemul NTFS este mult
• Fiecare mecanism conţine o tabelă ale cărei intrări descriu hardware-ul.
conţinută în proces, şi nu face salturi la secvenţele altor mai bun. Acesta a fost proiectat cu multe caracteristici, cum ar
toate instanţele mecanismului. Nucleul
procese. El îşi citeşte şi scrie secţiunile de date şi stivă, dar nu fi recuperarea datelor, securitate, toleranţă la defecte, fişiere şi
• Fiecare intrare conţine o cheie numerică, care reprezintă Nucleul NT-ului oferă fundamentul pentru executiv şi pentru
poate citi sau scrie datele şi stiva altui proces. Procesele sisteme de fişiere mari, fluxuri de date multiple, codificare
numele ales de utilizator. subsisteme. Nucleul nu este niciodată eliminat din memorie şi
comunică cu alte procese şi cu lumea înconjurătoare doar prin UNICODE a numelor şi compresia fişierelor. Pentru
• Fiecare mecanism conţine un apel de sistem de tip get pentru execuţia sa nu este niciodată întreruptă pentru planificarea altor
apeluri sistem. compatibilitate NT oferă suport pentru sistemele de fişiere
a crea o nouă intrare sau pentru a regăsi una existentă, procese. Acesta are patru mari responsabilităţi: planificarea
Practic un proces pe un sistem UNIX este o entitate care este FAT şi OS/2 HPFS.
parametri apelului includ o cheie şi indicatori. firelor de execuţie, tratarea întreruperilor şi a excepţiilor,
creată priri apelul sistem fork. Orice proces, cu excepţia Structura internă
• Pentru fiecare mecanism IPC, nucleul foloseşte următoarea sincronizarea de nivel scăzut dintre procesoare şi revenirea
procesului 0 este creat când un alt proces execută acest apel Entitatea fundamentală în sistemul NTFS este volumul. Un
formulă pentru găsirea indexului în tabela structurilor de date după o cădere de tensiune.
sistem. Procesul care a apelat fork se numeşte proces părinte, volum este creat de utilitarul NT de administrare a discurilor şi
din descriptor: index = descriptor modulo (numărul de intrări Nucleul este orientat pe obiecte. Un tip de obiect sub NT este
iar procesul nou creat se numeşte procesul fiu. Fiecare proces este bazat pe o partiţie logică a discului. Volumul poate ocupa
în tabelă) un tip de dată definit de sistem care are un set de atribute
are doar un singur proces părinte, dar poate avea mai multe o porţiune a unui disc, poate ocupa întregul disc sau se poate
• Fiecare intrare conţine alte informaţii de stare, ca şi ID-ul (valori) şi un set de metode (funcţii sau operaţii). Un obiect
procese fii. Nucleul identifică fiecare proces prin numărul de întinde peste mai multe discuri. în NTFS, toate metadate-le, ca
ultimului proces care a actualizat intrarea (a trimis un mesaj, a este doar o instanţă a unui tip de obiect' particular. Nucleul îşi
proces al acestuia, numit identificator de proces (PID). de exemplu informaţiile despre volum, sunt stocate în fişiere
recepţionat un mesaj, a ataşat memorie partajată, ş.a), şi îndeplineşte funcţia prin folosirea unui set de obiecte sistem
Procesul 0 este un proces special care este creat când se obişnuite.
momentul ultimului acces sau actualizare. ale căror atribute memorează datele nucleului şi ale căror
iniţializează sistemul, după ce lansează un proces fiu (procesul NTFS nu tratează sectoare individuale de pe disc, ci foloseşte
• Fiecare mecanism conţine un apel de sistem "control" metode efectuează activităţile nucleului.
1), procesul 0 devine procesul swapper (cel care gestionează clustere-le ca şi unitatea de alocare a discului. Un cluster este
pentru a interoga starea unei intrări, pentru a seta informaţii de Nucleul foloseşte două seturi de obiecte. Primul set sunt
memoria virtuală). Procesul 1, cunoscut sub numele de inlt alcătuit dintr-un număr care este putere a lui 2 de sectoare de
stare, sau pentru a şterge intrarea din sistem. Când un proces obiectele dispatcher. Acestea controlează planificarea şi
este "strămoşul" tuturor proceselor din sistem. disc. Dimensiunea clusterului este configurată în momentul
interoghează starea unei intrări, nucleul verifică dacă procesul sincronizarea în sistem. Exemple de astfel de obiecte sunt
Nucleul, ca urmare a unui apel exec încarcă un fişier executabil creării sistemului de fişiere NTFS. Dimensiunea implicită
are drepturi de citire după care copiază datele din intrarea evenimente, mutanţi, mutex-uri, semafoare, fire de execuţie şi
în memorie. Procesul încărcat constă din cel puţin trei părţi, pentru volume de până la 512MB este dimensiunea sectorului,
respectivă la adresa utilizator. In mod similar, pentru a seta temporizatoare (timer). Obiectul eveniment este folosit pentru a
numite regiuni: text, date şi stivă. Regiunile text şi date adică 512 octeţi, pentru cele de până la 1GB este de 1KB,
parametri unei intrări, nucleul verifică dacă ID-ul utilizator al înregistra apariţia unui eveniment şi de a îl sincroniza cu o
corespund secţiunilor de text şi dată ale fişierului executabil, pentru cele de până la 2GB de 2KB şi 4KB pentru volume mai
procesului corespunde ID-ului de utilizator sau al ID-ului celui acţiune. Mutant-ul oferă excludere mutuală în mod nucleu sau
dar regiunea de stivă este creată automat şi dimensiunea mari. Această dimensiune a clusterului este mult mai mică
care 1-a creat, sau dacă acel proces este rulat de supervisor, utilizator având şi noţiunea proprietarului. Mutex-u\ care este
acestuia este ajustată dinamic în timpul execuţiei. decât cea pentru sistemul FAT pe 16 biţi, iar această
dreptul de scriere nefiind suficient pentru a modifica disponibil doar în mod nucleu oferă excludere mutuală fără
Deoarece în sistemul UNIX un proces poate rula în două dimensiune mică reduce fragmentarea internă.
parametri. Nucleul copiază datele utilizator în intrarea de posibilitatea apariţiei interblocării. Un obiect semafor se
moduri, kernel sau utilizator, se folosesc stive separate pentru Familia Windows NT suportă compresie pe:fișiere individuale,
tabelă, setând ID-ul utilizator, ID-ul de grup, drepturile şi alte comportă ca şi un numărător sau poartă pentru controlul
fiecare mod. Stiva utilizator conţine argumentele, variabilele directoare,volume întregi
câmpuri depinzând de tipul mecanismului. Nucleul nu schimbă numărului de fire de execuţie care accesează o anumită resursă.
locale şi alte date necesare funcţiilor care se execută în mod
ID-ul utilizator şi cel de grup al celui care a creat intrarea, Obiectul fir de execuţie este entitatea care este executată de
utilizator. Stiva kernel conţine datele necesare pentru funcţiile
astfel acel utilizator îşi menţine drepturile de control asupra nucleu şi este asociat cu un obiect proces. Obiectele
care se execută în mod kernel. Funcţiile şi datele din această e
intrării respective. în final, un utilizator poate şterge o intrare temporizator sunt folosite pentru a urmări scurgerea timpului
stivă se referă la funcţii şi date din kernel şi nu din programul cluster de până la 4KB. Când cluster-ul este mai mare de 4KB,
dacă este supervisor sau dacă ID-ul său de proces se şi de a semnala depăşiri de timp pentru operaţii care iau prea
utilizator. Stiva kernel a unui proces este vidă când un proces funcțiile de compresie nu sunt disponibile.
potriveşte cu oricare câmp de ID din intrarea respectivă. mult timp şi trebuiesc întrerupte.
rulează în mod utilizator
Nucleul incrementează numărul de descriere astfel încât Al doilea set de obiecte nucleu cuprind obiecte de control.
Contextul unui proces este starea acestuia, cum este ea definita parte a sa este comprimată sau nu.
următoarea instanţă va avea un alt descriptor, astfel apelurile Aceste obiecte includ apeluri de procedură asincrone,
de textul său, de valorile variabilelor utilizator globale şi zervă spațiu
de sistem vor eşua dacă un proces va încerca să acceseze o întreruperi, notificări de curent, starea curentului, procese şi
structurilor de date, de valorile regiştrilor pe care le foloseşte, pentru dimensiunea necomprimată. Sistemul ia înapoi spațiul
intrare printr-un descriptor vechi profile. Apelul de procedură asincronă este folosit pentru a
de valorile din zona din tabela de procese care îi corespunde nefolosit pe măsură ce fiecare buffer este comprimat.
intra într-un fir de execuţie care rulează şi a executa o
precum şi din zona u area şi conţinutul stivelor utilizator şi Encrypting File System – criptare/decriptare
3.Varianta BSD procedură. ()biectul întrerupere leagă o rutină de tratare a unei
kernel. "Text"-ul sistemului de operare şi structurile sale de folosită pentru a stoca
Programele de genul mail, remote file transfer, remote login întreruperi cu o sursă de întreruperi. Obiectul notificare de
date globale, sunt partajate de toate procesele, dar ele nu fișiere criptate pe volume NTFS.
care trebuie să comunice cu alte maşini obişnuiau să folosească curent este folosit pentru a se apela automat O rutină după ce
constituie parte a contextului unui proces. ru utilizatorul care a criptat
metode particulare pentru a stabili conexiunea şi pentru a s-a produs o cădere de tensiune, iar obiectul starea curentului
fișierul.
schimba date. este folosit pentru a verifica dacă tensiunea a căzut. Un obiect
EFS folosește criptare cu chei simetrice în combinație cu
6.Servicii (concepte) Deoarece sistemul UNIX creează noi procese doar prin proces reprezintă spaţiul de adrese virtuale şi informaţia de
tehnologii cu chei publice.
mecanismul fork, procesul server trebuie să existe înainte ca control necesare pentru a executa setul de fire de execuţie
Orice sistem de operare are nevoie de o modalitate de a
procesul client să încerce să stabilească o conexiune. De obicei asociate unui proces. în final, obiectul profil este folosit pentru
executa lucrări în fundal, care să se poată executa indiferent de
procesul init creează un proces server care aşteaptă pe un canal a măsura timpul folosit de un bloc de cod.
cine foloseşte maşina. Aceste lucrări în fundal pot executa criptată cu un algoritm cu chei publice/private și
de comunicaţie până când primeşte o cerere pentru un serviciu Ca şi multe alte sisteme de operare moderne, NT are noţiunile
diferite servicii importante pentru sistem sau utilizatori. stocată împreună cu fișierul în câmpuri DDF și DRF
după care urmează un protocol pentru a completa iniţializarea de procese şi fire de execuţie. Procesul are un spaţiu de
Serviciile Windows NT sunt implementate ca şi executabile După ce fișierul este criptat doar utilizatorii care au DDF sau
conexiunii. Programele client şi server de obicei aleg mediul şi adresare virtual şi informaţii ca de exemplu o prioritate de bază
normale, dar urmăresc un protocol intern specific care le DRF-uri corespunzătoare pot accesa fișierul.
protocoalele ţinând cont de informaţiile din bazele de date de şi o afinitate pentru unul sau mai multe procesoare. Fiecare
permite să interacţioneze în mod corespunzător cu Service folosind cheia lor
aplicaţie, sau de informaţii efectiv codate în ele. proces are unul sau mai multe fire de execuţie, care sunt
Control Manager (SCM). în continuare se vor prezenta privată, pot accesa fișierul.
Implementarea streams din System V oferă un mecanism unităţile de execuţie planificate de nucleu. Fiecare fir de
modalităţile de creare şi instalare în Windows NT a unor NTFS – Integritatea și Recuperarea
elegant pentru suportul de reţea, deoarece modulele de execuţie are propria stare, incluzând o prioritate, o afinitate de
servicii Win32 simple. Odată ce serviciile simple sunt înţelese,
protocoale pot fi combinate într-un mod flexibil. procesor şi informaţii de contabilizare.
construcţia unora mai complicate este destul de simplă, volumului prin folosirea de tehnici standard de logare a
Acestei variante i se acociaza modelul de comunicare Cele şase posibile stări ale firelor de execuţie sunt: pregătit
deoarece toate serviciile trebuie să conţină acelaşi cod de tranzacțiilor și recuperare.
interprocese prin socluri. (ready), în aşteptare (standby), în execuţie (running), în
interfaţă cu SCM. Odată ce cerinţele SCM sunt îndeplinite, nu t nedorit, NTFS restaurează
aşteptare (waiting), în tranziţie itransition) şi terminat
există diferenţe majore dintre executabilele serviciilor şi ale consistența printr-o procedură de recuperare care accesează
7.Sistemul de Securitate al NT-ului (terminated). Pregătit înseamnă în aşteptare pentru execuţie.
programelor normale. informațiile stocate în fișierul log.
- Este un sistem complex care oferă multe posibilități dar care Firul de execuţie pregătit cu cea mai mare prioritate este trecut
Concepte de Bază
pentru a putea fi folosit corect trebuie înțeles în starea în aşteptare, care înseamnă că va fi următorul fir de
Serviciile sunt de două feluri. Servicii Driver care folosesc clustere pentru a minimiza efectele unor sectoare defecte de pe
- Pentru majoritatea cazurilor uzuale există editoare specifice execuţie care va fi executat. într-un sistem multiprocesor,
protocoale device driver pentru a interfaţa NT-ul cu diferite un volum NTFS
de drepturi în interfețele de gestionare pentru fiecare procesor este păstrat un fir de execuţie în starea
piese hardware. Serviciile Win32, pe de altă parte, NTFS – Permisiuni
-Se poate scrie cod care să modifice informațiile de securitate în aşteptare. Un fir de execuţie este în execuţie când este
implementează procese de fundal generale folosind API-ul În orice rețea Windows se pot seta permisiuni de partajare
exact ca și din acele interfețe de gestiune executat de un procesor. Acesta se va executa până ce este
Win32 normal. în continuare accentul va fi pus pe serviciile pentru discuri și directoare.
-Exemple: întrerupt de un fir cu o prioritate mai mare, până ce se termină,
Win32 din cauza utilităţii lor generale şi a uşurinţei creării lor. -Permisiunile sunt disponibile pentru discuri formatate NTFS.
-Se poate crea un server de canale pe un sistem, pe care, de până ce cuantumul de timp alocat îi expiră sau până când
Orice programator NT utilizând SDK-ul NT obişnuit (sau -Avantajul cu permisiunile NTFS este că ele afectează atât
exemplu, doar administratorii de pe alte sisteme să îl poată apelează un apel sistem cu blocare, de exemplu o operaţie de
Visual C++) şi cu acces administrativ la o maşină NT, poate utilizatorii locali cât și cei de rețea.
accesa I/E. Un fir de execuţie este în starea în aşteptare când aşteaptă
implementa şi instala propriile servicii Win32. în toate cazurile -Sunt bazate pe permisiunile acordate fiecărui utilizator la
-Se poate crea un mutex (semafor de excludere mutuală) cu după un semnal ca de exemplu terminarea unei operaţii de I/E.
în care se doreşte crearea unui program care să pornească la logon.
attribute de securitate, care să permită doar anumitor utilizatori Un fir de execuţie nou este în tranziţie până când aşteaptă
bootare şi să ruleze continuu în fundal, cel mai corect este
sau grupuri să îl acceseze pentru resursele necesare pentru execuţie. Un fir de execuţie
utilizarea unui serviciu Win32. 5.Fire de execuţie
-Se poate asocia oricărui obiect (de exemplu unui fir de intră în starea terminat când se termină.
Serviciile se prezintă prin interfaţa standard a NT-ului, şi
execuţie, mutex, canal, fişier sau intrare de registry) abilitatea Executivul Firele de execuţie sunt una dintre cele mai utile avantaje ale
anume Control Panel. Aici se găseşte un Applet denumit
de a crea o intrare în logul de evenimente în momentul Executivul NT oferă un set de servicii pe care toate sistemului Windows NT/9x şi a Win32 API. Firele de execuţie
Services care afişează o listă cu toate serviciile Win32
accesului la acesta subsistemele de mediu le pot utiliza. Serviciile sunt din permit împărţirea unui singur program în multiple fire de
disponibile. Acest applet permite pornirea, oprirea,
Concepte ale sistemului de securitate următoarele grupe: administrare de obiecte (object manager), execuţie.
întreruperea şi reluarea serviciilor. Un al doilea dialog, accesat
-De exemplu, se poate crea un fişier pe un volum formatat administrare memorie virtuală {virlual-memory manager), UNIX este un sistem de operare cu multi-tasking preemptiv.
prin apăsarea butonului Startup, din Appletul Services, permite
NTFS şi permite accesul oricărei combinaţii de utilizatori: administrare procese (process manager), facilitatea de apel Sistemul de operare şi nu aplicaţiile individuale, este
schimbarea modului în care porneşte serviciul şi ce cont
-Putem permite accesul doar la proprietar local de procedură, administrare I/E şi monitor de referinţe de responsabil de acordarea CPU-ului tuturor proceselor care
implicit va fi utilizat. Un serviciu poate porni în mod automat
-Putem permite accesul unui singur utilizator la un moment dat securitate. rulează. UNIX alocă unui proces o unitate de timp din timpul
la bootare, poate fi dezactivat total, sau poate fi setat pe pornire
-Putem permite accesul mai multor utilizatori la un moment dt Subsistemele de mediu CPU-ului, de exemplu 20 milisecunde, iar când această
manuală. Când un serviciu este pornit manual, utilizatorul
-Putem crea un grup NT şi permite accesul oricărui membru al Subsistemele de mediu sunt procese de mod utilizator aşezate cantitate expiră, sistemul de operare întrerupe procesul şi dă
poate preciza parametri de start. Pentru a putea lucra cu
acestui grup deasupra serviciilor executivului nativ NT. Rolul lor este următoarea unitate de timp CPU unui alt proces. O maşină
Appletul Services utilizatorul trebuie să fie administratorul sau
- Putem crea un grup NT şi permite accesul oricărui membru al de a executa UNIX poate să ruleze sute de procese rulând simultan şi totuşi
un utilizator cu drepturi speciale.
acestui grup, şi refuza apoi accesul unor membri specifici ai programe dezvoltate pentru alte sisteme de operare, incluzând să poată răspunde destul de rapid la comenzile utilizatorului.
Sistemul Windows NT este furnizat cu un număr de servicii
grupului Windows pe 16 biţi, MS-DOS, POSIX, şi aplicaţii OS/2 mod Dacă un proces se blochează, acesta nu are nici un efect asupra
pre-instalate care tratează de exemplu mesageria, planificarea
caracter pe 16 biţi. celorlalte, deoarece în continuare sistemul de operare deţine
comenzilor cu comanda "at", şi altele. Când se creează noi
NT foloseşte subsistemul Win32 ca şi mediu de operare controlul asupra alocării CPU-ului.
servicii, acestea trebuiesc întâi instalate, pentru a le insera în
principal. Tot acesta este folosit pentru a lansa toate procesele. Windows NT (şi Windows 9x) sunt sisteme de operare care
lista tratată de appletul services. Procesul de instalare adaugă
obiect din sistem. Rolul sentry este acela de a monitoriza cine Dacă executabilul nu este unul nativ Win32, acest mediu folosesc multi-tasking preemptiv, şi multi-threading. Deoarece
informaţii despre noul serviciu, ca de exemplu numele,
anume foloseşte obiectul şi cum anume o utilizează – auditare. verifică dacă subsistemul corespunzător rulează, dacă nu atunci foloseşte multi-tasking preemptiv, oferă acelaşi răspuns rapid
denumirea executabilului, tipul de pornire, etc, în registry,
Descriptorul de securitate acesta este lansat ca şi un proces utilizator. După aceasta şi independenţă a proceselor ca şi sistemele UNIX. Multi-
astfel încât SCM, la o nouă pornire, să aibă toate informaţiile
Win32 creează un proces pentru a rula aplicaţia şi trece threading-ul merge cu un pas şi mai departe. Un program
despre noul serviciu.
DWORD ServiceThread(LPDWORD param) { while (1) { Beep(200,200);
-Un identificator de proprietar, care identifică proprietarul controlul subsistemului respectiv. individual implicit conţine un fir de execuţie, dar poate fi
Sleep(beepDelay); } return 0; } curent al obiectului Deoarece fiecare subsistem este executat ca şi un proces împărţit în mai multe fire de execuţie independente astfel încât,
// Initializam serviciul prin pornirea firului sau BOOL -Un identificator al grupului principal utilizator separat, o defecţiune apărută într-unui dintre acestea de exemplu, un fir de execuţie al unei aplicaţii poate trimite un
InitService() { DWORD id; / -O listă sistem de control al accesului, sau SACL (System nu afectează pe celelalte. Excepţia este Win32, care oferă toate fişier la o imprimantă în timp ce un altul preia comenzile date
/ Pornim firul serviciului
threadHandle = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)
Access Control List), care conţine informaţii de auditare capabilităţile de interacţiune cu tastatura, mouse-ul şi grafica. de utilizator. Această mică schimbare în proiectarea
ServiceThread, 0, 0, &id); if (threadHandle==0) return FALSE; else { -O listă arbitrară de control al accesului, sau DACL Dacă acesta se defectează atunci întreg sistemul este programului poate reduce în mod semnificativ aşteptarea la
runningService = TRUE; return TRUE; } } (Discretionary Access Control List), care determină care dezactivat, singurul mod de a mai interveni în acest caz este care ar fi supus utilizatorul în timpul calcule îndelungate,
utilizatori şi grupuri pot şi care nu pot să acceseze obiectul prin acces de la distanţă. redesenări sau alte operaţii.
Discretionary Access Control List Mediul MS-DOS. Multi-threading-ul permite exploatarea avantajelor oferite de
-ul este inima sistemului de control al accesului Mediul Windows pe 16 biţi. CPU-uri multiple, disponibile în multe maşini NT high-end.
Mediul Win32
Control List), care conţine intrări de control al accesului, sau Subsistemul POSIX
ACE-uri (Access Control Entries). Subsistemul OS/2

ce aceştia pot sau nu pot să facă cu obiectul.


Comunicarea în rețea Gestionarea Memoriei Memoria virtual
- În API există două facilităţi care suportă comunicaţiile în Programul trebuie să fie adusă în memorie şi plasat într-un Memoria virtuală – separarea memoriei logice utilizator de
reţea:Mailslots, Named pipes proces pentru a putea fi rulat. memoria fizică.
-API-ul Win32 suportă în mod direct comunicaţiile în reţea - Coada de intrare (Input queue) – colecţie de procese aflate pe trebuie să fie în memorie pentru
Exemple: disc care aşteaptă să fie aduse în memorie pentru a rulan execuţie.
-un sistem de multi-conferinţă în reţea: programul. fel mult mai mare decât
orice mesaj introdus va fi transmis la toţi utilizatorii din reţea -Programele utilizator trec prin mai mulţi paşi înainte de a fi spațiul fizic de adrese.
pentru implementare în general se folosesc mailslots rulate.
deoarece acestea permit o uşoară distribuţie a informaţiei Legarea instrucţiunilor şi a datelor la adrese de memorie poate procese.
-pentru transmisia unei cantităţi mari de date între două maşini, avea loc la trei etape diferite.
în mod normal se utilizează conexiuni punct-la-punct virtuală poate fi implementată prin:
plementare se pot folosi named pipes apriori, se poate genera cod absolut; trebuie recompilat în
ţii cazul schimbării locaţiei de start.
conectându-se individual la acesta prin canale cunoscută la Paginare la cerere
Există cel puțin două modalităţi de comunicare folosind compilare atunci trebuie generat cod relocatabil.
funcţiile native Win32 API: dacă
mailslot, o maşină poate transmite un mesaj procesul poate fi mutat în timpul execuţiei dintr-un segment de
care este primit de toate celelalte maşini de pe reţea memorie în altul. Necesită suport hardware pentru maparea
named pipe), o maşină poate să aleagă o adreselor (ex., regiştri de bază şi limită). Copy-on-Write
altă maşină şi să realizeze o conexiune dedicată cu acesta Swapping Copy-on-Write (COW) permite atât proceului părinte cât și
Toate segmentele sunt conectate unele la altele printr-un router orar din memorie pe un celui fiu ca inițial să partajeze aceleași pagini în memorie.
astfel ca ele să poată să comunice unele cu altele, aşa cum este mediu de stocare secundar şi adus înapoi în memorie pentru Dacă oricare proces modifică o pagină partajată, doar atunci ea
arătat mai jos. continuarea execuţiei. este copiată.
e secundar – disc rapid destul de mare ce
pentru a putea stoca copii ale tuturor imaginilor de memorie doar paginile modificate vor fi copiate.
pentru toţi utilizatorii; -un fond (pool) de pagini
trebuie să ofere acces direct la aceste imagini de memorie. inițializate cu zero.
– variantă de swapping folosită pentru Algoritmi de înlocuire de pagini
algoritmi de planificare bazate pe prioritate; procesul de Algoritmul First-In-First-Out (FIFO)
prioritate scăzută este eliminat astfel încât un proces de Algoritm Optimal
În general:
prioritate mai mare să poată fi încărcat şi executat. pentru cel mai mult
timp.
total de transfer este direct proporţional cu cantitatea de Algoritmul Cel Mai Puţin Folosit(Least Recently Used (LRU))
Folosind mailslots şi canale (named pipes), este posibilă
memorie transferată (schimbată). Algoritmi de numărare
construcţia a trei arhitecturi de comunicare:
eriri care au fost
, point-to-point, client/server
sisteme (i.e., UNIX, Linux, and Windows). efectuate la fiecare pagină.
Conexiuni Mailslot
-urile sunt extrem de uşor de creat, iar citirea şi Problema alocării dinamice a memoriei
Cum să satisfaci o cerere de dimensiune n dintr-o listă de găuri
scrierea sunt efectuate prin funcţiile API normale ReadFile şi
libere.
WriteFile.
First-fit: Alocă primul bloc liber care este destul de mare.
ale specială transmisă
-fit: Alocă cel mai mic bloc care este destul de mare;
funcţiei CreateMailslot determină sistemul să creeze un
trebuie căutată întreaga listă, cu excepţia cazului în care lista
mailslot în locul unui fişier normal.
este ordonată după dimensiune. Produce cel mai mic bloc
rămas.
"\\.\mailslot\[cale]nume".
-fit: Alocă cel mai mare bloc liber;trebuie deasemenea
Când mailslotul este creat, se pot specifica lungimea
să caute întreaga listă. Produce cel mai mare bloc rămas.
maximă a unui mesaj şi timpul în care expiră operaţia de citire.
First-fit şi best-fit sunt mai bune decât worst-fit în termeni de
Canale (Named Pipes)
viteză şi utilizarea spaţiului.
uri, canalele pot să spună dacă Paginarea
adrese logice ale unui proces poate fi necontinuu;
celălalt capăt nu funcţionează bine
procesului îi este alocată memorie fizică când acesta din urmă
devine disponibilă.
serverul
de dimensiune fixă numite
dacă un alt utilizator
cadre(dimensiunea este putere a lui 2, între 512 şi 8192 octeţi).
încearcă să se conecteze la receptor, conexiunea va eşua cu
ri de aceeaşi dimensiune
mesajul de eroare "access denied". Aceasta este din cauza
numite pagini.
sistemului de securitate NT.
u funcţia CreateNamedPipe va fi
întotdeauna de forma:
găsim n cadre libere şi să încărcăm programul.
\\.\pipe\[cale]nume
pentru translatarea adreselor
Canalele sunt deseori folosite în sisteme client/server, unde
logice la cele fizice.
serverul foloseşte o abordare multi-fir pentru a trata multiple
Segmentarea
conexiuni simultan.
utilizator asupra memoriei.

unitate logică ca de exemplu:program principal,procedură,


funcţie,metodă,obiect,variabile locale, variabile globale.
Segmentare cu paginare – MULTICS
blema fragmentării
externe şi a timpilor mari de căutare prin paginarea
segmentelor.
ntarea pură în aceea că intrarea în
tabela de segmente conţine nu adresa de bază a segmentului ci
adresa de bază a tabelei de pagini pentru acest segment.

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