Sistemas Operacionais Gerência de Processosdierone/so_2015/S01_A.T01.3_17.03.2015... · •...

54
Sistemas Operacionais 1 Sistemas Operacionais Gerência de Processos Dierone C.Foltran Jr. prof.dierone at gmail.com

Transcript of Sistemas Operacionais Gerência de Processosdierone/so_2015/S01_A.T01.3_17.03.2015... · •...

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 30

Ciclos de vida de um processo

• Criação

• Execução

• Término

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

Sistemas Operacionais 54

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