• Nenhum resultado encontrado

Sistemas Operacionais Gerência de Processos

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operacionais Gerência de Processos"

Copied!
54
0
0

Texto

(1)

Sistemas Operacionais Gerência de Processos

Dierone C.Foltran Jr.

prof.dierone at gmail.com

(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

(3)

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,...

(4)

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

(5)

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

(6)

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)

(7)

Sistema operacional: interface entre usuário/computador

Hardware Sistema Operacional

Utilitários

Aplicativos Projetista

sistema operacional Programador

Usuário final

(8)

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

(9)

• 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

Serviços oferecidos pelo sistema operacional (2)

(10)

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

(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

(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...

(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

(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

(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

(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/S Requisição E/S

Término E/S Desperdício CPU

tempo Requisição

E/S

Término E/S tempo

Multiprogramação

(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

(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

(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

(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)

(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.

(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

(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

(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

(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

(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

(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

(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)

(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)

(30)

Ciclos de vida de um processo

• Criação

• Execução

• Término

(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)

(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)

(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

(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

(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

(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

(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)

(38)

Apto Executando Criaçã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

(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

(40)

Modelo de 5 estados (1)

• Executando (Running)

• Apto (Ready)

• Bloqueado (Blocked)

• Criação (New)

• Destruição (Exit)

(41)

Criação Apto Executando Destruição

Ocorrência de evento (interrupçao)

Seleção Término

Tempo/

voluntário

Chamada de sistema

Modelo a 5 estados (2)

• Necessidade de filas

(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)

(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

(44)

Criação

Admissão Admissão

Suspenso Seleção

Tempo/

voluntário Apto,

suspenso Apto

Bloqueado Bloqueado,

suspenso Event (ocorr.)

Ativo

Evento (ocorr.) Ativo

Suspenso

Executando Destruição

Evento (espera)

Diagrama de estados de processos

(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

(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)

(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)

(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

(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 software

Processo usuário Modo

protegido

Modo usuário

(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

(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

(52)

Proteção de memória (2)

VV

F F

Interrupção (acesso ilegal)

memória

CPU End.

Sistema operacional Usuário 1 Usuário 2 Usuário 3 Reg. de limite

Reg. de base

(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

(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

Referências

Documentos relacionados

derando que a dessaturação de pacientes portadores de DPOC pode interferir na contração muscular, acreditamos que esta pode interferir também no controle postural e no

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

Para que essa análise seja feita da maneira mais eficiente possível, é necessário criar um ambiente de estabilidade na empresa, ou seja, um ambiente que favoreça o

Diante disso, o projeto Colmeias surge como meio facilitador para a incorporação de um programa social como ferramenta para o desenvolvimento dos grupos de apicultores

Machado de Assis Metodologia Ativa: Aula invertida (referência teórica e prática Módulo 13) Atividades 04 Realismo e Naturalismo no Brasil:.

01 (um) dia de trabalho de cada empregado, pelo valor vigente no mês anterior ao do recolhimento, ficando estipulado que nenhuma das parcelas poderá ser de valor inferior a R$

O Governo da República do Senegal tem o prazer de os receber em Dakar, República do Senegal, país da Teranga, para a sexagésima oitava sessão do Comité Regional para a África da

salvaguardam de erros manifestos na submissão das ordens e que poderão tomar a.. 4 forma de rejeição da ordem ou desencadear os mecanismos de interrupção da