sistemas operacionais gerência de processosdierone/so_2015/s01_a.t01.3_17.03.2015... · •...
Post on 09-Dec-2018
212 Views
Preview:
TRANSCRIPT
Sistemas Operacionais 1
Sistemas OperacionaisGerência de Processos
Dierone C.Foltran Jr.
prof.dierone at gmail.com
Sistemas Operacionais 2
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
Hardware
Sistema Operacional
Programas
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
Usuário
3
Usuário
n. . .
Compilador Editor de
texto
Browser 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
Hardware
Sistema Operacional
Utilitários
Aplicativos Projetista
sistema
operacional
Programador
Usuário
final
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
• 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)
Serviços oferecidos pelo sistema operacional (2)
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
Sistemas Operacionais 11
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 12
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 13
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 14
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 15
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 16
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
CPU
E/SRequisição
E/S
Término
E/S
Desperdício CPU
tempo
Requisição
E/S
Término
E/S
tempo
Multiprogramação
Sistemas Operacionais 17
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 18
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 19
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 20
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 21
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 22
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 23
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 24
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 25
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 26
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 27
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 28
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 29
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 31
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 32
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 33
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 34
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 35
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 36
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 37
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 38
Apto ExecutandoCriação
Dispatcher
Pausa
Término
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
Sistemas Operacionais 39
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 40
Modelo de 5 estados (1)
• Executando (Running)
• Apto (Ready)
• Bloqueado (Blocked)
• Criação (New)
• Destruição (Exit)
Sistemas Operacionais 41
Criação Apto Executando Destruição
Bloqueado
Ocorrência
de evento
(interrupçao)
Seleção Término
Tempo/
voluntário
Chamada de
sistema
Modelo a 5 estados (2)
• Necessidade de filas
Sistemas Operacionais 42
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 43
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 44
Criação
Admissão AdmissãoSuspenso
Seleção
Tempo/
voluntário
Apto,
suspensoApto
BloqueadoBloqueado,
suspenso
Event
(ocorr.)
Ativo
Evento
(ocorr.)
Ativo
Suspenso
Executando Destruição
Evento
(espera)
Diagrama de estados de processos
Sistemas Operacionais 45
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 46
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 47
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 48
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 49
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 Instrução retorno
Interrupção de softwareProcesso
usuário
Modo
protegido
Modo
usuário
Sistemas Operacionais 50
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 51
Proteção de memória (1)
• Necessário para evitar que usuário corrompa espaços de memória não-
pertencentes 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 52
Proteção de memória (2)
V V
F FInterrupção
(acesso ilegal)memória
CPUEnd.
Sistema
operacional
Usuário 1
Usuário 2
Usuário 3Reg. de limiteReg. de base
Sistemas Operacionais 53
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
top related