Universidade Paulista
Universidade Paulista
Universidade Paulista
SISTEMA OPERACIONAL
BRASÍLIA/ 2020
UNIVERSIDADE PAULISTA
SISTEMA OPERACIONAL
BRASÍLIA
2020
UNIVERSIDADE PAULISTA
SISTEMA OPERACIONAL
Orientador(a):
Prof(a). (Dr.) DAVI DREITAS
BRASÍLIA
2020
RESUMO
1. INTRODUÇÃO .................................................................................................................... 1
1.1 OBJETIVO GERAL ...................................................................................................... 1
2. COMUNICAÇÃO ENTRE PROCESSOS ......................................................................... 2
2.1 PROCESSOS .................................................................................................................... 2
2.2 CONDIÇÕES DE CORRIDA .......................................................................................... 4
2.3 REGIÕES CRÍTICAS ...................................................................................................... 4
2.4 EXCLUSÃO MÚTUA ..................................................................................................... 4
2.5 SINCRONIZAÇÃO ......................................................................................................... 5
2.5.1 SEMAFARO ............................................................................................................. 6
2.5.2 SEMAFARO BINARIO ............................................................................................ 6
3. ZFS ......................................................................................................................................... 6
3.1 O QUE É? ......................................................................................................................... 6
3.2 HISTÓRICO ..................................................................................................................... 7
3.3 DESCRIÇÃO ................................................................................................................... 7
3.3.1 COMO FUNCIONA? ................................................................................................ 8
3.3.2 UM SISTEMA DE ARQUIVOS FLEXÍVEL........................................................... 9
3.3.3 SNAPSHOTS ............................................................................................................ 9
3.3.4 RAID-Z.................................................................................................................... 10
3.3.5 INTEGRIDADE DE DADOS ................................................................................. 11
3.3.6 RECUPERAÇÃO DE DADOS ............................................................................... 11
4. CONCLUSÃO..................................................................................................................... 12
REFERÊNCIAS ..................................................................................................................... 13
1. INTRODUÇÃO
Um programa é uma entidade estática que fornece as instruções necessárias para realizar
tarefas, o processo é um programa em execução que caracteriza-se por uma entidade
dinâmica, que muda de estados e concorre por recursos do sistema, todos os computadores
são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do
usuário, um computador pode também ler os dados de um disco e mostrar um texto na tela ou
enviá-lo para uma impressora. Cada processo está associado a um Bloco de Controle de
Processo (PCB - Proccess control block ou PCB), composto por informações como:
• Identificador do processo (PID)
• Registradores da CPU (incluindo o contador de programa)
• O espaço de endereçamento do processo
• A prioridade do processo
• O status do processo
• Informações sobre o escalonamento de processo
• Informações de entrada/saída (dispositivos de hardware ligados ao processo, arquivos
abertos, etc.)
• O ponteiro para o próximo PCB
2.1 PROCESSOS
Comunicação síncrona/assíncrona
Comunicação confiável/não-confiável
➢ Confiável - Estabelecido um canal de comunicação send(msg), receive(msg), garante-
se que Q receberá msg de P. Existe um overhead para assegurar a confiabilidade.
➢ Não-Confiável - Ao enviar uma mensagem entre dois processos, não há garantia que
esta mensagem será entregue – Sem overhead de confiabilidade.
É uma situação onde dois os mais processos estão lendo ou escrevendo algum dado
acesso concorrente/compartilhado (mesmo não aparente) e o resultado depende de quem
processa no momento propício. O melhor resumo é que a situação precisa contar que algo está
em determinado estado e vai fazer algo pressupondo este estado, mas o estado muda por outra
execução entre o tempo que você obteve o estado e o momento que vai executar algo nele.
Depurar programas que contém condições de corrida não é fácil, pois não é possível prever
quando o processo será suspenso.
Uma solução para as condições de corrida é proibir que mais de um processo leia ou
escreva em uma variável compartilhada ao mesmo tempo. Esta restrição é conhecida como
exclusão mútua, e os trechos de programa de cada processo que usam um recurso
compartilhado e são executados um por vez, são denominadas seções críticas ou regiões
críticas (R.C.).
Exclusão mútua (acrônimo mutex para mutual exclusion) é uma técnica usada em
programação concorrente(paradigma de programação para a construção de programas que
fazem uso da execução concorrente (simultânea) de várias tarefas computacionais interativas)
para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso
compartilhado, acesso esse denominado por seção crítica.
Assegura-se a exclusão mútua recorrendo aos mecanismos de sincronização
fornecidos pelo sistema operacional. Estas afirmações são válidas também para as threads (é
ainda mais crítico, pois todas as threads dentro do mesmo processo partilham os mesmos
recursos).
2.5 SINCRONIZAÇÃO
Basicamente um semáforo é uma variável inteira não negativa, normalmente, este valor está
associado à quantidade de recursos disponíveis, que só pode ser manipulada por duas
instruções: DOWN e UP.
➢ DOWN - Decrementa o semáforo. Se o resultado for menor que zero, a entidade fica
bloqueada neste semáforo.
Os semáforos podem ser considerados como binários (0 ou 1) ou contadores (0,1,2, ..., n).
É um caso particular de semáforo no qual é iniciado com valor 1 e cujo valor nunca
ultrapassa 1. Pode ser utilizado para implementação de exclusão mútua
3. ZFS
3.1 O QUE É?
Foi desenvolvido pela Sun Microsystems (atual Oracle Corporation) liderada por Jeff
Bonwick, Bill Moore e Matthew Ahrens, sendo anunciado publicamente em Setembro de
2004 com a ideia de usar a capacidade do ZFS integrado no tronco principal do
desenvolvimento do Solaris (que é um Sistema Operacional UNIX desenvolvido pela antiga
Sun Microsystems, hoje subsidiária da Oracle) em 31 de outubro de 2005 e lançado como
parte da compilação 27 do OpenSolaris(comunidade de desenvolvedores em volta do sistema
operacional Solaris) em 16 de novembro de 2005.
3.3 DESCRIÇÃO
Por trabalhar em 128 bits o ZFS permite a você utilizar 256 quatrilhões de zettabyte de
armazenamento para uso no sistema operacional Unix desenvolvido com o propósito de
solucionar uma série de problemas existentes em outros sistemas de arquivos. Considerado
hoje em dia uma solução revolucionária de armazenamento, o ZFS apresenta facilidade de
gerenciamento e robustez.
3.3.3 SNAPSHOTS
Trata-se da cópia disponível apenas para leitura de volume e sistema de arquivos. Essa
cópia é facilmente desenvolvida e no ato da criação não ocupa espaço adicional, a situação
muda apenas quando os conjuntos de dados ativos sofrem modificações. No ubuntu Zfs tem
uma funcionalidade chamada zsys que sempre que o apt modifica alguma coisa o zfs faz um
snapshot que pode ser usado como backup do sistema
3.3.4 RAID-Z
Além de lidar com falhas em globais de discos, o RAID-Z também detecta e corrige
problemas de gravação silenciosos, oferecendo "auto recuperação de dados": ao ler um bloco
RAID-Z, o ZFS o compara com a soma de verificação do algoritmo e, se os dados não
retornaram a resposta correta, o sistema lê a paridade, descobre qual disco retornou dados
incorretos e repara a área danificada, retornando os dados sem erros ao solicitante.
3.3.5 INTEGRIDADE DE DADOS
O ZFS não acompanha ferramentas para reparar sistemas de arquivos danificados, pois
foi projetado para auto-reparo instantâneo. Caso o pool seja comprometido devido a falha de
hardware, configuração, redundância inadequada ou qualquer outro tipo de desastre a ponto
de o sistema não conseguir remontar o pool, não existem ferramentas homologadas para
recuperar os dados armazenados.
Alguns fóruns online de usuários e especialistas em ZFS tem fornecido ajuda técnica
para usuários domésticos e empresas que enfrentam perda de dados por configuração ou
gerenciamento inadequado, porém esse risco existe. Além disso, qualquer intervenção em
sistemas de arquivos danificados exige sólidos conhecimentos sobre o assunto, por isso
intervenções realizadas por técnicos não capacitados podem causar perda de dados em caráter
permanente.
4. CONCLUSÃO
SIMIONI, Dionatan. Conheça o novo recurso do Ubuntu 20.04 LTS - ZFS (File
System). 2020. (14m18s). Disponível em:
https://www.youtube.com/watch?v=ppRLlMqRu9g. Acesso em 13 mai. 2020.