You are on page 1of 33

Sumrio

Multithreading e sistemas multiprocessador (SMP)

Sistemas Multiprocessador e CPUs multicore

Sincronizao entre processos e threads

Partilha de Informao e Comunicao


Entre processos e threads
Entrada e Sada de dados

Comunicao com Dispositivos

Interrupes

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

1 / 33

1 de 33

Multithreading

O multithreading um tipo de multitarefa


Um processo corresponde a pelo menos a um thread
(fio)
possvel que um processo crie vrios threads
multithreading
Nestes casos cada thread comporta-se como um
miniprocesso, mais leve que um processo (lightweight
process)
So independentes, mas pertencem ao processo que
os criou

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

2 / 33

2 de 33

Multithreading

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

3 / 33

3 de 33

Multithreading

Assim um thread uma forma de um processo dividir-se


em duas ou mais tarefas que podem ser executadas
concorrentemente
No S.O. Linux, um thread:
existe dentro de um processo e usa os recursos deste
tem o seu prprio fluxo de controlo independente,
sendo suportado pelo S.O.
morre se o processo pai morrer

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

4 / 33

4 de 33

Multithreading

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

5 / 33

5 de 33

Multithreading

Partilham o espao de memria e os recursos do


processo que os originou

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

6 / 33

6 de 33

Multithreading

Com a multitarefa, o CPU troca rapidamente entre


processos e entre threads, de acordo com o scheduler
Cria a iluso de uma execuo em paralelo
(pseudoparalelismo)

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

7 / 33

7 de 33

Multithreading

Como os threads individuais partilham o mesmo espao


de memria podem surgir problemas entre estes
No existe proteo entre threads como nos processos
necessrio sincronizar as operaes entre threads
para evitar race conditions, deadlocks e outros problemas
Podem-se utilizar instrues de espera, trancas e uma
estrutura conhecida como semforo para sincronizar
A sincronizao com processos e threads em paralelo
torna-se muito complexa medida que a quantidade de
instrues aumenta

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

8 / 33

8 de 33

Sistemas Multiprocessador

Com a evoluo dos computadores surgiram mquinas


que possuem mais do que um CPU (multiprocessador)

TYAN S4992
::Aulas 19 e 20 de 27::

::Total: 20 de 179::

9 / 33

9 de 33

Sistemas Multiprocessador

Existem muitas arquiteturas diferentes de sistemas


multiprocessador
Uma das mais utilizadas em sistemas pequenos
conhecida como SMP (Symmetric MultiProcessor)
Nesta organizao os CPUs partilham o acesso
memria e aos dispositivos
Devido partilha ocorrem os problemas habituais devido
concorrncia, desta vez entre os CPUs

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

10 de 33

10 / 33

Sistemas Multiprocessador

SMP

Processo A

Processo B

Processo C

Processo D

CPU

CPU

CPU

CPU

cache

cache

cache

cache

Barramento

Memria Principal

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

Dispositivos
E/S

11 de 33

11 / 33

Sistemas Multiprocessador

Estes sistemas permitem obter o verdadeiro paralelismo


Os processos so executados em simultneo em CPUs
diferentes
O sistema operativo realiza a gesto dos processos,
dividindo-os pelos vrios CPUs
O prprio sistema operativo pode ser executado em
paralelo desde que divida as suas funes em processos
diferentes
Isto aumenta o desempenho consideravelmente num
sistema multitarefa

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

12 de 33

12 / 33

Sistemas Multiprocessador

O desempenho global do sistema aumenta, mas no


aumenta o desempenho dos processos individuais
aqui que o multithreading se torna vantajoso
Se o processo estiver dividido em threads o sistema
operativo pode atribuir os threads a CPUs diferentes
Assim o desempenho do processo individual acelera
Programas que lidam com tarefas que so divisveis
beneficiam imenso, por exemplo o processamento de
imagem e vdeo

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

13 de 33

13 / 33

Sistemas Multicore

Com o avano da tecnologia tornou-se possvel colocar no


espao de um nico CPU vrios ncleos

Chama-se a isto um CPU multicore (vrios ncleos)

Cada ncleo (core) corresponde a um CPU diferente

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

14 de 33

14 / 33

Sistemas Multicore

Estes sistemas so habitualmente SMP, pois os ncleos


partilham a memria e outros recursos
Cada ncleo pode executar um thread, ento um CPU
destes pode executar vrios threads em paralelo

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

15 de 33

15 / 33

Gesto de CPUs

O scheduler em sistemas deste tipo tm mais trabalho


Tem de decidir no s quais os processos e threads a
executar mas tambm em que CPU ou ncleo
A gesto torna-se mais complexa e geram-se problemas de
sincronizao entre os processos e os threads
O sistema operativo fornece aos processos system calls
( programa de computador que solicita um servio do
ncleo do S.O. a qual est sendo executado aceder a um
HD) que permitam lidar com threads e criar sincronismo
entre as tarefas diferentes

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

16 de 33

16 / 33

Comunicao entre Processos

Os processos e os threads por vezes tm de comunicar


entre si
Duas formas simples so:

Partilha de uma rea de memria

Partilha de um ficheiro

Como j foi visto isto requer sincronizao para evitar


problemas (race conditions)
Um exemplo a impresso de ficheiros utilizando um
spooler

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

17 de 33

17 / 33

Comunicao entre Processos


Processos

Fila de impresso

Processo
Spooler
ficheiro1
ficheiro2
Processo A

ficheiro3
ficheiro4

Processo B

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

18 de 33

18 / 33

Entrada e Sada de Dados

Uma das principais funes do S.O. a gesto da


entrada e sada (E/S ou I/O) de dados dos dispositivos
Isto refere-se a todos os tipos de dispositivos:

Discos e outros dispositivos de armazenamento

Placas de rede, grficas, etc

Dispositivos USB

O sistema operativo isola-os do resto do sistema


Tenta providenciar formas uniformes de acesso
independentemente do tipo dispositivo

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

19 de 33

19 / 33

Controladores de Dispositivos

Os dispositivos tm habitualmente um controlador ou


adaptador em hardware (diferente do driver)
Consiste num circuito que permite estabelecer a ligao
fsica ao dispositivo e comunicar com ele
Estes adaptadores podem ser placas extra que so
instaladas no computador
Atualmente os controladores mais comuns j vm
integrados na placa principal (ex. USB, teclado, Discos,
etc)

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

20 de 33

20 / 33

Controladores de Dispositivos
Monitor
Disco

Pen USB

Controlador
de disco

Controlador
USB

Teclado

RAM
CPU

Controlador
de vdeo

Controlador
de teclado

Barramento

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

21 de 33

21 / 33

Controladores de Dispositivos

O sistema operativo comunica com o adaptador que depois


realiza a operao pedida no dispositivo
A comunicao realizada atravs do driver do dispositivo
Pode ocorrer aqui confuso pois em Ingls os termos
utilizados so:

device controller ou adapter (controlador ou adaptador


do dispositivo) para o hardware

device driver (controlador de software para o dispositivo)

Em Portugus comum referir ao driver apenas como


controlador, necessrio perceber pelo contexto se o
de software ou de hardware

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

22 de 33

22 / 33

Portas e Mapeamento de Memria

Os controladores possuem memrias prprias (registos


e buffers) que permitem enviar e receber dados e
instrues
Existem duas formas de lidar com isto:

Portas de E/S

E/S mapeada em memria

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

23 de 33

23 / 33

Portas e Mapeamento de Memria

Com Portas de E/S (I/O Ports) os registos do controlador


ficam com um endereo de porta
Quando necessrio comunicar com o dispositivo
enviam-se as instrues para a porta de um registo
Depois pode-se obter a resposta lendo a porta de outro
registo
Nesta abordagem as portas esto separadas da
memria

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

24 de 33

24 / 33

Portas e Mapeamento de Memria

Com E/S mapeada em


memria os registos do
dispositivo tm endereos
como se fizessem parte da
memria
Para comunicar l-se e
escreve-se nesses endereos
especficos
Existem sistemas que usam
uma combinao destes dois
mtodos, com portas de E/S e
memria mapeada

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

25 de 33

Acesso Direto Memria

Seja qual for o mtodo utilizado portas E/S ou


mapeamento de memria o CPU que faz os pedidos
Como os dados so enviados ou lidos byte a byte o
processo torna-se lento e desperdia o CPU
Para evitar isto criou-se um mtodo chamado DMA
(Direct Memory Access)
Este mtodo requer que o controlador de hardware tenha
suporte para DMA

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

26 de 33

Acesso Direto Memria (DMA)


Basicamente, o DMA permite que os perifricos transmitam dados diretamente para a
memria, poupando o processador de mais esta tarefa.
Disco

CPU

1. CPU
programa o
controlador
DMA

Controlador
DMA

Controlador
de disco

Memria
principal
Buffer

Endereo
Quantidade
Controlo

5. Gera interrupo
quando terminou

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

4. Assinala
fim da
transmisso

2. O DMA ordena
a transmisso
para memria

3. Dados
transferidos

Barramento

27 de 33

Interrupes

As interrupes (interrupts) so um mecanismo que existe no


hardware e gerido pelo S.O. e por um controlador de interrupes
(interrupt controller)
So utilizados para o tratamento de eventos assncronos (p. ex.,
um controlador ficar pronto para operaes de E/S, falhas de
hardware ou chamadas a rotinas do sistema), desviando o
controlo para rotinas do ncleo
O sistema operativo pode desativar as interrupes se necessrio
Tambm possvel registar conjuntos de instrues que so
ativadas quando ocorre uma determinada interrupo (interrupt
handlers)

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

28 de 33

Interrupes (Hardware)

O hardware da CPU tem um fio (thread) chamado de linha de requisio de interrupes, que
testado pela CPU depois da execuo de cada Instruo. Quando a CPU deteta que um
controlador enviou um sinal na linha de requisio de interrupes (provocou uma interrupo),
desvia para uma rotina de tratamento de interrupes num determinado endereo de memria.

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

29 de 33

Dispositivos (Diviso Lgica)


Utilizador

Aplicao

Processos do SO
Kernel

Driver
Impressora

Driver
Leitor

Handler
de interrupo

Handler
de interrupo

Controlador
da impressora

Controlador
do leitor

Hardware

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

30 de 33

30 / 33

Relgio de Hardware

Um dos componentes essenciais para a gesto efetuada


pelo S.O. o relgio do computador
Sem relgio seria impossvel determinar o tempo
atribudo aos processos, os perodos para sincronizar, .
O relgio um componente do hardware e pode ser
programado pelo S.O. para gerar interrupes
As interrupes tm a regularidade que o S.O. pretender
Assim possvel ao S.O. determinar o tempo que
passa entre cada momento

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

31 de 33

Relgio de Software

O relgio de hardware apenas gera interrupes numa


frequncia programada
Tudo o resto realizado por software

Determinar a hora atual

Controlar o tempo de cada processo

Determinar o tempo de utilizao do CPU

Criar temporizadores para o sistema

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

32 de 33

Resumo

Os sistemas com multithreading permitem acelerar certas


tarefas em sistemas multicore ou multiprocessador
O SMP o sistema de multiprocessador mais comum em
sistemas pequenos
Os processos e threads tm meios para comunicar entre
eles e a sua sincronizao essencial
O S.O. utiliza os drivers para comunicar com os
dispositivos
A entrada e sada de dados requer a utilizao de portas,
memria mapeada, interrupes e DMA
O relgio do sistema essencial para tudo funcionar

::Aulas 19 e 20 de 27::

::Total: 20 de 179::

33 de 33

You might also like