3/18/2021
sistem de operare Linux
Realizat de:
Amiri Adel Mohammed Nadjib
An universitar: 2020/2021
Definiț ia unui sistem de operare :
Un sistem de operare notat 'SE' este un intermediar între maș ină ș i
utilizatorul prin definiț ia sa practică este un ansamblu de programe
necesar pentru funcț ionarea computerului ș i indispensabil pentru punerea în aplicare
opera aplicaț iilor.
Funcț ia SE este:
–Gestionarea resurselor (memorie...)
Gestionarea intrărilor-ieș irilor
–Gestionarea fiș ierelor
Gestionarea programelor
–Asiguraț i interfaț a cu utilizatorul ș i gestionarea
d’entrée/sortie.
Structura unui sistem de operare :
SE este constituit din structura:
Nucleul în limba română, nucleul unui SE joacă un rol foarte important care gestionează
resursele computerului ș i permite diferitelor componente hardware ș i
software-uri pentru a comunica între ele.
Sistemul de operare Linux:
Linux este un sistem de operare în format liber creat de un student
finlandez în cooperare cu fondatorii sistemului UNIX, adică linux este
un nucleu al sistemului de operare global UNIX dezvoltat esenț ialmente în
limbaj C de către o comunitate largă de contributori care a decis să-l pună
gratuit ș i ‘open_source’.
Acest sistem are rolul de: - gestionarea proceselor - gestionarea
memorie – gestionarea sistemelor de fiș iere ș i gestionarea intrării/ieș irii.
Un software open-source pune la dispoziț ie sursele programului în timp ce
software-ul proprietar se limitează la a distribui versiunea compilată.
Gestionarea proceselor :
Un proces este o execuț ie a unui program, sub Linux fiecare proces este
identificat prin numărul său numit PID (identificator de proces). Dar un procesor
care este un component în PC nu poate executa decât o instrucț iune.
Bloc de control al procesului :
"PCB" este o structură de date utilizată de SE pentru a stoca toate
informaț ii despre un proces.
PCB-ul stochează datele necesare pentru o gestionare corectă ș i eficientă a
procesul, elementele comune se împart în trei categorii
principale :
- identificarea proceselor – starea procesului ș i controlul procesului.
Există tabele de stare pentru fiecare entitate care se referă la informaț iile
despre gestionarea memoriei, dispozitivele de intrare/ieș ire, informaț iile despre
ordonaț ia.
Ierarhia proceselor :Când un proces este iniț ializat, sistemul
exploatare a creat un bloc de control al procesului informaț iile conț inute
în acest bloc sunt actualizate în timpul tranziț iei dintre stările procesului.
Când procesul se încheie, PCB-ul său este returnat în pool.
din care sunt extrase noile PCB-uri.
Exemple :
Dacă procesul A a creat procesul B, A este părintele lui B, B este fiul lui A.
prin defect, se execută aceeaș i cod ca B) B poate la rândul său să creeze procese. Un
procesul cu toț i descendenț ii săi formează un grup de procese reprezentat
printr-un arbore de procese.
Furculiț ăeste singura apelare a sistemului de creare a proceselor.
Ordinea de desfăș urare a proceselor :
Pentru a gestiona procesele în timpul ș ederii lor, SE menț ine mai multe cozi
de aș teptare. Se pot menț iona printre altele:
Coada de aș teptare a proceselor pregătite - Coada de aș teptare a dispozitivelor
Un proces a nevoie de un procesor pentru a executa calcule. Deci avem
l'ordonnanceur care este allocatorul procesorului către diferitele procese, el
alocă procesorul procesului din faț a cozii de aș teptare a sarcinilor. Avem un programator
preemptiv, al cărui tranziț ie de la starea de ales la starea de pregătit este autorizată ș i altul nu
preemptiv al cărui transfer este interzis.
Criteriile de ordonare:
Utilizarea maximă a procesorului, echitatea în procese, capacitatea
de tratament maxim, durata timpului mediu de rotire, scăderea
timpul mediu de aș teptare ș i timpul mediu dintre o terminare a unei intrări ș i începutul
ieș ire (răspuns).
Algoritmii de programare
Algoritmul "FCFS" (primul venit, primul servit): este mai uș or de scris ș i de
a înț elege că alocă procesorul primului proces care îl solicită. ș i
timpul mediu de aș teptare va fi calculat prin: (suma timpului de aș teptare al
proces / întregul proces
Algoritmul "SJF" (cel mai scurt job întâi): alocă procesorul procesului
Având cel mai scurt timp de executare, diferenț a dintre el ș i FCFS
este că în algoritmul SJF obț inem un timp de aș teptare mai mic decât
cele din FCFS.
Algoritmul Round Robin (Tourniquet): a fost conceput pentru sisteme
la timp partajat. El alocă procesorul proceselor pe rând, în timpul
o perioadă de timp numită quantum. În practică, quantum-ul se extinde
între 10 ș i 100 ms
Performanț ele acestui algoritm depind în mare măsură de dimensiunea cuantumului
ș i dacă este mare, performanț a sa este similară cu FCFS, iar dacă este foarte mică
metoda 'Tourniquet' ar permite partajarea procesorului, dar trebuie să
alegea o dimensiune a cuantumului astfel încât să nu suprasolicite sistemul
comutări frecvente de context.
Ordinea cu prioritate: acest lucru este asociat fiecărui proces
prioritate, iar procesele sale vor fi activate în funcț ie de această prioritate (mod
diminua) ș i aceste priorităț i se definesc în funcț ie de parametrii, de exemplu:
(tipul de proces, limitele memoriei, etc.)
La sfârș itul procesului: acesta poate să se încheie prin: o ieș ire normală când un
procesul a terminat execuț ia sa, o ieș ire din cauza unei erori (/0),
eliberarea proceselor de către sistemul de operare, ș i în sistemul 'Linux'
oprim un proces prin comanda « kill » ș i îl putem ucide fără
cunoaș te-ț i ‘PID’-ul prin comanda «killall».
Shell Linux: Shell-ul este un interpret de comenzi care este interfaț a
între utilizator ș i sistemul de operare. Sintaxă a unei comenzi Shell :
Comandă [-opț iune] [argumente]
Shell-ul constă în citirea liniei de comandă, interpretarea semnificaț iei acesteia,
executa comanda, apoi returneaza rezultatul pe iesiri.
Comanda Shell de manipulare a proceselor :
Pe comanda ps -ef se afiș ează lista proceselor care sunt în curs de execuț ie pe
computerul ș i informaț iile lor detaliate.
Opț iunea –u permite afiș area sarcinilor lansate de un utilizator anume.
Pentru a termina un proces, trebuie să cunoaș tem „PID”-ul său ș i să scriem comanda
suivante kill -9<PID> dar această comandă nu este folosită doar pentru a ucide un
procesul deci folosim comenzile cele mai comune 'SIGTERM' ș i
'SIGKILL' care serveș te la terminarea unui proces.
Gestionarea memoriei :
Gestionarul de memorie este un subansamblu al sistemului de operare.
Rolul său este de a împărtăș i memoria între sistemul de operare ș i diversele aplicaț ii
de a oferi o memorie virtuală mai mare decât memoria fizică.
Memorie/adresă fizică ș i virtuală :
Diferenț a dintre memoria fizică/virtuală este că memoria
fizica este limitată de dimensiunea modulelor de RAM instalate pe computer.
Memoria virtuală este limitată de dimensiunea discului dur ș i de adresele
fizice sunt adresele memoriei fizice ș i adresele logice sunt
adresele generate de CPU în timpul execuț iei unui program.
Aspectele încărcării:
a) alocare contiguă: este una dintre metodele de alocare a memoriei
este atunci când un proces solicită memorie, o singură secț iune
contiguu de blocuri de memorie este alocat procesului în funcț ie de nevoile sale
necesităț i, alocarea contiguă poate fi obț inută prin împărț irea
memorie principală în partiț ii ș i alocă fiecare partiț ie unui singur
procesele, partiț iile sunt fie de aceeaș i dimensiune, fie de dimensiuni inegale din care
avem o fragmentare externă (unele fiș iere vor fi goale) ș i acolo
fragmentare internă, ș i avem partiț ia dinamică din care fiecare
procesul este alocat exact aceeaș i dimensiune de memorie necesară.
Tehnica de alocare a memoriei: sistemul de operare
menț ine o masă de biț i care indică ce partiț ie a memoriei este
liber ș i care este ocupată de procese, sau o listă înlănț uită din care
membre sunt (tipul, lungimea, adresa ș i pointerul pe element)
- algoritmul de plasare: scopul său este de a reduce utilizarea
compresie pe un les choix : (1eramplasare, cea mai bună amplasare ș i
cel mai prost loc.
Problema alocării contigue se află în fragmentarea externă
Spaț iul neutilizat este între partiț ii ș i în interior este în
partiț ii, o soluț ie pentru fragmentarea externă este
compactare care este juxtapunerea pe hard disk-ul unui computer de
întregul set de fiș iere fără a păstra un spaț iu liber între acestea,
printre dezavantajele sale se numără timpul de transfer al programelor.
b) Alocare necontiguă: Cu scopul de a reduce nevoia de comprimare,
următorul pas este să utilizăm alocarea necontiguă care reduce de asemenea
risipa de memorie cauzată de fragmentarea internă ș i externă.
Cum foloseș te golurile de memorie, create în timpul fragmentării
intern ș i extern. Există două tehnici pentru a face asta: paginarea ș i
la segmentare.
Segmentele sunt spaț ii de adresare independente de diferite
lungimi şi care pot chiar varia pe parcursul utilizării, iar mesele
segmentele conț in baza ș i limita, dar problema cu
segmentation este că segmentul are o lungime variabilă ș i
fragmentearea externă nu este eliminată, deci avem paginarea care
utilizează unităț ile de alocare a memoriei fixe.
Tehnica de paginare: constă în organizarea memoriei în zone de
dimensiuni fixe sau identice numite cadre de pagină sau în engleză « page
frame ». Spaț iul de adresare al unui proces este împărț it în mici unităț i de
dimensiune fixă numite pagini.
Tabelele de paginiSE trebuie să menț ină pentru fiecare proces o
tabel de pagină ș i acesta este indexat după numărul paginii, iar fiecare
intrarea unei tabele de pagini conț ine numărul de cadru unde pagina
corespondentă este localizată fizic.
Memoria virtuală: este o tehnică de gestionare a memoriei care nu de
a păstra în memoria centrală părț ile care sunt în execuț ie celelalte părț i
pe memoria secundară, astfel încât să permită rularea proceselor
mult mai mari decât memoria fizică.
Avantajele încărcării parț iale: Mai multe procese pot fi menț inute
în execuț ie în memorie
Mai multe pagini sau segmente rar folosite s-ar putea să nu aibă nevoie
de a fi încărcaț i cu totul. Ș i este posibil să executaț i un set de procese
când dimensiunea lor depăș eș te cea a memoriei principale. Ș i astfel memoria
fizic numit memorie virtuală ș i se află în RAM
Executarea unui proces:
Sistemul de operare pune în aplicare instrucț iunile unui program
O întrerupere este generată atunci când adresa logică se referă la o piesă care
nu face parte din ansamblul rezidenț ial.
Înlocuirea paginii: o înlocuire a paginii are loc atunci când un
procesul solicită o nouă pagină ș i nu există cadru liber în
RAM utilizată. Pentru a rezolva această problemă, se alege o pagină deja în memorie.
principale care aparț ine aceleaș i sau unui alt proces (pagina victimă).
Algoritmul LRU: înlocuieș te pagina care nu a fost utilizată de la
mult timp.
Pentru a face acest lucru, putem utiliza un contor sau un stivă.
Algoritmul OPT: alege pentru pagina de înlocuit pe cea care va fi referită
mai târziu.
Algoritmul FIFO: Când memoria este plină, cea mai veche pagină este
înlocuită.
Gestionarea memoriei în GNU/Linux: într-un sistem Linux diferite
memoria existentă este: memoria 'UTILIZATĂ' (utilizată de procese ș i
noyau), memoria ‘FREE’, memoria ‘SHARED’, memoria ‘cache’ ș i
memorie ‘SWAP’.
Funcț ionarea memoriei: procesele pot fi transferate în
SWAP ș i eliberarea memoriei RAM iau de asemenea controlul atunci când 60% este
utilizată.
Comanda FREE: afiș ează RAM-ul utilizat sub Linux prin: root@~~#free
liber -M⇒ Pentru a afiș a rezultatele în Mo
liber -k⇒ Pentru a afiș a rezultatele în Ko
liber -t⇒ pentru a afiș a totalul swap +ram
Utilizarea Swap: Swap-ul este folosit atunci când memoria RAM este aproape
pagini de memorie inactive vor fi transferate în spaț iul Swap.
Spaț iul de adresare al unui proces: este structurat într-un set de unităț i
numite pagini sau segmente care pot fi încărcate separat în memorie.
Sisteme de gestion a fiș ierelor :
Un sistem de fiș iere este o colecț ie de informaț ii care permite stocarea
informaț ii ș i le organizaț i pe memoriile secundare. există diferite
tipuri : (date [binare, numerice, caracter…], sau programe).
Atributele unui fiș ier: Constituie proprietăț ile fiș ierului ș i sunt stocate
într-un fiș ier special numit director.
Structură de directoare :
O colecț ie de structuri de date conț inând informaț ii despre fiș iere, ele sunt
stocate într-o structură de dosare numită rădăcină.
Există tipuri de structuri de directoare: director la un nivel, două niveluri
ș i director cu arbore.
Gestionarea organizării spaț iului pe disc: fiș ierele ș i discul
stocarea este împărț ită într-un set de blocuri, sunt distinse trei metode
de alocare a fiș ierelor :
a) Alocare contiguă: fiecare fi ș ier ocupă un set de blocuri
contiguu pe disc
Problemele; - fragmentare externă, fiș ierele nu pot creș te
aș adar, avem adesea nevoie să realocăm spaț iul pe disc al fiș ierului.
b) Alocare înlăn ț uită: este vorba despre alocarea de blocuri înlăn ț uite între ele la
fiș ierele. ș i fiecare bloc permite găsirea blocului următor.
Avantaje: nicio limitare de dimensiune, eliminarea fragmentării externe.
Dezavantaj: accesul fiș ierului este complet secvenț ial, pointerii se
se găsesc pe blocuri, astfel că parcurgerea fiș ierului implică o citire a tuturor
blocurile de pe disc.
c) Alocare non contiguă indexată: urmează acela ș i principiu ca paginarea
Pentru memorie, fiecare fiș ier are propriul bloc de index, tabel
de adresare a blocurilor de disc.
Sistem de gestion al fiș ierelor: fiș ierele sunt indexate de sistemul linux prin
Inod
Gestionarea fiș ierelor sub linux: sistemul de fiș iere din Linux este întreg.
organizat în interiorul unei singure arbori.
Diversele categorii de fiș iere :
-Fi ș ierele obi ș nuite: text, imagini, audio, scripturi, bază de date…
-Fi ș ierele catalogului: repertorii, dosare, directoare.
-Fi ș ierele speciale: situate în directorul /dev, acestea prezintă unele
periferice.
Cărț ile de acces sub Linux :
- Calea absolută: identifică o referin ț ă realizată prin lista directoarelor
începând cu rădăcina /.
- Calea relativă: identifică o referin ț ă realizată printr-un director curent.
Comenzi Shell pentru manipularea fiș ierelor:
-$touch mon-fichier>>crearea unui fi ș ier gol.
-$more mon-fichier>>vizualizare a unui fi ș ier pagină cu pagină.
-$rm mon-fichier>> ș tergerea unui fi ș ier.
-$mv mon-fichier répertoire-accueil>>mutare un fi ș ier.
-$mv mon-fichier nou-nume>>schimbare nume fi ș ier.
-$cp mon-fichier répertoire-accueil/autre-nom>>copie de fichier.
-$file mon-fichier>>pentru a ș ti dacă avem un fi ș ier binar sau un fi ș ier text.
Gestionarea utilizatorilor ș i grupurilor :
-Chmod 664 [Link] : utilizat pentru a seta un atribut de acces pentru to ț i
ansambluri de utilizatori, prima cifră fixează accesul utilizatorului
proprietar, al doilea fixează accesul grupului proprietar ș i ultimul
fixează accesul altora.
Gestionarea intrărilor/ieș irilor :
Un dispozitiv este un echipament electronic care poate fi conectat la un
computer, există două tipuri de periferice:
-Dispozitiv de caracter: se poate accesa informa ț ia de caracter prin
caracter (tastatură, imprimantă, mouse...)
-Bloc periferic: se accesează informa ț ia doar prin bloc care are
adresă proprie.
Unitatea de schimb :
Serveste pentru a permite schimburile de informaț ii între unitatea centrală ș i
diferiț i periferiș ti ai calculatorului.
Constituirea unei unităț i de schimb :
-Registre de stare: indică dacă schimbul s-a desfă ș urat bine.
-Registre de date: con ț ine informa ț iile schimbate între
periferic ș i memoria centrală.
-Registre de comenzi: este procesorul care precizează muncă de făcut.
Există trei metode de gestionare a intrării/ieș irii:
a) Intrare/ie ș ire programate: microprocesorul va citi periodic
starea dispozitivelor de E/S ș i modifică starea porturilor de ieș ire.
b) Interupere: se utilizează această tehnică când procesorul trebuie să scaneze
registrele RE pentru a verifica dacă unitatea de schimb este pregătită pentru un nou
transfer, adăugăm un mecanism care să permită UE să semnaleze
starea prin întreruperi.
c) Tehnica DMA (acces direct la memorie): este o tehnică care permite
că miș cările de date între memorie ș i periferice se
se desfăș oară fără intervenț ia CPU.
Fluxurile de redirecț ionare: constituie o componentă esenț ială a consolei
sub Linux ș i asta, încă din vremurile Unix.