II - INTRODUÇÃO • • • • • Introdução Funções Básicas Máquina de Camadas Evolução dos Sistemas Operacionais Tipos de Sistemas Operacionais II - INTRODUÇÃO • Introdução II - INTRODUÇÃO Computador? Máquina destinada a realizar cálculos complexos. Processamento E N T R A DA E/S Memória Barramento CPU II - INTRODUÇÃO SAÍDA • II - INTRODUÇÃO Introdução CPU Unidade Interconexão Lógica e interna da Aritmética CPU Unidade de Controle II - INTRODUÇÃO • Introdução II - INTRODUÇÃO II - INTRODUÇÃO • Introdução Definição II - INTRODUÇÃO O Sistema Operacional (SO) é um programa ou conjunto de programas que gerencia todos os recursos de um sistema computacional. Sem o SO, o usuário deveria conhecer profundamente o hardware do computador, tornando sua interação menos eficiente com grandes possibilidades de erros. Desta forma o SO funciona como uma interface entre o usuário e o computador. II - INTRODUÇÃO • II - INTRODUÇÃO Introdução • Funções Básicas do SO Aplicações Sistema Computador Operacional Hardware II - INTRODUÇÃO • II - INTRODUÇÃO Introdução USO 1 compilador USO 2 Editor de texto USO 3 Browser USO 4 Planilha eletrônica Sistema Operacional Hardware Espaço na memória principal Tempo de processamento Gerenciamento Impressora de recursos Espaço em disco Acesso a disco • Objetivo II - INTRODUÇÃO • II - INTRODUÇÃO Máquina de Camadas Aplicações Hardware II - INTRODUÇÃO Nível 0 Nível 1 Aplicações Sistema Operacional Hardware II - INTRODUÇÃO Máquina de Camadas Nível 0 Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 • II - INTRODUÇÃO Aplicações Utilitários Sistema Operacional Linguagem de Máquina Microprogramação Circuitos Eletrônicos • Evolução dos Sistemas Operacionais II - INTRODUÇÃO A evolução dos sistemas operacionais está, em grande parte, relacionada ao desenvolvimento dos computadores. Dividindo-se em décadas destaca-se em cada uma suas principais características de hardware, software, interação com o sistema e aspectos de conectividade. 1642 – Pascal – máquina de somar 1673 – Leibniz – Somar e Multiplicar (acumulador) 1820 – Colmar – Quatro operações II - INTRODUÇÃO • Evolução dos Sistemas Operacionais II - INTRODUÇÃO 1642 – Pascal – máquina de somar 1673 – Leibniz – Somar e Multiplicar (acumulador) 1820 – Colmar – Quatro operações 1822 – Babbage – Equações Polinomiais 1833 - - Máquina Analítica É a que mais se aproxima do computador atual pois possui: unidade central de processamento, memória, unidade de controle, dispositivos de entrada e saída. 1854 –Boole – Algebra de boole: Base do modelo de computação digital. II - INTRODUÇÃO • Evolução dos Sistemas Operacionais II - INTRODUÇÃO 1890 – Hollerith – mecanismo utilizando cartões perfurados. 1930 – Zuse - Primeiras tentativas de criação da calculadora eletrônica – Z1, baseado em relés e utilizava lógica binária. Atanasoff e Berry – Máquina de cálculo de equações lineares 1937 – Turing – Idéia da Máquina Universal (Máquina de Turing). Capaz de executar qualquer sequência de Instruções (algoritmo) II - INTRODUÇÃO • Evolução dos Sistemas Operacionais II - INTRODUÇÃO Década de 1940 Primeiros computadores eletromecânicos (calculadoras). Formados por milhares de válvulas e com funcionamento lento e duvidoso). 1943 – Colossus – desenvolvido para quebrar códigos. II - INTRODUÇÃO • Evolução dos Sistemas Operacionais II - INTRODUÇÃO Gerações dos computadores 1ª Geração (1940 a 1952) válvula Linguagem de máquina Cartão perfurado Memória de atraso de mercúrio ENIAC II - INTRODUÇÃO Não Existia Sistema Operacional Programador Controla o Equipamento Programas acessam diretamente os periféricos • Evolução dos Sistemas Operacionais II - INTRODUÇÃO O ENIAC (Electronic Numerical Integrator And Calculator) é considerado o primeiro computador digital e eletrônico. Desenvolvido por J. Presper Eckert e John W. Mauchly Criado para realizar de cálculos balísticos Utilizado no projeto da bomba de hidrogênio, ficando em operação no período de 1946 a 1955. Estrutura: 17 mil válvulas, 10 mil capacitores, 70 mil resistores e pesava 30 toneladas. Quando em operação, consumia cerca de 140 quilowatts e era capaz de realizar 5 mil adições por segundo. II - INTRODUÇÃO II - INTRODUÇÃO Gerações dos computadores 2ª Geração (1952 a 1964) •Linguagem assembler, cobol, Algol, Fortran. Memória de núcleo de ferrite Válvula e transistores Tradic - 1955 • Introduziram-se os operadores e o Job • Primeiros monitores residentes: programas ficam um tempo na memória • Quando um programa finaliza, o monitor é avisado e outro programa carrega automaticamente • Multiprogramação, Multiprocessamento. II - INTRODUÇÃO Unidade de fita magnética II - INTRODUÇÃO Gerações dos computadores 2ª Geração (1952 a 1964) II - INTRODUÇÃO processamento batch II - INTRODUÇÃO Gerações dos computadores 2ª Geração (1952 a 1964) No final de 1950, a Universidade de Manchester, na Inglaterra, desenvolveu o sistema operacional Atlas • Introduziu a ideia de memória hierarquizada, base do conceito de memória virtual, presente hoje na maioria dos sistemas operacionais atuais. • Implementava o esquema de paginação por demanda para transferir informações da memória secundária para a principal. II - INTRODUÇÃO II - INTRODUÇÃO Gerações dos computadores 3ª Geração (1964 a 1971) Comparativo : válvula transistores e chips PDP-11 VAX • Devido ao atraso dos periféricos em relação ao sistema eletrônicos mantiveram-se diversos programas na memória principal simultaneamente. II - INTRODUÇÃO Gerações dos computadores II - INTRODUÇÃO 4ª Geração (1971 a 1981) • Diversidade de Linguagens de programação; • Rede de transmissão de dados. Microcomputador APPLE Microcomputador TRS-80 Microcomputador PC 8088 Disco flexível de 5.1/4” Disco flexível de 3.1/2” • Experiência inicial e disseminação do timesharing • Sistema operacionais Distribuídos • Sistemas operacionais de tempo Real II - INTRODUÇÃO Gerações dos computadores II - INTRODUÇÃO 5ª Geração (1981) • Inteligência Artificial; • Linguagem Natural • Altíssima velocidade de processamento. Notebook com a mesma capacidade dos desktop CPU - Circuito integrado da Larga escala Microcomputador integrado com processamento paralelo • Paralelismo II - INTRODUÇÃO Comparativo atual Década de 1990 II - INTRODUÇÃO Grandes avanços em termos de hardware, software e telecomunicações Evolução em função da capacidade de processamento e armazenamento de dados: sistemas especialistas, sistemas multimídia, banco de dados distribuídos, inteligência artificial e redes neurais. Na microeletrônica desenvolveu-se: processadores e memórias mais velozes e baratos, além de dispositivos de E/S menores, mais rápidos e com maior capacidade de armazenamento. Os componentes baseados em tecnologia VLSI evoluíram rapidamente para o ULSI (Ultra Large Scale Integration). II - INTRODUÇÃO Década de 1990 II - INTRODUÇÃO Com o surgimento e a evolução da Internet, o protocolo TCP/IP passou a ser um padrão de mercado, obrigando os fabricantes de sistemas operacionais a oferecer suporte a este protocolo. Devido ao crescimento acelerado da Internet, problemas de gerência, segurança e desempenho tornaram-se fatores importantes relacionados ao sistema operacional e à rede. A arquitetura cliente/servidor, aplicada basicamente a redes locais, passou a ser utilizada em redes distribuídas como a Internet. II - INTRODUÇÃO Década de 1990 II - INTRODUÇÃO A década de 1990 foi definitiva para a consolidação dos sistemas operacionais baseados em interfaces gráficas. Em 1991, o finlandês Linus Torvalds começou o desenvolvimento do Linux, que evoluiu a partir da colaboração de vários programadores que ajudaram no desenvolvimento do kernel, utilitários e vários aplicativos. Atualmente, o Linux é utilizado tanto para fins acadêmicos como comerciais. Amadurecimento e a popularização do software aberto. II - INTRODUÇÃO Década de 2000 II - INTRODUÇÃO Essa década foi caracterizada por uma grande evolução nos processadores e equipamentos de comunicação. A tendência de integração de componentes em alta escala e miniaturização fez com que notebooks, netbooks tivessem grande disseminação no mercado. As redes de comunicação cresceram em abrangência e velocidade, possibilitando a integração de computadores e sistemas de governos, empresas e pessoas. A Internet se consolidou em todo o mundo como uma rede de integração entre pessoas II - INTRODUÇÃO Década de 2000 II - INTRODUÇÃO Os sistemas operacionais tornaram-se mais intuitivos e presentes em dispositivos móveis como telefones celulares, handhelds e palmtops. Novas interfaces surgiram, fazendo com que a comunicação usuário-computador se tornasse mais inteligente, simples e eficiente. Os sistemas passaram a ser proativos, incorporando mecanismos automáticos para recuperação de erros e atualização de correções e novas versões. II - INTRODUÇÃO II - INTRODUÇÃO Década de 2000 Nessa década, os sistemas operacionais tiraram proveito das arquiteturas de processadores de 64 bits: aumento do espaço de endereçamento, melhora do desempenho de aplicações que manipulam grandes volumes de dados. Microsoft evoluiu seu sistema operacional unificando suas versões para servidores, desktops e smartphones, investindo em melhorias sucessivas. A Apple investiu em melhorias sucessivas para o Mac OS. O Linux ganhou robustez suficiente, tornando-se um sistema de uso tanto para desktops como para servidores. II - INTRODUÇÃO Década de 2000 II - INTRODUÇÃO Nos servidores corporativos, os sistemas Unix também avançaram com desenvolvimento dos seus fornecedores, HP para o HP-UX, IBM no AIX e Oracle no Solaris. II - INTRODUÇÃO II - INTRODUÇÃO Década de 2010 Iniciou com a consolidação dos modelos computacionais em nuvem e da popularização de smartphones e tablets. A comercialização de software como serviço (SaaS – Software as a Service) é uma alternativa ao de aquisição de licenças de software Outros modelos de serviços na nuvem são a infraestrutura como serviço (IaaS – Infrastructure as a Service) e a plataforma como serviço (PaaS – Plataform as a Service). A evolução da tecnologia dos dispositivos móveis, está popularizando do uso destes dispositivos em escala global. II - INTRODUÇÃO II - INTRODUÇÃO Década de 2010 Os smartphones já passaram por três gerações (1G, 2G e 3G) chegaram à 4G 1G permitia somente a comunicação por voz em aparelhos analógicos 2G possibilitou a transmissão digital dados (SMS e acessa a internet). 3G evoluiu a velocidade de transmissão de dados, melhora na qualidade na transmissão de voz, suporte a conteúdos multimídia 4G tem como base equipamentos que operam com velocidade mínima de 1 Mbps, podendo chegar a 200 Mbps, possibilitando conexões mais rápidas e qualidades de vídeo e áudio superiores. II - INTRODUÇÃO II - INTRODUÇÃO Década de 2010 Sistemas operacionais para smartphones: Symbian OS, Windows Mobile, Android, Blackberry OS e iOS. O Symbian OS (Nokia) possui código aberto para que qualquer empresa que puder desenvolver suas próprias aplicações. É um sistema multitarefa e lida com aplicações em tempo real, além de ser estável, possuir recurso de proteção de memória e integra-se bem com o computador. Windows Mobile foi desenvolvido para transferir características da versão desktop para os celulares. Contém integração com o Microsoft Exchange Server, possibilitando a sincronia de e-mails e arquivos pessoais entre desktops/notebooks e smartphones. II - INTRODUÇÃO II - INTRODUÇÃO Década de 2010 O Android é um sistema operacional desenvolvido a partir de um consórcio chamado Open Handset Alliance formado por 47 empresas e liderado pelo Google. Suporta diversos padrões de conectividade como Bluetooth, EDGE, 3G e Wi-Fi. O BlackBerry OS é um sistema operacional proprietário desenvolvido pela Research In Motion (RIM) para sua linha de smartphones BlackBerry. A plataforma foi pioneira no uso de smartphones para usuários corporativos, suportando sincronização com Microsoft Exchange, Lotus Domino ou Novell GroupWise, e-mail, calendário, tarefas, notas e contatos, quando utilizado em conjunto com o BlackBerry Enterprise Server. II - INTRODUÇÃO II - INTRODUÇÃO Década de 2010 O iOS é desenvolvido pela Apple a partir do Mac OS X. Foi difundido no uso do iPhone. Dividido em três domínios: Machine level software: Para atender às necessidades de trabalho de todos os usuários; System level software: Para atender às funções críticas do sistema; User level software: utilizado para atender às necessidades de um usuário específico. A partir da versão 4, o iOS passou a ser multitarefa. Uma das características que ajudaram na popularidade deste sistema operacional é a sua interface intuitiva e amigável, além do navegador Safari. II - INTRODUÇÃO II - INTRODUÇÃO Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das aplicações por ele suportadas. Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefa II - INTRODUÇÃO Sistemas Multiprogramáveis/ Multitarefa Sistemas com múltiplos processadores Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefa II - INTRODUÇÃO II - INTRODUÇÃO Executa um único programa tendo os seus recursos dedicado. 1960 Inicio e 1970 PC Tipos de Sistemas Operacionais Sistemas Multiprogramáveis/ Multitarefa II - INTRODUÇÃO II - INTRODUÇÃO Compartilha os recursos do sistema entre os usuários e as tarefas em execução II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas Multiprogramáveis/ Multitarefa Classificação conforme a gerência de aplicações: Sistemas Multiprogramáveis/ Multitarefa II - INTRODUÇÃO Sistemas batch Sistemas de tempo compartilhado Sistemas de tempo real Executa sem intervenção do usuário A tarefa é dividida em fatias de tempo entre os processos Utilização prioritária do processador Tipos de Sistemas Operacionais Sistemas batch II - INTRODUÇÃO Década de 1960: Também chamados de jobs que eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, onde aguardavam para ser processados. Posteriormente, em função da disponibilidade de espaço na memória principal, os jobs eram executados, produzindo uma saída em disco ou fita. • Batch não exige a interação do usuário com a aplicação • Todas as entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária, geralmente arquivos em disco. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas batch II - INTRODUÇÃO • Alguns exemplos de aplicações: cálculos numéricos, compilações, ordenações, backups, onde não é necessária à interação com o usuário. •Quando bem projetados, são bastante eficientes, devido à melhor utilização do processador, porém podem oferecer tempos de resposta longos. •Hoje, os sistemas operacionais implementam ou simulam o processamento batch, não existindo sistemas exclusivamente dedicados a este tipo de processamento. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas de tempo compartilhado II - INTRODUÇÃO Os sistemas de tempo compartilhado (time-sharing) permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. O sistema cria para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a ele. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas de tempo real II - INTRODUÇÃO Os sistemas de tempo real (real-time) são implementados de forma semelhante aos sistemas de tempo compartilhado. Enquanto em sistemas de tempo compartilhado o tempo de processamento pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de processamento devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrário poderão ocorrer problemas irreparáveis. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas de tempo real II - INTRODUÇÃO Nos sistemas de tempo real não existe a ideia de fatia de tempo, implementada nos sistemas de tempo compartilhado. Um programa utiliza o processador o tempo que for necessário ou até que apareça outro mais prioritário. A importância ou prioridade de execução de um programa é definida pela própria aplicação e não pelo sistema operacional. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas de tempo real II - INTRODUÇÃO Esses sistemas, normalmente, estão presentes em aplicações de controle de processos, como: • Monitoramento de refinarias de petróleo, • Controle de tráfego aéreo, • Usinas termoelétricas e nucleares, • Qualquer aplicação em que o tempo de processamento é fator fundamental. II - INTRODUÇÃO Tipos de Sistemas Operacionais II - INTRODUÇÃO Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. Permite que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas simultaneamente em mais de um processador. Nestas condições, tornou-se possível computacionais voltados, principalmente, para processamento científico. Sistemas com múltiplos processadores II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas com múltiplos processadores II - INTRODUÇÃO Exemplos: • desenvolvimento aeroespacial; • prospecção de petróleo; • simulações; • processamento de imagens e CAD; • qualquer aplicação que faça uso intensivo da UCP A evolução desses sistemas deve-se, em grande parte, ao elevado custo de desenvolvimento de processadores de alto desempenho. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas com múltiplos processadores II - INTRODUÇÃO Os conceitos aplicados ao projeto de sistemas com múltiplos processadores incorporam os mesmos princípios básicos e benefícios apresentados na multiprogramação, além de outras características e vantagens específicas como escalabilidade, disponibilidade e balanceamento de carga. Escalabilidade é a capacidade de ampliar o poder computacional do sistema apenas adicionando novos processadores. Em ambientes com um único processador, caso haja problemas de desempenho, seria necessário substituir todo o sistema por uma outra configuração com maior poder de processamento. Com a possibilidade de múltiplos processadores, basta acrescentar novos processadores à configuração. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas com múltiplos processadores II - INTRODUÇÃO Disponibilidade é a capacidade de manter o sistema em operação mesmo em casos de falhas. Neste caso, se um dos processadores falhar, os demais podem assumir suas funções de maneira transparente aos usuários e suas aplicações, embora com menor capacidade de computação. Balanceamento de carga é a possibilidade de distribuir o processamento entre os diversos processadores da configuração a partir da carga de trabalho de cada processador, melhorando, assim, o desempenho do sistema como um todo. II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas com múltiplos processadores II - INTRODUÇÃO Um fator-chave no desenvolvimento de sistemas operacionais com múltiplos processadores é: • Forma de comunicação entre as UCPs • Grau de compartilhamento da memória e dos dispositivos de entrada e saída. Em função desses fatores, pode-se classificar os sistemas com múltiplos processadores em fortemente acoplados ou fracamente acoplados II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas com múltiplos processadores Sistemas com múltiplos processadores Fortemente Acoplados II - INTRODUÇÃO Fracamente Acoplados II - INTRODUÇÃO Tipos de Sistemas Operacionais Sistemas com múltiplos processadores II - INTRODUÇÃO Sistemas Fortemente Acoplados (multiprocessadores): Constituído de vários processadores que compartilham uma única memória física e dispositivos de entrada/saída sendo gerenciados por apenas um sistema operacional. Sistemas Fracamente Acoplados (multicomputadores) : Possuem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente, possuindo seu próprio sistema operacional e gerenciando seus próprios recursos, como UCP, memória e dispositivos de entrada/saída. II - INTRODUÇÃO II - INTRODUÇÃO II - INTRODUÇÃO