lab4_2014

33
 Lab4

Upload: george-tintareanu

Post on 08-Oct-2015

1 views

Category:

Documents


0 download

DESCRIPTION

Curs Utilizarea Sistemelor de Operare

TRANSCRIPT

  • Lab4

  • Comenzi de lucru cu memoria

    vmstat

    Monitorizeaza memoria virtuala

    vmstat s

    vmstat 1 100

    Explicatia pe slide-ul urmator

  • Comenzi de lucru cu memoria

    Procs r : procese runnable B : procese blocate

    Memory Swpd : Spatiu swap folosit Free: RAM liber Buff : RAM folosit pentru

    buffer Cache : RAM filesystem

    cache

    Swap Si : swapped de pe disc /sec So : swapped pe disc /sec

    IO: Bi : Blocks primite de pe disc Bo : Blocks scrise pe disc

    System In: Intreruperi /sec Cs: schimbari de context /sec

    CPU Us : timp de rulare user code.

    (non-kernel code) Sy : timp de rulare kernel

    code Id: Idle time Wa: Timp in asteptare IO

    vmstat

  • Comenzi de lucru cu memoria

    free

    afiseaza memoria libera si cea ocupata

    buffers = RAM folosit pentru stocarea de date temporare preluate din I/O (ex: HDD, retea .)

    swap = memorie virtuala extensie in memoriasecundara a memoriei principale

  • Comenzi de lucru cu memoria

    free

    free mt Afisaza memoria in MB si un total

    free ms 5 Afisaza un nou tabel odata la 5 secunde

  • Comenzi de lucru cu memoria

    cat /proc/meminfo

    Afisaza continutul fisierului meminfo

  • Comenzi de lucru cu memoria

    cat /proc/cpuinfo

    Afisaza continutul fisierului meminfo

  • Comenzi de lucru cu memoria

    w

    Afisaza date despre processor

    JCPU timpul folosit pe procesor de proceselelansate din terminalul curent

    PCPU timpul folosit de procesul curent

  • Comenzi de lucru cu memoria

    pmap

    Examineaza harta memoriei si bibliotecile

    RSS: resident set size - paginile incarcate in memoria principala (RAM)

    PSS proportional set size - RAM incluzand sipaginile in comun

    Dirty: memorie ce nu va fi pusa in comun

  • Comenzi de lucru cu memoria

  • Comenzi utile

    arch afisaza arhitectura

    sistemului

    df spatiul folosit

    du Spatiul ocupat de

    fisier / director

    du b /etc

    lspci afisaza pci

    strace Afisaza accesarile

    strace bash ->exit

    uname Afisaza informatii

    sistem

    uname -a

  • Comenzi de lucru cu memoria

    pidstat

    pidstat -r

    O eroare de paginare apare cand un proces acceseaza o pagina ce nu se gaseste in memoria

    major fault - se cere acces la disc. Kernel-ul va cautamai intai in cache si RAM

    minor fault alocare de paginare.

    VSZ - Virtual Memory Size memoria accesata de process incluzand memoria virtuala si cea alocata bibliotecilorcomune

  • Comenzi de lucru cu memoria

  • Compilare

    GNU Compiler Collection = gcc

    Include: C, C++, Objective-C, Fortran, Java, Ada, siGo

    Biblioteci

    http://gcc.gnu.org/

    #include "iostream.h"

    int main()

    {

    cout

  • Compilare

    Exemplu program

    #include

    int main(){int i;printf("Valoare din memorie: %d", i);printf("Introduceti i: ");scanf("%d", &i);printf("\nAti introdus: %d", i);

    return 0;}

  • Compilare

    main este de tipul int, implicit return 0 de la final. nu toate compilatoarele sunt rigide, multe

    accepta void main() sau main().

    incercati cele 3 moduri si notati diferentele

    scanf() completati gresit scanf("%d", i)

    In mod normal: Memory fault (core dumped) => SO protejeaza memoria

    printf() afiseaza ? comportament indiferent de SO.

  • Permisiuni de utilizare a fisierelor

    chmod

    Comanda ls l afiseaza

    Sunt descrise 3 permisiuni

    read cu valoarea asociata 4

    write cu valoarea asociata 2

    execute cu valoarea asociata 1

    rw: 4+2 = 6

    Sunt descrise 3 categorii: user, group, others

    -rw-r--r--

  • Permisiuni de utilizare a fisierelor

    Exemple:

    chmod 777 test

    chmod ugo+rwx best

    chmod u+x fest

    chmod -R g+rwx /dur

    Permisiune pentru user read+write+execute = 4+2+1 =7

    Permisiune grup

    Permisiune other

    Asociaza toatepermisiunile pentrufisierul best

    Parametrul -R = recursivAsociaza toate permisiunilepentru grup pentru toatefiserele din directorul dur

  • Utilizarea fisierelor

    Primul character - identificatest ca fisier.Initial drepturile pentru fisierultest sunt: read si write pentru user Read pentru grup Read pentru other

    Drepturile pentru fisierul test sunt: read si write execute pentru

    toate categoriile de utilizatori

  • Editoare de text

    NANO

    Comenzile din meniul de la bazapaginii se acceseazaapasand tastaCTRL si literaspecificata.Salvarea se face apasand CTRL +X selectand y si apoiintroducand numelefiserului.

  • Editoare de text

    viComenzile se introduc prinapasarea tasteti ESC urmata de tasta:Editorul se inchide folosindEsc urmat in meniul de la baza editorului de :q.

    Alte comenzi:exit vi and save changes: ESC + :wq! nume_fisierexit vi without saving changes: ESC + :q!

    Fisierul se salveaza folosindEsc urmat in meniul de la

    baza editorului de :w urmat de numele fisierului.

    Un fisier existent se editeazafolosindEsc urmat in meniul de la

    baza editorului de i.

  • Shell script

    Pas 2

    Schimba permisiunea: chmod +x test chmod 755 test

    # Primul script#clearecho Lab USO"

    Pas 3

    Executa: bash test sh test ./test

    . = executa/ = director curent

    Pas 1Creaza fisier cu:Editor de text nano

    nano testSalvare: CTRL + X

    Comanda cat > test

  • Shell script

    Exemplu: introduceti urmatorul exemplufolosind un editor de text

    # login, data & timp#clearecho "Hello $USER"echo Azi = ";dateecho Numar de utilizatoril : " ; who | wc -lecho "Calendar"calexit 0

    Comentariu

    Afisaza valoarea variabilei USER

    Numara liniile din rezultatul comenzii who

  • Shell script

    #!/bin/bash

    echo Unu" a=1

    echo Doiecho $a

    Definire variabila

    Afisara variabila

    Ce rezultate obtinenti

    Scriptul va fi rulat folosind bash

  • Shell script

    echo Cuvant "read varecho Cuvant: $var"echo 2 cuvinte"read var1 var2echo Cuvinte: \$var1\ \$var2\"echo Default? "readecho "$REPLY"echo Matrice? read -a matriceecho "${matrice[0]}, ${matrice[1]} "

    Se citeste o variabila de la tastatura

    Se citesc 2 variabile de la tastatura separate de spatiu

    Se citeste o variabila de la tastatura si este salvata in variabila REPLY

    Se citesc variabile de la tastatura si sunt salvate sub forma de matrice

  • Shell script

    Sintaxa IFSintaxa simpla IF if [ ];then

    fi

    Sintaxa IF ELSEIf [ ]; then

    else

    fi

    Sintaxa IF ELSE -ELIFIf [ ]; then

    elif [ ]; then

    else

    fiSintaxa IF ELSE -ELIF

    If [ ]; then

    else

    If [ ]; then

    fi

    fi

  • Shell script

    Sintaxa IF

    Sintaxa parametri IF-eq = egal-ne = diferit-gt = mai mare strict-lt = mai mic strict

    Sintaxa parametri IF-d = director-e =exista fisier

  • Shell script

    #!/bin/basha=2b=1if [ $a -eq $b ]; thenecho Egal"else echo diferit"fi

    Se verifica egalitatea a doua variabile definite mai sus

  • Shell script

    #!/bin/basha=2b=1if [ $a -eq $b ]; thenecho Egal"elif [ $a -gt $b ]; thenecho a>b"else echo b>a"fi

    Se verifica egalitatea a doua variabile definite mai sus folosind structura if-elif-else

  • Shell script

    Se verifica egalitatea a doua variabile primite de la tastatura.Variabilele se introduce separate de tasta ENTER

  • Shell script

    Se creaza un fisier cu numele pic-data_curenta.jpg

    Sleep 2 ruleaza script-ul la fiecare 2 secunde.

    Se poate opri folosindcomanda CTRL + C

  • Shell script

    Se defineste variabila file cu valoarea adreseirelative ./file adicafisierul file din directorulcurrent.

    -e verifica existentafisierului in director.

  • Shell script