Documente Academic
Documente Profesional
Documente Cultură
Concepte de baza
- Procese, fire
- Algoritmi de planificare
- Gestiunea memoriei
- Memorie virtuala
- Fisiere
Continutul cursului
- Sisteme de calcul
- Ce este un sistem de operare ?
- Definitii traditionale
- Arhitectura si proiectarea SO
- Evolutia sistemelor de calcul si a SO
- Tipuri de SO
- Exemple
- Influente in proiectarea S.O
- Bibliografie
Sisteme de calcul
Componentele/resusrsele principale ale unui sistem de calcul (SC) sunt:
Resurse fizice(hardware)
Resurse logice(software)
o software-ul (programele) de aplicaţii
o software de baza (sistem)
Resurse informationale
Resurse software
Programele de aplicaţii au scopul de a rezolva cu ajutorul calculatorului o
problemă specifică dintr-un anumit domeniu de activitate (browsere de
web, editoare de text, de grafica, jocuri, programe financiar-bancar, de
calcul ştiinţific etc.).
Programele de sistem oferă instrumentele (mediul) cu care programatorii
pot crea propriile programe de aplicaţii, care nu sunt disponibile la nivel
fizic. Sistemul de operare (SO) face parte din resursele software ale unui
sistem de calcul.
Ce este un S.O. ?
Este dificil să se dea o definiţie completă a ceea ce este un SO, este mai
simplu sa enumeram functiile unui SO. Astfel:
- SO gestionează resursele hardware(memorie, discuri, imprimante etc)
şi cele logice (programe de sistem, fişiere, baze de date etc) ale
sistemului de calcul, oferind posibilitatea ca aplicatiile si utilizatorii să
poată folosi în comun aceste resurse, pe baza unor anumite reguli, ceea
ce conduce la scăderea cheltuielilor de prelucrare şi la creşterea
performanţelor sistemului de calcul.
• CPU (procesor/procesoare)
• Memoria principala (memoria RAM)
• Memoria secundara (HDD-uri, unitati de banda, ...)
• Dispozitive de retea
• Periferice de intrare (tastatura, mouse, scanner, ...)
• Periferice de iesire (monitor, imprimanta, difuzoare, ...)
Ce este kernelul?
SO este alcătuit dintr-un set de programe. Partea principală a unui SO care se
încarcă la pornirea calculatorului, iniţializează componentele hardware şi care
rămâne rezidentă în memorie având în principal rolul de supervizor se numeşte
kernel (nucleu). În funcţie de designul sistemului kernelul poate fi stocat într-un
singur fişier sau în mai multe fişiere. Fişierul care conţine kernelul poată numele
de imagine a sistemului de operare (sau kernelului). Funcţiile principale ale SO
care se regăsesc în kernel sunt legate de:
gestiunea memoriei;
planificarea, coordonarea şi gestionarea execuţiei proceselor şi firelor;
furnizarea de mecanisme de comunicare între procese, sincronizare;
gestionează operaţiilor dependente de hardware, întreruperile, timerele, etc.
furnizarea de servicii de sistem privind operaţiile de intrare/ieşire şi de gestiune a fişierelor.
Astfel, în funcţie de scopul pentru care este construit un sistem de calcul, acesta va lucra cu un SO dotat cu funcţionalităţi speciale (cum ar fi
multiprogramarea, time-sharing, etc.) care să susţină acel scop.
Calculatoare mainframe
La momentul construirii primelor calculatoare nu existau limbaje de programare şi nici sisteme de operare. Calculatorul era programat direct prin
cablarea directă a unor placi cu circuite care se introduceau în sistem, şi era operat prin comutatoare hardware.
Memoria
Monitor, job scheduler,
Un singur program întreruperi, drivere
Prelucrare pe loturi
Apare conceptul de job, limbajul de asamblare, Fortran - primul limbaj de programare şi primul sistem de operare primitiv care utiliza conceptul de
procesare pe loturi (batch-jobs). SO se prezintă sub forma unui program – monitor care era rezident în memorie şi care încărca primul program de
pe o bandă în memorie şi îl lansa în execuţie, aştepta până la terminarea acestuia apoi trecea la următorul program de pe bandă. Loturile de joburi
erau primite de la mai mulţi utilizatori care nu puteau interveni în timpul prelucrării. Procesorul nu era utilizat eficient deoarece viteza de lucru a
perifericelor era foarte scăzută în raport cu viteza procesorului, şi deseori se pierdea timp de procesor în fazele de citire a joburilor de pe bandă şi
la scrierea rezultatelor. Odată cu introducerea discurilor magnetice a crescut viteza de citire şi scriere a programelor şi datelor, dar a crescut şi
viteza de lucru a procesoarelor.
Multiprogramarea
Pentru a ţine procesorul ocupat în mod optim se introduce multiprogramarea. În cazul procesării pe loturi în memorie se află cel mult un job,
multiprogramarea presupune menţinerea mai multor joburi în memorie în acelaşi timp. Iniţial joburile sunt introduse în lotul de joburi, SO alege
câteva joburi din lot, le încarcă în memorie şi lansează unul din ele. Când un program are nevoie de date de pe disc acesta lansează o operaţie de
citire şi aşteaptă sosirea datelor. În cazul unui sistem fără multiprogramare pe durata operaţiei de intrare/ieşire procesorul ar fi fost neutilizat. În
prezenţa multiprogramării SO alege un alt job din memorie şi decide să îl execute. Dacă şi acesta intră într-o stare de aşteptare un alt job este ales
şi executat. Alegerea unui program din lotul de lucru pentru a fi încărcat în memorie presupune existenţa unui mecanism de planificare a joburilor
(planificator pe termen lung). Alegerea unui program din lista de programe aflate în memorie care sunt gata de rulare presupune existenţa unui
mecanism de planificare a procesorului (planificator pe termen scurt). Menţinerea simultană în memorie a mai multor programe impune
asigurarea unor mecanisme gestiune a memoriei, de izolare şi protecţie a sistemului faţă de programe, dar şi a programelor unele faţă altele.
• De timp real
• Desktop
• Incorporate
• Cu multiprocesor
• Distribuite
• Clustere
• Peer to peer
• Client - server
În funcţie de arhitectură
Simplă – monolitic
Pe straturi
Modular
Microkernel
Maşini virtuale
Exokernel, Hibridă...
Client – Server
Exemple de SO
• MSDOS – monolitic, nestructurat
• Windows XP – arhitectura stratificată
• BSD Unix , Solaris – arhitectura modulară
• True 64 UNIX, QNX - mikrokernel
• Linux – artitectura monolitica
• Mach – microkernel
• Mac OS X – stratificat, modular
• Minix – microkernel
Laborator
Instalare UNIX
Comenzi de operare cu fisiere în UNIX
Instalare aplicatii, drivere
Compilarea kernelului UNIX
Comenzi UNIX
• ARP • FDFORMAT • MV • TOP
• ADDUSER • FIND • MOUNT • TEE
• CAT • FSCK • MAKE • TAIL
• CHMOD • FINGER • NETSTAT • TIME
• CHOWN • HEAD • NEWFS • TELNET
• CD • IFCONFIG • PS • TOUCH
• CP • KILL • PASSWD • UNAME
• DF • LOCATE • PWD • UPTIME
• DU • LAST • RM • UMOUNT
• DHCLIENT • LS • ROUTE • USERS
• DMESG • LOGIN • RMUSER • WHO
• EE • LESS • SENDMAIL • WHOAMI
• EXIT • MORE • SORT • WC
• FILE • MKDIR • SSH
• FTP • MAN • SU
Bibliografie
• Silberschatz A., Galvin P.B. and Gagne G. (2009). Operating Systems Concepts, 8th edn.
John Wiley & Sons
• Tanenbaum A.S. (1987). Operating Systems, Design and Implementation. Englewood
Cliffs NJ: Prentice-Hall.
• Tanenbaum A.S. (1992). Modern Operating Systems. Englewood Cliffs NJ: Prentice-Hall.
• UNIX in a Nutshell, O'Reilly Books, 4th edn, 2008
• The Complete FreeBSD, 4th Edition - O'Reilly
• http://www.freebsd.org
Intrebari ?