Inform´
atica
Prof. Macˆedo FirminoO Mundo dos Softwares e Introdu¸c˜ao aos Sistemas Operacionais
Software
O Hardware n˜ao consegue executar qualquer a¸c˜ao sem receber instru¸c˜oes. Essas instru¸c˜oes s˜ao chamadas de software ou programas de computadores.
O software permite ao usu´ario configurar o computador para que proporcione o valor espec´ıfico de neg´ocio.
Exitem dois tipos de software:
Softwaresaplicativos: executam atividades espec´ıficas de
processamento de dados ou informa¸c˜ao. Isto ´e, manipulam dados ou texto para criar ou fornecer informa¸c˜oes. Estas atividades podem ser: processamento de texto, planilhas eletrˆonicas, gr´afico, multim´ıdia, administra¸c˜ao de dados, etc.
Softwaresb´asicos: ´e a classe de programas que controla e d´a suporte ao hardware. Age como intermedi´ario entre o hardware e os programas de aplicativos. O software aplicativo n˜ao consegue rodar sem o software b´asico. Os sistemas operacionais s˜ao os principais softwares b´asicos.
Software Aplicativos
Software Aplicativo s˜ao desenvolvidos para solucionar um problema em particular ou realizar uma tarefa espec´ıfica.
Um software aplicativo pode ser feito sob medida, especificamente para as necessidades de uma organiza¸c˜ao. A organiza¸c˜ao contrata programadores de computador para projetar, escrever, testar e implementar. Por exemplo, gerenciamento de uma cl´ınica m´edica ou controle de estoque de um supermercado.
Existe uma classe de programas aplicativos, chamados de pacotes, que s˜ao vendido em lojas, cat´alogos ou sites Web. Eles s˜ao criados para uma finalidade espec´ıfica. Os pacotes de aplicativos de uso geral mais utilizados s˜ao as planilhas eletrˆonicas, administra¸c˜ao de dados, processamento de texto, editora¸c˜ao eletrˆonica, gr´aficos, multim´ıdia e comunica¸c˜oes.
Processamento de Texto
O software de computador pessoal mais amplamente usado. Cria memorandos, relat´orios, boletins, propagandas e artigos.
Um pacote comum de processamento de texto consiste de um conjunto integrado de programas, incluindo programa editor,
programa de formata¸c˜ao, programa de impress˜ao, dicion´ario, corretor ortogr´afico, programa de correio eletrˆonico e programas integrados de gr´aficos, mapas e desenho.
Planilha eletrˆ
onica
Transforma a tela do computador em uma folha ou grade com linhas e colunas numeradas. Os usu´arios podem inserir dados num´ericos, texto e f´ormulas.
Os pacotes de planilhas eletrˆonicas s˜ao usados basicamente para apoio `
a decis˜ao, como no processamento de informa¸c˜oes financeiras (por exemplo, em demonstrativos financeiros ou an´alise de fluxo de caixa)
Gerenciamento de Banco de Dados
Encarrega-se do gerenciamento de uma cole¸c˜ao de dados
inter-relacionados. O software pode armazenar, recuperar, atualizar e manipular dados. Tamb´em pode apresentar relat´orio de dados de muitas maneiras e imprimi-los.
Gr´
aficos de Apresenta¸c˜
ao
O software gr´afico possibilita ao usu´ario criar, armazenar e mostrar ou imprimir esquemas, gr´aficos, mapas e desenhos.
Ele permite aos usu´arios absorver mais informa¸c˜oes de forma mais r´apida, identificar rela¸c˜oes e tendˆencias nos dados de forma mais f´acil e dar maior destaque a alguns aspectos.
Esses pacotes normalmente possuem ferramentas de desenho, modelos de apresenta¸c˜ao, diversos estilos de fonte, rotinas de corre¸c˜ao ortogr´afica, ferramentas de gr´aficos e outras para ajudar a montar m´ultiplas imagens dentro de uma apresenta¸c˜ao complexa.
Comunica¸c˜
ao
Este software permite aos computadores localizados pr´oximos ou distantes trocarem dados, codificar e decodificar transmiss˜oes de dados, verificar erros de transmiss˜ao (e corrigi-los automaticamente), comprimir fluxos de dados para uma transmiss˜ao mais eficiente e gerenciar a transmiss˜ao de documentos.
Um exemplo de software de comunica¸c˜ao ´e um navegador (browser ) para acessar arquivos na Internet.
Software B´
asico
O software b´asico pode ser agrupado em trˆes categorias principais:
Programas de controle do sistema: s˜ao programas que controlam o uso de hardware, software e recursos de dados do sistema computacional durante a execu¸c˜ao de uma tarefa de processamento de dados pelo usu´ario. O sistema operacional ´e o melhor exemplo de programa de controle do sistema.
Programas de desenvolvimento de sistemas: ajudam os usu´arios a desenvolver programas e procedimentos de processamento de informa¸c˜oes e a preparar aplicativos de usu´ario. Os principais programas de desenvolvimento s˜ao compiladores, tradutores e interpretadores de linguagem.
Software - Software B´
asico
Programas de suporte do sistema: d˜ao suporte `as opera¸c˜oes, gest˜ao e usu´arios do sistema computacional, fornecendo-lhes uma infinidade de servi¸cos. Exemplos de programas de suporte do sistema s˜ao:
monitores de desempenho e de seguran¸ca, verificar a integridade de discos magn´eticos, restaurar arquivos apagados por engano, localizar arquivos dentro da estrutura de diret´orio e Anti-v´ırus.
Introdu¸c˜
ao a Sistemas Operacionais
O principal componente de software b´asico ´e um conjunto de programas conhecido coletivamente como sistema operacional. O sistema operacional controla a comunica¸c˜ao do computador com o monitor, a impressora e os dispositivos de armazenamento. Ele tamb´em recebe e encaminha as entradas inseridas por meio do teclado e outras fontes de entrada de dados.
Os programas que rodam no computador utilizam diversos recursos controlados pelo sistema operacional. Esses recursos incluem o tempo da CPU, a mem´oria principal e os dispositivos de entrada/sa´ıda. O sistema operacional procura alocar o uso desses recursos da forma mais eficiente poss´ıvel.
O sistema operacional tamb´em faz a interface entre o usu´ario e o hardware para o usu´ario final disp˜oem de um sistema mais amig´avel.
Introdu¸c˜
ao a Sistemas Operacionais
O sistema operacional executa as seguintes fun¸c˜oes:
Gerenciamento de tarefas: ´e o preparo, agendamento e monitoramento de tarefas (programas) para processamento pelo sistema
computacional.
Gerenciamento de recursos: ´e o controle do uso dos recursos do sistema computacional utilizados pelos outros programas do software b´asico e software de aplicativos sendo executados no computador. Esses recursos incluem: a mem´oria principal, a mem´oria secund´aria, o tempo de processamento da CPU e os dispositivos de entrada/sa´ıda. Gerenciamento de dados: ´e o controle da entrada/sa´ıda dos dados, bem como sua localiza¸c˜ao, armazenamento e recupera¸c˜ao. Controlam a aloca¸c˜ao dos dispositivos de armazenamento secund´ario, o formato f´ısico e a cataloga¸c˜ao do armazenamento de dados, bem como a movimenta¸c˜ao dos dados entre os dispositivos de mem´oria principal e secund´aria.
Introdu¸c˜
ao a Sistemas Operacionais
Hardware Sistema Operacional Programas de Aplicação QWERTYUIOP ASDFGHJKL ZXCVBNM Num Lock 7 4 1 / 8 5 2 * 9 6 3 0 -+ Scroll Lock Print Scrn SysRqPauseBreak F1F2F3F4F5F6F7F8F9F10F11F12 Esc Home EndPageDown Page Up Insert Delete Enter 1234567890 Ctrl Ctrl Alt () * & ^ % $ # @ ! Shift Shift ` ~ Tab Caps Lock -_ = + \ | [ { ] } ; : ' " /? .> ,< End Home PgUp PgDn Del. Ins Num LockCapsLockScrollLockEstrutura de um Sistemas Operacionais
Alguns dos componentes mais relevantes de um sistema operacional t´ıpico s˜ao:
Kernel (n´ucleo): ´e respons´avel pela gerˆencia dos recursos do hardware e distribui os recursos do sistema;
Drivers: m´odulos de c´odigo espec´ıficos para acessar os dispositivos f´ısicos.
Programas utilit´arios: s˜ao programas que facilitam o uso do sistema computacional, fornecendo funcionalidades complementares ao n´ucleo, como formata¸c˜ao de discos e m´ıdias, configura¸c˜ao de dispositivos, manipula¸c˜ao de arquivos, interpretador de comandos (shell), terminal, interface gr´afica, gerˆencia de janelas, etc.
Estrutura de um Sistemas Operacionais
Independentemente do sistema operacional, ao ligar o computador, um programa (chamado de carregador de inicializa¸c˜ao), armazenado em um chip (EEPROM) realiza alguns testes de componentes de hardware e carrega o kernel do disco r´ıgido para a mem´oria principal do computador;
Este processo de carregar o SO para a mem´oria ´e chamado de booting do sistema.
Somente quando necess´ario, o kernel carrega do disco outros programas do sistema operacional (este outros programas s˜ao chamados de n˜ao-residentes).
Sistemas Operacionais Modernos
Os trˆes principais sistemas operacionais modernos:
O Mac OS: ´e propriet´ario da Apple. Ele ´e pouco utilizado (cerca de 8,26%), geralmente em computadores da Apple.
O Windows da Microsoft ´e o dono do mercado com uma fatia superior a 82%, ele ´e um software propriet´ario. Como a licen¸ca ´e muito cara (acima de R$700), a maioria das pessoa usam o sistema de modo ilegal. O Linux ´e um sistema desenvolvido a partir da licen¸ca livre, ou seja, qualquer usu´ario pode usar sem pagar taxa nenhuma, e se a pessoa quiser e souber pode modificar o sistema da maneira como quiser. Ele ainda ´e pouco utilizado (cerca de 5,2%), por´em seu uso vem crescendo.
Mac OS
O Macintosh Operating System (Mac OS) ´e a denomina¸c˜ao do sistema operacional padr˜ao dos computadores Macintosh produzidos pela Apple.
Foi o primeiro sistema gr´afico amplamente usado em computadores a usar ´ıcones para representar os itens do computador, como
programas, pastas e documentos. Tamb´em foi pioneiro na
dissemina¸c˜ao do conceito de Desktop, com uma Mesa de Trabalho com ´ıcones de documentos, pastas e uma lixeira.
Serviu como modelo para o Windows e outros produtos GUI desenvolvidos a partir de ent˜ao.
Mac OS
A vers˜ao atual ´e o Mac OS X. Na sua d´ecima vers˜ao, o sistema foi remodelado como um todo, inclusive o n´ucleo que passou a ser baseado no do Unix BSD.
Linux
O Linux ´e uma familia de sistemas operacionais, descendente do UNIX, que usam o Linux kernel.
O Linux kernel foi criado em 1991 por Linus Torvalds no
departamento de Ciˆencia da Computa¸c˜ao da universidade de Helsinki na Finlˆandia.
Estes sistemas operacionais s˜ao distribu´ıdos gratuitamente pela Internet. Seu c´odigo fonte ´e aberto (software livre).
Isto quer dizer que vocˆe n˜ao precisa pagar nada para usar o Linux, fazer qualquer altera¸c˜ao que desejar e distribuir c´opias para instalar em outros computadores.
A ´unica restri¸c˜ao ´e que as altera¸c˜oes devem ser oferecidas ao p´ublico, sem nenhum custo.
Linux
Diversas empresas oferecem o Linux em um pacote (chamados de distribui¸c˜oes Linux) com programa de instala¸c˜ao, interface gr´afica, documenta¸c˜ao, suporte ao cliente e uma s´erie de utilit´arios e pacotes de aplica¸c˜ao.
Linux - Vantagens
O Linux tem diversas vantagens em rela¸c˜ao ao Windows:
Baixo custo: o Linux ´e baseado em software livre. Por isso, as
empresas que distribuem o sistema n˜ao cobram pelo sistema em si, mas por servi¸cos adicionais como publica¸c˜ao de manuais, suporte,
treinamento, etc.
Seguran¸ca: qualquer instala¸c˜ao ou altera¸c˜ao do sistema requer a autoriza¸c˜ao do “usu´ario root”, que ´e uma esp´ecie de usu´ario especial do sistema. Com isso, dificilmente um v´ırus ou programa malicioso ser´a instalado a n˜ao ser que vocˆe autorize, inserindo sua senha e nome de usu´ario.
Estabilidade: rara as vezes que ele trava.
Suporte on-line: com o Linux, vocˆe tem suporte de um grande n´umero de f´oruns, busca online e v´arios sites dedicados sobre o assunto. Capaz de rodar em m´ultiplas arquiteturas (palms, celulares, pcs, entre outros)
Linux - Desvantagens
As desvantagens do Linux em rela¸c˜ao ao Windows:
Escassez de aplicativos: o Windows ainda possui uma maior diversidade de programas (principalmente jogos). Por´em, `a medida que o Linux ganhar mais usu´arios esta desvantagens tender´a a desaparecer.
Windows
Sistemas Operacionais - Alocamento de Recursos
Agora iremos estudar uma das principais fun¸c˜oes do SO, o alocamento de recursos. A aloca¸c˜ao de recursos corresponde a atribuir recursos do computador a certos programas.
Principais quest˜oes relacionadas `a aloca¸c˜ao de recursos s˜ao:
Gerenciamento da Unidade Central de Processamento (CPU); Gerenciamento da Mem´oria;
Gerenciamento de Arquivos; Gerenciamento de Processos; Gerenciamento de Impress˜ao.
Gerenciamento da CPU
Multiprocessamento: corresponde a diversos processadores, dentro de um mesmo sistema de computa¸c˜ao, executando programas diversos ou cooperando na execu¸c˜ao de um mesmo programa.
Visto que a maioria dos computadores atualmente possuem uma ´
unica CPU, todos os programas devem compartilh´a-la. Para isso, foi definido:
Multiprograma¸c˜ao: corresponde a diversos programas distintos
(multitarefa) executando concorrentemente em um mesmo processador;
Tempo compartilhado: caso particular da multiprograma¸c˜ao onde cada usu´ario se conecta ao computador por meio de um terminal.
Gerenciamento da CPU - Multiprograma¸c˜
ao
A multiprograma¸c˜ao envolve dois ou mais programas sendo executados “ao mesmo tempo”, ou seja, concorrentemente.
Neste caso, um programa ´e executado durante determinado tempo e depois outro programa ´e executado (nunca simultaneamente);
Como a alternˆancia entre os programas ocorre de forma muito r´apida, todos os programas parecem estar sendo executados ao mesmo tempo.
Esta abordagem ´e baseada em um sistema de interrup¸c˜ao. Uma interrup¸c˜ao suspende o processamento para permitir a execu¸c˜ao de um outro programa. Depois que o segundo programa ´e executado, o sistema operacional retorna a CPU a outro programa.
Gerenciamento da CPU - Multiprograma¸c˜
ao
CPU Inativo tempo tempo Firefox Firefox Firefox Player PlayerGerenciamento da CPU - Multiprograma¸c˜
ao
Por exemplo:
Suponha que diversos programas estejam em execu¸c˜ao em um computador: dois s˜ao o Firefox e o Movie Player.
Quando o Firefox precisa obter os dados de um determinado site, esse programa ´e interrompido, enquanto o SO se encarrega de obter os dados. Neste instante, o SO pode alocar a CPU para o programa de v´ıdeo. O Movie Player passa ent˜ao a apresentar trechos de um v´ıdeo armazenado na mem´oria.
Quando o SO obt´em informa¸c˜oes sobre o site, uma interrup¸c˜ao ´e gerada. O SO suspende o Movie Player e ent˜ao determina qual programa retornar´a a CPU (neste caso o Firefox).
Gerenciamento da CPU - Tempo Compartilhado
O compartilhamento de tempo ´e uma extens˜ao da multiprograma¸c˜ao. Neste modo, um certo n´umero de usu´arios opera online com a mesma CPU, mas cada um utiliza um terminal de entrada/sa´ıda diferente; Cada usu´ario obt´em uma fatia de tempo (uma fra¸c˜ao de segundos) durante o qual o computador trabalha nas tarefas de um ´unico usu´ario;
Quando ocorre uma interrup¸c˜ao ou quando acaba o tempo do usu´ario, os recursos s˜ao tirados deste usu´ario e oferecidos a outros; Quando vocˆe se senta diante de um terminal, o tempo de resposta do computador ´e t˜ao breve (fra¸c˜ao de segundos) que pode parecer que o computador est´a trabalhando exclusivamente para vocˆe.
Gerenciamento da Mem´
oria
O gerenciamento de mem´oria tem como objetivo fornecer a cada aplica¸c˜ao uma ´area de mem´oria pr´opria, independente e isolada das demais aplica¸c˜oes e inclusive do n´ucleo do sistema;
Para isso o SO divide a mem´oria em ´areas (parti¸c˜oes) distintas; O isolamento das ´areas de mem´oria das aplica¸c˜oes melhora a estabilidade e seguran¸ca do sistema como um todo, pois impede aplica¸c˜oes com erros (ou aplica¸c˜oes maliciosas) de interferir no funcionamento das demais aplica¸c˜oes;
Os SOs colocam os programas que aguardam para ser executados em filas, baseando-se em sua prioridade. Desta forma, os programas s˜ao classificados em:
Primeiro plano: para programas com alta prioridade, que receber˜ao mais tempo de CPU (por exemplo, o gerenciador do mouse).
Segundo plano: para programas com menor prioridade, que receber˜ao menos tempo de CPU (por exemplo, um editor de texto).
Gerenciamento da Mem´
oria - Mem´
oria Virtual
Se vocˆe tivesse que carregar o sistema operacional, um programa de e-mail, um navegador e um processador de texto simultaneamente dentro da mem´oria RAM, provavelmente a capacidade da mesma n˜ao seriam suficientes.
Desta forma, in´umeros SOs modernos utilizam o conceito de mem´oria virtual. Com a mem´oria virtual, o computador pode procurar por ´
areas da RAM que n˜ao foram usadas recentemente e copi´a-las para o disco r´ıgido (HD). Isso liberar´a espa¸co na RAM para carregar um novo aplicativo.
Consequentemente os programas em execu¸c˜ao no momento est˜ao armazenados em disco e trechos desses programas s˜ao enviados a mem´oria quando necess´ario.
Gerenciamento da Mem´
oria - Mem´
oria Virtual
A velocidade de leitura/escrita de um disco r´ıgido ´e muito mais lenta do que a da RAM. Desta forma, se o sistema depende muito da mem´oria virtual, vocˆe notar´a uma queda significativa no desempenho. O principal mecanismo de implementa¸c˜ao da mem´oria virtual ´e:
Pagina¸c˜ao: ´e o processo de dividir um programa em partes de igual tamanho, denominadas p´aginas e armazen´a-las em espa¸co de mem´oria de igual tamanho (geralmente 4 KiB (kibibyte) = 4.096 bytes)
denominados molduras de p´aginas (page frames). Ou seja, o OS divide a mem´oria em p´aginas pequenas, de tamanho fixo e uma tabela de p´aginas controla as localiza¸c˜oes na mem´oria.
Gerenciamento da Mem´
oria - Mem´
oria Virtual
Memória Principal LOAD A Tabela de Páginas Disco A A |Busca referência Localiza a página
Carrega a página e atualiza a tabela de páginas A C D F E B H
P´aginas menores, menor fragmenta¸c˜ao interna. Entretanto, p´aginas maiores, menores os gastos com as tabelas de p´aginas e mais eficientes as transferˆencias (E/S) em discos.
Gerenciamento da Mem´
oria
Em resumo, o SO ´e respons´avel pelas seguintes atividades em rela¸c˜ao `
a gerˆencia de mem´oria:
Manter registro de quais partes da mem´oria est˜ao sendo usados e por quem;
Alocar e desalocar espa¸co na mem´oria, conforme necess´ario; N˜ao permitir que um processo (sem permiss˜ao) acesse um endere¸co destinado a outro processo.
Gerenciamento de Arquivos
Um arquivo ´e uma cole¸c˜ao de informa¸c˜oes relacionadas. Normalmente, os arquivos representam programas ou dados;
O SO ´e respons´avel pelas seguintes atividades em rela¸c˜ao `a gerˆencia de arquivos:
Controla como os arquivos s˜ao estruturados, nomeados, acessados, usados e protegidos;
Criar e excluir arquivos; Criar e excluir diret´orios;
Gerenciamento de Processos
Um processo ´e um programa em execu¸c˜ao. Ele necessita de certos recursos, incluindo tempo de CPU, mem´oria, arquivos e dispositivos de I/O para realizar suas tarefas;
O SO ´e respons´avel pelas seguintes atividades em rela¸c˜ao `a gerˆencia de processos:
Criar e excluir processos; Suspender e retomar processos;
Gerenciamento de Recursos de Impress˜
ao
Se v´arios programas necessitem imprimir a respectiva sa´ıda, uma ou duas linhas de cada vez, entrela¸cadas com a sa´ıda de outro programa, o documento impresso de nada valeria;
Para contornar esse problema, usa-se um processo chamado spooling. Neste mecanismo o SO recebe os dados que iriam para a impressora de todos os programas interpreta enviando-a para um arquivo em disco;
Quando o programa finalizar a impress˜ao, o arquivo em disco ´e colocado em uma fila para ser impresso quando a impressora estiver dispon´ıvel.
Este processo permite a um programa concluir a execu¸c˜ao muito mais rapidamente. Pois, escrever em disco ´e muito mais r´apido do que escrever em uma impressora.
Adquirindo Software - Licen¸cas
As principais licen¸cas de softwares s˜ao:
Freeware: o autor fornece-o gratuitamente para ser usado por todos. O autor det´em o copyright (o software n˜ao pode ser alterado ou
redistribu´ıdo sem permiss˜ao.). Ele pode impor restri¸c˜oes ao uso. Software Open Source (Fonte Aberta): o c´odigo-fonte ´e
disponibilizado. Outros programadores podem modificar e redistribuir os programas livremente. Os usu´arios ajudam identificando erros (bugs) e na cria¸c˜ao de melhorias.
Shareware: software garantido por copyright, distribu´ıdo gratuitamente para um per´ıodo experimental. Se vocˆe gostar dele, deve registr´a-lo, pagando uma taxa. A maioria dos autores acrescenta documenta¸c˜ao, amplia¸c˜oes, suporte e atualiza¸c˜oes gratuitas para estimular as pessoas a fazer o registro.
´
Etica e Software Aplicativo
Pirataria: a aquisi¸c˜ao e uso ilegal de c´opias de software. Falsifica¸c˜ao: copiar grandes quantidades de CD-ROMs ou
DVD-ROMs e empacot´a-los de forma a se assemelharem aos originais. C´opia n˜ao-autorizada de software ´e roubo.