Sistemas Operacionais

Propaganda
Sistemas Operacionais
Gerência de Processos
Dierone C.Foltran Jr.
prof.dierone at gmail.com
Sistemas Operacionais
1
Introdução
•
•
O que se espera de um sistema de computação?
• Execução de programas de usuários
• Permitir a solução de problemas
Sistema operacional é um programa colocado entre o hardware do
computador e os programas dos usuários de forma a atingir esses dois
objetivos
Programas
Sistema Operacional
Hardware
Sistemas Operacionais
2
Componentes genéricos de um sistema
computacional (1)
•
•
•
•
Hardware
• Recursos básicos (memória, dispositivos de E/S, CPU).
Sistema operacional
• Controla e coordena o uso do hardware entre vários programas
aplicativos e usuários.
Programas aplicativos e de sistema
• Define como os recursos de hardware são empregados na solução de
um problema (compiladores, jogos, banco de dados,...)
Usuários
• Pessoas, máquinas, outros computadores,...
Sistemas Operacionais
3
Componentes genéricos de um sistema
computacional (2)
Usuário
1
Usuário
2
Compilador
Editor de
texto
Usuário
3
...
Browser
Usuário
n
Quake
Sistema operacional
Hardware
Sistemas Operacionais
4
Sistema operacional: conceito
•
•
Sistema operacional
• Um programa que controla a execução de programas aplicativos
• Interface entre aplicativos e o hardware
Duas formas de ver um sistema operacional:
• Alocador de recursos
• Programa de controle
Sistemas Operacionais
5
Objetivos do sistema operacional
•
•
•
Tornar mais conveniente a utilização de um computador
• “Esconder” detalhes internos de funcionamento
Tornar mais eficiente a utilização de um computador
• Gerenciamento “justo” dos recursos do sistema
Facilitar a evolução do sistema (desenvolvimento, teste e atualização de
novas facilidades)
Sistemas Operacionais
6
Sistema operacional: interface entre
usuário/computador
Usuário
final
Programador
Projetista
sistema
operacional
Aplicativos
Utilitários
Sistema Operacional
Hardware
Sistemas Operacionais
7
Serviços oferecidos pelo sistema operacional (1)
•
•
•
•
•
Criação de programas
• Editores, depuradores, compiladores
Execução dos programas
• Carga de programas em memória
Acesso a dispositivos de E/S
Controle de acesso a arquivos
Acesso a recursos de sistema
• Proteção entre usuários
Sistemas Operacionais
8
Serviços oferecidos pelo sistema operacional (2)
•
•
Contabilidade
• Estatísticas
• Monitoração de desempenho
• Sinalizar upgrades necessários hardware (memória, disco, etc)
• Tarifação de usuários
Detecção de erros
• Erros de hardware
•
e.g.: erros de memória, falha em dispositivos de E/S, etc...
• Erros de programação
•
e.g.: overflow, acesso não autorizado a posições de memória,
etc...
• Aplicação solicita recursos que o sistema operacional não pode alocar
(segurança, falta do recurso, etc)
Sistemas Operacionais
9
As diferentes “imagens” de um sistema
operacional
•
•
Sistema operacional na visão do usuário:
• Imagem que um usuário tem do sistema
• Interface oferecida ao usuário para ter acesso a recursos do sistema
•
Chamadas de sistema
•
Programas de sistema
Sistema operacional na visão de projeto
• Organização interna do sistema operacional
• Mecanismos empregados para gerenciar recursos do sistema
Sistemas Operacionais
10
Chamadas de sistema
•
•
•
Forma que programas solicitam serviços ao sistema operacional
• Análogo a sub-rotinas
•
Transferem controle para o sistema operacional invés de transferir
para outro ponto do programa
É o núcleo (kernel) do sistema operacional que implementa as chamadas
de sistema
• Existem chamadas de sistema associadas a gerência do processador,
de memória, arquivos e de entrada/saída
Variação: micro-kernel
• Serviços básicos são implementados pelo micro-kernel
• kernel implementa demais serviços empregando esses serviços
básicos
Sistemas Operacionais
11
Programas de sistema
•
•
Programas executados fora do kernel (utilitários)
Implementam tarefas básicas:
• Muitas vezes confundidos com o próprio sistema operacional
•
e.g. compiladores, assemblers, ligadores, etc.
• Interpretador de comandos
•
Ativado sempre que o sistema operacional inicia uma sessão de
trabalho
e.g.: bash, tsch, sh, etc...
•
Interface gráfico de usuário (GUI)
e.g.: Família windows, MacOs, etc...
•
•
Sistemas Operacionais
12
Histórico de sistemas operacionais
•
Primórdios:
• Sistema operacional inexistente
• Usuário é o programador e o operador da máquina
• Alocação do recurso “computador” feito por planilha
•
Evolução foi motivada por:
• Melhor utilização de recursos
• Avanços tecnológicos (novos tipos de hardware)
• Adição de novos serviços
Sistemas Operacionais
13
Sistemas em lote (batch)
•
•
•
Introdução de operadores profissionais
• Usuário não era mais o operador da máquina
Job
• Programa a ser compilado e executado, acompanhado dos dados de
execução (cartões perfurados)
• Jobs são organizados em lote (batch)
•
Necessidades semelhantes (e.g. mesmo compilador)
Passagem entre diferentes jobs continua sendo manual
Sistemas Operacionais
14
Monitor residente
•
•
Evolução:
• Sequenciamento automático de jobs, transferindo o controle de um job
a outro
• Primeiro sistema operacional (rudimentar)
Monitor residente:
• Programa que fica permanentemente em memória
• Execução inicial
• Controle é transferido para o job
•
Cartões de controle
• Quando o job termina, o controle retorna ao monitor
• Centraliza as rotinas de acesso a periféricos disponibilizando aos
programas de usuário
Sistemas Operacionais
15
Sistema batch multiprogramados
(multitarefa)
•
•
•
Monitor residente permite a execução de apenas um programa a cada vez
Desperdício de tempo de CPU com operações de E/S
Evolução:
• Manter diversos programas na memória ao mesmo tempo
• Enquanto um programa realiza E/S, outro pode ser executado
Multiprogramação
Desperdício CPU
CPU
E/S
Requisição
E/S
Término
E/S
Requisição
E/S
tempo
Sistemas Operacionais
Término
E/S
tempo
16
Multiprogramação
•
•
Manter mais de um programa em “execução” simultaneamente
Duas inovações de hardware possibilitaram o surgimento da
multiprogramação
• Interrupções
•
Sinalização de eventos
• Discos magnéticos
•
Acesso randômico a diferentes jobs (programas) no disco
•
Melhor desempenho em acessos de leitura e escrita
Sistemas Operacionais
17
Sistemas timesharing
•
•
•
Tipo de multiprogramação
Usuários possuem um terminal
• Interação com o programa em execução
Ilusão de possuir a máquina dedicada a execução de seu programa
• Divisão do tempo de processamento entre usuários
• Tempo de resposta é importante
Sistemas Operacionais
18
Sistemas monousuário e multiusuário
•
•
Sistemas monousuário
• Projetados para serem usados por um único usuário
•
e.g.: MS-DOS, Windows 3.x, Windows 9x, Millenium
Sistemas multiusuário
• Projetados para suportar várias sessões de usuários em um
computador
e.g.: Windows NT, UNIX, Linux
•
Sistemas Operacionais
19
Sistemas multitarefa e monotarefa
•
Sistemas monotarefa
• Capazes de executar apenas uma tarefa de cada vez
e.g.: MS-DOS
Sistemas multitarefas:
• Capazes de executar várias tarefas simultaneamente
• Existem dois tipos de sistemas multitarefa:
•
Não preemptivo (cooperativo)
e.g.: Windows 3.x, Windows9x (aplicativos 16 bits)
•
Preemptivo
e.g.: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits)
•
•
•
•
Sistemas Operacionais
20
Sistemas distribuídos (1)
•
•
Distribuir a realização de uma tarefa entre vários computadores
Sistema distribuído:
• Conjunto de computadores autônomos interconectados de forma a
possibilitar a execução de um serviço
• Existência de várias máquinas é transparente
• Software fornece uma visão única do sistema
• Palavra-chave: transparência
« A distributed system is one in which the failure of a computer you didn’t
even know existed can render your own computer unusable » Leslie
Lamport.
Sistemas Operacionais
21
Sistemas distribuídos (2)
•
•
Sistemas fracamente acoplados (loosely coupled system)
• Máquinas independentes
•
Cada máquina possui seu próprio sistema operacional
• Comunicação é feita através de troca de mensagens entre processos
Vantagens
• Compartilhamento de recursos
• Balanceamento de carga
• Aumento da confiabilidade
Sistemas Operacionais
22
Sistemas paralelos (1)
•
•
•
Máquinas multiprocessadoras possuem mais de um processador
Sistemas fortemente acoplados (tightly coupled system)
• Processadores compartilham mémoria e relógio comuns
• Comunicação é realizada através da memória
Vantagens:
• Aumento de throughput (número de processos executados)
• Aspectos econômicos
• Aumento de confiabilidade
•
Graceful degradation
•
Sistemas fail-soft
Sistemas Operacionais
23
Sistemas paralelos (2)
•
•
Symmetric multiprocessing (SMP)
• Cada processador executa uma cópia idêntica do sistema operacional
• Vários processos podem ser executados em paralelo sem perda de
desempenho para o sistema
• A maioria dos sistemas operacionais atuais suportam SMP através do
conceito de multithreading
Asymmetric multiprocessing
• Cada processador executa uma tarefa específica:
•
e.g.: processador mestre para alocação de tarefas a escravos
Sistemas Operacionais
24
Sistemas de tempo real
•
•
•
Empregado para o controle de procedimentos que devem responder
dentro de um certo intervalo de tempo
• e.g.: experimentos científicos, tratamento de imagens médicas,
controle de processos, etc.
Noção de tempo real é dependente da aplicação
• Milisegundos, minuto, horas, etc.
Dois tipos:
• Hard real time
•
Tarefas críticas são completadas dentro de um intervalo de tempo
• Soft real time
•
Tarefa crítica tem maior prioridade que as demais
Sistemas Operacionais
25
Leituras complementares
•
•
•
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
Bookman, 2010.
• Capítulo 1
A. Silberchatz, P. Galvin, P. Gagne; Applied Operating System Concepts.
Addison-Wesley, 2000, (1a edição).
• Capítulo 1
W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.
• Capítulo 2
Sistemas Operacionais
26
Multiprogramação
•
•
•
Tornar mais eficiente o aproveitamento dos recursos do computador
Execução simultânea* de vários programas
• Diversos programas são mantidos na memória
• Conceitos necessários à multiprogramação
•
Processo
•
Interrupção
•
Proteção entre processos
Próprio sistema operacional é um programa
Sistemas Operacionais
27
O conceito de processo (1)
•
•
•
Diferenciação entre o programa e sua execução
Programa:
• Entidade estática e permanente
•
Sequência de instruções
•
Passivo sob o ponto de vista do sistema operacional
Processo:
• Entidade dinâmica e efêmera
•
Altera seu estado a medida que avança sua execução
• Composto por programa (código), dados e contexto (valores)
Sistemas Operacionais
28
O conceito de processo (2)
•
•
•
•
Abstração que representa um programa em execução
Diferentes instâncias
• Um programa pode ter várias instâncias em execução, i.e., diferentes
processos
• Mesmo código (programa) porém dados e momentos de execução
(contexto) diferentes
Forma pela qual o sistema operacional “enxerga” um programa e
possibilita sua execução
Processos executam:
• Programas de usuários
• Programas do próprio sistema operacional (daemons)
Sistemas Operacionais
29
Ciclos de vida de um processo
•
•
•
Criação
Execução
Término
Sistemas Operacionais
30
Ciclos de vida de um processo: criação
•
•
•
•
Momento da execução
Chamadas de sistemas
• e.g.: fork, spawn, etc.
Podem ser associados a uma sessão de trabalho
• e.g.: login de usuários: login + senha  shell (processo)
Identificado por um número único (PID)
Sistemas Operacionais
31
Ciclos de vida de um processo: execução (1)
•
•
Processos apresentam dois ciclos básicos de operação
• Ciclo de processador
•
Tempo que ocupa a CPU
• Ciclo de entrada e saída
•
Tempo em espera pela conclusão de um evento (e.g. E/S)
Primeiro ciclo é sempre de processador
• Trocas de ciclos por:
•
CPU  E/S: chamada de sistema
•
E/S  CPU: ocorrência de evento (interrupção)
Sistemas Operacionais
32
Ciclos de vida de um processo: execução (2)
•
•
•
Processos
• CPU bound
•
Ciclo de processador >> ciclo de E/S
• I/O bound
•
Ciclo de E/S >> ciclo de processador
Sem quantificação exata
Situação ideal:
• Misturar processos CPU bound com I/O bound
•
Benefícios a nível de escalonamento
Sistemas Operacionais
33
Ciclos de vida de um processo: término
•
•
•
•
Final de execução (normal)
Por erros
• e.g.: proteção, aritméticos, E/S, tentativa de execução de instruções
inválidas, falta de memória, exceder tempo de limite
Intervenção de outros processos (kill)
Log off de usuários
Sistemas Operacionais
34
Relacionamento entre processos (1)
•
•
Processos independentes
• Não apresentam relacionamentos com outros processos
Grupo de processos
• Apresentam algum tipo de relacionamento
•
e.g. filiação
• Podem compartilhar recursos
• Definição de hierarquia
Sistemas Operacionais
35
Relacionamento entre processos (2)
•
•
•
Hierarquia de processos:
• Processo criador é processo pai
• Processo criado é processo filho
Representação através de uma árvore
• Evolução dinâmica
Semântica associada: O que fazer na destruição de um processo?
• Toda a descendência “morre”
• A descendência é herdada pelo processo “vô”
• Postergar a destruição efetiva do processo pai até o final de todos
processos filhos
Sistemas Operacionais
36
Estados de um processo
•
•
•
Após criado o processo necessita entrar em ciclo de processador
Hipotéses:
• Processador não está disponível
• Vários processos sendo criados
Que fazer?
• Criação de uma fila de aptos (p/ espera pelo processador)
Sistemas Operacionais
37
Modelo simplificado a dois estados
•
•
Manter uma fila de processos aptos a executar
• Esperando pelo processador ficar livre
Escalonador (dispatcher):
• Atribui o processador a um processo da fila de aptos
• Pode prevenir um único processo de monopolizar o processador
Dispatcher
Criação
Apto
Executando
Término
Pausa
Sistemas Operacionais
38
Limitação do modelo simplificado
•
•
Causas para um processo não executar
• Esperando pelo processador
•
Aptos para executar
• Esperando pela ocorrência de eventos externos
•
Bloqueado
Escalonador não pode selecionar um processo bloqueado, logo modelo a
dois estados não é suficiente
• Criação de novos estados
Sistemas Operacionais
39
Modelo de 5 estados (1)
•
•
•
•
•
Executando (Running)
Apto (Ready)
Bloqueado (Blocked)
Criação (New)
Destruição (Exit)
Sistemas Operacionais
40
Modelo a 5 estados (2)
•
Necessidade de filas
Seleção
Apto
Criação
Término
Executando
Destruição
Tempo/
voluntário
Ocorrência
de evento
(interrupçao)
Chamada de
sistema
Bloqueado
Sistemas Operacionais
41
Processos suspensos
•
•
•
•
Processador é mais rápido que operações de E/S
• Possibilidade de todos processos estarem bloqueados esperando por E/S
Liberar memória ocupada por estes processos
• Transferidos para o disco (swap)
Estado bloqueado assume duas situações:
• Bloqueado com processo em memória
• Bloqueado com processo no disco
Necessidade de novos estados
• Bloqueado, suspenso (Blocked, suspend)
• Apto, suspenso (Ready, suspend)
Sistemas Operacionais
42
Razões para suspender um processo
•
•
•
•
Swapping:
• SO necessita liberar memória para executar um novo processo
Solicitação do usuário
• Comportamento típico de depuradores
Temporização:
• Processo deve ter sua execução interrompida por um certo período de
tempo
Processo suspender outro processo
• e.g. sincronização
Sistemas Operacionais
43
Diagrama de estados de processos
Criação
Admissão
Apto,
suspenso
Admissão
Executando
Apto
Destruição
Tempo/
voluntário
Evento
(ocorr.)
Event
(ocorr.)
Sistemas Operacionais
Seleção
Ativo
Suspenso
Bloqueado,
suspenso
Suspenso
Evento
(espera)
Ativo
Bloqueado
44
Suporte de hardware à multiprogramação
•
•
•
O compartilhamento de recursos comuns implica em garantir que a
execução incorreta de um programa não influencie a execução de outro
programa
A implementação da multiprogramação explora características do
hardware dos processadores
Mecanismos básicos:
• Dois modos de operação
• Interrupção
• Proteção de periféricos, memória e processador
Sistemas Operacionais
45
Modos de operação do processador
•
•
Arquitetura de processadores oferecem mecanismos para diferenciar pelo
menos dois modos diferentes de operação
• Modo supervisor (privilegiado/protegido)
•
Possibilita a execução de todas as instruções do processador
•
Modo de execução sistema operacional
• Modo usuário
•
Certas instruções (privilegiadas) não podem ser executadas
•
Modo de execução dos processos usuários
Chaveamento de modos:
• Interrupção (modo usuário  modo protegido)
• Instrução (modo protegido  modo usuário)
Sistemas Operacionais
46
Mecanismo de interrupção (1)
•
•
•
Sinaliza a ocorrência de algum evento
Provoca a execução de uma rotina especial
• Tratador de interrupção
Ciclo de execução de uma interrupção
• Prepara a transferência de controle para o tratador (salvamento do
contexto de execução)
• Desvia controle para tratador
• Retorna execução (restaura contexto de execução)
Sistemas Operacionais
47
Mecanismo de interrupção (2)
•
•
•
•
Tipos de interrupção
• Hardware: ocorrência de evento externo
• Software: execução de uma instrução específica
• Exceção: erros de execução (overflow, undeflow...)
Identificadas por um número
• Vetor de interrupção
Prioridades
Instruções privilegiadas
Sistemas Operacionais
48
Proteção de periféricos
•
•
Instruções de E/S são privilegiadas
Como processos usuários realizam operações de E/S já que estas são
instruções privilegiadas?
• Chamadas de sistema
Sistema
Operacional
Modo
protegido
Sistemas Operacionais
Interrupção de software
Instrução retorno
Processo
usuário
Modo
usuário
49
Chamada de sistema
•
Método empregado para um processo usuário solicitar serviços ao sistema
operacional.
• Normalmente baseada em interrupções de software (traps)
• Aciona a rotina de tratamento de interrupção
•
Identifica serviço requisitado
•
Verifica validade dos parâmetros
•
Executa o serviço
•
Retorna ao processo do usuário
Sistemas Operacionais
50
Proteção de memória (1)
•
•
•
•
Necessário para evitar que usuário corrompa espaços de memória nãopertencentes a seus processos
Baseado em facilidades da arquitetura do processador:
• Registrador de base
• Registrador de limite
Faixa de endereçamento fora da área delimitada pelos registradores base
e limite é protegida
Possível proteger dispositivos de E/S quando a técnica E/S mapeada em
memória é empregada
Sistemas Operacionais
51
Proteção de memória (2)
Reg. de base
Usuário 3
Reg. de limite
Usuário 2
CPU
End.
V

F
Sistemas Operacionais
Interrupção
(acesso ilegal)
V

Usuário 1
F
Sistema
operacional
memória
52
Proteção do processador
•
•
•
Para garantir a execução do sistema operacional uma interrupção de
tempo (timer) ocorre periodicamente
Interrupção de tempo:
• Empregada para implementar multiprogramação
• Mantém contabilização de tempo para o sistema operacional (relógio)
Instruções relacionadas com a programação do tempo são privilegiadas
Sistemas Operacionais
53
Leituras complementares
•
•
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman,
2010.
• Capítulo 2.
A. Silberchatz, P. Galvin Operating System Concepts. 4th edition. Addison-Wesley.
• Seções 2.1, 2.2, 2.5, 4.1, 4.2 e 4.300
Sistemas Operacionais
54
Download