Você está na página 1de 36

Race Condition

• Uma race condition ocorre em sistemas


concorrentes quando a saída de um programa
depende da ordem de execução de instruções por
múltiplos threads ou processos.

• Se dois ou mais threads acessam e manipulam


dados compartilhados sem mecanismos adequados
de sincronização
Race Condition

• A competição pela
manipulação de dados
pode levar a resultados
incorretos,
inconsistências ou
falhas no programa.
Deadlocks
• Um deadlock ocorre quando dois ou
mais processos não conseguem
progredir porque cada um está
esperando que o outro libere um
recurso.

• É uma situação em que um grupo


de processos fica impedido de
continuar devido à dependência
circular de recursos.
Concorrência

• Execução simultânea de várias tarefas em um sistema.

• Diferentes partes de um programa podem ser


executadas em paralelo, aumentando a eficiência e a
capacidade de resposta do sistema.
Concorrência
Paralelismo

• execução simultânea real de várias tarefas, geralmente


em hardware que suporta múltiplos processadores ou
núcleos.

• Em um sistema paralelo, diferentes partes de um


programa são executadas ao mesmo tempo,
proporcionando um aumento significativo no
desempenho.
Paralelismo
Concorrência vs Paralelismo

• Imaginem os computadores dos anos 90. Neles, tínhamos tarefas


que poderiam pausar, permitindo que outras assumissem a
execução, alternando entre elas. Esse é o conceito de
concorrência, onde as tarefas estão competindo pelo tempo de
processamento, mas não necessariamente acontecendo ao mesmo
tempo. Isso envolve o que chamamos de 'context switching', uma
troca de contexto entre as tarefas.
Concorrência vs Paralelismo
• Agora, quando falamos de paralelismo, é como se tivéssemos
mais de uma pessoa executando tarefas ao mesmo tempo. Se
você tem duas ou mais cores na CPU, isso representa a
capacidade real de realizar operações simultâneas. Com
paralelismo, duas tarefas concorrentes, como threads, podem
ser executadas verdadeiramente ao mesmo tempo. Isso é
especialmente evidente em CPUs com capacidade para
múltiplas threads.
Concorrência vs Paralelismo

• Independentemente de ter uma CPU com apenas uma thread ou


várias, ainda precisamos de um scheduler. Isso ocorre porque o
número de threads concorrentes gerenciadas pelo seu programa pode
exceder o número de cores físicas disponíveis para executá-las.
• O scheduler, como já vimos, decide qual thread deve ser executada em
qual momento, otimizando o uso dos recursos disponíveis.
DEPARTAMENTO DE CIÊNCIAS E

Gestão TECNOLOGIA
LICENCIATURA EM: ENGENHARIA
INFORMÁTICA DE GESTÃO

de Memória SISTEMAS OPERATIVOS

Misael Lopes
Introdução
Pense na memória como um livro com páginas numeradas
sequencialmente de 1 até um número grande (x):

• Computador de 32-bits temos a capacidade de mapear


de 1 até 232 ou seja mais de 4 bilhões ou 4GB;

• Computador de 64-bits temos a capacidade de mapear


até 264 ou seja mais de 18 quintilhões de bytes ou 18
exabytes.
Introdução: Memória

• Componente usado para armazenar, recuperar e


processar dados ou informações de forma temporária
ou permanente;

• É um recurso crítico para o funcionamento de


qualquer sistema computacional e é utilizada em
diferentes formas e níveis de hierarquia.
Introdução: Memória
A hierarquia de memória em um sistema típico inclui diferentes níveis:
• Memória Cache (ex.: CPU - L1, L2, L3): Static RAM;
• Memória RAM (Random Access Memory): Dynamic RAM;
• Memória ROM (Read-Only Memory): Armazenar firmware,
BIOS/UEFI e instruções essenciais;
• Memória de Armazenamento Secundário (HDDs e SSDs);
• Memória Flash: armazenar dados de forma não volátil em
dispositivos portáteis e unidades de armazenamento;
• Memória Virtual: estende a capacidade de endereçamento do
sistema operacional além da capacidade física da RAM.
Gestão de Memória
Espaço de Endereçamento:

• Cada processo em um sistema operacional possui seu


próprio espaço de endereçamento, que é a quantidade de
endereços de memória que o processo pode acessar e
utilizar;

• Fornece isolamento entre os processos, impedindo que um


processo acesse diretamente a memória de outro.
Gestão de Memória
Segmentação:

• A técnica de segmentação divide o espaço de


endereçamento em segmentos lógicos, como código,
dados, pilha, etc;

• Cada segmento cresce ou diminui dinamicamente


conforme necessário.
Gestão de Memória
Paginação:

• Divide a memória em páginas fixas e permite que um


processo acesse apenas as páginas necessárias;

• Ajuda a reduzir o desperdício de memória e facilita a


troca de páginas entre a memória principal e a memória
secundária (swap).
Gestão de Memória
Swap:

• Troca ou transferência de parte de um processo da


memória principal para a memória secundária (como um
disco rígido) e vice-versa;

• Permite que mais processos sejam executados do que a


capacidade da memória principal.
Gestão de Memória
Fragmentação:

Existem dois tipos principais de fragmentação:


• Interna: Ocorre quando há desperdício de espaço dentro de
um bloco de memória atribuído a um processo;

• Externa: Ocorre quando há espaço livre na memória, mas


não é possível usá-lo porque está fragmentado em blocos
pequenos.
Gestão de Memória

Proteção de Memória:

• Mecanismos de proteção garantem que um processo não


acesse a memória de outro processo;

• Feito por meio de permissões de leitura, gravação e


execução em diferentes partes do espaço de endereçamento.
Gestão de Memória: Informações Extras

A ROM é um tipo de memória que permite apenas a leitura, ou


seja, as suas informações são gravadas pelo fabricante uma
única vez e após isso não podem ser alteradas ou apagadas,
somente acessadas, bem, inicialmente era isso.

São memórias cujo conteúdo é gravado permanentemente.


Gestão de Memória: Informações Extras
Atualmente existem memórias ROM regraváveis ou
atualizáveis. Temos como exemplo:

• EPROM (Erasable Programmable Read-Only Memory);


• EEPROM (Electrically Erasable Programmable Read-Only
Memory).

Ambas são tipos de memórias não voláteis que podem ser


programadas e reprogramadas múltiplas vezes.
Gestão de Memória: Informações Extras
EPROM (Erasable Programmable ROM):

Características:
Pode ser programada uma vez.
Apagável por meio da exposição a luz ultravioleta.
Depois de apagada, pode ser reprogramada.
Uso Comum:
Antigo, utilizado em algumas aplicações onde as atualizações
são raras.
Gestão de Memória: Informações Extras
EEPROM (Electrically Erasable Programmable ROM):

Características:
Pode ser programada e apagada eletricamente.
Não requer exposição à luz ultravioleta.
Pode ser reprogramada várias vezes.
Uso Comum:
Amplamente utilizado em dispositivos eletrônicos modernos,
como microcontroladores, BIOS de computadores, e outros
dispositivos que precisam de atualizações de firmware.
Gestão de Memória: Informações Extras

Memória Flash é um tipo de dispositivo de armazenamento não


volátil, ou seja, mesmo se não tiver energia, manterá as informações
que salvas nela.

Desenvolvida pela Toshiba a partir da Memória EEPROM, em


meados da década de 1980,
Gestão de Memória: Informações Extras

Trata-se de um chip re-escrevível que preserva o seu conteúdo sem a


necessidade de fonte de alimentação.

Comumente usada em cartões de memória, flash drives USB (pen


drives), SSDs, armazenamento interno de câmeras digitais e
celulares.
Gestão de Memória: Informações Extras

O DDR é uma tecnologia usada nas memórias RAM que


consegue melhorar a performance de computadores e
smartphones.

O padrão Double Data Rate (ou taxa dupla de


transferência) foi criado em 1998.
Gestão de Memória: Informações Extras
A principal característica do DDR é sua capacidade de
transferir dados em ambas as bordas de um sinal de clock,
o que resulta em uma taxa de transferência de dados efetiva
maior em comparação com as tecnologias de memória mais
antigas.

As diferentes versões (DDR, DDR2… DDR5) representam


avanços em termos de largura de banda, velocidade e
eficiência energética.
Gestão de Memória: Informações Extras

Tudo no computador funciona segundo o clock da CPU.

Quando a se fala em CPU de 4 Ghz… Sendo hertz um ciclo,


4 Ghz significa 4 bilhões de ciclos por segundo, pensemos
em clock literalmente como um ciclo ou uma ida e volta de
um pêndulo, uma frequência.
Gestão de Memória: Informações Extras

Como visto previamente, Double Data Rate significa que é


possível puxar dados da memória no topo do ciclo e na
parte de baixo do ciclo, em vez de só conseguir puxar dados
uma vez por ciclo como era antigamente, então ele tem a
chance de puxar duas vezes, por isso é mais rápido.
Gestão de Memória: Informações Extras
Obrigado!

Você também pode gostar