Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional SISTEMA OPERACIONAL • Definição (MACHADO/MAIA, 2007) – Conjunto de rotinas executadas pelo processador – Controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus recursos: • Processadores • Memórias • Dispositivos de Entrada e Saída • Definição (TANANBAUM, 2003) – Programa de computador que age como intermediário entre o usuário e o hardware SISTEMA OPERACIONAL • Definição (MACHADO/MAIA, 2007) – Conjunto de rotinas executadas pelo processador – Controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus recursos: • Processadores • Memórias • Dispositivos de Entrada e Saída • Definição (TANANBAUM, 2003) – Programa de computador que age como intermediário entre o usuário e o hardware SISTEMA OPERACIONAL • Por quê utilizar um Sistema Operacional – Aproveitamento de hardware – Executar programas e facilitar a solução de problemas – Usar o hardware de maneira eficiente • Funções Básicas – – – – – – Interface com o usuário (shell, ambiente) Gerenciamento de processos Gerenciamento de memória Tratamento de interrupções Gerenciamento do sistema de arquivos Operações de entrada/saída VISÃO DO SISTEMA COMPUTACIONAL • Sistema Computacional consiste em – Hardware – Programas do Sistema – Programas de Aplicação TANENABUM, fig.1.1, pag 1 – Um sistema computacional VISÃO DO SISTEMA OPERACIONAL MACHADO, fig.1.1, pag 4 – Visão do sistema operacional MÁQUINA DE NÍVEIS • Máquina de Camadas – Ótica do hardware e software • Máquina Virtual – Visão modular MACHADO, fig.1.2, pag 6 – Visão do computador pelo usuário HISTÓRICO • Antes de 1940 – – – – – – – – – Computadores eram grandes calculadoras 1642 – Pascaline 1673 – Máquina de somar e multiplicar 1820 – Máquina realiza as 4 operações 1833 – Máquina analítica 1854 – Lógica booleana 1890 – Leitor de Cartões perfurados 1930 – Z1 (Computador com reles) 1937 – Máquina Universal (Turing) • Executava algoritmos e processamento de símbolos • Base de toda a ciência da computação moderna HISTÓRICO • Década de 40 – 1943 – ENIGMA (decifrar códigos de guerra) – 1944 – Colossus (IBM) – 1946 – ENIAC – 1949 – EDSAC, EDVAC, IAS, MARK1 ... HISTÓRICO • Década de 50 – Transistor – + velocidade de processamento – Memórias magnéticas – acesso + rápido – 1951 – Whirtwind 1º computador (processamento real) – 1953 – IBM 701 1º Sistema Operacional – Processamento em Bath HISTÓRICO • Década de 60 – Circuito Integrado – CI – 1964 – IBM System 360 – OS/360 – Multiprogramação, Time-sharing, On-line – 1965 – MULTICS – múltiplos processadores – 1969 – UNIX – Versão do MULTICS (Ken Tompson) HISTÓRICO • Década de 70 – – – – – – Circuitos Integrados de Larga Escala – LSI PDP-11, VAX-VMS 1971 – ALTAIR – Processador 8008, Pascal e C 1976 – APPLE II – Steve Jobs e Steve Wozniak Fundação da Apple e da Microsoft CM/P – Sistema Operacional da Digital Research HISTÓRICO • Década de 80 – – – – IBM PC – Processador 8080 de 16 bits UNIX Berkeley = BSD 1982 – Sun Microsystem (RISC com SunOS e Solaris) Microsoft Windows, IBM OS/2, Novell Netware, Microsoft Lan Manager HISTÓRICO • Década de 90 – – – – – Sistemas especialistas, multimídia, BD distribuídos IA, Redes Neurais Processadores + rápidos, Memórias + baratas Unidades de E/S menores UNIX (HP VX e IBM AIX), Microsoft Windows, Linux HISTÓRICO • Momento Atual (2007 ...) – Evolução mais rápida do hardware – Novas interfaces • Linguagens naturais, som, realidade virtual – Processamento Distribuído – Sistemas Operacionais Embarcados EVOLUÇÃO DOS SISTEMAS OPERACIONAIS • 1ª FASE (1945-1955) – ENIAC – Programação painéis - linguagem de máquina – Não existia o conceito de SO e LP • 2ª FASE (1956-1965) – Primeiras LP, cartões perfurados, SO processamento Bath, Input/Output • 3ª FASE (1966-1980) – – – – – IBM OS/360 Multiprogramação, Sistemas de Tempo Compartilhado Surgimento do UNIX (1969) Primeiros Microcomputadores de 8 bits da Apple SO CP/M EVOLUÇÃO DOS SISTEMAS OPERACIONAIS • 4ª FASE (1981-1990) – – – – – Miniaturização de equipamentos Personal Computer (PC) 16 bits da IBM Microsoft MS-DOS Sistemas Multitarefas: 1-Preemptivos e 2-Cooperativos Sistemas Operacionais de Rede (SOR) • 5ª FASE (1990-...) – – – – – Sistemas para arquiteturas paralelas Sistemas de processamento distribuído Arquitetura Cliente/Servidor Interfaces Gráficas Amigáveis Software Livre TIPOS DE SISTEMAS OPERACIONAIS • Evolução do hardware e de aplicações suportados pelo Sistema Operacional – Job Processo Thread Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefa Sistemas Multiprogramáveis/ Multitarefa MACHADO, fig.1.5, pag 15 – Tipos de sistemas operacionais Sistemas com Múltiplos Processadores SO MONOPROGRAMÁVEIS/MONOTAREFA • Primeiros SOs • Processador, memória e periféricos dedicados à execução de um único programa • Surgimento dos primeiros computadores (1960) • Computadores pessoais (PC - 1970) • Simples implementação MACHADO, fig.1.6, pag 16 – Sistemas monoprogramáveis / monotarefa SO MULTIPROGRAMÁVEIS/MULTITAREFA • Evolução dos SOs mono-programáveis • Recurso computacionais compartilhados entre os usuários • Outros programas são executados durante período de espera por aplicações • Vantagens – Redução do tempo de resposta de aplicações – Compartilhamento de Recursos • Multiprogramáveis – Monousuários – computadores pessoais, estações de trabalho, interação no SO – Multiusuários – ambiente interativo, usuários simultâneos SO MULTIPROGRAMÁVEIS/MULTITAREFA MACHADO, fig.1.7, pag 17 – Sistemas multiprogramáveis / multitarefa SO MULTIPROGRAMÁVEIS/MULTITAREFA • Classificam-se conforme as aplicações são gerenciadas MACHADO, fig.1.8, pag 18 – Tipos de sistemas multiprogramáveis / multitarefa SO MULTIPROGRAMÁVEIS/MULTITAREFA • Sistemas Bath (Lote) – – – – 2ª Fase SO Grupo de programas é submetido ao processamento Diminui o tempo entre a execução dos programas Permitindo melhor desempenho de processamento – Exemplo • • • • traz os cartões para o 1401 lê os cartões para a fita coloca a fita no 7094 que executa o processamento coloca a fita no 1401 que imprime a saída TANENBAUM, fig.1.2, pag 5 – Um sistema em lote SO MULTIPROGRAMÁVEIS/MULTITAREFA • Sistemas Time Sharing (Tempo Compartilhado) – Arquitetura complexa e de propósito geral – Interação de vários usuários com o sistema por meio de terminais de vídeo – Computador pode ser usado por vários usuários ao mesmo tempo – Divide o poder computacional do computador entre os usuários – Time-Slice ou Quanta = Tempo do processador – Exemplo • UNIX • OS2 IBM • Windows NT (200X) SO MULTIPROGRAMÁVEIS/MULTITAREFA • Sistemas Operacionais Real Time (Tempo Real) – Dedicados à sistemas de controle e medição, com monitoramento contínuo de instrumentos • Controle industrial, robóticos, realidade virtual • Sistemas Operacionais de propósito geral • Multimídia, realidade virtual, robótica SISTEMAS COM MÚLTIPLOS PROCESSADORES • Duas ou mais CPUs trabalham em conjunto • Vários programas são executados ao mesmo tempo ou o programa é dividido em tarefas • Escalabilidade – Capacidade de ampliar o poder computacional adicionando novos processadores • Disponibilidade – Capacidade de manter o sistema em operação em caso de falhas • Balanceamento de Carga – Capacidade de atribuir processamento entre os diversos processadores • Classificação – Sistemas Fortemente Acoplados – Sistemas Fracamente Acoplados SISTEMAS COM MÚLTIPLOS PROCESSADORES • Sistemas Fortemente Acoplados – Vários processadores e uma única memória física e dispositivos de E/S são gerenciados por um único SO – Multiprocessadores – SMP – Simetric Multiprocessors – NUMA – Nom Univorm Memory Access MACHADO, fig.1.10, pag 21 – Sistemas fortemente acoplados SISTEMAS COM MÚLTIPLOS PROCESSADORES • Sistemas Fracamente Acoplados – Dois ou mais sistemas computacionais conectados através de linhas de comunicação independentes – Gerenciam seus próprios recursos – Multicomputadores – SOR – Sistemas Operacionais de Rede – SD – Sistemas Distribuídos MACHADO, fig.1.11, pag 21 – Sistemas fracamente acoplados SISTEMAS DISTRIBUÍDOS • Sistema formado por um conjunto de módulos, compostos pelo menos por processador-memória, interligados através de um subsistema de comunicação • O hardware deve oferecer facilidades de comunicação entre processadores cooperando sob um controle descentralizado, possibilitando a execução de programas de aplicação • Exemplo – UNIX – Amoeba EXEMPLO DE SISTEMAS DISTRIBUÍDOS Sistema MOSIX – Sistema distribuído fracamente acoplado SISTEMAS PARALELOS • Sistemas atuando em mais de uma CPU de modo colaborativo • Paralelismo de hardware de sistemas multiprocessados • Compartilham a mesma memória física, barramento, relógio • Sistemas Distribuídos Fortemente Acoplados • É uma classificação dos sistemas multiprocessados • Dependendo como estão conectados e compartilhados pode ser: – Paralelo – Multicomputador – Multiprocessador SISTEMAS OPERACIONAIS DE SERVIDORES • Executados em servidores, estações de trabalho, computadores de grande porte • Controlam múltiplos usuários • Compartilham recursos e dados • Exemplo – – – – – UNIX Windows 200X Server Linux IBM AIX Sun Solaris SISTEMAS OPERACIONAIS DE COMPUTADORES PESSOAIS • Surgiram na 4ª Fase dos SO em 1981 para computadores de 16 bits (IBM e MS-DOS) • Oferece interface para único usuário • Dispositivos: mouse, teclado, impressora, monitor • Microprocessador – Conceito de multitarefa (time sharing) – Multitarefa – múltiplas tarefas são executadas aparentemente de forma simultânea em uma única CPU • Exemplo – – – – Windows NT Linux Windows 9x MacOS SISTEMAS OPERACIONAIS EMBARCADOS • Sistemas adaptados para dispositivos móveis • Equipamentos como PDAs, celulares, MP3 Player, Câmeras • Memória limitada, processador mais lento • Exemplo – PalmOS – Windows Mobile Sistemas Operacionais Adaptada do material original do Prof. Marcio A. Artero BIBLIOGRAFIA BÁSICA DEITEL, Harvery M.; DEITEL, Paul J.; CHOFFNES, David R.. Sistemas Operacionais. 3ª ed. São Paulo: Pearson Education,2005. TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª ed. São Paulo: Pearson Prentice Hall, 2008. Sistemas Operacionais BIBLIOGRAFIA COMPLEMETAR SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Fundamentos de Sistemas Operacionais. 6ª ed. Rio de Janeiro: LTC, 2004. SILBERSCHATZ, A.. Sistemas Operacionais. 6ª ed. Rio de Janeiro: LTC, 2004. OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva; TOSCANI, Simão Sirineo. Sistemas Operacionais. 3ª ed. Porto Alegre: Sagra Luzzatto, 2004. Sistemas Operacionais BIBLIOGRAFIA COMPLEMETAR- continuação TANEMBAUM, A. S.. Organizacao estruturada de computadores. 4ª ed. Rio de Janeiro: LTC, 2001. KORFF, Yanek. Mastering FreeBSD and OpenBSD Security. 5ª ed. Sebastepol - CA: Beiging O'Reily, 2005.