Sunteți pe pagina 1din 137

INSTITUTO FEDERAL SUL-RIO-GRANDENSE UNIVERSIDADE ABERTA DO BRASIL Programa de Fomento ao Uso das TECNOLOGIAS DE COMUNICAO E INFORMAO NOS CURSOS

DE GRADUAO - TICS

SISTEMAS OPERACIONAIS
Jos Antnio Oliveira de Figueiredo

Ministrio da
Educao

Copyright 2012 Universidade Aberta do Brasil Instituto Federal Sul-rio-grandense

Apostila de Sistemas Operacionais


FIGUEIREDO, Jos Antonio Oliveira de

2012/1

Produzido pela Equipe de Produo de Material Didtico da Universidade Aberta do Brasil do Instituto Federal Sul-rio-grandense TODOS OS DIREITOS RESERVADOS

INSTITUTO FEDERAL SUL-RIO-GRANDENSE UNIVERSIDADE ABERTA DO BRASIL Programa de Fomento ao Uso das TECNOLOGIAS DE COMUNICAO E INFORMAO NOS CURSOS DE GRADUAO - TICS

PRESIDNCIA DA REPBLICA
Dilma Rousseff
PRESIDENTE DA REPBLICA FEDERATIVA DO BRASIL

IF SUL-RIO-GRANDENSE DEPARTAMENTO DE EDUCAO A DISTNCIA


Luis Otoni Meireles Ribeiro
CHEFE DO DEPARTAMENTO DE EDUCAO A DISTNCIA

MINISTRIO DA EDUCAO
Fernando Haddad
MINISTRO DO ESTADO DA EDUCAO

Beatriz Helena Zanotta Nunes


COORDENADORA DA UNIVERSIDADE ABERTA DO BRASIL UAB/IFSUL

Luiz Cludio Costa


SECRETRIO DE EDUCAO SUPERIOR - SESU

Marla Cristina da Silva Sopea


COORDENADORA ADJUNTA DA UNIVERSIDADE ABERTA DO BRASIL UAB/ IFSUL

Eliezer Moreira Pacheco


SECRETRIO DA EDUCAO PROFISSIONAL E TECNOLGICA

Cinara Ourique do Nascimento


COORDENADORA DA ESCOLA TCNICA ABERTA DO BRASIL E-TEC/IFSUL

Lus Fernando Massonetto


SECRETRIO DA EDUCAO A DISTNCIA SEED

Ricardo Lemos Sainz


COORDENADOR ADJUNTO DA ESCOLA TCNICA ABERTA DO BRASIL E-TEC/ IFSUL

Jorge Almeida Guimares


PRESIDENTE DA COORDENAO DE APERFEIOAMENTO DE PESSOAL DE NVEL SUPERIOR - CAPES

IF SUL-RIO-GRANDENSE UNIVERSIDADE ABERTA DO BRASIL


Beatriz Helena Zanotta Nunes
COORDENADORA DA UNIVERSIDADE ABERTA DO BRASIL UAB/IFSUL

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA SUL-RIO-GRANDENSE [IFSUL]


Antnio Carlos Barum Brod
REITOR

Marla Cristina da Silva Sopea


COORDENADORA ADJUNTA DA UNIVERSIDADE ABERTA DO BRASIL UAB/ IFSUL

Daniel Esprito Santo Garcia


PR-REITOR DE ADMINISTRAO E DE PLANEJAMENTO

Mauro Hallal dos Anjos


GESTOR DE PRODUO DE MATERIAL DIDTICO

Janete Otte
PR-REITORA DE DESENVOLVIMENTO INSTITUCIONAL

Odeli Zanchet
PR-REITOR DE ENSINO

PROGRAMA DE FOMENTO AO USO DAS TECNOLOGIAS DE COMUNICAO E INFORMAO NOS CURSOS DE GRADUAO TICs
Raquel Paiva Godinho
GESTORA DO EDITAL DE TECNOLOGIAS DE INFORMAO E COMUNICAO TICS/IFSUL

Lcio Almeida Hecktheuer


PR-REITOR DE PESQUISA, INOVAO E PS-GRADUAO

Renato Louzada Meireles


PR-REITOR DE EXTENSO

Ana M. Lucena Cardoso


DESIGNER INSTRUCIONAL DO EDITAL TICS

IF SUL-RIO-GRANDENSE CAMPUS PELOTAS


Jos Carlos Pereira Nogueira
DIRETOR-GERAL DO CAMPUS PELOTAS

Lcia Helena Gadret Rizzolo


REVISORA DO EDITAL TICS

Clris Maria Freire Dorow


DIRETORA DE ENSINO

Joo Rger de Souza Sastre


DIRETOR DE ADMINISTRAO E PLANEJAMENTO

Rafael Blank Leitzke


DIRETOR DE PESQUISA E EXTENSO

Roger Luiz Albernaz de Arajo


CHEFE DO DEPARTAMENTO DE ENSINO SUPERIOR

EQUIPE DE PRODUO DE MATERIAL DIDTICO UAB/IFSUL


Lisiane Corra Gomes Silveira
GESTORA DA EQUIPE DE DESIGN

Denise Zarnottz Knabach Felipe Rommel Helena Guimares de Faria Lucas Quaresma Lopes Tabata Afonso da Costa
EQUIPE DE DESIGN

Caticia Klug Schneider


GESTORA DE PRODUO DE VDEO

Gladimir Pinto da Silva


PRODUTOR DE UDIO E VDEO

Marcus Freitas Neves


EDITOR DE VDEO

Joo Elizer Ribeiro Schaun


GESTOR DO AMBIENTE VIRTUAL DE APRENDIZAGEM

Giovani Portelinha Maia


GESTOR DE MANUTENO E SISTEMA DA INFORMAO

Anderson Hubner da Costa Fonseca Carlo Camani Schneider Efrain Becker Bartz Jeferson de Oliveira Oliveira Mishell Ferreira Weber
EQUIPE DE PROGRAMAO PARA WEB

Sitemas Operacionais
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

SUMRIO

CONTENTS GUIA DIDTICO ____________________________________________________________________________________________________9 UNIDADE A - INTRODUO, HISTRICO E TIPOS DE SITEMAS OPERACIONAIS ________________________ 13
Introduo ______________________________________________________________________________________________________________ 15 Histria __________________________________________________________________________________________________________________ 16 Tipos de Sistemas Operacionais _____________________________________________________________________________________ 19 Sntese ___________________________________________________________________________________________________________________ 21 Atividades _______________________________________________________________________________________________________________ 21

UNIDADE B - INSTALAO DE SISTEMAS OPERACIONAIS E GERENCIAMENTO DE USURIOS _______ 23


Introduo ______________________________________________________________________________________________________________ 25 Processo de BOOT ______________________________________________________________________________________________________ 25 Instalao _______________________________________________________________________________________________________________ 26 Gerenciamento de usurios __________________________________________________________________________________________ 32 Sntese ___________________________________________________________________________________________________________________ 34 Atividades _______________________________________________________________________________________________________________ 34

UNIDADE C - GERENCIAMENTO DE ARQUIVOS ______________________________________________________________ 35


Introduo ______________________________________________________________________________________________________________ 37 A rvore invertida ______________________________________________________________________________________________________ 37 Comandos para diretrios ____________________________________________________________________________________________ 38 Arquivos _________________________________________________________________________________________________________________ 40 Permisses de acesso__________________________________________________________________________________________________ 40 Divises lgicas do disco ______________________________________________________________________________________________ 43 Sntese ___________________________________________________________________________________________________________________ 49 Atividades _______________________________________________________________________________________________________________ 50

UNIDADE D - GERENCIAMENTO DE PACOTES E INTEROPERABILIDADE ________________________________ 51


Parte 1 - Introduo - Gerenciamento de pacotes ________________________________________________________________ 53 O que um pacote ______________________________________________________________________________________________________ 53 DPKG _____________________________________________________________________________________________________________________ 54 apt-get ___________________________________________________________________________________________________________________ 55 Aptitude _________________________________________________________________________________________________________________ 57 Gerenciadores em modo grfico _____________________________________________________________________________________ 58 Sntese ___________________________________________________________________________________________________________________ 59 Atividades _______________________________________________________________________________________________________________ 59 Parte 2 - Introduo - Interoperabilidade e antivrus ___________________________________________________________ 60 Interoperabilidade_____________________________________________________________________________________________________ 60 Servidor de arquivos __________________________________________________________________________________________________ 60 Antivrus _________________________________________________________________________________________________________________ 65 Servidor de pginas intranet _________________________________________________________________________________________ 65 Aplicaes _______________________________________________________________________________________________________________ 70 Sntese ___________________________________________________________________________________________________________________ 70 Atividades ______________________________________________________________________________________________________________ 71

UNIDADE E - MULTIPROGRAMAO __________________________________________________________________________ 73


Introduo ______________________________________________________________________________________________________________ 75 Monoprogramao vs Multiprogramao __________________________________________________________________________ 75 Processo vs Programa _________________________________________________________________________________________________ 76 Threads __________________________________________________________________________________________________________________ 81 Criando Processos _____________________________________________________________________________________________________ 81 Sntese ___________________________________________________________________________________________________________________ 82 Atividades _______________________________________________________________________________________________________________ 83

Sitemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

SUMRIO

UNIDADE F - GERENCIAMENTO DO PROCESSADOR ________________________________________________________ 85


Introduo ______________________________________________________________________________________________________________ 87 Bloco descritor de processo __________________________________________________________________________________________ 87 Como a multiprogramao acontece? _______________________________________________________________________________ 89 Escalonador _____________________________________________________________________________________________________________ 90 Sntese ___________________________________________________________________________________________________________________ 94 Atividades _______________________________________________________________________________________________________________ 95

UNIDADE G - GERENCIAMENTO DA MEMRIA ______________________________________________________________ 97


Introduo ______________________________________________________________________________________________________________ 99 Tipos de memria dentro de um sistema computacional _______________________________________________________ 99 MMU - Memory management unit ___________________________________________________________________________________ 99 Formas de gerncia de memria____________________________________________________________________________________101 Swapping _______________________________________________________________________________________________________________106 Sntese __________________________________________________________________________________________________________________106 Atividades ______________________________________________________________________________________________________________107

UNIDADE H - SISTEMA DE ARQUIVOS_______________________________________________________________________ 109


Parte 1 - Introduo __________________________________________________________________________________________________111 Conceitos bsicos _____________________________________________________________________________________________________111 O arquivo _______________________________________________________________________________________________________________112 Implementao de arquivos _________________________________________________________________________________________115 Manipulando arquivos _______________________________________________________________________________________________116 Sntese __________________________________________________________________________________________________________________118 Atividades ______________________________________________________________________________________________________________118 Parte 2 - Introduo __________________________________________________________________________________________________119 O HD _____________________________________________________________________________________________________________________119 Alocao de arquivos _________________________________________________________________________________________________121 Mltiplos sistemas de arquivos _____________________________________________________________________________________125 Sntese __________________________________________________________________________________________________________________125 Atividades ______________________________________________________________________________________________________________126

UNIDADE I - GERENCIAMENTO DE I/O______________________________________________________________________ 127


Introduo _____________________________________________________________________________________________________________129 Dispositivos de I/O ____________________________________________________________________________________________________129 Interfaceamento_______________________________________________________________________________________________________131 Endereamento do dispositivo ______________________________________________________________________________________132 Comunicao com o dispositivo_____________________________________________________________________________________133 Subsistema de I/) _____________________________________________________________________________________________________134 Sntese __________________________________________________________________________________________________________________136 Atividades ______________________________________________________________________________________________________________137

Guia Didtico
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

GUIA DIDTICO

GD

APRESENTAO

Ol pessoal, sejam bem-vindos disciplina de Sistemas Operacionais na modalidade a distncia.

Prezado(a) aluno (a),

A disciplina est dividida em duas partes, subdivididas em diversas unidades. Na primeira parte, estudaremos a parte operacional do sistema e, na segunda, o funcionamento e a arquitetura conceitual de funcionamento do sistema operacional. As unidades foram planejadas para que o voc possa conhecer a fundamentao terica necessria e testar ou verificar o funcionamento do objeto estudado na prtica. Nossos laboratrios foram planejados e testados em mquina virtual - evitando a necessidade de se ter mais que um computador disposio. Bom trabalho! Ao final desta disciplina o aluno ser capaz de instalar e configurar um sistema operacional, alm de compreender os mecanismos de funcionamento dos sistemas operacionais modernos.

Objetivo Geral

Habilidades

Conhecer e instalar Sistemas Operacionais; Gerenciar um sistema operacional, no que tange ao gerenciamento de programas; gerenciamento de arquivos; gerenciamento de usurios de grupos; Compreender os servios que permitem a interoperabilidade; Entender o conceito de processo e multiprogramao; Compreender a funo do escalonador; Compreender os mecanismos de gerencia de memria; Compreender os sistemas de arquivos e suas diferenas; Compreender os sistemas de gerenciamento de I/O;

A disciplina ser desenvolvida em 100 horas atravs do Ambiente Virtual de Aprendizado Moodle, onde sero disponibilizados materiais a serem estudados para subsidiar a aprendizagem. O Moodle ser o canal de comunicao direto entre discentes e tutores, com as seguintes possibilidades de interao:

Metodologia

Disponibilizar aos discentes as tarefas a serem realizadas. Publicar os materiais de apoio e de leitura complementar. Acompanhar o desempenho dos discentes em relao s atividades propostas. Interagir com a turma atravs de frum de discusso, salas de chat e correio eletrnico. Acessar e avaliar as tarefas realizadas pelos discentes. Estimular o trabalho cooperativo entre os discentes. Promover o estudo e o exerccio prtico autnomo. Acompanhar a frequncia de acesso ao ambiente pelos discentes. Acessar links interessantes e relacionados ao curso.

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

As atividades a serem desenvolvidas na primeira semana so:

Primeira Semana

1. Apresentao do professor, da disciplina e questes gerais.

As atividades a serem desenvolvidas na segunda semana so:

Segunda Semana

1. Leitura e estudo do contedo: Introduo, histrico e tipos de Sistemas Operacionais. 2. Participao no frum de discusso proposto.

As atividades a serem desenvolvidas na terceira semana so:

Terceira Semana

1. Leitura e estudo do contedo: Instalao de sistema operacional e gerenciamento de usurios 2. Assistir a vdeo aula: Instalao de um sistema operacional. 3. Atividade prtica: instalao e configurao de usurios em um sistema operacional.

As atividades a serem desenvolvidas na quarta semana so:

Quarta Semana
1. 2. 3. 4.

Assistir animao: Porque gerenciar arquivos e suas permisses. Leitura e estudo do contedo: Gerenciamento de arquivos. Atividade prtica: Manipulao de arquivos e diretrios. Participao no frum para soluo de problemas da atividade prtica.

As atividades a serem desenvolvidas na quinta semana so:

Quinta Semana
1. 2. 3. 4.

Assistir animao: Porque gerenciar pacotes. Leitura e estudo do contedo: Gerenciamento de pacotes Atividade prtica: Instalao/testes/remoo de programas Participao no frum para soluo de problemas da atividade prtica.

As atividades a serem desenvolvidas na sexta semana so:

Sexta Semana

1. Leitura e estudo do contedo: Interoperabilidade e Antivrus 2. Atividade prtica: Instalao e configurao de programas para interoperabilidade 3. Participao no frum para soluo de problemas da atividade prtica.

As atividades a serem desenvolvidas na stima semana so:

Stima Semana
1. Atividade presencial

As atividades a serem desenvolvidas na oitava e nona semana so:

Oitava e Nona Semanas


1. 2. 3. 4.

Assistir animao: Animao mostrando o abrir e fechar programas. Leitura e estudo do contedo: Multiprogramao. Atividade prtica: Criao/Destruio e gerenciamento de processos Participao no frum para soluo de problemas da atividade prtica.

10

Guia Didtico
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

As atividades a serem desenvolvidas na dcima semana so:

Dcima Semana

1. Assistir animao: Animao mostrando diversos programas abertos em um sistema, buscando chamar a ateno para o comportamento do processador 2. Leitura e estudo do contedo: Gerenciamento do processador 3. Atividade prtica: Manipulao de prioridade de processos 4. Participao no frum para soluo de problemas da atividade prtica.

As atividades a serem desenvolvidas na dcima primeira semana so:

Dcima Primeira Semana

1. Assistir animao: Animao mostrando diversos programas abertos em um sistema, buscando chamar a ateno para o comportamento da memria 2. Leitura e estudo do contedo: Gerenciamento de memria 3. Atividade: Exerccio sobre gerenciamento de memria.

As atividades a serem desenvolvidas na dcima segunda e decima terceira semanas so:

Dcima Segunda e Dcima Terceira Semanas


1. 2. 3. 4.

Assistir animao: Animao sobre manipulao de arquivos. Leitura e estudo do contedo: Gerenciamento de arquivos. Atividade prtica: Programao com manipulao de arquivos. Participao no frum para soluo de problemas da atividade prtica.

As atividades a serem desenvolvidas na dcima quarta semana so:

Dcima Quarta Semana


1. 2. 3. 4.

Assistir animao: Animao sobre utilizao de dispositivos de I/O Leitura e estudo do contedo: Gerenciamento de I/O Atividade prtica: Instalao de driver de dispositivo Participao no frum para soluo de problemas da atividade prtica.

As atividades a serem desenvolvidas na dcima quinta semana so:

Decima Quinta Semana


1. Atividade presencial

Referncias:
FERREIRA, Rubem E. Linux: Guia do Administrador do Sistema. So Paulo: Novatec, 2003. OLIVEIRA, Rmulo Silva de; CARISSIMI, Alexandre da S.; TOSCANI, Simo Sirineo. Sistemas operacionais. 3. ed.Porto Alegre : Bookman ; UFRGS, 2008. TANENBAUM, Andrew S. Sistemas operacionais modernos. 2.ed. So Paulo: Pearson Prentice Hall, 2003. BATTISTI, Jlio. Windows Vista: curso completo. Rio de Janeiro: Axel Books, 2007. SIEVER, Ellen; et al. LINUX : guia essencial. Traduo Joo Tortello. 5.ed. Porto Alegre: Bookman, 2006.

11

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Currculo Professor-Autor
Bacharel em Cincia da Computao pela Universidade de Passo Fundo (2004) e Especialista em Educao a Distncia (2010). Atualmente professor titular do Instituto Federal de Educao, Cincia e Tecnologia Sul-Rio-Grandense. Possui larga experincia profissional em TI com nfase em sistemas operacionais, infraestrutura de TI, tendo atuado principalmente nos seguintes temas: softwares para engenharia clnica, software mdicos, imagens mdicas, infraestrutura de TI e redes de computadores. Trabalhando atualmente com computao em dispositivos mveis na plataforma Android.

Jos Antnio Oliveira de Figueiredo

<http://lattes.cnpq.br/8031243494666833>

12

Introduo, histrico e tipo de sistemas operacionais

Unidade A

Sistemas Operacionais

Unidade A
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

INTRODUO, HISTRICO E TIPO DE SISTEMAS OPERACIONAIS


Um sistema informatizado qualquer pressupe a existncia de um ou mais hardwares e de um ou mais usurios. At certo ponto, a existncia da informtica justifica-se na existncia destes dois personagens. No entanto, para que possa haver interao entre o hardware e o usurio, precisamos de um intermedirio o sistema operacional.

Introduo

O sistema operacional oferece ao usurio uma abstrao simplificada do hardware, ou seja, facilita e viabiliza seu uso. Para que isto seja possvel, o sistema operacional atua gerenciando todo o hardware disponvel dentro deste computador seja ele um simples PC ou um supercomputador da lista TOP500. Existem diversos sistemas operacionais disponveis para se trabalhar e o funcionamento de todos semelhante, do ponto de vista conceitual, mas diferente do ponto de vista de implementao. Em outras palavras o desenvolvedor A desenvolve um sistema operacional de um jeito a, enquanto o desenvolvedor B desenvolve um sistema operacional do jeito b. Ambos fazem a mesma coisa mas de formas diferentes.

Se prestarmos ateno ao usarmos um computador, perceberemos que normalmente fazemos uso de aplicaes tambm conhecidos como programas. Estas aplicaes NO SO o sistema operacional e sim programas que rodam sobre ele. Este conceito de camadas pode ser visualizado na figura A.1.

Quando pensamos em desenvolvimento ou estudo de um sistema operacional, precisamos considerar qual a abstrao que estamos fazendo, ou seja, por qual ponto de vista estamos analisando.

Viso de estudo

Um computador um conjunto, normalmente complexo de hardwares e perifricos, interconectados. Para fazer com que esta monte de hardware funcione, precisamos de um software que faa um gerenciamento eficiente destes recursos. Veja na citao abaixo a funo do sistema operacional como um gerente recursos.

O gerente de recursos

o trabalho do sistema operacional oferecer uma alocao ordenada e controlada dos por eles [Tanenbaum, 2010, p19].

processadores, das memrias e dos dispositivos de E/S entre os vrios programas que competem

15

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Um computador um conjunto, normalmente complexo de hardwares e perifricos, que trabalha em uma linguagem bastante complexa. Para que pudssemos fazer uso eficiente e produtivo deste computador precisaramos conhecer as linguagens de mquina de cada dispositivo (processador, hd, disquetes, etc). Desta forma, precisamos do sistema operacional para fazer a traduo de toda esta linguagem de mquina para uma linguagem que seja humanamente possvel de se trabalhar. Veja a citao abaixo:

A mquina virtual

o sistema operacional esconde do programador o hardware e tambm oculta muitas coisas desagradveis relacionadas com interrupes, temporizadores, gerenciamento de memria e outros recursos de baixo nvel [Tanenbaum, 2000. p 19].

De forma mais conceitual um sistema operacional pode ser definido como uma camada de software colocada entre o hardware e os programas que executam tarefas para os usurios [Oliveira, 2008, p 1].

Conceituando

Kernel ou ncleo do sistema operacional o local onde ocorre todo processamento pesado de um SO e via de regra, ns enquanto usurios (programadores ou no) no temos acesso a esta rea. Para que se possa trabalhar, faz-se necessrio uma interface de comandos que poder ser em modo grfica ou modo texto.

Kernel

a)

modo texto: ambiente em que temos apenas uma shell tambm conhecido como prompt de comandos. Neste modo, toda manipulao feita por comandos digitados e executados pelo teclado. No h botes ou mouse. A shell largamente conhecida em sistemas operacionais Unix-like.

b)

Salientamos que tanto a shell quanto o ambiente grfico no fazem parte do kernel. Funcionam como uma aplicao que roda sobre o ncleo do sistema. Este conceito pode ser visto na figura A.2 que mostra um ambiente muito comum para sistemas operacionais da famlia GNU/Linux, em que podemos escolher qual ambiente grfico ou shell nos adequamos mais.

modo grfico: ambiente em que interagimos com o computador em um ambiente de trabalho grfico, com botes, cones, normalmente atravs de um mouse. Este ambiente se popularizou com os sistemas operacionais da famlia Windows. Outros sistemas, inclusive Unix-like, tambm dispunham deste modo de trabalho.

Desde Charles Babbage (1792-1871) at os dias atuais, os computadores e os sistemas operacionais tem passado por evolues e revolues significativas. Nesta parte deste artigo, iremos apresentar um pouco desta evoluo.

Histria

16

Unidade A
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Charles Babbage: e Ada Lovelace

Saiba mais:

<http://pt.wikipedia.org/wiki/Charles_Babbage>; <http://pt.wikipedia.org/wiki/Ada_Lovelace>

Primeira Gerao (1945-1955) Vlvulas e painis de conectores

Os computadores de primeira gerao no tinham um sistema operacional propriamente dito. A sua programao (e utilizao) era feita diretamente por cabos e conexes ou seja, o programador precisava conhecer a linguagem de mquina do computador em questo. O principal representante desta gerao de computadores o Eniac. No final da dcada de 50, estes programas passaram a ser gravados em cartes perfurados, permitindo ao programador executar seus programas com mais facilidade. Com o surgimento do transistor, os computadores reduziram de tamanho e passaram a ser fabricados e vendidos somente grandes empresas poderiam adquirir sistemas deste tipo. Os programas eram escritos em papel e registrados em cartes perfurados que poderiam ser lidos e executados diversas vezes pelos computadores. Mas para executar os programas criados, algum deveria inserir os cartes (na sequncia correta) o computador ento fazia seus clculos e o resultado era impresso e entregue ao programador novamente.

Segunda Gerao (1955-1965) Transistores e sistemas de lote

17

Fomento ao Uso das Tecnologias da Informao e Comunicao

Ainda nesta gerao, algumas modificaes foram feitas para otimizar o tempo de mquina desocupada, dando origem ao sistema de processamento em lote (batch system) termo que usado at hoje em determinados tipos de programas.

Sistemas Operacionais

O processamento em lote:

programador escreve o programa e grava em cartes perfurados; cartes so lidos por um computador barato IBM-1401 e gravados em fita magntica; operador rebobina a fita magntica e leva at o computador caro IBM-7094 onde o programa ento executado; Os resultados obtidos com esta computao so gravados em outra fita magntica e levados a outro IBM-1410 onde os dados so lidos e impressos; resultado entregue ao programador.

Nestes sistemas de computao as funes do sistema operacional acabam sendo executadas pelo operador de mquina, que faz o controle dos cartes, fitas e resultados.

Nesta poca, a eletrnica havia melhorado bastante e os transistores sofreram uma drstica miniaturizao, sendo desenvolvidos em circuitos integrados, causando uma melhoria significativa no desenvolvimento de hardware de comutadores. Desta foram as grandes empresas desenvolveram maquinas mais elaboradas como o 360 da IBM, que tinha pretendia ser uma mquina que atendesse desde grandes clculos cientficos at clculos comerciais. Estes equipamentos no chegaram a dominar o mercado, mas importantes conceitos da computao atual foram incusos no hardware/sistema operacional como por exemplo a multiprogramao e o compartilhamento de tempo.

Terceira Gerao (1965-1980) Circuitos Integrados e multiprogramao

Circuito Integrado

Saiba mais:

<http://pt.wikipedia.org/wiki/Circuito_integrado>

Nesta poca um consrcio de gigantes como o MIT, Bell Labs e General Eletrics procuraram desenvolver um audacioso sistema de computao centralizada designado por MULTICS. O conceito era ter um sistema computadorizado central, que atendesse simultaneamente (por compartilhamento de tempo) centenas de usurios espalhados. Este modelo era inspirado no sistema de distribuio eltrica, em que voc conecta um aparelho na tomada e usa. O objetivo era prover servio de computao a toda uma cidade. O projeto no deu certo, mas introduziu centenas de conceitos importantssimos computao atual.

18

Unidade A
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Paralelamente ao gigante MULTICS, micro-computadores foram surgindo no mercado de circuito integrados de menor custo como o PDP-1 da empresa DEC. Ainda no fim da dcada de 60, Ken Tompson, cientista da computao (aqui j existiam profissionais de TI) e participante do projeto MULTICS, desenvolveu uma verso monousurio e simplificada deste, que mais tarde daria origem ao UNIX. Como a tecnologia eletrnica avanava a uma velocidade fantstica, surgiu a tecnologia LSI (Large Scale Integration), que possibilitava construir chips com milhares de transistores. Com estes chips, agora em placas de circuito bem menores que nas geraes anteriores, alguns desbravadores iniciaram a saga do computador pessoal e dos sistemas operacionais.

Quarta Gerao (1980-atual) Computadores pessoais

Destacam-se a empresa Microsoft, com o sistema operacional MS-DOS em processadores da famlia x86 da Intel; e a empresa Apple com o sistema operacional MacOS maquinas Macintosh com processadores PowerPC da Motorola.

Filme Piratas do Vale do Silcio, direo de Martyn Burke

Saiba mais:

Sistemas operacionais desta gerao de maquinas, denominados computadores pessoais buscam ter uma interface amigvel e serem de fcil utilizao at porque so direcionadas um pblico que normalmente no da rea de TI. No entanto os sistemas operacionais de grande porte, para mquinas com maior poder de processamento, continuaram a evoluo e tambm tem sua fatia de mercado. Dado a diversidade de sistemas operacionais disponveis no ramo de TI, as vezes torna-se necessrio fazer uma classificao destes sistemas, que facilite a uma especificao para algum equipamento.

Tipos de sistemas operacionais

A classificao no determinante, embora facilite o entendimento de alguns aspectos relacionados sistemas operacionais.

19

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

So sistemas operacionais dedicados a supercomputadores utilizados normalmente para aplicaes cientficas, como simulaes e clculos avanados.

Supercomputadores

Lista TOP 500

Saiba mais:

<http://www.top500.org/lists/2010/11 >

Os principais exemplares destes tipos de sistema operacional so:


GNU/Linux CNK/SLES9 CentOS AIX Windows HPC 2008

So os sistemas operacionais para computadores de grande porte tipo mainframe. Mquinas deste tipo so encontradas em grandes corporaes para processamento de grandes quantidades de dados. Ex: BANRISUL

Grande porte

Os principais exemplares deste tipo de sistemas so:


OS/390 OS/360 GNU/Linux

So os sistemas operacionais para mquinas com alto desempenho orientadas a aplicaes de mdias e pequenas empresas. So computadores facilmente encontrados no mercado, normalmente baseadas na plataforma x86.

Servidores

Os principais exemplares deste tipo de sistemas so:


GNU/Linux Windows 2008 Server Unix HP-UX

So os sistemas operacionais para mquinas com desempenho normal e orientadas a aplicaes residenciais. Normalmente baseadas na plataforma x86, podendo ser multiprocessados ou no.

Computadores pessoais

Os principais exemplares deste tipo de sistemas so:


Windows (diversas verses) GNU/Linux Mac OS Snow Leopard;

So os sistemas operacionais para mquinas de baixo desempenho, normalmente com uma funo bem definida como por exemplo celulares ou microcontrolados em geral.

Sistemas Embarcados

20

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Os principais exemplares deste tipo de sistemas so:


Windows Mobile GNU/Linux na verso android por exemplo Simbiam

Unidade A

So os sistemas operacionais para mquinas de tempo real, normalmente usadas em simuladores

Sistemas de tempo real

Os principais exemplares deste tipo de sistemas so:


VxWorks QNX

Sntese
o sistema operacional um programa de certa complexidade, responsvel pelo controle (que precisa ser eficiente) de todo o hardware disponvel no computador alm de servir de interface amigvel para o usurio; viso top-down: ver o sistema operacional como mquina virtual que esconde a verdade sobre hardware do usurio/programador. Viso bottom-up: ver o sistema operacional como um gerente de recursos que aloca de forma eficiente e ordenada todos os recursos que um computador possui; Primeira gerao: computadores gigantes, baseados em vlvulas. No h sistemas operacionais operao/programao diretamente nos cabos e conexes; Segunda gerao: computadores mdios com baixo poder de processamento, baseados em transistores; No h sistemas operacionais - figura do operador que faz o transporte das fitas; operao/programao por cartes perfurados/fita magntica; princpios ainda vigentes como execuo em lote; fila de entrada, etc. Terceira gerao computadores de vrios tamanhos baseados em circuitos integrados; boom da informtica; surgimento de diversos sistemas operacionais e conceitos fundamentais projeto MULTICS primeira verso UNIX; IBM OS/360 multiprogramao, timesharing, Quarta gerao gerao do PC baseado em LSI melhoramento da usabilidade do sistema operacional surgimento da Apple, Microsoft e outras grandes empresas e produtos

Atividades
1. Como primeira atividade relacionada a nossa disciplina, faa um relato no frum da unidade sobre a sua experincia com um sistema operacional antigo preferencialmente o mais antigo que voc tenha usado. Alm disso, acompanhe neste mesmo frum os relatos dos colegas e comente-os.
Procure relatar sobre dificuldades, problemas, facilidades, as novidades trazidas na poca...

21

Instalao de Sistemas Operacionais e Gerenciamento de usurios

Unidade B

Sistemas Operacionais

Unidade B
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

INSTALAO DE SISTEMAS OPERACIONAIS E GERENCIAMENTO DE USURIOS


Para que um um computador seja til a um usurio qualquer, seja programador ou usurio comum, precisamos fazer com que este computador inicialize com sistema operacional. Uma das formas de fazer um sistema operacional inicializar em um computador instalar este na mquina uma vez instalado, o SO ficar residente na mquina e funcionar por tempo indeterminado (at que haja alguma falha).

Introduo

Nesta unidade faremos um estudo sobre os processos e procedimentos envolvidos em uma instalao de um um sistema operacional. Alm da instalao, sero vistos os procedimentos de gerenciamento de usurios. Para este fim, ser utilizado o Sistema Operacional Debian GNU/Linux, licenciado sobre GPL e considerado um sistema operacional universal.

Para iniciar, o computador precisa bootar1 (l se butar) e BOOT um termo usado para designar a carga de qualquer sistema operacional em um hardware.

Processo de BOOT

Aps os testes iniciais executados pelo POST Power On Self Test do hardware, o computador procura por uma unidade com flag de inicializao (boot), esta unidade poder ser um HDD; um CD/DVD; um bom e velho disquete ou at mesmo as recentes pendrives. Nestas unidades de disco, devero conter pelo menos um programa instalador, que funcionar como um wizard, orientando a instalao do sistema operacional. Vale salientar que cada fabricante/distribuidor de sistema operacional cria e distribui seu prprio instalador, desta forma, sempre encontraremos diferenas e particularidades entre estes programas. No entanto, os passos elementares sero sempre muito semelhantes. Para que o boot seja possvel, o computador precisa ser informado quais so as provveis unidades de inicializao esta configurao feita no setup2. Hardware Manual Completo, Carlos Morimoto, disponvel em:
1. Outros termos usados : dar boot, inicializar 2. Tambm conhecida por BIOS;

Saiba mais:

<http://www.hardware.com.br/livros/hardware-manual/configuracao-bios-setup.html>

25

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Ao encontrar o disco inicializvel, o computador carrega este boot e iniciar os passos da instalao

Todos os procedimentos deste curso sero executados em mquina virtual. Caso sejam feitos em um computador real, lembre-se de fazer uma cpia de segurana de seus dados particulares. Para fazer esta instalao ser necessrio o uso de um disco de instalao do Debian 6 codinome Squezze que pode ser baixado do site do projeto. Diversos meios de obteno do Debian esto disponveis mas sugerimos que seja baixado e gravado pelo menos o DVD-1. Maiores informaes em: <http://www.debian.org/distrib/> - sugerimos que seja utilizado o DVD.

Ateno:

Dicas:

Instalao
Requisitos para instalao
Disco de instalao do Debian; Mquina virtual criada

Selecione o DVD como unidade de boot preferencial, para isso, durante a tela de inicializao (figura B.1) pressione a tecla ESQ para menu de boot - aqui vamos precisar de bastante reflexo porque esta tela passa rpido.

Primeiros passos

Aps isto, conforme pode ser visto na figura B.2, escolhemos o CDROM como origem de boot e tecle enter.

26

Unidade B
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Aps o boot, a mquina inicializada pelo disco de instalao do Debian apresentando a tela para escolha modo de instalao figura B.3. Na tela so apresentados dois modos de instalao e opes avanadas. Neste material, usaremos o mtodo normal (Install), at porque o mtodo de instalao grfica (Graphical install), apesar de ser mais intuitivo mas bem mais pesado.

Aps o boot

As prximas telas iro coletar algumas informaes que definiro diversas caractersticas do sistema:
Escolha de lngua: onde escolhemos Portugus do Brasil; a partir deste momento todas as mensagens e textos estaro em portugus no deixe de ler; Escolha da localidade: onde escolhemos Brasil; Escolha de teclado: onde normalmente escolhemos Portugus Brasileiro (ANBT) para teclados com tecla ;

27

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Aps a coleta de informaes sobre sua localidade, lngua e correlatos, ser necessrio fazer a configurao de rede que poder ser usada durante a instalao do sistema operacional. O instalador tentar fazer a configurao automtica da rede.

Configurando a rede

Caso a configurao automtica de rede falhe, sera apresentada uma mensagem de falha e a seguir um questionamento, conforme figura B.4, se a configurao dever ser feita manualmente.

Como estamos fazendo uso de um DVD de instalao, o qual contm todos os pacotes que iremos necessitar, no precisamos configurar a rede neste momento. Podemos escolher a opo No configurar a rede agora. Se a configurao automtica funcionou, o instalador entrar diretamente na tela de escolha de nome de computador (figura B.5) e domnio, onde iremos definir qual ser o nome do nosso computador na rede e domnio de rede aqui, poderemos aceitar a sugesto do instalador debian e localdomain, j que estas informaes no iro interferir em nenhuma caracterstica do sistema.

A utilizao de rede permitir ao instalador baixar e instalar a verso atualizada de todos os pacotes, o que muito bom do ponto de vista de segurana e estabilidade do sistema instalado, contudo esta mtodo bastante demorado.

28

Unidade B
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Nesta etapa sero configurados os usurios mnimos do sistema que estamos instalando. Vale salientar que a distribuio Debian exige pelo menos dois usurios para funcionar. Um usurio que tem a funo de administrar o sistema conhecido como root e um usurio normal com qualquer nome.

Configurando usurios

A prxima tela, figura B.6, pede que seja escolhida uma senha para o usurio root. Esta senha dever ser confirmada na tela subsequente. (no mostrada aqui. O texto apresentado d algumas dicas de criao desta senha para que o sistema esteja mais protegido.

Um invasor mal intencionado poder tentar descobrir esta senha, por isso faa uso de uma senha forte alm de no esquec-la.

Aps a criao da senha do root, o instalador exige a configurao de pelo menos um usurio comum, que dever ser usado para operao normal do computador. So solicitados: nome completo do usurio, nome da conta e senha alm de sua confirmao. O sistema operacional precisar preparar uma rea do disco rgido para ficar instalado, alm de uma rea para dados de usurios. Chamamos este procedimento de particionamento e formatao do disco.

Particionamento

O instalador nos d uma gama bastante grande de opes de particionamento do disco, no entanto, faremos uso do mtodo mais simples. Vale lembrar que todos os dados contidos nos discos sero perdidos

Ateno:

Aqui dever ser escolhido o mtodo de particionamento a ser executado no ato da instalao. Os mtodos disponveis so:

a) Mtodo de particionamento:

29

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Assistido usar o disco inteiro: significa que usaremos o wizard de particionamento para o disco inteiro. Faremos uso deste mtodo; Assistido usar o disco inteiro e configurar LVM: significa usar todos os discos presentes no computador e configurar um Volume Lgico no abordado neste material; Assistido usar o disco inteiro e LVM criptografado: significa usar todos os discos presentes no computador e configurar um Volume Lgico com criptografai no abordado neste material; Manual: significa particionar o disco de forma manual no abordado neste material

Aqui selecionado o disco que iremos particionar. Como na nossa mquina virtual temos apenas um HD criado, verificamos que apenas um disco mostrado. Devemos escolher este disco.

b) Escolha de disco:

Como usamos o mtodo assistido, temos 3 opes para o particionamento

c) Escolha de esquema de particionamento:

todos os arquivos em uma nica partio (para iniciantes) neste esquema apenas uma partio de uso geral criada. partio /home separada - separa em um partio especfica os dados de usurios no abordado neste material. parties /home, /usr , /var e /tmp separadas separa em vrias parties os dados de pastas especficas no abordado neste material.

Sempre ser criado uma partio especfica chamada swap 3.

Uma tela, figura B.7, mostrando as parties a serem criadas apresentada pedindo sua confirmao.

d) Finalizao:

Ainda uma nova tela apresentada perguntando se voc tem certeza que deseja particionar e formatar os discos. a ltima chance antes de desistir.

e) Confirmao:

3. rea de troca ou memria virtual.

30

Unidade B
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Aps o particionamento e formatao o instalador faz uma cpia para o disco de alguns pacotes bsicos, fundamentais para o novo sistema. Na sequncia, o instalador precisar saber se voc quer adicionar outro DVD lista de repositrios do sistema instalado (o Debian 6 composto por 8 DVDs, mas precisamos apenas do DVD 1).

Copiando pacotes

Alm disso, o instalador quer saber se voc ir fazer uso de espelhos de rede para atualizao de pacotes em tempo de instalao. Para isto, a rede dever estar funcionando adequadamente. Sugerimos que no seja usado nenhum espelho de rede para que a instalao no demore muito dependendo da velocidade da internet isto pode demorar bastante, j que so 1146 pacotes para verificar e atualizar. Feito as escolhas, o sistema apresenta uma tela para seleo de software figura B.8.

Aqui escolhemos que tipo de mquina teremos. A seleo feita com a barra de espaos e para o nosso sistema, devero ser selecionados pelo menos o primeiro Ambiente de trabalho grfico e a ltima Utilitrios standards do sistema. Tendo feito as escolhas o sistema comear a instalao, lembrando que se estivermos usando espelhos de rede esta instalao poder demorar bastante. Uma barra de progresso apresentada conforme a figura B.9.

Ao terminar a instalao dos 1146 pacotes, o instalador ir solicitar, conforme figura B.10, a instalao do carregador de inicializao GRUB. Este utilitrio o responsvel pelo boot (inicializao) do sistema

Finalizando a instalao

31

Fomento ao Uso das Tecnologias da Informao e Comunicao

recentemente instalado logo, se o GRUB no for instalado, o sistema no ir bootar. Evidentemente, como qualquer outro utilitrio ou configurao do Debian, poder ser instalado/configurado posteriormente.

Sistemas Operacionais

Gerenciar usurios uma prtica muito importante em qualquer sistema operacional, pois isto garante que todos os usurios tero suas personalizaes e proteo dados. Alm disso, o uso correto dos usurios usurio comum para trabalho comum e root EXCLUSIVAMENTE para operaes de administrao incrementam a segurana do sistema.

Gerenciamento de usurios

De acordo com o manual do kernel, ncleo do sistema operacional nunca devemos usar o nome root em vo: Dont take the name of root in vain As operaes de gerenciamento de usurios so operaes de administrao de sistema, logo ser necessrio que voc esteja logado como root. No entanto, como premissa de segurana, o root no loga no ambiente grfico. Voc dever logar como usurio comum criado no momento da instalao, abrir um terminal e trocar para usurio root com o comando su. Guia Foca GNU/Linux, Captulo 12 - Comandos para manipulao de contas, disponvel em:
< http://www.guiafoca.org/cgs/guia/inic_interm/ch-cmdc.html>

Dicas:

Saiba mais:

Gerenciamento de usurios
O comando de criao de usurios o adduser, ele adiciona um usurio, cria sua pasta de dados e uma senha alm de outras informaes de usurio. Nos exemplos abaixo, so criados duas novas contas uma chamada maria e outra joao (observe que joao est sem acento porque uma conta de usurio e no o nome de uma pessoa).

Criando usurios

32

Unidade B
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

# adduser joao # adduser maria

O comando de remoo de usurios userdel removo o usurio escolhido do sistema, podendo apagar tambm seus dados pessoais.

Removendo usurios

apaga o usurio joao PRESERVANDO sua pasta de arquivos pessoal /home/joao


#userdel joao #userdel maria

apaga o usurio maria REMOVENDO sua pasta de arquivos pessoal /home/maria

Grupos so um mecanismo de gerenciamento em que agrupamos usurios por afinidade ou caracterstica. Por exemplo, podemos ter um conjunto de usurios que pertenam a um grupo de professores e outro grupo de usurios que pertenam a um grupo de alunos. Alguns destes usurios podero pertencer a outros grupos. Este agrupamento de usurios ser necessrio para compreender o funcionamento do gerenciamento de permisses de arquivos da prxima unidade. Esta situao representada no desenho 11 em que temos um grupo de professores, um grupo de alunos e um grupo de pesquisa formado por um aluno e um professor.

Gerenciamento de grupos

O comando de criao de grupos addgroup cria um novo grupo no sistema. Todos os grupos criados esto vazios.

a) Criando Grupos

# addgroup professores # addgroup alunos # addgroup pesquisax

O comando que associa usurios a grupos.

b) Associando Usurios a grupos


# adduser aluno1 alunos # adduser aluno2 alunos

33

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

O comando de remoo de grupos groupdel apaga grupos existentes

c) Removendo Grupos
# groupdel alunos

os grupos apagados sero removidos do sistema bem como todas as suas ligaes com os usurios.

Sntese
A instalao de qualquer sistema operacional moderno normalmente auto-guiada; As telas contm um texto explicativo que explica o que precisa ser feito; O gerenciamento de usurios muito importante para organizar e proteger um sistema; O root (tambm chamado de administrador) usurio especial, com poderes sobre todo o sistema nunca use o administrador para trabalho cotidiano, sob pena de poder danificar o sistema; adduser cria usurio; addgroup - cria grupo.

Atividades
1. Instalar o sistema operacional GNU/Linux - Debian 6.0 Squezze; 2. Criar os usurios aluno1, aluno2, professor1, professor2; 3. Criar os grupos alunos,professores, pesquisa; 4. Associar os usurios aos grupos correspondentes; 5. Associar os usurios aluno1 e professor1 ao grupo pesquisa; 6. Entregar no AVA: uma cpia do arquivo /etc/group.

34

Gerenciamento de Arquivos

Unidade C

Sistemas Operacionais

Unidade C
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

GERENCIAMENTO DE ARQUIVOS
O objetivo fim de um sistema informatizado a produo, auxiliar o trabalho de pessoas, viabilizar e agilizar processos, pesquisas, rotinas, etc. Em outras palavras, o computador precisa ser til e esta utilidade est fortemente ligada a manipulao de arquivos. O objetivo desta unidade compreender a estrutura e os mecanismos de manipulao de arquivos e diretrios de um sistema operacional Unix-like. Na unidade H sero vistos como o sistema operacional implementa um sistema de arquivos. Todos as explicaes e exerccios sero feitos focando o modo terminal de operao. Evidentemente, as mesmas atividades podem ser executadas no modo grfico, no entanto, no raramente nos deparamos com situaes em que no temos ambiente grfico a disposio para trabalho ou recuperao de algum sistema.

Introduo

A estrutura de dados que organiza os arquivos em um sistema Debian de rvore invertida, onde tudo vem de uma raiz e se expande entre NS (plural de n), que correspondem aos diretrios, e terminam em folhas, que correspondem aos arquivos. A figura C.1 procura representar esta rvore.

A rvore invertida

Vale salientar que a estrutura de diretrios de um sistema Unix-like segue uma lgica pr-definida (e bem definida) facilitando a organizao dos arquivos de sistema e arquivos de usurios, nesta organizao, os arquivos sero armazenados por afinidade ou semelhana de funo. Por outro lado esta estrutura no fechada se voc achar conveniente pode quebrar o padro e adaptar uma nova estrutura, mas faa isto com cuidado e principalmente no esquea o que foi feito. Na tabela 1 vemos uma estrutura convencional de diretrios do Debian.

37

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Diretrio
bin etc lib boot dev home mnt

Contedo

Binrios de comandos essenciais Arquivos de dispositivos

Arquivos estticos do gerenciador de partida Diretrios home de usurios

Configuraes de sistema especficas da mquina

media proc root sys tmp usr var srv sbin

Bibliotecas compartilhadas essenciais e mdulos do kernel Contm pontos de montagem para mdias removveis Diretrio Home do usurio root Binrios essenciais do sistema Arquivos temporrios Dados variveis Hierarquia secundria

Ponto de montagem para montagem temporria de um sistema de arquivos Diretrio virtual contendo informaes do sistema (kernels 2.4 e 2.6) Diretrio Virtual contendo informaes do sistema (kernels 2.6)

Ao fazermos uso do Debian nossos arquivos de usurios ficaro armazenados sempre na pasta de arquivos pessoais do usurio. Por exemplo, na instalao que fizemos na unidade anterior, foram criados diversos usurios entre eles aluno1 e professor1.
fonte http://www.debian.org

opt

Dados para servios fornecidos pelo sistema


Tabela 1: rvore padro Debian

Pacotes de aplicativos e programas adicionais

Usurio professor1 seus dados ficam armazenados em /home/professor1. Esta informao lida (e verbalizada) da seguinte forma: barra home barra professsor1. Usurio aluno1 seus dados ficam armazenados em /home/aluno1. Esta informao lida (e verbalizada) da seguinte forma: barra home barra aluno1.

Detalhes:

o caminho absoluto parte sempre da raiz, identificado pelo primeiro sinal / (o barra); sempre que temos um subdiretrio ou algum arquivo dentro de um diretrio superior, mostramos esta ligao novo /;

Para conseguir trabalhar ou manipular arquivos e diretrios em um computador, preciso saber andar por entre os diretrios de forma eficiente.

Comandos para diretrios

38

Unidade C
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

O comando de troca de diretrio o cd acrnimo para call directory e seu uso :

Trocar de diretrio

$ cd /var/log abre o diretrio /var/log, onde esto os logs do sistema;

$ cd /home/aluno1 abre o diretrio /home/aluno1, onde esto os dados do usurio aluno1. Pode-se dizer entra na casa do usurio aluno1; $ cd /home/aluno1/projetos tenta abrir o diretrio /home/aluno1/projetos (este diretrio no existe, logo o shell ir informar o erro); $ cd --help mostra os detalhes do comando.

o comando para ver o contedo de um diretrio o ls acrnimo de list e seu uso :

Listar arquivos

$ ls mostra a lista de arquivos e diretrios;

$ ls -l mostra a lista de arquivos e diretrios em detalhes; $ ls --help mostra os detalhes do comando.

O comando de criao de diretrios mkdir acrnimo de make directory e seu uso :

Criar diretrios

$ mkdir teste cria diretrio teste dentro do diretrios em que estou. $ mkdir /tmp/lixo cria diretrio lixo dentro da pasta /tmp; $ mkdir --help mostra os detalhes do comando.

O comando para remoo de diretrios o rmdir acrnimo de remove directory. Esta comando exige que o diretrio esteja vazio, mas exitem outros comandos de remoo forada com mesmo com contedo.

Remover diretrios

$ rmdir teste remove o diretrio criado anteriormente (deve estar vazio);

$ rmdir /tmp/lixo remove o diretrio criado no teste anterior vale observar que /tmp preservado, sendo apagado somente o lixo. $ rmdir --help mostra os detalhes do comando.

O comando para renomear diretrios ( o mesmo para renomear tudo) o mv acrnimo para move. Este comando pode ser usado para modificar o nome de algo como a localizao de algo. Seu uso :

Renomear diretrios

$ mv teste novonome move o diretrio teste para novonome; $ mv /tmp/lixo /tmp/lixao move os diretrio lixo para lixao;

Os comandos acima so fundamentais para a operao de um computador em modo texto lembre-se que nem sempre teremos um sistema operacional com ambiente grfico disponvel mas o o modo texto padro. Alm disso, outras o formas de fazer podem ser encontradas.
$ mv --help mostra os detalhes do comando.

Estes comandos so idnticos para todas as distribuies sofrendo pequenas variaes nos sistemas Microsoft.

39

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Guia FOCA Linux; Captulo 2.3 Diretrio, disponvel em:

Saiba mais:

<http://www.guiafoca.org/cgs/guia/inic_interm/ch-bas.html#s-basico-diretorio >

Arquivos so objetos digitais, armazenados em uma mdia qualquer ( disco rgido, CDROM, rede, etc,). Arquivos possuem uma razo bem definida para existirem, podem possuir algum contedo que faz sentido para algum usurio, por exemplo um relatrio de concluso de curso ou uma fotografia; ou so arquivos de sistema, relacionados ao funcionamento do sistema operacional ou de algum programa.

Arquivos

Nesta parte deste material vamos estudar um pouco mais sobre a manipulao de arquivos.

A manipulao de arquivos segue a mesma lgica dos comandos para diretrios, com algumas variaes. Os comandos de renomear, mover, remover so idnticos. Comandos especficos para arquivos podem ser:

Manipulao de arquivos

Arquivos podem ser criados de diversas formas, sendo as mais comuns:

a) Criar arquivo

$ touch arquivo-teste cria um arquivo texto de nome arquivo-teste vazio;

$ nano arquivo-teste cria um arquivo texto de nome arquivo-teste direto no editor de textos;

Podemos ver o contedo de arquivos de diversas formas, sendo 3 as mais usuais:

b) Ver contedo

editor de texto: quando fazemos uso de um editor de texto este mtodo nos permite editar e modificar um arquivo (desde que tenhamos permisso para isso);
$ nano /home/aluno1/texto

com o cat: o cat pode ser usado para mostrar o contedo de um arquivo de forma esttica, ou seja, todas as informaes do arquivo so jogadas na tela de forma esttica sem possibilidade de edio.
$ cat /home/aluno/texto

com o tail: o comando tail mostra as ltimas linhas do arquivo texto. No entanto, usando um modificador chave, podemos ver o arquivo crescendo. Este comando muito til na visualizao de logs de erro
$ tail -f /var/log/messges

Todos os sistemas operacionais baseados em Unix, herdaram seu rigoroso (e muito eficiente) mtodo de controle de permisses de arquivos e diretrios. Desta forma, precisamos compreender o funcionamento deste mecanismo.

Permisses de acesso
Premissas:

todo arquivo ou diretrio estar associado a um usurio e a um grupo de usurios;

40

Unidade C
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

todo arquivo ou diretrio tem permisses explicitamente declaradas para seu usurio, seu grupo e para outros usurios que no so nem o dono nem parte do grupo; as permisses so: r para Read (leitura) w para Write (escrita) x para eXecute (execuo)

Para ver as permisses de arquivos e diretrios em aluma pasta, precisamos executar o comando ls -l. este comando ir retornar a lista de arquivos e diretrios mostrando as permisses e os usurios do arquivo. Como no exemplo abaixo:

Vendo as informaes

drwxr-xr-x -rwxr-xr-x -rw-r--r-drwxr-xr-x -rwxr--r--

3 aluno1 aluno1 1 aluno1 aluno1 1 aluno1 aluno1 3 aluno1 alunos 1 aluno1 alunos

4096 2010-03-10 17:27 6392 2010-06-02 16:43 73

anjuta a.out

2010-06-02 16:43

teste.c

4096 2011-04-25 09:34 892

enquete fila.py

No trecho de cdigo acima vemos 5 objetos e h muitas informaes a serem identificadas:


primeiro campo o primeiro campo identifica se o objeto um arquivo ( - ) ou um diretrio ( d ); segundo campo permisses para usurio, grupo e outros sempre em conjunto de 9 sinais; terceiro campo - contagem de hard links1 ; quarto e quinto campos usurio e grupo do arquivo ou diretrio; sexto campo tamanho do arquivo; se for um diretrio informa quantos bytes usamos para armazenar o nome do diretrio em disco; stimo campo data e hora da criao do objeto; oitavo campo nome do objeto.

2010-03-20 00:15

Todo arquivo ou diretrio pertence a algum dono e a algum grupo. Desta forma podemos definir quem o proprietrio do arquivo e qual grupo ele ir pertencer, para depois definir qual a permisso que cada um destes participantes tero sobre o arquivo.

Dono e grupo

Como visto no item anterior, o dono e o grupo so mostrados pelo comando ls -l noquarto e quinto campo respectivamente. possvel (e muitas vezes necessrio) modificar o dono de algum arquivo ou diretrio.
O comando de troca de dono o chown acrnimo de change owner ou troca de dono. O comando de troca de grupo o chgrp acrnimo de change group ou troca de grupo.

1. Esta informao no importante no momento

41

Fomento ao Uso das Tecnologias da Informao e Comunicao

Para executar estes testes, basta criar (como root) uma pasta chamada teste na raiz;
Logar como root
$ su root

Sistemas Operacionais

Criar a pasta teste


# mkdir /teste

Verificar quem o dono da pasta


# ls -l /teste

Trocar o dono para aluno


# chown aluno1 /teste

Trocar o dono da pasta para pesquisa


# chgrp pesquisa /teste

As permisses determinaro o tipo de acesso que cada usurio ter em determinado arquivo ou diretrio. Aps o identificador de arquivo/diretrio, teremos 3 campos para cada tipo de usurio.

Entendendo as permisses

Onde:

rwx

rwx

rwx

o primeiro conjunto de 3 identificadores rwx de permisso determina a forma de acesso para o usurio dono do arquivo; o segundo conjunto de 3 identificadores rwx de permisso determina a forma de acesso para o grupo do arquivo; o terceiro conjunto de 3 identificadores rwx de permisso determina a forma de acesso para os usurios que no esto no grupo e no o dono do arquivo.

Cada permisso pode ser includa ou removida (se preferir ativada/desativada), modificando a forma de acesso. Esta modificao de permisso se d com o comando chmod - acrnimo de change mode ou mudar modo de acesso. De forma mais prtica, vamos criar um arquivo teste qualquer vazio mesmo.
$ touch teste

Ao darmos o comando ls -l verificamos as permisses deste arquivo que so as seguintes: Dividindo os cdigos vemos que:
- indica que um arquivo;
-rwxr-xr-x

rwx - que o usuaio tem permisso de leitura, escrita e execuo; r-x - indica que o grupo tem permisso somente de leitura e execuo; r-x - indica que outros tem permisso somente de leitura e execuo;

42

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Vamos supor que este arquivo um arquivo muito confidencial... precisamos fazer algumas modificaes: desta forma dizemos outros perdem leitura escrita e execuo somente dono e grupo podero ler/ escrever/executar o arquivo;
a) Bloqueando acesso aos outros: $ chmod o-rwx teste b) Bloqueando acesso ao grupo e outros: $ chmod go-rwx teste

Unidade C

desta forma dizemos que grupo e outros perdem leitura escrita e execuo somente o dono pode ler/ escrever/executar o arquivo; desta forma dizemos que o grupo ganha leitura escrita;
c) d) Liberando somente execuo para grupo e outros: Liberando somente leitura e escrita para o grupo: $ chmod o+rw teste

aqui precisamos retirar as permisses dadas anteriormente; $ chmod go-rw teste $ chmod go+x teste assim dizemos que grupo e outros perdem leitura/escrita e ganham execuo;

Guia FOCA Linux; 10.10 Modo de permisso octal, disponvel em:

Saiba mais:

<http://www.guiafoca.org/cgs/guia/inic_interm/ch-perm.html#s-perm-octal>

O mecanismos de manipulao de permisses para diretrios o mesmo de arquivos. Contudo a funo de cada permisso diferente.

Permisses em diretrios

R permite listar contedo do diretrio. Caso esteja negado, o diretrio no mostrara se u contedo.

W permite gravar contedo dentro do diretrio. Caso esteja negado, o sistema operacional no vai permitir a criao de arquivos ou diretrios dentro do diretrio. X permite entrar no diretrio. Caso esteja negado, o sistema operacional bloqueia a abertura ou a entrada dentro do diretrio. Esta propriedade facilmente confundida com a permisso R.

Vale salientar que o usurio root est acima destas permisses, tanto que em sistema Unix, conhecido como superusurio. Esta caracterstica confere ao root poder total sobre o sistema. No use o usurio administrador para funes corriqueiras. A conta de root dedicada administrao do sistema

Ateno:

Ao instalarmos um sistema operacional ou ao adicionarmos um disco ao nosso computador, precisamos particionar e formatar este disco. Na verdade, no conseguimos usar um disco, seja ele um HD, um CRROM, uma pendrive ou qualquer outro tipo de unidade de armazenamento sem que estejam devidamente preparados com o particionamento.

Divises lgicas do disco


Mas o que significa particionar e formatar?

43

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Particionar um disco significa criar reas dentro de um disco fsico. Cada rea ser utilizada ter alguma funo no nosso sistema. Em sistemas Unix-like precisamos de no mnimo duas parties, sendo:

Parties

principal: uma partio que pode ocupar quase todo o disco, nela estaro os arquivos de sistema, usurios e tudo o que o computador precisa para funcionar. referenciada pelo sistema Debian como / (chamamos isto de raiz); swap: rea especialmente reservada para memria virtual do sistema operacional.

No entanto, podemos criar estruturas de particionamento diferentes desta mnima procurando organizar nosso computador. Por exemplo:
principal: com arquivos de sistema, referenciada como / swap: com memria virtual;

Ou ainda

home: com arquivos de usurios, referenciada como /home.

principal: com arquivos de sistema, referenciada como / swap: com memria virtual; home: com arquivos de usurios, referenciada como /home. Outra: com outras coisas que queremos separar tipo

A formatao o procedimento de criar um sistema de arquivo em uma partio. O sistema de arquivo o jeito pelo qual os arquivos so registrados no disco cada sistema tem o seu formato. Em outras palavras, um sistema de arquivos do Linux, diferente do sistema de arquivos do DOS e assim por diante. Veremos mais sobre sistemas de arquivos na unidade H.

Formatao

Uma partio contm somente uma um sistema de arquivos por vez

Ateno:

Para este exerccio, ser necessrio um disco vazio que pode ser acrescentado na mquina virtual.

Particionando e formatando

Desligue o computador virtual e selecione a mquina que estamos usando; Clique em Edit virtual machine settings; clique no boto ADD; escolha Hard Disk e clique Next; escolha Create new virtual disk e clique em Next; escolha SCSI (Recommended) e clique em Next;

escolha Split virtual disk into multiple files, matenha o tamanho em 8,0 GB e clique em Next;

Agora ao iniciar a mquina virtual, voc ter um novo disco para experimentarmos.
no modifique o File Name e clique em Save.

44

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Requisitos:

Unidade C

uma unidade e disco sem dados; acesso de root parar isso, faa logon normalmente com usurio, abra um terminal e execute o comando su - root; este comando ir abrir uma sub-sesso com privilgios de administrao (observe que o sinal de shell mudar para #); pacincia e cuidado; uma lida rpida no help do fdisk (# fdisk -h).

a) Vendo os HDs e parties disponveis:


comando # fdisk -l root@debian:~# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005e4df Dispositivo Boot Start End Blocks Id System /dev/sda1 * 1 996 7993344 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 996 1045 392193 5 Estendida /dev/sda5 996 1045 392192 82 Linux swap / Solaris Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

Analisando a captura de tela acima, verificamos nos destaques sublinhados que foram detectados dois discos, sendo:
/dev/sda que corresponde ao primeiro disco usado na instalao;

O disco /dev/sdb no contm uma tabela de parties vlida root@debian:~#

Observa-se tambm que o disco /dev/sda possui 3 divises sendo:


/dev/sdb que corresponde ao segundo disco recentemente adicionado; /dev/sda1 partio primria com formato ext3 de 7993344 Bytes; /dev/sda2 partio estendida de 392193 Bytes; /dev/sda3 partio swat de 392192 Bytes

45

Fomento ao Uso das Tecnologias da Informao e Comunicao

Observa-se tambm que o disco /dev/sdb no possui parties. Nosso objetivo agora criar parties. A ttulo de exemplo, vamos criar 3 parties, sendo:
1 ext3 com 3GBytes padro para sistemas linux; 1 ext4 com 3GBytes evoluo do padro ext3 tender a substituir o ext4; 1 fat32 com o resto de bytes padro para discos que precisam ser compartilhados como pendrives e cares de memria. Este padro no tem controle de permisses de acesso aos arquivos.

Sistemas Operacionais

entrar no particionador:

b) Particionando

No particionar o disco /dev/sda caso contrario nosso sistema se perder 1. criar a primeira partio: comando n

Ateno:

# fdisk /dev/sdb Comando (m para ajuda):

Ao entrar no particionador, recebemos o prompt Comando (m para ajuda): onde podemos digitar m para obter ajuda. Neste pequeno guia, podemos ver, por exemplo, usamos q para sair.
A letra n ir criar nova partio e o particionador pede o tipo que queremos primria ou estendida. escolhemos partio primria; O prompt nos pergunta qual o nmero da partio - como a primeira, escolhemos 1; o prompt nos pergunta o primeiro cilindro (onde a partio comea) como nossa primeira partio, escolhemos cilindro 1; o prompt nos pergunta qual o ltimo cilindro (at onde nossa partio vai) como queremos uma partio de 3GBytes, informamos o TAMANHO da partio com o comando +3G;

2. ver a partio criada: comando p

neste ponto nossa primeira partio est criada.

como podemos ver na captura de tela abaixo a partio /dev/sdb1 foi criada; Comando (m para ajuda): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xc4cc3d31

3. criar a segunda partio: comando n

Dispositivo Boot Start End Blocks Id System /dev/sdb1 1 393 3156741 83 Linux

A letra n ir criar nova partio e o particionador pede o tipo que queremos primria ou estendida. escolhemos partio primria; O prompt nos pergunta qual o nmero da partio - como a segunda, escolhemos 2;

46

Unidade C
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

o prompt nos pergunta o primeiro cilindro (onde a partio comea) como nossa segunda partio, devemos comear de onde a primeira terminou, para isto basta teclarmos enter e o particionador define o primeiro cilindro vago como incio da nossa partio. o prompt nos pergunta qual o ltimo cilindro (at onde nossa partio vai) como queremos uma partio de 3GBytes, informamos o TAMANHO da partio com o comando +3G;

4. Ver as parties criadas: comando p 5. criar a terceira partio: comando n

neste ponto nossa segunda partio est criada.

como podemos ver na captura de tela abaixo as parties /dev/sdb1 e /dev/sdb2 foram criadas; Dispositivo Boot Start End Blocks Id System /dev/sdb1 1 393 3156741 83 Linux /dev/sdb2 394 786 3156772+ 83 Linux A letra n ir criar nova partio e o particionador pede o tipo que queremos primria ou estendida escolhemos partio primria; O prompt nos pergunta qual o nmero da partio - como a terceira, escolhemos 3; O prompt nos pergunta o primeiro cilindro (onde a partio comea) como nossa terceira partio, devemos comear de onde a segunda terminou, para isto basta teclarmos enter e o particionador define o primeiro cilindro vago como incio da nossa partio. O prompt nos pergunta qual o ltimo cilindro (at onde nossa partio vai) como esta a ltima partio, queremos que ela ocupe todo o resto do disco, basta teclarmos enter. TODO o espao disponvel alocado a nossa terceira partio.

6. Ver as parties criadas: comando p

neste ponto nossa terceira partio est criada.

7. Mudando o tipo das parties: comando t

como podemos ver na captura de tela abaixo as parties /dev/sdb1, /dev/sdb2 e /dev/sdb3 foram criadas; Dispositivo Boot Start End Blocks Id System /dev/sdb1 1 393 3156741 83 Linux /dev/sdb2 394 786 3156772+ 83 Linux /dev/sdb3 787 1044 2072385 83 Linux Todas as parties foram criadas para o mesmo tipo de sistema de arquivos. Isto pode ser verificado pelo cdigo 83 em ID que corresponde ao padro ext. Precisamos modificar o ID /dev/sdb3 que deve ser preparada para fat32. Aps teclar t, o prompt nos pergunta qual o nmero da partio - como a terceira, escolhemos 3; O prompt nos pergunta o cdigo hexadecimal que ir identificar o tipo que iremos definir. Aqui pressionamos L para ver os cdigos possveis o particionador tem uma grande variedade de opes para escolha. Ao verificar a lista, temos (na primeira coluna) encontramos o cdigo b, que corresponde ao padro W95 FAT32. Ao verificarmos com o comando p temos: /dev/sdb3 787 1044 2072385 b W95 FAT32

TODAS as parties precisam ser formatadas cada uma com no seu formato correspondente. O Debian possui o utilitrio mkfs acrnimo de make file system - que facilita bastante a formatao das parties.

c) Formatando

47

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

No formatar parties do disco /dev/sda caso contrario nosso sistema se perder Formatando comando mkfs

Ateno:

Ainda como root digite mkfs e pressione a tecla TAB o sistema mostrar todas as formas que o mkfs disponibiliza.
# mkfs.ext3 /dev/sdb1

formata /dev/sdb1 com o sistema de arquivos ext3;


# mkfs.ext4 /dev/sdb2

formata /dev/sdb2 com o sistema de arquivos ext4


# mkfs.vfat /dev/sdb3

Neste momento as 3 novas parties do nosso segundo disco esto prontas para uso.
formata /dev/sdb3 com o sitema de arquivos fat32

Para podermos usar uma partio em um sistema Unix-Like, precisamos fazer um procedimento de montagem, onde um diretrio especialmente criado servira de link para nossa partio sempre que quisermos usar a partio X usamos na verdade o diretrio em que ela est montada. A ideia se assemelha a criar um atalho de um diretrio para uma partio sempre que quisermos usar esta partio precisamos fazer a montagem.

d) Usando as parties

Guia FOCA Linux; 5.11 Pontos de montagem, disponvel em: 1. criando os pontos de montagens

Saiba mais:

<http://www.guiafoca.org/cgs/guia/inic_interm/ch-disc.html#s-disc-pontomontagem >

voc pode criar um ponto de montagem em qualquer lugar do seu sistema de arquivos, no entanto o Debian sugere sempre o diretrio /mnt acrnimo de mount; dentro de /mnt precisamos criar um diretrio para cada partio a ser montada para fins de exerccio, sugiro os seguintes nomes ponto1, ponto2 e ponto3.
# mkdir ponto1 # mkdir ponto2

2. montando comando mount -t <tipo> <origem> <ponto>


# mount -t ext3 /dev/sdb1 /mnt/ponto1

# mkdir ponto3

significa montar a partio /dev/sdb1 do tipo ext3 em /mnt/ponto1;

48

Unidade C
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

# mount -t ext4 /dev/sdb2 /mnt/ponto2

significa montar a partio /dev/sdb2 do tipo ext4 em /mnt/ponto2;


# mount -t vfat /dev/sdb3 /mnt/ponto3

significa montar a partio /dev/sdb3 do tipo FAT32 em /mnt/ponto3;

3. verificando comando df

neste momento as 3 parties esto montadas.

Como pode ser visto na captura de tela abaixo, as parties foram montadas este comando inofensivo; Obviamente, podem ser vistas tambm as parties do primeiro disco /dev/sda # df -h ir apresentar resultados mais interessantes. root@debian:~# df Sist. Arq. 1K-blocos Usad Dispon. Uso% Montado em /dev/sda1 7867856 3421416 4046776 46% / tmpfs 127372 0 127372 0% /lib/init/rw udev 123032 176 122856 1% /dev tmpfs 127372 0 127372 0% /dev/shm /dev/sdb1 3107092 70236 2879020 3% /mnt/ponto1 /dev/sdb2 3107124 70168 2879120 3% /mnt/ponto2 /dev/sdb3 2068328 4 2068324 1% /mnt/ponto3

4. Usando

Por padro, o ponto de montagem de uso exclusivo do root para usurios comuns poderem trabalhar nestas reas, sugiro que seja criado uma pasta e passar esta para o usurio e/ou grupo que est precisando trocando o nome do dono/grupo. A titulo de exerccio, vamos criar uma pasta para o usurio aluno1 grupo alunos dentro de /mnt/ponto1 # cd /mnt/ponto1 vamos para ponto de montagem especfico; # mkdir teste-aluno1 cria-se a pasta; se dermos o comando ls -l verificamos que o dono da pasta o root; precisamos ento mudar o dono com o comando chown acrnimo para change owner e chgrp acrnimo para change group # chown -R aluno1 teste-aluno1 muda o dono do diretrio e de todos os seus subdiretrios; # chgrp -R alunos teste-aluno1 muda o grupo do diretrio e todos os seus subdiretrios; # ls -la para verificar; drwxr-xr-x 2 aluno1 alunos 4096 Jun 2 09:51 teste-aluno1 Agora o usurio aluno1 e o grupo alunos podero usar a pasta teste-aluno1

Sntese
arquivo uma forma de armazenar algum contedo; diretrio um arquivo especial que guarda outros arquivos ou diretrios; o sistema de arquivos em Linux representado em forma de rvore invertida, onde tudo comea na raiz; arquivos e diretrios pertencem a um usurio e a um grupo; chown e chgrp

arquivos e diretrios possuem permisso de acesso atribudas ao dono, ao grupo e aos outros; chmod UGO Usuario (dono), Grupo e Outros; RWX Read (leitura), Write (escrita) e X (eXecuo) um sistema de arquivos deve estar contido dentro de uma partio uma partio s pode ter um sistema de arquivos por vez; podemos criar/modificar as parties de um disco conforme for melhor;

49

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

esta modificao causa a perda dos dados contidos no disco modificado; fdisk mkfs.ext3, mkfs.vfat etc.

Atividades
1. No diretrio /var, criar dois novos subdiretrios chamados:
a) pasta-aluno1 para este diretrio, mudar o dono, o grupo para aluno1; mudar as permisses para que somente o dono da pasta tenha permisso de uso bloqueando acesso dos usurios do grupo e outros usurios; b) pasta-professor1 para este diretrio, mudar o dono, o grupo para professor1; mudar as permisses para que somente o dono da pasta tenha permisso de uso bloqueando acesso dos usurios do grupo e outros usurios; c) pasta-pesquisa para este diretrio, mudar o grupo para pesquisa; mudar as permisses para que o grupo da pasta possa modificar o contedo - bloqueando acesso ao dono da pasta e outros usurios; d) postar o resultado do comando ls -l na pasta /var;

2. Reparticionar o disco /dev/sdb


a) criar 1 parties primrias 2 GB; /dev/sdb1 como ext3 b) criar 2 parties primria de 3 GB cada; /dev/sdb2 como fat32 /dev/sdb3 como ntfs c) d) montar as parties em /mnt postar o resultado do comando df -h

50

Gerenciamento de pacotes e interoperabilidade

Unidade D

Sistemas Operacionais

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

1. GERENCIAMENTO DE PACOTES
Um sistema informatizado composto por diversos aplicativos; so estes aplicativos que tornam o computador til e como visto na sesso anterior, o objetivo de um sistema informatizado a produo (no sentido de viabilizar e agilizar o trabalho do homem). Em outras palavras, para que possamos trabalhar precisamos de aplicativos teis e nossa atividade.

Introduo

Se trabalhamos com textos, precisamos de um editor de textos; se trabalhamos com clculo estatstico, precisaremos de algum programa especfico e/ou uma planilha eletrnica; para design grfico, editores grficos; ou seja, para cada atividade haver uma ou mais ferramentas disponveis. O objetivo desta unidade compreender o mecanismo de instalao/remoo (gerenciamento) de aplicativos (ou programas) em um sistema operacional Unix-like. Todos as explicaes e exerccios sero feitos focando o modo terminal de operao. Evidentemente, as mesmas atividades podem ser executadas no modo grfico, no entanto, no raramente nos deparamos com situaes em que no temos ambiente grfico a disposio para trabalho ou recuperao de algum sistema.

Em sistemas GNU/Linux nos referenciamos aos programas disponveis para instalao pelo termo pacote. Este termo utilizado porque um programa, qualquer que seja, composto por mais de um arquivo um programa acaba sendo um pacote de arquivos executveis, de configurao, de manual, de documentao, de fontes e outros mais.

O que um pacote

Cada distribuio GNU/Linux tem um conjunto pr aprovado de pacotes para instalao, que iro acompanhar a verso da distribuio. Por exemplo, a distro Debian 6 (de codinome Squeeze) que instalamos em mquina virtual ainda unidade B, tem um monto de pacotes disponveis. Veja a citao abaixo retirada do site da distribuio:
O Debian GNU/Linux mais que um simples SO: ele vem com mais de 29000 pacotes contendo softwares pr-compilados e distribudos em um bom formato, que torna fcil a instalao deles na sua mquina. [Debian, 2011, www.debian.org]

Como podemos ver, temos vrios pacotes disponveis para uso obviamente, estes pacotes so distribudos entre as mais diversas funes. A distro Debian conhecida por ter um grande conjunto de pacotes prontos para instalao, porm outras distros tambm fornecem seus pacotes pr compilados. Podemos ainda instalar programas no empacotados, direto de algum fornecedor de programas ou programas feitos por ns mesmos, bastando para isto termos os binrios ou o cdigo fonte (aqui cada caso um caso).

53

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

O dpkg um programa para gerenciamento de pacotes em linha de comando (modo texto), sempre executado pelo administrador do sistema. Sua sintaxe bastante simples:

DPKG

Instalar # dpk -i <nome-do-pacote.deb> Remover # dpkg -e <nome-do-pacote.deb> outras opes # dpkg -h

A principal desvantagem do dpkg a no resoluo de dependncias, ou seja, se para instalar um pacote X, temos uma dependncia do pacote Y a instalao ir falhar. Ento precisamos instalar baixar e instalar primeiro Y (resolver a dependncia) depois instalar X. Alm disso, outra desvantagem que o pacote instalado precisa ser previamente baixado. Ainda nesta unidade veremos meios mais eficientes de gerenciamento de pacotes. Guia Foca GNU/Linux, Captulo 20 - Sistema de gerenciamento de pacotes, disponvel em:
<http://www.guiafoca.org/cgs/guia/inic_interm/ch-dpkg.html#s-dpkg-pacotes>

Saiba mais:

Vamos fazer a instalao do programa JOE, que um pequeno editor de textos em modo texto e que pode ser obtido em em um repositrio Debian e no tem nenhuma dependncia a ser resolvida. O programa joe pode ser obtido no link ftp://ftp.br.debian.org/debian/pool/main/j/joe/joe_3.7-2_i386.deb.

Instalando um pacote com o DPKG

Aps baixado o pacote ficar guardado no diretrio Downloads1 do usurio logado.


Abrir um terminal e logar como root2 ; Executar o comando de instalao
# dpkg -i joe_3.7-2_i386.deb

Testar

abrir o programa digitando joe no terminal ajuda com CTRL+K + H sair sem salvar com CTRL+C sair salvando CTRL+K+X

Vamos remover o programa joe para fins de exerccio caso voc tenha gostado do editor e queria uslo, basta fazer a reinstalao.

Removendo um pacote

A partir de qualquer diretrio; Acesso de administrador; Executar o comando de remoo


# dpkg -r joe

Testar tentar abrir o programa joe vermos que o mesmo no est mais disponvel. 1. Esta uma caracterstica do Debian 6.0 verses anteriores no usam este diretrio padro. 2. Obter acesso de root com o comando $ su - root

54

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Obter pacotes e resolver dependncias manualmente no uma prtica muito simples e muito pouco praticada pelos administradores de sistemas Unix-Like. J faz algum tempo, sistemas baseados em GNU/ Linux oferecem um mecanismo mais avanado e bastante eficiente de instalao de pacotes baseado em repositrios.

apt-get

Repositrios, tambm chamados de espelhos de rede online, so servidores que ficam disponveis na internet em tempo integral, distribuindo pacotes. Para fazermos uso destes repositrios basta configurar nosso computador (que se comporta como um cliente) para buscar pacotes no endereo definido.

A configurao de repositrios em nossa mquina instalada com sistema operacional Linux feita no arquivo /etc/apt/sources.list como o prprio nome sugere, onde informamos quais so as nossas fontes de pacotes para o programa apt-get. Para editar o arquivo precisamos de acesso root e um editor de textos qualquer vamos zerar o arquivo e incluir nossas prprias configuraes.

Configurando o repositrio

# gedit /etc/apt/sources.list

deb http://ftp.br.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free

Em cada linha, temos diversas informaes, a saber:

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

deb no incio de cada linha, informa que o repositrio do formato debian; http://ftp.br.debian.org/debian indica o servidor que estamos usando. Existem vrios no mundo para cada distribuio. A distro Debian mantem uma lista dos principais espelhos de rede em: http://mirror.debian.org/ status.html lenny (codinome da verso Debian temos diversas verses online) sarge debian 4.0 lenny debian 5.0 squeeze debian 6.0 stable (ir identificar sempre a ultima distribuio estvel no caso a squeeze) main identifica a sesso de pacotes principais da distribuio contrib identifica a sesso de pacotes que so contribuio da comunidade os principais pacotes (mais frequentemente utilizados) no esto nesta sesso, desta forma, poderamos omiti-la. non-free identifica a sesso de pacotes no livres disponveis idem a sesso contrib.

Dois outros servidores esto sendo configurados neste arquivo.

Servidor security distribui atualizaes de segurana servidor volatile distribui arquivos temporrios como por exemplo antivirus database.

55

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

O gerenciador de pacotes apt-get trabalha com um banco de informaes locais sobre os pacotes disponveis e instalados. Sempre que uma modificao feita no sources.list precisamos, OBRIGATRIAMENTE, atualizar este banco de dados local. O comando de atualizao :

Atualizando o o apt-get

Este comando faz com que nosso computador conecte ao servidor configurado (no caso ftp.br.debian. org) e baixe a lista de pacotes mais atualizada assim, o nosso computador fica atualizado, sabendo quais pacotes:
esto disponveis para instalao; j esto instalados e esto aptos para atualizao;

# apt-get update

Como dispomos de informaes atualizadas sobre nosso pacotes, podemos fazer atualizaes regulares em nosso sistema operacional esta prtica altamente recomendada e vai garantir a estabilidade e a confiabilidade do sistema instalado. Para fazer a atualizao, utiliza-se o comando:
# apt-get upgrade3

Para fazer instalaes de pacotes com o apt-get, precisamos saber apenas o nome do pacote e a sintaxe da instalao. A sintaxe ser sempre:

Consultado e instalando com o apt-get

Para o caso do programa joe testado anteriormente pelo mtodo dpkg:


# apt-get install joe

# apt-get install <nome do pacote>

Normalmente a maior dificuldade dos administradores de sistemas saber qual o nome correto do pacte a ser instalado. Para resolver este problema, o sistema apt-get oferece um mecanismo de busca por palavra aproximada poderamos ento procurar por programas editores de texto similares ao joe. A diretiva de consulta o search Em nosso exemplo
# apt-cache search <palavra ou parte da palavra a ser pesquisada>

# apt-cache search joe

Invariavelmente, podemos precisar remover pacotes o apt-get faz a remoo tambm.

Removendo pacotes com apt-get


# apt-get remove <nome do pacote>

- que remove apenas os binrios ou os executveis.

3. ATENO: O procedimento de atualizao demorado porque muitos pacotes sero atualizados. Certifique-se de ter disponvel uma conexo de banda larga.

56

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

ou ainda

Unidade D

- que remove os binrios e os arquivos de configurao.


# apt-get purge <nome do pacote>

O aptitude tambm um programa de gerenciamento de pacotes, serve como alternativa ao apt-get. Ambos funcionam de forma bastante semelhante mas o aptitude mais eficiente ???

Aptitude

Para o aptitude, o conceito de repositrio e de pacotes o mesmo que para o apt-get ou dpkg.

Sintaxe de uso
pesquisa:

# aptitude search <nome-do-pacote>

instalao:
# aptitude install<nome-do-pacote>

remoo:
# aptitude remove <nome-do-pacote> # aptitude remove --purge <nome-do-pacote>

O aptitude apresenta um formato de utilizao diferenciado, que permite uma certa navegao na rvore de pacotes disponveis/instalados/atualizveis. Uma captura de tela do programa pode ser visto na figura D.1. Nesta instalao, temos 1295 pacotes instalados; 2834 no instalados; no caso no h pacotes para serem atualizados.

Modo GUI

57

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Os gerenciadores de pacotes tambm podem ser utilizados em ambiente grfico, o que torna o uso bastante intuitivo. O programa utilizado ir depender do ambiente grfico que voc estar utilizando. No caso do gnome, o gerenciador o synaptic, que pode ser visto na figura D.2.

Gerenciadores em modo grfico

Neste caso, temos a facilidade do uso do mouse que, via de regra, est presente somente em computadores Desktop ou Workstations.

58

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Sntese
Os sistemas operacionais Unix-Like possuem variados mecanismos de gerenciamento de pacotes, que buscam facilitar a atividade de administrao do sistema; pacote o nome usado para referencias os programas disponveis para instalao; um pacote contem todas os arquivos necessrios ao funcionamento de determinado programa, como binrios, arquivos de configurao, bibliotecas, pginas de manual e outros. a distribuio Debian, na verso 6.0, oferece 29000 pacotes que so distribudos em um formato de fcil utilizao. So vrios os mecanismos de gerenciamento de pacotes disponveis na distribuio Debian: dpkg requer que o pacote esteja baixado no diretrio corrente; requer que as dependncias estejam previamente resolvidas; apt-get requer que repositrios estejam previamente configurados ; requer conexo com internet (para repositrios online) ; instala os pacotes solicitados e resolve suas dependncias automaticamente; aptitude o sucessor do apt-get; mais fcil de utilizar; possui uma interface GUI; gerenciadores grficos para computadores desktop, temos a possibilidade de uso de um gerenciador grfico - por exemplo o synaptic para o ambiente gnome.

Atividades
1. Pesquisar, instalar, testar e remover os seguintes pacotes:
a) b) c) d) e) f) g) iptraf iperf joe abiword dia vim-gnome bluefish (baixar e instalar)

Observao o objetivo aqui praticar o uso dos gerenciadores de pacotes, logo recomendado exercitar com todos os gerenciadores estudados (apt-get, aptitude, synaptic e dpkg);

59

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

UNIDADE

2. INTEROPERABILIDADE E ANTIVRUS

Conforme verificado na unidade anterior, o objetivo fim de um sistema informatizado a produo; auxiliar no trabalho executado pelas pessoas; viabilizar e agilizar processos, pesquisas, rotinas, etc. Em outras palavras, o computador precisa ser til e esta utilidade est fortemente ligada ao quesito interoperabilidade de sistemas. Entende-se por interoperabilidade a funcionalidade que um sistema tem de trabalhar em conjunto com outros sistemas, buscando melhorar a produtividade e a eficincia do conjunto.

Introduo

Nesta unidade trabalhamos com a instalao, a configurao e a utilizao de programas especficos para prover um pouco mais de produtividade. Significa instalar, configurar e fazer uso de programas (pacotes) que permitam a utilizao desta mquina por outras mquias ou pessoas ou seja, que tornem a mquina produtiva de alguma forma. Isto normalmente est associado a configurao de servidores de rede tipo intranet, por exemplo: instalar e configurar um servidor de arquivos local.

Interoperabilidade

Existem uma infinidade de servios que fazem/provm interoperabilidade. No pretendemos (e nem conseguiramos) esgotar todos os servios com seus detalhes em uma unidade (precisaramos de muitas unidades para isto). Desta forma estudaremos a instalao, configurao e utilizao de dois servios fundamentais que so: servidor de arquivos com autenticao e servidor de pginas intranet. Em uma rede local, comum precisarmos de um servidor de arquivos, que faz o armazenamento/ distribuio de arquivos de forma centralizada. Melhorando, desta forma a produtividade dos usurios; facilitando a mobilidade e at mesmo o gerenciamento de segurana como backup e antivrus. Na figura D.3 podemos visualizar um diagrama de LAN com um servidor de arquivos central.

Servidor de arquivos

60

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

SAMBA acrnimo para SMB1 , um programa de rede que interliga sistemas GNU/Linux com computadores Windows2. O servio conta com diversas funcionalidades, das quais destacamos: compartilhamento de pastas/arquivos e impressoras; autenticao de usurios e mquinas Windows em uma LAN. O servio instalado em um computador (servidor) GNU/Linux, que ir servir toda nossa rede interna.

Servidor SAMBA

A instalao bastante simples, basta termos acesso a internet e os repositrios devidamente configurados conforme visto na unidade anterior. O comando de instalao :

Instalao:

# aptitude install samba

Verifique que o aptitude ir instalar automaticamente todas as dependncias do samba que so: samba-common e samba-common-bin. O instalador solicita que seja informado o nome do grupo de trabalho neste caso, a configurao default poder ser mantida porque o samba ser configurado manualmente posteriormente.

A configurao do samba feita no arquivo smb.conf que fica SEMPRE na pasta /etc/samba. O smb. conf um arquivo texto e pode ser modificado com qualquer editor de texto simples (poderamos, por exemplo, usar o JOE).

Configurao:

Ao abrir o arquivo verificamos que ele no est vazio, mas tem diversas diretivas3 de exemplo. Poderamos simplesmente fazer algumas modificaes neste arquivo fazer uso do sistema, mas nosso objetivo aqui fazer uma configurao totalmente nova.
# Sample configuration file for the Samba suite for Debian GNU/Linux. # #

# gedit /etc/samba/smb.conf

1. Protocolo utilizado na comunicao de rede entre sistemas operacionais Windows. 2. Windows marca registrada da Microsoft Corporation. 3. Diretiva nome dado a cada item de configurao dentro do smb.conf
# This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options most of which # are not shown in this example

61

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Configurao mnima:
# configurao mnima de teste [globals] Netbios name = servidor Workgroup = intranet security = share [publico] path = /var/samba/publico writable = yes comment = Pasta pblica browseable = yes guest ok = yes

Como j registrado na unidade anterior, qualquer diretiva com o simbolo # no incio um comentrio (ou explicao) a linha ser desconsiderada pelo sistema. O arquivo de configurao mnimo tem duas sesses principais, que so:

[globals] a sesso que define as configuraes globais de todo o sistema, ou seja, que serviro para todas as outras sesses. Diversas diretivas configuram a sesso globals, das quais destacamos as seguintes:
Netbios Name configura o nome do servidor na rede, ou seja, o nome pelo qual nosso servidor ser identificado por TODOS os clientes da rede em questo; Workgroup configura o grupo de trabalho em que servidor e clientes devem estar. Aqui salientamos que todos devem estar no mesmo grupo de trabalho, caso contrrio, os servios de rede podero no funcionar adequadamente.

Configurao da rede no Windows, disponvel em:

Saiba mais:

<http://www.hardware.com.br/tutoriais/configurando-rede-Windows/>

[publico] a sesso que define um compartilhamento (que ser identificado na rede como publico. Observa-se que este compartilhamento no possui nenhuma restrio de acesso.
Path esta diretiva indica qual diretrio (pasta) do sistema est sendo compartilhada. Obviamente, este diretrio precisa existir e respeitar as regras e permisses de acesso que sero determinadas pelo sistema. Neste caso, a pasta publica, ento as permisses sero RWX para todos os usurios. Writeable esta diretiva indica que este compartilhamento permite escrita. Poderamos ter compartilhamentos de distribuio de arquivos sem necessidade de escrita. Comment indica um comentrio para o compartilhamento; Browseable indica que o compartilhamento navegvel, ou seja, seus arquivos podem ser vistos na rede. Novamente h compartilhamentos em que no queremos que os arquivos sejam vistos. Guest ok indica que a pasta aceita visitantes, ou seja, usurios sem autenticao no sistema.

Para testar, necessrio ter pelo menos um cliente Windows configurado no mesmo grupo de trabalho do servidor (no caso intranet). Para fazer uso do compartilhamento, basta abrir o cone Meus Locais de Rede o compartilhamento dever estar disponvel com na figura D.4. neste caso, bastar copiar arquivos e pastas para o compartilhamento selecionado. Vale salientar que o mesmo publico e no oferece nenhuma proteo aos dados ali armazenados.

Testando

62

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

A configurao acima oferece uma funcionamento minimalista. Nas prximas configuraes, vamos explorar alguns aspectos do servidor samba. Neste exemplo, precisaremos ter um cenrio configurado, com usurios e grupos previamente definidos no sistema operacional. O diagrama de blocos abaixo representa este cenrio.

Aprimorando os compartilhamentos

Basicamente, temos precisaremos criar dois grupos, sendo um chamado chefia, que contm os usurios chefe1 e chefe2; e outro grupo chamado trabalho, que ir conter os usurios trab1, trab2 e trab3. Estes usurios podem (e recomendado) ter seu acesso ao Linux bloqueado, ou seja, no precisaro logar no servidor para bloquear o usurio utiliza-se o comando:
# passwd -l <usuario>

# configurao mnima de teste [globals] Netbios name = servidor Workgroup = intranet security = user [publico] path = /var/samba/publico writable = yes comment = Pasta pblica browseable = yes guest ok = yes

63

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

[chefia] path = /var/samba/chefia comment = Pasta da chefia valid users = chefe1, chefe2 writeable = yes browseable = yes [trabalho] path = /var/samba/trabalho comment = Pasta dos funcionrios valid users = +trabalho, chefe1, chefe2 writeable = yes browseable = yes

Nesta configurao, temos 3 compartilhamentos e acesso restrito por usurios, descritos abaixo. [globals]
a diretiva de configurao global para todo o sistema; security user habilita a restrio de acesso por usurio;

[publico] [chefia]

compartilhamento pblico a todos os usurios no tem nenhuma mudana em relao ao pblico da configurao minima. compartilhamento da pasta /var/samba/chefia para simplificar o funcionamento, utilizamos compartilhamento total na pasta, ou seja a+rwx para chefia. valid users = chefe1, chefe2 permite que somente os usurios chefe1 e chefe2 tenham acesso ao compartilhamento; no h a diretiva guest ok = yes compartilhamento da pasta /var/samba/trabalho para simplificar o funcionamento, utilizamos compartilhamento total na pasta, ou seja a+rwx para trabalho. Valid users = +trab, chefe1, chefe2 permite acesso de todos os usurios do grupo trab (+trab) e dos usurios chefe1 e chefe2. no h a diretiva guest ok = yes

[trabalho]

Para que os usurios tenham acesso aos compartilhamentos, necessrio incluir os mesmos no samba. Isto feito com o comando: smbpasswd -a <usurio>; o comando ir solicitar uma nova senha para o usurio esta ser a senha pela qual o usurio ir se autenticar no compartilhamento desejado. Para excluir um usurio #passwd -x <usurio>

Habilitando os usurios no samba

# smbpasswd -a chefe1 # smbpasswd -a trab2

O procedimento de teste ser o mesmo feito na etapa anterior. S que neste momento, ao acessar o compartilhamento, ser necessrio informar a senha de autenticao; o samba por sua vez ir dar as permisses conforme definido na configurao do sistema. Para que o Windows esquea a senha, necessrio fazer logoff.

Testando

64

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

O uso de antivrus no obrigatrio em sistemas GNU/Linux, mas como este sistema que estamos configurando um servidor de arquivos que atender toda uma rede interna o uso da ferramenta passa a ser fortemente recomendado. Outra situao em que o antivrus fortemente recomendado no uso de servidores de e-mail (que no o nosso foco).

Antivrus

Hoje existem diversas solues para antivrus em servidores SAMBA com Linux, das quais sugerimos o Clamav.

Clamav

Para instalar o antivrus:


# aptitude install clamav clamav-daemon clamav-freshclam

Aps a instalao, necessrio atualizar o banco de dados da ferramenta:

Atualizando

# freshclam

Feito a instalao, basta rodar o antivrus na pasta do servidor de arquivos.

Procurando por arquivos infectados


# clamscan -r /var/samba

Fazendo uso do crontab, podemos automatizar a execuo da atualizao e do escaneamento. No exemplo abaixo est sendo agendado uma atualizao (freshclam) para as 4h todos os dias do ms, todos os meses e todos os dias da semana e tambm um escaneamento para as 4h30min todos os dias do ms, todos os meses e todos os dias da semana.

Automatizando

# crontab -e

0 4 * * * freshclam

30 4 * * * clamscan -r

/var/samba

Agendador de tarefas CRON, disponvel em:

Saiba mais:

<http://www.guiafoca.org/cgs/guia/inic_interm/ch-manut.html#s-manut-cron>

O servidor de pginas intranet um servio de hospedagem WEB, dentro de um ambiente LAN. Este servio que viabiliza a interoperabilidade, oferecendo diversos recursos WEB baseados, por exemplo, em PHP e banco de dados.

Servidor de pginas intranet

65

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

O programa utilizado para este tipo de servio o servidor Apache que um dos software livres mais antigos e conhecidos, j que representa , alm claro, de ser um dos mais robustos e funcionais. Neste material, estudaremos apenas algumas funcionalidades essenciais para disponibilizao de uma intranet. Vale salientar que no ser abordado a programao e apenas o servio de hospedagem, integrando com o PHP e um banco de dados como o MysSql.

Servidor APACHE

O pacote responsvel pelo servio o apache2; ao fazer a instalao, diversos dependncias sero automaticamente resolvidas. O comando de instalao :

Instalao do servidor:

# aptitude install apache2

Testando

Por default, o apache traz um site de testes, que responde no endereo IP do servidor. Para testar basta digitar o endereo IP no browerde sua preferncia (desde que esteja instalado em seu computador). A resposta sera It Works, conforme pode ser verificado na figura D.5.

Todos os prximos testes sero feitos da mesma forma. Vale salientar que o endereo IP ser particular de seu computador. O comando de verificao do endereo IP ifconfig, conforme figura D.6, na captura abaixo, podemos ver a interface eth0 com inet end. 172.16.212.134.

66

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

O apache tem uma estrutura particular de funcionamento, sendo dividido em rea de configurao, onde so armazenados todos os arquivos de configurao e rea de contedo, onde so armazenados os contedos dos sites.

Estrutura de configurao

Especificamente no caso do apache, apenas o usurio root tem permisso de modificao em ambas as reas.

Criando um novo site chamado intranet

# nano /etc/apache2/sites-available/intranet

Na configurao apresentada, um site simples est sendo configurado. Todas as configuraes so feitas entre as diretivas <VirtualHost> e </VirtualHost> que delimitam a configurao do site.
<Virtualhost 172.26.212.134:80> ServerName intranet Documentroot /var/www/intranet </Virtualhost> Cada site, criado um VirtualHost; DocumentRoot /var/www/intranet esta diretiva informa o local onde est o CONTEDO do site configurado; ServerName intranet informa o nome do site que est sendo configurado

<Virtualhost 172.26.212.134:80> ServerName intranet Documentroot /var/www/intranet </Virtualhost>

O site precisa ser alimentado com um contedo. No caso, iremos simplesmente criar um arquivo index. html com o contedo abaixo descrito, que apenas mostra a menagem Intranet me construo. Isto pode ser feito com qualquer editor de textos, com por exemplo o JOE

Ativando o site criado

O site criado no entra em atividade imediatamente, o administrador do sistema precisa declarar explicitamente que um determinado site entrar (ou sair) de atividade. Isto feito com o par de comandos a2ensite, para ativar e a2dissite para desativar. No nosso caso, iremos ativar o site da seguinte forma: Caso alguma modificao seja feita no arquivo de configurao do site, ento ser necessrio desabilitar e reabilitar o site. O comando para desabilitar : #a2dissite intranet Aps a ativao o apache precisar ser recarregado, isto feito com o comando:
# /etc/init.d/apache2 reload # a2ensiste intranet

<html> <body> <h1> Intranet em construo </h1> </body> </html>

67

Fomento ao Uso das Tecnologias da Informao e Comunicao

A partir deste momento a pgina j estar funcionado mesmo que com um contedo experimental, que poder ser visualizado pelo browser. Figura D.7 mostra a captura de tela da pgina web de nossa Intranet.

Sistemas Operacionais

O apache oferece uma gama de opes que podem ser utilizadas aprimorando o site da intranet suporte a PHP e banco de dados por exemplo, suporte a HTTPS ou autenticao.

Aprimorando

Ativando o suporte a PHP e Mysql

Na instalao acima todos os pacotes esto sendo informados em uma nica linha (ou comando), mas poderiam ser informados separadamente. Para testar, criamos um teste.php com a funo phpinfo(); apenas para obter informaes do servidor. O resultado pode ser verificado na figura D.8, onde est sendo mostrado o suporte mysql habilitado.

# aptitude install libapache2-mod-php mysql-server php-mysql

68

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

SSL uma camada de proteo que adicionada ao HTTP, formando o HTTPS, largamente utilizado por bancos e sistema de e-comerce. Para ativarmos o SSL, de forma bastante simples, faremos uso de um certificado auto assinado, gerado conforme o comando abaixo:

Ativando o SSL

Este comando pede diversas informaes demogrficas, para identificao do certificado. Entendendo o mercado de certificados SSL, disponvel em:
<http://www.hardware.com.br/dicas/mercado-ssl.html/>

# openssl req $@ -new -x509 -out /etc/apache2/certificado.pem -nodes -keyout / etc/apache2/certificado.pem

Saiba mais:

<Virtualhost 172.16.212.134:80> ServerName intranet.lan Documentroot /var/www/intranet </Virtualhost> <Virtualhost 172.16.212.134:443> DocumentRoot /var/www/intranet SSLEngine ON SSLCertificateFile /etc/apache2/certificado.pem </Virtualhost> A configurao: a configurao da parte HTTP no sofre modificao; inclumos um novo virtualhost, que abre a porta 443; informamos novamente a pasta de contedo do site desta vez da parte que queremos proteger por ssl; liga-se o motor de ssl em SSLEngine ON; informa-se a localizao e o certificado que foi criado na etapa do certificado auto assinado.

Como o site sofreu modificaes, preciso reativ-lo e reiniciar o apache;


# a2dissite intranet # a2ensiste intranet # /etc/init.d apache2 reload

Para testar, abrimos um brower e apontamos para o endereo de nosso site: HTTP://172.16.212.134 no primeiro acesso, por motivos de segurana, o browser ir avisar que o certificado no confivel (lembre-se que nosso certificado do tipo auto assinado). Foramos a aceitao de uma exceo e prosseguimos no site.

Testando

Cada browser tem sua forma de aceitar excees; no iceweasel precisamos abrir a a opo entendendo os riscos e clicar no boto Adicionar Exceo e aps confirmar a exceo de segurana, conforme pode ser visto na Figura D.9.

69

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

A figura D.10 mostra o site seguro sendo acessado. Sabemos que est sob HTTPS porque o browser mostra um pequeno cadeado na barra de status, alm de informar isto ao lado do endereo do site na barra de endereos.

Neste material, mostramos duas ferramentas que viabilizam a interoperabilidade, sendo que ambas oferecem opes de funcionamento/configurao bem mais avanadas. No entanto, cada configurao ir depender diretamente da aplicao, do ambiente e da equipe envolvida com o servidor. Alm disso, no caso do Apache + PHP + Mysql, necessrio que um site (portal ou aplicao) tenha sido desenvolvido para ser hospedado no nosso servidor. A funcionalidade estar no site desenvolvido e no no programa servidor.

Aplicaes

70

Unidade D
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Sntese
existem diversas ferramentas que viabilizam a interoperabilidade entre sistemas operacionais; o principal objetivo da interoperabilidade melhorar a produtividade de um ambiente de trabalho; SAMBA oferece um servio de servidor de arquivos em uma rede de cliente Windows: Instalar o samba com aptitude install samba APACHE oferece um servio de servidor HTTP e HTTPS

Atividades
1. Criar um compartilhamento SAMBA para o usurio aluno 2. Criar uma rea do site protegida por usurio/senha, utilizando um dos mtodos de autenticao do apache.

71

Multiprogramao

Unidade E

Sistemas Operacionais

Unidade E
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

MULTIPROGRAMAO

Qualquer computador pessoal trabalha com diversos programas em execuo simultnea, ou seja, independentemente de sistema operacional que usamos, podemos abrir um editor de texto, ouvir msica, ler e-mails, jogar e outras coisas. Temos a ntida sensao que o computador est executando tudo ao mesmo tempo.

Introduo

Esta capacidade multitarefa do computador o objeto de estudo desta unidade. Vamos estudar o que um processo, seu ciclo de vida e o tratamento dado pelo computador (hardware + sistema operacional) a este.

Monoprogramao vs Multiprogramao
Tambm so conhecidos como monotarefa, so os sistemas capazes de executar apenas um processo por vez, ou seja, nunca poderemos ouvir msica enquanto digitamos um texto; basicamente, teremos que fazer uma atividade por vez. Isto uma caracterstica que certamente no desejaramos em nossos computadores. Os sistemas monoprogramados so encontrados nos primrdios da histria dos sistemas operacionais e o exemplo clssico o DOS (PC-DOS de 1981).

Sistemas monoprogramado

Na figura E.1 verificamos a memria ocupada por apenas um programa. Verifica-se que o a memria desperdiada porque no toda utilizada.

Tambm so conhecidos como multitarefa, so os sistemas capazes de suportar diversos processos em execuo (ouvir msica enquanto digitamos um texto). Sistemas so caracterizados por:

Sistemas multiprogramado

Um sistema multiprogramado divide o tempo da CPU entre os diversos processos que esto sendo executados;

timesharing

75

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Esta caracterstica de diviso de tempo causa no usurio uma sensao de que tudo est acontecendo em paralelo (simultaneamente), ou seja, temos a ntida impresso que o processador est executando ao mesmo tempo os processos do editor de texto e do player, enquanto que na verdade est havendo uma diviso do seu tempo da o termo falso paralelo. Cada um dos processos ganha uma fatia de tempo do processador.

pesudoparalelismo

Na figura E.2, verificamos que a memria fica dividia entre vrios processos. Observa-se um melhor aproveitamento do espao de memria, mas h um aumento na complexidade do gerenciamento da memria. Cabe ao sistema regular esta diviso de tempo e nos captulos subsequentes vamos verificar como possvel (ou como feita) esta multiprogramao.

O Windows NT o primeiro sistema operacional da Microsoft com capacidade de multiprogramao as verses Windows 95 e Windows 98 fazem uma emulao de multiprogramao.

Antes de mais nada preciso compreender o significado de processo sua relao com o programa. Sempre que criamos algum programa, escrevemos seu cdigo em um editor de programas (tambm conhecido como IDE), este cdigo fonte passa ento por um processo de compilao que gera um arquivo executvel.

Processo vs Programa

Este executvel um PROGRAMA, ou seja, um arquivo com um conjunto de instrues passveis de execuo pelo meu sistema informatizado1. Este arquivo fica armazenado no disco rgido pronto para ser executado aguardando a ordem do usurio para entrar em execuo. Um PROGRAMA um arquivo executvel, esttico, passivo, contem um conjunto de instrues (em cdigo de mquina) pronto para ser executado pelo sistema.

1. Neste contexto, sistema representa o par Hardware + Sistema Operacional.

76

Unidade E
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Ao entrar em execuo, o programa carregado para a memria e neste momento passa a ser considerado um processo. Enquanto o processo existir (estiver carregado na memria) ir passar por diversos estados e transformaes, sendo em algum momento encerrado (deixa de existir). O processo normalmente composto por uma cpia do cdigo de mquina, chamado rea de programa; e uma parte para variveis, chamado rea de dados. Um PROCESSO um programa em execuo, caracterizado por:
Ser dinmico e ativo; Poder criar outros processos; Poder executar chamadas de sistema. criado e encerrado ou morto;

Ciclo de vida do processo


Todo processo precisa ser criado; a criao o momento em que o sistema operacional carrega ou instancia o programa na memria principal. A partir deste momento o processo ir trabalhar por algum tempo e ir encerrar. Os processos so criados em diversas situaes, por exemplo:

Criao

ao ligar o computador neste momento o sistema operacional cria uma grande quantidade de processos (do prprio sistema operacional) e de programas de usurios como por exemplo a shell ou o ambiente grfico, ou ainda alguma backdoor que esteja infectando o sistema operacional. Quando o usurio solicita momento em que o usurio abre um programa qualquer. Isto pode criar um ou mais processos na memria; Quando um processo cria outro processo processos podem criar outros processos, situao muito comum para delegar tarefas.

Todo processo precisa ser encerrado em algum momento; isto pode acontecer naturalmente, quando o processo encerrado por si prprio (fechamento do programa) ou de forma forada, quando o sistema operacional (ou o administrador do sistema) matar algum processo. Os processos so encerrados em diversas situaes, por exemplo:

Encerramento

77

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Encerramento do programa usurio parou de utilizar o editor de textos ento encerra o programa; Processo foi morto o sistema operacional pode estar precisando de memria e para isto faz uma limpeza, matando os processos fora de uso; ou o administrador do sistema entendeu que precisava matar algum processo; Desligamento/reinicializao do computador - neste momento todos os processos devem ser encerrados; se algum processo no quiser se encerrar naturalmente, o sistema operacional faz o servio.

Os processos em execuo podem ou no ter algum tipo de relacionamento entre si isto varia conforme a origem (fabricante) do sistema operacional. Sistemas operacionais Unix-Like2 utilizam o conceito de grupo de processos onde h uma hierarquia e passagem de herana explicita entre processos, ou seja, um processo (pai) ir criar outro (filho) e assim sucessivamente.

Relacionamento inter processos

Todo processo filho herda algumas caractersticas de seu pais (permisses de acesso por exemplo). Desta forma, temos uma estrutura em rvore, conforme figura E.4.

Em nossa mquina virtual instalada, podemos ver a rvore de processos usando o programa pstree3 , que deve ser utilizado em conjunto como less para facilitar a visualizao (para sair da visualizao, usar q). Como visto na figura E.5, o resultado do comando ser uma rvore, mostrando os processos e seus filhos, claro na forma de uma rvore.
$ pstree | less.

Os o processos B e C so filhos de A; os processos D, E e F so filhos de B; C no tem filhos; Se processo B encerrar, processos D, E e F tambm sero encerrados; Se processo A encerrar, todos os outros processos sero encerrados tambm; As permisses de A so herdadas por seus filhos.

2. Sistemas operacionais originrios ou inspirados do Unix. 3. Este programa fornecido pelo pacote psmisc.

78

Unidade E
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

De forma geral, durante sua existncia, o processo podem assumir 3 estados bsicos que so:

Estados do processo

Neste estado o processo est no processador, sendo processado. Cada processador trabalha com apenas um processo por vez4 . O tempo que o processo ocupa o processador ir depender do tipo do escalonador do sistema operacional visto na prxima unidade.

Em execuo:

Neste estado, o processo est pronto, aguardando sua vez de ser executado. H uma fila de espera que est sujeita a regras especficas, tambm do escalonador, estudadas na prxima unidade. Um sistema operacional pode inclusive ter mais que uma fila de prontos na espera pelo processador.

Pronto:

Este um estado em que o processo fez uma requisio de I/O, atravs de uma chamada de sistema, e est aguardando o resultado (a resposta) deste. Procedimentos de I/O so muito lentos quando comparados com a velocidade do processamento puro; ento o processo pode entrar em um estado especial enquanto aguarda a resposta do dispositivo de I/O. Neste estado, no deve haver consumo de processador, sobrando recurso para outros processos.

Bloqueado:

Durante a existncia dos processos, eles transitam entre os estados Pronto, Execuo e Bloqueado. As transies possveis so (acompanhar pela figura E.6) :

Transio entre os estados do processo

Pronto para execuo: quando um processo da fila de prontos destacado e ganha o processador.

Execuo para pronto: quando o processo que est executando perde o processador e volta para a fila de prontos. Esta perda se d por motivos gerenciados pelo escalonador.

4. CPUs multicore tero um processo por ncleo.

79

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Execuo para bloqueado: quando o processo que est executando faz uma solicitao de I/O, perde o processador (compulsoriamente) e vai para a lista de processos aguardando resultado de sua solicitao; Bloqueado para pronto: quando a solicitao de I/O finaliza (a resposta do dispositivo entregue ao processo) o processo volta para a fila de prontos. Neste retorno o processo se submete as regras impostas pelo gerenciador desta fila.

O processador tem dois modos de operao, que so:

Modos do processador

Tambm chamado de modo protegido. o modo em que o processador est habilitado exclusivamente na execuo de processos de usurios, ou seja, os programas dos usurios como editor de textos, compilador, browser e todos os outros. Tudo que for executado neste modo protegido contra acesso de outro processo e impedido de acessar reas protegidas de outros processos e do prprio sistema operacional. Diversas restries so implementadas para proteger o conjunto. Basicamente operaes que no interessam ao usurio.

Modo Usurio

No modo supervisor, o processador est atendendo interrupes de hardware. Neste modo no h restries impostas e o processador executa as funes protegidas. As operaes que podem ser exemplo neste caso so:

Modo Supervisor

reset de hardware; formatao de disco; execuo de daemons de rede;

Interrupes, tambm conhecidas IRQ (Interrupt Request) por so sinais de hardware enviados ao processador por algum dispositivo, chamando a ateno deste para alguma ao especfica. Sempre que algum device precisar de algo do processador ir disparar um pedido de interrupo.

Interrupes

A interrupo lembra uma chamada de telefone em uma residncia, onde uma pessoa est executando uma tarefa comum, lendo um livro por exemplo. Neste momento o telefone toca, gerando uma interrupo, neste caso a pessoa ter de parar sua atividade e atender o telefone, ou seja, tratar a requisio de interrupo. Exemplificando em um computador real, se uma placa de rede recebe algum pacote na sua entrada, este fluxo de dados que entra, precisar de algum tratamento ento a placa de rede gera um pedido de

80

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

interrupo ao processador. Quando o processador atender a requisio, ir dar o tratamento necessrio aos dados.

Unidade E

A transio entre os estados dos processos, PRONTO EXECUO, EXECUO BLOQUEADO e EXECUO PRONTO, controlada por um dispositivo chamado RTC (Real Time Clock); um relgio que gera um sinal de interrupo em intervalos regulares. Ou seja, o processador sabe que hora de trocar de processo em execuo quando o RTC avisa. Threads, tambm conhecidos como processos leves, porque dividem o fluxo de um processo em vrios fluxos menores (e mais rpidos em termos de processamento). O processo transformado em threads chamado multi-thread. Atualmente, a utilizao de programao baseada em threads para processos pesados considerado uma boa prtica.

Threads

A figura E.7 mostra uma comparao de um processo em relao a threads.

Uma programao bem interessante a criao de processos, que pode ser facilmente desenvolvida na linguagem C em sistemas unix-like.

Criando processos
#include <stdio.h>

#include <sys/types.h> #include <unistd.h>

int main(int argc,char *argv[]){ pid_t fork1; int pid_filho,pid_pai,status,i;

printf(PAI: Meu pid : %d no tenho filhos - execute $ps -ef para ver meu PID\n,(int)getpid()); printf(PAI: - tecle ENTER para continuar\n);

81

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

getchar();

fork1 = fork(); if(fork1 == -1){ perror(Falha na criao do filho); _exit(-1);} else if(fork1 == 0){ //area do filho

pid_filho = getpid(); pid_pai = getppid(); printf(FILHO: Eu sou o filho e meu pid : %d \n,pid_filho); printf(FILHO: Meu processo pai : %d \n,pid_pai); printf(FILHO: Minha tarefa repetir bom dia 5 vezes\n); for(i=1;i<=5;i++){ sleep(1); printf(FILHO: Bom dia n %d!\n,i);} continuar\n); printf(FILHO: encerrei minha atividade - tecle ENTER para getchar(); _exit(0);} else { //area do pai wait(&status); printf(PAI: Meu pid : %d \n,(int)getpid()); printf(PAI: Criei um filho com PID: %d \n, (int)pid_filho); printf(PAI: Minha tarefa dizer boa noite 2 vezes\n); for(i=1;i<=2;i++){ sleep(1); printf(PAI: Boa noite n %d!\n,i);} printf(PAI: Finalizei - tecle ENTER para continuar\n); getchar(); _exit(0);}

No cdigo acima, o processo PAI cria um processo FILHO que executa uma ao qualquer e retorna para o PAI. Neste programa podemos observar a tcnica de programao envolvida na criao de processos.
}

Uma vez em execuo, podemos acompanhar a criao e o encerramento dos processos pelo comando pstree, visto anteriormente.

82

Unidade E
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Sntese
Processos so programas em execuo na memria principal, enquanto programas so conjunto de instrues prontas para serem executadas e armazenados em memrias secundrias; Os sistemas atuais trabalham com o conceito de multiprogramao, em que temos diversos processos carregados na memria e que so executados como que em paralelo pelo conceito de pseudo-paralelismo. Sistemas mais antigos trabalham com o conceito de monoprograma, em que o sistema operacional carrega apenas um processo na memria; Interrupes so um mecanismo de sinalizao por hardware enviadas por dispositivos de hardware, usadas normalmente para solicitar alguma ao do processador. Threads so um tipo de processo que tem vrios fluxos de dados e que tem um processamento mais leve se comparado com um processo convencional. Os principais comandos de manipulao de processos em linux so: $ ps para ver a lista de processos em execuo; $ pstree para ver a lista de processos em forma de rvore; funes fork/join so funes em C para criao de processos;

Atividades
1. Verificar a rvore de processos em um sistema Linux; 2. Responder o questionrio:
a) b) c) d) e) Explique, com suas palavras a diferena entre processos e programa; Diferencie sistemas monoprogramado de multiprogramado. Qual o significado de pseudoparalelismo Qual o objetivo da interrupo? Detalhe os mtodos de operao do processador;

83

Gerenciamento do processador

Unidade F

Sistemas Operacionais

Unidade F
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

Como visto na unidade anterior, o processador trabalha com diversos processos, que esto carregados na memria e que disputam entre si pelo processador. Cabe ao sistema operacional atender a todos estes processos de forma eficiente e conveniente. Nesta unidade vamos estudar como feito o gerenciamento do processador e como possvel acontecer a multiprogramao.

GERENCIAMENTO DO PROCESSADOR

Introduo

Quando criamos um programa qualquer, precisamos ter diversas variveis que sero utilizadas durante a execuo do programa e que tero alguma funo de controle, mensagem, acumulador ou o que for necessrio. Por exemplo, no cdigo em C abaixo, temos uma varivel x, do tipo inteiro, que usada para controlar um loop.

Bloco descritor de processo

#include<stdio.h> main(){

int x; for(x=0;x<10;x++){ printf( %d ,x); }

O sistema operacional um programa como outro qualquer, que executa um conjunto de tarefas especfico; foi escrito em alguma linguagem de programao; foi compilado e executado; e como qualquer outro programa, possui variveis e estruturas de controle internas. Uma destas estruturas de controle o descritor de processos que uma estrutura de dados (struct) para armazenar dados dos processos enquanto o SO estiver executando. Os dados do processo que o descritor de processo armazena, variam conforme o sistema operacional a grosso modo poderamos citar:
lista de arquivos abertos pelo processo; permisses do processo; prioridade do processo; hora de criao do processo; tempo de CPU j gasto pelo processo; informaes sobre o estado de execuo do processo (contexto de execuo).

87

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

No trecho de cdigo a seguir, podemos verificar a criao de uma estrutura de controle de processos que poderia ser utilizada em um sistema operacional fictcio. No caso, podemos ver a criao de uma struct chamada desc_proc, que possui diversos campos, cada um com uma funo especfica no controle dos processos. Dentro da funo main temos a inicializao de uma tabela de descritores identificada como tab_desc, que definir a quantidade mxima de processos que o sistema ir manipular simultaneamente. Tambm so inicializados as filas de descritores livres identificada por desc_livre e fila de espera da CPU identificada por espera_cpu. A lista de processos criados vais sendo armazenada na varivel tab_desc, que vai consumindo espaos de desc_livre.
struc desc_proc{ char estado_atual; int prioridade; unsigned int inicio_memoria; unsigned int tamanho_memoria; struct arquivos_abertos[20];

unsigned int tempo_cpu; unsigned int proc_pc; unsigned int proc_sp; unsigned int proc_acc; unsigned int proc_rx struct desc_proc *proximo; };

int main(int argc, char *argv){ struct desc_proc tab_desc[MAX_DESC_PROC]; struct desc_proc *desc_livre; struct desc_proc *espera_cpu;

for(i=0; i<MAX_DESC_PROC-1; ++i){ tab_desc[i].proximo = &tab_desc[i+1];}

tab_desc[i].proximo = NULL; desc_livre = &tab_desc[0]; exit(0); }

88

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Esta estrutura de dados tem como funo gerenciar e controlar toda a existncia de um processo criado dentro de um determinado sistema operacional. Em outras palavras, a varivel que guarda todo contexto do processo enquanto este existir. A estrutura muito importante porque atravs desta que o sistema operacional pode ter o controle sobre a existncia dos processos e principalmente viabilizar a multiprogramao.

Unidade F

Na unidade anterior verificamos que o sistema operacional trabalha com um mecanismo de multiprogramao, atendendo diversos processos quase que simultaneamente dando para o usurio a sensao que tudo est acontecendo em paralelo isto denominado pseudoparalelismo. Na figura F.1 vemos um diagrama (mesmo mostrado na unidade anterior) que apresenta os estados e as transies entre estes estados. Neste ponto podemos nos perguntar como o sistema operacional consegue fazer a multiprogramao.

Como a multiprogramao acontece?

Um processador possui diversos registradores internos que so utilizados no processamento; estes registradores so contadores, acumuladores, registradores de deslocamento e outros mais. Quando um processo est sendo processado, est fazendo uso destes registradores que vo sofrendo modificaes em tempo de execuo, ou seja, seus valores so atualizados e modificados.

Contexto de execuo

O estado em que se encontram estes registradores, em determinado momento do processamento de um processo chamado de contexto de execuo, ou seja, contexto de execuo o nome dado para o conjunto de informaes de um processo em um determinado momento de sua execuo entre o incio e o fim de sua atividade.

Vale destacar que o contexto de execuo NO o resultado final do processamento e sim estados intermedirios do processamento.

O contexto da execuo pode ser comparado a uma fotografia do processador.

A multiprogramao consiste em trocar o processo que est executando a cada perodo, de forma que todos os processo que esto carregados na fila de prontos ganhem o processador por um pequeno intervalo de tempo, tenham uma fatia de processamento garantida e retornem para a fila de prontos. Este procedimento, que alterna processos na execuo, acontece constantemente enquanto houver

Chaveamento de contexto

89

Fomento ao Uso das Tecnologias da Informao e Comunicao

processos na fila. O chaveamento de contexto o nome dado a esta troca entre os processos que esto na fila de processos prontos e o que est em execuo.

Sistemas Operacionais

O tempo1 de troca entre os processos definido pelo sistema operacional em conjunto com o hardware e a ttulo de exemplo, vamos utilizar uma media de 20ms2 . Ou seja, a cada 20ms, o hardware envia uma requisio de interrupo para o processador, avisando que hora de trocar de processo em execuo.

Dinmica do chaveamento do contexto entre pronto e execuo

processo A est em execuo.... o quantum do processo A acaba e o hardware envia uma interrupo para o processador avisando que hora de troca de processo; sistema operacional faz uma cpia do contexto da execuo do processo A (que parou), guardando estas informaes no bloco descritor de processo; o prximo processo da fila de prontos (processo C) ento carregado no processador, neste momento o sistema operacional carrega o contexto de execuo do processo C (guardado at ento no descritor de processo) para os registradores do processador; O processador comea ento a nova execuo do ponto onde parou. Quando os processos ENCERRAM sua execuo, saem da fila de prontos.

Dinmica do chaveamento do contexto entre execuo e bloqueado


processo A est em execuo.... Ao executar um pedido de I/O, uma interrupo gerada e o processo bloqueado; O contexto de execuo do processo A ento copiado para a fila de processos bloqueados, que iro aguardar o resultado da requisio de I/O. O prximo processo da fila de prontos (processo C) ento carregado no processador, neste momento o sistema operacional carrega o contexto de execuo do processo C (guardado at ento no descritor de processo) para os registradores do processador; O processador comea ento a nova execuo do ponto onde parou. Quando o resultado da I/O executada pelo processo A entregar seu resultado, o processo sai da fila de bloqueados e volta para a fila de prontos.

Este ciclo repete-se enquanto houver processos na fila de execuo. Sempre ocorrendo a cpia do contexto de execuo que est armazenado no bloco descritor de processo e o processador ou do processador para o bloco descritor de processos. A organizao da fila de processos prontos e a escolha do prximo processo a ganhar o processador, definido pelo algoritmo escalonador.

Escalonador de curto prazo,tambm chamado scheduler, a parte do sistema operacional que organiza e determina o funcionamento da fila de prontos e o tempo que cada processo ter de execuo no processador.

Escalonador

O escalonador avaliado em dois aspectos principais, que so;

1. Quantum o nome dado quantidade tempo que um processo tem no processador. 2. Leia-se 20 milisegundos, onde 1 milisegundo = a milsima parte de 1 segundo.

90

Unidade F
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Quanto a produo (throughput1 )


o escalonador precisa manter o processador ocupado por mais tempo e produzir mais em menos tempo; basicamente, queremos que o processador seja bem utilizado e no fique ocioso.

Quanto ao tempo de resposta (turnaround time)


baixo tempo mdio de espera na fila do processador; basicamente, queremos que um processo no fique muito tempo esperando na fila.

Conforme o tipo de escalonador aplicado no sistema operacional, teremos um impacto diferente nos diferentes tipos de processos.

Tipos de processos I/O Bound

So processos caracterizados por fazer mais uso de requisies de I/O. Estes processos no gastam processador porque trabalham mais com entrada e sada. Exemplos:
editores de texto: basicamente controlam teclado, mouse, discos, etc; browsers: basicamente utilizam rede;

So processos caracterizados por fazer mais uso de CPU. Estes processos precisam de CPU para trabalhar, fazendo pouca I/O. Exemplos:

CPU Bound

programas de criptografia: basicamente fazem muitos clculos matemticos para aplicar nos dados a serem criptografados/descriptografados. programas de clculos cientficos: clculos matemticos.

Estes algoritmos escalonadores so clssicos, ou seja, nem sempre so ou foram utilizados comercialmente.

Algoritmos escalonadores

Este algoritmo implementa uma fila simples, onde o primeiro processo que chega na fila executado at seu encerramento (processo no sai do processador at terminar seu processamento).

Algoritmo FIFO (first-in/first-out)


Vantagens:

Desvantagens:

Favorece processos do tipo CPU Bound porque estes pegam a CPU e no soltam mais;

Analogia com o banco:

Causa um aumento no tempo de espera da fila;

Este escalonador equivale a uma fila de banco, com apenas UM caixa, onde a ordem de atendimento definida pela chegada na fila. A insatisfao dos clientes est em: No h atendimento prioritrio; Se algum cliente tiver muitos papis para serem processados, o tempo de todos na fila ir aumentar. 1. a quantidade de dados processados em um determinado espao de tempo.

91

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Trabalhos mais curtos primeiro - este algoritmo implementa uma fila ordenada pelo menor tempo de execuo, ou seja, quanto menor o tempo de execuo mais na frente da fila o processo est.

Algoritmo SJF (Shortest Job First)


Vantagens:

Favorece processos I/O Bound, porque so rpidos na ocupao do processador; Processos rpidos ficam pouco tempo na fila de espera diminui o tempo mdio de espera.

Problemas:

Postergao indefinida processos considerados lentos ficaro esperando na fila por tempo indeterminado; Impossibilidade de implementao impossvel prever o tempo de execuo de um processo.

Analogia com o banco:

Este escalonador equivale a uma fila de banco, com apenas UM caixa, onde a ordem de atendimento definida pela quantidade de papis a serem processados se for rpido passa na frente. A insatisfao dos clientes est em: No h atendimento prioritrio; Se algum cliente tiver muitos papis para serem processados, ir ficar na fila aguardando at que todos os rapidinhos sejam atendidos; Muitos clientes afirmam que seu atendimento rapidinho, mas na verdade tem muitos papeis para processamento causando indignao na fila.

Trabalhos marcados com prioridade primeiro este algoritmo implementa uma fila ordenada pela prioridade, ou seja, todo processo deve ter uma marca de prioridade4 . Esta prioridade ir definir a posio a ser ocupada na fila.

Algoritmo por prioridade

Vantagens:

Desvantagens:

Favorece processos com prioridade independentemente de tipo;

Analogia com o banco:

Postergao indefinida de processos com baixa prioridade;

Este escalonador equivale a uma fila de banco, com apenas UM caixa, onde a ordem de atendimento definida pela prioridade do cliente, que se tiver prioridade alta passa na frente. A insatisfao dos clientes est em: Clientes com alta prioridade so sempre atendidos primeiro deixando os de baixa prioridade por longos perodos na fila;

Para eliminar a desvantagem de postergao indefinida do algoritmo escalonador por prioridade, podemos implementar um mecanismo de aumento de prioridade conforme o tempo de espera na fila. Isto conhecido por aging5 - e no caso, a cada rodada de execues, a prioridade do processo que est na fila aumenta, at que o mesmo ser atendido.

Algoritmo por prioridade com aging

1. A definio da prioridade tambm funo do sistema operacional, mas no do escalonador. 2. Envelhecimento.

92

Unidade F
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Algoritmo por prioridade preemptivo e no-preemptivo


Prioridade preemptivo neste algoritmo escalonador, sempre que um processo de maior prioridade (do que o que est sendo executado) chegar na fila de prontos, o algoritmo retira o processo em execuo e entrega o processador ao recm-chegado de maior prioridade. Prioridade no-premptivo neste algoritmo escalonador, quando um processo de maior prioridade (do que esta sendo executado) chegar na fila de prontos, o algoritmo no interfere na execuo. Espera que a execuo acabe para entregar o processador ao recm-chegado de maior prioridade.

Este algoritmo escalonador o mais comum entre os sistemas operacionais convencionais e que viabiliza a multiprogramao efetivamente o algoritmo trabalha com fatia de tempo. Cada processo na fila tem um tempo de execuo (j definido como quantum); a cada quantum, o processador troca de processo em execuo (pelo mecanismo de chaveamento de contexto).

Algoritmo Round Robin (fatia de tempo)

Este algoritmo ainda pode ser implementado, de forma associada, ao algoritmo por prioridade (que poder ser preemptivo ou no-preemptivo). Garantindo um mecanismo de escalonamento de fatia de tempo com prioridade. Sistemas operacionais atuais trabalham com o conceito de mltiplas filas, em que o processador de duas ou mais filas de espera para execuo, cada qual com um algoritmo escalonador especfico. Podemos, por exemplo, termos um sistema com duas filas de espera, sendo:

Mltiplas filas

Processos com interao direta do usurio, normalmente executados na presena do usurio e com necessidade de baixo tempo de resposta. Editores de texto e planilhas so tpicos exemplos de processos deste tipo.

Fila de processos do tipo foreground

Esta fila poderia trabalhar com um algoritmo escalonador round-robin com prioridade preemptiva. Certamente os usurios de um sistema deste tipo teriam uma boa relao entre produo e de tempo de resposta do sistema computacional.

Processos sem interao de usurio, normalmente executados sem a presena do usurio ou disparados em batch. Podem, por exemplo ser executados durante a madrugada (quando normalmente ningum mais est usando o sistema). Processos para clculo de folha de pagamento ou processos de computao cientfica podem ser exemplos deste tipo de fila. Tipicamente, processos que consomem muita CPU.

Fila de processos do tipo background

Esta fila poderia trabalhar com um algoritmo escalonador do tipo fila (FIFO) e os processos seriam executados do incio ao fim sem problemas (at porque no tem usurio requisitando a mquina).

93

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Sntese
bloco descritor de processo funciona como uma estrutura do sistema operacional que faz o controle dos processos que podem ser criados e dos processos existentes e prontos para execuo; alm disso esta estrutura armazena dados vitais execuo dos processos como o contexto de execuo, prioridade e outras informaes; contexto de execuo o conjunto de informaes que o processo tem, e que mostram o estado da execuo do processo. Estas informaes so usadas para parar/continuar a execuo do processo do ponto em que parou no momento do chaveamento de contexto; chaveamento de contexto a troca feita entre um processo que est sendo executado (e parou) por outro que est na fila de prontos (e ganhou o processador). Nesta ao, o sistema operacional salva o contexto de execuo do processo em execuo diretamente no bloco descritor de processo e carrega o contexto de execuo do novo processo nos registradores do processador (para este continuar de onde parou). Esta ao acontece por tempo indeterminado enquanto houverem processos a serem executados. Escalonador o mecanismo responsvel pela organizao da fila de espera de processos prontos. H diversos tipos de algoritmos escalonadores. FIFO first-in, first-out o algoritmo de fila a organizao por ordem de chegada; favorece processos CPU-bound e causa o aumento do tempo de espera da fila; SJF Shortest job first o algoritmo de trabalhos mais rpidos primeiro; favorece processos rpidos e causa postergao indefinida de processos considerados lentos. Alm do mais, no h como antever o tempo de execuo de um processo. Prioridade o algoritmo que atende primeiro processos com prioridade mais alta; pode causar postergao indefinida de processos com baixa prioridade; Prioridade com aging um algoritmo que, a cada rodada de execuo, promove o aumento de prioridade dos processos que esto na fila evitando assim a postergao indefinida. Preemptivo vs no-preemptivo algoritmos preemptivos retiram o processo que est em execuo do processador para atender a um novo processo de maior prioridade na fila; enquanto no-preemptivos no retiram o processo atualmente em execuo. Round-robin algoritmos de fatia de tempo, em que cada processo ganha um tempo (quantum) para execuo. Alm disso, este algoritmo pode ser implementado com controle de prioridade preemptivo ou no-preemptivo. Este um algoritmo largamente utilizado em sistemas operacionais comerciais. Mltiplas filas conceito em que o sistema operacional possui mltiplas filas de atendimento, separadas por tipo de processos.

94

Unidade F
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Atividades
1. O exerccio a seguir tem como objetivo demonstrar a aplicao e o efeito do controle de prioridade na execuo de processos em sistemas Linux. O Linux trabalha com prioridades que vo de -19 (MAIOR prioridade) a 19 (MENOR prioridade), sendo que Para isto ser utilizada a mquina virtual preparada nas unidades anteriores.
a) Executar o comando ALT+F2 e no campo executar aplicativo digitar glxgears, que ir abrir uma tela como a apresentada na figura F.2. Executar o glxgears DUAS VEZES, ficando com duas telas idnticas.

b)

Abrir um terminal e digitar o comando $ top para monitorar os processos em execuo;

Os processos glxgears iro competir pelo processador entre si e com outros processos. O comando top mostra diversas colunas entre elas a coluna PID, que identifica o nmero do processo; a coluna NI que identifica a prioridade de um processo e a coluna COMMAND que identifica o nome do processo; devemos conseguir ver dois processos chamados glxgears com PIDs diferentes e prioridade 0; c) Abrir um novo terminal e logue como root6 (ajustar na tela para que se consiga ver as duas telas glxgears, a tela do comando top e este novo terminal). O comando utilizado ser o renice, que muda a prioridade de um processo em tempo de execuo. Neste novo terminal, vamos modificar a prioridade de um dos glxgears em execuo.

# renice -n 19 -p <PID ESCOLHIDO>

-n 19 a menor prioridade possvel que um processo pode ter; -p <PID ESCOLHIDO> o nmero PID do glxgears que voc elegeu para o teste. d) Execute o comando com diversas prioridades e observe anotando o que acontece. -n 19 -n 10 -n 0 -n -10 -n 19

2. Pesquisar qual(quais) (so) o(s) algoritmo(s) escalonador(es) dos sistemas operacionais abaixo:
a) b) c) AIX Linux BSD

6. Usar comando $su root.

95

Gerenciamento da memria

Unidade G

Sistemas Operacionais

Unidade G
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

GERENCIAMENTO DA MEMRIA

Na unidade anterior, verificamos que o sistema operacional trabalha com processos, que so programas em execuo. Esta processo precisa ser segurado em algum lugar enquanto est sendo executado, o que inclui seu cdigo e seus dados. O hardware e o sistema operacional mantm os processos em uma rea denominada memria principal tambm conhecida como RAM.

Introduo

Cabe ao sistema operacional, em parceria com o hardware, fazer o gerenciamento eficiente deste espao onde ficam os processos durante sua existncia. Nesta unidade, vamos estudar o gerenciamento de memria clssico utilizado em computadores. Vale salientar que sistemas computacionais modernos (comerciais) aumentam a complexidade desta gerncia.

Tipos de memria dentro de um sistema computacional


A memoria fsica

Os sistemas, trabalham separando a memria fsica e a memria lgica detalhadas a seguir.

Memria fsica aquela implementada pelos circuitos eletrnicos, que palpvel, que queima e que frequentemente precisamos aumentar. Ocorre que esta memria no endereada diretamente pelo processo, ou seja, o sistema operacional cria uma interface para que os processos faam uso do recurso memria. A memria fsica possui um espao de endereamento fsico que so os endereos dos circuitos. Memria lgica aquela que o processo v e usa; esta memria mapeada na memria fsica, ou seja, o processo tem um rea de memria que somente ele acessa e conhece, no entanto ele (o processo) no tem ideia de qual lugar da memria fsica est sendo usado. Esta memria lgica possui um espao de endereamento lgico que somente o processo tem acesso, ou seja, cada processo tem o seu prprio espao de endereamento.

A memoria lgica

Unidade de Gerenciamento de memria um circuito, implementado no hardware (normalmente interno ao processador) que prov os mecanismos bsicos de gerenciamento de memria. Disto, decorre que o gerenciamento de memria que o sistema operacional implementa est intimamente ligado ao hardware utilizado. A figura G.1 representa a relao MMU/memria.

MMU Memory Management Unit

na MMU que o ocorre o mapeamento dos endereos lgicos do processo nos respectivos endereos fsicos dos circuitos, alm de prover algum mecanismo de proteo.

99

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Sempre que temos processos carregados na memria, precisamos garantir que os processos no invadam a rea de memria de outro processo. A seguir, so apresentados dois possveis mtodos de proteo de memria, sendo que diversos outros mecanismos podem ser implementados. Nos dois mtodos a seguir, os registradores de limite so informaes do contexto de execuo do processo e devem ser armazenados no descritor de processo tambm.

MMU Mecanismos de proteo

A ideia que a MMU saiba quais so os limites de endereamento que o processo tem. O processo no acessar nenhum endereo abaixo do limite inferir e acima do limite superior. Se o processo tentar acessar algum endereo fora deste escopo ser gerado uma interrupo informado ao sistema operacional que houve tentativa de acesso de endereo ilegal. O esquema mostrado na figura G.2.

Proteo por limite inferior/superior

No esquema da figura G.2, o endereo acessado pelo processo, dever estar entre 200 e 450. Neste caso, o endereo lgico (antes da MMU) ser o mesmo endereo fsico (depois da MMU). Caso esteja fora do range estabelecido pelos registradores, a MMU gera uma interrupo e encerra o processo.

Outro mecanismo de proteo da memria uso do esquema registrador limite/base (figura G.3) em que a MMU sabe o limite superior e calcula o deslocamento do registrador base para acessar o endereo. Aqui j temos um mecanismo de mapeamento entre o endereo lgico e o endereo fsico (real).

Proteo por limite/base

100

Unidade G
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

A seguir, so apresentados alguns dos mtodos clssicos de gerenciamento de memria. Vale lembrar que aplicaes comerciais modernas utilizam-se de variaes e adaptaes destes mecanismos.

Formas de gerncia de memria

Considerando sistemas multiprogramados, est a forma mais simples de gerenciamento de memria. Quando o sistema operacional carregado, divide a memria disponvel em diversos parties fixas e de tamanho variado. Conforme os processos vo sendo alocados, as parties vo sendo ocupadas de forma aleatria. A figura G.4 mostra este esquema de diviso da memria.

Parties Fixas

Vantagens

Desvantagens

um sistema bastante simples de ser implementado.

fragmentao interna: os processos carregados nas parties normalmente no ocupam todo o espao disponvel. Exemplos: partio 2 de 135KB, mas o processo ocupa apenas 130KB; foram desperdiados 5KB que no podero ser aproveitados em nenhum outro caso. Partio 4 de 100KB com um processo de apenas 36KB; foram desperdiados 64KB que no podero ser aproveitados em nenhum outro caso. Fragmentao externa temos uma partio livre de 80KB e um processo de 81KB para ser carregado; ocorre que temos memria livre, mas no poder ser utilizada porque menor que o processo carregado. No h um reordenamento do espao disponvel para uma ocupao mais inteligente.

Neste mecanismo de gerenciamento todo o espao disponvel controlado pelo sistema operacional e as parties vo sendo criadas e ocupadas por processos no tamanho exato da partio.

Parties variveis
Vantagens

no possui fragmentao interna, j que a partio usada alocada com o tamanho exato do processo isto significa um melhor aproveitamento do espao de memria.

Desvantagens

Apresenta fragmentao externa, porque conforme o sistema vai alocando espaos vai gerando lacunas;

101

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

A figura G.5 procura representar a dinmica das parties variveis. As situaes so explicadas a seguir:
exige um mecanismo eficiente para gerenciamento de lacunas; a) b) c) temos o processo A com 85KB, B com 150KB, C com 50KB e um espao disponvel de 100KB; O processo B encerrou, gerando uma lacuna de 150KB, enquanto os outros processos continuam em execuo; Um novo processo foi carregado (processo D) ocupando 100KB da lacuna gerada em b). com esta ocupao, uma lacuna de 50KB gerada.

necessrio que o sistema tenha o controle dos espaos disponveis e que tenha um mecanismo de escolha de qual espao utilizar na locao de um novo processo. Os mecanismos possveis so:

Este controle costuma ter um alto custo computacional, ou seja, o processador e o sistema operacional perdem muito tempo til no controle destas estruturas.

First-fit utiliza a primeira lacuna com tamanho mnimo necessrio disponvel; Best-fit utiliza a lacuna que resultar na menor sobra (que gere uma nova lacuna de menor tamanho possvel); Worst-fit - utiliza a lacuna que resultar na maior sobra (que gere uma nova lacuna com maior tamanho possvel); Circular-fit - utiliza a lacuna disponvel aps a ltima sobra.

Pode-se reduzir o problema da fragmentao adotando unidades de alocao de tamanho fixo (32 bytes por exemplo). Estes blocos fixos so conhecidos como pargrafos. Quando um processo precisar de memria, ir ocupar um numero exato de pargrafos (que so blocos de 32 bytes). Isto permite ao sistema ter uma fragmentao interna mxima de 31bytes por processo carregado, o que bem pouco significativo.

Pargrafos

A figura G.6 procura representar a diviso por pargrafos. A memria est dividia em n blocos de 32 bytes (pargrafos) o processo A ocupa 3 blocos; o processo B ocupa 2 blocos; o processo C ocupa 3 blocos. Supondo que o processo B seja de 33 bytes, o maior espao que desperdiado ser de 31 byte, que foram alocados mas no utilizados. Este mecanismo mantem a necessidade de controle das lacunas disponveis e por consequncia ainda apresenta a desvantagem da fragmentao externa tal qual o sistema de parties variveis.

102

Unidade G
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

A paginao um mecanismo de gerenciamento de memria que apresenta pequena fragmentao interna e nenhuma fragmentao externa. Isto garante ao sistema que o implementa um melhor aproveitamento do hardware de memria. Pginas so blocos de alocao de tamanho fixo, que so ocupados por processos.

Paginao

Basicamente, a memria fsica dividia em pginas e estas pginas so mapeadas na memria lgica. Este mapeamento feito pelo uso de uma tabela de pginas, que faz referncia entre as pginas lgicas e as pginas fsicas; alm disso, as pginas possuem um registro de deslocamento interno, facilitando a localizao da informao pelo sistema operacional.

Vale lembrar que memria lgica a memria que o processo usa/v e a memria fsica a placa de memria efetivamente. A o interfaceamento entre as duas memrias feito pelo hardware MMU, que no caso, ir implementar a tabela de paginas para o mapeamento. A figura G.7 procura representar este esquema.

Na figura, vemos a memoria lgica dividida em 3 pginas de 4 bytes cada e cada pgina com um processo (os processos esto divididos em 4 partes); vemos a memria fsica dividida tambm em n pginas. Cada pgina identifiada com um endereo de 5 bits, sendo que os 3 primeiros bits (mais significativos) identificam o nmero da pgina enquanto os 2 ltimos bites (menos significativos) indicam a localizao (deslocamento) do byte dentro da pgina. Est sendo mostrado tambm uma tabela de pginas, que montada dentro da MMU e faz a relao entre as pginas. No caso:
a pgina lgica 000 est associada pgina fsica 010; a pgina lgica 001 est associada pgina fsica 101; e a pgina lgica 010 est associada a pgina 000;

Para localizar a informao Y2, vemos que est na pgina lgica 001, com deslocamento 01. este endereo convertido na tabela de pginas para pgina fsica 101, com deslocamento 01. Para localizar Z3 por exemplo, verificamos que o mesmo est na pgina lgica 010, com deslocamento 10. Este endereo convertido pela tabela de pginas e encontramos a pgina lgica 000, com deslocamento 10.
Y2 est no endereo fsico 101 01. Z3 est no endereo fsico 000 10.

103

Fomento ao Uso das Tecnologias da Informao e Comunicao

Observa-se que no h necessidade de haver continuidade entre as pginas, ou seja, a pgina pode ser montada em qualquer localizao da memria fsica.

Sistemas Operacionais

O problema deste mecanismo de paginao est em definir o melhor tamanho de pgina, uma memria dividida em pginas grandes ter uma quantidade menor de pginas, dando menos trabalho para o processador cuidar do mapeamento. Por outro lado, isto aumenta a fragmentao interna (em cada pgina). Conforme Oliveira na prtica, os tamanhos de pgina variam entre 1Kbyte e 8Kbytes. Alguns outros controles tambm precisam ser implementados, como um mecanismo controle de pginas livres e controle de pginas ocupadas. Outra forma de gerenciamento de memria, mais intuitiva para o programador e o compilador a segmentao, que divide a memria em segmentos tipicamente correspondentes a: cdigo, dados estticos, dados dinmicos e pilha de execuo.

Segmentao

Neste mecanismo a memria lgica dividida em segmentos; uma endereos desta memria passa a ser identificado por um segmento + um deslocamento em relao ao inicio do segmento. Na carga do processo, estes segmentos so copiados para a memria fsica e a tabela de segmentos (tambm hospedada na MMU) construda.

Para enderear sua rea de memria, os processos geram endereos lgicos compondo o nmero do segmento associado a um deslocamento dentro do segmento. A MMU recebe esta informao e procura o segmento correspondente na tabela de segmentos e o deslocamento comparado com o limite se exceder, h uma violao de endereo e uma interrupo de acesso ilegal a memria gerada, encerrando o processo. Se o deslocamento valido, a MMU soma o deslocamento ao limite base para localizar o endereo na memria fsica. A figura G.8 procura demonstrar o mecanismo de segmentao.

104

Unidade G
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Para localizar informaes em um sistema de memria segmentada:

Localizando D1

o endereo lgico gerado ser: segmento 01 com deslocamento 00000; verificando na MMU, o segmento 01 tem base 00000 e limite 0100; a MMU diz que o endereo procurado vlido, porque deslocamento 00000 est entre a base e o limite; endereo fsico a soma entre base 00000 com deslocamento 00000, no caso 00000;

Localizando C3
o endereo lgico gerado ser: segmento 00 com deslocamento 00010; verificando na MMU, o segmento 00 tem base 01000 e limite 0110; a MMU diz que o endereo procurado vlido, porque deslocamento 00010 est entre a base e o limite estabelecidos; endereo fsico a soma entre base 01000 com deslocamento 00010, no caso 01010;

Localizando P2
o endereo lgico gerado ser: segmento 10 com deslocamento 00001; verificando na MMU, o segmento 10 tem base 10100 e limite 0011; a MMU diz que o endereo procurado vlido, porque deslocamento 00001 est entre a base e o limite estabelecidos; endereo fsico a soma entre base 10100 com deslocamento 00001, no caso 10101;

Localizando P4
este um endereo fantasma - no existe na memria lgica; o endereo lgico INFORMADO : segmento 10 com deslocamento 00011; verificando na MMU, o segmento 10 tem base 10100 e limite 0011; a MMU diz que o endereo procurado NO vlido, porque deslocamento 00011 mais base 10100 (10111) excedem o limite estabelecido na MMU 0011);

Apesar de ser mais intuitiva para os programadores, a segmentao traz novamente o problema da fragmentao externa, causado pelas repetidas alocaes/liberaes de blocos de memria (segmentos).

Segmentao paginada

105

Fomento ao Uso das Tecnologias da Informao e Comunicao

A segmentao paginada resolve o problema desta fragmentao, fazendo uma associao entre segmentao e paginao. Neste caso temos uma memria lgica que lista uma tabela de segmentos e cada segmento contm uma tabela de pginas (exclusiva do segmento). O endereo de uma informao composto pelo conjunto nmero do segmento, nmero da pgina e deslocamento dentro da pgina.

Sistemas Operacionais

O swap uma tcnica que permite ao sistema operacional trabalhar com mais memria fsica do que realmente se tem disponvel no banco da memria principal. O gerenciador de memria trabalha com uma rea de disco rgido (HDD) reservada especialmente para expandir a memria fsica do computador em caso de falta deste recurso em tempo de execuo de processos.

Swapping

Esta rea de armazenamento especial de baixssima velocidade, ou seja, tem um tempo de acesso muito alto; desta forma, o sistema operacional transfere para esta rea preferencialmente os processos que sofreram algum tipo de bloqueio e esto fora da lista de processos prontos. O processo ainda existe mas por algum motivo (I/O por exemplo) est fora da lista de prontos. O swaping um recurso necessrio como segurana para o funcionamento do sistema operacional, no entanto, no queremos que seja utilizado dado que sua velocidade de operao muito lenta.

Sntese

O sistema operacional faz o gerenciamento da memria do sistema de forma integrada com o hardware, ou seja, h uma interdependncia entre hardware e sistema operacional; O sistema operacional trabalha com dois tipos de memria, que so: memria fsica so os componentes eletrnicos da memria propriamente dita. Os processos no tem acesso direto ao hardware de memria; memria lgica a memria que o processo v e utiliza; MMU Memory Management Unit a unidade de gerenciamento de memria, faz a interface entre memria lgica e memria fsica, alm de implementar diversos mecanismos de proteo da memria fsica. Gerenciamento exitem diversas formas/mecanismos de gerenciamento da memria, sendo que alguns so mais/ menos eficientes: Parties fixas a memria dividida em espaos fixos de tamanhos variados; problemas so fragmentao externa e interna; Parties variveis - memria dividida em parties com o tamanho exato solicitado pelo processo; causa muita fragmentao externa, devido a grande quantidade de lacunas entre parties criadas; Parties com pargrafos memria dividida em blocos de tamanho fixo e os blocos so alocados aos processos conforme a demanda. Possui baixa fragmentao interna e alguma fragmentao externa. Paginao memria lgica e fsica so dividias em pginas e na MMU h uma tabela que relaciona a pgina existente na memria lgica com a pgina existente na memria fsica. No possui fragmentao externa e pouca fragmentao interna. Segmentao memria lgica e fsica so dividias em segmentos e na MMU h uma tabela que relaciona o segmento na memria lgica com o segmento na memria fsica. Causa fragmentao externa. Segmentao paginada cria um mecanismo de segmentos com pginas; cada segmento tem um conjunto de pginas; a MMU faz o mapeamento entre os segmentos e as pginas da memria lgica com a memria fsica; Swaping um mecanismo de expanso da memria fsica no disco rgido; no caso de falta de memria fsica disponvel, processos podem ser transferidos para a rea de swap onde normalmente so bloqueados, devido ao baixo tempo de resposta deste tipo de rea.

106

Unidade G
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Atividades
1. Represente a memria fsica para a seguinte tabela de pginas e a seguinte representao da memria lgica.
00000 00001 00010 00011 00100 00101 00101 00110 00111 01000 01001 01010 x1 x2 a1 a2 v1 v2 v3 v4 a3 a4 pg. Lgica 000 001 010 Pg. Fsica 100 000 001 x3 x4

107

Sistema de arquivos

Unidade H

Sistemas Operacionais

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

1. SISTEMA DE ARQUIVOS

Apesar de todos os procedimentos internos de um sistema operacional serem importantes para o funcionamento da mquina, com o sistema de arquivos que o usurio mais entra em contato. Pode-se dizer que o usurio v o sistema de arquivos como sendo a parte mais importante do sistema operacional at porque muitas informaes pessoais esto confiadas a eficincia e confiabilidade do sistema de arquivos de um determinado sistema operacional. Nesta unidade, vamos estudar as os principais conceitos que compem um sistema de arquivos com seus principais mecanismos de gerenciamento.

Introduo

Conceitos bsicos
Arquivos

Arquivos so estruturas, que armazenam dados sensveis para o usurio, ou seja, que tem alguma importncia para este. O arquivo pode ser de vrios tipos, mas sempre com alguma finalidade dentro do sistema. O usurio, que neste caso poder ser um usurio comum ou um programador avanado, confia que seus dados estejam devidamente armazenados em arquivos.

Diretrios (atualmente designados por pastas) so arquivos especiais, que armazenam listas de arquivos e outros diretrios. So utilizados para facilitar a organizao dos sistemas de arquivos modernos. Basicamente, no concebemos um sistema operacional que no permita uma separao de arquivos conforme nossa inteno.

Diretrios

A mdia o meio onde os dados so armazenados, podendo ser um disco rgido, um cdrom, uma pendrive. Cada mdia tem um mecanismo particular de armazenar os dados e cabe ao sistema operacional apresentar uma abstrao compreensvel deste sistema. Em outras palavras, o sistema operacional deve oferecer uma interface amigvel e eficiente para que o usurio possa manipular seus arquivos.

Disco

Uma partio uma diviso lgica que o disco deve ter e que gerenciado pelo sistema operacional. Todo sistema operacional trabalha com o conceito de parties para fins de possibilitar a abstrao que se prope. Um disco deve possuir pelo menos uma partio onde ser gravado o sistema de arquivos daquele sistema operacional em especfico.

Parties

Uma partio deve ser preparada com um e somente um sistema de arquivos (uma partio no comporta mais que um sistema de arquivos). Este sistema de arquivos ir definir como ser o arquivo propriamente dito alm de definir com o ser o gerenciamento de suas operaes e caractersticas.

Sistema de arquivos

111

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

O arquivo, que seria a menor parte do sistema de arquivos; que conforme visto anteriormente possui algum significado para o usurio possui tambm alguns atributos que variam de sistema operacional parra sistema operacional. De forma geral os atributos podem ser:

O arquivo

tipo texto, binrio, registro, imagem. Tamanho informa o espao do disco utilizado pelo arquivo em bytes; ltimo acesso alguns sistemas informam quando o arquivo foi aberto pela ltima vez; ltima modificao sistema informa quando foi a ltima alterao que o arquivo sofreu; dono do arquivo informa qual usurio o dono do arquivo;

permisses de acesso informa quais so as permisses de acesso ao arquivo;

Naturalmente queremos que o sistema operacional nos permita fazer o manuseio dos arquivos que gerencia. Logo, necessrio que o sistema oferea um conjunto de operaes bsicas para este servio.

Operaes bsicas com arquivos

Criao

operao para criao de arquivos sempre que for necessrio;

Remoo
operao para apagar arquivos sempre que for necessrio;

Leitura
operao de abrir um arquivo e visualizar seu contedo; obedecendo o conjunto de permisses especificado.

Alterao
operao para abrir um arquivo e fazer alteraes dentro deste; obedecendo o conjunto de permisses especificado.

Escrita no fim do arquivo


modificao de um arquivo, adicionando contedo ao seu fim;

Execuo do cdigo contido


especificamente para arquivos binrios ou executveis. Capacidade de execuo do cdigo.

Alterao de permisses
Outras operaes podem ser compostas a partir de operaes bsicas, como por exemplo:
deve ser possvel, para o proprietrio do arquivo, modificar as permisses de um arquivo.

Esta operao composta basicamente pelas seguintes operaes bsicas:

Cpia de arquivo

criao de novo arquivo: cria novo arquivo de destino leitura do arquivo: arquivo de origem lido; escrita no fim do arquivo: contedo lido gravado no fim do arquivo recm-criado.

112

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Esta operao composta basicamente pelas seguintes operaes bsicas:

Movendo arquivo

criao de novo arquivo: cria novo arquivo de destino leitura do arquivo: arquivo de origem lido; escrita no fim do arquivo: contedo lido gravado no fim do arquivo recm-criado. remoo do arquivo de origem: arquivo antigo apagado.

Basicamente, o sistema operacional no se preocupa com o contedo do arquivo (no faz diferena o que tem dentro do arquivo) e, via de regra, o sistema operacional v o arquivo como uma sequencia de bytes, cujo significado conhecido pelo usurio [Oliveira, pg, 146, 2008]. Por outro lado, a estrutura interna, ou a forma com que os dados so armazenados interfere na em alguns aspectos do acesso deste arquivo.

Estrutura interna do arquivo

O arquivo pode ter diversos formatos (estruturas) internas de armazenamento dos dados. Este formato est diretamente ligado aplicao que faz uso do arquivo.
Texto organizados em linhas/pargrafos; Binrio organizado em segmentos de dados; Registros organizados em campos; Imagem organizados em conjuntos de pixels.

Arquivos podem ter extenses de nome, que so um adendo ao nome, frequentemente utilizados pelo usurio para auxlio na organizao do usurio proprietrio do arquivo, no interferindo na forma com que o sistema operacional trata estes arquivos, mas informando

Extenso de nome

As vezes arquivos com mesma funo, mas de programas diferentes possuem extenses diferentes. Por exemplo arquivos texto feitos no editor Word possuem extenso .doc, enquanto arquivos texto feito no editor Broffice possuem extenso .odt. Na tabela a seguir, so apresentados algumas extenses clssicas.

Tipo

Arquivo texto

Extenso
.txt .c .doc / .docx

Arquivo fonte C Arquivo word

Arquivo Writer Broffice

Extenses clssicas de arquivos

.odt

O controle de acesso um recurso para sistemas operacionais multiusurios para garantir a proteo dos arquivos, determinando regras de acesso e bloqueio. Todo arquivo possui um conjunto de informaes informando a qual usurio ele pertence e as regras de permisses de acesso.

Controle de acesso

O controle de permisses, via de regra, comea no ato de login de um usurio quando o usurio informa seu login e senha; caso seja autenticado no sistema o usurio ganha permisso de acesso e inicia uma

113

Fomento ao Uso das Tecnologias da Informao e Comunicao

sesso de trabalho, que poder ser em um ambiente de texto ou grfico. A partir deste momento o sistema operacional sabe quem est logado e todos os processos disparados pelo usurio herdaro seus direitos de acesso.

Sistemas Operacionais

Ao fazer um acesso a um arquivo o sistema operacional confere se o usurio que est executando a ao consta na lista de permisses do arquivo acessado; estando autorizado o acesso acontece normalmente; no estando autorizado o sistema operacional emite um aviso de acesso no autorizado. Exemplo:
arquivo notas.txt pertence ao usurio professor, que tem permisso total de acesso; professor pode liberar acesso do tipo somente leitura para usurio aluno;

O sistema operacional pode ainda trabalhar com o conceito de grupos de usurios, em que diversos usurios so associados a um grupo (normalmente esta associao acontece por alguma ponto em comum ou semelhana de comportamento). A partir deste ponto, poderemos liberar o acesso a um grupo de usurios. Exemplo
arquivo notas.txt pertence ao usurio professor, que tem permisso total de acesso; professor pode liberar acesso do tipo somente leitura UM GRUPO de alunos;

O arquivo pode ser acessado de diversas formas, o que poder interferir no desempenho deste ou daquele tipo de arquivo. Abaixo vemos os principais tipos de acesso.

Forma de acesso

O arquivo comea a ser lido do incio para o fim. Este o mtodo mais simples de se acessar um arquivo em que as informaes so buscadas parte por parte (sequencialmente).

Acesso sequencial:

um mecanismo utilizado, por exemplo, por:

compiladores que precisam acessar o arquivo-fonte de forma sequencial; impressora que precisa imprimir o arquivo do incio ao fim.

Este mtodo de acesso inadequado para pesquisa de dados em arquivos do tipo registro porque para buscar um registro em qualquer posio do arquivo, teramos que percorrer o mesmo desde o incio.

O acesso relativo utilizado para pesquisa em uma coleo de registros. Basicamente ao buscar uma informao, informamos exatamente o registro que queremos ler. Desta forma, temos um acesso muito mas rpido, isto porque no precisamos percorrer todo o arquivo para recuperar uma informao. Por outro lado este mecanismo ineficiente para busca em arquivos texto (cdigo fonte por exemplo), j que no temos uma estrutura de registros interna.

Acesso relativo:

Este sistema de acesso equivalente ao acesso a banco de dados gerenciado por um SGBD.

Neste mecanismo a leitura ser feita a partir do local em que estamos dentro do arquivo (posio corrente) no necessrio informar a posio a ser lida. Alm disso, possvel reposicionar o cursor dentro do arquivo para novas leituras.

Posio corrente:

114

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

A implementao de arquivos define como um sistema operacional cria e mantm um arquivo no seu sistema. Diversos mecanismos e formas podero ser implementados, havendo diferenas entre sistemas operacionais. Neste ponto vamos estudar a forma elementar ou clssica para implementao de arquivos.

Implementao de arquivos

O sistema operacional tem uma estrutura de controle interna, chamada descritor de arquivo1 , que guarda todas as informaes de um determinado arquivo. Em outras palavras, cada arquivo possui um descritor que descreve o arquivo. As informaes mnimas que compem um descritor de arquivos so:

Descritor de arquivos

O descritor de arquivos uma informao persistente, ou seja, no se perde quando o sistema desligado. Para que isto seja possvel os descritores de um sistema de arquivos so guardados no prprio disco, dentro da prpria partio onde esto os arquivos a que eles (os descritores) se referem. No ato da criao da partio, o sistema operacional reserva algumas reas do disco para armazenar guardar estes descritores evidentemente, estas so reas protegidas e que um usurio comum no tem acesso. Para acessar um arquivo, o descritor de processo precisa antes ser carregado na memria e ficar carregado pelo tempo que o arquivo estiver sendo manipulado. Ao fazer o encerramento de uso do arquivo, o descritor que est na memria salvo no disco, atualizando as informaes para o prximo uso.

nome do arquivo; extenso do arquivo (nos casos em que for necessrio); tamanho do arquivo; ltimo acesso; ultima modificao no arquivo; identificao do proprietrio do arquivo; lista permisses com usurios e a respectiva permisso; localizao do arquivo no disco informa o endereo do arquivo dentro do disco.

Para fazer acesso a algum arquivo o processo solicitante precisa disparar uma chamada de sistema informando sua inteno e com qual arquivo. Esta relao mantida, na memria do sistema operacional, em uma estrutura chamada tabela de descritores de arquivos abertos. Desta forma, o sistema operacional sabe quais arquivos esto abertos e por quais processos, alm de controlar qual o tipo de acesso o processo est executando no arquivo.

TDAA Tabela de Descritores de Arquivos Abertos

Tipicamente, uma TDDA carrega todas as informaes do descritor de arquivos, alm de controlar quantos e quais processos esto acessando/manipulando determinado arquivo.

O sistema operacional tambm precisa ter controle sobre as variveis de cada processo em relao a um determinado arquivo. Isto ocorre porque cada processo pode abrir um mesmo arquivo de formas diferentes; aqui entra uma outra estrutura de controle chamada Tabela de Arquivos Abertos por Processo que mantm informaes que relacionam o processo com o descritor de arquivos aberto. Por exemplo:

TAAP Tabela de Arquivos Abertos por Processo

1. O descritor de arquivos uma estrutura equivalente ao descritor de processos

115

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

modo de acesso do processo no arquivo-fonte leitura/escrita (RW) somente leitura (RO) localizao do cursor de leitura dentro do arquivo; alteraes do processo (antes do salvamento).

O procedimento de abertura de um arquivo poder variar entre sistemas operacionais. Quando um processo emite uma chamada de sistema para abertura de um arquivo, o sistema operacional segue (basicamente) os seguintes passos:

Procedimento de abertura de um arquivo

1. procura no disco o descritor de arquivo que se busca a) esta pesquisa feita no diretrio corrente ou no diretrio informado na chamada de sistema;

2. Se o descritor no encontrado ento o arquivo no existe e um aviso dado ao processo solicitante; 3. Se o descritor encontrado, um cdigo (tipo um endereo), composto pela partio + endereo do descritor retornado para a chamada de sistema; 4. O sistema de arquivos consulta a TDAA para verificar se o descritor de arquivo localizado j est aberto. a) b) Se NO EST aberto, carrega o descritor de arquivo na TDDA; Se J EST aberto, incrementa o nmero o registro de quantos processos esto usando este descritor da arquivo;

5. Uma vez que o descritor de arquivo est carregado na TDDA o sistema operacional confere se o processo tem permisso de manipulao do arquivo; a) Se permisso est certa prossegue liberando o arquivo para uso do processo; b) Seno gera um erro que comunicado ao processo e fecha o arquivo;

O procedimento de fechamento de um arquivo funciona de forma semelhante nos sistemas operacionais.

Procedimento de fechamento de um arquivo


Basicamente, para fechar um arquivo:

1. o sistema de arquivos localiza o descritor na TDAA e decrementa o contador de processos usando o descritor de arquivo; 2. quando este contador chegar a zero, o sistema de arquivos sabe que no h mais processos fazendo uso do arquivo; ento o registro fechado, ou seja, o espao na TDAA liberado para uso por outro descritor de arquivo.

Um sistema operacional tem um conjunto bastante grande de chamadas de sistema, disponveis para uso dos programadores, atravs das bibliotecas de funes das linguagens de programao. Este conjunto de funes conhecido como API2 da linguagem de programao especifica. Um programador precisar ter o mnimo de domnio destas funes para programar para em determinado sistema operacional com determinada linguagem.

Manipulando arquivos

2. Application Programming Interface

116

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Basicamente precisaremos de:


Abrindo um arquivo com a linguagem C


uma varivel especial (descritor de arquivos) que ser um ponteiro para o endereo do arquivo - FILE *descritor; uma funo de abertura de um arquivo fopen(nome do arquivo,rw); uma ao para manipulao de o arquivo aberto fputs(frase para gravar, arquivo); uma funo para fechamento do arquivo fclose(arquivo);

Codigo para criao de arquivo - baseado no curso de linguagem c - ufmg


#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv){ int x; FILE *fd; char str[80]; char aviso[160]; if(argc != 2){ fprintf(stderr, Informe ./criar arquivo); exit(1);} fd=fopen(argv[1],w); if(!fd) { fprintf(stderr, No foi possivel criar o arqivo); exit(1);} for(x=0;x<10;x++){ strcpy(aviso,Voce digitou: ); printf(Digita uma string pra gravar no arquivo\n); fgets(str,50,stdin); strcat(aviso,str); fputs(aviso,fd); if(ferror(fd)){ fprintf(stderr, No foi possivel gravar no arqivo); exit(1); } } fclose(fd); return 0; }

O pequeno programa acima mostra a utilizao de manipulao de arquivos. Para testar, basta compilar na maquina virtual configurada:

117

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Para testar:

$ gcc -o arq arq.c

$ ./arq teste.txt

Sntese
O sistema operacional responsvel por apresentar de uma interface amigvel para gerenciamento de arquivos; o sistema de arquivos do sistema operacional ir viabilizar o gerenciamento dos arquivos do sistema; Arquivo uma estrutura, que fica armazenada em um meio e que contem dados que fazem sentido para algum usurio, mas no tem importncia para o sistema operacional. Diretrios so arquivos especiais seu contedo so listas de arquivos e outros diretrios. Os diretrios so teis para facilitar a organizao dos arquivos do sistema/usurios. Um disco (ou outro meio de armazenamento) dever ter pelo menus uma partio (que ma diviso lgica) com um sistema de arquivos (que determina como os arquivos so armazenados). Todo arquivo possui uma estrutura interna, seus dados podero ser estruturados na forma de linhas/pargrafos, registros, cdigo ou pixels; outras formas podem ser encontradas e/ou desenvolvidas. O sistema operacional poder acessar os arquivos de diversas formas (sequencial, relativo, ou posio corrente); a escolha do mtodo ir depender do tipo de arquivo/aplicao que est sendo usada. O arquivo possui uma estrutura de dados para seu controle chamada descritor de arquivo, que controla diversas informaes de todos os arquivos do disco; cada arquivo possui um descritor de arquivo; O sistema de arquivos mantm uma tabela de descritores de arquivos abertos para controlar quais arquivos esto abertos e por quais processos em determinado momento; O sistema de arquivos mantm uma outra tabela de arquivos abertos por processo para controlar variveis que so pertinentes para um processo especificamente;

Atividades
1. Montar um programa que faa uma cpia do arquivo criado no exerccio feito pelo cdigo anterior.

118

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

2. SISTEMA DE ARQUIVOS

Na parte anterior, verificamos alguns conceitos fundamentais sobre o sistema de arquivos. Nesta unidade, vamos aprofundar um pouco mais na forma com que o sistema de arquivos gerencia o arquivo no disco, focando principalmente na forma com que os arquivos so armazenados no espao do disco.

Introduo

O HD, tambm chamado de memria secundria, um dispositivo eletromecnico que armazena dados em um disco magntico. Dentro do hd, temos diversos componentes que trabalham de forma integrada. As principais partes internas do disco so (acompanhar na figura 1):

O HD

So os discos magnticos onde as informaes so gravadas. Observando a figura atentamente, pode-se verificar que o HD apresentado contm dois discos magnticos. HDs comuns so fabricados com 2, 3 ou 4 discos, sendo que cada disco gravvel nas duas faces.

Discos (platter)

o componente que grava/l o disco. Esta pea nunca encosta na superfcie do disco e sim fica a uma distncia milimtrica. Para cada disco, h duas cabeas leitoras (uma para cada face).

Cabea leitora

Este componente faz a movimentao da cabea leitora na rea do disco, para que o conjunto localize o local do disco onde est a informao buscada.

Brao de leitura

119

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Hardware, O guia definitivo, disponvel em:

Saiba mais:

<http://www.hardware.com.br/livros/hardware/capitulo-hds-armazenamento.html>

A organizao interna do disco determina como ser o trabalho do hardware e do sistema operacional para gravao/recuperao de dados. Todos os discos possuem a mesma geometria, sendo que neste esquema que ser feito a partio e criado o sistema de arquivos. Na figura H.2 podemos observar o esquema da geometria no caso, representado com 4 discos.

Geometria do disco

Cada superfcie do disco dividida em trilhas (track na figura) e setores (sector na figura); as trilhas so linhas, na forma de crculo concntrico, que so endereadas por um nmero (0,1,2 ...) - a trilha mas externa (a maior delas) recebe o endereo 0. Cada trilha subdividida em setores, de 512 bytes, onde so armazenados as informaes. As trilhas , que esto nas duas superfcies de cada disco so perfeitamente alinhas com os outros discos e suas superfcies. O conjunto de trilhas (de todos os discos) com mesmo endereo formam um cilindro (cylinder na figura). Na figura, vemos que a trilha 0 de todas as superfcies esto alinhadas podemos abstrair este desenho e visualizar o cilindro. Cada cilindro recebe o endereo da trilha.

O hardware do disco faz o controle desta geometria que vem especificado pelo fabricante, por um procedimento chamado formatao fsica. No podemos fazer modificaes nesta formatao, porque implicaria em modificar a geometria do disco. O acesso a um dado em um disco um processo bastante complexo, que envolve diversas interfaces, que fazem tradues at que se possa chegar ao local fsico em que est o dado. Neste subitem, fazemos uma sntese deste procedimento de localizao de informaes.

Acessado um dado

Para que ns usurios possamos acessar uma arquivo, basta informarmos em qual partio, em qual diretrio e qual o nome do arquivo que queremos.

120

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

O processo envia esta informao para o sistema de arquivos (atravs de uma chamada de sistema), que faz uma converso deste endereo para outra informao chamada bloco fsico. O bloco fsico ento enviado controladora do disco, que faz nova converso deste endereo e localiza em qual cilindro, em qual superfcie e em qual setor est a informao buscada.

Unidade H

Uma vez localizado o dado, este lido e enviado pela controladora ao sistema operacional, que repassa ao processo. O sistema de arquivos pode fazer a organizao dos setores lgicos de vrias formas, cada qual com suas vantagens/desvantagens, que iro impactar no desempenho e forma de funcionamento do sistema de arquivo. Evidentemente, alguns mtodos de alocao no so utilizados comercialmente, enquanto outros se aproximam bastante dos mtodos de alocao nestes sistemas.

Alocao de arquivos

Descritor de ARQ1
inicio = 3; fim = 6;

Descritor de ARQ2
inicio = 8; fim = 10;

Descritor de ARQ3
inicio = 11; fim = 12;

Observa-se que os arquivos ocupam blocos fsicos do disco em sequncia, por outro lado, se ARQ2 precisar aumentar de tamanho, no h blocos contguos disponveis. Em outras palavras, temos espao em disco disponvel, mas no podemos alocar para ARQ2. Uma soluo seria reorganizar todos (ou parte) dos arquivos para que o espao disponvel passe a ficar contguo. Vantagens
simplicidade para implementao; velocidade na busca de todos os blocos do arquivo;

Desvantagens

inviabiliza/dificulta o crescimento do arquivo.

121

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Para resolver o problema do crescimento de arquivos, precisa-se de um mecanismo que facilite este crescimento. Para isto, utiliza-se uma estrutura de dados em que o cada bloco sabe o endereo do prximo bloco do arquivo. A figura H.4 procura demonstrar este recurso. No disco hipottico apresentado, h 3 arquivos e seus descritores de arquivo simplificados so:

Alocao encadeada

Descritor de ARQ1
inicio = 3; tamanho = 4;

Descritor de ARQ2
inicio = 8; tamanho 4;

Descritor de ARQ3
inicio = 11; tamanho = 3;

Cada bloco fsico reserva uma parte de seu espao para registrar o endereo do prximo bloco, por exemplo 4 bytes. Desta forma, o arquivo no cresce de forma contgua, o que pode ser observado em ARQ2, que est espalhado pelo disco. Alm disso, o bloco descritor no aponta mais o fim do arquivo e sim seu tamanho. O ltimo bloco de cada arquivo aponta para um endereo chave -1 (que no caso indica fim do arquivo). Vantagens
permite o crescimento do arquivo; velocidade na busca de todos os blocos do arquivo;

Desvantagens

perde espao em disco para fazer o encadeamento - para blocos de 4 Kbytes, utilizando 4 bytes de cada bloco, perde-se 0,1% do espao em disco para este controle. NO permite acesso relativo para acessar o bloco 4 de ARQ2, precisamos percorrer todo o arquivo o que um problema para arquivos grandes;

A alocao indexada permite o crescimento do arquivo alm de permitir o acesso relativo. Neste sistema, a lista de blocos ocupados pelo arquivo transferida para dentro do descritor de arquivo, onde uma lista indexada criada e armazena os endereos do prximo bloco. A figura H.5 procura demonstrar este esquema. No disco hipottico apresentado, h 2 arquivos, que so ARQ1 e ARQ2.

Alocao indexada

122

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Cada descritor de arquivo possui uma tabela indexada que registra o endereo do prximo bloco do arquivo, permitindo por exemplo buscarmos diretamente ; desta forma, podemos permitir o crescimento do arquivo e tambm acessar qualquer registro do arquivo diretamente. Para permitir arquivos maiores, teramos que ter uma tabela de ndices maior - por exemplo para arquivos de 2GBytes precisamos de uma tabela com 500.0001 ndices, o que ir consumir muita memria (j que os descritores de arquivos ficam carregados na memria). Vantagens
permite o crescimento do arquivo; permite acesso relativo;

No entanto, o crescimento do arquivo limitado ao tamanho da tabela de ndices, que no caso da figura H.5, poderemos enderear 10 blocos de 4KB cada, o que nos permite um arquivo de tamanho mximo de 40KBytes (que um tamanho de arquivo bem limitado).

Desvantagens

crescimento de arquivo limitado ao tamanho da tabela de ndices;

Para resolver o problema do crescimento de arquivos, adota-se nveis de indireo na tabela de indexao. O mtodo de localizao fica muito parecido com o mtodo de indexao convencional. A figura H.6 procura representar o mecanismo2.

Alocao com nveis de indireo na indexao.

1. 2GB / 4KB = 500.000 2. Deve-se considerar que no possvel representar muitos blocos fsicos.

123

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

No descritor de arquivos, que agora contem 11 ndices, os 10 primeiros ndices so apontadores diretos, ou seja, apontam blocos os blocos fsicos do arquivo diretamente o que permite um arquivo de at 40KB3 . Para permitir o crescimento do arquivo, utiliza-se o ndice de nmero 10 aponta para um bloco fsico no disco (no caso bloco 18) que por sua vez funciona como um indexador.

Como cada bloco fsico contm 4KB e um cada indexador ocupa 4bytes, podemos ter em um bloco fsico 1024 ndices. Verifica-se que o bloco 18 est apontando para 1024 blocos fsicos (no possvel desenhar isto); o que nos permite aumentar nosso arquivo para 4,2MBytes. Considerando que 1KB = 1024B ento 4KB = 4096bytes o valor exato disponibilizado :

Como Fazer:

(4096 x 10 ndices diretos) + (1024 ndices indiretos x 4096) = 4235264 bytes que arredondando d 4MBytes.

E se precisarmos de um arquivo maior, usamos dois nveis de indireo (apontador duplamente indireto, que no caso, ir apontar para 1024 APONTADORES de 1024 blocos fsicos de 4KB. Isto permite ao arquivo atingir 4,2GBytes.

3. Sempre considerando blocos fsicos de 4KB.

124

Unidade H
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Considerando que 1KB = 1024B ento 4KB = 4096bytes o valor exato disponibilizado com apontador duplamente indexado : (4096 x 10 ndices diretos) + (1024 ndices indiretos x 4096) + (1024 x (1024 ndices indiretos x 4096))= 4299202560 bytes, que arredondando d 4GBytes.

Como Fazer:

E se ainda assim, nosso arquivo precisar aumentar de tamanho, lanamos uso do apontador triplamente indexado, que aponta para 1024 APONTADORES, onde cada um apontam para 1024 outros APONTADORES, que por sua vez apontam para 1024 blocos fsicos de 4K. Isto permite ao arquivo atingir 4,4TBytes o que, para os padres atuais, considerado um arquivo bem grande. Considerando que 1KB = 1024B ento 4KB = 4096bytes o valor exato disponibilizado com apontador duplamente indexado : (4096 x 10 ndices diretos) + (1024 ndices indiretos x 4096) + (1024 x (1024 ndices indiretos x 4096)) + (1024 x (1024 x (1024 ndices indiretos x 4096))) = 4402345713664 bytes, que arredondando d 4,4 TBytes. Normalmente, um computador pessoal precisa ter acesso a diversos sistemas de arquivos porque acessamos diversas mdias normalmente cada tipo de mdia tem seus prprio sistema de arquivos, por exemplo:

Como Fazer:

Mltiplos sistemas de arquivos

CDROM sistema de arquivos ISO9660; DVDROM sistema de arquivos UDF ou RAW; Carto de memria sistema de arquivos FAT16, FAT32 e suas variaes;

Desta forma, o sistema operacional precisa reconhecer e manipular diversos sistemas de arquivos. Logo h necessidade de uma interface universal para todos estes mecanismos para gerenciamento de arquivos. Os dois principais sistemas de arquivos para acesso mltiplo so:
HD com mltiplas parties, cada qual com seu prprio sistema de arquivos; Virtual File System VFS, desenvolvido pela SUN; File System Switch FSS, desenvolvido pela AT&T;

Sntese
O hd um dispositivo eletromecnico complexo, para acessar um dado em sua estrutura interna, preciso que o sistema operacional informe em qual bloco fsico o dado est. Internamente, a controladora do hd transforma esta informao para um endereo contendo Cilindro, Disco e Setor. O sistema de arquivos um mecanismo que organiza e gerencia a forma com que os dados so armazenados. As principais formas organizao so: alocao contgua: simples mas no permite o crescimento do arquivo; alocao encadeada: permite o crescimento do arquivo mas no permite acesso relativo; alocao indexada: permite acesso relativo e um crescimento limitado do arquivo; alocao indexada com nveis de indireo na indexao: permite acesso relativo e um crescimento considervel do arquivo;

125

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Atividades
1. Identificar as quais caractersticas estudados nos mecanismos de alocao clssicos esto presentes nos dois sistemas de arquivos FAT32 (Microsoft) e ext3 (Sistemas Unix-like).

126

Gerenciamento de I/O

Unidade I

Sistemas Operacionais

Unidade I
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

UNIDADE

GERENCIAMENTO DE I/O

Sempre que fazemos uso de um sistema informatizado, seja em um PC; um servidor; um supercomputador; um celular ou smartphone ou at mesmo um forno micro-ondas microprocessado; estamos fazendo uso de dispositivos de entrada (IN) e sada (OUT). Estes dispositivos servem para permitir que ns usurios possamos interagir com o sistema. Para que um PC tenha usabilidade (sirva para alguma coisa), precisamos de no mnimo um teclado; um mouse e um monitor; sem os quais no temos interao com a mquina. Nesta unidade vamos estudar como o sistema operacional faz o gerenciamento de I/O.

Introduo

Verifica-se que existe uma grande diversidade de dispositivos de entrada e sada para computadores. Diante desta variedade, podemos fazer algumas classificaes:

Dispositivos de I/O

Quanto a funo Armazenamento

Os dispositivos de armazenamento servem para armazenar arquivos que representam dados de usurios ou programas de usurios. Nesta categoria, h uma variedade bastante grande de dispositivos, que por sua vs so encontrados em grande variedades de tipos, tamanhos, formatos. Estas caractersticas iro variar conforme a aplicao a que dispositivos se destina, no entanto seu funcionamento bsico ser sempre o mesmo. So exemplos de dispositivos de armazenamento:
HD (disco rgido); Leitores de CDROM/DVDROM; Leitores de discos flexveis; unidades de fita magntica;

Cartes de memria.

Esta categoria de dispositivo tem por objetivo permitir que o usurio possa interagir com o sistema. Esta interao pode acontecer de diversas formas e novamente ir depender do objetivo da aplicao. So exemplos de dispositivos de interface humana:

Interface humana

teclado, mouse, monitor; tela para touch (touch-pad, touch-screen); equipamentos de realidade virtual (luvas, culos, etc); sistema de som (microfone, altofalantes);

cmeras de vdeo.

129

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Esta categoria de dispositivo tem por objetivo viabilizar a comunicao ou a interao entre sistemas. Uma comunicao cliente/servidor; um sistema distribudo so exemplos de aplicaes destes dispositivos. So exemplos de dispositivos de comunicao inter-mquinas:

Comunicao inter-mquinas

placa de rede (cabeada, sem fio); bluetooth; USB; WIMAX; Infra-vermelho; I2C.

Outra classificao interessante feita quanto ao sentido da comunicao.

Quanto a direo da comunicao

So dispositivos de entrada de informaes em um sistema. Exemplo:

Dispositivos de entrada
teclado; mouse; microfone; scanner.

So dispositivos de sada de informaes em um sistema. Exemplo:

Dispositivos de sada
vdeo; impressora; alto-falantes.

So dispositivos que permitem tanto a entrada quanto a sada de informaes em um sistema. Exemplo:

Dispositivos de entrada e sada


tela touch-screen placa de rede.

Dentro de um computador, todas as informaes (comandos ou dados) so binrias e so expressas em bytes (1 byte um conjunto de 8 bits). Tipicamente, computadores modernos trabalham com larguras de barramento de 64bits ou 32bits.

Quanto ao tipo de comunicao

Nossos dispositivos tambm podem ser classificados (separados) quanto a forma com que estes bits so transportados entre o dispositivo e o computador. Os dois principais tipos de comunicao de dispositivos com o computador so: Neste tipo de comunicao os bits so enviados em paralelo (simultaneamente) por um caminho chamado barramento. Todas os bits saem e chegam ao mesmo tempo no no device.

Paralelo

Maior interferncia e rudos; Curtas distncias Baixas frequncias;

130

Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

So exemplos de dispositivos paralelos:


Impressora com interface paralela; HDs PATA (antigos) HDs SCSI (antigos) Controladora de vdeo PCI, AGP;

Unidade I

Neste tipo de comunicao os dados da comunicao so postos em uma fila e enviados um aps o outro em um nico fio (meio de comunicao);

Serial

Menor rudo e interferncias (varia conforme a distncia); Maiores distncias;

So exemplos de dispositivos seriais:


Maiores frequncias;

Impressora com interface serial ou USB; HDs SATA (atuais) HDs SAS (atuais) Controladoras de vdeo PCI-X

Atualmente, muitos dispositivos esto sendo migrados para comunicao serial porque este padro permite um aumento da frequncia da comunicao com menor taxa de interferncia. Como consequncia temos um melhor desempenho. Um dispositivo, por qualquer que seja, nunca se conecta diretamente ao barramento do computador sempre necessrio um hardware intermedirio que faz o controle interno do dispositivo e cria uma interface de acesso com o hardware. A figura I.1 procura representar isto.

Ateno:

Interfaceamento

Verifica-se na figura I.1 a representao hipottica de um computador com 2 devices, sendo um HD e uma Placa de rede. O device no est ligado diretamente ao computador; a ligao feita atravs de uma interface, que faz a mediao entre o dispositivo e o computador.

131

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Toda interface precisa e uma controladora dedicada. Esta controladora um processador que o fabricante do device projetou para que seja feito o controle da interface e do prprio device. A controladora conhece a arquitetura interna e os mecanismos de funcionamento do device.

Controladora

A controladora apresenta ao sistema um conjunto de operaes genricas para manipulao dos dados do device; estas operaes genricas so solicitadas controladora do device pelo sistema operacional. A controladora traduz o pedido do sistema operacional para aes de controle do device. So exemplos de operaes genricas:
ler dados - informa ao device que se quer ler algum dado dele; escrever dados - informa ao device que se quer gravar algum dado nele; ler status - para verificar como est a situao do device. Pode estar ocupado, aguardando, hibernando ou algum outra situao especfica do tipo de device; reinicializar - para que o device reinicialize seu mecanismo e controles internos.

Um problema importante saber como o processador enderea ou encontra o dispositivo entre diversos outros. Este mecanismo depende basicamente da arquitetura do hardware em uso.

Endereamento do dispositivo

Neste mecanismo, tpico da arquitetura CISC, os dispositivos de I/O so endereados como se fossem um endereo de memria. Basicamente o espao de endereos de memria dividido e at um endereo memria e dali pra diante I/O o sistema operacional sabe o que est acessando pelo endereo usado. A figura I.2 procura mostrar este esquema de endereamento.

O mapeada em espao de memria

No exemplo hipottico:

O range de 0000 at 7FFF memria, permite uma quantidade de 32 KB; O range 9000 at 90FF endereamento da controladora de som;

132

Unidade I
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Neste mecanismo, tpico da arquitetura RISC, os dispositivos de I/O so endereados diretamente, ou seja, o espao de endereamento de I/O completamente dissociado do espao de endereamento da memria. A figura I.3 procura mostrar este esquema.

I/O mapeada em espao de I/O

No exemplo hipottico

O range de 0000 at 7FFF memria, permite uma quantidade de 32 KB; O range de 0000 at 00FF endereamento da controladora de som;

Como se d a comunicao dos dados entre o dispositivo e o processador. As 3 formas so:

Comunicao com o dispositivo


I/O programada

Neste mecanismo, no h uso de chamada de sistema; O controle de entrada e sada responsabilidade do programador, o que aumenta a complexidade do programa escrito; Processo acessa a I/O mas no sai do processador (muita perda de tempo); Atualmente os sistemas operacionais no permitem mais este tipo de comunicao.

Interrupes
Neste mecanismo, j h uso de chamada de sistema; O processos pede I/O para o sistema operacional, que envia para o device; Quando device tem a resposta, envia uma IRQ (requisio de interrupo) para o processador, que para o que est fazendo e atende o device, levando seus resultados para a rea de memria do processo solicitante; requer mecanismo de controle de IRQ (presente em todos os computadores atuais).

DMA
Direct Memory Accesss Neste mecanismo, j h uso de chamada de sistema; O processos pede I/O para o sistema operacional, que envia para o device; Quando device tem a resposta, entrega direto na rea de memria do processo solicitante; A grande vantagem a economia de tempo do processador (que no se preocupa em fazer o transito de informaes entre I/O e processo; requer circuito controlador de DMA.

133

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Os sistemas de I/O costumam ter algum nvel de complexidade, isto ainda associado a grande diversidade de dispositivos de I/O no mercado; diversos fabricantes; diversos modelos; diversos tipos. Como o sistema operacional controla tudo isto ?

Subsistema de I/O

O subsistema de I/O um mdulo do sistema operacional responsvel por este controle. Os principais objetivos deste subsistema so:
reduzir o nmero de rotinas de acesso (para simplificar); permitir a incluso de um novo device no sistema operacional sem ter que modificar a interface para o usurio final; padronizar o acesso aos devices.

O subsistema de I/O organizado (separado) em 4 camadas fundamentais, cada qual com uma funcionalidade. Cada camada entrega camada superior uma abstrao mais simples para acessar a camada inferior; quanto mais alta a camada mais simples ou padronizado mecanismo de acesso (a abstrao). Aqui por abstrao, entende-se o nvel de complexidade necessrio para acessar o dispositivo. A figura I.4 procura representar este subsistema.

Esta camada representa o hardware propriamente dito todos os dispositivos com suas respectivas interfaces e controladoras. Neste nvel, toda atividade acontece em nvel de comandos eletromecnicos (no caso do HD e leitores de CD/DVD) e eletrnicos.

Primeira camada

Cada device presente na camada de hardware possui seu conjunto prprio de operaes e modo de funcionamento. Nesta camada o sistema operacional faz sua interface com o hardware, para cada hardware presente deve haver um driver fazendo a traduo dos comandos do sistema operacional para o hardware.

Segunda camada

A camada 2 fornece a camada 3 uma viso uniformizada dos dispositivos presentes no computador. Aqui, fica clara a afirmao de Tanenbaum, feita na unidade A, o sistema operacional esconde do programador o hardware e tambm oculta muitas coisas desagradveis relacionadas com interrupes, temporizadores, gerenciamento de memria e outros recursos de baixo nvel.

134

Unidade I
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

O device driver um mdulo de software fornecido pelo fabricante do dispositivo que anexado ao sistema operacional e permite que estes se conversem. O device driver um componente obrigatrio para todos os dispositivos presentes. Nos sistemas operacionais atuais, o device driver costuma ser automaticamente carregado na instalao do dispositivo caso isto no acontea, o dispositivo no funcionar e ser necessrio fazer a instalao manualmente.

Device Driver

O driver sempre dependente do sistema operacional, ou seja, um driver compilado para o sistema operacional GNU/Linux no ser compatvel com o sistema operacional Microsoft Windows1
1. Marcar registrada da Microsoft Corporation

A terceira camada implementa um conjunto de funes comuns a todos os dispositivos aqui no temos mais a diversidade das camadas 1 e 2. Os principais procedimentos implementados so:

Terceira camada

Escalonamento de I/O:

controla o acesso ao dispositivo; busca organizar o acesso do dispositivo principalmente quando h concorrncia pelo recurso; algoritmos escalonadores anlogos ao escalonador do processador;

Denominao:
controla a identificao dos dispositivos, para que o sistema operacional possa fazer referncia a este ou aquele dispositivo. Em Linux, os nomes dos dispositivos podem ser vistos na pasta /dev2 O HD SATA por exemplo: /dev/sda identifica o primeiro HD Sata do sistema /dev/sdb identifica o segundo HD Sata do sistema /dev/sda1 identifica a primeira partio do primeiro HD Sata /dev/sda2 identifica a segunda partio do primeiro HD Sata

Bufferizao:
implementa um mecanismo de memria intermediria para fazer o ajuste entre a quantidade de informao que se quer acessar/gravar em um determinado dispositivo;

Cache de dados:
mecanismo para armazenar os dados mais acessados de um dispositivo, para otimizar o desempenho; alguns sistemas operacionais implementam cache de disco com prefetching, onde o objetivo antecipar a ao do usurio carregar neste cache os prximos arquivos que sero abertos pelo usurio.

Alocao/liberao:
mecanismo que gerencia a reserva e a liberao de um recurso; impressora por exemplo pode ser usada por usurio por vez para controlar isto, implementa-se um mecanismo de spool para enfileirar as requisies dos usurios.

Direitos de Acesso:
controle de permisses de acesso para dispositivos; podemos permitir/negar a utilizao da impressora para este ou aquele usurio.

135

Sistemas Operacionais
Fomento ao Uso das Tecnologias da Informao e Comunicao

Tratamento de erros:
alguns erros podem ser tratados diretamente nesta camada, para diminuir a quantidade de erros ocorridos na prxima camada.

A quarta camada a API que o programador faz uso para manipulao dos dispositivos. Aqui tem-se acesso s funes que iro controlar os dispositivos do computador.

Quarta camada

Sntese
Dispositivos de I/O so responsveis interao entre usurio maquina e mquina mquina. Os dispositivos de i/o podem ser classificados de diversas formas: funo armazenamento, interao homem-mquina, interao mquina-mquina; direo na comunicao entrada, sada e entrada/sada; tipo de comunicao serial / paralelo todo dispositivo precisa de uma interface para trabalhar esta interface um circuito que fica entre o barramento do computador e o dispositivo propriamente dito. Toda interface controlada por um processador dedicado ao dispositivo; os dispositivos de I/O podem ser endereados diretamente ou com o se fossem uma rea de memria; os dispositivos de I/O podem transmitir seus dados de 3 formas I/O programada em que o programador faz todo o controle da transmisso dos dados (mtodo no mais utilizado porque desperdia tempo de processamento); Interrupes - o dispositivo envia uma interrupo ao processador avisando que os dados esto disponveis; o processador para o que est fazendo e envia os dados do device para o processo; DMA o dispositivo de I/O entrega seus dados diretamente na memria do processo solicitante. Para gerenciar os dispositivos o sistema operacional tem um modulo chamado subsistema de I/O, que dividido em 4 camadas distintas; cada camada tem por funo simplificar o acesso ao dispositivos . Este sistema oculta do usurio a verdade sobre o hardware do computador. Primeira camada representa o hardware propriamente dito; Segunda camada representa os drivers de dispositivo que so mdulos de software que fazem a interface entre o device e o sistema operacional. Terceira camada representa uma interface de uniformizao e regulamentao no acesso dos dispositivos, o oferecendo camada superior uma abstrao mas acessvel; Quarta camada representa a API de programao do sistema operacional para o acesso aos dispositivos; possui a abstrao mais alta

2. Dev acrnimo para devices

136

Unidade I
Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense

Atividades
1. Na mquina virtual que configuramos no incio da disciplina, instalamos o sistema operacional GNU/Linux 2.6.32 (distribuio Debian Lenny). Este kernel reconhece automaticamente muitos dispositivos de hardware.
a) listar os drivers carregados com o comando #lsmod; b) manipulao de drivers em linux carregar o driver tun (um driver para tunelamento - criar tuneis de rede) - para carregar o driver # modprobe tun liste novamente os drivers carregado e localize o driver tun remova o driver #rmmod tun liste novamente os drivers carregado e localize o driver tun

137

S-ar putea să vă placă și