Multiprocessamento
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

Multiprocessamento PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

Multiprocessamento. Sérgio Cavalcante GRECO - CIn / UFPE. Multitasking. Capacidade de executar mais de uma tarefa ( task ) “simultaneamente” TAREFAS: atividades de software executadas independentemente de outras. Podem ser: PROCESSOS: programas que executam em paralelo.

Download Presentation

Multiprocessamento

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Multiprocessamento

Multiprocessamento

Sérgio Cavalcante

GRECO - CIn / UFPE


Multitasking

Multitasking

  • Capacidade de executar mais de uma tarefa (task) “simultaneamente”

  • TAREFAS: atividades de software executadas independentemente de outras.

  • Podem ser:

    • PROCESSOS:programas que executam emparalelo.

    • THREADS: tarefas de um mesmo programa.


Multitasking processos

Multitasking: Processos

  • Área de memória isolada dos outros processos contendo segmentos de:

    • código executável

    • pilha - variáveis locais e/ou temporárias

    • dados - variáveis globais

    • heap - espaço para alocação dinâmica

    • status - recursos alocados, localização dos segmentos, contexto de execução...


Multitasking threads

Multitasking: Threads

  • Cada thread tem sua própria pilha e contexto de execução.

  • Todas as threads de um processo compartilham os mesmos segmentos de código, dados, heap, e parte do status.

 - maior compartilhamento de recursos

- maior facilidade de sincronização

- menos proteção


Multitasking sincroniza o de threads

Multitasking: Sincronização de Threads

  • Funções que acessam apenas variáveis locais não estáticas podem ser chamadas de várias threads simultaneamente desde que sejam declaradas como reentrant

  • Funções que usem variáveis globais ou estáticas têm, em geral, seu acesso restrito.


Multitasking processos x threads

Multitasking: Processos X Threads

  • Tipos de sistemas

    • 1 processo X 1 thread: MSDOS

    • N processos X 1 thread: OS/386, VAX/VMS, Windows 3.1, UNIX antigo

    • 1 processo X N threads: kernels para sist. embarc.

    • N processos X N threads: Windows 95/98,NT, UNIX


Multiprocessamento quando usar

Multiprocessamento: Quando usar ?

  • Tarefas diversas que necessitam de pouca ou nenhuma interação.

  • Tarefas que necessitam de proteção.

  • Capacidade de modificação dinâmica do sistema

    Exemplo:

    • PDA: calendário, email, spreadsheet

    • Sistema de Gerenciamento Industrial

      • Programas para comunicação/controle da fábrica

      • Spreadsheet para apresentação de resultados

      • Banco de dados para depto de pessoal e almoxarifado


Multithreading quando usar

Multithreading: Quando usar ?

  • Várias atividades de um mesmo programa precisam ser executadas simultaneamente, principalmente em velocidades diferentes

    • Controle de recursos diferentes

    • Tratamento de diversas entradas / saídas de dados e sinais


Multithreading como dividir em threads

Multithreading: Como dividir em threads ?

  • Identifique atividades que precisam ou são melhor executadas em paralelo

  • Candidatos naturais:

    • Usar uma thread para cada tipo de I/O:

      Teclado, display, sensores, atuadores

    • Atividades independentes

      • Exemplo: Impressora conectada na rede

        • 1 thread para receber jobs

        • 1 thread para processar PostScript

        • 1 thread para controlar o hardware de impressão


Multithreading escalonamento

Multithreading: Escalonamento

  • Estados:running, ready, suspended

  • Escalonamento CooperativoTarefas cooperam no uso do processador, liberando-o por conta própria.

  • Escalonamento PreemptivoInterferência do S.O. para recuperar o uso do processador.


Escalonamento de threads round robin

Tar. B

Contexto

Tar. C

Contexto

Tar. A

Contexto

Tar. A

Contexto

Tar. A

Contexto

Escalonamento de Threads: Round-Robin

CPU:Running


Escalonamento de threads round robin1

Escalonamento de Threads: Round-Robin

  • O exemplo dado é independente do escalonador ser cooperativo ou preemptivo, e das tarefas terem ou não prioridade.


Escalonamento cooperativo de threads round robin com mefs

Escalonamento Cooperativo de Threads: Round-Robin com MEFs

  • Cada thread é implementada como uma Máquina de Estados Finitos

  • Caso não haja mudança de estado, a MEF libera o processador.

  • Caso haja mudança de estado, a MEF executa a ação correspondente e libera o processador.


Round robin com mefs como implementar

Round-Robin com MEFs:Como implementar ?

main()

{

[inicialização de variáveis, dispositivos, etc.]

while (1)

{

TarefaA();

TarefaB();

}

}

[Rotinas de tratamento de interrupção]

[Outras funções auxiliares]

Tarefa A()

{

static charestadoA = estA0;

[Ações comuns a todos os estados]

switch(EstadoA)

{

case(estA0): ação0; break;

case(estA1): ação1; break;

case(estA2): ação2; break;

}

[Ações comuns a todos os estados]

}

Tarefa B()

{

static charestadoB = estB0;

[Ações comuns a todos os estados]

switch(estadoB)

{

case(estB0): ação0; break;

case(estB1): ação1; break;

case(estB2): ação2; break;

}

[Ações comuns a todos os estados]

}


Round robin com mefs abordagem s ncrona

Round-Robin com MEFs:Abordagem Síncrona

  • Todas as MEFs são tratadas ANTES que novas entradas sejam verificadas.

  • Chamados de Sistemas Reativos Síncronos

  • Linguagem para espeficicação: Esterel


Round robin com mefs como particionar as threads

Round-Robin com MEFs:Como particionar as threads ?

São consideradas mudanças de estado:

  • Alterações em sinais de entrada

  • Recepção de dados

  • Término de tempos de espera


Round robin com mefs como usar as interrup es

Round-Robin com MEFs:Como usar as interrupções ?

As interrupções devem ser usadas para:

  • Tratar rapidamente e guardar informações sobre alterações em sinais de entrada e/ou recepção de dados

  • Gerenciar o timer para controlar tempos de espera e contadores

  • Não devem ser sobrecarregadas de ações que podem e devem ser tratadas nas threads.

  • Eventos são tratados nas interrupções

  • Ações são tratadas nos estados das MEFs


  • Login