Buscar

Prática UNEB SO Memória

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Pra´tica de Memo´ria - Matriz Triangular Superior
Michel Franc¸a Leal
Universidade do Estado da Bahia (UNEB)
Salvador - Bahia - Brasil
{mfrancaleal@gmail.com}
Resumo
Esta pra´tica tem como objetivo enfatizar o conteu´do es-
tudado em sala de aula sobre o uso dos principais compo-
nentes de um computador, em especial a memo´ria principal,
aliando te´cnicas de programac¸a˜o e outros recursos nativos
do Linux como Vmstart GNUPlot. Para tal representac¸a˜o,
foi escolhida a Matriz Triangular Superior para formar o
ambiente do experimento.
1. Introduc¸a˜o
Segundo Maziero(2009)(1) a memo´ria principal tem um
papel importante para um sistema operacional, ainda se-
gundo ele, ela define o espac¸o de trabalho onde abriga as th-
reads, bibliotecas compartilhadas e canais de comunicac¸a˜o,
atuando ainda como o nu´cleo do sistema operacional,
atrave´s de suas estruturas e co´digos.
Existe um emaranhado de compoentes em uma memo´ria,
suas funcionalidades e componentes exigem do sistema
opercaional um esforc¸o muito grande para gerencia´-la. Para
que as operac¸o˜es de um computador sejam bem sucedidas
e tenho um bom desepenho do hardware, e´ encessa´rio que
o sistema operacional dedique boa parte dos seus recursos
com a gereˆncia da memo´ria principal.
2. Esturutura
2.1. A matriz
Para essa pra´tica, foi escolhida a Matriz Triangular Su-
perior como estrutura a ser criada e impressa para avaliar o
desempenho do computador, contabilizando o uso do Pro-
cessador e Memo´ria Principal.
A Matriz Triangular Superior e´ uma matriz quadrada(2)
que onde os elementos que esta˜o na parte abaixo da diago-
nal principal sa˜o nulos, isso e´, se for zero todo elemento
Mij, onde i e´ maior que j. A figura 1 mostra um exemplo de
uma matriz triangular superior do tipo 5 x 5:
Figura 1: Exemplo de Matriz Triangular Superior 5 x 5
2.2. O ambiente de teste
Para esse experimento, foi utilizado o Sistema Opera-
cional Ubuntu 16.04 x64 cuja base e´ Unix. Este sistema
opercional esta´ instalado em uma Virtual Machine com as
seguintes configurac¸o˜es:
Memo´ria Principal
ITEM VALOR
MemTotal 4645308
MemFree 1688344
MemAvailable 2758616
Buffers 186512
Cached 1083572
Tabela 1: Dados sobre a memo´ria principal
Processador
ITEM VALOR
vendor id GenuineIntel
cpu family 6
model name Intel(R) Core(TM)
i3-3250 CPU @
3.50GHz
cpu MHz 3500.000
cache size 3072 KB
Tabela 2: Dados sobre o processador
2.3. Os co´digos
O co´digo foi escrito na linguagem C e consiste em re-
ceber as dimenso˜es da Matriz, cria´-la e em seguida fazer a
impressa˜o de sua estrutura. Vejamos trechos do co´digo:
2.3.1 Criac¸a˜o da Matriz
1 do ub l e ∗ c r i a M a t r i x ( do ub l e ∗mat r ix , i n t l i n h a ,
i n t c o l u n a ) {
2
3 i n t ordem = c o l u n a + l i n h a ;
4
5 s r a n d ( t ime (NULL) ) ;
6 f o r ( i n t i =0 ; i<l i n h a ; i ++){
7 f o r ( i n t j =0 ; j<c o l u n a ; j ++){
8 i f ( j < i )
9 m a t r i x [ i ∗ordem+ j ] = 0 ;
10 e l s e
11 m a t r i x [ i ∗ordem+ j ] = ( d ou b l e ) (1+ rand ( ) % ( 5 0 ) ) ;
12 }
13 }
14 r e t u r n m a t r i x ;
15 }
Listing 1: Cria Matriz Triangular Superior
2.3.2 Impressa˜o da Matriz
1 vo id impr imeMat r ix ( d ou b l e ∗mat r ix , i n t l i n h a , i n t
c o l u n a ) {
2
3 i n t o r d e r = c o l u n a + l i n h a ;
4 f o r ( i n t i = 0 ; i < l i n h a ; i ++) {
5 p r i n t f ( ” | ” ) ;
6 f o r ( i n t j = 0 ; j < c o l u n a ; j ++) {
7 p r i n t f ( ” %.0 f | ” , m a t r i x [ i ∗ o r d e r + j ] ) ;
8 }
9 p r i n t f ( ”\n ” ) ;
10 }
11 }
Listing 2: Impressa˜o da Matriz Triangular Superior
2.3.3 Arquivos .sh, .eps, .txt.
A estrutura de compilac¸a˜o, execuc¸a˜o, gravac¸a˜o de dados e
gerac¸a˜o de co´gidos esta´ concentrada no conjunto de arqui-
vos disponibilizado pelo prof. Murilo Boratto(3) em seu
site. Uma vez com o co´digo programado e adaptac¸o˜es
feitas, basta executar via linha de comando o arquivo
START.sh que em por sua vez executa atrave´s do comando
bash o arquivo scriAwk.sh que em cascata executa o co´digo
responsa´vel por criar e impirmir a matriz, armazena em
aquivos tipo texto as informac¸o˜es de uso de memo´ria e
processador, as informac¸o˜es geradas pelo co´digo principal
que ficam armazenadas noa rquivo file.data e os respectivos
gra´ficos de usdo de memo´ria e processador.
2.4. VMStat
Nesta pra´tica, a fim de obter informac¸o˜es sobre a
utilizac¸a˜o e estado da memo´ria e do processador(4), foi
utilizado o comando VMStat. Esse comando relata es-
tatı´sticas sobre encadeamentos do kernel na fila de execuc¸a˜o
e de espera, como tambe´m, paginac¸a˜o de memo´ria,
interrupc¸o˜es, chamadas do sistema, comutadores de con-
texto e atividade da CPU.
2.5. GNUPlot
GNUPLOT e´ um programa para gerar gra´ficos(5), ele e´
de certa forma interativo, mas tal interac¸a˜o so´ e´ possı´vel
atrave´s da linha de comando. E´ possı´vel gerar gra´ficos de
func¸o˜es em uma o duas varia´veis que sa˜o definidas dentro
dele ou ate´ fazer chamadas de dados externos. As prinicpais
vantagens de usar GNUPlot para a platogem de dados em
um gra´fico e´ a fa´cil utilizac¸a˜o e integrac¸a˜o da ferramenta e
a alta qualidade dos gra´ficos gerados.
3. Resultados
3.1. Matriz Triangular Superior
Na figura 2 veremos o resultado da Matriz Triangular
Superior apo´s a execuc¸a˜o com as dimenso˜es 8 x 8:
Figura 2: Execuc¸a˜o do co´digo da Matriz Triangular Supe-
rior 8 x 8.
Os valores foram gerados de forma aleato´ria(6) uti-
lizando o trecho de co´digo: matrix[i*ordem+j] =
(1+rand()% (50)); que gera nu´meros de 1 ate´ 50.
3.2. Uso da CPU
Os testes foram feitos em um lac¸o de repetic¸a˜o cujo
nu´mero de repetic¸a˜o foi igual a 1000 com incremento de 10
em 10, com podemos ver no trecho do co´digo do arquivo
scriAwk.sh:
1 f o r ( ( i = 1 0 ; i <= 1000 ; i +=10) )
2 do
3 . / $1 ” $ i ” ” $ i ” >> f i l e . d a t a
4 echo ” $ i x $ i ”
5 done
Listing 3: Lac¸o de repetic¸a˜o
Atribuindo essa tarefa ao computador, criar e imprimir a
matriz 100 vezes, obtemos os seguintes dados do compor-
tamento e estado da CPU durante o processo:
 10
 20
 30
 40
 50
 60
 70
 80
 90
 0 2 4 6 8 10 12 14 16 18
Us
o 
CP
U 
(em
 %
)
Tempo(segundos)
Grafico uso de CPU durante a criacao da matriz triangular superior
Uso de CPU com Programa
Figura 3: Gra´fico uso de CPU durante a criac¸a˜o da matriz
Na figura 3 pode-se observar um discreto crescimento no
uso da CPU, o crescimento do uso acontece porque no loop,
como vimos, ha´ um incremento que aumenta a dimensa˜o
da matriz, o que acarreta um maior uso da CPU. Como o
processador utilizado tem dois nu´cleos e e´ de certa forma
considerado de u´ltima gerac¸a˜o, essa execuc¸a˜o na˜o causou
muito impacto em sua permomance.
3.3. Uso da memo´ria principal
Sujeita a`s mesmas condic¸o˜es impostas a` CPU, a
memo´ria principal teve seu comportamento monitorado e
os dados projetados em um gra´fico como poderemos ver na
figura 4:
 2.25x106
 2.3x106
 2.35x106
 2.4x106
 2.45x106
 2.5x106
 2.55x106
 0 2 4 6 8 10 12 14 16 18
Us
o 
m
em
or
ia
 (e
m 
Kb
yte
s)
Tempo(segundos)
Grafico de memoria livre durante a criacao da matriz triangular superior
Uso Memoria com programa
Figura 4: Gra´fico de memo´ria livre durante a criac¸a˜o da
matriz
Na figura 4, diferente da figura 3, o gra´fico mostra uma
diminuic¸a˜o na quantidade de memo´ria livre. Isso acontece
de forma inversa ao que vimos na figura 3, quanto maior
a complexidade do problema, maior a necessidade de mais
memo´ria, diminuindo assim a quantidade de meo´ria free.
3.4. Tempo de execuc¸a˜o
Ale´m de monitorar o uso da memo´ria principal e da
CPU, utilizando a ferramenta VMStat foi monitorado e re-
gistrado o tempo me´dio de execuc¸a˜o dos loops sobre o
co´digo daMatriz Triangular Superior. Pode-se ver a plo-
tagem dos dados no gra´fico abaixo:
 0
 0.1
 0.2
 0.3
 0.4
 0.5
 0.6
 0.7
 0 200 400 600 800 1000 1200 1400 1600 1800 2000
Te
m
po
 (s
eg
un
do
s)
Ordem N x N
Calculo do tempo medio de criacao de matrizes trianguar superior
MTS
Figura 5: Ca´lculo do tempo me´dio de criac¸a˜o de matrizes
A figura 5 deixa claro que quanto maior a dimensa˜o da
matriz, maior o tempo de execuc¸a˜o.
4. Conclusa˜o
Pode-se notar o quanto abragente e´ a linguagem C e o
quanto eficaz e ciu´rgico e´ o Sistema Operacional Linux. A
junc¸a˜o desses dois permite que se realize tarefas de baixa,
me´dia e alta complexidade, oferecendo recursos capazes de
atender a uma gama de necessidades dentro das realidades
da tecnologia da informac¸a˜o.
O monitoramento de comportamento e estado de um com-
putador sempre foi uma grande preocupac¸a˜o por parte dos
arquitetos de softwares, prever situac¸o˜es ou evitar gargalos
e´ fundamental para a criac¸a˜o de um software.
Foi possı´vel notar atrave´s dessa pra´tica, muito simples, que
os recursos utilizados oferecem um aporte ideal para captar
e visualizar dados que em muitos casos ficam ocultos para
o usua´rio.
Refereˆncias
[1] C. A. Maziero. (2008) Sistemas operacionais
2 - gereˆncia de tarefas. [Online]. Available:
http://www.ppgia.pucpr.br/maziero
[2] A. G. Ribeiro. Matriz triangular. [Online]. Available:
http://mundoeducacao.bol.uol.com.br/matematica/matriz-
triangular.htm
[3] M. Boratto. Pra´ticas - memo´ria. [Online]. Available:
http://muriloboratto.com.br
[4] I. K. Center. Vmstat. [Online]. Availa-
ble: http://www.ibm.com/support/knowledgecenter/pt-
br/vmstat.html
[5] U. F. do Rio Grande do Sul. Gnuplot. [Online].
Available: http://fiscomp.if.ufrgs.br/index.php/Gnuplot
[6] C. Progressivo.net. Gerando nu´meros aleato´rios
em c: rand, srand e seed. [Online]. Availa-
ble: http://www.cprogressivo.net/2013/03/Como-
gerar-numeros-aleatorios-em-C-com-a-rand-srand-e-
seed.html

Outros materiais