Introdução à Informática Conceitos Nomenclaturas Conceito Computador Segundo Farrer Ferramenta capaz de tomar certas informações, processá-las e obter resultado Tipos analógicos de computador: termômetro, régua, barômetro Computadores Digitais Capazes de fazer aritmética sobre dígitos Trabalham com informações lógicas e não com grandezas físicas Sistemas Operacionais Definição: Conjunto de programas usado para prover acesso e abstração sobre o hardware Usuário deve ser capaz de fazer tarefas independente do hardware É função do SO gerenciar, esconder e proteger o hardware O SO deve prover funcionalidades para outras aplicações Noções de S.O. Exemplos Window – Inicialmente criado com interface gráfica do ms-dos O sistema mais conhecido do mundo Principais Versões: 98, 2000, xp e 7 Fiascos – 97, Milenium, vista Linux Baseado no sistema unix Diversas distribuições gratuitas e pagas Principais Distribuições: Ubuntu, Debian, Fedora, RedHat Usado para computação de alto desempenho Outros Exemplos Solaris - Desenvolvido para aplicações de grande porte com recursos múltiplos ISA – SO usado nos Celulares Nokia Mac-OS – Desenvolvido para arquiteturas MAC (hoje em desuso). Voltado para programação e tratamento de imagens Divisão Divisão Kernel – programas ligados principalmente ao hardware Shell – Programas ligados aos serviços de baixo nível e suporte para outras aplicações Aplicação – Programas de alto nível – browser, editores de texto, etc Função de gerenciamento Gerenciamento de Processador(es) Gerenciamento de memória(as) Gerenciamento de Processadores Programas são divididos em tarefas (instruções) Processadores possuem um limite máximo de instruções que podem ser executadas por unidade de tempo Analogia Analogia Analogia Gerenciamento de Memória 2 tipos básicos – primária e secundária Primária – conhecida como RAM Secundária – HD, DVD, Pendrives,etc Gerenciamento de Memória Memória é controlada pelo sistema operacional Todos os aplicativos utilizam a memória principal Alguns usam memória secundária voluntária ou involuntariamente (memória virtual) Gerenciamento de Memória O sistema operacional consome memória Ao perceber que a memória principal não é suficiente para acomodar todos os programas em execução o sistema operacional começa a utilizar memória virtual Parte dos blocos de memória armazenados na MP é transferido para o disco Gerenciamento de Memória Escolha dos blocos a serem transferidos é probabilística Este comportamento pode afetar programas que fazem uso de grande quantidade de memória Arquitetura de Von Neumann Memória Unidade de entrada Unidade Central de Processamento Unidade de saída Funções Entrada – captar informações para o processo de computação Saída – exibir o resultado da computação de maneira inteligível UCP (CPU) – realizar as operações necessárias à computação Memória – Armazenar dados intermediários para a computação FAQ É possível ter mais de um dispositivo de entrada/saída ao mesmo tempo? Mecanismos de entrada podem ser usados como mecanismos de saída? Como realizar computação Computação é tipicamente feita através de programas de computador Capazes de analisar as informações Fazer transformações necessárias Realizar a computação Imprimir os resultados Programas Mas o que é um programa? Para entender o conceito de programa é necessário entender o conceito de algoritmo Algoritmo - Definição Descrição de um conjunto de comandos que, obedecidos, resultam em um conjunto finito de ações Etimologia A palavra algoritmo tem origem no sobrenome, Al-Khwarizmi, de um matemático persa do século IX Do Árabe Al-goreten - raiz Do grego arithmós – número Definição Apesar de ser um conceito muito antigo (há relatos de algoritmos na Grécia antiga), o conceito só foi formalizado na história contemporânea 1936 – Alan Turing Funcionamento Entrada Algoritmo Saída Exemplo Fazer uma Mousse de Maracujá Entrada: 1 lata de leite condensado 1 lata de creme de leite sem soro 1 lata (a mesma medida) de suco de maracujá concentrado 1 envelope de gelatina em pó sem sabor Exemplo Algoritmo: Bata no liquidificador o leite condensado, o creme de leite sem soro e o suco de maracujá A parte prepare a gelatina em pó, conforme instruções do envelope Quando amornar, coloque para bater juntamente com os demais ingredientes que estão no liquidificador Unte uma forma de pudim com margarina e antes de colocar o creme passe água pela forma, como se fosse enxaguá-la Coloque no congelador até estar no ponto para tirar da forma Exemplo Saída: Exemplo A receita pode ser chamada de algoritmo ambíguo Quando amornar, coloque para bater juntamente com os demais ingredientes que estão no liquidificador Coloque no congelador até estar no ponto para tirar da forma O Português é uma linguagem ambígua Exemplo 2 Pedir cerveja por telefone Entrada: Lista com os fornecedores de cerveja que entregam no endereço desejado Exemplo 2 Algoritmo: Ligue para o primeiro número na lista que não esteja marcado Pergunte e anote o preço da caixa de cerveja Marque o fornecedor para o qual você acabou de ligar Repita os três passos anteriores até que todos os fornecedores estejam marcados Localize o fornecedor que possua o menor preço, ligue novamente e peça a caixa de cerveja Exemplo 2 Saída: Representações para algoritmos Textual Fluxograma Pseudocódigo Representação Textual O algoritmo para pedir uma caixa de cerveja por telefone possui como entrada uma lista de todos os fornecedores que entregam caixas de cerveja no endereço desejado e procede da seguinte maneira: Primeiramente, deve-se ligar para cada um dos fornecedores presentes na lista e registrar os respectivos preços. Em seguida, após se ter todos os preços, deve-se ligar para o fornecedor que possui o menor preço e fazer a encomenda Representação por Fluxograma Entrada Processo Decisão Terminação Representação por Fluxograma Lista Ligar Perguntar e registrar o preço Marcar fornecedor Não Todos os Fornecedores Marcados? Sim Encomendar Fim Representação por Pseudocódigo Procedimento encomendarCerveja(lista de fornecedores) Para cada fornecedor “f” na lista faça ligar(f) perguntarAnotarPreço(f) Fim Para melhorFornecedor = localizarMenorPreço(lista) ligar(melhorFornecedor) encomendar(melhorFornecedor) Fim Procedimento Programa de computador Segundo Wirth Formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados Um algoritmo escrito da forma que um computador possa executar O que um computador entende? 01011101001000100100100010010001 Linguagem de máquina não são inteligíveis Necessidade de uma linguagem de mais alto nível O que um computador entende? Expressar idéias de maneira mais natural Não ambígua Logo a linguagem textual não é adequada O que um computador entende Fluxogramas não são facilmente processáveis por computadores E os pseudocódigos? São mais naturais para os programadores Não possuem ambiguidades Facilmente processáveis por computadores Pseudocódigos x linguagem de programação Pseudocódigo são representação de algoritmos Podem ser convertidos para linguagens de programação Compilação Transformação de um programa fonte (escrito em linguagem de programação) para um programa objeto (código binário) Código fonte compilador Código objeto Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador Regras de sintaxe Verificação das regras gramaticais da linguagem Exemplo: verifica se uma operação de soma possui os 2 termos Regras de semântica Verifica a corretude e das operações Exemplo: verifica se uma operação de soma possui os termos corretos (número + número, texto + texto) Revisão Conceitos: computador, algoritmo, programa Estrutura de um computador digital Exemplos de algoritmos Representação de algoritmos Modo mais adequado de dar instruções ao computador Compilação Exercícios Tipos de memória Trabalho em grupo, monografia escrita sobre tipos de memória (elétrica, magnética, ótica, etc.) Data de entrega: duas semanas Exercícios Monografia escrita ou digital Tema: Arquitetura de Von Neumann Conceitos e funcionamento Grupos de 5 pessoas Data de entrega: Três semanas - 3 de setembro