Sunteți pe pagina 1din 33

Curs 3

Structuri de sisteme de
operare

Sisteme de operare
Lect. Dr. Ozten CHELAI

Facultatea de Matematica si Informatica


Universitatea Ovidius Constanta

Curs2 SO - lect. dr. Ozten Chelai, 2009-2010 1


Medii de calcul

 Traditional (calculator PC conectat la retea)


 Web (suport pentru Internet)
 Webul a devenit omniprezent (ubiquitous, pervasive)
 PC-uri si noi exchipamente permit acces web
 O noua categorie de echipamente server pentru gestiunea traficului web: load balancers
 Utilizarea SO existente (Windows, Linux, etc)

 Embedded (inglobat) – echipamente specializate (medicale,


automobile, etc.)

Curs SO - lect. dr. Ozten Chelai, 2009-2010 2


Sisteme de operare Microsoft
 MS-DOS (realizat împreună cu IBM; versiuni: 1.0–6.22)
 Windows CE (Embedded Compact) (sistem de operare pentru handhelds, dispozitive integrate
(imbedded devices) şi aplicaŃii în timp real)
 Windows Mobile (bazat pe Windows CE, dar pentru aparate şi mai mici)
 Versiuni Windows bazate pe DOS
 Windows 1.0
 Windows 2.0
 Windows 3.0 (prima versiune cu succes comercial mare)
 Windows 3.1x
 Windows 3.2 (numai pentru l. chinezească)
 Windows 9x
 Windows 95 (cunoscut şi drept Windows 4.0)
 Windows 98 (cunoscut şi drept Windows 4.1)
 Windows Millennium Edition (prescurtat deseori drept Windows ME) (cunoscut şi drept Windows 4.9)
 OS/2 (realizat împreună cu IBM)
 Windows NT
 Windows NT 3.1
 Windows NT 3.5
 Windows NT 3.51
 Windows NT 4.0
 Windows 2000 (cunoscut şi drept Windows NT 5.0)
 Windows XP (cunoscut şi drept Windows NT 5.1) (cod: Whistler)
 Windows Server 2003 (cunoscut şi drept Windows NT 5.2) (cod: Whistler Server)
 Windows Fundamentals for Legacy PCs pentru PC-uri "vechi" (cunoscut şi drept Windows NT 5.1)
 Windows Vista (cunoscut şi drept Windows NT 6.0) (cod: Longhorn)
 Windows Home Server
 Windows Server 2008 (cunoscut şi drept Windows NT 6.0) (cod: Longhorn Server)
 Windows 7 (cod: Blackcomb, mai târziu Vienna) - planificat pentru ieşirea pe piaŃă în 22 octombrie 2009
 Windows Preinstallation Environment (WinPE)
Sisteme de operare UNIX
 UNIX® este un sistem de operare portabil şi modular dezvoltat iniŃial de un grup de
programatori din cadrul AT&T Bell Labs, printre care şi Ken Thomson, Dennis Ritchie şi
Douglas McIlroy.
 Astăzi, sistemele UNIX sunt dezvoltate de companii (precum IBM, HP sau SUN), indivizi şi
organizaŃii non-profit (precum Free Software Foundation). Astăzi, numele de UNIX nu mai
reprezintă atât de mult numele unui singur sistem de operare, ci mai degrabă numele unei
clase de sisteme de operare compatibile deşi nu împărtăşesc cod sursă comun.
 UNIX este un sistem multi-user, multi-tasking,
 portabil şi modular, fiind conceput în jurul unor paradigme numite în general filosofie unix
 totul este un tratat ca un fişier (inclusiv procesele rulând sau dispozitivele fizice - de la tastatură
până la memoria RAM),
 programe care să îndeplinească o singură funcŃie, dar să fie capabile să comunice între ele,
 alegerea celei mai simple căi spre realizarea unui obiectiv, folosirea fişierelor text atât pentru
configurare cât şi pentu ieşire,
 separarea kernelului de programele aplicaŃie etc.
 Nucleul sistemelor UNIX este în general scris în limbajul C (deşi prima variantă a fost scrisă în
limbaj de asamblare pentru calculatoare PDP-7).
 Numele UNIX aparŃine The Open Group iar codul sursă original (AT&T) este disputat între
Novell şi SCO. Oficial, poate fi numit UNIX doar un sistem de operare care a trecut de
certificarea Single Unix Specification a The Open Group. Cu toate acestea, o mare parte
din producători (mai ales cei non-profit), au ales, atât din cauza preŃului, cât şi din cauza
dezvoltării foarte rapide a distribuŃiei lor, să nu-şi certifice sistemul. Acestea, cu toate că
sunt perfect sau aproape perfect compatibile cu standardul, nu pot fi denumite oficial UNIX,
şi sunt numite în mod comun "compatibile UNIX", U*ix sau *nix. Aceste sisteme nu sunt
cu nimic inferioare celor certificate, şi îşi păstrează compatibilitatea cu cele certificate, ba
mai mult, la momentul de faŃă, deŃin supremaŃia din punct de vedere al bazei instalate.
Distributii UNIX
 Sistemele UNIX actuale se bazează pe trei ramuri originale –
 UNIX System V (produs de cei de la AT&T la mijlocul anilor 1980),
 BSD (Berkeley Software Distribution) este numele unei distribuŃii de UNIX aparuta în anii 1970 la
Universitatea din California, Berkeley. (ramură desprinsă din proiectul AT&T)
 FreeBSD, NetBSD, OpenBSD, 386BSD, DragonFlyBSD şi Darwin (mai nou, Mac OS X
 GNU/Linux((GNU este un acronim recursiv pentru "GNU Nu-i Unix" ) (produs ca replică gratuită
şi open-source la celelalte două ramuri - nucleul e dezvoltat de Linus Torvalds începând cu 1991, iar
o mare parte din aplicaŃii sunt date de Proiectul GNU). Fiecare distribuŃie de astăzi se bazează pe
una din aceste ramuri, dar a preluat şi anumite caracteristici de la celelalte.
 Astăzi se află în producŃie următoarele variante:
 Solaris - produs de firma Sun Microsystems. Este distribuit atât în versiune closed-source cât şi in
versiune open source numită Open Solaris. Rulează pe arhitectura SPARC, x86 şi x64.
 HP-UX - produs de firma HP. Rulează pe arhitectura PA-RISC şi IA-64
 AIX - produs de firma IBM. Rulează pe arhitectura PowerPC şi POWER
 IRIX - produs de firma SGI. Rulează pe arhitectura MIPS
 MacOS X - produs de compania Apple pentru calculatoarele Macintosh. Este software comercial,
bazat pe o combinaŃie de FreeBSD, nucleu Mach şi tehnologii specifice Apple. Rulează pe
arhitectura PowerPC şi x86.
 Linux (sau GNU/Linux) - produs de multiple organizaŃii într-o gama largă distribuŃii, open-source în
baza licenŃei GNU/GPL şi disponibil gratuit. Rulează pe diverse arhitecturi, incluzând x86, x64, IA-
64, PowerPC, MIPS, PlayStation 2.
 BSD - astăzi open-source, şi disponibil în trei distribuŃii principale (FreeBSD, NetBSD şi OpenBSD).
SO LINUX
 Sistemele Linux includ
 nucleul,
 bibliotecile de sistem, bibliotecile de dezvoltare
 număr mare de programe utilitare şi
 aplicaŃii, servere grafice (X),
 sisteme de ferestre si managere de desktop-uri (KDE, Gnome, Blackbox, Fluxbox, Xfce etc.),
 browsere web (Firefox, Lynx, Konqueror),
 aplicaŃii şi suite de aplicaŃii "de birou" (OpenOffice.org)
 software de prelucrare grafică (Gimp),
 software de configurare, servere de web etc.
 Instalarea programelor noi se poate face fie prin compilare directă, fie prin intermediul pachetelor,
care verifică existenŃa şi disponibilitatea altor programe necesare pe sistem înainte de a instala noul
program. Managerele de pachete moderne asigură descărcarea pachetelor lipsă necesare (dacă
este cazul) şi instalarea lor automată "dintr-un clic".
 Sistemele moderne linux au atât capacităŃi multimedia avansate (grafică 3D accelerată hardware,
sunet surround, suport pentru tehnologie bluetooth etc.), cât şi suport pentru hardware mai vechi,
fiind adaptabile şi scalabile în funcŃie de necesităŃi.
 Nucleul Linux
 Nucleul (kernelul) Linux este un nucleu monolitic. Cu toate acestea, spre deosebire de multe nuclee
monolitice, driverele se pot încărca sub formă de module la utilizare, şi se pot descărca ulterior,
eliberând resursele utilizate, fără a necesita resetarea sistemului sau recompilarea nucleului.
 FacilităŃile oferite de nucleu includ, printre alele, multitasking real şi complet, suport pentru
memorie virtuală, distribuŃia executabilelor la scriere, management avansat al memoriei, suport
avansat pentru TCP/IP (inclusiv rutare şi filtrare), până la un miliard de procese rulând simultan,
sistem de sunet modularizat (OSS sau ALSA). Nucleul este scris integral în C şi poate fi compilat
folosind compilatorul GCC.
Distributii LINUX
 Sistemele de operare bazate pe Linux sunt disponibile în general sub formă de distribuŃii
(denumite mai rar şi arome) gratuite. Unele dintre acestea sunt orientate spre utilizatorul
casnic, altele către servere sau către utilizatorii cu calculatoare mai vechi.
 Câteva din cele mai folosite distribuŃii de Linux sunt:
 Ubuntu, un proiect orientat spre utilizatorul obişnuit bazat pe Debian GNU/Linux, care a câştigat o mare popularitate prin faptul că
este uşor de utilizat şi configurat, fiind în acelaşi timp puternică şi stabilă. DistribuŃii înrudite: Kubuntu (foloseşte KDE = K Desktop
Environment), Xubuntu (foloseşte Xfce), Edubuntu (orientat spre educaŃie). Ubuntu este în prezent este cea mai populară distribuŃie
Linux.
 SuSE Linux - o distribuŃie orientată atât spre servere cât şi spre staŃii de lucru şi desktopuri, care pune accentul pe uşurinŃa în
utilizare şi configurare. Produsă de compania germană Suse, parte a grupului Novell.
 Fedora Core - născut din proiectul RedHat, dar conŃinând exclusiv software liber şi disponibil gratuit de pe Internet.
 Debian GNU/Linux, una din distribuŃiile cele mai vaste de pe Internet, conŃinând un număr uriaş de pachete. Creatorii proiectului au
dezvoltat managerul de pachete APT şi al pachetele DEB.
 PCLinuxOS - o distribuŃie derivată din Mandriva Linux, destinată mediului desktop şi care se remarcă prin usurinŃa instalării, fiind
adecvată pentru utilizatorii începători.
 Mandriva Linux (denumită anterior Mandrake Linux) - o distribuŃie uşor de utilizat, orientată spre utilizatorii desktop, creată de
compania franceză Mandriva.
 Slackware Linux, este una din cele mai vechi distribuŃii, având ca moto "Păstrează (lucrurile) simplu". DistribuŃiei îi lipsesc unelte de
configurare uşoară, dar beneficiază de viteză mare de rulare, posibilitate a de a fi instalată pe hardware mai vechi şi o organizare
simplă a sistemului.
 Gentoo Linux, o distribuŃie orientată spre performanŃe maxime şi destinată utilizatorilor avansaŃi. DistribuŃia se remarcă prin timpul
foarte lung necesar instalării, care necesită de regulă compilarea şi optimizarea pachetelor pe sistemul pe care se face instalarea
(spre deosebire de majoritatea distribuŃiilor, care instalează software precompilat). Acest lucru are ca rezultat un spor de
performanŃă, dar şi o configurare mai dificilă. Gentoo beneficiază de un manager de pachete şi de sistem foarte avansat denumit
portage.
 Knoppix, o distribuŃie "live" care rulează direct de pe CD sau DVD, fără a instala nimic pe hard disk, ce poate fi utilizată, printre
altele, în călătorii, demonstraŃii sau pentru diagnosticări de sistem, reparări, recuperări de date etc.
 RedHat Linux - una din cele mai cunoscute distribuŃii, în prezent o distribuŃie comercială orientată exclusiv spre piaŃa serverelor şi
spre mediul de afaceri. Este distribuŃia care a dat naştere proiectului Fedora Core.
 Slax, o distribuŃie "live" bazată pe Slackware, care poate rula de pe suport optic sau de pe un flash drive de 256 MB.
 NimbleX, o distribuŃie "live" versatilă, produsă in Romania şi bazată pe Slackware, care rulează direct de pe CD, mediu USB sau
chiar şi din reŃea. DistribuŃia, deşi nu ocupă mult spaŃiu, are o interfaŃă grafică puternică şi atractivă şi include un număr mare de
programe pentru navigarea pe Internet, editarea de documente, redare de conŃinut multimedia etc.
 TFM/GNU Linux - distribuŃie de Linux Server şi Workstation 100% românească, stabilă, uşor de instalat şi care nu necesită
cunoştinŃe avansate de linux. Produsă de compania TFM Group
Deşi există numeroase distribuŃii, există utilizatori care preferă să îşi construiască un sistem Linux de la zero, folosind Linux From
Scratch.
Ultima versiune a nucleului sistemului de operare Linux poate fi descărcată de pe situl oficial http://kernel.org.
1. Structura sistemului de I/E
 CPU si celelalte dispozitive conectate prin magistrale acceseaza partajat memoria=> acces concurent si
sincronizat in cicluri de memorie
 Operatiile efectuate sunt:
 Dispozitivele de I/E si CPU pot lucra concurent
 Fiecare dispozitiv este controlat de un controller.
 Fiecare controller are un buffer local.
 CPU transfera datele de la/la memoria principala la/de la buffer-ele locale
 I/E este de la echipament la bufferul local.
 Controller-ele informeazas CPU that au terminat operatia prin generarea unei interrperi.

8
Curs SO - lect. dr. Ozten Chelai, 2009-2010
Sistemul de intreruperi
 Interuperea transfera controlul rutinei de tratare a intreruperii prin tabelul verctorilor de
intrerupere care contine adresele rutinelor de intrerupere.
 Arhitectura intreruperii trebuie sa salveze starea instructiunii/programului intrerupt
 Intreruperile pot fi activate/dezactivate prin flagul Intereupt din registrul de stare
 O capcana (trap) este o intrerupere software cauzata de o eroare sau o cerere utilizator

 SO este un mediu asincron (interrupt driven).


 SO salveaza starea/restaureaza CPU prin registri (PC si ceilalti registri)
 Exista doua tipuri de intreruperi
 polling
 vectored interrupt system

Curs SO - lect. dr. Ozten Chelai, 2009-2010 9


Subsistemul de I/E
 Ascunde particularitatile echipamentelor HW
de utilizator
 Subsistemul de I/E este responsabil pentru
 Gestiunea memoriei I/E inclusiv buffering
(stocarea datelor temporar in timpul transferului),
caching (stocarea partilor de date in transferul ce
creste performanta), spooling (suprapunerea
iesirii unui job cu intrarea in alte joburi)
 Interfatare generala cu driverele de echipamente
 Drivere pentru echipamente specifice
Structura sistemului de I/E
 2 metode: sincrona (a) si asincrona (b)

 a) Sincrona. Dupa pornirea operatiei de I/E, controlul se intoarce la programul utilizator DUPA terminarea
operatiei de I/E.
 Instructiunea Wait(bucla) tine CPU inactiva pana la o noua intrerupere
 Cel mult o cerere I/E la un moment dat, fara procesare I/E simultana.
 b )Asincrona. Dupa pornirea operatiei de I/E, controlul se intoarce imediat la programul utilizator FARA
terminarea operatiei de I/E.
 Apel sistem (System call) – cerere catre SO ca sa permita utilizatorului sa astepte terminarea operatiei de
I/E.
 Tabelul de stare al echipamentelor (Device-status table) contine intrari pentru fiecrae echipament de I/E
indicaind tipul, adresa si starea echipamentului.
 SO operaza in tabel corespunzator starii echipamentului (coresp. Intreruperii).

 DMA (Direct Memory Access) metoda de acces I/E de mare viteza pentru transfer I/E aproape la viteza
memoriei.
 Controllerul de echipament transfera blocuri de date din buffer direct in memoria principala fara interventia CPU.
 O intrerupere generata pe bloc in loc de una pe byte.
Curs SO - lect. dr. Ozten Chelai, 2009-2010 11
Tabelul de stare a
echipamentelor
Operatiile SO
 Interuperile ghidate de hardware
 Erorile sau cererile software creaza exceptii sau capcane (trap)
 Division by zero, request for operating system service
 Alte probleme ale procesarii includ bucle infinite, procese acre se modifica
 Operarea in Dual-mode permite SO sa se protejeze de alte componente:
 User mode si kernel mode
 Bitul Mode este furnizat de hardware
 Ofera abilitatea de a distinge ce cod se executa (user sau kernel)
 Anumite instructiuni sunt proiectate ca privilegiate, executabile in kernel mode
 Apelul sistem schimba modul in kernel, intoarcerea din apel il reseteaza in user
 Tranzitia din modul User in Kernel
 Timer pentru a preveni buclele infinite si irosirea resurselor
 Setarea unei intreruperi dupa o perioada
 SO decrementeaza contorul si genereaza o intrerupere cand ajunge zero
 Setat inainte ca planificatorul de procese sa castige controlul sau terminarea programului inainte de depasirea timpului alocat

13
Curs SO - lect. dr. Ozten Chelai, 2009-2010
2. Structura de memorare
 Memoria principala – memoria de dimensiuni mari accesata direct de CPU.
 Memoria secundara – extensia memoriei principale care furnizeaza o memorie de dimensiune
mare nevolatila
 Tipuri: magnetica, optica, flash
 Informatia organizata in sectoare, piste, etc
 Interactioneaza cu CPU prin controllerul de disc.
 Sistemul de memorie este organizat ierarhicdupa:
 viteza
 cost
 volatilitate
 Caching – utilizarea unei memorii mai mici si mai rapide inaintea memoriei de acces
 Tehnica utilizata intre straturile SC (HW, SO, SW)
 Informatia de folosit se copiaza temporar din memoria mai lenta in cea mai rapida
 Tehnica – intai se determina daca informatia este in cache, adca da se foloseste, daca nu se copiaza
 Cache-ul este mai mic deci reprezinta o problema importanta de design.

Curs SO - lect. dr. Ozten Chelai, 2009-2010 14


Gestiunea memoriei
 toate datele in memorie inainte si dupa procesare
 toate instructiunile in memorie in ordinea de executie
 Gestiunea memorei determina ce este in memorie
(pentru a optimiza utilizarea resurselor ca raspuns la
cererile utilizatorilor)
 Activitatile pentru gestiunea memoriei:
 Urmarirea partilor de memorie care sunt utilizate si de
cine
 Decizia referitoare la ce procese (parti de proces) si
date sa fie transferate in/din memorie
 Alocarea si dealocarea spatiului necesar
Gestiunea stocarii
 SO furnizeaza o vedere uniforma, logicala a stocarii informatiei
 Abstractizeaza proprietatile fizice in unitatea logica de
stocare = fisier (file)
 Fiecare mediu de stocare e controlat de echipament (i.e.,
disk drive, tape drive)
 Cu diferite proprietati: viteza, capacitate, rata de transfer,
metoda de acces, etc. (secventiala sau aleatorie)
 Gestiunea sistemului de fisiere (File-System)
 Fisierele sunt organizate in directoare
 Controlul accesului – determina cine si ce poate accesa
 Crearea si stergerea fisierelor si directoarelor
 Primitive pentru manipularea fisierelor si directoarelor
 Maparea fisierelor in memoria secundara
 Salvarea fisierelor in mediul de stocare stabil (non-
volatile)
Gestiunea stocarii in memoria
secundara
 In mod normal, discurile sunt utilizate pentru a stoca datele care nu
incap in memoria principala sau datele care trebuie tinute o
perioada mare de timp.
 Gestiunea este foarte importanta deoarece viteza de lucru generala
a sistemului de calcul se bazeaza pe operatiile cu discul (algoritmi,
etc.)
 Activitatile SO
 Gestiunea spatiului liber

 Alocarea stocarii

 Planificarea discurilor

 Anumite stocari nu trebuie sa fie rapide


 Alte medii de stocare: optica, banda magnetica

 Trebuie gestionate deasemenea

 Variaza intre WORM (write-once, read-many-times) and RW


(read-write)
3. Structura de procesare
 Multiprogramarea este necesara pentru eficienta
 Un singur utilizator nu poate tine ocupate CPU si echipamentele I/E tot timpul
 Multiprogramarea organizeaza joburile (cod si date) a.i. CPU sa aiba mereu
ce sa execute
 un subset al tuturor joburilor din sistem se tine in memorie
 un job e selectat si se execut prin job scheduling(planificatorul de joburi)
 Cand trebuie sa astepte (o operatie de I/E de examplu), SO comuta pe alt job
 Timesharing (multitasking) este o extensie logica in care CPU comuta frecvent intre
joburi a.i. utiliozatorii pot interactiona cu fiecare job obtinand un calcul interactiv
(interactive computing)
 Timpul de Raspuns trebuie sa fie < 1 sec.
 Fiecare utilizator are cel putin un program in executie in memorie process
 Daca mai multe joburi sunt gata de executie in acelasi timp  CPU
scheduling
 Daca procesele nu incap in memorie  swapping
 Memoria Virtuala permite executia proceselor nu complet in memorie
Gestiunea Proceselor
 un proces este un program in executie. Este o unitate de lucru
in SO. Programul este o entitate pasiva, procesul este o
entitate activa.
 Procesul necesita resurse pentru realizare:
 CPU, memorie, I/E, fisiere
 Initializarea datelor
 Terminarea procesului necesita specificarea resurselor
reutilizabile
 Procesul cu un fir de executie are un program counter ce
specifica locatia urmatoarei instructiuni de executat
 Procesul executa instructiunile secvential, cate una la un moment
dat pana se termina
 Procesele Multi-threaded au un program counter pe fir
 Tipic sistemul are mai multe procese ce se executa concurent
pe una sau mai multe CPU-uri
 Concurenta prin multiplexarea CPU-urilor intre procese / fire
Activitati in gestiunea
proceselor
Sistemul de operare este responsabil de urmatoarele
activitati pentru gestiunea proceselor:
 crearea si stergerea si a utilizatorilor si a proceselor
sistem
 Suspendarea si repornirea proceselor

 Furnizarea mecanismelor pentru sincronizarea


proceselor
 Furnizarea mecanismelor pentru comunicarea
proceselor
 Furnizarea mecanismelor pentru manipularea
blocarilor
4. Protectia si Securitatea
 Protectia – orice mecanism pentru controlul accesului proceselor,
utilizatorilor la resursele definite de SO
 Securitate – apara sistemul de atacurile interne si externe
 limite depasite, interzicere serviciu, worms, virusuri, identitate
gresita, serviciu gresit
 In general intai sistemul distinge intre utilizatori cine si ce poate face
 Identitatea utilizatorilor (user IDs, security IDs) includ nume si
numar asociat, unul pentru fiecare utilizator
 IDul utilizatorului este asociat cu fisierele, procesele utilizatorului
pentru a determina controlul accesului
 Identificatorii de grup (group ID) permit ca un set de utilizatori sa
fie definit si controleaza gestiunea (asociat tot cu procesele si
fisierele)
 Gestiunea privilegiilor permit utilizatorilor sa schimbe drepturile
utilizatorilor
Serviciile SO
1. Un prim set de functii se refera la utilizator:
 Interfata utilizator – Aproape toate SO au o IU (UI)
 Variaza de la modul comanda (CLI) la Graphics User Interface (GUI), Batch
 Executia programului – sistemul trebuie sa incarce programul in memorie si sa-l execute
fie in conditii normale fie anormale (in caz de eroare)
 Operatii de I/E - un program in executie poate cere operatii de I/E (fisier sau echipament
de I/E).
 Manipularea sistemului de fisiere – programele necesita operatii cu fiesiere/directoare
(scriere, citire, filtrare, etc.) si o gestiune a accesului la ele.
 Comunicatia – Procesele pot interschimba informatie (pe acelasi calculator sau in retea)
 Comunicatia se realizeaza fie printr-o memorie partajata, fie prin pasarea mesajelor
(pachete transferate de SO)
 Detectia erorilor – SO trebuie sa gestioneze erorile
 Erori la nivel HW (CPU, memorie, echipamente de I/E, in programul utilizatorului)
 Pentru fiecare tip de eroare SO trebuie sa realizeze actiunea potrivita pentru un calcul
corect si consistent
 Facilitatile de depanare (debugging) cresc abilitatile programatorului de a utiliza eficient
sistemul
Serviciile SO(Cont.)
2. Alt set de functii asigura operarea eficienta a SO insusi prin
partajarea resurselor
 Alocarea resurselor - cand mai multi utilizatori sau mai multe activitati
se executa concurent, resursele trebuie alocate resursele la fiecare
 Mai multe tipuri de resurse - unele (ca cicluri CP, de memorie si
stocare fisiere) pot avea coduri speciale de alocare, iar altele (ca
echipamentele I/E) pot realiza cereri generale si coduri speciale.
 Contabilizare – urmarirea utilizarii resurselor (cine, cat, ce)
 Protectie si securitate – informatia stocata proprie utilizatorilor trebuie
protejata, iar procesele concurente nu trebuie sa interfereze unele cu
altele
 Protectia implica controlul accesului la resurse
 Securitatea sistemului se refera de la autorizarea accesului
utilizatorilor si cererilor externe (I/E)
Interfata cu utilizatorul
 Modul comanda (CLI) permite introducerea directa a comenzilor
 Implementate in kernel sau prin programe sistem
 Exista programe de tip shell (invelis) pentru interfata – shells
 Primar citeste/interpreteaza (fetch) comanda de la utilizator apoi o executa
 unele comenzi exista altele se construiesc (cu instrumentele oferite de
shell)
 Modul grafic (GUI) Interfata prietenoasa desktop
 utilizeaza mouse, tastatura, monitor, touch screen, etc.
 Pictograme (Icons) reprezinta obiecte de lucru
 Eventimente = actiuni ale utilizatorului cu obiectele GUI
 Inventata la Xerox PARC
 SO actuale includ ambele interfete: CLI si GUI
 Microsoft Windows este GUI cu CLI “command” shell
 Apple Mac OS X ca “Aqua” GUI cu kernel UNIX si shell-uri disponibile
 Solaris este CLI with interfete GUI optionale (Java Desktop, KDE)
Apeluri sistem
 Interfata de programare la serviciile furnizate de SO
 Tipic scrisa intr-un limbaj de nivel inalt (HLL) ca C sau C++
 Accesate in programe printr-o interfata de aplicatie Application Program Interface
(API) decat prin apeluri directe sistem
 Cele mai utilizate API-uri sunt Win32 API pentru Windows, POSIX API pentru sisteme
bazate pe POSIX (include toate versiunile de UNIX, Linux si Mac OS X) si Java API
pentru masina virtuala Java (JVM)
 De ce API-uri si nu apeluri sistem?
Exemplu de apel sistem
 Secventa de apeluri sistem pentru copierea continutului unui fisier in
altul (numele apelurilor este generic)
Exemplu de API standard
 Consideram functia ReadFile() in
 Wiamn32 API—o functie pentru citirea dintr-un fisier

 o descriere a parametrilor pasati functiei ReadFile()


 HANDLE file—fisierul de citit
 LPVOID buffer—un buffer unde datele se citesc/scriu
 DWORD bytesToRead—numarul de octeti de citit din buffer
 LPDWORD bytesRead—numarul de octeti cititi la ultima citire
 LPOVERLAPPED ovl—indica daca se utilizeaza surapunerea (overlapped) I/E
Implementarea apelurilor
sistem
 Tipic, un numar asociat cu fiecare apel sistem
 Interfata apelurilor sistem mentine un tabel indexat
corespunzator numerelor
 Interfata apelurilor sistem invoca apelul solicitat in kernel-ul SO si
intoarce starea apelului si valorile de return
 Apelantul nu trebuie sa cunoasca nimic despre modalitatea de
implementare a apelului sistem.
 Detaliile ascunse de API = gestionate de bibliotecile suport pentru run-
time (set de functii incluse in librarii cu compilatorul)
Relatia SO: API – Call Sistem
Exemplu din biblioteca Standard C
 Program C ce invoca printf() (apel sistem de
biblioteca) care apeleaza write() (apel sistem)
Pasarea parametrilor - System
Call
 Parametri specifica informatia necesara pentru executia apelului
sistem (diferita de la SO la SO)
 Exista trei metode generale pentru pasarea parametrilor SO
 Simplu: paseaza parametri in registri
 pot exista mai multi parametri decat registri
 Parametrii stocati intr-un bloc sau tabel, in memorie si adresa
blocului pasata ca parametru intr-un registru
 abordare Linux si Solaris
 Parametrii plasati in stiva (push) de program si extrasi (pop) de
SO
 Blocurile si stiva nu limiteaza numarul de parametri
Parametrii pasati printr-un
tabel
Tipuri de apeluri sistem
 Controlul procesului
 Gestiunea fisierelor
 Gestiunea echipamentelor
 Intretinerea informatiei
 Comunicatie

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