Upload
phungkhue
View
212
Download
0
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
• 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