SlideShare una empresa de Scribd logo
1 de 21
MATÉRIA: SISTEMA OPERACIONAL (S.O)
PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM
COMPUTAÇÃO
COMUNICAÇÂO DE PROCESSOS
 A comunicação entre processos ou comunicação
inter - processo (IPC ou Inter Process
Communication) é uma situação comum dentro dos
sistemas computacionais que ocorre quando dois
ou mais processos precisam se comunicar, isto é,
quando os processos devem compartilhar ou trocar
dados entre si.
 A comunicação entre processos pode ocorrer em
várias situações diferentes tais como:
 redirecionamento da saída (dos resultados) de um
comando para outro,
 envio de arquivos para impressão,
 transmissão de dados através da rede,
 transferência de dados entre periféricos, etc.
 Tal comunicação se dá, geralmente, através da
utilização de recursos comuns aos processos
envolvidos na própria comunicação. Como não é
razoável que tal comunicação envolva mecanismos
de interrupção devido a sua complexidade e
limitações de performance, as interrupções são
reservadas para a administração do sistema em si.
Para a comunicação inter - processo é necessário
algum mecanismo bem estruturado.
 Veremos alguns mecanismos possíveis para a
comunicação de processos destacando-se:
 Buffers
 Semáforos
 Memória Compartilhada
BUFFERS E OPERAÇÕES DE SLEEP E WAKEUP
 Um problema típico é o do produtor-consumidor, onde
dois processos distintos compartilham um buffer, uma
área de dados de tamanho fixo que se comporta como
um reservatório temporário [DEI92, p. 90] [TAN92, p.39].
 O processo produtor coloca informações no buffer
enquanto o processo consumidor as retira de lá. Se o
produtor e o consumidor são processos sequenciais, a
solução do problema é simples, mas caso sejam
processos paralelos passa a existir uma situação de
concorrência.
 Mesmo nos casos onde existam múltiplos produtores
ou múltiplos consumidores o problema encontrado é
basicamente o mesmo. Este é um problema clássico de
comunicação inter - processo, tais como os problemas
do jantar dos filósofos e do barbeiro dorminhoco
discutidos em detalhes por Tanenbaum [TAN92, p. 56].
 Programas que desejam imprimir podem colocar suas
entradas (nomes dos arquivos a serem impressos ou
os arquivos de impressão propriamente ditos) em
uma área de spooling, denominada de printer spool.
 Um outro processo (tipicamente um daemon de
impressão) verifica continuamente a entrada de
entradas no spool, direcionando-as para uma ou mais
impressoras existentes quando estas se tornam
ociosas, com isto retirando as entradas da área de
spool.
 É claro que a área reservada para o spool é finita e
que as velocidades dos diversos produtores
(programas que desejam imprimir) pode ser
substancialmente diferente das velocidades dos
consumidores (das diferentes impressoras instaladas
no sistema).
 A mesma situação pode ocorrer quando diversos
processos utilizam uma placa de rede para efetuar
a transmissão de dados para outros computadores.
Os processos são os produtores, enquanto o
hardware da placa e seu código representam o
consumidor.
 Em função do tipo de rede e do tráfego, temos uma
forte limitação na forma que a placa consegue
consumir (transmitir) os dados produzidos pelos
programas e colocados no buffer de transmissão.
 Existem outras situações semelhantes, o que torna
este problema um clássico dentro do estudo dos
sistemas operacionais. Na Figura 2.18 temos um
esquema do problema produtor-consumidor.
 Tanto o buffer como a variável que controla a
quantidade de dados que o buffer contém são
regiões críticas, portanto deveriam ter seu acesso
limitado através de primitivas de exclusão mútua,
desde que isto não impusesse esperas
demasiadamente longas aos processos envolvidos.
 Dado que o buffer tem um tamanho limitado e fixo
podem ocorrer problemas tais como:
 • o produtor não pode colocar nova informações no
buffer porque ele já está cheio; ou
 • o consumidor não pode retirar informações do
buffer porque ele está vazio.
 Figura 2.18: Problema do produtor-consumidor
 Nestes casos tanto o produtor como o consumidor
poderiam ser adormecidos, isto é, ter sua execução
suspensa, até que existisse espaço no buffer para
que o produtor coloque novos dados ou existam
dados no buffer para o consumidor possa retirá-los.
Uma tentativa de solução deste problema utilizando
as primitivas sleep (semelhante a uma operação
suspend) e wakeup (semelhante a uma operação
resume) pode ser vista no Exemplo 2.9.
 A solução dada é considerada parcial pois pode
ocorrer que um sinal de wakeup seja enviado a um
processo que não esteja logicamente adormecido,
conduzindo os dois processos a um estado de
suspensão que permanecerá indefinidamente.
THREADS
 Como vimos, cada processo conta com uma estrutura de
controle razoavelmente sofisticada. Nos casos onde se
deseja realizar duas ou mais tarefas simultaneamente, o
solução trivial a disposição do programador é dividir as
tarefas a serem realizadas em dois ou mais processos.
 Isto implica na criação de manutenção de duas estruturas
de controle distintas para tais processos, onerando o
sistema, e complicando também o compartilhamento de
recursos, dados serem processos distintos.
 Uma alternativa ao uso de processos comuns é o
emprego de threads. Enquanto cada processo tem um
único fluxo de execução, ou seja, só recebe a atenção do
processador de forma individual, quando um processo é
divido em threads, cada uma das threads componentes
recebe a atenção do processador como um processo
comum.
 No entanto, só existe uma estrutura de controle de
processo para tal grupo, o espaço de memória é o
mesmo e todos os recursos associados ao
processo podem ser compartilhados de maneira
bastante mais simples entre as suas threads
componentes.
 Segundo Tanebaum, “as threads foram inventadas
para permitir a combinação de paralelismo com
execução sequencial e chamadas de sistema
bloqueastes” [TAN92, p. 509]. Na Figura 2.19
representamos os fluxos de execução de um
processo comum e de outro, divido em threads.
Figura 2.19: Processos e threads
 Desta forma, as threads podem ser entendidas
como fluxos independentes de execução
pertencentes a um mesmo processo, que requerem
menos recursos de controle por parte do sistema
operacional.
 Assim, as threads são o que consideramos
processos leves (lightweight processes) e
constituem uma unidade básica de utilização do
processador [TAN92, p. 508] [SGG01, p. 82].
 Sistemas computacionais que oferecem suporte
para as threads são usualmente conhecidos como
sistemas multithreading. Como ilustrado na Figura
2.20, os sistemas multithreading podem suportar as
threads segundo dois modelos diferentes:
 User threads
 As threads de usuário são aquelas oferecidas
através de bibliotecas específicas e adicionais ao
sistema operacional, ou seja, são implementadas
acima do kernel (núcleo do sistema) utilizando um
modelo de controle que pode ser distinto do
sistema operacional, pois não são nativas neste
sistema.
 Kernel threads
 As threads do sistema são aquelas suportadas
diretamente pelo sistema operacional e, portanto,
nativas.
Figura 2.20: Threads de usuário e de kernel
 Em sistemas não dotados de suporte a threads
nativamente, o uso de bibliotecas de extensão permite a
utilização de pseudo-threads. Exemplos de bibliotecas
de suporte threads de usuário são o PThreads do
POSIX ou o C-threads do sistema operacional Mach.
 Através de tais biblioteca são oferecidos todos os
recursos necessários para a criação e controle das
threads. Usualmente os mecanismos de criação de
threads de usuário são bastante rápidos e simples, mas
existe uma desvantagem: quando uma thread é
bloqueada (por exemplo, devido ao uso de recursos de
I/O), as demais threads frequentemente também são
devido ao suporte não nativo.
 Quando o suporte é nativo, a criação das threads é
usualmente mais demorada, mas não ocorrem os
inconveniente decorrentes do bloqueio de uma ou mais
threads em relação às demais.
MODELOS DE MULTITHREADING
 A forma com que as threads são disponibilizadas
para os usuários é o que denominamos modelos
de multithreading. Como mostra a Figura 2.21, são
comuns três modelos distintos:
 Modelo n para um.
 Este modelo é empregado geralmente pelas
bibliotecas de suporte de threads de usuário, onde
as várias threads do usuário (n) são associadas a
um único processo suportado diretamente pelo
sistema operacional.
 Modelo um para um.
 Modelo simplificado de multithreading verdadeiro,
onde cada threads do usuário é associada a uma
thread nativa do sistema. Este modelo é
empregado em sistemas operacionais tais como o
MS-Windows NT/2000 e no IBM OS/2.
 Modelo n para m.
 Modelo mais sofisticado de multithreading
verdadeiro, onde um conjunto de threads do
usuário n é associado a um conjunto de threads
nativas do sistema, não necessariamente do
mesmo tamanho (m). Este modelo é empregado
em sistemas operacionais tais como o Sun Solaris,
Irix e Digital UNIX.
Figura 2.21: Modelos de multithreading

Más contenido relacionado

La actualidad más candente

Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisCharles Fortes
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Sistemas operacionais introdução
Sistemas operacionais introduçãoSistemas operacionais introdução
Sistemas operacionais introduçãoCarlos Melo
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisMauro Duarte
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processosCarlos Melo
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicosComputação Depressão
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosWellington Oliveira
 

La actualidad más candente (19)

Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Sistemas operacionais introdução
Sistemas operacionais introduçãoSistemas operacionais introdução
Sistemas operacionais introdução
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processos
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
SO - Aula 05 - Concorrencia
SO - Aula 05 - ConcorrenciaSO - Aula 05 - Concorrencia
SO - Aula 05 - Concorrencia
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Memória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e AlgoritmosMemória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e Algoritmos
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais Modernos
 

Destacado (17)

Opportunity Youth in Lorain County
Opportunity Youth in Lorain CountyOpportunity Youth in Lorain County
Opportunity Youth in Lorain County
 
Meu primeiro beijo (1)
Meu primeiro beijo (1)Meu primeiro beijo (1)
Meu primeiro beijo (1)
 
Nelly aguilar 1_nivelcontabilidad_a[1]
Nelly aguilar 1_nivelcontabilidad_a[1]Nelly aguilar 1_nivelcontabilidad_a[1]
Nelly aguilar 1_nivelcontabilidad_a[1]
 
Juan manuel santos presentacion
Juan manuel santos presentacionJuan manuel santos presentacion
Juan manuel santos presentacion
 
8 пожилых moscow university
8 пожилых moscow university8 пожилых moscow university
8 пожилых moscow university
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
El docente en la sociedad actual
El docente en la sociedad actualEl docente en la sociedad actual
El docente en la sociedad actual
 
12 coach o sofista.abril2007
12 coach o sofista.abril200712 coach o sofista.abril2007
12 coach o sofista.abril2007
 
Insight_Aug_2016
Insight_Aug_2016Insight_Aug_2016
Insight_Aug_2016
 
Avestruz (1)
Avestruz (1)Avestruz (1)
Avestruz (1)
 
Simbolos patrios
Simbolos patriosSimbolos patrios
Simbolos patrios
 
Trabajo catedra final
Trabajo catedra finalTrabajo catedra final
Trabajo catedra final
 
Bonian Products Product info
Bonian Products Product infoBonian Products Product info
Bonian Products Product info
 
Everything is Media
Everything is MediaEverything is Media
Everything is Media
 
Respostas do roteiro de a cidade e as serras
Respostas do roteiro de a cidade e as serrasRespostas do roteiro de a cidade e as serras
Respostas do roteiro de a cidade e as serras
 
Energy LL - ENoLL
Energy LL - ENoLL Energy LL - ENoLL
Energy LL - ENoLL
 
The SUBMARINER Roadmap
The SUBMARINER RoadmapThe SUBMARINER Roadmap
The SUBMARINER Roadmap
 

Similar a S.o aula 1920

Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxcassamo2
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Apostila computacao
Apostila computacaoApostila computacao
Apostila computacaowebphotoshop
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Classificação – sistemas operativos
Classificação – sistemas operativosClassificação – sistemas operativos
Classificação – sistemas operativosTROLITO LALALAL
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisRonildo Oliveira
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...rafaelov
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Sistema Computacao Revisao 1
Sistema Computacao Revisao 1Sistema Computacao Revisao 1
Sistema Computacao Revisao 1Duílio Andrade
 

Similar a S.o aula 1920 (20)

S.o aula 9101112
S.o aula 9101112S.o aula 9101112
S.o aula 9101112
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Apostila computacao
Apostila computacaoApostila computacao
Apostila computacao
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
S.o aula 5678
S.o aula 5678S.o aula 5678
S.o aula 5678
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
Classificação – sistemas operativos
Classificação – sistemas operativosClassificação – sistemas operativos
Classificação – sistemas operativos
 
Arquitetura paralela
Arquitetura paralelaArquitetura paralela
Arquitetura paralela
 
Sistema
SistemaSistema
Sistema
 
SlackWare - Leonel
SlackWare - LeonelSlackWare - Leonel
SlackWare - Leonel
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionais
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Sistema Computacao Revisao 1
Sistema Computacao Revisao 1Sistema Computacao Revisao 1
Sistema Computacao Revisao 1
 

Más de Armando Rivarola (20)

I.h aula 6 7 8 9 10 11 12
I.h aula 6 7 8 9 10 11 12I.h aula 6 7 8 9 10 11 12
I.h aula 6 7 8 9 10 11 12
 
I.h aula 1 2 3 4 5
I.h aula 1 2 3 4 5I.h aula 1 2 3 4 5
I.h aula 1 2 3 4 5
 
S.o aula 3334
S.o aula 3334S.o aula 3334
S.o aula 3334
 
S.o aula 3132
S.o aula 3132S.o aula 3132
S.o aula 3132
 
S.o aula 2930
S.o aula 2930S.o aula 2930
S.o aula 2930
 
Aula so 1a
Aula so 1aAula so 1a
Aula so 1a
 
S.o aula 2728
S.o aula 2728S.o aula 2728
S.o aula 2728
 
S.o aula 2526
S.o aula 2526S.o aula 2526
S.o aula 2526
 
S.o aula 2324
S.o aula 2324S.o aula 2324
S.o aula 2324
 
S.o aula 2122
S.o aula 2122S.o aula 2122
S.o aula 2122
 
S.o aula 1718
S.o aula 1718S.o aula 1718
S.o aula 1718
 
Calc
CalcCalc
Calc
 
Apostila de broffice writer
Apostila de broffice writerApostila de broffice writer
Apostila de broffice writer
 
S.o aula 1516
S.o aula 1516S.o aula 1516
S.o aula 1516
 
S.o aula 121314
S.o aula 121314S.o aula 121314
S.o aula 121314
 
Comunicação de dados!
Comunicação de dados!Comunicação de dados!
Comunicação de dados!
 
S.o aula 1234
S.o aula 1234S.o aula 1234
S.o aula 1234
 
Apostila excel básico
Apostila excel básicoApostila excel básico
Apostila excel básico
 
Exercicios WEB D.
Exercicios WEB D.Exercicios WEB D.
Exercicios WEB D.
 
Conceitos de sistema de informação
Conceitos de sistema de informaçãoConceitos de sistema de informação
Conceitos de sistema de informação
 

Último

Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 

Último (20)

Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 

S.o aula 1920

  • 1. MATÉRIA: SISTEMA OPERACIONAL (S.O) PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM COMPUTAÇÃO
  • 2. COMUNICAÇÂO DE PROCESSOS  A comunicação entre processos ou comunicação inter - processo (IPC ou Inter Process Communication) é uma situação comum dentro dos sistemas computacionais que ocorre quando dois ou mais processos precisam se comunicar, isto é, quando os processos devem compartilhar ou trocar dados entre si.
  • 3.  A comunicação entre processos pode ocorrer em várias situações diferentes tais como:  redirecionamento da saída (dos resultados) de um comando para outro,  envio de arquivos para impressão,  transmissão de dados através da rede,  transferência de dados entre periféricos, etc.
  • 4.  Tal comunicação se dá, geralmente, através da utilização de recursos comuns aos processos envolvidos na própria comunicação. Como não é razoável que tal comunicação envolva mecanismos de interrupção devido a sua complexidade e limitações de performance, as interrupções são reservadas para a administração do sistema em si. Para a comunicação inter - processo é necessário algum mecanismo bem estruturado.
  • 5.  Veremos alguns mecanismos possíveis para a comunicação de processos destacando-se:  Buffers  Semáforos  Memória Compartilhada
  • 6. BUFFERS E OPERAÇÕES DE SLEEP E WAKEUP  Um problema típico é o do produtor-consumidor, onde dois processos distintos compartilham um buffer, uma área de dados de tamanho fixo que se comporta como um reservatório temporário [DEI92, p. 90] [TAN92, p.39].  O processo produtor coloca informações no buffer enquanto o processo consumidor as retira de lá. Se o produtor e o consumidor são processos sequenciais, a solução do problema é simples, mas caso sejam processos paralelos passa a existir uma situação de concorrência.  Mesmo nos casos onde existam múltiplos produtores ou múltiplos consumidores o problema encontrado é basicamente o mesmo. Este é um problema clássico de comunicação inter - processo, tais como os problemas do jantar dos filósofos e do barbeiro dorminhoco discutidos em detalhes por Tanenbaum [TAN92, p. 56].
  • 7.  Programas que desejam imprimir podem colocar suas entradas (nomes dos arquivos a serem impressos ou os arquivos de impressão propriamente ditos) em uma área de spooling, denominada de printer spool.  Um outro processo (tipicamente um daemon de impressão) verifica continuamente a entrada de entradas no spool, direcionando-as para uma ou mais impressoras existentes quando estas se tornam ociosas, com isto retirando as entradas da área de spool.  É claro que a área reservada para o spool é finita e que as velocidades dos diversos produtores (programas que desejam imprimir) pode ser substancialmente diferente das velocidades dos consumidores (das diferentes impressoras instaladas no sistema).
  • 8.  A mesma situação pode ocorrer quando diversos processos utilizam uma placa de rede para efetuar a transmissão de dados para outros computadores. Os processos são os produtores, enquanto o hardware da placa e seu código representam o consumidor.  Em função do tipo de rede e do tráfego, temos uma forte limitação na forma que a placa consegue consumir (transmitir) os dados produzidos pelos programas e colocados no buffer de transmissão.  Existem outras situações semelhantes, o que torna este problema um clássico dentro do estudo dos sistemas operacionais. Na Figura 2.18 temos um esquema do problema produtor-consumidor.
  • 9.  Tanto o buffer como a variável que controla a quantidade de dados que o buffer contém são regiões críticas, portanto deveriam ter seu acesso limitado através de primitivas de exclusão mútua, desde que isto não impusesse esperas demasiadamente longas aos processos envolvidos.  Dado que o buffer tem um tamanho limitado e fixo podem ocorrer problemas tais como:  • o produtor não pode colocar nova informações no buffer porque ele já está cheio; ou  • o consumidor não pode retirar informações do buffer porque ele está vazio.
  • 10.  Figura 2.18: Problema do produtor-consumidor
  • 11.  Nestes casos tanto o produtor como o consumidor poderiam ser adormecidos, isto é, ter sua execução suspensa, até que existisse espaço no buffer para que o produtor coloque novos dados ou existam dados no buffer para o consumidor possa retirá-los. Uma tentativa de solução deste problema utilizando as primitivas sleep (semelhante a uma operação suspend) e wakeup (semelhante a uma operação resume) pode ser vista no Exemplo 2.9.  A solução dada é considerada parcial pois pode ocorrer que um sinal de wakeup seja enviado a um processo que não esteja logicamente adormecido, conduzindo os dois processos a um estado de suspensão que permanecerá indefinidamente.
  • 12. THREADS  Como vimos, cada processo conta com uma estrutura de controle razoavelmente sofisticada. Nos casos onde se deseja realizar duas ou mais tarefas simultaneamente, o solução trivial a disposição do programador é dividir as tarefas a serem realizadas em dois ou mais processos.  Isto implica na criação de manutenção de duas estruturas de controle distintas para tais processos, onerando o sistema, e complicando também o compartilhamento de recursos, dados serem processos distintos.  Uma alternativa ao uso de processos comuns é o emprego de threads. Enquanto cada processo tem um único fluxo de execução, ou seja, só recebe a atenção do processador de forma individual, quando um processo é divido em threads, cada uma das threads componentes recebe a atenção do processador como um processo comum.
  • 13.  No entanto, só existe uma estrutura de controle de processo para tal grupo, o espaço de memória é o mesmo e todos os recursos associados ao processo podem ser compartilhados de maneira bastante mais simples entre as suas threads componentes.  Segundo Tanebaum, “as threads foram inventadas para permitir a combinação de paralelismo com execução sequencial e chamadas de sistema bloqueastes” [TAN92, p. 509]. Na Figura 2.19 representamos os fluxos de execução de um processo comum e de outro, divido em threads.
  • 15.  Desta forma, as threads podem ser entendidas como fluxos independentes de execução pertencentes a um mesmo processo, que requerem menos recursos de controle por parte do sistema operacional.  Assim, as threads são o que consideramos processos leves (lightweight processes) e constituem uma unidade básica de utilização do processador [TAN92, p. 508] [SGG01, p. 82].  Sistemas computacionais que oferecem suporte para as threads são usualmente conhecidos como sistemas multithreading. Como ilustrado na Figura 2.20, os sistemas multithreading podem suportar as threads segundo dois modelos diferentes:
  • 16.  User threads  As threads de usuário são aquelas oferecidas através de bibliotecas específicas e adicionais ao sistema operacional, ou seja, são implementadas acima do kernel (núcleo do sistema) utilizando um modelo de controle que pode ser distinto do sistema operacional, pois não são nativas neste sistema.  Kernel threads  As threads do sistema são aquelas suportadas diretamente pelo sistema operacional e, portanto, nativas.
  • 17. Figura 2.20: Threads de usuário e de kernel
  • 18.  Em sistemas não dotados de suporte a threads nativamente, o uso de bibliotecas de extensão permite a utilização de pseudo-threads. Exemplos de bibliotecas de suporte threads de usuário são o PThreads do POSIX ou o C-threads do sistema operacional Mach.  Através de tais biblioteca são oferecidos todos os recursos necessários para a criação e controle das threads. Usualmente os mecanismos de criação de threads de usuário são bastante rápidos e simples, mas existe uma desvantagem: quando uma thread é bloqueada (por exemplo, devido ao uso de recursos de I/O), as demais threads frequentemente também são devido ao suporte não nativo.  Quando o suporte é nativo, a criação das threads é usualmente mais demorada, mas não ocorrem os inconveniente decorrentes do bloqueio de uma ou mais threads em relação às demais.
  • 19. MODELOS DE MULTITHREADING  A forma com que as threads são disponibilizadas para os usuários é o que denominamos modelos de multithreading. Como mostra a Figura 2.21, são comuns três modelos distintos:  Modelo n para um.  Este modelo é empregado geralmente pelas bibliotecas de suporte de threads de usuário, onde as várias threads do usuário (n) são associadas a um único processo suportado diretamente pelo sistema operacional.
  • 20.  Modelo um para um.  Modelo simplificado de multithreading verdadeiro, onde cada threads do usuário é associada a uma thread nativa do sistema. Este modelo é empregado em sistemas operacionais tais como o MS-Windows NT/2000 e no IBM OS/2.  Modelo n para m.  Modelo mais sofisticado de multithreading verdadeiro, onde um conjunto de threads do usuário n é associado a um conjunto de threads nativas do sistema, não necessariamente do mesmo tamanho (m). Este modelo é empregado em sistemas operacionais tais como o Sun Solaris, Irix e Digital UNIX.
  • 21. Figura 2.21: Modelos de multithreading