MEMORIEI SISTEMULUI Comenzi de lucru cu memoria vmstat Monitorizeaza memoria virtuala vmstat s vmstat 1 100 Explicatia pe slide-ul urmator Sintaxa:
unde: count = nr de afisari , interval = intervalul de afisare (secunde) vmstat [interval] [count] 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 field: 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 free -m -t sar B statistici despre swapping sar -B 1 10 Kernel Swap Daemon (kswapd) mpstat
Comenzi de lucru cu memoria pmap Examineaza harta memoriei si bibliotecile RSS: resident set size - paginile incarcate in memoria fizica PSS proportional set size - RAM incluzand si paginile in comun Dirty: memorie ce nu va fi pusa in comun Comenzi utile arch afisaza arhitectura sistemului df spatiul folosit du Spatiul ocupat de fisier / director du b /etc lspci necesita utilizatorul root Afisaza pci strace Afisaza accesarile strace bash ->exit uname Afisaza informatii sistem uname -a Comenzi de lucru cu memoria ps -o min_flt,maj_flt 1 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 cauta mai intai in cache si RAM minor fault alocare de paginare. ps -o min_flt,maj_flt,cmd,args,uid,gid 1 ps -eo min_flt,maj_flt,cmd,args,uid,gid | less COMPILRAREA PROGRAMELOR SCRISE IN C SAU C++ Compilare GNU Compiler Collection = gcc Include: C, C++, Objective-C, Fortran, Java, Ada, si Go Biblioteci http://gcc.gnu.org/ #include "iostream.h" int main() { cout << "Hello\n"; } g++ hello.C -o hello g++ -c hello.C g++ hello.o -o hello Compilare gcc -S garbage.c Cod - ISA Compilare Exemplu program #include <stdio.h>
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.
SCRIPT-URI Permisiuni fisiere chmod Comanda ls l 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 fisiere Exemple: chmod 777 fest chmod ugo+rwx best chmod u+x test chmod -R g+rwx /dur Cu parametrul v sau -c Calcul parametri:
$ chmod 644 myDoc.txt $ ls l $ -rw-r--r-- 1 Dec 19 6:49 myDoc.txt
$ chmod a+x filename
$ chmod u-rx filename
$ chmod u+r,g+x filename
Shell script Schimba permisiunea chmod +x test chmod 755 test # Primul script # clear echo Lab USO" Executa bash test sh test ./test . = executa / = director curent Shell script Exemplu # login, data & timp # clear echo "Hello $USER" echo Azi = \c ";date echo -e Numar de utilizatoril : \c" ; who | wc -l echo "Calendar" cal exit 0 Shell script
echo -e Cuvant\c " read var echo Cuvant: $var" echo -e 2 cuvinte" read var1 var2 echo Cuvinte: \"$var1\" \$var2\"" echo Default? " read echo "$REPLY" echo -e Matrice? read -a matrice echo "${matrice[0]}, ${matrice[1]} " Shell script Sintaxa IF Sintaxa simpla IF if [ <condition> ] then <commands> fi Sintaxa IF ELSE If [<condition> ] then <commands> else <commands> fi Sintaxa IF ELSE -ELIF If [<condition> ] then <commands> else If [<condition> ] then <commands> 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 Sintaxa IF ELSE -ELIF If [<condition> ] then <commands> elif [<condition> ] then <commands> else <commands> fi Shell script
#!/bin/bash a=2 b=1 if [ $a -eq $b ] then echo Egal" else echo diferit" fi Shell script
#!/bin/bash a=2 b=1 if [ $a -eq $b ] then echo Egal" elif [ $a -gt $b ] then echo a>b" else echo b>a" fi Shell script
#!/bin/bash while true; do touch pic-`date +%s`.jpg sleep 10 done Shell script
#!/bin/bash file="./file" if [ -e $file ]; then echo Exista" else echo Nu exista" fi