Sunteți pe pagina 1din 26

Lab4

COMENZI PENTRU AFISAREA


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:

7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)
Permisiuni fisiere

$ 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

#!/bin/bash
echo Unu"
a=1
#!/bin/bash
echo Doi
echo $a
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

S-ar putea să vă placă și