Conceitos Básicos sobre Sistemas Operacionais Ivanovitch Medeiros Dantas da Silva Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação DCA0800 - Algoritmos e Lógica de Programação Natal, 30 de agosto de 2011
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
Definições Introdução - Conceitos básicos sobre Sistemas Operacionais Sem software um computador é basicamente um monte inútil de metal. Com software um computador pode armazenar, processar, tocar música, reproduzir videos, etc. Um sistema computational: HARDWARE + SOFTWARE. Software: Programas de sistema - gerenciam a operação do computador Programas aplicativos - realizam o trabalho real desejado pelo usuário O programa de sistema mais básico é o sistema operacional, cuja tarefa é controlar todos os recursos do computador (dispositivos físicos e funções de software).
Definições Introdução - Conceitos básicos sobre Sistemas Operacionais Sem software um computador é basicamente um monte inútil de metal. Com software um computador pode armazenar, processar, tocar música, reproduzir videos, etc. Um sistema computational: HARDWARE + SOFTWARE. Software: Programas de sistema - gerenciam a operação do computador Programas aplicativos - realizam o trabalho real desejado pelo usuário O programa de sistema mais básico é o sistema operacional, cuja tarefa é controlar todos os recursos do computador (dispositivos físicos e funções de software).
Definições Introdução - Conceitos básicos sobre Sistemas Operacionais Sem software um computador é basicamente um monte inútil de metal. Com software um computador pode armazenar, processar, tocar música, reproduzir videos, etc. Um sistema computational: HARDWARE + SOFTWARE. Software: Programas de sistema - gerenciam a operação do computador Programas aplicativos - realizam o trabalho real desejado pelo usuário O programa de sistema mais básico é o sistema operacional, cuja tarefa é controlar todos os recursos do computador (dispositivos físicos e funções de software).
Definições Introdução - Conceitos básicos sobre Sistemas Operacionais Sem software um computador é basicamente um monte inútil de metal. Com software um computador pode armazenar, processar, tocar música, reproduzir videos, etc. Um sistema computational: HARDWARE + SOFTWARE. Software: Programas de sistema - gerenciam a operação do computador Programas aplicativos - realizam o trabalho real desejado pelo usuário O programa de sistema mais básico é o sistema operacional, cuja tarefa é controlar todos os recursos do computador (dispositivos físicos e funções de software).
Definições Introdução - Conceitos básicos sobre Sistemas Operacionais Sem software um computador é basicamente um monte inútil de metal. Com software um computador pode armazenar, processar, tocar música, reproduzir videos, etc. Um sistema computational: HARDWARE + SOFTWARE. Software: Programas de sistema - gerenciam a operação do computador Programas aplicativos - realizam o trabalho real desejado pelo usuário O programa de sistema mais básico é o sistema operacional, cuja tarefa é controlar todos os recursos do computador (dispositivos físicos e funções de software).
Definições Exemplos de Sistemas Operacionais
Definições Uma definição para Sistema Operacional É um programa de controle do computador. O Sistema Operacional é responsável por alocar recursos de hardware e escalonar tarefas. Ele também deve prover uma interface para o usuário - ele fornece ao usuário uma maneira de acesso aos recursos do computador. Mark G Sobell
Definições Uma definição para Sistema Operacional É um programa de controle do computador. O Sistema Operacional é responsável por alocar recursos de hardware e escalonar tarefas. Ele também deve prover uma interface para o usuário - ele fornece ao usuário uma maneira de acesso aos recursos do computador. Mark G Sobell
Definições Uma definição para Sistema Operacional
Definições Outra definição para Sistema Operacional Um Sistema Operacional pode ser definido como um gerenciador dos recursos que compõem o computador (processador, memória, I/O, arquivos, etc). Os problemas centrais que o Sistema Operacional deve resolver são o compartilhamento e a proteção dos recursos a serem usados pelas aplicações do usuário e o interfaceamento entre este e a máquina. Stemmer
Definições Outra definição para Sistema Operacional Um Sistema Operacional pode ser definido como um gerenciador dos recursos que compõem o computador (processador, memória, I/O, arquivos, etc). Os problemas centrais que o Sistema Operacional deve resolver são o compartilhamento e a proteção dos recursos a serem usados pelas aplicações do usuário e o interfaceamento entre este e a máquina. Stemmer
Definições Outra definição para Sistema Operacional
Definições O conceito de máquina virtual Um sistema computacional moderno é composto de vários componentes (processadores, memórias, discos, impressoras, interfaces de rede, etc). Escrever programas que controlem todos esses componentes é uma tarefa complexa. Agora imagine se todo programador tivesse que se preocupar com o funcionamento de cada um desses componentes. O sistema operacional apresenta para o usuário uma interface, máquina virtual, que nada mais é que uma máquina mais simples porém com as mesmas funcionalidades da máquina real.
Definições O conceito de máquina virtual Um sistema computacional moderno é composto de vários componentes (processadores, memórias, discos, impressoras, interfaces de rede, etc). Escrever programas que controlem todos esses componentes é uma tarefa complexa. Agora imagine se todo programador tivesse que se preocupar com o funcionamento de cada um desses componentes. O sistema operacional apresenta para o usuário uma interface, máquina virtual, que nada mais é que uma máquina mais simples porém com as mesmas funcionalidades da máquina real.
Definições O conceito de máquina virtual Um sistema computacional moderno é composto de vários componentes (processadores, memórias, discos, impressoras, interfaces de rede, etc). Escrever programas que controlem todos esses componentes é uma tarefa complexa. Agora imagine se todo programador tivesse que se preocupar com o funcionamento de cada um desses componentes. O sistema operacional apresenta para o usuário uma interface, máquina virtual, que nada mais é que uma máquina mais simples porém com as mesmas funcionalidades da máquina real.
Definições O conceito de máquina virtual Um sistema computacional moderno é composto de vários componentes (processadores, memórias, discos, impressoras, interfaces de rede, etc). Escrever programas que controlem todos esses componentes é uma tarefa complexa. Agora imagine se todo programador tivesse que se preocupar com o funcionamento de cada um desses componentes. O sistema operacional apresenta para o usuário uma interface, máquina virtual, que nada mais é que uma máquina mais simples porém com as mesmas funcionalidades da máquina real.
Definições Processo O que é um processo? Um processo é um programa em execução Associado a um processo está um espaço de endereçamento, que nada mais é do que um espaço de memória onde o processo poe ler ou escrever Associado a cada processo também está um conjunto de registradores (PC, registradores de hardware, ponteiro da pilha de execução) Todas essas informações são usadas pelo SO durante uma interrupção (salvar o contexto)
Definições Modos de Execução Como proteger o acesso indevido ao hardware? Modo Usúario Software aplicativos: Excel, Paint, Word. Software de sistema: compiladores, drives de dispositivos, interpretador de comandos (shell), sistema de janelas. Modo-kernel ou Modo supervisor Software de sistema: sistema operacional, BIOS, drives de dispositivos, sistema de janelas No Modo-kernel o acesso ao hardware é protegido do usuário, dessa forma, protegendo o hardware contra acessos indevidos.
Definições Modos de Execução Como proteger o acesso indevido ao hardware? Modo Usúario Software aplicativos: Excel, Paint, Word. Software de sistema: compiladores, drives de dispositivos, interpretador de comandos (shell), sistema de janelas. Modo-kernel ou Modo supervisor Software de sistema: sistema operacional, BIOS, drives de dispositivos, sistema de janelas No Modo-kernel o acesso ao hardware é protegido do usuário, dessa forma, protegendo o hardware contra acessos indevidos.
Definições Modos de Execução Como proteger o acesso indevido ao hardware? Modo Usúario Software aplicativos: Excel, Paint, Word. Software de sistema: compiladores, drives de dispositivos, interpretador de comandos (shell), sistema de janelas. Modo-kernel ou Modo supervisor Software de sistema: sistema operacional, BIOS, drives de dispositivos, sistema de janelas No Modo-kernel o acesso ao hardware é protegido do usuário, dessa forma, protegendo o hardware contra acessos indevidos.
Definições Modos de Execução Como proteger o acesso indevido ao hardware? Modo Usúario Software aplicativos: Excel, Paint, Word. Software de sistema: compiladores, drives de dispositivos, interpretador de comandos (shell), sistema de janelas. Modo-kernel ou Modo supervisor Software de sistema: sistema operacional, BIOS, drives de dispositivos, sistema de janelas No Modo-kernel o acesso ao hardware é protegido do usuário, dessa forma, protegendo o hardware contra acessos indevidos.
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
Máquina estendida O sistema operacional como uma máquina estendida Fornecer uma abstração de alto nível dos recursos de hardware da máquina, livrando o programador dos detalhes de funcionamento dos mesmos. A função do sistema operacional é apresentar ao usuário o equivalente a uma máquina virtual, mais fácil de programar do que o hardware que a compõe. Visão Top-Down (de cima para baixo).
Máquina estendida O sistema operacional como uma máquina estendida Fornecer uma abstração de alto nível dos recursos de hardware da máquina, livrando o programador dos detalhes de funcionamento dos mesmos. A função do sistema operacional é apresentar ao usuário o equivalente a uma máquina virtual, mais fácil de programar do que o hardware que a compõe. Visão Top-Down (de cima para baixo).
Máquina estendida O sistema operacional como uma máquina estendida Fornecer uma abstração de alto nível dos recursos de hardware da máquina, livrando o programador dos detalhes de funcionamento dos mesmos. A função do sistema operacional é apresentar ao usuário o equivalente a uma máquina virtual, mais fácil de programar do que o hardware que a compõe. Visão Top-Down (de cima para baixo).
Máquina estendida O sistema operacional como uma máquina estendida Fornecer uma abstração de alto nível dos recursos de hardware da máquina, livrando o programador dos detalhes de funcionamento dos mesmos. A função do sistema operacional é apresentar ao usuário o equivalente a uma máquina virtual, mais fácil de programar do que o hardware que a compõe. Visão Top-Down (de cima para baixo).
Máquina estendida O sistema operacional como uma máquina estendida Ler ou escrever um dado no disco magnético
Máquina estendida O sistema operacional como uma máquina estendida Ler ou escrever um dado no disco magnético Sem sistema operacional Para o programador ler/escrever um dado no disco é necessário saber: Tamanho do dado, localização (prato, cilindro, trilha, setor), rotacionar o eixo, posicionar a cabeça de leitura/escrita Com sistema operacional Para o programador ler/escrever um dado no disco é necessário apenas chamar as funções correspondentes Ler(dado) Escrever(dado)
Gerente de recursos O sistema operacional como um gerente de recursos Visão bottom-up (de baixo para cima) Fornecer um esquema de alocação dos recursos (processadores, memórias, I/O, etc) entre os programas concorrentes.
Gerente de recursos O sistema operacional como um gerente de recursos Visão bottom-up (de baixo para cima) Estabelecer critérios de uso dos recursos e ordem de acesso aos mesmos Impedindo a violação no espaço de memória dos programas concorrentes e tentativas de acesso simultâneo a um mesmo recurso (gerência e proteção dos dispositivos)
Gerente de recursos O sistema operacional como um gerente de recursos Visão bottom-up (de baixo para cima) Estabelecer critérios de uso dos recursos e ordem de acesso aos mesmos Impedindo a violação no espaço de memória dos programas concorrentes e tentativas de acesso simultâneo a um mesmo recurso (gerência e proteção dos dispositivos)
Gerente de recursos O sistema operacional como um gerente de recursos Visão bottom-up (de baixo para cima) Estabelecer critérios de uso dos recursos e ordem de acesso aos mesmos Impedindo a violação no espaço de memória dos programas concorrentes e tentativas de acesso simultâneo a um mesmo recurso (gerência e proteção dos dispositivos)
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
Evolução Evolução dos Sistemas Operacionais Os tipos e sua evolução estão intimamente relacionados com a evolução do Hardware e das aplicações por ele suportadas Geração zero: tudo mecânico, não existia sistema operacional. Geração 1: um único grupo de pessoas projetava, construía, programava, operava e mantinha cada máquina. Geração 2: primeiros SO s (sistema de processamento em lotes - batch).
Evolução Evolução dos Sistemas Operacionais Os tipos e sua evolução estão intimamente relacionados com a evolução do Hardware e das aplicações por ele suportadas Geração zero: tudo mecânico, não existia sistema operacional. Geração 1: um único grupo de pessoas projetava, construía, programava, operava e mantinha cada máquina. Geração 2: primeiros SO s (sistema de processamento em lotes - batch).
Evolução Evolução dos Sistemas Operacionais Os tipos e sua evolução estão intimamente relacionados com a evolução do Hardware e das aplicações por ele suportadas Geração zero: tudo mecânico, não existia sistema operacional. Geração 1: um único grupo de pessoas projetava, construía, programava, operava e mantinha cada máquina. Geração 2: primeiros SO s (sistema de processamento em lotes - batch).
Evolução Evolução dos Sistemas Operacionais Os tipos e sua evolução estão intimamente relacionados com a evolução do Hardware e das aplicações por ele suportadas Geração zero: tudo mecânico, não existia sistema operacional. Geração 1: um único grupo de pessoas projetava, construía, programava, operava e mantinha cada máquina. Geração 2: primeiros SO s (sistema de processamento em lotes - batch).
Evolução Evolução dos Sistemas Operacionais Geração 2 - Sistema de processamento em lotes A CPU ficava ociosa entre as execuções dos lotes (jobs).
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s No início da década de 60, a maioria dos fabricantes de computadores tinha duas linhas de produtos distintas e totalmente incompatíveis (computadores científicos e comerciais) Surge o IBM 360 (diversas versões - preço, desempenho) As máquinas tinham a mesma arquitetura, o mesmo conjunto de instrução. Os programas escritos em uma máquina podiam ser executados em outra. Imagine construir um SO que atenda todos esses requisitos O OS 360 continham milhões de linhas de código em Assembly. Foi construído por milhares de programadores e continha milhares de erros. A cada nova versão (21.8) novos erros apareciam.
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s No início da década de 60, a maioria dos fabricantes de computadores tinha duas linhas de produtos distintas e totalmente incompatíveis (computadores científicos e comerciais) Surge o IBM 360 (diversas versões - preço, desempenho) As máquinas tinham a mesma arquitetura, o mesmo conjunto de instrução. Os programas escritos em uma máquina podiam ser executados em outra. Imagine construir um SO que atenda todos esses requisitos O OS 360 continham milhões de linhas de código em Assembly. Foi construído por milhares de programadores e continha milhares de erros. A cada nova versão (21.8) novos erros apareciam.
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s No início da década de 60, a maioria dos fabricantes de computadores tinha duas linhas de produtos distintas e totalmente incompatíveis (computadores científicos e comerciais) Surge o IBM 360 (diversas versões - preço, desempenho) As máquinas tinham a mesma arquitetura, o mesmo conjunto de instrução. Os programas escritos em uma máquina podiam ser executados em outra. Imagine construir um SO que atenda todos esses requisitos O OS 360 continham milhões de linhas de código em Assembly. Foi construído por milhares de programadores e continha milhares de erros. A cada nova versão (21.8) novos erros apareciam.
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s No início da década de 60, a maioria dos fabricantes de computadores tinha duas linhas de produtos distintas e totalmente incompatíveis (computadores científicos e comerciais) Surge o IBM 360 (diversas versões - preço, desempenho) As máquinas tinham a mesma arquitetura, o mesmo conjunto de instrução. Os programas escritos em uma máquina podiam ser executados em outra. Imagine construir um SO que atenda todos esses requisitos O OS 360 continham milhões de linhas de código em Assembly. Foi construído por milhares de programadores e continha milhares de erros. A cada nova versão (21.8) novos erros apareciam.
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s A terceira geração de sistemas operacionais introduziu o conceito de multiprogramação. A ideia da multiprogramação: Dividir a memória em várias partições, com um job diferente em cada partição. Enquanto um job estivesse esperando a conclusão da operação de E/S, outro job poderia usar a CPU.
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s A terceira geração de sistemas operacionais introduziu o conceito de multiprogramação. A ideia da multiprogramação: Dividir a memória em várias partições, com um job diferente em cada partição. Enquanto um job estivesse esperando a conclusão da operação de E/S, outro job poderia usar a CPU.
Evolução Evolução dos Sistemas Operacionais Geração 3 - CI s A terceira geração de sistemas operacionais introduziu o conceito de multiprogramação. A ideia da multiprogramação: Dividir a memória em várias partições, com um job diferente em cada partição. Enquanto um job estivesse esperando a conclusão da operação de E/S, outro job poderia usar a CPU.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Surgi a era dos computadores pessoais (microprocessador, LSI) Em 1974, a Intel desenvolve o microprocessador 8080 (8 bits) A Digital Research produz o SO CP/M para ser executado usando um 8080 Final de 1974, a Motorola lança o microprocessador 6800 (8 bits) Em 1975, a MOS Technology fabrica o microprocessador 6502 (8 bits) O microprocessador 6502 foi base para o Apple II (1977) (concorrente do CP/M)
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Surgi a era dos computadores pessoais (microprocessador, LSI) Em 1974, a Intel desenvolve o microprocessador 8080 (8 bits) A Digital Research produz o SO CP/M para ser executado usando um 8080 Final de 1974, a Motorola lança o microprocessador 6800 (8 bits) Em 1975, a MOS Technology fabrica o microprocessador 6502 (8 bits) O microprocessador 6502 foi base para o Apple II (1977) (concorrente do CP/M)
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Surgi a era dos computadores pessoais (microprocessador, LSI) Em 1974, a Intel desenvolve o microprocessador 8080 (8 bits) A Digital Research produz o SO CP/M para ser executado usando um 8080 Final de 1974, a Motorola lança o microprocessador 6800 (8 bits) Em 1975, a MOS Technology fabrica o microprocessador 6502 (8 bits) O microprocessador 6502 foi base para o Apple II (1977) (concorrente do CP/M)
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Surgi a era dos computadores pessoais (microprocessador, LSI) Em 1974, a Intel desenvolve o microprocessador 8080 (8 bits) A Digital Research produz o SO CP/M para ser executado usando um 8080 Final de 1974, a Motorola lança o microprocessador 6800 (8 bits) Em 1975, a MOS Technology fabrica o microprocessador 6502 (8 bits) O microprocessador 6502 foi base para o Apple II (1977) (concorrente do CP/M)
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Surgi a era dos computadores pessoais (microprocessador, LSI) Em 1974, a Intel desenvolve o microprocessador 8080 (8 bits) A Digital Research produz o SO CP/M para ser executado usando um 8080 Final de 1974, a Motorola lança o microprocessador 6800 (8 bits) Em 1975, a MOS Technology fabrica o microprocessador 6502 (8 bits) O microprocessador 6502 foi base para o Apple II (1977) (concorrente do CP/M)
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Nativamente, as máquinas Apple II não suportavam o CP/M. O SO CP/M era tão popular na época (1975-1980) que as máquinas Apple II forneciam uma interface para ser acoplado um hardware cuja finalidade era dá suporte para o CP/M. Essa placa externa era fornecida para uma pequena empresa chamada Microsoft.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Nativamente, as máquinas Apple II não suportavam o CP/M. O SO CP/M era tão popular na época (1975-1980) que as máquinas Apple II forneciam uma interface para ser acoplado um hardware cuja finalidade era dá suporte para o CP/M. Essa placa externa era fornecida para uma pequena empresa chamada Microsoft.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Computador pessoal brasileiro (1982) utilizando o CP/M
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais No início de 1980, surgi os microprocessadores de 16 bits. A Intel desenvolve o microprocessador 8086. IBM projeta o IBM PC. A Microsoft oferece o sistema operacional DOS para IBM. O DOS foi desenvolvido por outra empresa. A Microsoft compra o SO e contrata o autor original do projeto para aperfeiçoar DOS. Surgi o MS-DOS. Rapidamente domina o mercado para o IBM PC. Até então todos os SO s (CP/M, MS-DOS, Apple DOS) eram baseado em linha de comando. O surgimento da interface gráfica (GUI - Graphical User Interface) torna a usabilidade dos PC s mais agradável.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais No início de 1980, surgi os microprocessadores de 16 bits. A Intel desenvolve o microprocessador 8086. IBM projeta o IBM PC. A Microsoft oferece o sistema operacional DOS para IBM. O DOS foi desenvolvido por outra empresa. A Microsoft compra o SO e contrata o autor original do projeto para aperfeiçoar DOS. Surgi o MS-DOS. Rapidamente domina o mercado para o IBM PC. Até então todos os SO s (CP/M, MS-DOS, Apple DOS) eram baseado em linha de comando. O surgimento da interface gráfica (GUI - Graphical User Interface) torna a usabilidade dos PC s mais agradável.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais No início de 1980, surgi os microprocessadores de 16 bits. A Intel desenvolve o microprocessador 8086. IBM projeta o IBM PC. A Microsoft oferece o sistema operacional DOS para IBM. O DOS foi desenvolvido por outra empresa. A Microsoft compra o SO e contrata o autor original do projeto para aperfeiçoar DOS. Surgi o MS-DOS. Rapidamente domina o mercado para o IBM PC. Até então todos os SO s (CP/M, MS-DOS, Apple DOS) eram baseado em linha de comando. O surgimento da interface gráfica (GUI - Graphical User Interface) torna a usabilidade dos PC s mais agradável.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais No início de 1980, surgi os microprocessadores de 16 bits. A Intel desenvolve o microprocessador 8086. IBM projeta o IBM PC. A Microsoft oferece o sistema operacional DOS para IBM. O DOS foi desenvolvido por outra empresa. A Microsoft compra o SO e contrata o autor original do projeto para aperfeiçoar DOS. Surgi o MS-DOS. Rapidamente domina o mercado para o IBM PC. Até então todos os SO s (CP/M, MS-DOS, Apple DOS) eram baseado em linha de comando. O surgimento da interface gráfica (GUI - Graphical User Interface) torna a usabilidade dos PC s mais agradável.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Após o surgimento da GUI, a Apple cria o Macintosh (1984) e a Microsoft cria o Windows (1985). Apple O Macintosh tinha suporte para o SO System 1, mais tarde chamado de Mac OS. Em 2001, a Apple lança o Mac OS X, com uma nova GUI rodando em cima do UNIX. Em 2005, a Apple adota os processadores da Intel. Microsoft Inicialmente o Windows era apenas uma GUI sobre o MS-DOS. Atualmente a versão mais recente é o Windows 7.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Após o surgimento da GUI, a Apple cria o Macintosh (1984) e a Microsoft cria o Windows (1985). Apple O Macintosh tinha suporte para o SO System 1, mais tarde chamado de Mac OS. Em 2001, a Apple lança o Mac OS X, com uma nova GUI rodando em cima do UNIX. Em 2005, a Apple adota os processadores da Intel. Microsoft Inicialmente o Windows era apenas uma GUI sobre o MS-DOS. Atualmente a versão mais recente é o Windows 7.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Após o surgimento da GUI, a Apple cria o Macintosh (1984) e a Microsoft cria o Windows (1985). Apple O Macintosh tinha suporte para o SO System 1, mais tarde chamado de Mac OS. Em 2001, a Apple lança o Mac OS X, com uma nova GUI rodando em cima do UNIX. Em 2005, a Apple adota os processadores da Intel. Microsoft Inicialmente o Windows era apenas uma GUI sobre o MS-DOS. Atualmente a versão mais recente é o Windows 7.
Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Após o surgimento da GUI, a Apple cria o Macintosh (1984) e a Microsoft cria o Windows (1985). Apple O Macintosh tinha suporte para o SO System 1, mais tarde chamado de Mac OS. Em 2001, a Apple lança o Mac OS X, com uma nova GUI rodando em cima do UNIX. Em 2005, a Apple adota os processadores da Intel. Microsoft Inicialmente o Windows era apenas uma GUI sobre o MS-DOS. Atualmente a versão mais recente é o Windows 7.
Classificação Tipos de Sistemas Operacionais
Classificação Tipos de Sistemas Operacionais Sistema monopragramáveis ou monotarefa Execução de um único programa (job) Qualquer outro programa, para ser executado, deveria aguardar o término do programa corrente Tipicamente relacionado ao surgimento dos mainframes Exemplo: MS-DOS
Classificação Tipos de Sistemas Operacionais Sistemas monopragramáveis ou monotarefa
Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa Mais complexos e mais eficientes Vários programas dividem os mesmos recursos Enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste intervalo de tempo Aumento da produtividade dos seus usuários e a redução de custos (compartilhamento de recursos do sistema entre diferentes aplicações) Exemplo: Sistemas de Batch, os sistemas de tempo compartilhado (time-sharing), os sistemas em tempo real
Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa Mais complexos e mais eficientes Vários programas dividem os mesmos recursos Enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste intervalo de tempo Aumento da produtividade dos seus usuários e a redução de custos (compartilhamento de recursos do sistema entre diferentes aplicações) Exemplo: Sistemas de Batch, os sistemas de tempo compartilhado (time-sharing), os sistemas em tempo real
Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa Mais complexos e mais eficientes Vários programas dividem os mesmos recursos Enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste intervalo de tempo Aumento da produtividade dos seus usuários e a redução de custos (compartilhamento de recursos do sistema entre diferentes aplicações) Exemplo: Sistemas de Batch, os sistemas de tempo compartilhado (time-sharing), os sistemas em tempo real
Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa Mais complexos e mais eficientes Vários programas dividem os mesmos recursos Enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste intervalo de tempo Aumento da produtividade dos seus usuários e a redução de custos (compartilhamento de recursos do sistema entre diferentes aplicações) Exemplo: Sistemas de Batch, os sistemas de tempo compartilhado (time-sharing), os sistemas em tempo real
Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa Mais complexos e mais eficientes Vários programas dividem os mesmos recursos Enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste intervalo de tempo Aumento da produtividade dos seus usuários e a redução de custos (compartilhamento de recursos do sistema entre diferentes aplicações) Exemplo: Sistemas de Batch, os sistemas de tempo compartilhado (time-sharing), os sistemas em tempo real
Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores Caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagens: Executar vários programas ao mesmo tempo Paralelismo - dividir a execução de um programa entre vários UCPs São classificados quanto: A forma de comunicação entre as UCPs O grau de compartilhamento da memória e dos dispositivos de I/O
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores Caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagens: Executar vários programas ao mesmo tempo Paralelismo - dividir a execução de um programa entre vários UCPs São classificados quanto: A forma de comunicação entre as UCPs O grau de compartilhamento da memória e dos dispositivos de I/O
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores Caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagens: Executar vários programas ao mesmo tempo Paralelismo - dividir a execução de um programa entre vários UCPs São classificados quanto: A forma de comunicação entre as UCPs O grau de compartilhamento da memória e dos dispositivos de I/O
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores - Sistemas fortemente acoplados Existem dois ou mais processadores compartilhando uma única memória e controlados por apenas um único SO Sistemas simétricos Possuem um tempo uniforme de acesso à memória principal Sistemas assimétricos O tempo de acesso à memória pelos processadores varia em função da sua localização física
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores - Sistemas fortemente acoplados Existem dois ou mais processadores compartilhando uma única memória e controlados por apenas um único SO Sistemas simétricos Possuem um tempo uniforme de acesso à memória principal Sistemas assimétricos O tempo de acesso à memória pelos processadores varia em função da sua localização física
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores - Sistemas fortemente acoplados Existem dois ou mais processadores compartilhando uma única memória e controlados por apenas um único SO Sistemas simétricos Possuem um tempo uniforme de acesso à memória principal Sistemas assimétricos O tempo de acesso à memória pelos processadores varia em função da sua localização física
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores - Sistemas fracamente acoplados Dois ou mais sistemas de computação interligados, sendo que cada sistema possui o seu próprio SO e gerencia seus próprios recursos. Sistemas Operacionais de Rede Existe a distinção clara que um serviço ou recurso é executado em outra máquina (servidor). Exemplo: impressora em rede. Sistemas Operacionais Distribuídos Para o usuário e suas aplicações, é como se não existisse uma rede de computadores, mas sim um único sistema centralizado (cloud computing).
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores - Sistemas fracamente acoplados Dois ou mais sistemas de computação interligados, sendo que cada sistema possui o seu próprio SO e gerencia seus próprios recursos. Sistemas Operacionais de Rede Existe a distinção clara que um serviço ou recurso é executado em outra máquina (servidor). Exemplo: impressora em rede. Sistemas Operacionais Distribuídos Para o usuário e suas aplicações, é como se não existisse uma rede de computadores, mas sim um único sistema centralizado (cloud computing).
Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores - Sistemas fracamente acoplados Dois ou mais sistemas de computação interligados, sendo que cada sistema possui o seu próprio SO e gerencia seus próprios recursos. Sistemas Operacionais de Rede Existe a distinção clara que um serviço ou recurso é executado em outra máquina (servidor). Exemplo: impressora em rede. Sistemas Operacionais Distribuídos Para o usuário e suas aplicações, é como se não existisse uma rede de computadores, mas sim um único sistema centralizado (cloud computing).
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
A principal estrutura de um SO - Kernel O kernel de um sistema operacional é visto como se fosse o núcleo, o cérebro do sistema Oferece serviços (procedimentos): Para os usuários do sistema e suas aplicações Para outros procedimentos do sistema O kernel representa a camada de software mais próxima ao hardware
A principal estrutura de um SO - Kernel O kernel de um sistema operacional é visto como se fosse o núcleo, o cérebro do sistema Oferece serviços (procedimentos): Para os usuários do sistema e suas aplicações Para outros procedimentos do sistema O kernel representa a camada de software mais próxima ao hardware
A principal estrutura de um SO - Kernel O kernel de um sistema operacional é visto como se fosse o núcleo, o cérebro do sistema Oferece serviços (procedimentos): Para os usuários do sistema e suas aplicações Para outros procedimentos do sistema O kernel representa a camada de software mais próxima ao hardware
Algumas funções do Kernel Tratamento de interrupções Periodicamente, o SO decide interromper a execução de um processo e iniciar a execução de outro Criação e eliminação de processos Quando um usuário clica em uma janela, ativa (cria) um programa, que por sua vez cria um processo Fechar uma janela elimina um processo Gerência de memória Quando um processo for finalizado, deve-se liberar a memória utilizado por ele E se um processo precisar de mais memória do que o disponível pela memória principal? Operações de entrada e saída, segurança, sistema de arquivos, escalonamento.
Algumas funções do Kernel Tratamento de interrupções Periodicamente, o SO decide interromper a execução de um processo e iniciar a execução de outro Criação e eliminação de processos Quando um usuário clica em uma janela, ativa (cria) um programa, que por sua vez cria um processo Fechar uma janela elimina um processo Gerência de memória Quando um processo for finalizado, deve-se liberar a memória utilizado por ele E se um processo precisar de mais memória do que o disponível pela memória principal? Operações de entrada e saída, segurança, sistema de arquivos, escalonamento.
Algumas funções do Kernel Tratamento de interrupções Periodicamente, o SO decide interromper a execução de um processo e iniciar a execução de outro Criação e eliminação de processos Quando um usuário clica em uma janela, ativa (cria) um programa, que por sua vez cria um processo Fechar uma janela elimina um processo Gerência de memória Quando um processo for finalizado, deve-se liberar a memória utilizado por ele E se um processo precisar de mais memória do que o disponível pela memória principal? Operações de entrada e saída, segurança, sistema de arquivos, escalonamento.
Algumas funções do Kernel Tratamento de interrupções Periodicamente, o SO decide interromper a execução de um processo e iniciar a execução de outro Criação e eliminação de processos Quando um usuário clica em uma janela, ativa (cria) um programa, que por sua vez cria um processo Fechar uma janela elimina um processo Gerência de memória Quando um processo for finalizado, deve-se liberar a memória utilizado por ele E se um processo precisar de mais memória do que o disponível pela memória principal? Operações de entrada e saída, segurança, sistema de arquivos, escalonamento.
Como o usuário do sistema acessa o kernel? Chamadas de sistema - System calls Mecanismo de proteção ao núcleo do sistema e de acesso aos seus serviços O usuário (ou aplicação), quando deseja solicitar algum serviço do sistema, realiza uma chamada a uma de suas rotinas (ou serviços) através da system calls (chamadas ao sistema).
Como o usuário do sistema acessa o kernel? Chamadas de sistema - System calls Mecanismo de proteção ao núcleo do sistema e de acesso aos seus serviços O usuário (ou aplicação), quando deseja solicitar algum serviço do sistema, realiza uma chamada a uma de suas rotinas (ou serviços) através da system calls (chamadas ao sistema).
Algumas chamadas de sistema Gerenciamento de processos fork(), waitpid(), getpid() Sinais kill(), pause() Gerenciamento de arquivos mkdir(), read, write, rename Proteção chmod() Gerenciamento de tempo time()
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
Principais arquiteturas de um SO Sistemas monolíticos Sistemas em camadas Os sistemas cliente-servidor
Arquiteturas dos Sistemas Operacionais Sistemas monolíticos Esta arquitetura poderia muito bem ser denominada A grande bagunça. Não há estrutura visível. O SO é escrito como um conjunto de rotinas, cada uma das quais podendo chamar qualquer uma das outras sempre que quiser. Os serviços (system calls) são requisitados através da colocação dos parâmetros em lugares definidos (pilhas e registradores) e da execução de uma chamada de sistema especial (TRAP) ao kernel read(fd, buffer, nbytes)
Arquiteturas dos Sistemas Operacionais Sistemas monolíticos Esta arquitetura poderia muito bem ser denominada A grande bagunça. Não há estrutura visível. O SO é escrito como um conjunto de rotinas, cada uma das quais podendo chamar qualquer uma das outras sempre que quiser. Os serviços (system calls) são requisitados através da colocação dos parâmetros em lugares definidos (pilhas e registradores) e da execução de uma chamada de sistema especial (TRAP) ao kernel read(fd, buffer, nbytes)
Arquiteturas dos Sistemas Operacionais Sistemas monolíticos Esta arquitetura poderia muito bem ser denominada A grande bagunça. Não há estrutura visível. O SO é escrito como um conjunto de rotinas, cada uma das quais podendo chamar qualquer uma das outras sempre que quiser. Os serviços (system calls) são requisitados através da colocação dos parâmetros em lugares definidos (pilhas e registradores) e da execução de uma chamada de sistema especial (TRAP) ao kernel read(fd, buffer, nbytes)
Arquiteturas dos Sistemas Operacionais Sistemas monolíticos Esta arquitetura poderia muito bem ser denominada A grande bagunça. Não há estrutura visível. O SO é escrito como um conjunto de rotinas, cada uma das quais podendo chamar qualquer uma das outras sempre que quiser. Os serviços (system calls) são requisitados através da colocação dos parâmetros em lugares definidos (pilhas e registradores) e da execução de uma chamada de sistema especial (TRAP) ao kernel read(fd, buffer, nbytes)
Arquiteturas dos Sistemas Operacionais Sistemas monolíticos
Arquiteturas dos Sistemas Operacionais Sistemas em camadas Camadas sobrepostas Cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos Uma camada superior não precisa se preocupar com a funcionalidade das camadas inferiores
Arquiteturas dos Sistemas Operacionais Modelo Cliente-Servidor ou Microkernel Uma tendência dos SO s modernos é mover código do kernel para as camadas superiores (usuário) Diminuir a complexidade do kernel (microkernel) Para solicitar um serviço (como ler um bloco de um arquivo) Um processo usuário envia uma requisição para um processo servidor O processo servidor realiza o trabalho e devolve a resposta Como o servidor está implementado no modo usuário, se ele falhar apenas o seu serviço irá falhar e não a máquina inteira
Sumário 1 Introdução Definições 2 Funções de um Sistema Operacional Máquina estendida Gerente de recursos 3 Tipos de Sistemas Operacionais Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas
Referências bibliográficas [Tanenbaum, 2008] Andrew S. Tanenbaum e Albert S. Woodhull. Sistemas Operacionais - Projeto e Implementação, 2008. Capítulo 1.