Documente Academic
Documente Profesional
Documente Cultură
Cursul 1 - Generalitati
Dr
agulici Dumitru Daniel
Facultatea de matematic
a si informatic
a,
Universitatea Bucuresti
2008
Bibliografie
Pentru curs:
Andrew S. Tanenbaum:
Sisteme de operare moderne, Editia a 2-a,
Editura Byblos, 2004
Octavian B
asc
a, Ileana Popescu:
Sisteme de operare,
Tipogr. Univ. Bucuresti, 1987-1989 (2 vol.)
Pentru laborator:
Jean-Marie Rifflet:
Cuprins
1 Sisteme de calcul
2 Istoria sistemelor de operare
3 Structura (moduri de organizare a) sistemelor de operare
4 Functiile sistemelor de operare
5 Consideratii de implementare
Sisteme de calcul
Sistem de calcul (SC): ansamblu de componente hardware si software care
furnizeaz
a o form
a definit
a de servicii unui tip de utilizatori.
Un SC este format din:
- partea de hard (hardware): totalitatea componentelor fizice (carcas
a,
procesor, tastatur
a, etc.);
- partea de soft (software): totalitatea componentelor logice (programe, date,
etc.).
El trebuie s
a ndeplineasc
a urm
atoarele functii fundamentale:
- intrare date;
- prelucrare date;
- stocare date;
- iesire date (furnizare rezultate).
Orice SC defineste un limbaj n termenii c
aruia se exprim
a ntreaga activitate
ce se execut
a pe el. Altfel spus, orice SC este dotat cu posibilitatea
reprezent
arii anumitor tipuri de date si structuri de informatie si
implementeaz
a o multime de operatii primitive asupra lor.
De asemenea, pentru orice SC se definesc anumite clase de utilizatori ce pot
exploata (pentru care este destinat spre exploatare) SC respectiv.
Sisteme de calcul
Sisteme de calcul
Hardware:
'$
Hardware
&%
Contine subsisteme fizice specializate pentru ndeplinirea celor 4 functii
fundamentale:
- periferice de intrare (pentru intrare date): tastatur
a, mouse, etc.;
- procesoare (pentru prelucrare date);
- memorii (pentru stocare date);
- periferice de iesire (pentru iesire date): monitor, imprimant
a, etc.;
Exist
a dispozitive ce ndeplinesc mai multe functii, cum ar fi perifericele de
intrare si iesire (ex. modem).
Doar cu stratul hardware, avem un SC cu urm
atorul limbaj si clase de
utilizatori:
- tipuri de date: byte, cuv
ant de memorie, etc.;
- operatii primitive: limbajul masina;
- utilizatori: realizatorii de sisteme de operare, de drivere, etc.
Sisteme de calcul
Sistemul de operare (SO) :
'
$
'$
Hardware SO
&%
&
%
Motive ale prezentei acestui strat:
- stratul hardware ofer
a un limbaj neintuitiv si greoi (trebuie scris mult pentru a
specifica o operatie simpl
a); de exemplu, este greu s
a program
am o scriere pe
dischet
a folosind instructiuni de pornit/oprit motorul, mutat capul de
citire/scriere, citit/scris la anumite adrese fizice, etc.;
una din functiile SO este s
a gestioneze resursele hardware si software ale SC,
oferind o interfat
a prin care ele sunt prezentate utilizatorilor si aplicatiilor ntr-o
form
a mai comod de accesat - de exemplu discheta este prezentat
a ca o
colectie de fisiere organizate n directoare si accesibile doar prin nume si cale;
interfata cu aplicatiile se realizeaz
a prin apelurile sistem - o colectie de rutine
ale SO apelabile din programele de aplicatie; de exemplu n Linux o aplicatie
poate deschide un fisier apel
and doar:
open(nume fisier, mod deschidere);
Sisteme de calcul
Sistemul de operare (SO) :
'
$
'$
Hardware SO
&%
&
%
Motive ale prezentei acestui strat:
- o alt
a functie a SO este protejarea SC de utilizarea necorespunz
atoare din
partea utilizatorilor si aplicatiilor - acestia nu pot accesa resursele sistemului
dec
at apel
and apelurile sistem, iar acestea nu execut
a operatia dec
at dac
a ea
este posibil
a, dac
a exist
a drepturile necesare, etc.;
de asemena, SO arbitreaz
a folosirea concurent
a a resurselor de c
atre procese
care ruleaz
a n paralel, comunicarea ntre procese, protectia datelor fiec
arui
utilizator de accesul neautorizat, etc.
Sisteme de calcul
Sistemul de operare (SO) :
'
$
'$
Hardware SO
&%
&
%
Ad
aug
and stratul SO obtinem un nou SC, cu urm
atorul limbaj si clase de
utilizatori:
- tipuri de date: fisier, director, etc.;
- operatii primitive: apeluri sistem;
- utilizatori: realizatorii de aplicatii (aplicatiile fiind de multe tipuri, ei se mpart
n mai multe clase: realizatori de compilatoare, de S.G.B.D., etc.).
In general, dintr-un program se pot efectua si operatii scrise n cod masin
a, cu
date de tip byte, word, etc., dar nu orice operatii si numai ntr-o form
a pe care
o permite SO.
Cu alte cuvinte, stratul SO ofer
a transparent
a pentru unele elemente ale
stratului inferior, dar controleaz
a modul n care se face acces la ele - accesul se
face doar prin interfata SO.
De aceea, n limbajul acestui SC (hardware + SO) vom considera si elementele
preluate prin transparent
a.
Sisteme de calcul
Aplicatii:
'
'
$
'$
Hardware SO
Aplicatii
(JVM, Oracle, ...)
&%
&
%
&
Sisteme de calcul
Alte'
straturi:
'
'
$
'$
Hardware SO
Aplicatii
(JVM, Oracle, ...)
&%
&
%
&
&
Programe Java,
Script SQL, ...
Sisteme de calcul
Sintetiz
and cele spuse mai devreme, putem spune:
In general, un SC are o structur
a ierarhic
a, pe mai multe niveluri (straturi),
primul fiind nivelul hardware.
Fiecare nivel este un SC generator pentru nivelul urm
ator, oferind n acest
scop un limbaj, format din anumite tipuri de date, structuri de informatie si
operatii primitive.
Trecerea de la un nivel inferior la unul superior se face prin abstractizarea unor
propriet
ati ale nivelului inferior.
Sisteme de calcul
De exemplu SO nu las
a aplicatiile s
a acceseze discul n limbaj de adrese fizice,
misc
ari ale capetelor magnetice, etc., ci le ofer
a conceptele abstracte de fisier si
director, care nu depind de hardware - chiar dac
a instal
am un alt disc, cu alt
limbaj masin
a de accesare, SO l va prezenta aplicatiilor tot ca pe o colectie de
fisiere si directoare, accesibile prin aceleasi apeluri sistem (evident, SO trebuie
modificat a.. s
a recunoasc
a noul disc, instal
and alte drivere).
Exist
a si abstractiz
ari n sens invers - de exemplu SO trebuie scris a.. s
a nu
depind
a de aplicatiile care se vor instala ulterior n el.
Sisteme de calcul
Sisteme de calcul
Regulile de mai sus nu sunt ntotdeauna respectate cu strictete, sau sunt, dac
a
le interpret
am ntr-un sens mai larg.
De exemplu MS-DOS permite aplicatiilor s
a acceseze hardware-ul si direct, nu
numai prin apelurile sistem. Putem ncadra ns
a acest fenomen n teoria
general
a g
andind c
a sistemul de operare MS-DOS preia toat
a interfata
hardware n interfata proprie (ofer
a transparent
a total
a).
De asemenea, un utilizator poate accesa mai multe niveluri (ex: d
am si comenzi
SO, scriem si un program Pascal), iar o modificare se poate face la mai multe
niveluri deodat
a (ex: instal
am un webcam si un microfon (la nivel hardware),
instal
am driverele lor (la nivel SO) si instal
am si un program de videoconferint
a
(la nivel de aplicatii)). Totul se ncadreaz
a n teoria general
a dac
a ne g
andim
c
a fiecare nivel include (via acea transparent
a) nivelurile anterioare.
Sisteme de calcul
Sisteme de calcul
Cuprins
1 Sisteme de calcul
2 Istoria sistemelor de operare
3 Structura (moduri de organizare a) sistemelor de operare
4 Functiile sistemelor de operare
5 Consideratii de implementare
Lucrare 1
Lucrare 2
Lucrare 3
6 Partitii de memorie
Desi SO din generatia a III-a erau potrivite pentru calcule stiintifice complicate
sau prelucrarea unor cantit
ati mari de date comerciale, ele r
am
aneau sisteme de
prelucrare pe loturi de programe.
Dorinta de a avea un timp redus de r
aspuns a determinat aparitia partaj
arii n
timp (timesharing), o variant
a de multiprogramare n care fiecare utilizator are
un terminal online - dac
a sunt 20 de utilizatori conectati si 17 se g
andesc, UCP
este distribuit
a pe r
and celor 3 job-uri care solicit
a serviciul.
Primul SO cu partajare n timp a fost CTSS (Compatibile Time Sharing
System), dezvoltat de M.I.T. pe o masin
a 7094 adaptat
a; partajarea n timp a
adevenit ns
a popular
a abia dup
a introducerea unui modul hardware pentru
protectie.
Cuprins
1 Sisteme de calcul
2 Istoria sistemelor de operare
3 Structura (moduri de organizare a) sistemelor de operare
4 Functiile sistemelor de operare
5 Consideratii de implementare
Exist
a mai multe modalit
ati de organizare a unui SO:
Sistemul monolitic:
Este cea mai des nt
alnit
a organizare.
Sistemul este o colectie de proceduri n care fiecare procedur
a poate apela pe
fiecare - nu neap
arat o si face, depinde cum e scris
a, ideea e c
a daca vrea s
a
apeleze orice, modul de organizare a sistemului i permite.
Nu e posibil
a ascunderea de informatii - fiecare procedur
a este vizibil
a oric
arei
alta.
z
procedura principal
a
Q
J Q
J
^ QQ
+ z
z
z s z proceduri de serviciu
H
J HH
J
H
^
J
^
H
j
z
z
z
proceduri utilitare
Functie
Operatorul
Programe utilizator
Administrarea intr
arilor/iesirilor
Comunicarea operator - proces
Gestiunea memoriei si a rolei magnetice
Alocarea procesorului si multiprogramara
?
?
?
-r
-?
-r OS 1 OS 2 OS3
VM/370
-?
hardware
Proces
client
Server
de
procese
Server
de
terminal
micronucleu
...
Server
de
fisiere
Server
Procese ce
ruleaza n
de
memorie user mode
Procese ce
6
ruleaza n
kernel mode
Astfel, daca apare o eroare n sistemul de fisiere, serverul de fisiere poate pica,
dar restul masinii functioneaz
a. Un alt avantaj al modelului client - server este
c
a se poate folosi n sisteme distribuite, unde procesele ruleaz
a pe mai multe
masini legate n retea.
Cuprins
1 Sisteme de calcul
2 Istoria sistemelor de operare
3 Structura (moduri de organizare a) sistemelor de operare
4 Functiile sistemelor de operare
5 Consideratii de implementare
Functiile SO
Exist
a mai multe puncte de vedere privind setul de functii minimale pe care
trebuie s
a le ofere un sistem de operare. Un asemenea set ar fi:
Gestiunea utilizatorilor si securitatea sistemului:
Exist
a sisteme:
monouser: nu fac distinctie ntre utilizatorii fizici care se pot conecta;
orice persoan
a care opereaz
a n sistem are acces neconditionat la toate
resursele oferite de SO, ca si c
and ar exista un singur utilizator care lucreaz
a
mereu - de fapt, conceptul de utilizator logic nu este implementat;
exemplu: MS-DOS;
multiuser: fac distinctie ntre utilizatorii fizici care se pot conecta, prin
intermediul conturilor;
n sistem sunt definite un set de conturi, av
and au un nume de cont
(username), o parola (password), niste drepturi, etc., si orice persoan
a
(utilizator fizic), dac
a vrea s
a se conecteze la sistem (logare), trebuie sa indice
mai nt
ai un cont si parola corespunz
atoare; odat
a acceptat, sistemul l
asimileaz
a cu persoana pentru care s-a creat contul respectiv (chiar daca nu
este, dar i cunoaste contul si parola);
conturile sunt utilizatorii logici ai sistemului - n cele ce urmeaz
a, prin
utilizator vom ntelege de fapt un cont.
exemple: UNIX, Linux, Windows, Novell Netware, etc.
Functiile SO
Intr-un sistem multisuer, orice proces, fisier, etc., are printre caracteristicile sale
un proprietar (un cont) si niste drepturi, iar sistemul mpiedic
a o actiune a unui
utilizator s
a acceseze un obiect al altui utilizator, dac
a proprietarul obiectului
nu a marcat acolo permisiunile necesare - astfel se asigur
a securitatea datelor
fiec
arui utilizator.
De exemplu un proces av
and ca proprietar utilizatorul U1 nu poate citi dintr-un
fisier ce are ca proprietar utilizatorul U2 dac
a U2 nu a setat pentru acel fisier
permisiunea de citire pentru categoria de utilizatori din care face parte U1
(c
and procesul va ncerca s
a deschid
a fisierul n citire cu apelul sistem open,
acest apel va esua si va returna procesului un cod de eroare).
In general exist
a ns
a si utilizatori privilegiati (ca de exemplu root n
sistemele UNIX si Linux) care au automat toate drepturile. Acestia pot de
exemplu crea si distruge alti utilizatori. Un utilizator obisnuit poate face doar
modific
ari minimale siesi, de exemplu schimbarea parolei proprii.
Functiile SO
Gestiunea fisierelor:
Fisierele sunt resursa abstract
a a dispozitivelor de stocare.
Ele au un nume si diverse caracteristici:
- atribute, n sistemele MS-DOS si Windows: Read-only, Archive, System,
Hidden;
- proprietar si drepturi de acces, n sistemele multiuser.
Fisierele figureaz
a n directoare - structuri de date ce contin informatii despre
diverse fisiere si alte directoare; n UNIX, Linux, directoarele sunt implementate
tot ca niste fisiere, de un tip special.
Sistemul de fisiere si directoare, legate prin relatia de apartenent
a la un
director, formeaz
a arborescente. Un dispozitiv de stocare este v
azut ca un
ansamblu de discuri logice, fiecare contin
and c
ate o asemenea arborescent
a.
Intruc
at numele fisierelor dintr-un sistem nu sunt neap
arat unice, un fisier este
n general desemnat cu ajutorul unui specificator format din disc, calea c
atre
el n arborescenta discului respectiv si apoi numele fisierului.
Functiile SO
Gestiunea proceselor:
Procesul este un concept cheie, fundamental, n sistemele de operare.
Proces: executie a unui program.
Nu trebuie confundat
a notiunea de proces cu cea de fisier executabil sau de
program.
Mai multe procese diferite pot executa acelasi fisier - atunci, desi procesele
execut
a acelasi program, ele pot avea la un moment dat alte valori pentru
variabilele declarate n program, pot fi la o alt
a instructiune curent
a, etc.
Exist
a sisteme:
monotasking: pot rula doar un singur proces la un moment dat; deci
procesele trebuie rulate pe r
and;
exemplu: MS-DOS;
multitasking: pot rula mai multe procese simultan (multiprogramare);
procesele pot rula pe procesoare diferite, sau mai multe pe un acelasi procesor,
ntr-o manier
a ntretesut
a (anume alternativ, c
ate o portiune din fiecare);
exemple: UNIX, Linux, Windows, Novell Neteware;
Functiile SO
Caracteristici ale proceselor:
- fisierul pe care l execut
a;
- spatiul de adresare - o zon
a de memorie pe care o poate accesa cu
instructiunile obisnuite din fisierul (programul) executat;
aici se rezerv
a locatii pentru valorile proprii curente ale variabilelor din
program si pentru stiva proprie;
- diverse informatii asociate de SO: proprietarul (un cont), prioritatea, adresa
instructiunii curente (retinut
a n registrul IP (arhitec. Intel) sau PC (arhitec.
MIPS)), adresa v
arfului curent al stivei (retinut
a n registrul SP), etc.
SO poate ntrerupe temporar un proces (de exemplu pentru a executa o parte
din alt proces n cadrul multitasking); atunci informatiile folosite la gestionarea
lui (inclusiv valorile acelor registri) sunt salvate n tabela proceselor (un vector
de structuri, c
ate una pentru fiecare proces).
De asemenea, SO gestioneaz
a comunicarea ntre procese si arbitreaz
a accesul
concurent al acestora la resurse, pentru a evita interblocajele.
Procesele pot lansa procese fiu, organiz
andu-se dupa aceast
a filiatie n
arborescente; pentru aceasta folosesc niste apeluri sistem (de exemplu fork
n UNIX, Linux). In general SO ofer
a instrumente pentru crearea, distrugerea,
blocarea, rularea proceselor.
Functiile SO
Gestiunea memoriei:
O alocare a memoriei la nivel de octet sau cuv
ant este ineficient
a;
SO implementeaz
a algoritmi de gestionare si livrare a memoriei la nivel de
blocuri, a c
aror evident
a e mentinut
a n niste liste.
SO arbitreaz
a cererile diverselor procese pentru o aceeasi zon
a de memorie si
asigur
a c
a un proces nu poate accesa zonele de memorie alocate altui proces
(este un aspect de securitate).
SO implementeaz
a de asemenea extensii ale memoriei principale sub form
a de
memorie virtual
a, folosind capacit
atile de memorare ale altor dispozitive (de
obicei memoria principal
a este RAM iar cea virtual
a este stocat
a pe disc) astfel nc
at memoria principal
a s
a par
a mai mare.
Memoria virtual
a este v
azut
a logic de procese ca si c
and ar face parte din
memoria principal
a. In functie de locul unde se afl
a informatiile de care are
nevoie un proces, SO swap-eaz
a (interschimb
a) blocuri din memoria RAM cu
blocuri de pe disc.
SO permite unui proces s
a partajeze memoria folosit
a cu alte procese de pe
aceeasi masin
a sau masini diferite (prin retea).
Functiile SO
Functiile SO
O interfat
a utilizator:
Poate fi:
In mod linie de comand
a;
In mod grafic;
ea se poate implementa si cu ajutorul unor utilitare instalate n sistem.
MS-DOS are n mod nativ o interfat
a linie de comand
a; i se poate ad
auga ca
aplicatie o interfat
a grafic
a (de exemplu Windows 3.11 sau mai vechi).
Windows are interfat
a grafic
a, dar are si una linie de comand
a prin Command
prompt.
UNIX, Linux implementeaz
a ambele interfete ca aplicatii ad
augate kernel-ului:
pentru modul linie de comand
a utilizeaz
a programele shell;
pentru modul grafic utilizeaz
a subsistemul X-Windows.
Functiile SO
Alte functii:
Un set de apeluri sistem (pentru interfatarea cu aplicatiile).
Facilit
ati privind lucrul n retea.
In cursurile urm
atoare vom detalia modul cum sunt realizate toate aceste
functii, conceptele implementate, algoritmii folositi, at
at la modul teoretic
general c
at si n cazul particular al unor SO concrete.
Cuprins
1 Sisteme de calcul
2 Istoria sistemelor de operare
3 Structura (moduri de organizare a) sistemelor de operare
4 Functiile sistemelor de operare
5 Consideratii de implementare
Consideratii de implementare
Procesoarele moderne au un registru de stare n care se retin informatii despre
procesul curent; printre aceste informatii exist
a si un bit care specific
a modul
de lucru al procesului:
- supervizor (kernel mode)
- utilizator (user mode)
(deci exist
a un dispozitiv hardware care retine modul).
In kernel mode, procesul poate executa orice instructiune hardware, iar n user
mode doar o parte din ele.
Instructiunile care se pot executa doar n kernel mode se numesc instructiuni
supervizor (alte denumiri: privilegiate, protejate).
De exemplu instructiunile de I/O de la periferice sunt privilegiate.
Astfel, un proces care ruleaz
a n user mode nu poate executa direct instructiuni
de I/O; pentru aceasta ele apeleaz
a un apel sistem - n acest scop este invocat
a
o instructiune hardware special
a ce comut
a procesul n kernel mode si apoi
ncepe executarea driverului dispozitivului de I/O respectiv (care efectueaz
a
acele instructiuni de I/O).
Consideratii de implementare
Partea din SO care este critic
a pentru efectuarea corect
a a operatiilor se
execut
a n kernel mode si formeaz
a asa-numitul kernel (nucleu), iar programele
de aplicatie se execut
a n user mode.
Kernel-ul functioneaz
a ca un soft de ncredere, adic
a i s-au incorporat
mecanisme de protectie ce nu pot fi schimbate prin actiuni ale unui alt soft,
executat n user mode.
Extensiile SO se execut
a n user mode a.. SO nu se bazeaz
a pe corectitudinea
lor pentru o functionare corect
a.
De aceea, o decizie fundamental
a de proiectare pentru orice functie a SO este
dac
a trebuie implementat
a n kernel.
Dac
a da, ea se execut
a n spatiul supervizor si va avea acces la celelalte p
arti
ale kernel-ului.
Dac
a nu (si se va executa n user mode), ea nu va avea acces la structurile de
date ale nucleului.