Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Definições Exemplos de Sistemas Operacionais Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Definições Uma definição para Sistema Operacional Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Definições Outra definição para Sistema Operacional Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Máquina estendida O sistema operacional como uma máquina estendida Ler ou escrever um dado no disco magnético Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Evolução Evolução dos Sistemas Operacionais Geração 4: A era dos computadores pessoais Computador pessoal brasileiro (1982) utilizando o CP/M Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Classificação Tipos de Sistemas Operacionais Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Classificação Tipos de Sistemas Operacionais Sistemas monopragramáveis ou monotarefa Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Classificação Tipos de Sistemas Operacionais Sistema multiprogragramáveis ou multitarefa Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Classificação Tipos de Sistemas Operacionais Sistema com múltiplos processadores Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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). Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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() Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Principais arquiteturas de um SO Sistemas monolı́ticos Sistemas em camadas Os sistemas cliente-servidor Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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) Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Arquiteturas dos Sistemas Operacionais Sistemas monolı́ticos Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas 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 Ivanovitch Silva Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas Referências bibliográficas Sumário 1 2 3 Introdução Definições Funções de um Sistema Operacional Máquina estendida Gerente de recursos Tipos de Sistemas Operacionais Ivanovitch Silva Evolução Classificação 4 Estrutura de um Sistema Operacional 5 Arquiteturas dos Sistemas Operacionais 6 Referências bibliográficas Noções básicas sobre Sistemas Operacionais Introdução Funções Tipos Estrutura Arquiteturas 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. Ivanovitch Silva Noções básicas sobre Sistemas Operacionais