ICO-2011-2-tiago

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Diário de aula de ICO - 2011-1 - Prof. Tiago Semprebom

Instrutor

Professor: Tiago Semprebom
Email: tisemp@ifsc.edu.br
Diretório web:: tele.sj.ifsc.edu.br/~tisemp
Atendimento paralelo: 2a feira 17:30h - 18:30h e 4a feira 14:00h - 15:00h (Lab. de Desenvolvimento de Tele)
Endereço web do grupo: http://groups.google.com/group/ifsc_ico
e-mail da disciplina: ifsc_ico@googlegroups.com

IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.

Referências adicionais

Softwares

Será usado como plataforma de estudo o sistema operacional Ubuntu Linux 10.04 LTS. Para obtê-lo há essas opções:

  1. Fazer o download por conta própria (aprox. 700 MB)
  2. Trazer um CD-R virgem para fazer cópia aqui no IFSC
  3. Usar uma máquina virtual do VirtualBox (menos recomendado, pois o Linux roda mais lento)
  4. Instalar o VirtualBox em seu computador para executar a máquina virtual

Sistemas Operacionais

05/08: Apresentação

  • Visita à RBS

Tópicos: Apresentação da disciplina, plano de aula, trabalhos e métodos de avaliação.

Videos ilustrativos

Atividades

  1. Realize uma pesquisa sobre a Evolução/História do Computador. Na próxima aula será feita uma mini-avaliação sobre esse conteúdo!
  2. Existem atualmente muitos tipos de de computadores, que vão desde celulares e PDAs até grandes computadores modulares. Faça uma pesquisa sobre tipos de computadores que podem ser encontrados hoje em dia. Busque informações sobre suas características, fotografias, que tipos de programas são neles usados, que pessoas os utilizam e como são suas interfaces com o usuário. O resultado de sua pesquisa deve estar em um documento .odt com no máximo 5 páginas em fonte tamanho 11.

Computadores atuais

Cada contribuição ficará registrada na wiki, e será considerada para sua avaliação na disciplina.

Obs: para poder editar a wiki você precisa primeiro se cadastrar no Portal do Aluno.

12/08: Introdução aos sistemas computacionais

  • Sistemas computacionais; visão geral de sistemas operacionais; histórico de sistemas operacionais (resumo).
  • Estrutura de um computador
    • Hardware: componentes físicos (processador, vídeo, memória, HD, ...)
    • Software: componentes lógicos, referenciados como programas ... incluindo o sistema operacional

Atividade

Pesquise a estrutura (hardware e sistema operacional) dos seguintes computadores:

  • Computadores Dell Precision
  • iPad
  • Console Xbox
  • Console Wii
  • Console Playstation 3
  • Notebook Sony Vaio
  • iPhone
  • Roteador Cisco série 800
  • Amazon Kindle
  • Algum telefone celular
  • Tabblet Motorola Xoom
  • Laptop Intelbras

Vídeos ilustrativos

Alguns textos interessantes sobre história dos sistemas operacionais:

Reproduzindo o voo dos pássaros: Festo

19/08: Introdução aos sistemas computacionais

  • Continuação Arquitetura de computadores
  • Instalação do Linux em máquinas virtuais
  • Particionamento de disco utilizando gparted

26/08: Introdução ao Linux

  • Iniciar e encerrar uma sessão no Linux;
  • Se familiarizar com a interface do GNOME;
  • Usar o navegador de arquivos Nautilus;
  • Operar sobre diretórios: navegar, criar, remover, remover recursivamente, listar, copiar e renomear;
  • Trabalhar o conceito de nomes absolutos e relativos usando ".", "..", "~" e "-"
  • Trabalhar o conceito de diretório de trabalho e de diretório de entrada;
  • Criar, remover, renomear e listar arquivos ordinários;
  • Outros: trabalhar o conceito de arquivo escondido e usar TAB para autocompletar nomes no shell;
  • Usar o manual online (man);

Roteiro desta aula:

Exercícios Extras:

  1. Partindo do subdiretório /home/aluno/Desktop, e usando somente caminhos (pathnames) relativos, indique a sequência de comandos necessária para visitar sucessivamente os seguintes subdiretórios:
    • /home/aluno
    • /home/visita
    • /home/visita/Documentos
    • /home/visita/public_html/imagens
    • /etc/default
    • /usr/share/docs
    • /usr/share/docs/python/manual/html
    • /usr/lib/browser-plugins
    • /usr/local/etc
    • /usr/local/man/man1
    • /home/aluno
    • /home/aluno/Desktop
  2. Partindo do subdiretório /home/aluno/Desktop, informe a sequência de subdiretórios (indique-os com seus caminhos absolutos) visitados se forem seguidos os seguintes caminhos relativos:
    • ../Imagens/Fotos
    • 2010/07
    • ../../2009
    • ../../../bin
    • ../../manuel/docs
    • ../../../etc/init.d
    • ../rc5.d
    • ../../var/log/apache2
    • ../../tmp
    • ../../lib/modules
    • ../../usr/bin
    • ../lib/X11
    • ../..

02/09: Introdução ao Linux

  • Rever as operações sobre arquivos e diretórios com mais detalhes;
  • Compreender o que é shell e a expansão do shell;
  • Operar sobre diretórios e arquivos usando os coringas: *, ? e [ ];
  • Remover recursivamente diretórios e seus conteúdos;
  • Usar seta para recuperar comandos da história de comandos;

Roteiros desta aula:

Exercícios Extras:

  1. Usando a interface gráfica, organize os arquivos contidos aqui. Eles devem ser colocados nos subdiretórios Imagens, Videos e Documentos, de acordo com seus tipos.
  2. Refaça a questão anterior, porém usando a interface de linha de comando (o shell).

Obs: para extrair os arquivos do exercício faça assim:

aluno@DX~$ tar xjf sop.tar.bz2

... e veja que aparecerá um subdiretório sop com todos os arquivos do exercício lá dentro.

09/09 e 16/09 Introdução ao Linux

  • Rever operações sobre diretórios
  • Usar editores de texto para criar e editar arquivos
  • Uso dos comandos cat, more e less para visualizar o conteúdo de arquivo
  • Fazer, remover e visualizar links simbólicos

Roteiro desta aula:

23/09: Utilização Editor de texto vi e redirecionamento

  • Aprender a utilizar minimamente o editor vi
  • Redirecionamento de saída padrão

Entrada e saída padrão

Todo processo possui uma saída padrão, que corresponde a um arquivo ou dispositivo onde os dados de saída do processo (ex: mensagens de texto) serão mostrados. E assim como existe uma saída padrão, todo processo possui uma entrada padrão que corresponde ao arquivo ou dispositivo de onde por default são obtidos os dados de entrada.

Sop-redir.png

Redirecionamento de saída padrão

Normalmente a saída padrão de um processo é a tela do terminal, mas ela pode ser redirecionada para um arquivo ou para outro dispositivo. Assim, as mensagens de texto que um processo gera podem ser guardadas em um arquivo para posterior utilização. No exemplo abaixo, a listagem dos processos foi guardada no arquivo processos.txt:

aluno@D1:~$ ps ax > processos.txt
aluno@D1:~$

O redirecionamento de saída padrão se faz com o símbolo > seguido do nome do arquivo. Note que nada aparece na tela, uma vez que a saída se tornou o arquivo processos.txt. Após executar o comando acima, veja o conteúdo de processos.txt:

aluno@D1:~$ less processos.txt
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:03 /sbin/init
    2 ?        S<     0:00 [kthreadd]
    3 ?        S<     0:00 [migration/0]
    4 ?        S<     0:00 [ksoftirqd/0]
    5 ?        S<     0:00 [watchdog/0]
    6 ?        S<     0:00 [migration/1]
    7 ?        S<     0:00 [ksoftirqd/1]
    8 ?        S<     0:00 [watchdog/1]
    9 ?        S<     0:00 [events/0]
   10 ?        S<     0:00 [events/1]
   11 ?        S<     0:00 [khelper]
   12 ?        S<     0:00 [kstop/0]
   13 ?        S<     0:00 [kstop/1]
   14 ?        S<     0:00 [kintegrityd/0]
   15 ?        S<     0:00 [kintegrityd/1]
   16 ?        S<     0:00 [kblockd/0]
   17 ?        S<     0:00 [kblockd/1]
   18 ?        S<     0:00 [kacpid]
   19 ?        S<     0:00 [kacpi_notify]
   20 ?        S<     0:00 [cqueue]
   21 ?        S<     0:00 [ata/0]
   22 ?        S<     0:00 [ata/1]
processos.txt

Como se pode ver, o texto que apareceria na tela foi guardado em processos.txt. Experimente executar novamente o comando ps ax > processos.txt e veja o resultado. O que aconteceu com o arquivo processos.txt ?

Quando se deseja redirecionar a saída de um processo para um arquivo, porém preservando o conteúdo original desse arquivo, deve-se executar o comando da seguinte forma:

aluno@D1:~$ ps ax >> processos.txt
aluno@D1:~$

... quer dizer, em vez de usar > usa-se >>.

Redirecionamento de entrada padrão

Normalmente a entrada padrão corresponde ao teclado do terminal, mas pode ser redirecionada para outro arquivo ou dispositivo. No exemplo abaixo, usa-se o programa wc para contar as linhas, palavras e caracteres contidos no arquivo processos.txt:

aluno@D1:~$ ps ax > processos.txt
aluno@D1:~$ wc < processos.txt
 137  810 7807 begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting begin_of_the_skype_highlighting              137 810 7807      end_of_the_skype_highlighting processos.txt
aluno@D1:~$

No exemplo acima, gravou-se em processos.txt o resultado do comando ps ax' , e depois usou-se wc para contar linhas, palavras e caracteres desse arquivo. O efeito combinado é a contagem de quantos processos existem no sistema nesse momento (representado pelo número de linhas contidas em processos.txt).

Ao contrário do caso da saída padrão, não é tão comum se usar redirecionamento de entrada padrão. No entanto há um recurso adicional provido pelo sistema operacional que explora a combinação de ambas, e que possibilita combinar as funcionalidades de diferentes programas.

Pipes

Em sistemas operacionais Unix, é possível conectar a saída padrão de um processo à entrada padrão de outro processo, e a isto se chama pipe (que pode ser traduzido como duto ou tubo). Com isto, os dados de saída de um processo serão os dados de entrada de outro processo, o que pode ser explorado para realizar diferentes tarefas. Por exemplo, retomando a contagem de processos vista na seção anterior:

aluno@D1:~$ ps ax | wc
 137  810 7807
aluno@D1:~$

O símbolo de pipe é a barra vertical |. Ao se executarem os comandos acima unidos pelo pipe, a listagem de processos gerada pelo ps ax é automaticamente enviada para a entrada padrão do comando wc. O resultado é a contagem de processos existentes no sistema.

Podem-se ligar mais de dois processos usando pipes. Assim, cria-se um encadeamento de processos, em que a saída padrão de um processo alimenta a entrada padrão do próximo processo. Por exemplo, para se contarem os processos do usuário aluno:

aluno@D1:~$ ps aux | grep aluno | wc
     47     568    5195
aluno@D1:~$

Roteiros desta aula:

Material complementar sobre editor vi

30/09: Compactadores e Revisão para Avaliação

07/10: Avaliação 1 - ICO

  • Teórica/Prática

03/06: Gerenciamento de processos

Processos e multiprogramação: uma visão geral sobre programas, processos, ciclos de um processo, multiprogramação e escalonamento. Ver apostila do prof. Odilson, capítulo 3, e capítulo 5 do Guia Foca Linux Iniciante.

Gerência de memória: visão geral sobre o uso de memória no sistema operacional e pelos processos Uso do laboratório para ilustrar conceitos.

Vários utilitários (programas auxiliares) existem para obter informações do sistema operacional sobre processos e memória. Alguns trabalham em modo texto, como:

  • ps: lista os processos existentes
  • pstree: lista os processos existentes mas de forma hierárquica
  • top: lista os processos mais ativos, junto com informações globais sobre uso dos recursos no sistema operacional (memória, processador, memória virtual, quantidade de processos, carga de trabalho)
  • atop: o mesmo que top, mas com maior detalhamento do uso de recursos mantidos pelo sistema operacional
  • mpstat: mostra estatísticas de uso do processador
  • free: mostra o uso de memória
  • vmstat: mostra o uso de memória, discos e processador no último intervalo de tempo.

Existem também utilitários no modo gráfico. Por exemplo, no Ubuntu há o "Monitor do sistema":

Monitor1.png
Para executar o Monitor do Sistema



Monitor2.png Monitor3.png

Telas do monitor do Sistema

Roteiros desta aula:

17/06: Permissionamento Unix

  • Expor os conceitos associados as permissões de acesso a arquivos e diretórios
  • Explorar as permissões em nível do usuário proprietário

Roteiro desta aula:

08/07: Avaliação ICO

  1. Conceitos avaliação final ICO clique aqui

12/07: Encerramento Disciplina