Biblioteca
Tutora
BibliotecaInformatică și TIC › clasa a XI-a

Sisteme de operare

Rolul și funcțiile sistemului de operare, gestionarea resurselor unui calculator.

Rolul și funcțiile sistemului de operare

Sistemul de operare (SO) este programul care se interpune între hardware și aplicații. Are un dublu rol, iar ambele formulări apar în manuale:

Funcțiile principale, așa cum se cer enumerate:

Componenta centrală este nucleul (kernel), singura parte care rulează în mod nucleu (kernel mode), cu acces total la hardware. Aplicațiile obișnuite rulează în mod utilizator, restricționat, și cer serviciile nucleului prin apeluri de sistem (system calls). Această separare pe două moduri este exact motivul pentru care un program prost scris blochează, de regulă, doar propria fereastră, nu tot calculatorul.

Două confuzii de evitat: BIOS/UEFI nu este sistem de operare — este firmware-ul care pornește calculatorul și încarcă SO-ul; iar interfața grafică nu este sistemul de operare, ci doar un strat de deasupra lui (pe Linux poți schimba mediul grafic fără să schimbi sistemul).

După modul de utilizare, sistemele se clasifică în monotasking / multitasking, monouser / multiuser, de timp real (garantează timpi de răspuns, în industrie și medicină) și distribuite.

Gestiunea proceselor

Distincția de la care pleacă totul: programul este un fișier pasiv pe disc, iar procesul este programul în execuție, cu spațiul lui de memorie, registrele și resursele proprii. Din același program se pot lansa mai multe procese independente (trei ferestre de browser).

Sistemul ține evidența fiecărui proces într-un bloc de control al procesului (PCB): identificatorul (PID), starea, contorul de program, conținutul registrelor, prioritatea, fișierele deschise.

Stările unui proces și trecerile dintre ele se cer explicit:

Aici se produce eroarea clasică: „blocat” și „pregătit” sunt confundate. Un proces blocat nu poate primi procesorul oricât ar fi el liber, fiindcă îi lipsește ceva (datele de pe disc); un proces pregătit ar putea rula imediat, doar că procesorul e ocupat de altcineva. Când operația de I/O se termină, procesul trece din blocat în pregătit, nu direct în execuție.

Multitaskingul pe un singur nucleu este o iluzie: procesorul comută foarte rapid între procese (comutare de context), dând impresia execuției simultane. Execuție cu adevărat paralelă există doar pe mai multe nuclee.

Planificatorul (scheduler) decide cine urmează. Algoritmi de reținut: FCFS (primul venit, primul servit — simplu, dar un proces lung întârzie tot ce urmează), SJF (cel mai scurt job primul — optim ca timp mediu de așteptare, dar poate înfometa procesele lungi), Round Robin (fiecare proces primește o cuantă de timp, apoi e întrerupt — echitabil, tipic sistemelor interactive) și cu priorități.

Firul de execuție (thread) este o unitate de execuție din interiorul unui proces: firele partajează memoria procesului, deci comută mai ieftin decât procesele, dar tocmai partajarea face necesară sincronizarea.

Ultima noțiune: interblocarea (deadlock) — două sau mai multe procese se blochează reciproc, fiecare așteptând o resursă deținută de celălalt. Se previne rupând una dintre condițiile care o fac posibilă, de exemplu impunând o ordine unică de cerere a resurselor.

Gestiunea memoriei

Memoria RAM este o resursă limitată pe care mai multe procese o cer simultan. Sistemul de operare trebuie să o aloce, să o elibereze și, esențial, să protejeze procesele unul de altul: un proces nu trebuie să poată citi sau scrie în memoria altuia.

Tehnicile, în ordine istorică:

Din paginare decurge memoria virtuală: fiecare proces vede un spațiu de adrese propriu, continuu și mai mare decât RAM-ul fizic; paginile nefolosite sunt ținute pe disc, într-o zonă numită swap (Linux) sau fișier de paginare (Windows). Traducerea adresă virtuală → adresă fizică se face prin tabela de pagini, cu ajutorul unității hardware MMU.

Când un proces accesează o pagină care nu e în RAM apare o eroare de pagină (page fault): sistemul o aduce de pe disc, eventual evacuând alta, după un algoritm de înlocuire (FIFO, LRU — cea mai demult folosită, optimal, teoretic).

Costurile trebuie înțelese, nu memorate: discul e de ordine de mărime mai lent decât RAM-ul. Dacă memoria fizică e prea mică, sistemul ajunge să petreacă mai mult timp mutând pagini decât executând cod util — fenomen numit thrashing, și exact asta simți când calculatorul „se târăște” cu prea multe aplicații deschise.

Confuzia de evitat: memoria virtuală nu înlocuiește RAM-ul și nu îl face mai rapid; ea doar permite rularea a mai multor programe decât ar încăpea, cu prețul unei încetiniri.

Sisteme de fișiere, organizare și drepturi de acces

Sistemul de fișiere este modul în care SO organizează datele pe suportul de stocare: cum sunt denumite fișierele, unde se rețin blocurile lor, ce metadate se păstrează.

Organizarea este ierarhică, sub formă de arbore: directoare care conțin fișiere și alte directoare. Pe Windows fiecare volum are propria rădăcină, identificată prin literă (`C:\`), iar separatorul este backslash; pe Linux există o rădăcină unică `/`, iar celelalte volume se montează ca directoare în interiorul ei, separatorul fiind slash.

Căile pot fi absolute (pornesc din rădăcină: `/home/ana/teme/lab1.cpp`) sau relative la directorul curent (`teme/lab1.cpp`), cu notațiile `.` pentru directorul curent și `..` pentru cel părinte.

Fiecare fișier are, pe lângă conținut, metadate: nume, dimensiune, dată de creare și modificare, proprietar, drepturi. Sisteme de fișiere uzuale: FAT32 (compatibil aproape peste tot, dar cu limita de 4 GB pe fișier), exFAT (pentru stickuri și carduri mari), NTFS (Windows: jurnalizare, drepturi, fișiere mari), ext4 (Linux), APFS (macOS). Jurnalizarea (journaling) înseamnă că sistemul notează operațiile înainte de a le efectua, ca să poată reface starea coerentă după o pană de curent.

Drepturile de acces pe Linux se cer aproape sigur. Există trei drepturi — r (citire), w (scriere), x (execuție) — atribuite pentru trei categorii: proprietar (u), grup (g) și ceilalți (o). Notația octală atribuie r=4, w=2, x=1, deci:

O subtilitate care încurcă: pentru un director, dreptul x nu înseamnă execuție, ci dreptul de a intra în el și de a accesa ceva dinăuntru; r înseamnă doar dreptul de a-i lista conținutul. De aceea un director cu r fără x este practic inutilizabil.

Interfața grafică și interfața în linie de comandă

Utilizatorul comunică cu sistemul prin două tipuri de interfață, iar examenul cere argumentarea avantajelor fiecăreia.

Interfața grafică (GUI) folosește ferestre, pictograme, meniuri și indicator de mouse. Este intuitivă, ușor de învățat, potrivește lucrului cu imagini și documente, arată starea sistemului dintr-o privire. Dezavantaje: consumă mai multe resurse, iar operațiile repetitive devin obositoare — nu poți redenumi 2000 de fișiere dând clic de 2000 de ori.

Interfața în linie de comandă (CLI) presupune scrierea comenzilor într-un interpretor de comenzi (shell): `bash` sau `zsh` pe Linux, `cmd` și PowerShell pe Windows. Avantaje: consum minim de resurse (indispensabil pe servere fără mediu grafic), precizie, posibilitatea de a automatiza prin scripturi și de a administra la distanță prin SSH. Dezavantaj: curbă de învățare abruptă, comenzile trebuie știute.

Comenzi de bază, în paralel Linux / Windows:

Două mecanisme dau adevărata putere a liniei de comandă: redirectarea (`> fisier` scrie rezultatul în fișier, `>>` adaugă la sfârșit, `<` citește din fișier) și înlănțuirea prin pipe (`|`), care trimite ieșirea unei comenzi ca intrare pentru următoarea: `ls | grep .cpp` filtrează doar fișierele sursă.

Concluzia corectă, care se așteaptă la subiectul de sinteză: cele două interfețe nu se exclud — sistemele moderne le oferă pe amândouă, iar alegerea depinde de sarcină: GUI pentru lucrul vizual și ocazional, CLI pentru administrare, automatizare și servere.

Windows și Linux – comparație

Cele două familii de sisteme se compară pe criterii concrete, nu pe simpatii.

Licențiere și cost. Windows este software proprietar, comercial, cu cod sursă închis și licență plătită. Linux este software liber și open source, distribuit sub licența GPL: poate fi folosit, studiat, modificat și redistribuit. Atenție la o confuzie serioasă: „liber” nu înseamnă „gratuit” — sensul este libertatea de utilizare și modificare; există distribuții comerciale plătite (Red Hat Enterprise Linux), iar sprijinul tehnic se vinde.

Terminologie. Strict vorbind, Linux este nucleul; un sistem complet, cu utilitare și mediu grafic, se numește distribuție (Ubuntu, Debian, Fedora, Mint, Arch). Aceasta e nuanța pe care profesorii o punctează.

Fișiere și organizare. Windows: litere de unitate, `\`, sistem NTFS, extensia contează pentru asocierea cu aplicația. Linux: rădăcină unică `/`, `/`, ext4, numele fișierelor sunt sensibile la majuscule (`Tema.cpp` și `tema.cpp` sunt fișiere diferite — pe Windows nu).

Instalarea programelor. Pe Windows, tipic prin descărcarea unui program de instalare de pe site-ul producătorului. Pe Linux, prin manager de pachete din depozite (repositories) verificate: `apt`, `dnf`, `pacman`. Diferența are consecință directă de securitate: sursa e centralizată și semnată digital.

Utilizare și securitate. Windows domină pe calculatoarele personale și în jocuri, are cea mai largă compatibilitate cu aplicațiile comerciale, dar tocmai cota de piață îl face ținta principală a malware-ului. Linux domină pe servere, supercomputere și în cloud, este stabil, consumă puțin, funcționează bine pe hardware vechi și separă strict drepturile (contul obișnuit nu poate modifica sistemul fără sudo). macOS e a treia familie, bazată pe Unix, cu integrare strânsă hardware-software.

Concluzia echilibrată: nu există „cel mai bun sistem”, ci potrivirea cu scopul — compatibilitate și ușurință pe desktop, stabilitate, cost și control pe server.

De reținut

sistem de operare
ansamblu de programe care administrează resursele hardware ale calculatorului și oferă aplicațiilor și utilizatorului o interfață de lucru cu acestea
nucleu (kernel)
componenta centrală a sistemului de operare, singura care rulează în mod nucleu, cu acces direct la hardware
proces
un program aflat în execuție, având spațiu propriu de memorie, identificator (PID) și resurse alocate
comutare de context
salvarea stării procesului curent și încărcarea stării altui proces, operație care face posibil multitaskingul pe un singur procesor
memorie virtuală
mecanism prin care fiecare proces vede un spațiu de adrese propriu, mai mare decât memoria fizică, paginile nefolosite fiind păstrate pe disc
paginare
tehnică de gestiune a memoriei care împarte spațiul procesului în pagini de dimensiune fixă, plasate în cadre neadiacente ale memoriei fizice
interblocare (deadlock)
situație în care două sau mai multe procese se blochează reciproc, fiecare așteptând o resursă deținută de celălalt
sistem de fișiere
modul de organizare, denumire și stocare a fișierelor pe un suport, împreună cu metadatele și drepturile asociate
drepturi de acces pe Linux
combinație de citire (r=4), scriere (w=2) și execuție (x=1), acordată separat proprietarului, grupului și celorlalți utilizatori
distribuție Linux
sistem complet construit în jurul nucleului Linux, cuprinzând utilitare, manager de pachete și, de obicei, un mediu grafic

Greșeli frecvente

Greșit: Un proces blocat și unul pregătit sunt același lucru, ambele așteaptă
Corect: Procesul pregătit așteaptă doar procesorul și ar putea rula imediat, în timp ce procesul blocat așteaptă un eveniment extern și nu poate primi procesorul nici dacă acesta este liber
Greșit: Memoria virtuală mărește viteza calculatorului, fiind o extindere a memoriei RAM
Corect: Memoria virtuală permite rularea mai multor programe decât încap în RAM, dar paginile aduse de pe disc încetinesc execuția; în exces duce la thrashing
Greșit: BIOS-ul sau interfața grafică sunt sistemul de operare
Corect: BIOS/UEFI este firmware-ul care pornește calculatorul și încarcă sistemul de operare, iar interfața grafică este doar un strat construit deasupra nucleului
Greșit: Pe un director, dreptul x înseamnă că directorul poate fi executat
Corect: Pentru un director, x dă dreptul de a intra în el și de a accesa conținutul, iar r doar dreptul de a-i lista numele fișierelor
Greșit: Software liber înseamnă software gratuit
Corect: Liber se referă la libertatea de a folosi, studia, modifica și redistribui codul sursă; există distribuții Linux comerciale, contra cost, precum și programe gratuite dar cu sursă închisă

Test — 6 întrebări ca la examen

1. Diferența dintre program și proces este că:
  1. programul este scris într-un limbaj de nivel înalt, iar procesul în cod mașină
  2. programul este o entitate pasivă stocată pe disc, iar procesul este programul în execuție
  3. procesul este o parte a programului, mai exact funcția main
  4. programul rulează în mod nucleu, iar procesul în mod utilizator
Vezi răspunsul
programul este o entitate pasivă stocată pe disc, iar procesul este programul în execuție. Programul este un fișier pasiv, iar procesul este instanța lui în execuție, cu memorie, PID și resurse proprii; din același program pot rezulta mai multe procese. Prima variantă descrie o diferență de compilare, nu una între cele două noțiuni.
2. Un proces care așteaptă terminarea unei operații de citire de pe disc se află în starea:
  1. în execuție
  2. pregătit
  3. blocat
  4. terminat
Vezi răspunsul
blocat. Așteptarea unui eveniment extern, precum o operație de intrare/ieșire, definește starea blocat. Starea pregătit este distractorul principal, dar acolo procesul are tot ce îi trebuie și așteaptă exclusiv procesorul, ceea ce nu e cazul aici.
3. Algoritmul de planificare în care fiecare proces primește pe rând o cuantă de timp, după care este întrerupt, se numește:
  1. FCFS
  2. SJF
  3. Round Robin
  4. planificare cu priorități statice
Vezi răspunsul
Round Robin. Cuanta de timp și rotația proceselor sunt definiția Round Robin, potrivit sistemelor interactive. FCFS, distractorul frecvent, servește procesele strict în ordinea sosirii și le lasă să ruleze până se termină, fără întrerupere.
4. Fragmentarea externă apare atunci când:
  1. un proces primește o partiție mai mare decât are nevoie și restul se irosește
  2. memoria liberă există, dar este împărțită în zone mici, neadiacente, insuficiente pentru un proces nou
  3. paginile unui proces sunt mutate pe disc, în zona de swap
  4. tabela de pagini devine prea mare pentru memoria disponibilă
Vezi răspunsul
memoria liberă există, dar este împărțită în zone mici, neadiacente, insuficiente pentru un proces nou. Fragmentarea externă înseamnă memorie liberă totală suficientă, dar risipită în găuri prea mici pentru a fi folosite. Prima variantă descrie fragmentarea internă, adică spațiul irosit în interiorul unei partiții alocate — exact perechea cu care se confundă.
5. Un fișier Linux are drepturile 644. Ce poate face un utilizator care nu este nici proprietar, nici membru al grupului?
  1. îl poate citi și modifica
  2. îl poate doar citi
  3. îl poate doar executa
  4. nu are niciun drept asupra fișierului
Vezi răspunsul
îl poate doar citi. Ultima cifră, 4, se referă la ceilalți utilizatori și înseamnă doar r, adică citire. Varianta cu citire și modificare corespunde cifrei 6 (4+2), care aici este acordată doar proprietarului.
6. Comanda ls | grep .cpp are ca efect:
  1. salvarea listei de fișiere într-un fișier numit grep
  2. afișarea, din lista fișierelor din directorul curent, doar a celor care conțin .cpp în nume
  3. căutarea textului .cpp în interiorul tuturor fișierelor din director
  4. ștergerea fișierelor cu extensia .cpp
Vezi răspunsul
afișarea, din lista fișierelor din directorul curent, doar a celor care conțin .cpp în nume. Simbolul pipe trimite ieșirea comenzii ls ca intrare pentru grep, care filtrează liniile primite, adică numele fișierelor. Varianta cu căutarea în interiorul fișierelor cade pentru că grep primește aici doar lista de nume, nu conținutul lor; pentru asta ar fi fost nevoie de grep .cpp cu fișierele ca argument.
Deschide varianta interactivă — cu AI care îți explică
← Tehnologii web – HTML, CSS și JavaScript de bazăElemente de grafică pe calculator →
BiologieChimieEconomieFilosofieFizicăGeografieInformatică și TICIstorieLogică și argumentareMatematicăPsihologieLimba și literatura română