Informática aplicada à Ciência da Informação Software e Redes Software Software Séries de instruções codificadas em linguagem computacional destinadas a informar o computador como desenvolver tarefas Categorias Software Básico Software Aplicativo (ou de Aplicação) 2 Funções dos Sistemas Operacionais Programação de Tarefas Interfaceamento com o Usuário Gestão da Memória Configuração de Dispositivos Inicialização do Computador Controle da Rede Monitoração do Desempenho Gestão de Programas 4 Sistemas Operacionais Funções do Sistema Operacional Inicialização do Computador Gestão de Programas Gestão da Memória Programação de Tarefas Configuração de Dispositivos Acesso à Web Segurança do Sistema Controle da Rede Monitoração do Desempenho Interfaceamento com o Usuário 5 Sistemas Operacionais Localização Residente no disco rígido do computador (maioria dos casos) Possibilidade de armazenamento em um chip ROM (handhelds) Computadores de diferentes portes possuem tipicamente diferentes sistemas operacionais Tipos similares de computadores podem possuir sistemas operacionais diferentes Diversos sistemas compatíveis entre si operacionais não são 6 Funções dos Sistemas Operacionais Booting Processo de inicialização ou reinicialização de um computador 7 Funções dos Sistemas Operacionais Kernel Residente na memória Núcleo de um SO Gestão de dispositivos memória e Manutenção dos relógios do computador Inicialização de aplicativos Compartilhamento de recursos computacionais (programas, dispositivos, dados, informação) A cada inicialização do computador, o kernel e outras instruções de uso frequente do SO são carregadas Permanece na memória enquanto o computador estiver executando O kernel memória é residente na Não Residente na memória Instruções permanecem no disco rígido até que sejam necessárias Outras partes do SO são não residentes 8 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 1 processador BIOS A fonte de alimentação fornece energia elétrica para as diferentes partes do sistema 9 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 2 O processador procura o BIOS BIOS Basic Input/Output System Firmware que contém as instruções de inicialização do computador BIOS processador 10 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 3 A BIOS realiza o POST drive de CD-ROM processador conectores Teste mediante o qual são verificados componentes tais como mouse, teclado, conectores e placas de expansão BIOS POST Power-On Self Test placas de expansão teclado 11 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 4 drive de CD-ROM processador conectores Chip CMOS Complementary Semiconductor Metal Oxyde Armazena informações de configuração do computador e também detecta novos dispositivos conectados chip CMOS BIOS Os resultados do POST são comparados com os dados armazenados no chip CMOS placas de expansão 12 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 5 Arquivos do sistema processador chip CMOS disco rígido conectores BIOS O BIOS procura os arquivos do sistema no drive A (disco flexível) e, em seguida, no drive C (disco rígido) drive de CD-ROM placas de expansão Arquivos específicos do sistema operacional, carregados durante a inicialização 13 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 6 processador chip CMOS disco rígido conectores BIOS O programa de boot carrega na RAM o kernel do SO (armazenado no HD), o qual assume, a partir de então, o controle do computador drive de CD-ROM módulos de memória RAM placas de expansão 14 Funções dos Sistemas Operacionais Inicialização de um sistema computacional Passo 7 O SO carrega informações de configuração, exibe a área de trabalho (desktop) na tela e executa programas na pasta Iniciar (StartUp) Pasta Iniciar (StartUp) Contêiner de uma lista de programas que são automaticamente iniciados quando o computador é inicializado Step 7 15 Funções dos Sistemas Operacionais Interfaceamento com o Usuário Controle do modo de entrada de dados e do modo de apresentação das informações na tela do monitor Interface orientada a caractere Interface gráfica (GUI ou WIMP) 16 Funções dos Sistemas Operacionais Ambiente Multi-Tarefas Usuário trabalha ao mesmo tempo com duas ou mais aplicações residentes na memória Aplicação em foreground Aplicações em background (listadas na barra de ferramentas) 17 Funções dos Sistemas Operacionais Outras características de gestão de programas Multi-usuário Multi-processamento SO permite a execução simultânea de programas por dois ou mais usuários SO pode suportar a execução simultânea de programas por dois ou mais processadores Computador Tolerante a Falhas Continua a operar mesmo se um ou ou mais de seus componentes falhar (duplicação de componentes, tais como processadores, memórias e drives de disco) 18 Funções dos Sistemas Operacionais Gestão da Memória Virtual O SO aloca uma porção de um meio de armazenamento (usualmente o disco rígido) para atuar como RAM adicional Disco (memória virtual) RAM (memória física) 19 Funções dos Sistemas Operacionais Gestão da Memória Virtual Passo 1 O SO transfere os dados e as instruções de programas menos usados recentemente para o disco rígido, uma vez que a memória é necessária para outros propósitos swap out de página Disco (memória virtual) RAM (memória física) 20 Funções dos Sistemas Operacionais Gestão da Memória Virtual Passo 2 swap out de página O SO transfere os dados e as instruções de programas do disco rígido para a memória quando necessários Disco (memória virtual) RAM (memória física) swap in de página 21 Funções dos Sistemas Operacionais Gestão da Memória Virtual - Síntese Página copiada do disco para a memória (swap in) Dados ou instruções de programa utilizados mais recentemente Disco rígido Gerenciamento da memória virtual Arquivo de swap Memória Dados ou instruções de programa utilizados menos recentemente Página copiada da memória para o disco (swap out) 22 Funções dos Sistemas Operacionais Driver de Dispositivo Programa que possibilita a comunicação do SO com um dispositivo de E/S Cada dispositivo requer um driver próprio driver de dispositivo 23 SISTEMAS OPERACIONAIS São programas que controlam os computadores, coordenam o hardware e suas tarefas e gerenciam a utilização dos diversos dispositivos de sistema computacional, como: impressoras, monitores, etc. Os sistemas operacionais além de fazerem o interfaceamento entre o hardware e os programas, fazem também a conexão lógica entre o homem e a máquina. Os aplicativos necessitam de um sistema operacional para funcionar, e são desenvolvidos especificamente para ele. Geralmente pode-se dizer que a cada família de CPU, ou geração de computadores, usa-se um sistema operacional diferente. Exemplos: a) MS-DOS (Disk Operating System) Antigo sistema operacional da Microsoft usado nos computadores PCs e compatíveis (clones); b) Windows 95, 98, Me, 2000, XP, 2003 Sistema operacional para PCs compatíveis; c) Linux Sistema operacional para PCs compatíveis e principal rival do Windows; d) Unix Sistema operacional usado nos médios e grandes computadores. 24 O sistema operacional DOS MS-DOS acrônimo de Microsoft Disk Operating System é um sistema operacional, comprado pela Microsoft para ser usado na linha de computadores IBM PC. O dono, e criador original do projeto QDOS - Quick and Dirty Operating System, é a empresa Seattle Computer Systems, que foi inicialmente uma tentativa de criar um concorrente do estabelecido Sistema Operacional CP/M que rodasse no recém-lançado processador 8086 da Intel. 25 O sistema operacional WINDOWS É um sistema operacional monousuário, multitarefa (possibilidade de realizar várias tarefas “ao mesmo tempo”) com interface gráfica. Exemplos de operações executadas pelo Windows: •Carrega o sistema operacional, gerenciando todo o computador; •Acessa os programas compatíveis com essa plataforma; •Permite o gerenciamento de seus arquivos: cópia, exclusão, recuperação, backups, impressão, formatação de discos (fixos ou flexíveis), entre outras tarefas. 26 DOIS GRANDES MERCADOS PARA OS SISTEMAS OPERACIONAIS Mercado dos servidores – computadores de maior porte, rápidos, seguros, e de grande responsabilidade (se eles pararem, a empresa toda pára). Neste mercado, o uso do Unix e do Linux é predominante. Mercado dos desktops – onde se situam os micros, de menor porte e menor responsabilidade. Neste mercado, a maioria dos micros usam o sistema Windows. 27 HISTÓRIA DOS SISTEMAS OPERACIONAIS Um dos primeiros sistemas operacionais foi o Unix (década de 60), hoje um dos mais usados, tanto em mainframes como micros. Com o surgimento dos micros, foi criado inicialmente o DOS, e depois o Windows (com recursos para multimídia e conexão em rede). Na década de 90, foi criado o Linux, por um estudante finlandês (Linus Torvalds). Linus era pobre e não tinha dinheiro para comprar um sistema operacional. Então resolveu criar um para si mesmo. Ele também colocou gratuitamente o sistema na internet para quem quisesse usá-lo. 28 LINUX X WINDOWS 1. Preço (Linux) Uma cópia do Windows XP custa us$ 270. Uma empresa com 1.000 micros, vai gastar us$ 270.000 para poder usá-lo. O Linux é de graça. 2. Facilidade de uso (Windows) Windows é um pouco mais fácil de usar. 29 LINUX X WINDOWS 3. Segurança (Linux) A concepção do Windows permite fácil invasão pelo hackers. O Linux foi criado para ser seguro (com base no Unix). 4. Confiabilidade (L) Windows contém muitos bugs, e está sempre sendo consertado (atualizações). Linux é estável, e uma nova versão demora anos, pois tem poucos bugs. 30 LINUX X WINDOWS 5. Mercado de desktops (Windows) Dominado pelo Windows, pois foi feito para agradar ao usuário, além de ter surgido antes do Linux. 6. Compatibilidade (Windows) Como a maioria usa Windows, seus arquivos são usados por todos. Se você usar outro sistema, vai criar arquivos que poderão não ser lidos pela maioria. 31 LINUX X WINDOWS 7. Aplicativos (Windows) Os fabricantes de aplicativos (editores gráficos, jogos, etc.) desenvolvem seus produtos para os sistemas operacionais dominantes. 8. Documentação (Windows) A Microsoft tem mais dinheiro para desenvolver manuais e helps (ajudas). 9. Assistência técnica (Windows) Idem, a Microsoft tem mais recursos. 32 LINUX X WINDOWS 10. Sistema aberto (Linux) Um sistema aberto é aquele no qual qualquer técnico pode saber exatamente o que ele faz. Um sistema fechado pode estar espionando a empresa ou o usuário e enviando os dados para o fabricante. Na área militar isso é critico. O Linux é um sistema aberto (você tem acesso ao programa fonte). Windows é fechado (você só recebe o executável - .Exe). 33 LINUX X WINDOWS 11. Alto volume de transações (Linus) O Windows foi feito para PCs e não suporta um volume elevado de transações. Por isso, os servidores usam mais Unix e Linux. 12. Personalização (Linux) É a possibilidade de adequar o sistema às necessidades especificas da empresa ou do usuário. Nos sistemas fechados, é muito restrita essa possibilidade. Você tem que usar do jeito que o fabricante decidiu. No Linux, os técnicos da empresa podem adequá-lo às necessidades da empresa, customizando e eliminando módulos desnecessários. 34 LINUX X WINDOWS Nos 12 itens acima, o Windows mostrou-se melhor em seis casos, e o Linux em outros seis. Ou seja, empataram. Mas essa análise não deve ser quantitativa. Por exemplo, o exército americano resolveu trocar o Windows pelo Macintosh unicamente pela falta de segurança do Windows. Neste caso, apenas um item pesou na decisão. 35 MÁQUINAS VIRTUAIS Um recurso recente, que só existia em mainframes, está disponível para os micros: as “máquinas virtuais” (a mais famosa é o software da www.vmware.com). Com ela, você pode ter vários sistemas operacionais instalados: unix, linux, dos, windows, etc. Com um click do mouse, você pode mudar de um sistema para outro, sem ter que dar a partida novamente no computador. A comunicação entre os vários sistemas pode se dar por uma área comum do disco, formatada de modo a ser compatível com todos os sistemas instalados no computador. 36 MÁQUINAS VIRTUAIS COMO SE USA UMA MÁQUINA VIRTUAL? Por exemplo, você pode usar o linux para acessar a internet (é mais seguro) e realizar projetos de engenharia e científicos (é muito mais rápido). Depois voltar ao windows para elaborar relatórios com os resultados, via office, e distribuir. 37 Software Aplicativo Software usado para solucionar um problema em particular ou realizar uma tarefa específica. 38 Adquirindo Software Software customizado – Escrito por programadores contratados pela organização. Software empacotado (comercial) – Comprado em uma loja, por meio de catálogo, ou por um site Web. 39 Software Customizado Feito sob medida, especificamente para as necessidades de uma organização. – A organização contrata programadores de computador para projetar, escrever, testar e implementar software. Pode ser extremamente complexo e demandar anos para ser escrito. 40 Software Empacotado Vendido em lojas, catálogos ou sites Web. – Às vezes, é baixado da Internet. O pacote contém um ou mais CDs ou DVDs, que contêm o software. – Tipicamente, contém a documentação do software. Projetado para ter usabilidade 41 Usabilidade Fácil de usar: – Deve ser intuitivo até mesmo para o usuário iniciante. – Pode ser usado com um mínimo de treinamento e documentação. ISSO 9241-11 Guidance on Usability (1998) Usabilidade é a capacidade de um produto ser usado por usuários específicos para atingir objetivos específicos com eficácia, eficiência e satisfação em um contexto específico de uso. 42 Linguagens de Programação Usadas para: Descrever algoritmos, isto é, sequências de passos que levam à solução de um problema. Permitir que os usuários especifiquem como estes passos devem ser sequenciados para resolver um problema. Especificar algoritmos com precisão. 43 Linguagem de Programação O que é linguagem? – “O uso da palavra articulada ou escrita como meio de expressão e de comunicação entre pessoas.” E Linguagem de programação? – Software através do qual podemos desenvolver programas para informarmos ao computador o que queremos que seja feito. Pensamento Humano (nãoestruturado) Programa Computador 44 Linguagem de Programação Definições – Notação para escrever programas, através dos quais podemos nos comunicar com o hardware e dar as ordens adequadas para a realização de um determinado processo. – Conjunto de regras que providencia a maneira de dizer a um computador que operações executar. – Conjunto de símbolos (vocabulário) e regras (gramática) que especifica como transmitir informações entre usuários e computador. 45 Tipos de Linguagem Linguagens de baixo nível – Restritas a linguagem de máquina. – Forte relação entre as operações implementadas pela linguagem e as operações implementadas pelo hardware. Linguagens de alto nível – Aproximam-se das linguagens utilizadas por humanos para expressar problemas e algoritmos. – Cada declaração numa linguagem de alto nível equivale a várias declarações numa linguagem de baixo nível. 46 Primeiras Linguagens Programadores usavam linguagem de máquina – Sequências de dígitos binários (0s e 1s). – Por exemplo, a instrução “some 1 + 1” deveria ser representada como: 10100100 Muitas desvantagens: – Grande probabilidade de erro em todos os estágios do processo de programação. – Mesmo sendo com algoritmos simples resulta em longos programas, o que dificulta o processo de validação e detecção de erros. – O cálculo de endereços de memória devem ser feitos manualmente, com um árduo trabalho e uma grande probabilidade de erros. 47 Linguagens Básicas – Assembly Algumas das desvantagens podem ser superadas fazendo com que o computador seja o responsável pelo estágio de tradução. O programa ainda é escrito em termos de operações básicas de máquina, mas a tradução em código binário é feita pelo computador. O programa que faz essa tradução é chamado de assembler Exemplo: ADD 1,1 Trata do problema de cálculo de endereço, usando nomes em formato de texto para endereçar os dados. 48 Linguagem de Baixo Nível Linguagem de Máquina Significado 0010 0001 1110 carrega no registrador 1 o conteúdo da posição de memória 14 0010 0010 1111 carrega no registrador 2 o conteúdo da posição de memória 15 0001 0001 0010 soma o conteúdo do registrador 1 com o conteúdo do registrador 2 e coloca no registrador 1 0011 0001 1111 armazena o conteúdo do registrador 1 na posição de memória 15 Linguagem de Máquina Linguagem de Baixo Nível 0010 0001 1110 LOAD R1, val1 0010 0010 1111 LOAD R2, val2 0001 0001 0010 ADD R1, R2 0011 0001 1111 STORE R1, val2 49 Linguagens de Alto Nível x Linguagens de Baixo Nível Alto nível – Minimiza as dificuldades da programação em Linguagem de Baixo Nível pois se aproxima da linguagem humana – Problemas podem ser solucionados muito mais rapidamente e com muito mais facilidade. – A solução do problema não necessita ser obscurecida pelo nível de detalhes necessários em um programa em linguagem de baixo nível. – O programa em linguagem de alto nível é normalmente fácil de seguir e entender cada passo da execução. – Fácil portabilidade em diferentes CPUs. 50 Linguagens de Alto Nível x Linguagens de Baixo Nível Baixo nível – Indicada para funções que precisam implementar instruções de máquina específicas que não são suportadas por linguagens de alto nível. – Impossibilidade de uso de linguagens de alto nível (hardware simples). – Difícil portabilidade em diferentes CPUs. – Minimiza as dificuldades de programação em notação binária já que faz uso de códigos mnemônicos ao invés da notação binária. 51 Linguagens de programação Linguagem de Máquina Linguagem de Baixo Linguagem de Alto Nível Nível 0010 0001 1110 LOAD R1, val1 0010 0010 1111 LOAD R2, val2 0001 0001 0010 ADD R1, R2 0011 0001 1111 STORE R1, val2 val2 = val1 + val2 52 Histórico Existem centenas de linguagens de programação, agrupadas em 5 gerações: Primeira geração: linguagem de máquina. Segunda geração: linguagem de baixo nível. Terceira geração: linguagens de alto nível. São linguagens estruturadas que se caracterizam por suportarem variáveis, matrizes, instruções condicionais, instruções repetitivas, funções e procedimentos. Exemplos de linguagens de 3ª geração são BASIC, PASCAL, C, COBOL, FORTRAN, etc... 53 Histórico Quarta geração: São linguagens declarativas e não procedimentais, isto é, permitem dizermos o que queremos que seja feito e não como queremos que seja feito. O melhor exemplo de linguagem de 4ª geração é o SQL (Structured Query Language), utilizada para consulta e manipulação de bases de dados. Quinta geração: são normalmente conhecidas como linguagens orientadas a objetos (OO – Object Oriented). Alguns autores incluem também nesta geração os sistemas especialistas, desenvolvimento de inteligência artificial, execução de programas em paralelo. 54 Mas, se os computadores trabalham internamente com a linguagem de máquina, como é que podemos fazer para que o computador entenda os programas desenvolvidos em linguagem de baixo ou de alto nível? Código Fonte Tradutor Código Objeto 55 Processamento de linguagens Interpretação: As ações indicadas pelos comandos da linguagem são diretamente executadas. Executa repetidamente a seguinte sequência: 1. Obter o próximo comando do programa. 2. Traduzir para linguagem de máquina e determinar que ações devem ser executadas. 3. Executar estas ações. 56 Processamento de linguagens Compilação: Programas escritos em linguagem de alto nível são traduzidos para versões equivalentes em linguagem de máquina, antes de serem executados. Passos básicos: 1. Traduzir programa para código objeto (compilador). 2. Traduzir o código objeto para código relocável (montador), em linguagem de máquina. 3. Carregar programa inteiro na memória principal, como código executável de máquina. 4. Executar cada instrução. 57 Redes de Computadores Definições Conjunto de computadores autônomos interconectados por uma única tecnologia [Tanenbaum] Internet é uma rede de redes Sistema de comunicação que visa a interconexão entre computadores, terminais e periféricos 58 Redes de Computadores Usos de redes de computadores Aplicações comerciais – Compartilhamento de recursos físicos e informações – Comunicação entre usuários – Comércio eletrônico Aplicações domésticas – Compartilhamento de recursos físicos e informações – Comunicação entre usuários – Comércio eletrônico – Entretenimento 59 Classificações de Redes Extensão geográfica – Redes pessoais (Personal Area Networks – PANs) • Cobrem distâncias muito pequenas • Destinadas a uma única pessoa • Ex.: Bluetooth – Redes locais (Local Area Networks – LANs) • Cobrem pequenas distâncias (um prédio ou um conjunto de prédios) • Geralmente pertencentes a uma mesma organização • Taxa de transmissão da ordem de Mbps • Pequenos atrasos de propagação 60 Classificações de Redes Extensão geográfica (cont.) – Redes metropolitanas (Metropolitan Area Networks – MANs) • Cobrem grandes distâncias (uma cidade) • Ex.: rede baseada na TV a cabo – Redes de longa distância (Wide Area Networks – WANs) • Cobrem distâncias muito grandes (um país, um continente) • Transmissão através de comutadores de pacotes interligados por enlaces dedicados • De um modo geral possuem taxas de transmissão menores que as das LANs • Atraso de propagação maiores do que das LANs 61 Topologias de Redes Estruturas físicas de interligação dos equipamentos da rede Cada uma apresenta características próprias, com diferentes implicações quanto a – Custo – Confiabilidade – Alcance Tipos mais comuns – Malha – Estrela – Anel – Barramento – Híbridas 62 Topologias de Redes: Malha Completa Cada estação é conectada a todas as outras estações da rede Vantagens – Não há compartilhamento do meio físico – Não há necessidade de decisões de por onde enviar a mensagem (roteamento) Desvantagem – Grande quantidade de ligações (custo) 63 Topologias de Redes: Malha Irregular Topologia mais geral possível Usada principalmente em redes de longa distância (redes locais não costumam usar a topologia em malha) Cada estação pode ser conectada diretamente a um número variável de estações Vantagens – Arranjo de interconexões pode ser feito de acordo com o tráfego – Pode escolher por onde enviar a mensagem para evitar congestionamento Desvantagem – Necessita de decisão de roteamento 64 Topologias de Redes: Estrela Usada principalmente em redes locais Decisões de roteamento centralizadas em um nó Cada estação é conectada a esse nó central Vantagem – Boa para situações onde o fluxo de informações é centralizado Desvantagem – Problema de confiabilidade no nó central 65 Topologias de Redes: Anel Usada principalmente em redes locais Mensagens circulam nó-a-nó até o destino Cada estação tem de reconhecer o próprio nome (endereço) nas mensagens e copiar as que lhe são destinadas 66 Topologias de Redes: Anel Vantagens – Boa para situações onde o fluxo de informações não é centralizado – Não há necessidade de decisões de roteamento Desvantagens – Necessita de mecanismos de acesso ao meio compartilhado – Confiabilidade da rede depende da confiabilidade individual dos nós intermediários (funcionam como repetidores) 67 Topologias de Redes: Barramento Usada principalmente em redes locais Mensagens transferidas sem a participação dos nós intermediários Todas as estações “escutam” as mensagens Necessidade de reconhecer o próprio nome (endereço) 68 Topologias de Redes: Barramento Vantagens – Não há necessidade de decisões de roteamento – Como não há armazenamento intermediário, pode-se obter um melhor desempenho em termos de atraso e vazão Desvantagem – Necessita de mecanismos de acesso ao meio compartilhado 69 Topologias Híbridas Existem ainda configurações híbridas – – – – Anel-estrela Barramento-estrela Estrela-anel Árvore de barramentos 70 Assuntos adicionais A rede Internet (história, aplicativos, etc.) Blogs e fotologs Softwares aplicativos ETC. 71