Laboratório de
Sistemas Operacionais
Módulo 1
Gerência de Memória e de Processos
Prof. Maxwell Anderson
www.maxwellanderson.com.br
Agenda
• Comandos para gerenciamento de processos:
– top, htop, ps, kill, killall, renice, bg, fg, time, nohup,
strace
• Comandos para gerenciamento de memória:
– free, memstat, pmap
Maxwell Anderson
2
Gerenciamento de Processos
top – Exibe os processos em execução na CPU
Fornece uma visão atualizada das tarefas do processador em tempo
real. Ele exibe uma lista das tarefas mais intensivas no sistema, e pode
fornecer uma interface interativa para a manipulação de processos.
Maxwell Anderson
3
Gerenciamento de Processos
htop – Exibe os processos em execução na CPU de maneira
iterativa
É similar ao top, mas permite navegar pela lista verticalmente e
horizontamente, permitindo a visualização de todos os processos.
Taredas relacionadas a processos (killing) pode ser realizado em
entrar com seus PIDs.
Maxwell Anderson
4
Gerenciamento de Processos
5
Maxwell Anderson
Gerenciamento de Processos
ps – Exibe um instantâneo dos processos atuais
Opções de linha de comando
-A
-r
-p PID
Seleciona todos os processos
Restringe a seleção para exibir somente os processos que
estão em execução
Seleciona o processo pelo PID
Exemplo: ps -p 3425
-U user Seleciona o processo pelo usuário que originou a chamada.
Exemplo: ps -U root
-C processo
Seleciona o processo pelo nome
Exemplo: ps -C gedit
Maxwell Anderson
6
Gerenciamento de Processos
kill – Envia um sinal para o processo
O sinal padrão é TERM. Este sinal finaliza (mata) o processo.
Exemplos:
kill 2534
mata o processo com o PID 2534
Maxwell Anderson
7
Gerenciamento de Processos
killall – Envia um sinal para o processo. Parecido com kill mas
recebe como parâmetro o nome do processo ao invés do
seu PID
O sinal padrão é TERM. Este sinal finaliza (mata) o processo.
Exemplos:
killall gedit
mata os processos com o nome gedit
(editor de textos) do gnome.
Maxwell Anderson
8
Gerenciamento de Processos
renice – Altera as prioridades dos processos (entre -20 a 20)
Exemplos:
renice 19 –p 2534
altera a prioridade do processo cujo PID é 2534 para 22
renice 15 –u root
altera as prioridades dos processos do usuário root para 15
Usuários comuns poderão somente alterar prioridades de seus
processos em um intervalo de 0 a 20
Maxwell Anderson
9
Gerenciamento de Processos
bg - O comando bg permite que um programa rodando em
primeiro plano ou parado, rode em segundo plano
(background), liberando o shell para outras atividades.
Existem 3 maneiras diferentes de colocar um programa em
background, veja os exemplos:
Inicie o vi e depois pressione as teclas Ctrl+Z, o vi é interrompido
e colocado em segundo plano.
# vi [1]+ Stopped vi
Maxwell Anderson
10
Gerenciamento de Processos
Agora faça o seguinte:
# top &
[2] 1130
O caracter "&" colocou o top para ser executado em
segundo plano, vamos ao último exemplo:
Vamos executar a man page do comando du:
# man du
Agora interrompa a sua execução pressionando as teclas
Ctrl+Z:
# man du [3]+ Stopped man du
Maxwell Anderson
11
Gerenciamento de Processos
Agora use o comando bg da seguinte maneira:
# bg 3
bg 3
[3]+ man du &
Mas por que colocar os processos em segundo plano?
Imagine que você esteja consultando uma man page de
um determinado comando e deseja utilizar uma de suas
opções, muitos sairiam da man page ou abririam outro
terminal, felizmente não precisamos fazer isso, usando as
opções para colocar as tarefas em segundo plano faremos
tudo no mesmo terminal. Ou seja, o Linux lhe oferece a
oportunidade de executar outros processos sem que você
tenha de parar o que estava fazendo.
Maxwell Anderson
12
Gerenciamento de Processos
jobs - O comando jobs mostra os processos que estão parados
ou rodando em segundo plano.
Vamos listar os processos que estão em segundo plano:
# jobs -l
[1] 1129 Parado vi
[2]- 1130 Parado (saída tty) top
[3]+ 1192 Parado (saída tty) man du
Observe a saída do comando, foram listados os números
dos processos, os PIDs e o estados dos processos.
Maxwell Anderson
13
Gerenciamento de Processos
fg - O comando fg permite que um programa rodando ou parado
em segundo plano rode em primeiro plano.
Podemos colocar os programas que estão sendo executados em
segundo plano para rodar em primeiro usando o nome do
programa que queremos rodar ou o número da tarefa que ele
representa no comando jobs.
Neste exemplo vamos startar o vi, o seu número de tarefa é 1,
veja os exemplos:
# fg vi
ou
# fg 1
Observe que o vi agora está rodando em
primeiro plano ou em foreground, podemos
fazer isso com todos os outros processos
que estão em segundo plano ou
background
Maxwell Anderson
14
Gerenciamento de Processos
time – executa um comando e resume a utilização dos recursos
do sistema.
Exemplo:
$ time gedit
real
user
sys
real
user
sys
0m5.853s
0m0.776s
0m0.272s
Elapsed real time utilizado pelo processo
Quantidade total de segundos que o processo
utilizou durante o uso da CPU (no modo
usuário)
Quantidade total de segundos que o processo
utilizou durante o uso da CPU (no modo kernel)
Maxwell Anderson
15
Gerenciamento de Processos
nohup – Executa COMANDO, ignorando sinais de hangup.
Exemplo:
$ nohup ls –la
nohup: ignorando entrada e adicionando a saída em
`nohup.out‘
Este comando é interessante quando executado em um terminal
remoto. Caso deseje executar um comando em background e
forçar sua execução mesmo que o usuário se desconecte do
terminal, o comando ainda continuará sendo executado no
servidor.
Exemplo:
$ nohup comando_que_vai_demorar &
Maxwell Anderson
16
Gerenciamento de Processos
strace – realiza o monitoramento de chamadas de sistema
(system calls) e sinais.
Muitas vezes acontece de não sabermos qual problema
pode estar dando em uma certa aplicação. Então podemos
usar um comando que irá monitorar o comando
Exemplo:
$ strace ls –la
$ strace firefox %u
Maxwell Anderson
17
Gerenciamento de Memória
free – exibe a quantidade de memória livre e utilizada pelo
sistema
Exemplo:
$ free
Outras opções:
$ free –t
$ free –m
$ free –k
$ free –mt
Exibe os totais da memória RAM e SWAP
Exibe os valores de saída em MB
Exibe os valores de saída em KB
Exibe os valores de saída mais os totais
em MB
Maxwell Anderson
18
Gerenciamento de Memória
memstat – identifica quem está utilizando a memória virtual
Exemplo:
$ memstat
Maxwell Anderson
19
Gerenciamento de Memória
pmap – exibe um relatório do mapa de memória de um
processo
Sintaxe:
$ pmap PID
Exemplo:
$ pmap 12690
Maxwell Anderson
20
Outros comandos
• cat arquivo
mostra o conteúdo de um arquivo. Por exemplo, para ver o arquivo
infowester.txt, basta digitar cat infowester.txt
• du diretório
mostra o tamanho de um diretório.
• tar -xzvf arquivo.tar.gz
extrai um arquivo compactado em tar.gz.
• uname
mostra informações do sistema operacional e do computador. Digite
uname -a para obter mais detalhes;
Maxwell Anderson
21
Outros comandos
• uptime
mostra a quantas horas seu computador está ligado;
• who
mostra quem está usando o sistema.
• cal
exibe um calendário;
• halt
desliga o computador;
Maxwell Anderson
22
Referências
Comandos bg, jobs e fg. Disponível em
http://www.vivaolinux.com.br/artigo/Criando-monitorando-eterminando-processos?pagina=5
Manual do terminal
Purcell, J. Linux Command Reference. EUA: Red Hat Software Inc.
1997
Maxwell Anderson
23
Download

Sistemas Operacionais