1.3 Software

Propaganda
Fundamentos da Programação
12
III. S OFTWARE
Um programa de computador pode ser definido como uma série de instruções ou declarações, em
forma aceitável pelo computador, preparada de modo a obter certos resultados. Também chamado de
software, esse termo é utilizado para indicar a parte funcional de um computador.
Podemos classificar os softwares ou programas em alguns tipos. A seguir é apresentada uma classificação
genérica, que não é exaustiva.
A. Sistemas Operacionais
Como o próprio nome sugere, o sistema operacional (SO) é um software destinado gerenciar a operação
do computador. Tem como função principal controlar os diversos dispositivos do computador e servir
de comunicação intermediária entre o computador e os outros programas normalmente utilizados, o
que permite que esses possam ser executados. O Windows95/98/2000/NT/XP e o DOS são exemplos
de SOs para microcomputadores. Também podemos citar o OS/2, da IBM, e o UNIX.
Um computador, qualquer que seja o seu porte, não funciona sem um SO.
Segundo o modelo de comercialização, podem ser:
Sistemas Proprietários. Aqueles que são pagos e cujo código fonte não pe livremente distribuı́do
(Window, Mac).
Sistemas Gratuitos. Aqueles que não são pagos mas cujo acesso ao código fonto também não é livre
(BeOS).
Sistemas Open Source (Código Aberto). Aqueles cujo código fonte é aberto (Unix, BSD).
Sistemas Livres. Aqueles que são Open Souce e cujo código fonte pode ser alterado de maneira
cooperativa.
Segundo o funcionamento interno, podem ser:
Sistema Monotarefa. Apenas uma tarefa (DOS).
Sistema Multitarefa. Várias tarefas executam simultaneamente (Windows, Linux, Unix).
Sistema Multitarefa Monousuário. (BeOS).
Segundo a arquitetura, podem ser:
Sistema Monolı́tico. (Windows, Linux, Unix).
Sistema em Camadas. (Windows NT)
Sistema Micro-Kernel. (Mac, GNU Hurd).
As principais funções do SO são:
• Gerenciamento de Processos;
• Gerenciamento de Memória (ou de Armazenamento);
• Sistema de Arquivos;
• Acesso à Rede;
• Gerenciamento de Segurança; e
• Acesso ao Hardware.
1) Gerenciamento de Processos: Processo é qualquer programa sendo executado em um computador.
Muitos SOs permitem que vários processos executem concorrentemente, embora com apenas uma
CPU. Essa função existia nos mainframes da década de 60, mas apareceram nos computadores pessoais
apenas nos anos 90. A técnica que permite a execução concorrente de processos na maioria dos SOs
é denominada multitarefa (multitasking). Ela permite a execução de múltiplos processos como se
todos estivessem sendo executados ao mesmo tempo. Em muitos casos, isso é conseguido apenas
pelo chaveamento muito rápido entre qual dos processos está sendo executado em algum momento
particular, de maneira que todos recebam uma pequena fatia do tempo de processamento da CPU.
Quanto mais processos estiverem ativos, em princı́pio menor será a fatia da CPU que cada um recebe.
Entretanto, como a cada processo pode-se associar uma prioridade, em geral a divisão de tempo
entre os processos não é equalitária. Outra tarefa do gerenciamento de processos é evitar deadlocks
(situações sem saı́da) que a execução de várias tarefas interligadas pode acarretar.
UEM/CTC/DIN/Elvio
Fundamentos da Programação
13
2) Gerenciamento de Memória: A memória em um computador está organizada hierarquicamente
considerando o seu tempo de acesso, a partir das mais rápidas: registradores, memória cache, memória
RAM e discos (flexı́vel, rı́gido, ótico, etc.). O gerenciamento de memória do SO coordena o uso dessas
memórias, determinando qual está disponı́vel, qual deve ser reservada ou liberada, e como movimentar
dados entre elas. Essa atividade é usualmente denominada gerenciamento de memória virtual porque
tenta imitar uma situação em que existe apenas um tipo de memória, a memória RAM (principal). Se
um processo requer mais memória do que a quantidade disponı́vel de memória RAM, então a memória
em excesso deve ser alocada em disco, o que causa freqüente transferências de dados entre disco e
memória RAM. Outra função importante do gerenciamento de memória é impedir que um processo
interfira inadvertidamente nos espaços de memória alocados aos outros processos que estão sendo
executados. Isso é conseguido através de uma lista mantida pelo SO que contém todos os espaços de
memória que cada processo está utilizando. Desse modo, áreas de memória que estão inativas podem
ser transferidas para o disco, liberando espaço para outros processos. Essa transferência é conhecida
como swapping.
3) Sistema de Arquivos: Frequentemente um SO inclue um sistema de arquivos. Arquivos são organizados hierarquicamente em uma árvore de diretórios. Embora essa estrutura seja similar entre os
SOs, a sintaxe para representar essa árvore difere. Por exemplo, Unix e seus sucessores utilizam uma
barra (/) para separar ramos da árvore de diretórios, enquanto os SOs da Microsoft utiliza uma barra
invertida (\) para a mesma função. Outra diferença é a distinção entre letras maiúscula e minúscula
nos nomes dos diretórios e arquivos.
4) Acesso à Rede: Muitos SOs possuem implementados uma variedade de protocolos de comunicação
para a conexão do computador em rede. A conexão em rede permite o compartilhamento de recursos,
como arquivos, impressora e outros periféricos.
5) Gerenciamento de Segurança: A segurança em um SO é importante porque o SO permite acesso
a recursos (arquivos, informação pessoal, etc.) que podem conter informação sensı́vel. O SO deve
ser capaz de distingüir requisições a esses recursos que são válidas daquelas que não devem ser
permitidas.
6) Acesso ao Hardware: Um driver é um program desenvolvido para permitir a interação com dispositivos de hardware existentes em um computador. Um driver fornece uma interface de comunicação
através do meio especı́fico utilizado para conectar o dispositivo de hardware e é, portanto, dependente
da configuração do hardware do computador. Essa interface permite o envio de comandos e o recebimento de respostas, status e dados do dispositivo. Exemplos de dispositivos são teclado, impressora,
disco rı́gido, etc.
B. Comandos Básicos do DOS
DATE : Comando que mostra e atualiza a data do sistema operacional. A data deve ser fornecida
como DD.MM.AA ou DD/MM/AA ou DD-MM-AA.
TIME : Comando que mostra e atualiza a hora do sistema operacional. A hora deve ser fornecida
como HH.MM.SS ou HH:MM:SS.
VER : Mostra a versão do sistema operacional.
DIR : Mostra a lista de arquivos de um diretório (pasta). Opções: /P lista o diretório com pausa;
/W lista o diretório na horizontal; e /? mostra todas as opções do comando. O comando
DIR mostra, ao final, o número de arquivos contidos no diretório, o espaço ocupado por
eles e o espaço ainda disponı́vel no disco.
CLS : Limpa a tela o coloca o cursor no canto superior esquerdo.
MKDIR ou MD : Cria um diretório com o nome especificado, a partir do caminho especificado.
Sintaxe: MD [CAMINHO] NOME onde CAMINHO é a posição do novo diretório e NOME é
o nome do novo diretório.
CHDIR ou CD : Muda para o diretório especificado.
RMDIR ou RDCHDIR : Remove o diretório especificado.
TREE : Exibe graficamente a árvore de diretórios. Opções: /F para mostrar os arquivos existentes
dentro dos subdiretórios; e /A para não usar caracteres gráficos.
UEM/CTC/DIN/Elvio
Fundamentos da Programação
14
CHKDSK : Verifica a unidade de disco especificada.
MEM : Exibe informação sobre a memória.
RENAME ou REN : Muda o nome de arquivo.
COPY : Copia arquivo ou grupo de arquivos. Neste comando utiliza os caracteres curinga para
indicar que um ou mais caracters podem ser qualquer um., sendo * para um grupo de
caracteres e ? um único caracter.
DISKCOPY : Copia o conteúdo de uma unidade de disco. Opção: /V para fazer a verificação da
cópia.
XCOPY : Copia arquivos seletivamente. Opções: /M para marcar os arquivos copiados; /D:DATA
para copiar arquivos modificados na data indicada ou após; /S para copiar arquivos em
diretórios e sub-diretórios, exceto quando vazios; e /E para copiar arquivos em diretórios e
sub-diretórios, mesmo quando vazios.
MOVE : Move arquivos de um diretório para outro.
TYPE : Exibe o conteúdo do arquivo especificado.
MORE : Exibe o conteúdo do arquivo especificado, fazendo uma pausa cada vez que a tela é
preenchida.
FORMAT : Realiza a formatação da unidade de disco especificada. Opções: /S para inserir o sistema
operacional DOS na unidade formatada; /4 para formatação de disquetes de baixa densidade;
/Q para formatação rápida; e U para formatar a unidade independentemente de sua condição.
UNFORMAT : Para o caso de formatação acidental, este comando permite tentar recuperar a informação.
Opções: /L para mostrar a lista de arquivos e diretórios; e /TEST para mostrar a informação
sem refazer o disco.
DEL ou DELETE : Para apagar arquivos.
UNDELETE : Para o caso de arquivos terem sido apagados acidentalmente, este comando permite
tentar recuperar o arquivo especificado.
DELTREE : Apaga um ou mais subdiretórios.
C. Comandos Básicos do Unix/Linux
cal : Mostra o calendário.
cat : Mostra o conteúdo de um arquivo.
cd
: Muda para o diretório especificado.
chmod : Muda as permissões de acesso de um arquivo.
chown : Muda o proprietário do arquivo.
clear : Limpa a tela o coloca o cursor no canto superior esquerdo.
cp
: Copia arquivo ou grupo de arquivos.
date : Mostra dia e hora do sistema operacional.
diff : Mostra as diferenças entre dois arquivos.
find : Procura arquivos.
grep : Procura dentro dos arquivos por uma seqüência de caracteres.
history : Mostra a lista de comandos passados.
less e more : Mostra o conteúdo de um arquivo, uma tela de cada vez.
ls
: Mostra o conteúdo de um diretório.
man : Mostra a página de manual do comando especificado.
mkdir : Cria diretório.
mv
: Move (ou renomeia) um arquivo ou pasta.
rm
: Apaga arquivo ou grupo de arquivos.
rmdir : Apaga diretório ou grupo de diretórios.
tail : Mostra as últimas linhas de um arquivo.
wc
: Mostra o número de bytes, linhas e caracteres de um arquivo.
UEM/CTC/DIN/Elvio
Fundamentos da Programação
15
D. Programas Utilitários
São programas destinados a facilitar e agilizar a execução de certas tarefas. Existem utilitários, por
exemplo, para diagnosticar a situação do computador e seus diversos dispositivos (como o Norton
Utilities), para compactar arquivos (como o WinZip), para realização de cópias de segurança (backups),
etc.
E. Programas Aplicativos
São os programas que oferecem serviços diretamento ao usuários. Pode-se incluir nessa categoria os
processadores de texto, as planilhas eletrônicas, os programas gráficos e os sistema gerenciadores de
banco de dados.
1) Processadores de Texto: Esses aplicativos não se limitam a oferecer uma maneira informatizada de
“datilografar” textos. Também podem realizar verificação ortográfica, pré-visualização da impressão,
inserção e formatação de figuras e tabelas, geração de etiquetas e cartas para mala direta e a utilização
de modelos de documentos, o que os tornam bastante úteis. Uma vez armazenado o texto em um
arquivo, que ficará gravado em um disco, ele pode ser alterado livremente e impresso quantas vezes
for necessário.
Dentre os vários editores disponı́veis no mercado, destacamos os seguintes: Microsoft Word, WordPerfect e OpenOffice/BrOffice Writer.
2) Planilhas Eletrônicas: Também denominadas Planilhas de Cálculo, esses aplicativos trabalham
como se fossem “tabelas automáticas” dispostas em folhas (sheets), onde diversos dados podem ser
armazenados e cálculos efetuados sobre eles, tais como orçamentos, previsões, folhas de pagamento
e controle de notas dos alunos. No micro, as folhas transformam-se em uma imagem no vı́deo, que
pode ser bem maior do que as folhas de papel comumente utilizadas para esse fim. Possuem ainda
funções de banco de dados, inserção de figuras e a possibilidade de geração de diversos tipos de
gráficos.
Dentre as mais comuns, destacamos o MS-Excel, o Lotus 1-2-3, Quatro Pro, e OpenOffice/BrOffice
Calc.
3) Programas Gráficos: Permitem a criação de figuras e desenhos, sendo que alguns possuem recursos
extras para animação. Podem ser conjugados com programas que adicionam sons juntos às imagens.
Existem desde os mais simples em termos de recursos e de facilidade de utilização até os altamente
complexos, capazes de produzir desenhos detalhados de peças mecânicas e plantas de edifı́cios.
Dentre os mais simples, temos o Paint (antigamente Paintbrush) e o Photo Editor, fornecidos junto
com o Windows. Dentre os mais sofisticados destacam-se o Corel Draw, o Adobe PhotoShop e o 3D
Studio, para uso artı́stico, e os programas CAD (como o AutoCad), utilizado para projetos mecânicos,
arquitetônicos, etc.
4) Sistemas Gerenciadores de Bancos de Dados: Trata-se de uma coleção de programas que prestamse ao controle de grandes volumes de informações. Permitem efetuar cálculos com os dados por eles
gerenciados, criação de gráficos e de relatórios. Para uso em microcomputadores, pode-se citar o
Paradox, o MS-Access e o Personal Oracle.
5) Compiladores e Interpretadores: São programas utilizados para construir outros programas, e se
caracterizam pelo tipo de linguagem utilizada para realizar essa tarefa. Os softwares citados anteriormente foram criados a partir do uso de compiladores ou de interpretadores, que são programas que
analisam e traduzem para a linguagem do computador (linguagem de máquina) um conjunto especı́fico
de comandos ou instruções escritos em uma linguagem de programação, permitindo o controle do
funcionamento da máquina. Exemplos dessas linguagens: Fortran, Assembly, Basic, Delphi, Visual
Basic, C, C++, Java, HTML.
F. Desenvolvimento de Programas
O ciclo de desenvolvimento tı́pico de um equipamento de informática é dado a seguir.
1) Definição do Problema e Estudo de Viabilidade
UEM/CTC/DIN/Elvio
Fundamentos da Programação
2)
3)
4)
5)
6)
16
Análise do problema
Projeto do Sistema
Programação ou Codificação
Testes e Análise dos Resultados
Documentação
UEM/CTC/DIN/Elvio
Download