Prévia do material em texto
Microprocessadores e microcontroladores Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Conceituar os microcontroladores e os microprocessadores. � Listar as diferenças entre microcontroladores e microprocessadores. � Enumerar os principais fabricantes de microcontroladores de 4, 8, 16 e 32 bits. Introdução Neste capítulo, você vai estudar os microprocessadores e os microcon- troladores. Em função de as duas palavras serem muito parecidas, é comum que haja equívocos relacionados aos conceitos. Assim, vamos apresentar neste texto os conceitos, as características e alguns exemplos de utilização de microprocessadores e microcontroladores. Conceito de microprocessadores e microcontroladores Tanto os microcontroladores quanto os microprocessadores são componentes importantes, quando se trata de eletrônica digital. É bastante comum que haja confusões em relação a esses dois elementos, o que inicialmente pode ser explicado pelo fato de terem nomes parecidos, mas a realidade é que os dois possuem características diferentes. Microprocessadores Os microprocessadores também são conhecidos como cérebros dos computado- res, ou seja, são peças fundamentais para o seu funcionamento. Equipamentos como celulares, smartphones e tablets também necessitam de processadores para funcionar. O processador é responsável por carregar e realizar as ope- rações aritméticas e lógicas, que são necessárias para que os programas de computador funcionem. Hoje os processadores permitem a compatibilidade de software, isto é, os softwares não precisam ser desenvolvidos para um modelo específico de processador. Antigamente, porém, cada computador funcionava em uma plataforma diferente, e isso não permitia a compatibilidade entre os diferentes fabricantes de processadores. É bastante comum chamar os microprocessadores de processadores. Tec- nicamente, os processadores são um circuito integrado que realiza tarefas de cálculo e tomada de decisão de um computador. Os computadores e equipa- mentos eletrônicos utilizam o processador para executar as suas funções, ou seja, são esses componentes que os tornam inteligentes. Responsável pela execução das instruções num sistema, o microproces- sador — escolhido entre os disponíveis no mercado — determina, em certa medida, a capacidade de processamento do computador e o conjunto primário de instruções que ele compreende. O sistema operacional é desenvolvido sobre esse conjunto. Internamente, o microprocessador (Figura 1) é subdividido em unidades de trabalho, que operam em frequências elevadas. Uma das mais importantes chama-se ULA (unidade lógica e aritmética), que é responsável pelos cálculos aritméticos e lógicos. Para o funcionamento do microprocessador, são ne- cessários circuitos auxiliares, que permitem a interação com os utilizadores; esses circuitos garantem a comunicação com a memória e os dispositivos de entrada e saída. Figura 1. Microprocessador. Fonte: www.intel.com. Microprocessadores e microcontroladores2 http://www.intel.com/ O que diferencia um microprocessador de outro é a quantidade de instru- ções, o tamanho da palavra interpretada, o barramento de dados e a velocidade de operação. As instruções são códigos que informam o que o processador deverá fazer com os dados. Alguns microprocessadores possuem apenas as instruções mais utilizadas (como microprocessador RISC), já outros (como MMX, 3Dnow e SSE) possuem instruções específicas para controle de recursos multimídia. Atualmente não existe mais essa diferença entre processadores com mais instruções; então, resolveu-se misturar características das duas arquiteturas, a fim de conseguir o melhor desempenho. O tamanho da palavra indica a quantidade de bits interpretados pelo microprocessador a cada ciclo; quanto maior o tamanho da palavra, maior será o desempenho do computador. Esses dados trafegam pelo barramento de dados, entre periféricos, memórias e microprocessadores, levando instruções e dados. Quanto maior o barramento de dados, maior será a desempenho do computador. Em relação à velocidade de processamento, pode-se considerá-la como sendo a rapidez com que as instruções são executadas pelo microprocessador. A velocidade é medida em hertz (megahertz ou gigahertz), que é a unidade de medida de frequência, e é possível trabalhar em duas velocidades: interna e externa. A velocidade interna é a velocidade de instruções dentro do compu- tador, enquanto a externa é a velocidade de comunicação entre o computador e os dispositivos. Microcontroladores Um microcontrolador é um tipo de circuito integrado que tem a possibili- dade de ser programado para realizar tarefas específicas. No mercado, são encontrados diversos fabricantes de microcontroladores, cada um com suas especificidades e características. A escolha do microcontrolador depende bastante da aplicação; portanto, é importante conhecer as características de cada componente. Os microcontroladores possuem periféricos que permitem a realização de várias tarefas, sem depender de muitos outros componentes conectados a eles. Um microcontrolador pode ser considerado uma espécie de computador, constituído de CPU, memória de armazenamento de programa, memória para armazenamento de variáveis, alguns periféricos de comunicação, conversores, entre outros. Os microprocessadores são programados por meio de linguagens de programação, como a linguagem C. 3Microprocessadores e microcontroladores Muitas placas de desenvolvimento (por exemplo, o Arduino) possuem um microprocessador como principal componente. Essas placas são muito comuns entre estudantes, devido à vasta documentação existente e por ser uma plataforma de desenvolvimento de projetos de automação bastante didática. Em nosso cotidiano, muitos equipamentos possuem um microcontrolador interno, como eletroeletrônicos e eletrodomésticos. O timer de um aparelho micro-ondas, o controle remoto de um televisor ou um ar-condicionado, um relógio digital, o controlador de voo de um drone, uma impressora 3D e muitos outros dispositivos podem ser construídos por meio do uso de microcontroladores. Um microcontrolador é constituído dos seguintes componentes internos: � CPU (unidade central de processamento): realiza as operações lógicas e matemáticas programadas. � Frequência de clock: tempo base das operações realizadas pela CPU e dos demais periféricos do microcontrolador. � Memória flash: memória não volátil, que é responsável por armazenar o programa a ser executado. � Memória RAM: memória volátil, que armazena as variáveis do pro- grama temporariamente. � Memória EEPROM: semelhante à memória flash, mas com uma menor velocidade de escrita. � Entradas: pinos configurados como entradas digitais detectam a tensão presente externamente neles, dados alguns valores limiares. Quando essa tensão estiver abaixo de determinado valor, especificado na folha de dados do microcontrolador de interesse, o nível lógico lido é 0. Por outro lado, se estiver dentro de uma faixa próxima do valor de alimentação, também dependente do microcontrolador em questão, o nível lógico lido é 1. � Saídas: pinos configurados como saídas digitais podem ser comandados por meio do software e ter seu valor de tensão alterado. Nível lógico 0 representa valor de tensão nulo, enquanto nível lógico 1 representa valor de tensão de alimentação do circuito. A saída digital dos microcontro- ladores é a principal interface desses componentes com o mundo real, bastando conectar um LED e fazê-lo piscar, ou um pequeno alto-falante para emitir um sinal sonoro. Microprocessadores e microcontroladores4 Diferenças entre microprocessadores e microcontroladores Um microcontrolador difere de um microprocessador em vários aspectos, mas o primeiro e mais importante se refere à funcionalidade. O funcionamento de um microprocessador depende de outros elementos, como memória, chipsets e componentes para receber eenviar dados. Já o microcontrolador é projetado para ter essas funcionalidades em um único chip. No caso do microprocessador, não são necessários os componentes externos para as suas aplicações, pois os periféricos já estão contidos nele mesmo. Isso faz com que se poupe tempo na elaboração de novos projetos. Tanto os microprocessadores quanto os microcontroladores realizam al- gumas operações, que são buscar as instruções da memória e executá-las (operações aritméticas ou lógicas); os resultados dessas execuções são usados para servir a dispositivos de saída. As instruções eletrônicas, representadas por um grupo de bits, são obtidas a partir de sua área de armazenamento, que é chamada de memória. Num cenário prático, suponha que você precisa acender a luz de um quarto a partir de um controle remoto. O custo de um microprocessador é elevado, e são necessários todos os outros componentes de um computador, como memória para rodar o sistema operacional e saídas USB/paralela para utilizar a saída; além disso, ainda seria preciso realizar a programação via alguma linguagem, para acender ou apagar uma luz com um relé. Outro cenário seria utilizar um chip microcontrolador, que teria tudo embutido, e usar uma porta digital para acionar o mesmo relé, sem sistema operacional, grandes quantidades de memória e outros recursos. A autossuficiência dos microcontroladores os torna a escolha ideal para pequenos dispositivos eletrônicos, como cafeteiras e brinquedos eletrônicos. Geralmente, os microcontroladores são pré-programados quando eles estão incluídos — ou incorporados — nos dispositivos eletrônicos. Em comparação com os microprocessadores, a maioria dos microcontroladores funciona na faixa de frequência dos megahertz, o que significa um milhão de ciclos de processamento por segundo. 5Microprocessadores e microcontroladores Famílias de microcontroladores Em se tratando de microcontroladores, pode-se dizer que existem três exem- plos típicos de famílias com características distintas. No Quadro 1, podemos verificar algumas características de cada uma delas. Fonte: Vieira Neto, Introdução... e Caetano (2002, 2003, [200-?]). Família Fabricante Processadores Frequência Memória MCS-51 Intel 8 bits de 10 a 100 MHz 64 K-ROM + 64 K-RAM PIC Microchip 8, 16 e 32 bits 40 MHz 64 K ATmega ATmel 8 bits 20 MHz 256 KB Quadro 1. Características dos microcontroladores. Os microcontroladores 8051, fabricados pela Intel, são considerados os microcontroladores clássicos, pois já estão no mercado há mais de 30 anos e continuam bastante populares. Foram lançados em 1980, como uma evolução do 8048, com uma CPU muito mais rápida (12 MHz), 60.000 transistores, 4 KB ROM, 128 Bytes RAM, 32 linhas de E/S, porta serial, cinco fontes de interrupção e dois temporizadores de 16 bits. O licenciamento de fabricação do 8051 foi permitido por parte da Intel, e hoje existem mais de 50 fabrican- tes da linha MCS-51, entre eles a própria Intel, AMD, ATmel, Dallas, OKI, Matra, Philips, Siemens, SMC e SSI, produzindo mais de 1.100 variantes do projeto original. O Quadro 2 apresenta os membros mais comuns da família 8051, juntamente com algumas características. O modelo mais simples é o 8031, que não possui memória de programa interna, mas tem outras características interessantes em relação a essa família. A compreensão das características de funcionamento de um dos membros da família 8051 garante o entendimento dos demais chips dessa família, inclusive os mais recentes, que já utilizam memória flash rom, como o 8052 e 8752. Microprocessadores e microcontroladores6 Fonte: Arquitetura... ([200-?]). Chip Memória de prog. interna Tipo RAM 8031 0 KB -- 128 8051 4 KB ROM 128 8751 8 KB EPROM 128 8032 0 KB -- 256 8052 8 KB ROM 256 8752 8 KB EPROM 256 Quadro 2. Membros mais comuns dos microcontroladores 8051. A família de microcontroladores PIC surgiu a partir de um projeto de um controlador de periféricos (Peripheral Interface Controller), e é hoje constituída de processadores de 8, 16 e 32 bits. O PIC-16F628A é um microcontrolador de 8 bits produzido pela Microchip Technology Inc., e é considerado como um membro intermediário da família. Suas principais características são descritas a seguir: � arquitetura Harvard-RISC modificada; � encapsulamento de 18 pinos; � clock interno de 4 MHz ou externo de 0 a 20 MHz; � programação serial in-circuit (não é necessário retirar o chip de seu circuito para programá-lo); � memória de 2048 palavras de 14 bits, tipo flash, para programa; � 224 bytes de memória SRAM para dados; � 35 instruções, com modos de endereçamento direto, indireto e relativo; � ULA de 8 bits; � 16 pinos de E/S com controle individual de direção; � dois temporizadores de 8 bits e um de 16 bits; � porta serial síncrona/assíncrona. O sistema Arduino é um projeto de uma plataforma de desenvolvimento baseado em um microcontrolador ATmel AVR ATmega, de hardware e software livre (ou seja, tanto o hardware quanto o software são abertos, com toda a documentação disponível aos usuários), podendo ser utilizado para qualquer 7Microprocessadores e microcontroladores finalidade, sem a necessidade de qualquer tipo especial de licença. A placa básica de hardware conta com uma série de facilidades de conectividade com diversos tipos de dispositivos, como sensores, servomotores, unidades para comunicação serial, USB, Wi-Fi, Bluetooth, Ethernet, displays LCD e muitos mais. Como ferramenta de desenvolvimento de software, conta com um ambiente integrado multiplataforma (Linux, Windows e MacOS), baseado na linguagem C/C++, com uma extensa biblioteca de funções disponível, o que permite o desenvolvimento muito rápido de projetos, sem a necessidade de conhecer os detalhes dos dispositivos com os quais se quer interagir, ou os detalhes do próprio processador. Para isso, o sistema Arduino conta também com uma série de placas acessórias, denominadas shields, que se conectam diretamente com a placa principal, oferecendo diversas funcionalidades. Também é possível trabalhar em “baixo nível”, utilizando a linguagem Assembly do processador. A Figura 2 apresenta a placa considerada hoje como um Arduino padrão: o Arduino Uno. Figura 2. Arduino Uno. Fonte: Eletrodex (2018). O microcontrolador básico utilizado no projeto Arduino é o ATmega 328, mas também estão disponíveis versões com outros membros da família AVR. As principais características do ATmega 328 são as seguintes: Microprocessadores e microcontroladores8 � arquitetura RISC de 8 bits; � 131 instruções, a maioria de 16 bits; � 32 KB de memória flash de programa; � 512 bytes de EEPROM; � seis canais de conversão analógica/digital de 10 bits de precisão; � uma interface serial síncrona/assíncrona; � programação modo ISP (In System Programming). ARQUITETURA de computadores. [200-?]. Disponível em: <https://iesb.blackboard. com/bbcswebdav/institution/Ead/_disciplinas/EADG177/nova/aula16.html>. Acesso em: 5 abr. 2018. CAETANO. CLP: o controlador lógico programável. [200-?]. Disponível em: <https:// sites.google.com/site/ronaldoecaetano/clp>. Acesso em: 5 abr. 2018. ELETRODEX. Arduíno UNO R3. 2018. Disponível em: <http://www.eletrodex.com.br/ arduino-uno-r3-cabo-usb.html>. Acesso em: 04 abr. 2018. INTRODUÇÃO aos microcontroladores. 2003. Disponível em: <http://gec.di.uminho. pt/lecom/li2/material/picbook-pt.pdf>. Acesso em: 5 abr. 2018. VIEIRA NETO, H. Microcontroladores MCS51. 2002. Disponível em: <http://dainf.ct.utfpr. edu.br/~hvieir/download/mcs51.pdf>. Acesso em: 5 abr. 2018. Leituras recomendadas AURELIANO, A. Microcontroladores. 2017. Disponível em: <https://fiozera.com.br/ microcontroladores-914a59cbf7de>. Acesso em: 04 abr. 2018. ELETRÔNICA PROGRESSIVA. Microcontroladores: o que são, para que servem e onde são usados. 2014. Disponível em: <http://www.eletronicaprogressiva.net/2014/08/ Microcontroladores-O-que-sao-Para-que-servem-Onde-sao-usados.html>. Acesso em: 04 abr. 2018.MICROPROCESSADORES: conceitos básicos de computação. [200-?]. Disponível em: <http://iris.sel.eesc.usp.br/sel433a/Micros.pdf>. Acesso em: 04 abr. 2018. MICROPROCESSADORES vs Microcontroladores. [200-?]. Disponível em: <http://adm. online.unip.br/img_ead_dp/30826.PDF>. Acesso em: 04 abr. 2018. NERYS, J. W. L. Notas de aula microprocessadores e microcontroladores. Goiânia: PEQ, 2016. ORDOÑEZ, E. D. M.; PENTEADO, C. G.; SILVA, Al. C. R. da. Microcontroladores e FPGAs: aplicações em automação. São Paulo: Novatec, 2005. 9Microprocessadores e microcontroladores https://iesb.blackboard/ http://sites.google.com/site/ronaldoecaetano/clp http://www.eletrodex.com.br/ http://gec.di.uminho/ http://dainf.ct.utfpr/ http://edu.br/~hvieir/download/mcs51.pdf https://fiozera.com.br/ http://www.eletronicaprogressiva.net/2014/08/ http://iris.sel.eesc.usp.br/sel433a/Micros.pdf http://online.unip.br/img_ead_dp/30826.PDF Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra. Conteúdo: Revisão técnica: Izabelly Soares de Morais Licenciada em Ciência da Computação Mestre em Ciência da Computação Catalogação na publicação: Karin Lorien Menoncin - CRB-10/2147 C796f Córdova Junior, Ramiro Sebastião. Fundamentos computacionais [recurso eletrônico] / Ramiro Sebastião Córdova Junior, Sidney Cerqueira Bispo dos Santos, Pedro Kislansky; [revisão técnica: Izabelly Soares de Morais ]. – Porto Alegre: SAGAH, 2018. ISBN 978-85-9502-394-9 1. Computação. 2. Tecnologia da informação. I. Santos, Sidney Cerqueira Bispo dos. II. Kislansky, Pedro. III. Título. CDU 004 Software Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Conceituar softwares básicos e aplicativos. � Identificar os tipos de softwares. � Exemplificar os tipos de software. Introdução Os softwares fazem parte do nosso dia a dia: sempre que utilizamos um equipamento eletrônico, estamos utilizando um software. Especifica- mente no mundo dos computadores, existem dois tipos de softwares muito importantes: o software básico e o software aplicativo. Neste capítulo, você poderá entender os conceitos de software, verifi- car exemplos de software básico e software aplicativo, além de identificar os tipos de software. Softwares básicos e aplicativos Pode-se dizer que o software é uma sequência de instruções a serem seguidas e/ou executadas, para manipulação, redirecionamento ou modificação de um dado ou uma informação. Ele compreende o conjunto dos componentes lógicos que são necessários para realizar uma tarefa computacional, em oposição aos componentes físicos (o hardware). Os softwares são categorizados em dois grandes grupos: os softwares básicos e os softwares aplicativos. Os softwares básicos são programas que gerenciam todo o funcionamento do computador, além de fornecer uma in- terface com o usuário. Os softwares aplicativos são programas com funções específicas, que nos auxiliam a desenvolver alguma tarefa, como editar um texto ou realizar um cálculo. Softwares básicos Os softwares básicos são responsáveis por tornar o computador funcional, ou seja, realizar a integração entre hardware e software. Todos os componentes de um computador só terão utilidade quando os usuários puderem entender como interagir com os recursos oferecidos por esses equipamentos de hardware. Quem faz essa interface é um software básico chamado de sistema operacional. Além dos sistemas operacionais, são classificados como softwares básicos o ambiente operacional, a interface gráfica, os recursos de rede e os tradutores (de linguagem de programação). O sistema operacional, como o próprio nome diz, permite a operação do computador, por meio do fornecimento de tarefas básicas, como leitura e gravação de dados em disco, gerenciamento de impressão, etc. A interação entre o usuário e o computador é possível por meio de comandos predefinidos pelo sistema operacional, os quais podem ser o encerramento de um aplicativo, o acionamento de um dispositivo, entre outras inúmeras tarefas. Os sistemas operacionais podem ser: � monousuário: apenas um usuário do sistema pode executar tarefas; � multitarefas: permite que mais de uma tarefa seja executada ao mesmo tempo; � multiusuário: permite acesso simultâneo de múltiplos usuários ao computador. O ambiente operacional é responsável pela integração do sistema ope- racional com o usuário, adicionando recursos para permitir a utilização da interface gráfica (GUI – Graphical User Interface). A interface gráfica é um poderoso recurso, pois facilita a utilização dos sistemas operacionais por parte dos usuários. Com a utilização de interface gráfica, os usuários não precisam se lembrar de sintaxes completas dos comandos a serem executados no sistema. Basicamente, uma interface gráfica de sistema operacional possui os seguintes componentes: � ícones: objetos, símbolos ou representações gráficas de arquivos, pro- gramas e comandos; � cursor: dispositivo de posicionamento que é guiado pelo movimento do mouse; � menus: conjunto de opções abertas em lista para a realização de comandos; Software152 � janelas: interfaces que delimitam o espaço utilizado pelas aplicações do sistema. A substituição dos comandos com sintaxes mais complexas pela execução de comandos acionados pela interface gráfica permite uma maior facilidade na execução de comandos como: � switching: alternar de um programa para outro sem a necessidade de encerrar a aplicação atual; � windowing: sobrepor as aplicações na tela pelas janelas e visualizar vários ambientes simultaneamente; � cut-and-paste: retirar um trecho de uma janela e colocar em outra (mover/ copiar e colar); � concorrência: duas ou mais aplicações podem se revezar em relação à utilização do processador. Os tradutores servem para ler uma linguagem de programação e trans- formar o código em linguagem de máquina, ou seja, fazer com que seja entendida por todos os componentes de um computador. Existem três tipos de tradutores: � compilador: responsável pela leitura e análise do código fonte, para a conversão em linguagem de máquina, gerando o programa objeto; � interpretador: interpreta cada comando e executa linha por linha, tra- duzindo a linguagem de alto nível para baixo nível, sem criar a versão executável; � montador: responsável pela leitura da linguagem em baixo nível e transformação em linguagem de máquina (assembly). Softwares aplicativos Um software aplicativo é um tipo de software desenvolvido para auxiliar o usuário na realização de tarefas específicas. Essa característica distingue-o de outros tipos de programas, como os sistemas operacionais (que são os que fazem funcionar o computador) e as linguagens de programação (que permitem desenvolver programas em geral). Os processadores de texto, as planilhas de cálculo e as bases de dados são software aplicativos — o que só vem confirmar que as aplicações compu- tacionais possibilitam a automatização de tarefas. Os softwares aplicativos 153Software para desktops ou notebooks geralmente são denominados aplicativos para escritório, e os que são desenvolvidos para dispositivos móveis são denomi- nados aplicativos móveis. Para a aquisição de softwares aplicativos, existem várias maneiras, de- pendendo da necessidade: � Freeware: o desenvolvedor opta por oferecê-lo gratuitamente a todos. Porém, o freeware é protegido por direitos autorais, ou seja, o desen- volvedor mantém a propriedade legal e pode impor restrições de uso. � Softwares de domínio público: não são protegidos por direitos autorais, podendo ser usados e modificados sem restrições. Geralmente, são softwares patrocinados pelo governo nas instituições de ensino público. � Software livre: é uma variação do freeware; porém, o código fonte é distribuído com o programa, permitindo assim a realização de alterações. Isso ajuda a identificarerros (bugs) e a criar melhorias mais facilmente. � Shareware: é uma categoria de software que muitas vezes é confundida com o freeware. É distribuído gratuitamente como o freeware; no entanto, o usuário precisa desembolsar uma quantia para adquirir a autorização e a documentação dele. � Pacote de softwares: esse tipo de software é protegido por direitos autorais e custa mais do que o shareware. � Software pirata: é uma cópia ilegal de software comercial. Nesse caso, é crime e não deve ser praticado ou incentivado. Tipos de softwares No que diz respeito aos sistemas operacionais e seus tipos, pode-se dizer que os que são comercialmente utilizados em computadores são divididos em plataformas. A Microsoft desenvolve os sistemas operacionais da plataforma Windows (Figura 1), que já possui interface gráfica desde os anos 1990 e é atualmente o sistema operacional mais utilizado em com- putadores no mundo. A empresa Apple desenvolve o sistema operacional MAC OS, que só pode ser utilizado em computadores da Apple, o que limita a sua populariza- ção. O sistema operacional MAC OS, que pode ser visualizado na Figura 2, caracteriza-se por possuir uma qualidade gráfica muito boa. Em termos de popularidade, há também os sistemas operacionais da plataforma Linux, que são baseados em software livre e possuem diversas Software154 comunidades de desenvolvimento. Os sistemas operacionais Linux se carac- terizam pela otimização no gerenciamento de memória, o que garante que, com hardwares não muito avançados, seja possível realizar as operações mais convencionais de um sistema operacional. A Figura 3 apresenta uma imagem do sistema Linux. Figura 1. Sistema operacional Windows. Figura 2. Sistema operacional MAC OS. 155Software Figura 3. Sistema operacional Linux. Os softwares aplicativos são classificados conforme a sua área de atuação, ou seja, em relação à sua finalidade. A seguir, você pode ver algumas categorias de softwares aplicativos: � Aplicativos de escritório: processadores de texto, planilhas eletrônicas, utilitários, comunicação, gerenciadores de informações pessoais, etc. � Aplicativos administrativos: sistemas de faturamento, contas a pagar, folha de pagamento, controle de estoque, controle de produção, con- tabilidade, etc. � Aplicativos de automação comercial: reserva de passagens, contas correntes, pontos de venda, caixas automáticos, etc. � Aplicativos técnico-científicos: cálculo de estruturas, planejamento e controle de projetos, pesquisas operacionais, problemas de engenharia, etc. � Aplicativos de automação industrial: ativação, programação e controle de máquinas e equipamentos, controle de processos, calibração, etc. � Entretenimento: jogos, música, etc. Software156 Exemplificando os tipos de softwares Há um conjunto de softwares aplicativos que são mais utilizados no mercado; estes são considerados softwares padrão em computadores, pois a sua utilidade é notória em diversos tipos de atividades. Esses softwares têm relação direta com a produtividade na realização de diversas tarefas. Os processadores de texto são um tipo de software amplamente utilizado em computadores. Eles permitem criar, editar, armazenar e imprimir textos e gráficos em um documento. O mercado atualmente é dominado por dois aplicativos: o Word, da Microsoft, e o Write, do BR-Office. Na Figura 4, você pode ver o layout de ambos os processadores. Figura 4. Processadores de texto Microsoft Word e Write, respectivamente. As planilhas eletrônicas também são softwares comumente encontrados em computadores, e são usadas como uma ferramenta de negócio para a tomada de decisão. Essas planilhas, cuja tela principal contém inúmeras linhas e colunas, mostram os dados em forma de tabela ou em gráficos bem elaborados, oferecendo aos usuários uma visão que eles não conseguiriam produzir prontamente por conta própria. Os resultados podem ser recalculados de maneira automática, conforme as alterações realizadas. Os dois aplicativos mais comuns no mercado são o Excel, da Microsoft, e o Calc, do BR-Office (Figura 5). 157Software Figura 5. Softwares de planilhas Excel e Calc, respectivamente. Os softwares utilizados para produzir apresentações eletrônicas são comuns tanto em computadores profissionais, quanto nos pessoais. O software de apresentação pode produzir gráficos, mapas e tabelas, e ajuda os seus usuários a comparar dados, detectar tendências com mais facilidade e tomar decisões mais rapidamente, já que a informação visual é mais atraente do que uma página numérica. O mercado é dominado por dois aplicativos: o PowerPoint, da Microsoft, e o Impress, do BR-Office (ambos representados na Figura 6). Figura 6. Softwares de apresentações eletrônicas Microsoft Powerpoint e Impress, respectivamente. Outro tipo de software que pode ser considerado padrão em um computador, in- dependentemente da sua finalidade, são os navegadores de internet, que permitem o acesso a páginas publicadas na internet. Atualmente existem muitos softwares desse tipo; entre os mais comuns, podemos citar o Google Chrome, o Mozilla Firefox, o Internet Explorer e o Opera. Software158 FAZZIO JUNIOR, P. J. >. Introdução à informática. 2002. Disponível em: <http://www.inf. puc-rio.br/~inf1503/material/01_Ap_Nocoes.pdf>. Acesso em: 7 abr. 2018. JUNIOR, M. Introdução à informática: hardware & software. 2014. Disponível em: <https:// docente.ifrn.edu.br/marcelojunior/disciplinas/apostilas/introducao-a-informatica- -hardware-software>. Acesso em: 7 abr. 2018. PACIEVITCH, Y. Software. 2018. Disponível em: <https://www.infoescola.com/informatica/ software/>. Acesso em: 7 abr. 2018. 159Software Sistemas operacionais Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Conceituar sistemas operacionais. � Identificar os tipos de sistemas operacionais. � Exemplificar os tipos de sistemas operacionais. Introdução Os sistemas operacionais são extremamente importantes, na medida em que tornam possível a utilização de computadores. Todos os computa- dores possuem um sistema operacional instalado, com características voltadas para a finalidade do equipamento. Neste texto, você vai entender o conceito de sistemas operacionais, bem como identificar os tipos de sistemas e verificar exemplos de sis- temas operacionais. Conceito de sistemas operacionais Um sistema computacional é basicamente uma combinação entre hardware e software. O hardware é o conjunto de circuitos eletrônicos composto por memória, processador, dispositivos de entrada e saída, entre outros; já o software são os programas utilizados por usuários, como editores de texto, planilhas de cálculo, etc. Entre a camada de hardware e a camada de softwares aplicativos, existe outro tipo de software, que é chamado de sistema operacional (Figura 1). O sistema operacional (SO) pode ser considerado uma camada intermediá ria, que é responsável por fazer a interface de comunicação entre hardware e softwares aplicativos. Todo o gerenciamento dos recursos de hardware é realizado pelo SO, assim como as diretrizes para o funcionamento dos softwares aplicativos também são de responsabilidade dele (MAZIERO, 2017). Figura 1. Esquema das camadas de um computador. Fonte: Bezerra (2010, documento on-line). O sistema operacional pode ser definido também como um conjunto de ferramentas básicas que permitem a utilização de um computador de maneira adequada. Esse conjunto possui um núcleo, conhecido como kernel, e um conjunto de softwares básicos para a execução de operações mais simples, como o gerenciamento do acesso aos periféricos, a manipulação de arquivos e diretórios e o controle de recursos compartilhados. Entre as principais responsabilidades de um sistema operacional, estão: � Gerenciamento de memória: consiste no gerenciamento do espaço alocado especificamente para o sistema operacional na memória, por meio de recursos de paginação e segmentaçãode memória. � Gerenciamento de dispositivos: o sistema operacional deve garan tir o acesso aos periféricos, por meio da utilização dos drivers dos dispositivos. � Gerenciamento de arquivos: todo o processo de organização e ar mazenamentos dos dados, bem como os métodos de acesso são de responsabilidade do sistema operacional. � Gerenciamento de proteção: definição ordenada de acesso simultâneo de diferentes usuários aos recursos compartilhados. Além dessas responsabilidades principais, existem diversas outras res ponsabilidades que foram se acoplando aos sistemas operacionais ao longo do tempo, como a interface gráfica e o suporte à rede. A Figura 2 ilustra a interação dessas responsabilidades de um SO com o kernel. Sistemas operacionais2 Figura 2. Interação entre as responsabilidades do SO e o kernel (núcleo). Fonte: Andrade (2011, documento on-line). Todas essas responsabilidades podem interagir entre si para funcionarem corretamente. Um exemplo clássico é a interação entre a gerência do proces sador e a gerência de memória, pois o processador depende diretamente da memória para o seu perfeito funcionamento. Tipos de sistemas operacionais Quando se trata de classificação de sistemas operacionais, pode-se utilizar diversos parâmetros e perspectivas. Os mais comuns são tamanho, velocidade, suporte a recursos e acesso a rede. Com relação ao tipo de computador que os sistemas operacionais controlam e o tipo de aplicativo que suportam, temos quatro tipos básicos: (i) sistema operacional de tempo real; (ii) monousuário monotarefa; (iii) monousuário multitarefa; e (iv) multiusuário. Os sistemas operacionais de tempo real também são conhecidos como RTOS (Real Time Operating System). Esse tipo de sistema operacional é bas tante utilizado em aplicações em que a confiabilidade no tempo de execução das tarefas e a sua sincronização são primordiais. A execução das tarefas normalmente é bastante específica e de curta duração. Esses sistemas são concebidos com fortes princípios de priorização na execução das tarefas, ou 3Sistemas operacionais seja, as tarefas mais prioritárias podem interromper tarefas menos prioritárias e assumir o controle do processador. O sincronismo se torna importante, na medida em que é o responsável por informar a conclusão da tarefa. Em sis temas de tempo real, existem duas estruturas utilizadas para troca constante de informação: � semáforos ( flags): sinalização booleana (0 ou 1) para troca de mensagens; � filas (buffers): áreas de memória que permitem a transferência de dados entre as rotinas durante a comunicação. Os sistemas operacionais monousuários podem ser monotarefa ou multitarefa. Esses dois tipos de sistemas operacionais têm como principal característica o fato de terem sido desenvolvidos para serem utilizados por um único usuário por vez, ou seja, o processador somente pode ser utilizado por um único usuário. O que diferencia os sistemas monousuá rios monotarefa dos sistemas monousuários multitarefa é o fato de que os sistemas monotarefa podem executar apenas uma tarefa por vez. Já os sistemas multitarefa permitem que o usuário possa realizar mais de uma tarefa ao mesmo tempo. Os sistemas operacionais multiusuários têm como característica principal o fato de permitirem que diversos usuários acessem recursos do processador ao mesmo tempo. Porém, é de responsabilidade do sistema garantir que as tarefas não interfiram umas nas outras. É importante que os recursos sejam separados e bem divididos pelo sistema, a fim de garantir que as ações de um usuário não afetem os demais. Outras categorias de sistemas operacionais são: � Batch (de lote): foram os primeiros sistemas multiprogramáveis a serem implementados. Nesse tipo de sistema operacional, os programas a serem executados são colocados em uma fila, juntamente com os seus dados e as demais informações para execução (Figura 3). A interação com o usuário é pouca ou nenhuma, e o usuário não tem acesso às informações durante o processamento. Devido ao processamento sequencial, o tempo de resposta desse sistema pode ser muito longo. Sistemas operacionais4 Figura 3. Funcionamento de um SO do tipo batch. Fonte: Henrique (2015, documento on-line). � De rede: esse tipo de sistema operacional deve garantir a operação em redes de dados, oferecendo às aplicações locais que estejam em computa dores da mesma rede. Cada máquina da rede terá um sistema operacional local, que é complementado por um sistema operacional de rede. � Distribuído: os sistemas distribuídos possuem os recursos globalmente distribuídos em cada computador, de modo transparente para os usu ários. Os usuários ficam com a impressão de que não existe uma rede de computadores, mas sim um único sistema centralizado. A Figura 4 apresenta um esquema de um sistema distribuído. Figura 4. Esquema de funcionamento do sistema distribuído. Fonte: Dicas (2013, documento on-line). 5Sistemas operacionais � Desktop: esse tipo de sistema operacional é desenvolvido para usuários domésticos e corporativos, com o objetivo de permitir a realização de tarefas do cotidiano, como processamento de textos, navegação na internet, etc. Ele possui interface gráfica amigável, para facilitar a operação por parte dos usuários. � Servidor: o sistema operacional servidor deve garantir o acesso a recur sos como disco, memória e processadores aos computadores clientes de uma rede (Figura 5). A gestão eficaz desses recursos é uma característica marcante desse tipo de sistema operacional. Figura 5. Esquema de funcionamento do SO servidor. Fonte: Marinho ([201-?], documento on-line). � Embarcado: também conhecido como sistema embutido, é desenvolvido para ser utilizado em um tipo específico de hardware, normalmente com poucos recursos de processamento, armazenamento e energia. Exemplos de sistemas operacionais Nesta seção, serão apresentados alguns exemplos de sistemas operacionais, conforme os tipos caracterizados na seção anterior. Sistemas operacionais6 RT Linux O RT Linux é um sistema operacional de tempo real crítico. Seu kernel é uma extensão do Linux que se propõe a suportar tarefas com restrições temporais. Nesse SO, um kernel de tempo real coexiste com o kernel do Linux, e o seu objetivo é permitir que aplicações utilizem os serviços do Linux (comunicação com a rede, sistema de arquivos, controle de processos, etc.) e facilitar esse processo. O Linux é responsável até mesmo pela inicialização do RT Linux e pelos seus drivers (RABELO; LOPES, 2005). MS DOS O MS DOS é um sistema operacional monousuário e monotarefa que foi de senvolvido pela Microsoft na década de 1980. A sua utilização é baseada em um prompt de comando (Figura 6), em que o usuário pode digitar os comandos a serem executados pelo sistema operacional. Esse sistema operacional possui uma grande variedade de comandos, e muitos deles possuem diferentes parâ metros, que devem ser informados para que o comando possa ser executado. Atualmente, alguns sistemas aplicativos mais antigos e com pouca exigência de memória e processamento utilizam o MS DOS. Figura 6. Prompt de comando do MS DOS. Fonte: Alecrim (2010, documento on-line). 7Sistemas operacionais Como o sistema operacional MS DOS não possui interface gráfica, a interação com o sistema por parte do usuário se dá por meio de linhas de comando. Seguem alguns dos comandos básicos do MS DOS: � chdir: é usado para exibir a letra da unidade e a pasta em que você está atualmente; � cls: limpa a tela de todos os comandos inseridos anteriormente; � del: é usado para apagar um ou mais arquivos; � deltree: é usado para apagar um diretório e todos os arquivos e subdi retórios dentro dele; � dir: é usado para exibir uma lista de arquivos e pastas contidos dentro da pasta em que você está trabalhando atualmente; � mkdir: é usado para criar uma pasta; � move: é usado para mover um ou mais arquivos de uma pasta para outra; � rmdir: é usado para excluiruma pasta existente ou completamente vazia; � tree: é usado para exibir graficamente a estrutura de pastas de uma unidade ou um caminho especificado; � type: é usado para exibir as informações contidas em um arquivo de texto. Windows 95 e Windows 98 As primeiras versões do sistema operacional Windows (Windows 95 e Windows 98) eram monousário e multitarefa. Essas versões revolucionaram o mercado de computadores pessoais, uma vez que possuíam uma interface gráfica bastante amigável para os usuários. Em ambas as versões, apenas um usuário poderia utilizar o computador por vez, mas esse mesmo usuário podia utilizar mais de uma aplicação ao mesmo tempo — o que era um diferencial para época. A Figura 7 apresenta a interface gráfica do Windows 98. Sistemas operacionais8 Figura 7. Interface gráfica do Windows 98. Fonte: Santos (2013, documento on-line). Linux O sistema operacional Linux (Figura 8), juntamente com o Windows, é um dos mais utilizados no mundo. Esse sistema operacional pode ser utilizado tanto para usuários finais, quanto para servidores. Além disso, roda em smartphones, tablets, caixas automáticos e outros dispositivos. O Linux não foi concebido para fins comerciais: o seu código é aberto, e existem muitas comunidades de desen volvimento que vêm aperfeiçoando o sistema operacional ao longo do tempo. Figura 8. Interface gráfica do Linux. Fonte: Running... (2016, documento on-line). 9Sistemas operacionais Esse sistema operacional é conhecido por possuir muitos pacotes de de senvolvimento — as chamadas distribuições do sistema operacional. Cada distribuição é desenvolvida por uma comunidade de desenvolvedores e procura manter o foco em características específicas. Por exemplo, a distribuição Ubuntu foca na facilidade de utilização do sistema operacional por parte dos usuários. Outros exemplos de distribuição são Debian, Fedora, Red Hat, CentOS, Slackware, entre outras. Unix O Unix é um sistema operacional multiusuário criado na década de 1960. Apesar de ser muito antigo, também é muito eficiente. É utilizado via linhas de comando e deu origem aos sistemas operacionais da família Linux, que utilizam o Unix no kernel do sistema operacional. Na Figura 9, você pode ver as linhas de comando do Unix. Figura 9. Prompt de comando do SO Unix. Fonte: Sistema... ([200-?], documento on-line). OS/360 O sistema operacional 360 (Figura 10), desenvolvido pela IBM na década de 1960, era um sistema operacional em lote, utilizado em computadores de médio porte com unidades de fita. Ele originou uma família de sistemas operacionais, como o BOS/360 e o TOS/360. Sistemas operacionais10 Figura 10. Sistema operacional OS/360. Fonte: Connor (2012, documento on-line). Windows XP, Vista, 7 e versões mais recentes Desde o Windows XP até as versões mais recentes do Windows, dizse que os computadores para uso doméstico e corporativo são desktops; por isso, essas versões são categorizadas como tal. Essas versões são bem mais estáveis e robustas do que as versões do Windows 95 e Windows 98. Na Figura 11, você vê a interface gráfica do Windows 7. Figura 11. Interface gráfica do Windows 7. Fonte: Windows... (2012, documento on-line). 11Sistemas operacionais ALECRIM, E. Comandos básicos do MS-DOS: introdução. 2010. Disponível em: <https:// www.infowester.com/tutdos.php>. Acesso em: 7 abr. 2018. ANDRADE, G. E. Conceitos básicos: sistemas operacionais. 2011. Disponível em: <http://www.gileduardo.com.br/ifpr/so/downloads/so_aula01.pdf>. Acesso em: 7 abr. 2018. BEZERRA, R. M. Conceitos de sistemas operacionais. 2010. Disponível em: <http:// www2.ufba.br/~romildo/downloads/ifba/inf400_conceitos_so.pdf>. Acesso em: 7 abr. 2018. CONNOR, D. Where were the bullet holes on OS/2’s corpse? Its head ... or foot? 2012. Disponível em: <https://www.theregister.co.uk/2012/11/26/os2_final_fail/?page=2>. Acesso em: 7 abr. 2018. DICAS. O que é um sistema distribuído? 2013. Disponível em: <http://tecnologia.cultu- ramix.com/dicas/o-que-e-um-sistema-distribuido>. Acesso em: 7 abr. 2018. HENRIQUE, W. Abstração de recursos: gerência de recursos - atividades - bach (lote). 2015. Disponível em: <http://wagnerhenriqueberlezirodrigues.blogspot.com.br/p/ abstracao-de-recursos.html>. Acesso em: 7 abr. 2018. MARINHO, N. Servidores de Internet. [201-?]. Disponível em: <https://naianemarinho. wordpress.com/servidores-de-internet/>. Acesso em: 7 abr. 2018. MAZIERO, C. A. Sistemas operacionais: conceitos e mecanismos: VIII - aspectos de segurança. 2017. Disponível em: <http://wiki.inf.ufpr.br/maziero/lib/exe/fetch. php?media=so:so-cap08.pdf>. Acesso em: 7 abr. 2018. RABELO, D. M.; LOPES, J. F. RTLinux: sistema operacional de tempo real baseado em Linux. 2005. Disponível em: <www.macedo.ufba.br/textofabricio%20e%20outros. doc>. Acesso em: 7 abr. 2018. RUNNING Linux on the Surface Pro 3. 2016. Disponível em: <https://cd-rw.org/t/ running-linux-on-the-surface-pro-3/175>. Acesso em: 7 abr. 2018. SANTOS, M. A história do windows: windows 95 e windows 98. 2013. Disponível em: <https://windowsdainformacao.wordpress.com/2013/08/26/a-historia-do-windows- -windows-95-e-windows-98/>. Acesso em: 7 abr. 2018. SISTEMA operacional unix. [201-?]. Disponível em: <https://www.grupoescolar.com/ pesquisa/sistema-operacional-unix.html>. Acesso em: 7 abr. 2018. WINDOWS 7 (Estilos visuais do Win 7). 2012. Disponível em: <https://br.ccm.net/ download/baixaki-480-windows-7-estilos-visuais-do-win-7#opinions>. Acesso em: 7 abr. 2018. Sistemas operacionais12 http://www.infowester.com/tutdos.php http://www.gileduardo.com.br/ifpr/so/downloads/so_aula01.pdf http://www2.ufba.br/~romildo/downloads/ifba/inf400_conceitos_so.pdf https://www.theregister.co.uk/2012/11/26/os2_final_fail/?page=2 http://tecnologia.cultu/ http://ramix.com/dicas/o-que-e-um-sistema-distribuido http://wagnerhenriqueberlezirodrigues.blogspot.com.br/p/ http://wordpress.com/servidores-de-internet/ http://wiki.inf.ufpr.br/maziero/lib/exe/fetch. http://www.macedo.ufba.br/textofabricio%20e%20outros. https://cd-rw.org/t/ https://windowsdainformacao.wordpress.com/2013/08/26/a-historia-do-windows- https://www.grupoescolar.com/ https://br.ccm.net/ Leituras recomendadas OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas operacionais. Revista de Infor- mática Teórica e Aplicada, v. 8, n. 3, dez. 2001. Disponível em: <http://www2.unitins. br/BibliotecaMidia/Files/Documento/BM_633536494556679022sistemasoperacion ais.pdf>. Acesso em: 7 abr. 2018. PUHLMANN, H. Sistemas operacionais de tempo real: introdução. 2014. Disponível em: <https://www.embarcados.com.br/sistemas-operacionais-de-tempo-real-rtos/>. Acesso em: 7 abr. 2018. 13Sistemas operacionais http://www2.unitins/ https://www.embarcados.com.br/sistemas-operacionais-de-tempo-real-rtos/ Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra. C13_Software