24
Sistemas Operacionais e Introdução a Programação Prof. Tiago Semprebom Módulo 1 – Sistemas Operacionais

Sistemas Operacionais e Introdução a Programaçãotisemp/SOP/aulas/lab3/aula_lab3.pdf · Laboratório 3 • Uso de memória no Linux: v) O programa fominha2 pode alocar quantidades

Embed Size (px)

Citation preview

Sistemas Operacionais e Introdução a Programação

Prof. Tiago Semprebom

Módulo 1 – Sistemas Operacionais

Objetivos

• Revisão sobre processos IO bound e CPU bound no Linux,

• Entender aspectos sobre o uso de memória dos processos no Linux,

• Entender com o sistema operacional gerencia a memória globalmente,

• Arquivos e permissões no Linux.

Laboratório 3

• Processos IO bound e CPU bound– Utilizando o comando “top” e ou “ps aux” identifique os

processos IO bound e CPU bound em seu computador.

• Obtenha o programa intervalos (localizado na URL da disciplina). Execute-o uma vez e verifique suas informações com o comando “ps aux”. Como ele se comporta quanto ao uso do processador?

• Execute vários processos, tais como fominha, firefox, open Office, e outros aplicativos disponível. Houve mudança na informação reportada pelo intervalos?

Laboratório 3

• Obtenha o programa periodico (URL da disciplina). Execute-o uma vez e verifique suas informações com o programa “ps aux”. Como ele se comporta quanto ao uso da CPU?

• Execute vários processos, tais como fominha, firefox, open Office, e outros aplicativos disponíveis. Houve mudança na informação reportada pelo periodico?

• O programa periodico trabalha por alguns milessegundos, e então descansa por um intervalo de 20 ms. A duração desse intervalo pode ser modificada na linha de comando. (ex. periodico 100).

Laboratório 3

• Comando free:– Apresenta estatísticas sobre uso

de memória, swap, etc.ex. “free -m” apresenta memória livre em megabytes.

– Um comando equivalente pode ser obtido através do comando:

“cat /etc/meminfo”

Laboratório 3

• Comando vmstat: estatística de memória virtual.– Ex. “vmstat 3”

Laboratório 3

• Uso da memória principal:

– i) A memória do computador é usada pelo sistema operacional e pelos processos. Veja informações sobre a memória em uso através do comando free.

– ii) Cada processo usa uma certa quantidade de memória. Ao executar “ps aux” obtém-se entre as informações quanto cada processo aloca de memória (VSZ e RSZ). Some os valores dessas colunas, e compare os resultados com o que é reportado por free.Os valores são próximos?

Laboratório 3

• Uso da memória:

iii) Qual é o processo que mais utiliza memória em seu computador?

iv) Obtenha o programa fominha2. Execute-o, e a cada vez que ele solicitar que se tecle ENTER, veja como está a utilização de memória total e pelo processo fominha2. O que se pode concluir sobre a alocação e o uso de memória no Linux? Isto tem relação com o identificado no item ii?

Laboratório 3

• Uso de memória no Linux:

v) O programa fominha2 pode alocar quantidades diferentes de memória (“./fominha2 512”, esta comando solicita a alocação de 512 MB de memória). Experimente diferentes quantidades de memória, inclusive valores maiores do que a quantidade disponível na máquina. O que ocorre neste caso?

vi) Execute “vmstat 3” em um terminal, e então faça fominha2alocar um quantidade de memória maior do que o disponível (memória livre) no computador. Foi possível alocar a quantidade desejada? Houve alguma mudança nas informações mostradas pelo vmstat (observe as colunas si e so)?

Laboratório 3

• vii) Um processo pode ler a memória alocada por um outro processo? Para responder a essa pergunta, obtenha o programa protegido. Execute-o em um terminal e observe a informação mostrada. Antes teclar ENTER, abra outro terminal e execute protegidonovamente, mas da seguinte forma “./protegido 1000”Só então tecle ENTER em ambos os terminais.

– A) Que informação foi mostrada?– B) O que se pode concluir através da experiência

realizada acima, sobre a memória alocada por um processo?

Laboratório 3• Uso de memória: impacto da memória virtual:

• Os programas matriz1 e matriz2 utilizam grande quantidade de memória para conter uma matriz bidimensional. Essa matriz bidimensional ocupa uma área contínua de memória, como no exemplo abaixo:

Laboratório 3

• Cada coluna da matriz tem capacidade suficiente para guardar um número inteiro (tamanho padrão de 4 bytes).

• O processo matriz1 aloca memória para uma matriz desse tipo, e preenche todas as suas posições com o número 0 (zero). O preenchimento se faz linha por linha: primeiro todas as colunas da linha 1, depois todas as colunas da linha 2, e assim por diante.

• Abra um terminal e execute “vmstat 3”. Abra então outro terminal e nele execute o programa matriz1. Observe as informações sobre memória informadas pelo vmstat (colunas free, si e so).Acompanhe também a execução do matriz1, observando os tempos informados para as ações por ele realizadas.

Laboratório 3

• O processo matriz2 faz o mesmo que matriz1: aloca memória para uma matriz deste tipo, e preenche todas as suas posições como número zero. No entanto, o preenchimento se faz coluna por coluna: primeiro todas as linhas da coluna 1, depois todas as linhas da coluna 2, e assim por diante.

• Abra um terminal e execute “vmstat 3”. Abra então outro terminal e nele execute o programa matriz2. Observe as informações sobre memória informadas (colunas free, si e so). Acompanhe a execução do matriz2, observando os tempos informados para as ações realizadas pelo programa.

Laboratório 3

• Matematicamente não existe diferença entre a forma com que matriz1 e matriz2 preenchem suas matrizes. Porém o que dizer sobre o ponto de vista computacional?

• A) Houve diferença significativa entre os tempos de execução percebidos para matriz1 e matriz2?

• B) Caso tenha havido diferença, como você explica?

Laboratório 3

• Arquivos:

Arquivos no Linux (em sistemas Unix) são repositórios de dados, e possuem um número de atributos. Alguns atributos são visíveis ao se executar o programa “ls -l”:

Laboratório 3

• Arquivos:

• O acesso a arquivos é controlado com base em suas permissões. Estas podem ser de três tipos:– r: leitura– w: escrita– x: execução

• As permissões são agrupadas em três conjuntos:– Permissões do usuário dono– Permissões do grupo dono– Permissões dos demais usuários

Laboratório 3

• Arquivos:As permissões de um arquivo (ls –l) devem ser interpretadas como:

- 1 tiago users 780 2009-02-22 23:47 teste.crw-r--r--

permissões do usuário dono

permissões do grupo dono

permissões dos demais usuários

Laboratório 3

• Arquivos:– As permissões podem ser alteradas através do comando

chmod:

> ls - l teste.c-rw-r--r-- 1 tiago users 780 2009-02-22 23:47 teste.c> chmod –w teste.c> ls - l teste.c-r--r--r-- 1 tiago users 780 2009-02-22 23:47 teste.c> chmod o-r ip.c> ls -l ip.c-r--r----- 1 tiago users 780 2009-02-22 23:47 teste.c

Laboratório 3

• Arquivos:Como especificar permissões para o chmod:i) Retirar permissão: especificar –p (p=permissão a ser removida).

Ex: > chmod –w teste.cremove a permissão de escrita do arquivo teste.c

ii) Adicionar permissão: especificar +p (p=oermissão a ser adicionada).

Ex. > chmod +r teste.cadiciona permissão de leitura ao arquivo teste.c

AtenAtençção:ão: as permissões adicionadas ou retiradas valem para todos os usuários (dono, grupo dono e demais usuários).

Laboratório 3

• Arquivos:Como especificar permissões para o programa chmod?

iii) Tirar permissão do usuário dono: especificar u-p (p=permissão a ser removida)

Ex. > chmod u-w teste.cremove do usuário dono a permissão de escrita do

arquivo teste.c iv) Adiciona permissão ao usuário dono: especificar u+p

Ex: > chmod u+r teste.cadiciona ao usuário dono a permissão de leitura ao

arquivo teste.c

Laboratório 3

• Arquivos:Como especificar permissões para o programa chmod?

vi) Tirar permissão para grupo dono: especificar g-p (p=permissão a ser removida)

Ex. > chmod g-w teste.cremove do grupo dono a permissão de escrita do arquivo

teste.c vii) Adiciona permissão ao usuário dono: especificar g+p

Ex: > chmod g+r teste.cadiciona ao grupo dono a permissão de leitura ao

arquivo teste.c

Laboratório 3

• Arquivos:Como especificar permissões para o programa chmod?

viii) Tirar permissão dos demais usuários: especificar o-p (p=permissão a ser removida)

Ex. > chmod o-w teste.cremove dos demais usuários a permissão de escrita do arquivo

teste.c ix) Adiciona permissão aos dos demais usuários : especificar o+p

Ex: > chmod o+r teste.cadiciona aos demais usuários a permissão de leitura ao

arquivo teste.c

Laboratório 3

• Arquivos:Como especificar permissões com o comando chmod?x) Especificar permissões combinadas:> chmod go-w teste.c... remove dos demais usuários e do grupo dono a permissão de escrita do arquivo teste.c

> chmod ug+rw teste.c... adiciona para o grupo dono e usuário dono as permissões de leitura e escrita do arquivo teste.c

Laboratório 3

• Permissões associadas à diretórios:Considerando diretórios, as permissões possuem os seguintes significados:

– r: permissão para listar o diretório– w: permissão para acrescentar, renomear ou remover arquivos

do diretório– x: permissão para entrar no diretório