Vinícius PáduaVinícius Pádua
Por quê é necessário?
• Sistema computacional moderno composto por diversos dispositivos
• Responsável pelo controle?
– Programador de aplicativos?
– Necessidade de ter um software dedicado a este controle
2
Vinícius PáduaVinícius Pádua
O que é um SO?
• Software responsável por gerenciar dispositivos e realizar as solicitações do usuário com os dispositivos
• Para que serve o SO?
– Executar programas do usuário
– Resolução geral de problemas
3
Vinícius PáduaVinícius Pádua
• SO é um software colocado entre o hardware e os programas
Arquitetura Básica
4
Programas
Sistema Operacional
Hardware
Vinícius PáduaVinícius Pádua
O que facilita aos programadores?
Arquitetura Básica
5
Programas
Sistema Operacional
HardwareFacilitar a criação de novos hardware
•Padronização de comunicação
Facilitar os desenvolvedores e usuários finais•Funções, procedimentos•Controle de janelas
O que facilita aos hardware?
Vinícius PáduaVinícius Pádua
Introdução
• Sistema Operacional• Age como um intermediário entre o usuário e o hardware
• Controla a execução de programas aplicativos
• Interface entre aplicativos e o hardware
• Objetivos• Tornar conveniente a utilização de um sistema computacional
– “Esconder” detalhes de funcionamento interno
• Tornar mais eficiente e “justo” a utilização dos recursos
• Execução de programas
– Carrega-lo a memória
– Permitir utilização de dispositivos
– Preparar recursos a antes de serem utilizados
6
Vinícius PáduaVinícius Pádua
Introdução
• Objetivos cont.
• Acesso a dispositivos de E/S
– Facilitar a utilização dos recursos pelos software e usuários
– Operações básicas: leitura e escrita
• Acesso controlado a arquivos
– Software não se preocupa com a natureza do dispositivo
– Proteção a acesso multiusuário
• Acesso ao sistema
– Proteção contra acesso não autorizado
– Resolução de conflito em caso de disputa
• Detecção de erros
– Erros de hardware e programação
7
Vinícius PáduaVinícius Pádua
Histórico dos SO
• 1º Geração (1945 - 1955)
• 2º Geração (1955 – 1965)
• 3º Geração (1965 – 1980)
• 4º Geração (1980 - ?)
8
Vinícius PáduaVinícius Pádua
Histórico dos SO
• 1º Geração (1945 – 1955)
– Válvula• Dissipava muito calor, consumo
alto de energia e danificava com frequência
– Não existe SO
9
• ENIAC - 1946– 17.000 válvulas– 170 m2– 150.000 watts– 27 toneladas– 5.000 adições e subtrações por
segundo
Vinícius PáduaVinícius Pádua
Histórico dos SO
• 2º Geração (1955 – 1965)
– Transistores• 100x menor, mais durável e confiável,
consumia menos energia, não esquentava quanto a válvula
10
– Sistema em lote (batch), job, cartão perfurado
Vinícius PáduaVinícius Pádua
Histórico dos SO
• 3º Geração (1965 – 1980)
– Circuitos integrados
– Técnicas• Multiprogramação
• Timesharing,
• Spooling
– Início de alguns SO: Unix (System V, BSD, Minix), linux
11
Vinícius PáduaVinícius Pádua
Histórico dos SO
• 4º Geração (1980 - ?)
– Computadores pessoais
– Início da interface gráfica
– SO: DOS (MS-DOS), Apple, Windows
– Sistemas operacionais de rede e distribuídos
12
Vinícius PáduaVinícius Pádua
Histórico dos SO
• Resumindo
– O que motivou a evolução do SO?• Avanços tecnológicos
• Desenvolvimento e melhoria do hardware
• Aperfeiçoamento de técnicas
13
Vinícius PáduaVinícius Pádua
Zoo de SO’s
• Computadores de grande porte– Já foram muito utilizados – Grande capacidade de E/S– Atualmente
• Servidores web, e-commerce, servidores de nuvem, ...
• Tempo compartilhado– Utilizam terminais– Ilusão de máquina dedicada ao usuário
• Distribuídos– Divisão de tarefas em vários computadores– Podem estar fisicamente separados– Vantagens
• Transparência• Compartilhamento de recursos• Balanceamento de carga• Aumento da confiabilidade
14
Vinícius PáduaVinícius Pádua
Zoo de SO’s
• Tempo real
– Tempo como parâmetro fundamental na execução das tarefas
– Tempo real crítico
• Processos industriais, aviação, exército
– Tempo real não crítico
• Sistema de áudio, multimídia
• Nós de sensores
• Smart Cards
• Multiprocessadores
• Computadores pessoais, portáteis e embarcados
15
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Processos
• Arquivos
• Deadlock
• Espaços de endereçamento
• Memória
• Entrada e Saída
• Segurança
• Interpretador de comandos
16
Vinícius PáduaVinícius Pádua
Processo
• Imagine que esteja fazendo um bolo– Receita
– Ingredientes
– Início do processo
• Seu celular toca e você atende– Conversa
– Finaliza ligação
• Volta para receita
17
Programa
Processo
Contador de Programa
Vinícius PáduaVinícius Pádua
Processo
Programa
• Entidade passiva
• Sequência de instruções
• Executável no disco
Processo
• Entidade ativa
• Constitui uma atividade
• Componentes
– Programa
– Dados de entrada e saída
– Estado
18
• Executar o mesmo programa duas ou mais vezes não significa existência de um único processo
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Processos
– Como um processo é executado?• Monoprogramação
• Multiprogramação
19
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Monoprogramação
– Execução de um único programa
– Características• Baixa complexidade de implementação
• Sem preocupação com proteção
• Subutilização dos recursos
• Ociosidade da CPU por longos períodos
20
Espera normalmente por algum evento de E/S não finalizado
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Monoprogramação
• Como melhorar o desempenho geral?
• Em que momento poderia outro programa executar?
21
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Multiprogramação– Execução “simultânea” de vários programas
– Características• Alta complexidade de implementação
• Preocupação com a proteção
• Inexistência de ociosidade da CPU
• Grande utilização do recursos
– Inovações que permitiram • Interrupções
– Sinalização de eventos
• Discos magnéticos
– Acesso randômico e veloz no disco
– Leitura e escritas velozes em qualquer parte do disco
23
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Arquivos
– Diretório
– Caminho• \ - Windows / - Unix
– Diretório-raiz
– Diretória de trabalho
– Sistemas de arquivos
– Arquivos especiais• UNIX
24
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Entrada e Saída
• Segurança
– Unix• Bits rwx – Proprietário, Grupo e Outros usuários
• Interpretador de comandos
– Shell
– Não faz parte do SO, mas o utiliza intensamente
25
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Espaço de endereçamento
– Região onde o processo executa
– Ao iniciar o SO cede um espeço de endereçamento• Iniciando em 0
• Qual o tamanho máximo?
– SO antigos: Limite da memória RAM
– SO modernos: Memória virtual
27
Vinícius PáduaVinícius Pádua
Conceitos sobre SO
• Memória
– Monoprogramação• Dedicação a único processo
• Sem proteção
– Multiprogramação• Proteção entre vários processos
• Tamanho insuficiente de memória existente
• Swapping
• Memória Virtual
28
Vinícius PáduaVinícius Pádua
• SO responsável pela carga do processo
• Programador não interage nessa atividade
• Paginação– Divisão da memória em páginas
– Tamanho fixo
– A carga na memória em páginas
– Aumenta o grau de programação
– Redução das operações de E/S
– Capacidade de executar processos maiores que a memória
Memória Virtual
Vinícius PáduaVinícius Pádua
• Desassociação dos endereços
– Endereço virtual• Processo “enxerga” e manipula
• Chamados apenas de páginas
– Endereço físico• Correspondem a posição real na memória
• Chamado de molduras de páginas
• Ambos são divididos em páginas de tamanho fixo
Memória Virtual – Paginação
Vinícius PáduaVinícius Pádua
Memória Virtual – Paginação
• Existem mais páginas virtuais que físicas
• Total de páginas – Físicas: Limitada pela quantidade de memória existente
– Virtuais: Limitada pelo limite que o SO consegue endereçar
• Páginas virtuais são mapeadas em molduras de páginas
Vinícius PáduaVinícius Pádua
Estrutura dos SO
• Sistemas monolíticos
• Sistemas de camadas
• Micronúcleo
• Modelo Cliente-Servidor
• Máquinas virtuais
32
Vinícius PáduaVinícius Pádua
Estrutura dos SO
• Sistemas monolíticos– Não existe ocultação de funções
• Todas funções podem chamar todas
– Falha em um função pode derrubar o sistema
33
Chamada ao sistema
Hardware
aplicaçãoaplicaçãoModo Usuário
Modo Núcleo
Vinícius PáduaVinícius Pádua
Estrutura dos SO
• Sistemas de camadas
– Nível maior que organização
– Hierarquizado em camadas• Superior utilizava a inferior
• Proteção
34
THE (TechnishcheHogeschool Eindhoven) foi o primeiro sistema desenvolvido em camadas.
Vinícius PáduaVinícius Pádua
Estrutura dos SO
• Micronúcleo
– Diminuir o excesso de código do modo núcleo
– Divisão do SO em módulos pequenos
– Modulo micronúcleo é o principal módulo• Único executado no modo núcleo
– Exemplos: Minix 3, Symbiam
35
Vinícius PáduaVinícius Pádua
Estrutura dos SO
• Cliente-Servidor
– Semelhante ao micronúcleo
– Processos: Servidores e Clientes
– Comunicação é feita por troca de mensagens
36
Vinícius PáduaVinícius Pádua
Estrutura dos SO
• Máquina Virtual
– Computador Fictício
– Implementada a nível de software
– Hipervisor de Tipo 1 e Tipo 2
37
Vinícius PáduaVinícius Pádua
MS/DOS
• Microsoft Disk Operating System• Inicialmente
– QDOS – Quick and Dirty Operation System– Seattle Computer
• Características– Monousuário– Monoprogramável– Estrutura hierárquica de dados
• Versões– 1.0 – 1981 - 256kb de RAM– 7.0 – Windows 95
• Programação em arquivo batch (bat)
39
Vinícius PáduaVinícius Pádua
MACOS
• Inicialmente chamado de System
• System 7.6 -> MacOS
• MACOS 10.7 -> OS X
41
Vinícius PáduaVinícius Pádua
Linux
• Utilizam o kernel linux
• Código aberto
• Distribuições
– Debian
– Red hat
– Fedora
– Unbuntu
42