Laboratório de Sistemas Operacionais 1

Pontifícia Universidade Católica de Campinas

Experimento # 1

Introdução

O primeiro experimento teve como base processos. A relação deles no sistema operacional *nix bem como o entendimento e criação dos mesmos.

Partindo do princípio que o computador é uma máquina digital, subentende-se que toda e qualquer medição de tempo é precisa e. Seguindo essa linha de raciocínio foi usado um programa para testes e comprovando que essa regra é uma excessão, ou seja, a medição de duração do tempo levado por um processo não é exata.

Diversos fatores contribuem para que isso ocorra, uma delas é chamada de multi-task (multi-tarefa). Multi-tarefa nada mais é que a capacidade do SO tem de lidar com vários processos (generalizando programas) ao mesmo tempo se utilizando apenas de um processador.

Racionalmente pode-se notar que com apenas 1 processador é muito díficil de processar duas coisas no mesmo e exato momento. A troca de processos entre o processador e a memória acarreta em um atraso, mesmo que pequeno, justificando em partes um dos motivos porque não é medido precisamente o tempo levado por um processo.

Utilizando o programa exemplo, foi medido diversas vezes tempos de execução e seu respectivo desvio total e médio, após isso, o programa fonte foi modificado e novamente nas mesmas condições o tempo foi medido. Veja abaixo a tabela seguida da descrição.

Programa exemplo

Resultados do programa exemplo

Teste com o programa original: Experiment-2.c
Rodada	Filho 1 Filho 2 Filho 3 desvio total desvio médio desvio total desvio médio desvio total desvio médio
1	10.014920	0.020030	10.015351	0.020031	10.023901	0.020048
2	10.061352	0.020123	10.061788	0.020124	10.081298	0.020163
3	10.020868	0.020042	10.021707	0.020043	10.060897	0.020122
4	10.066015	0.020132	10.066564	0.020133	10.085992	0.020172
5	10.057559	0.020115	10.058211	0.020116	10.076928	0.020154
6	10.073845	0.020127	10.063996	0.020128	10.081773	0.020164
7	10.407375	0.020815	10.405574	0.020811	10.405830	0.020812
8	10.021778	0.020044	10.022298	0.020045	10.029570	0.020059
9	10.006906	0.020014	10.007421	0.020015	10.030146	0.020060
10	10.057081	0.020114	10.057194	0.020114	10.089799	0.020180

A tabela acima demonstra dados medidos em intervalos e situações diferentes de processamento. Nota-se que quanto maior a carga do sistema, maior o desvio, porém isso não é regra, visto que, em alguns momentos o tempo foi menor com uma carga maior.

Execução	Processos em execução
1	Normal, apenas rodando o programa exemplo.
2	Abrindo programa de email Evolution.
3	Abrindo programa Gimp 2.0pre e Mozilla Cliente Email.
4	Rodando em círculos uma janela do ambiente gráfico gnome(gtk).
5	Rodando gmplayer com filme divx, kde + gnome.
6	Rodando gmplayer com filme divx, xawtv(receptor de sinal de tv), kde, gnome e rodando em círculos uma janela do ambiente gráfico gnome(gtk).
7	Rodando gmplayer com filme divx, xawtv(receptor de sinal de tv), gnome e compilando o fonte de um programa(cc & gcc).
8	Rodando gmplayer com filme divx, xawtv(receptor de sinal de tv), gnome e compilando o fonte de um programa(cc & gcc) e rodando em círculos uma janela do ambiente gráfico gnome(gtk).
9	Rodando gmplayer com filme divx, xawtv(receptor de sinal de tv), gnome e compilando o fonte de um programa(cc & gcc) e rodando uma proteção de tela 3D.
10	Rodando gmplayer com filme divx, xawtv(receptor de sinal de tv), gnome e compilando dois códigos fontes (cc & gcc), programa de descriptografica com prioridade máxima (nice -19) e rodando uma proteção de tela 3D.

A tabela acima descreve resumidamente o que foi feito e executado na máquina para aumentar o número de processamento e carga do SO.

Alguns dos programas utilizados, requerem da máquina instruções de alto desempenho, como processamento 3d, vídeos, na sua maioria recursos multi-mídia. Note que essa tabela foi também utilizada depois da modificação do programa exemplo.

3) Programa exemplo modificado

Teste com o programa modificado: Experiment-2_modificado_filho.c Experiment-2_modificado.c
Rodada	Filho 1 Filho 2 Filho 3 desvio total desvio médio desvio total desvio médio desvio total desvio médio
1	5.014185	0.010028	5.043105	0.010086	5.062240	0.010124
2	5.006345	0.010013	5.065142	0.010130	5.086568	0.010173
3	5.123408	0.010247	5.242499	0.010485	5.351712	0.010703
4	5.077588	0.010155	5.086613	0.010173	5.095653	0.010191
5	5.026096	0.010052	5.002021	0.010004	4.997804	0.009996
6	5.142824	0.010286	5.171788	0.010344	5.200973	0.010402
7	5.056455	0.010113	5.014129	0.010028	5.019106	0.010038
8	5.098501	0.010197	5.068639	0.010137	5.068093	0.010136
9	5.027053	0.010054	5.048405	0.010097	5.067672	0.010135
10	5.095501	0.010242	5.086413	0.010483	5.095353	0.010172

Após a modificação do programa exemplo

Cesar Henrique Kállas

2004-02-16T15:18:24