Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Distribuídas
Prof. Danton Cavalcanti Franco Junior
Prof. Jan Charles Gross
2013
Copyright © UNIASSELVI 2013
Elaboração:
Prof. Danton Cavalcanti Franco Junior
Prof. Jan Charles Gross
004.36
F825s Franco Junior, Danton Cavalcanti
Sistemas e aplicações distribuídas / Danton Cavalcanti Franco Junior;
Jan Charles Gross. Indaial : Uniasselvi, 2013.
178 p. : il
Impresso por:
Apresentação
Prezado(a) Acadêmico(a)!
Bom estudo!
III
UNI
Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há
novidades em nosso material.
O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova
diagramação no texto, aproveitando ao máximo o espaço da página, o que também
contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo.
Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa
continuar seus estudos com um material de qualidade.
IV
V
VI
Sumário
UNIDADE 1 – INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS ......... 1
VII
3.3 QUANTO À ORGANIZAÇÃO FUNCIONAL ........................................................................... 34
LEITURA COMPLEMENTAR ............................................................................................................... 35
RESUMO DO TÓPICO 2 ....................................................................................................................... 37
AUTOATIVIDADE ................................................................................................................................. 38
VIII
4 ESCALONAMENTO DE SISTEMAS EM TEMPO REAL ............................................................ 78
4.1 TEMPO REAL CRÍTICO – RÍGIDOS ............................................................................................ 79
4.2 TEMPO REAL NÃO CRÍTICO – MODERADOS . ...................................................................... 79
5 GERENCIAMENTO DE PROCESSOS EM SISTEMAS DISTRIBUÍDOS E DE REDE ......... 79
LEITURA COMPLEMENTAR ............................................................................................................... 81
RESUMO DO TÓPICO 2 ....................................................................................................................... 84
AUTOATIVIDADE ................................................................................................................................. 85
IX
RESUMO DO TÓPICO 2 ....................................................................................................................... 142
AUTOATIVIDADE ................................................................................................................................. 143
X
UNIDADE 1
INTRODUÇÃO E FUNDAMENTOS DE
SISTEMAS OPERACIONAIS
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, o(a) acadêmico(a) estará apto(a) a:
PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos, sendo que, ao final de cada um
deles, você encontrará atividades que lhe auxiliarão na apropriação do
conhecimento.
1
2
UNIDADE 1
TÓPICO 1
1 INTRODUÇÃO
Vamos falar de sistemas operacionais, para isso é importante entender
como é o seu funcionamento. Vale lembrar que é um programa como qualquer
outro, exceto pelo fato de ser um programa que executa rotinas no núcleo do
processador. Essas rotinas são, contudo, responsáveis pelo interfaceamento entre
o hardware da máquina e as demais aplicações do usuário.
UNI
3
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
E
IMPORTANT
• O hardware compreende toda a parte física, que engloba a UCP (Unidade Central
de Processamento), em inglês conhecida por CPU (Central Process Unit), a
memória e os dispositivos de entrada e saída (I/O devices).
4
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
FONTE: Os autores
5
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
FONTE: Os autores
6
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
Por exemplo, uma impressora não deve ser acessada por dois usuários ao
mesmo tempo, enquanto um imprime outro deve aguardar, todavia, uma unidade
de disco pode ser acessada simultaneamente por diversos usuários, e cabe ao
sistema operacional gerenciar a leitura e escrita dos dados no disco. Isso pode
parecer para o usuário uma tarefa simples, mas há uma série de processos e rotinas
envolvidas para que esse procedimento ocorra com sucesso.
3 HISTÓRICO
A evolução dos sistemas operacionais ocorreu de forma gradativa e está
diretamente relacionada à evolução do hardware. A partir da Segunda Guerra
Mundial, a evolução do hardware deu um salto com grandes avanços.
7
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
NOTA
NOTA
8
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
9
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
DICAS
O filme Piratas do Vale do Silício (Pirates of Silicon Valley, 1999), com direção de
Martyn Burke, conta a história da Microsoft e da Apple. É possível ver um pouco da origem do
MS-DOS e do Windows, além de haver algumas cenas com uso dos cartões perfurados.
10
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
11
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
UNI
FONTE: TANENBAUM, Andrew S. Sistemas operacionais modernos. São Paulo: Prentice Hall-Br,
2003.
12
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
UNI
13
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
FONTE: Os autores
14
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
E
IMPORTANT
DICAS
15
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Marcada pela evolução da VLSI para a ULS (Ultra Large Scale Integration
– Escala Ultra Larga de Integração), essa fase ocorre de 1991 até os dias atuais,
permitiu uma grande evolução dos processadores, além de um ganho de velocidade
muito grande.
DICAS
16
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
DICAS
Os sistemas podem ser divididos conforme seu porte e sua função (observe a
seguir essa divisão).
FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 4° ed., São Paulo: Ed.
LTC, 2007.
17
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
18
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
Nesse tipo de sistema, não existe o conceito de fatia de tempo, sendo que
o programa utiliza o processador o tempo necessário para efetuar a tarefa, são
exemplos de aplicação: refinarias de petróleo, controle do trafego aéreo, usinas
nucleares, equipamentos médicos, linhas de produção etc.
O robô Curiosity enviado a Marte usa sistemas em tempo real (figura a seguir).
19
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
UNI
20
TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS
DICAS
LEITURA COMPLEMENTAR
A HISTÓRIA DO WINDOWS
A Microsoft foi fundada em 1975 por Bill Gates e Paul Allen. Em 1980, Steve
Ballmer se junta à companhia. O primeiro produto desenvolvido pela empresa foi
uma versão do interpretador BASIC, para o computador Altair 8800 da MITS. Em
1977, foi lançado o Microsoft FORTRAN, para computadores baseados em CP/M.
Em 1980, a IBM planeja lançar seu computador pessoal com o sistema CP/M,
mas as negociações com a Digital Research falham e a IBM procura a Microsoft
para desenvolver seu sistema operacional. Sem ter um sistema para entregar, a
Microsoft acerta um contrato não exclusivo de licenciamento com a IBM e procura
a Seattle Computers para comprar seu sistema Q-DOS. Em 1982 a Microsoft começa
a desenvolver aplicações para o Macintosh da Apple, lança o Microsoft COBOL e a
planilha eletrônica Multiplan para MS-DOS. No ano seguinte anuncia o Microsoft
Word e o Microsoft Windows. Em 1985 a Microsoft e a IBM assinam acordo para
desenvolvimento conjunto de um futuro sistema operacional, no mesmo ano lança
o Microsoft Windows 1.0 por 100 dólares. Em 1987 a Microsoft compra o programa
de apresentações PowerPoint e lança a planilha eletrônica Excel. Em 1988 a Apple
acusa a Microsoft de plágio sobre o seu Macintosh OS (este já uma cópia, do Xerox
Alto) com o Windows 2.0, no ano seguinte formam uma aliança para desenvolver
o padrão de fontes TrueType.
21
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
22
RESUMO DO TÓPICO 1
Caro(a) acadêmico(a)! Neste primeiro tópico, você estudou os seguintes
aspectos:
23
AUTOATIVIDADE
24
UNIDADE 1
TÓPICO 2
1 INTRODUÇÃO
Os sistemas operacionais podem ser classificados como fortemente
acoplados e fracamente acoplados em função da quantidade de processadores e
dispositivos de entrada e saída que controlam.
25
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
E
IMPORTANT
26
TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES
TURO S
ESTUDOS FU
NOTA
27
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
28
TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES
NOTA
NOTA
29
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed.
LTC, 2002.
30
TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES
FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed.
LTC, 2002.
DICAS
31
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
32
TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES
33
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
NOTA
34
TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES
LEITURA COMPLEMENTAR
35
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
FONTE: TechTudo. Supercomputador criado com mais de um milhão de núcleos bate recorde.
Disponível em: <http://www.techtudo.com.br/curiosidades/noticia/2013/01/supercomputador-
criado-com-mais-de-um-milhao-de-nucleos-bate-recorde.html>. Acesso em: 10 fev. 2013.
36
RESUMO DO TÓPICO 2
Caro(a) acadêmico(a)! No Tópico 2, você estudou os seguintes conteúdos:
37
AUTOATIVIDADE
38
UNIDADE 1
TÓPICO 3
1 INTRODUÇÃO
A memória é parte fundamental para o processamento dos dados em um
computador, pois é nela que são armazenados antes de serem executados nos
registradores da CPU. Seu correto funcionamento e gerenciamento são primordiais
para que a integridade dos dados seja garantida e, consequentemente, a correta
execução do programa.
2 A MEMÓRIA DO COMPUTADOR
Podemos considerar que todo dispositivo capaz de armazenar dados no
computador é chamado de memória, podendo armazenar pequenas quantidades de
bits (registradores) até grandes massas de dados (discos magnéticos e fitas magnéticas).
39
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
NOTA
NOTA
40
TÓPICO 3 | FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA
3 ALOCAÇÃO DE MEMÓRIA
O gerenciamento de memória é um processo altamente crítico para o sistema
operacional. Como apenas as instruções que estão na memória principal é que
podem ser executadas, cabe ao sistema operacional manter na memória o maior
número possível de processos, evitando desta forma a queda de desempenho no
sistema como um todo.
NOTA
41
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
FONTE: Os autores
NOTA
42
TÓPICO 3 | FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA
NOTA
FONTE: Os autores
43
UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
NOTA
E
IMPORTANT
Para controlar as partições livres, o sistema operacional cria uma tabela que
contém o número da partição, o seu tamanho e se está alocada ou não; assim, é possível
verificar em quais locais pode ser alocado determinado programa.
44
TÓPICO 3 | FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA
FONTE: Os autores
DICAS
45
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
4 TÉCNICAS COMPLEMENTARES
Além das melhorias e dos avanços no gerenciamento de memória, muitas
vezes, os sistemas possuíam limitações de memória física, o que ocasionou a
criação de novas técnicas, discutidas nos próximos itens, dentre elas o swapping
que é inclusive utilizada em conjunto com outras técnicas.
4.1 SWAPPING
Essa técnica consiste em retirar alguns programas da memória e salvá-
los em disco. Ou seja, sempre que um programa precisa esperar alguma coisa,
outro que precise ser executado pode ocupar seu lugar em memória, para tanto
o sistema operacional precisa fazer a troca dos programas, salvando o que está
esperando no disco e colocando o que precisa ser executado na área de memória
liberada (figura a seguir).
Transferência
Transferência
46
TÓPICO 3 | FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA
FONTE: Os autores
4.2.1 Paginação
Técnica que permite aos programas estarem alocados na memória em
endereços não contíguos, ou seja, um programa pode agora ter seus dados
alocados em qualquer frame (áreas da memória que agrupam as páginas),
isso facilitou e resolveu um sério problema das outras formas de alocação dos
programas, que era de disponibilidade contígua para alocação.
4.3 SEGMENTAÇÃO
Possibilita a divisão dos programas através de sub-rotinas, que possuem
seus próprios endereços. O compilador pode, por exemplo, dividir um programa
em vários segmentos, que poderiam conter: variáveis globais, variáveis locais,
vetores, endereços de funções, endereços de procedimentos etc.
47
UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS
NOTA
DICAS
LEITURA COMPLEMENTAR
48
TÓPICO 3 | FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA
49
RESUMO DO TÓPICO 3
Caro(a) acadêmico(a)! No Tópico 3, você estudou os seguintes assuntos:
50
AUTOATIVIDADE
b) Elenque pelo menos duas características de cada item do artigo que você
julgue importante, e justifique sua resposta.
51
52
UNIDADE 2
GERÊNCIA DE PROCESSOS E
DISPOSITIVOS
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos, sendo que, ao final de cada um
deles, você encontrará atividades que lhe auxiliarão na apropriação do co-
nhecimento.
53
54
UNIDADE 2
TÓPICO 1
1 INTRODUÇÃO
Nos sistemas antigos, apenas um programa era executado por vez e o
mesmo alocava-se na memória (como visto no tópico anterior) e alocava todos
os recursos da máquina. Contudo, a evolução implementou a multitarefa, que é
a possibilidade de executar vários programas simultaneamente. Esses programas
devem ser escalonados e ganham conforme essas regras de escalonamento o
processador, podendo assim executar seu conjunto de instruções.
TURO S
ESTUDOS FU
55
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
2 CONCEITO DE PROCESSO
Pode-se dizer que um processo é um programa em execução (ativo) e que
programa é um conjunto de códigos (passivo) que quando carregado em memória
vira um processo.
• Contexto de software: determina os limites dos recursos que podem ser alocados
ao processo, como memória, quantidade de arquivos abertos, prioridade etc.
56
TÓPICO 1 | ESTRUTURA E FUNCIONAMENTO DOS PROCESSOS
NOTA
57
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
• Novo (new): quando o processo é criado, iniciado com os valores padrão dos
seus registradores e aceito pelo sistema operacional, seu estado inicial é novo.
• Execução (running): estado em que o processo entra quando a CPU executa suas
instruções. Apenas um processo pode estar nesse estado por vez (em sistemas
monoprocessados), contudo, se o hardware possuir mais de um processador
(multiprocessado), pode-se ter mais de um processo no estado de execução.
• Encerrado (finish): quando o processo termina sua execução, que pode ocorrer
de forma normal ou por erro de execução.
NOTA
Alguns autores não fazem referência aos estados de novo e terminado dos
processos. Desta forma representam apenas os estados: executando, espera e pronto. Isso
ocorre por conta de que todos os processos precisam ser iniciados e terminam de alguma
forma, fazendo com que esses estados (novo e terminado) sempre ocorram.
58
TÓPICO 1 | ESTRUTURA E FUNCIONAMENTO DOS PROCESSOS
FONTE: Os autores
• Executando – Espera: quando o processo realiza uma operação de I/O ele entra
na fila de espera, até que a solicitação seja realizada.
59
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
NOTA
3 SUBPROCESSO
Quando o processo cria um novo processo hierarquicamente, denomina-se
processo filho ou subprocesso. É possível assim, dividir a aplicação em várias partes
que trabalham concorrentemente.
NOTA
60
TÓPICO 1 | ESTRUTURA E FUNCIONAMENTO DOS PROCESSOS
DICAS
FIGURA 31 – SUBPROCESSOS
FONTE: Os autores
4 THREAD
A thread possui a mesma ideia de um subprocesso, entretanto, compartilha
a mesma área de dados com o programa principal. Sua principal vantagem é a
economia de recursos do sistema, pois não há criação de PCB, já que o contexto da
thread é comum ao programa principal.
61
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
FIGURA 32 – THREAD
FONTE: Os autores
DICAS
5 INTERRUPÇÕES E EXCEÇÕES
Durante a execução normal de um programa podem ocorrer eventos que
precisam ser tratados pelo sistema operacional, podemos dividir esses eventos em:
• Interrupções (assíncrono): são eventos que podem ser gerados por hardware ou
por software e são independentes do programa executando, devendo ser tratados
pelo sistema operacional. É exemplo de interrupção um periférico que avisa a
CPU que precisa carregar dados para a memória.
62
TÓPICO 1 | ESTRUTURA E FUNCIONAMENTO DOS PROCESSOS
NOTA
FONTE: Os autores
63
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
NOTA
LEITURA COMPLEMENTAR
64
TÓPICO 1 | ESTRUTURA E FUNCIONAMENTO DOS PROCESSOS
Nada impede que se codifique ISRs próprias, ainda mais quando se pretende
escrever um novo sistema operacional. Pode parecer difícil escrever um código que
não conflite com o processo em execução, mas a coisa é menos complicada do que
se pensa. É que a CPU se encarrega automaticamente da parte mais complicada,
salvando os registradores SS, EIP, ESP e CS na pilha. Se o ponteiro da pilha estiver
apontando para o mesmo endereço no início da ISR e quando a instrução iret
for chamada, então esta instrução restaura os registradores automaticamente.
Portanto, é só controlar a pilha: caso um ou mais dos registradores EAX, EBX,
ECX, EDX, EBP, ESI, EDI, ES, DS, FS ou GS forem utilizados na função (o que é
mais do que provável), primeiro é preciso salvá-los na pilha e não esquecer-se de
restaurá-los após o uso.
[...]
[...]
65
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
[...]
FONTE: Aldeia Numaboa. Interrupções, Exceções e IDTs. Disponível em: <http://www.numaboa.
com.br/informatica/oficina/123-so/744-interrupcoes>. Acesso em: 2 jan. 2013.
66
RESUMO DO TÓPICO 1
Caro(a) acadêmico(a)! No Tópico 2, você estudou os seguintes assuntos:
67
AUTOATIVIDADE
1 O que é um processo?
7 Conceitue:
a) Thread.
b) Interrupções.
c) Exceções.
68
UNIDADE 2 TÓPICO 2
GERENCIAMENTO DO PROCESSADOR
1 INTRODUÇÃO
Quando um computador é multiprogramado, temos vários processos
concorrendo entre si disputando a CPU. Desta forma cabe ao sistema operacional
decidir qual é o processo que irá ganhar a CPU em determinado momento. A essa
escolha damos o nome de escalonamento de processos.
A decisão é tomada a partir de vários fatores, podendo ser por tempo, por
prioridade, tamanho do processo etc. O mecanismo de escalonamento é uma das
atividades mais complexas que o sistema operacional desempenha.
2 CONCEITOS BÁSICOS
Um dos objetivos de um sistema multiprogramável, é manter a CPU
ocupada com algum processamento, ou seja, maximizar o uso da CPU.
69
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
NOTA
• Tempo de espera: é o tempo que um processo aguarda na fila de espera para ser
executado, quanto menor esse tempo melhor.
70
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
NOTA
3 TIPOS DE ESCALONAMENTO
Para Machado e Maia (2002) existem duas políticas de escalonamento
preemptivos (utilizadas em sistemas complexos, porém mais flexíveis) e não
preemptivos (sistemas mais simples):
71
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
Quando o processo ganha a CPU ele é executado até o fim sem ser
interrompido, ou até que realize uma Entrada/Saída, onde neste momento é realizada
sua E/S e o processo é recolocado no fim da fila (MACHADO; MAIA, 2002).
72
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
O grande problema dessa técnica é que como não existe intervenção do sistema
operacional, um determinado processo pode alocar a CPU indefinidamente por tempo
indeterminado (um programa em looping, por exemplo, jamais irá liberar a CPU).
73
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
FONTE: Os autores
NOTA
74
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
FONTE: Os autores
75
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
76
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
77
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
FONTE: Os autores
NOTA
Sistemas em tempo real são utilizados para controle de processos, como sistemas
que controlam indústrias, tráfego aéreo, usinas de energia, navios, plataformas de petróleo etc.
Nestes sistemas, a resposta deve ser imediata, não sendo permitidas falhas pelos limites de
tempo de cada processo.
78
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
79
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
1. Conectar-se à rede.
2. Instruir o sistema local a migrar os dados ou processo para o sistema remoto.
3. Enviar uma requisição ao sistema remoto para que o processo seja executado
naquele sistema.
FONTE: Os autores
80
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
LEITURA COMPLEMENTAR
Ocorrência de Deadlock
[...]
[...]
[...]
81
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
Existem algumas condições para que possa ter uma ocorrência de deadlock.
São elas:
Todas estas condições devem estar presentes para que ocorra um deadlock.
Se alguma delas falhar, então não ocorrerá um deadlock.
[...]
[...]
[...]
[...]
82
TÓPICO 2 | GERENCIAMENTO DO PROCESSADOR
Sabendo que são quatro as condições para que possa ocorrer uma situação
de deadlock simultaneamente, a prevenção procura eliminar pelo menos uma delas.
[...]
[...]
NOTA
Para saber mais sobre Deadlock, leia o capítulo 8 do livro Sistemas Operacionais:
conceitos e alicações, de Silberschatz, Galvin e Gagne, 2004.
83
RESUMO DO TÓPICO 2
Caro(a) acadêmico(a)! Neste tópico, você estudou os seguintes assuntos:
84
AUTOATIVIDADE
1 O que é escalonamento?
85
86
UNIDADE 2
TÓPICO 3
GERENCIAMENTO DE DISPOSITIVOS
1 INTRODUÇÃO
O controle de todos os periféricos da máquina é função do sistema
operacional, função esta que se torna a mais importante, pois dela depende todo o
funcionamento da máquina, pois os próprios processos precisam alocar recursos,
como gravar um dado no disco, ler uma informação do teclado etc.
Como existem diversos tipos distintos de dispositivos, o sistema operacional
implementa o que chamamos de camada de subsistema de Entrada/Saída, que tem a
função de isolar os dispositivos da aplicação. Um usuário não enxerga o HD fisicamente,
mas sim uma estrutura lógica com espaços que usa para ler e gravar dados.
Neste tópico vamos abordar a forma com que o sistema operacional gerencia
o hardware e compreender como os processos alocam e desalocam recursos.
• Software: abrange o device driver que é o software compilado para conversar com
o controlador do dispositivo, os subsistemas de E/S que oferecem a interface
entre o sistema operacional e o device driver e por fim as operações de entrada e
saída, que são comandos de alto nível utilizados pelas aplicações.
87
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
NOTA
88
TÓPICO 3 | GERENCIAMENTO DE DISPOSITIVOS
FONTE: Os autores
NOTA
89
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
4 CONTROLADORES
Os controladores são os responsáveis pelo acionamento do hardware e,
na maioria das vezes, possui memória interna (buffer), registradores e instruções
próprias, pois processam as requisições dos device drivers.
NOTA
DICAS
90
TÓPICO 3 | GERENCIAMENTO DE DISPOSITIVOS
Os dispositivos são ligados diretamente aos controladores, que por sua vez
se conectam aos barramentos. A figura a seguir representa essa conexão, observe
que a porta de entrada para os dispositivos sempre são os controladores.
FONTE: Os autores
NOTA
5 LÓGICO E FÍSICO
A importância da separação entre níveis lógicos e físicos permite a boa
integração do sistema operacional com o dispositivo em. Os controladores atuam sobre
os diferentes dispositivos cada um com sua particularidade, um DVD, por exemplo,
possui setores de tamanho iguais, e a organização de suas trilhas é espiral, já um disco
rígido (HD), possui setores de 512 bytes, porém suas trilhas são concêntricas.
91
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
Por outro lado, o teclado precisa identificar qual tecla foi pressionada, ao
passo que o mouse precisa gerar sinais que identificam para qual direção está sendo
movido, bem como se foi ou não pressionado algum botão de função.
LEITURA COMPLEMENTAR
Sistema de arquivos
Todos nós sabemos que dados – sejam eles partes de programas ou dados
propriamente dito, como um texto ou uma planilha – devem ser armazenados em
um sistema de memória de massa, já que a memória (RAM) do micro é apagada
quando desligamos o computador. Memória de massa é o nome genérico para
qualquer dispositivo capaz de armazenar dados para uso posterior, onde incluímos
disquetes, discos rígidos, CD-ROMs, ZIP drives e toda a parafernália congênere.
92
TÓPICO 3 | GERENCIAMENTO DE DISPOSITIVOS
Multiplicando-se o número total de setores por 512 bytes, teremos sua capacidade
total, no caso 1.263.403.008 bytes.
[...]
Existem várias posições na FAT, sendo que cada posição aponta a uma área
do disco. Como cada posição na FAT-16 utiliza uma variável de 16 bits, podemos
ter, no máximo, 216 = 65.536 posições na FAT. Como em cada setor cabem apenas
512 bytes, concluímos que, teoricamente, poderíamos ter discos somente de até
65.536 x 512 bytes = 33.554.432 bytes ou 32 MB.
Por este motivo, o sistema FAT-16 não trabalha com setores, mas sim com
unidades de alocação chamadas clusters, que são conjuntos de setores. Em vez de
cada posição da FAT apontar a um setor, cada posição aponta para um cluster, que
é um conjunto de setores que poderá representar 1, 2, 4 ou mais setores do disco.
[...]
[...]
93
UNIDADE 2 | GERÊNCIA DE PROCESSOS E DISPOSITIVOS
[...]
[...]
[...]
94
TÓPICO 3 | GERENCIAMENTO DE DISPOSITIVOS
[...]
95
RESUMO DO TÓPICO 3
Caro(a) acadêmico(a)! Neste tópico, você estudou os seguintes assuntos:
96
AUTOATIVIDADE
97
98
UNIDADE 3
SISTEMAS DISTRIBUÍDOS
OBJETIVOS DE APRENDIZAGEM
Após o estudo desta unidade você estará apto a:
PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos, sendo que ao final de cada
um deles, você encontrará atividades que auxiliarão na apropriação dos
conhecimentos.
99
100
UNIDADE 3
TÓPICO 1
SISTEMAS DISTRIBUÍDOS
1 INTRODUÇÃO
Antes de começarmos os estudos, precisamos entender o que este termo
significa e algumas das consequências da utilização dos mesmos. Devido a isto,
este tópico tem o objetivo de apresentar os principais conceitos relacionados
aos sistemas distribuídos, suas principais características e também as principais
consequências da sua utilização.
2 SISTEMAS DISTRIBUÍDOS
Sistemas distribuídos são aqueles sistemas que executam operações em diversos
equipamentos que não possuem memória compartilhada e que são percebidos pelos
seus usuários como se estes estivessem executando em apenas um processador.
101
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
102
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
NOTA
103
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
• Compartilhamento de recursos.
• Crescimento incremental.
• Concorrência.
• Escalabilidade.
• Tolerância a falhas.
• Transparência.
• Heterogeneidade.
• Abertura.
• Segurança.
104
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
Em geral, conforme Gross (2008, p. 6), estes recursos possuem algum tipo
de gerenciamento que permite realizar um conjunto de configurações, como:
E
IMPORTANT
A inclusão de novos recursos pode ser realizada sem que esta seja perceptível
pelo usuário.
105
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
3.3 CONCORRÊNCIA
De acordo com Gross (2008, p. 7), “tanto os serviços como os aplicativos
fornecem recursos que podem ser compartilhados pelos clientes em um sistema
distribuído”. Portanto, existe a possibilidade de que vários clientes tentem acessar
um recurso compartilhado ao mesmo tempo. Por exemplo, uma estrutura de dados
que registre lances de um leilão pode ser acessada com muita frequência, quando
o prazo final se aproximar.
E
IMPORTANT
106
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
3.4 ESCALABILIDADE
De acordo com Coulouris, Dollimore e Kindberg (2007, p. 31), sistemas
distribuídos funcionam de forma efetiva e eficaz em muitas escalas diferentes,
variando desde uma pequena intranet até a internet. Um sistema é descrito como
escalável se permanece eficiente quando há um aumento significativo no número de
recursos e no número de usuários. A internet é um exemplo de um sistema distribuído
no qual o número de computadores e serviços vêm aumentando substancialmente.
E
IMPORTANT
NOTA
E
IMPORTANT
108
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
• Aquela que garante que o sistema irá permanecer em um estado seguro, mas
nada diz sobre o seu estado operacional, e por isso é chamada de defeito seguro.
• A segunda forma é aquela que garante que o sistema irá permanecer operacional.
Ainda que o mesmo ingresse, por causa da falha, em um estado inseguro. Esta
abordagem é denominada de tolerância a falhas sem mascaramento.
109
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
3.6 TRANSPARÊNCIA
A transparência é uma característica que permite ao usuário visualizar o
sistema como sendo algo único e não como uma coleção de elementos que são
independentes. A questão da transparência é muito importante para o usuário,
pois permite a ele utilizar o sistema da mesma forma independente do acesso estar
sendo local ou remoto. As operações realizadas pelo usuário são as mesmas para
acessos locais ou remotos (FRIEDRICH, 2002).
E
IMPORTANT
Para o usuário, segundo Ribeiro (2005, p. 33), “deve existir uma única
máquina, com um único sistema operacional, onde ele pode acessar o recurso,
independentemente da máquina na qual está conectado”.
110
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
3.7 HETEROGENEIDADE
De acordo com Coulouris, Dollimore e Kindberg (2007, p. 28), a internet
permite que usuários acessem serviços e executem aplicativos por meio de um
conjunto heterogêneo de computadores e redes. A heterogeneidade se aplica aos
seguintes aspectos:
• redes;
• hardware do computador;
• sistemas operacionais;
• linguagens de programação;
• implementações de diferentes desenvolvedores.
111
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
NOTA
3.8 ABERTURA
Segundo Coulouris, Dollimore e Kindberg (2007, p. 29), “um sistema
computacional é aberto quando ele pode ser estendido e reimplementado de
várias maneiras”. O fato de um sistema distribuído ser ou não um sistema aberto
é determinado principalmente pelo grau com que novos serviços podem ser
adicionados e disponibilizados para uso por uma variedade de programas clientes.
112
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
No início dos anos 80, as especificações dos protocolos de comunicação internet foram
publicadas nessa série, acompanhadas de especificações de aplicativos com eles executados,
como a transferência de arquivos, e-mail e telnet.
Essa prática continua, e forma a base da documentação técnica da internet. Essa série inclui
discussões, assim como as especificações dos protocolos. Dessa forma, com a publicação dos
protocolos internet, permitiu-se a construção de uma variedade de sistemas e aplicativos para
a Internet, incluindo a web.
NOTA
RFCs não são os únicos meios de publicação. O CORBA, por exemplo, é publicado
por intermédio de uma série de documentos técnicos, incluindo uma especificação completa
das interfaces de seus serviços. Caso lhe interesse, acesse o endereço: <www.omg.org>.
113
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
3.9 SEGURANÇA
Muitos recursos de informação que se tornam disponíveis e são mantidos
em sistemas distribuídos têm um alto valor intrínseco para seus usuários.
Portanto, sua segurança é de considerável importância. A segurança de recursos de
informação tem três componentes: confidencialidade (proteção contra exposição
e acesso para pessoas não autorizadas), integridade (proteção contra danos ou
alterações) e disponibilidade (proteção contra interferência com os meios de acesso
aos recursos) (COULOURIS; DOLLIMORE; KINDBERG, 2007).
E
IMPORTANT
E
IMPORTANT
“Um firewall é um computador que fica entre uma rede interna e a internet.
Ele permite o acesso de sites específicos de entrada aos dados internos, mas tenta detectar
tentativas de acesso não autorizado e impedir que ocorram”. (BALTZAN; PHILLIPS, 2012, p. 172).
Ainda segundo Baltzan e Phillips (2012, p. 108, 113 e 333), “um firewall é um hardware e/ou
software que protege uma rede privada por meio da análise das informações que entram e
saem da rede.”
114
TÓPICO 1 | SISTEMAS DISTRIBUÍDOS
DICAS
115
UNIDADE 3 | SISTEMAS DISTRIBUÍDOS
DICAS
116
RESUMO DO TÓPICO 1
117
AUTOATIVIDADE
118
UNIDADE 3
TÓPICO 2
1 INTRODUÇÃO
Sistemas usados no mundo real devem ser especificados, modelados
e projetados para que funcionem corretamente frente a várias circunstâncias
possíveis, e inúmeras dificuldades e ameaças, compartilhando importantes
propriedades subjacentes, dando origem a problemas de projeto comuns. Para
tanto, “as propriedades e problemas comuns de projeto de sistemas distribuídos
devem ser modelados de forma descritiva, sendo que cada modelo destina-se a
fornecer uma descrição simples, abstrata e consistente de aspectos relevantes de
projetos de sistemas distribuídos”. (GROSS, 2008, p. 41).
NOTA
119
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
2 CAMADAS E MÓDULOS
De acordo com Coulouris, Dollimore e Kindberg (2007, p. 40), o termo
“arquitetura de software” originalmente se referia à estruturação do software em camadas
ou módulos em um único computador, e mais recentemente, em termos de serviços
oferecidos e solicitados entre processos localizados em um mesmo computador ou
em computadores diferentes. Essa visão orientada a processos e serviços pode ser
expressa em termos de “camadas de serviço”, conforme figura a seguir.
120
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
NOTA
E
IMPORTANT
121
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
NOTA
3 MODELOS DE ARQUITETURA
“A divisão de responsabilidades entre os componentes de um sistema
(aplicativos, servidores e outros processos) e a atribuição destes nos diversos
computadores de uma rede talvez seja o aspecto mais evidente do projeto de
sistemas distribuídos. Isso tem implicações importantes no desempenho,
na confiabilidade e na segurança do sistema resultante.” (COULOURIS;
DOLLIMORE; KINDBERG, 2007, p. 42 e 43).
NOTA
122
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
123
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
NOTA
124
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
NOTA
125
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
126
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
(...) um tipo de arquitetura onde ocorre uma interação maior entre vários
servidores, e por isso, denominada de arquitetura fortemente acoplada,
é o baseado em cluster. Essa arquitetura é comumente empregada por
serviços web que necessitam oferecer um grande grau de escalabilidade,
como os mecanismos de busca e as lojas online. Um cluster é construído
a partir de várias, às vezes centenas, de unidades de processamento.
De acordo com Dantas (2005, p. 265), “clusters são configurações que podem
ser entendidas como uma agregação de computadores de uma forma dedicada (ou
não) para a execução de aplicações específicas de uma organização”.
NOTA
127
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
FONTE: Adaptado de: COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Distributed systems:
concepts and design. 3. ed. England: Addison Wesley, 2001, p. 36.
NOTA
128
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
DICAS
129
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
130
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
131
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
Acessar serviços significa executar código que pode ativar suas operações.
Alguns serviços são tão padronizados que podemos acessá-los com um aplicativo já
existente e bem conhecido – “a web é o exemplo mais comum disso, mas mesmo nela,
alguns sites usam funcionalidades não disponíveis em navegadores padrão e exigem o
download de código adicional. Esse código adicional pode, por exemplo, se comunicar
com um servidor”. (COULOURIS; DOLLIMORE; KINDBERG, 2007, p. 47).
132
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
NOTA
133
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
NOTA
“Os aglets são objetos Java que podem se mover de um lugar para outro da
internet. Assim sendo, um aglet que está executando em uma determinada máquina pode
interromper a sua execução, enviar-se para outra máquina remota e reassumir sua execução
neste novo local. Quando um aglet se move, ele carrega consigo seu código de programa bem
como o seu estado (dados correntes)”. (GROSS, 2008, p. 56).
“Aglets Workbench é uma plataforma de agentes móveis, desenvolvida em Java 1.1 pela IBM/
Japão. Posteriormente, o código fonte dessa plataforma foi aberto, em uma tentativa de se
obter voluntários, interessados em trabalhar no processo de adaptação desse código para as
versões posteriores do Java”. (GROSS, 2008, p. 56).
134
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
135
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
Clientes fracos, clientes magros ou clientes leves (em inglês, thin clients), se
referem a uma camada de software, em um computador local, que oferece ao usuário
uma interface que se baseia em janelas para que este possa executar programas
aplicativos em um computador remoto (figura anterior). Esta arquitetura, segundo
Coulouris, Dollimore e Kindberg (2007, p. 48), “tem os mesmos baixos custos de
gerenciamento e de hardware que o esquema de computadores em rede, porém,
ao invés de fazer o download do código de aplicativos no computador do usuário,
ela os executa em um servidor de computação – um computador com capacidade
suficiente para executar um grande número de aplicativos simultaneamente”.
Normalmente o servidor de computação é um computador com vários
processadores ou um cluster executando uma versão para multiprocessadores de
um sistema operacional, como o UNIX ou o Windows.
NOTA
136
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
“X-11 é o toolkit e o protocolo padrão para GUI nos sistemas UNIX e assemelhados,
como o Linux. Também existe em versões para outros sistemas operacionais, como, por exemplo,
o Microsoft Windows e o Mac OS. Desenvolvido pelo Instituto de Tecnologia de Massachussets
(MIT) em 1984, foi originalmente chamado simplesmente de X. Como atualmente encontra-se
na versão 11, carrega este número em seu nome”. (GROSS, 2008, p. 58).
137
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
DICAS
138
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
139
UNIDADE 3 |SISTEMAS DISTRIBUÍDOS
E
IMPORTANT
DICAS
140
TÓPICO 2 | ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
141
RESUMO DO TÓPICO 2
142
AUTOATIVIDADE
3 Cite quais são os recursos locais que podem ser vulneráveis a um ataque
de um programa não confiável, cujo download foi feito a partir de um site
remoto, sendo o mesmo executado localmente no computador do usuário.
5 Cite três exemplos de aplicações em que o uso de código móvel seja vantajoso.
143
144
UNIDADE 3
TÓPICO 3
COMUNICAÇÃO EM UM AMBIENTE DE
COMPUTAÇÃO DISTRIBUÍDA
1 INTRODUÇÃO
De acordo com Riccioni (2000, p. 19), “um ambiente de computação
distribuída é mais do que um simples recurso de computação”. Oferece grande
faixa de recursos computacionais para a aplicação, independente da localização
do usuário, do tipo de aplicação ou dos recursos computacionais requeridos. Esses
recursos permitem que as aplicações ofereçam aos usuários melhor desempenho e
uso mais eficiente dos serviços computacionais do sistema.
2 PROTOCOLOS
A API (Application Program Interface – Interface de Programa Aplicativo)
para o protocolo UDP fornece uma abstração de passagem de mensagem, ou seja,
a forma mais simples de comunicação entre processos. “Este protocolo permite que
um processo remetente transmita uma única mensagem para um processo destino.
Os pacotes independentes contendo estas mensagens são chamados de datagramas.
Na API do UNIX, o processo remetente especifica o destino utilizando um socket,
ou seja, uma referência indireta para uma porta específica utilizada pelo processo
de destino da mensagem”. (COULOURIS; DOLLIMORE; KINDBERG, 2007, p. 126).
E
IMPORTANT
“Para que haja a comunicação entre dois processos, um deles deve enviar uma
mensagem ou uma sequência de conteúdos para um destino e o outro processo deve receber
esta mensagem”. (GROSS, 2008, p. 104).
146
TÓPICO 3 | COMUNICAÇÃO EM UM AMBIENTE DE COMPUTAÇÃO DISTRIBUÍDA