Noções de Software André Aziz ([email protected]) Francielle Santos ([email protected]) 1 Noções de Software; Sistemas Operacionais: ◦ Evolução; ◦ Conceitos Básicos; ◦ Tipos; ◦ Exemplos. Francielle Santos e André Aziz DEINFO/UFRPE 2 Caracterizar os tipos de software; Identificar as fases de evolução dos SOs; Entender o funcionamento dos SOs: ◦ Arquitetura, estrutura e funcionalidades dos Sos; Caracterizar os diferentes tipos de SOs. Francielle Santos <[email protected]> 13/11/2014 3 chips Minicom putadores Circuitos Integrados ENIAC, UNIVAC Transistor es Válvulas Memória para dados • 1940 1956 Microproces sadores • 1972 - … • 1966 - 1971 Redes e internet • 1973 - … Processos distribuídos • 1956 1965 Confiabilidade Custo Francielle Santos e André Aziz DEINFO/UFRPE 4 Classificação quanto ao porte e utilização Computador pessoal Minicompu tador Estação de Trabalho Supercompu tador Mainframe Fonte: Gandon, 1999 Francielle Santos e André Aziz DEINFO/UFRPE 5 Entrada Unidade de Controle Unidade de Processamento •Determina a interpretação e execução das instruções e controla o fluxo de dados •Recebe os dados da memória para processá-los quando uma instrução aritmética ou lógica é executado Memória Principal Memória Secundária Periféricos Francielle Santos e André Aziz DEINFO/UFRPE Saída Fonte: http://ci.ufpel.edu.br/treinamento/apostilas/nocoes_de_informatica/computador.pdf CPU 6 Tipos de Software – licença Tipos de Software propósito Francielle Santos e André Aziz DEINFO/UFRPE 7 Shareware: ◦ Programas que podem ser utilizados durante um período de teste; ◦ Após esse período o uso é pago. Freeware: ◦ Programas que podem ser copiados sem qualquer custo ou perda de funcionalidade; ◦ Prezam pela identificação de autoria. Francielle Santos e André Aziz DEINFO/UFRPE 8 Software Firmware Software de Sistemas Francielle Santos e André Aziz DEINFO/UFRPE Aplicações 9 Firmware: ◦ Programas embarcados no hardware: Importantes para o funcionamento básico do computador; Maior velocidade na execução; Presentes em memórias de leitura do tipo: ROM, EPROM, EEROM, etc. Francielle Santos e André Aziz DEINFO/UFRPE 10 Software de Sistemas: ◦ Programas gerenciam e apóiam as atividades de processamento de um computador: Programas de Gerenciamento de Sistemas: Gerenciam o acesso e utilização de recursos de hardware, software, redes e dados. Programas de Desenvolvimento de Sistemas: Ferramentas CASE (Computer Aided Software Engineering) para suprote ao desenvolvimento de programas. Francielle Santos e André Aziz DEINFO/UFRPE 11 Programas de Gerenciamento de Sistemas: ◦ Sistemas Operacionais; ◦ Sistemas de Gerenciamento de Rede; ◦ SGBDs: Sistemas de Gerenciamento de Bancos de Dados. Francielle Santos e André Aziz DEINFO/UFRPE 12 Sistema Operacional (S.O.): ◦ Conjunto de programas que compõem o software básico do computador, permitindo: O reconhecimento do hardware e o seu funcionamento; A representação dos dados na memória. ◦ Finalidade principal: Executar os programas aplicativos e servir de interface entre o computador e seus usuários. ◦ Foco na interface com o hardware. Francielle Santos e André Aziz DEINFO/UFRPE 13 Aplicações: ◦ Programas que constituem formas de operação do computador para o desempenho de tarefas práticas, ligadas ao processamento de dados. ◦ Rodam com o auxílio do SO e com foco no usuário. ◦ Classificação: Automação industrial; Automação comercial; Apoio educacional; Especiais e científicos; Artístico; Entretenimento; CAD/CAM. Francielle Santos e André Aziz DEINFO/UFRPE 14 Anos Anos Anos Anos Anos 40 e 50 60 70 80 90 Francielle Santos e André Aziz DEINFO/UFRPE 15 Programação externa: ◦ Nessa época os computadores não tinham memória para armazenamento dos programas. ◦ Controle através de chaves, fios e luzes de aviso. Controle do computador: ◦ Através de programas isolados; Não havia a noção de tipos de software. Não haviam as linguagens de programação estruturadas. Francielle Santos e André Aziz DEINFO/UFRPE 16 Sistemas em lote (batch systems): ◦ ◦ ◦ ◦ Programas escritos em cartões perfurados; SOs enfileiravam tarefas (jobs); Recursos computacionais eram melhor utilizados; Programas armazenados na memória principal. Para cada computador, um novo programa e um novo SO. Aparecimento de rotinas de auxílio ao programador: ◦ Para lidar com a memória e execução dos programas. Francielle Santos e André Aziz DEINFO/UFRPE 17 Aparecimento dos computadores pessoais: ◦ Necessidades de SOs com interação com o usuário; ◦ Surgimento de linguagens de programação estruturadas; ◦ Surgimento das aplicações de pequeno porte. Francielle Santos e André Aziz DEINFO/UFRPE 18 Início do império de Bill Gates: ◦ Ele e um colega de faculdade (Paul Allen) compram o sistema QDOS ("Quick and Dirty Operating System") de Tim Paterson por $50.000: Renomearam para DOS (Disk Operating System); Venderam as licenças para a IBM. A IBM lançou o seu 1º computador pessoal com o Sistema Operacional DOS. IBM e Microsoft firmaram breve parceria para o desenvolvimento do SO multitarefa chamado OS/2. Francielle Santos e André Aziz DEINFO/UFRPE 19 O projeto GNU foi iniciado por Richard Stallman: ◦ Com o objetivo de prover um SO livre como alternativa ao UNIX; O estudante finlandês Linus Torvalds iniciou o desenvolvimento do núcleo de um sistema operacional: ◦ Precursor do Linux; ◦ Desenvolvimento colaborativo através da internet. Mais tarde os dois esforços foram unificados: ◦ Linux: Grátis e portado para várias arquiteturas de computadores. Francielle Santos e André Aziz DEINFO/UFRPE 20 1º Sistema Operacional Monoprogramável 1950 1960 Conceito de Memória Virtual Sistemas Multitarefa 1970 1990 1980 Sistemas Multiprogramáveis Multitarefa Francielle Santos e André Aziz DEINFO/UFRPE 21 Objetivos Arquitetura e estrutura dos SOs Funcionalidades dos SOs Boot Francielle Santos e André Aziz DEINFO/UFRPE 22 Usabilidade: ◦ Facilidade de uso para o usuário final. Eficiência: ◦ No provimento de acesso aos recursos computacionais; ◦ No escalonamento do uso destes recursos pelas aplicações; ◦ Na otimização da utilização dos recursos pelos programas em execução. Francielle Santos e André Aziz DEINFO/UFRPE 23 Segurança: ◦ Garantia da privacidade e permissões no acesso aos recursos de hardware e dados armazenados. Evolução: ◦ Ser bem-estruturado, garantindo a possibilidade de correção de funcionalidades e desenvolvimento de novas funcionalidades. Francielle Santos e André Aziz DEINFO/UFRPE 24 Aplicativos Utilitários Sistema Operacional Hardware Francielle Santos e André Aziz DEINFO/UFRPE 25 Conjunto de rotinas - núcleo do sistema ou kernel : ◦ Oferecem serviços essenciais aos usuários, às suas aplicações, e também ao próprio sistema. O SO não é executado como uma aplicação tipicamente seqüencial, com início, meio e fim. ◦ Procedimentos do sistema são executados concorrentemente; ◦ Sem uma ordem específica ou predefinida. Francielle Santos e André Aziz DEINFO/UFRPE 26 As funcionalidades dos SOs são implementadas pelos seus diversos módulos: Gestão de Processamento Gestão de Memória Gestão de Arquivos Gestão de Entrada e Saída (E/S, I/O) Redes Segurança Interface com o Usuário!!! Francielle Santos e André Aziz DEINFO/UFRPE 27 Comandos de chamadas ao sistema que implementam a interface entre aplicações e o SO. São genericamente agrupadas em 5 classes: ◦ Controle de Processo; ◦ Manipulação de arquivos; ◦ Manipulação de dispositivos; ◦ Informações de manutenção; ◦ Comunicações. Francielle Santos e André Aziz DEINFO/UFRPE 28 A interação do usuário com o hardware através do SO pressupõe: ◦ A criação de processos pelo SO: Alocar e desalocar em memória todos os recursos necessários à execução do processo. ◦ Escalonamento e controle destes processos: Organização da fila de acesso ao processador. Utiliza parâmetros do sistema e do perfil do usuário para estabelecer a ordem em que os processos permanecerão à espera pela liberação da CPU, para então entrarem em execução. Francielle Santos e André Aziz DEINFO/UFRPE 29 Função responsável por fornecer à função de criação/eliminação de processos os endereços em memória disponíveis para alocação; Garante que os programas não utilizarão memória já em utilização por outros programas. Francielle Santos e André Aziz DEINFO/UFRPE 30 Responsável por: ◦ Gerenciamento dos arquivos; ◦ Compartilhamento dos arquivos pelos diversos usuários; ◦ Implementação de mecanismos de controle da segurança; ◦ Implementação de mecanismos de direitos de acesso às áreas utilizadas pelos usuários nos diversos dispositivos. Francielle Santos e André Aziz DEINFO/UFRPE 31 Responsável por: ◦ Gerenciamento dos dispositivos de E/S; Auxilia na criação/eliminação de processos; Auxilia na gerência de sistemas de arquivos: ◦ Na parte de endereçamento e associação de arquivos em periféricos; Francielle Santos e André Aziz DEINFO/UFRPE 32 Função que executa todos os serviços de rede; Permite que computadores utilizando o mesmo SO em uma mesma rede compartilhem recursos e capacidade de processamento; Empacotamento das mensagens vindas dos terminais para o processador central e viceversa; Controla e confirma o envio e recebimento de todas as mensagens que trafegam pela rede. Francielle Santos e André Aziz DEINFO/UFRPE 33 Função que detecta e registra (num arquivo especial de LOG): ◦ Todas as ocorrências de erro; ◦ Todas as violações de direitos de acesso: Ao sistema, aos arquivos, à memória e a todos os recursos do sistema. O arquivo de LOG é usado pela gerência de sistemas: ◦ Para verificar e aperfeiçoar os mecanismos de segurança e proteção ao sistema. Francielle Santos e André Aziz DEINFO/UFRPE 34 Fonte: http://www.tecmundo.com.br/aumentar-desempenho/11266-comofunciona-o-boot-de-um-computador.htm Francielle Santos e André Aziz DEINFO/UFRPE 35 BIOS reconhece placas de vídeo e memória RAM, testa os componentes de hardware; BIOS lê o setor zero (que contém apenas 512 bytes, denominado Master Boot Record) do HD. Ou de outros dispositivos de boot; Leitura do boot loader, inicialização do kernel; Carregamento do SO. Francielle Santos e André Aziz DEINFO/UFRPE 36 Monotarefa Multitarefa Multiprocessados Francielle Santos e André Aziz DEINFO/UFRPE 37 Tipos de Sistemas Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Francielle Santos e André Aziz DEINFO/UFRPE Múltiplos Processadores 38 Executam uma única tarefa (processo) por vez; Processador, memória e periféricos alocados para este processo: ◦ Processador pode ficar ocioso e a memória e periféricos subutilizados! Francielle Santos e André Aziz DEINFO/UFRPE 39 Permitem que vários programas executem simultaneamente; Programas concorrem pela alocação de processador, memória e periféricos alocados para este processo: ◦ Maior complexidade e melhor utilização de recursos; O SO gerencia o acesso concorrente aos recursos; Francielle Santos e André Aziz DEINFO/UFRPE 40 Francielle Santos e André Aziz DEINFO/UFRPE 41 Multiprogramáveis/ Multitarefa Batch Tempo Partilhado Francielle Santos e André Aziz DEINFO/UFRPE Tempo Real 42 1. 2. Programas são inseridos previamente no computador; Programas são executados de acordo com a disponibilidade de recursos. Não há interação com o usuário! Francielle Santos e André Aziz DEINFO/UFRPE 43 Computador usado por vários usuários, compartilhando à distância, seus recursos (processador, memória e periféricos): ◦ Impressão de utilização única do computador; ◦ Sem processamento local (terminais “burros”); SO gerencia os recursos: ◦ Alocando fatias de tempo (“time slices”) do processador pra cada usuário; ◦ Definindo níveis de prioridade para processos e usuários; Noção de workspace para os usuários. Francielle Santos e André Aziz DEINFO/UFRPE 44 Com tempos de resposta muito pequenos: ◦ Podendo inviabilizar a aplicação se estes não forem atendidos. Francielle Santos e André Aziz DEINFO/UFRPE 45 SOs Monousuário: ◦ Suportam um único usuário por vez; ◦ Exemplo: DOS. SOs Multiusuário: ◦ Suportam mais de um usuário simultaneamente ◦ Exemplo: UNIX. Pergunta: Existem um SO monotarefa multiusuário? Francielle Santos e André Aziz DEINFO/UFRPE 46 Permitem que várias instruções executem simultaneamente: ◦ Computadores com mais de um processador. Multiprogramação aplicada a vários processadores ao mesmo tempo: ◦ Permite mais de um programa em paralelo ou mesmo mais de uma instrução de um mesmo programa em paralelo! Configurações possíveis (acoplamento): ◦ Vários processadores e uma memória; ◦ Vários processadores e várias memórias. Francielle Santos e André Aziz DEINFO/UFRPE 47 Multiprocessados Fortemente Acoplados Fracamente Acoplados Redes Distribuídos Francielle Santos e André Aziz DEINFO/UFRPE 48 Vários computadores independentes interligados em rede: ◦ Com compartilhamento de periféricos, dispositivos de I/O e armazenamento. O sistema irá definir: ◦ Protocolo para comunicação entre usuários e servidores. Cada computador da rede funciona independentemente: ◦ Processamento local. Francielle Santos e André Aziz DEINFO/UFRPE 49 Tipo de sistema em rede onde: ◦ Há integração e cooperação entre os computadores da rede. Para execução das tarefas solicitadas pelos usuários. Para o futuro: Sistemas operacionais 100% distribuídos! Francielle Santos e André Aziz DEINFO/UFRPE 50 Exemplos Francielle Santos e André Aziz DEINFO/UFRPE 51 Desenvolvido pelo finlandês Linus Torvalds; O seu código fonte está disponível sob licença GPL: ◦ Qualquer pessoa pode utilizar, estudar, modificar e distribuir de acordo com os termos da licença. Apresenta várias distribuições: ◦ Slackware, Debian, Suse, Conectiva e Ubuntu: http://www.ubuntu-br.org/ Francielle Santos e André Aziz DEINFO/UFRPE 52 SO proprietário baseando no kernel Unix; Desenvolvido pela Apple: ◦ Roda somente nos computadores da linha Macintosh; Versões: ◦ Leopard, Snow Leopard, Lion, Mountain lion, Mavericks, Yosemite; http://www.apple.com/br/macosx/ Francielle Santos e André Aziz DEINFO/UFRPE 53 Família de SOs criados pela Microsoft, empresa fundada por Bill Gates e Paul Allen. Primeira versão: MS-DOS. É o SO mais popular!!! Maior parte de aplicações comerciais disponíveis apenas para este SO. Versões: ◦ MS-DOS, 95, 98, 2000, XP, Vista, 7, 8… ◦ Windows 8.1: http://windows.microsoft.com/pt-br/windows-8/meet Francielle Santos e André Aziz DEINFO/UFRPE 54 Sistema Operacional UNIX desenvolvido pela Sun Microsystems; ◦ Atualmente pertence a empresa Oracle; Suporta arquiteturas baseadas nos processadores x86 e SPARC. SO otimizado para servidores: ◦ Recursos de análise de desempenho e integração de vários sistemas; Versões: ◦ SunOS, Solaris 2, Solaris 10, Solaris 11: http://www.oracle.com/us/products/serversstorage/solaris/index.html Francielle Santos e André Aziz DEINFO/UFRPE 55 SO de código aberto projetado pelo Google para trabalhar exclusivamente com aplicações web: ◦ Baseado no Linux. GUI minimalista: ◦ Semelhante à de um navegador web. Público-alvo: ◦ Pessoas que utilizam bastante a internet! Francielle Santos e André Aziz DEINFO/UFRPE 56 Noções de Software; Sistemas Operacionais: ◦ Evolução; ◦ Conceitos Básicos; ◦ Tipos; ◦ Exemplos. Francielle Santos e André Aziz DEINFO/UFRPE 57 Francielle Santos e André Aziz DEINFO/UFRPE 58 Noções de Redes Francielle Santos e André Aziz DEINFO/UFRPE 59 Noções de Software André Aziz ([email protected]) Francielle Santos ([email protected]) 60