Sistemas de Informações Fundamentos da Computação 3. Software Márcio Aurélio Ribeiro Moreira [email protected] http://si.uniminas.br/~marcio/ Software Para tirar todo o proveito do hardware, precisamos de software que são: Classificados em: Arquitetura: Aplicativos Software Utilitários Básicos Básico Utilitários Aplicativos Hardware Márcio Moreira 3. Software – Slide 2 Fundamentos da Computação Software básico Conjunto de programas que definem o padrão de comportamento do equipamento, tornando-o utilizável, ou seja, são os programas usados para permitir o funcionamento do hardware. Sistema Operacional Interpretador Tradutores Compilador Básico Montador Márcio Moreira 3. Software – Slide 3 Fundamentos da Computação Sistema operacional Responsável pelo gerenciamento do hardware e dos demais softwares. Seu propósito é prover um ambiente onde o usuário possa executar programas de forma conveniente e eficiente. Essencialmente é um gerenciador de recursos: Processos, memória, sistema de arquivos e dispositivos de I/O (input = entrada / output = saída). Em outras palavras: Controla os programas que estão sendo executados. Gerencia o uso da memória principal alocando, usando e liberando memória. Controla discos, pastas e arquivos. Gerencia dispositivos: teclado, mouse, monitor, placa de rede, modem, impressora, etc. Permite a interação do usuário com a máquina. Márcio Moreira 3. Software – Slide 4 Fundamentos da Computação Tipos de sistema operacional Mono-usuário: Apenas uma pessoa o utiliza por vez. Ex: MS-DOS, DR-DOS e Windows 3.x Ultrapassados. Multi-usuário: Permite que várias pessoas o utilizem de uma vez. O mesmo processador é compartilhado por vários usuários ao mesmo tempo. Meio: várias janelas, vários terminais, etc. Como é feito? Time-sharing = compartilha ciclos de CPU. Ex: Windows: 95, 98, 2000, 2003, NT, ME, XP e Vista. Ex: Linux, Unix, AIX, HP UX, Sun Solaris, Mac OS, etc. Eles também podem ser classificados em: Monotarefa: Só consegue executar uma atividade de cada vez. Multitarefa: Executa mais de uma tarefa por vez. Padrão atual. Márcio Moreira 3. Software – Slide 5 Fundamentos da Computação Interface gráfica com usuário GUI = Graphical User Interface É a denominação genérica de uma interface como a do Windows (ou do Mac OS), com a qual o usuário não tem a necessidade de lembrar a sintaxe de comandos. É composta de: Ícones: objetos, símbolos e representações gráficas para representar arquivos, programas, funções e comandos. Mouse: dispositivo de posicionamento e apontamento. Menus universais e opções abertas como cortinas (barras de formatos, ferramentas, menus, etc.). Janelas sobrepostas. Ex: Windows, Mac OS, Linux: KDE, x-window, etc. Márcio Moreira 3. Software – Slide 6 Fundamentos da Computação Linguagens de programação São formadas por vocabulário (conjunto de símbolos) e gramática (conjunto de regras) que especificam como programar um computador. Alto Nível SQL Java Possuem: Sintaxe: forma de escrever. Ex: variável = valor. Semântica: significado. Ex: atribui o valor à variável. VB, .NET Cobol Pascal Podem ser de: Alto nível: próxima à linguagem humana. Ex: SQL, Java, VB, .NET e Cobol. Ex de instrução Java: a = 12; C, C++, C# Baixo nível: mais próxima da máquina. Assembler Ex: Assembler, C, C++, C# e Pascal. Ex de instrução Assembler: mov ax, 12; Márcio Moreira 3. Software – Slide 7 Baixo Nível Fundamentos da Computação Tradutores Interpretador: Lê uma instrução em linguagem de alto nível, transforma para linguagem de máquina e executa a instrução. Ex: Basic, Q-Basic, algumas máquinas Java. Compilador: Lê todas as instruções do código fonte (.java), em linguagem de alto nível, transforma para linguagem de máquina e grava as instruções traduzidas no programa compilado (.class). Montador: Alto Nível SQL Java VB, .NET Cobol Pascal Lê um programa compilado numa linguagem de baixo nível, anexa funções de bibliotecas e C, C++, C# gera o programa executável (.jar). SW Básico Sistema Operacional Interpretador Tradutores Compilador Assembler Baixo Nível Montador Márcio Moreira 3. Software – Slide 8 Fundamentos da Computação Software Resumo dos tradutores Característica Básico Interpretador Compilador Número de instruções 1 Arquivo de entrada Utilitários Aplicativos Montador Todas Fonte Fonte Objeto - Objeto Executável Erro de sintaxe Na hora Na saída - Erro de execução Na hora - No executável Arquivo de saída Desempenho de execução Dependência Márcio Moreira Menor - 3. Software – Slide 9 Melhor Montador Compilador Fundamentos da Computação Linguagens Linguagem de máquina: É baseada em código binário (0s e 1s). É utilizada diretamente pelo computador. Representa o conjunto de instruções de um processador. Ex: 0010 0001 1110 (colocar no registrador 1 o conteúdo da posição 14). Linguagem de baixo nível: É uma simplificação da linguagem de máquina. Permite que os programas utilizem abreviações simples de instruções de programa (mnemônicos). Ex. de instrução ..: mov ax, [14] (Assembly) Ex. de linguagens: Assembly, C, C++, C#. Linguagem de alto nível: Não exige conhecimento intrínseco da máquina. São mais fáceis de ler, escrever e manter. Ex: Java, .NET, SQL, etc. Márcio Moreira 3. Software – Slide 10 Fundamentos da Computação Software Utilitários Básico Utilitários Aplicativos Complementam o Sistema Operacional (SO) e os aplicativos. Podem vir junto com o SO ou não. Podem ser fabricados pelo mesmo fabricante do SO ou não. Exemplos: Ferramentas de disco: Formatadores: Desfragmentadores: Recuperadores: preparam discos para o uso. reorganiza os arquivos no disco. marcam ou recuperam setores defeituosos. Antivírus (e anti-spywares): Norton, McAfee, Trend Micro, Panda, etc. Compressão de dados: Comprimem e restauram dados baseando-se em padrões de repetições. Ex: zip, arj, winzip, gzip, etc. Hibernação: salva sessão do equipamento e volta ao mesmo estado. Backup: Faz cópias de segurança do HD para mídias de backup. Ex: Cheyenne, Seagate, Microsoft, etc. Tipos de backup: Completo: Incremental: Márcio Moreira Copia todo o conteúdo (todos os arquivos). Copia somente os arquivos que foram modificados. 3. Software – Slide 11 Fundamentos da Computação Software Aplicativos Básico Utilitários Aplicativos São programas voltados para necessidades mais próximas (aplicações) do usuário. Podem ser de uso: Geral: O mesmo programa pode ser utilizado para várias aplicações diferentes. Ex: Ferramentas de produtividade (Editores de Texto, Planilha, Apresentadores, etc.), bancos de dados, etc. Específico: Destinam-se a uma aplicação específica. Logo, só servem para a finalidade para a qual foram construídos. Ex: Folha de Pagamento, Controle de Estoque, Contas a Pagar e a Receber, Contabilidade, etc. Márcio Moreira 3. Software – Slide 12 Fundamentos da Computação