formulário padrão para apresentação de projetos

Propaganda
ESTUDO DO AMBIENTE LINUX NO AUXÍLIO DO PROCESSO
APRENDIZAGEM DA DISCIPLINA DE SISTEMAS OPERACIONAIS
DE
ENSINO
Diego Vieira; Silvana Madeira Alves Dal-Bó (Orientadora).
Introdução:
Atualmente, a grande maioria das bibliografias na área de Sistemas Operacionais traz
exemplos relacionados ao sistema operacional Linux para alguns dos conceitos estudados.
A proposta deste trabalho de pesquisa é fazer um estudo do ambiente Linux e aplicativos,
como simuladores, que possam ser utilizados no processo de ensino aprendizagem da
disciplina de sistemas operacionais nos cursos de graduação. Nesse estudo é possível
encontrar uma série de softwares, arquivos e simuladores separados de acordo com o
conteúdo da disciplina que cada um dos mesmos têm relação. O conteúdo pesquisado é
separado em diversos itens desde visão geral do Linux, passando por concorrência,
estrutura do sistema operacional, processos e threads, sincronização e comunicação entre
processos e finalizando com gerência de recursos. Objetivos: a) Instalar o sistema
operacional Linux em um computador destinado a pesquisa. b) Identificar os conceitos de
sistemas operacionais que podem ser utilizados no ambiente Linux. c) Buscar em fontes de
pesquisa os recursos (sistema operacional e aplicativos) que possam ser utilizados na
disciplina. c) Instalar os aplicativos pesquisados.
Palavras-chave: Linux, sistema operacional, simuladores
Métodos
A pesquisa foi realizada a partir da busca de softwares, arquivos e simuladores em diversos
meios como por exemplo: man pages do Linux, livros, buscas na web de forma geral, sendo
que, antes da busca foi necessário a leitura de cada um dos temas que a disciplina de
Sistemas Operacionais aborda e a partir desse momento foi realizada a pesquisa dos
softwares, arquivos e simuladores. Vários softwares e arquivos são integrantes da
distribuição Linux utilizada para a pesquisa, não sendo assim necessário a sua instalação,
sendo necessário a leitura de manuais para utilizar os softwares e conhecer o objetivos dos
arquivos. Os simuladores utilizados no geral não necessitaram ser instalados sendo
necessário a leitura de manuais para sua utilização. Após isso foram pesquisados outros
métodos de se utilizar o Sistema Operacional Linux durante as aulas de Sistemas
Operacionais como por exemplo o uso de aplicativos Windows através do uso do Wine e o
uso de Linguagem de programação C.
Resultados de discussão
A pesquisa foi realizada a partir da busca de softwares, arquivos e simuladores em
diversos meios como por exemplo: man pages do Linux, livros, buscas na web de forma
geral, sendo que, antes da busca foi necessário a leitura de cada um dos temas que a
disciplina de Sistemas Operacionais aborda e a partir desse momento foi realizada a
pesquisa dos softwares, arquivos e simuladores. Os comandos, arquivos, códigos fonte e
simuladores podem ser divididos em três grupos, sendo os comandos e arquivos parte do
grupo um, os simuladores parte do grupo dois e os códigos fonte parte do grupo três.
1 - Comandos e arquivos
Os comandos e arquivos pesquisados no geral apenas ilustram o conteúdo, o seu
uso na disciplina é útil apenas como complemento a teoria não tendo grande influência nos
conteúdos expostos.
Informação do hardware no Linux
Os comandos lspci -tv, lsusb -tv e a leitura dos arquivos proc/cpuinfo, /proc/meminfo
através do comando less. Os comandos e arquivos são utilizados para obter informação
específica sobre o hardware no qual o sistema operacional esta sendo executado, sendo
que, o uso dos comandos e arquivos tem a utilidade de ilustrar formas de se obter essas
informações no sistema operacional e mostrar de que forma o sistema operacional guarda
essas informações.
Concorrência
O Comando vmstat é utilizado para se obter varias informações sobre os processos,
sendo que resultado exposto pelo comando é de fácil compreensão e os parâmetros que
podem ser utilizados para visualizar os resultados de acordo com o que necessário pode ser
consultados através do comando man vmstat. É possível a criação de vários cenários para
testar o comportamento do sistema operacional e utilizar o vmstat como uma forma de
demonstrar esse comportamento.
Interrupções
A leitura dos arquivos /proc/dma e /proc/interrupts através do comando more. É
utilizado para obter informações especificas sobre as interrupções ocorridas no sistema
operacional, servindo apenas para ilustrar o conteúdo da disciplina. O comando vmstat
descrito anteriormente pode ser utilizado para verificar as interrupções que estão ocorrendo.
Linguagem de Controle
O comando echo $SHELL, o uso da tecla TAB e o uso do comando man, são
utilizados ilustrar o funcionamento da linguagem de controle no sistema operacional.
Ativação / Desativação do Sistema
A leitura do arquivo /boot/grub/grub.conf através do comando less, possibilita a
visualização das configurações de ativação do sistema através do boot loader grub, a
leitura do arquivo é utilizada apenas para ilustrar as configurações de um boot loader e não
todo o processo de ativação do sistema.
Estrutura do Processo
A estrutura de diretórios abaixo de /proc/[pid]/, contém varias informações bastante
úteis sobre o funcionamento dos processos, pois, representa o bloco de controle de
processos em forma de estrutura de pasta e arquivos. Sendo que essa estrutura esta
presente em qualquer distribuição Linux. O comando ps –l permite a visualizar varias
informações que fazem parte do contexto de software.
Estado do processo
O comando ps aux | less exibe uma lista de processos em execução e várias
informações sobre esses processos, é interessante a leitura do manual do comando ps para
se entender seu funcionamento. O comando pstree | more demonstra a hierarquia dos
processos, é útil para demonstrar o conceito de processos pai e filho.
Processos Foreground e Background
O uso do parâmetro & (abrir em background), o comando jobs (listar comandos em
background), o comando fg (passar programa do background para o foreground) e o uso do
^z (ctrl+z) ou bg (passa programa do foreground para o background), é útil para visualizar na
prática o funcionamento do conceito de background e de foreground.
Threads
O diretório /proc/[pid]/task/ serve apenas para ilustrar a estrutura de threads de um
processo.
System Call
Através do comando strace <comando> é possível visualizar (depurar) toda a
execução de um programa, possibilitando assim a visualização das chamadas de sistema
utilizadas pelo comando, sendo que o uso do comando tem apenas o intuito de ilustrar o uso
das chamadas de sistemas pelo sistema operacional.
Semáforos
O comando ipcs -la é utilizado para visualizar informações sobre os semáforos, são
apenas informações básicas, para ilustrar o assunto.
Troca de Mensagens
O uso do pipe (|), e dos redirecionamentos (>, >>, <), é uma forma de ilustrar a troca
de mensagens entre processos.
Sistemas de arquivos
O comando ls -i lista os arquivos e exibe o índice, já o comando ls –l lista os arquivos
e exibe várias informações sobre o arquivo, como por exemplo as permissões de acesso
essas permissões podem ser alteradas através dos comandos chmod, chown e chgroup. O
comando tree exibe os diretórios em forma de hierárquica (árvore). Através dos comandos é
possível verificar informações dos arquivos e ilustrar o conteúdo sobre sistemas de arquivos.
ACL
Para o uso de ACL’s no linux é necessário a instalação através do comando yum
install acl e edição do arquivo /etc/fstab, através dos comandos getfacl e setfacl é possível o
uso das ACL’s sendo seu uso fácil e um uso prático do conteúdo visto na disciplina.
Gerência de Dispositivos
Através do diretório /dev é possível ilustrar como o Linux representa os dispositivos
físicos.
2 - Simuladores
Gerência do Processador
O uso do Process Scheduling Simulator permite simular vários tipos de
escalonamentos através de experimentos configurados em arquivos, inicialmente é
interessante o uso de experimentos já prontos, dependendo dos alunos é possível a criação
e análise de novos experimentos, para o uso do simulador é necessário conhecimento da
teoria e o aprendizado do funcionamento do simulador..
Gerência de Memória virtual
O uso do simulador de memória virtual (Virtual Memory Simulator) permite simular o
gerenciamento de memória virtual por paginação. O simulador não possui manual e
arquivos de configuração, sendo necessário o conhecimento do conteúdo teórico para sua
utilização.
Gerência de I/O
O simulador Concurrent UNIX IO Simulator permite simular a gerência de I/O através
do uso de demonstração do espaço de usuário, sistema e disco, sendo que, o mesmo
possui manual em inglês e possui vários experimentos prontos, é necessário conhecimento
teórico para o uso do mesmo.
Simulador SOSIM rodando através do WINE
Através do programa WINE é possível o uso de simuladores desenvolvidos para o
Windows, para rodar o SOSIM é necessário apenas instalar do WINE sem nenhuma
modificação do mesmo, não sendo necessário nenhum conhecimento aprofundado, o
simulador SOSIM é em português e possui lista de exercícios em português, sendo assim,
de fácil uso.
3 - Linguagem de Programação C
O uso de códigos fonte (linguagem de programação C) permite um melhor
conhecimento sobre as chamadas de sistema e sinais entre outros aspectos do sistema
operacional, sendo necessário um bom conhecimento sobre programação em C para
criação dos códigos fonte e um conhecimento básico com uma boa explicação para
compreensão dos mesmos.
Conclusões:
Através desse estudo pode se constatar que o ambiente Linux oferece vários softwares e
arquivos nativos onde é possível visualizar como o sistema operacional funciona. O estudo
apresenta diversos comandos e ferramentas que auxiliam no processo de ensino e
aprendizagem da disciplina de Sistemas Operacionais. Foram demonstrados comandos
para os seguintes conteúdos: a estrutura do sistema operacional, informações de hardware,
concorrência, interrupções, processos e sistemas de arquivos. A sincronização e
comunicação entre processos foram vistas através de comandos de troca de mensagens e
semáforos. A gerência de recursos foi demonstrada através do uso de simuladores (Process
Scheduling Simulator (gerência do processador), Virtual Memory Simulator (gerência de
memória virtual), Concurrent Unix IO Simulator (gerência de I/O)). Desta forma, nessa
pesquisa foi exposto o funcionamento de vários simuladores que podem ser utilizado
durante as aulas, bem como a possibilidade de utilizar simuladores desenvolvidos para
Microsoft Windows através do uso do WINE, e a possibilidade do uso de linguagem de
programação durante as aulas. Os softwares e arquivos pesquisados foram separados de
acordo com vários tópicos da disciplina de sistemas operacionais.
Referências
FEDORA Spin BrOffice. Disponível em: <http://spins.fedoraproject.org/broffice/>.
Acesso em: 10 maio 2010. CD-ROM.
GRAY, John Shapley. Interprocess Communications in Unix: The Nooks & Crannies.
Upper Saddle River: Prentice Hall, 1997. 364 p.
JONES, M. Tim. Comando Kernel Utilizando Chamadas do Sistema Linux. Disponível
em: <http://www.ibm.com/developerworks/br/library/l-system-calls/>. Acesso em: 15 maio
2010.
KERRISK,
Michael.
The
Linux
man-pages
project.
Disponível
em:
<http://www.kernel.org/doc/man-pages/>. Acesso em: 15 maio 2010.
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais.
4ª Rio de Janeiro: Ltc, 2007. 308 p.
MAZIERO,
Carlos
A..
Acesso
a
dispositivos.
Disponível
em:
<http://www.ppgia.pucpr.br/~maziero/doku.php/pua:acesso_a_dispositivos>. Acesso em: 02
out. 2010.
MAZIERO, Carlos A.. Sistema de arquivos: Descritores e Streams. Disponível em:
<http://www.ppgia.pucpr.br/~maziero/doku.php/pua:sistema_de_arquivos>. Acesso em: 02
out. 2010.
NEMETH, Evi et al. Manual Completo do Linux: Guia do Administrador. 2ª edição São Paulo:
Pearson Prentice Hall, 2007. 684 p.
OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva; TOSCANI, Simão Sirineo.
Sistemas Operacionais. 4ª Porto Alegre: Bookman, 2010.
SHULYUPIN, Constantine. Interactive map of Linux kernel. Disponível em:
<http://www.makelinux.net/kernel_map>. Acesso em: 16 maio 2010.
SIEVER, Ellen et al. LINUX: O Guia Essencial. Porto Alegre: Bookman, 2006. 851 p.
SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Fundamentos de Sistemas
Operacionais. Rio de Janeiro: Ltc, 2004. 580 p.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. São Paulo: Pearson, 2006. 695
p.
Download