Resenha sobre Semáforo Sistemas Operacionais
Autor: Maylson | Publicado: 2012-06-29T10:51:00-07:00


&nbsp;&nbsp;


UNIVERSIDADE ESTADUAL DE GOIÁS

UNIDADE UNIVERSITÁRIA DE POSSE



Semáforo




Quando
se trata do termo semáforo em informática, equivale que o mesmo possui um papel
fundamental de suma importância na sincronização entre processos, no artigo de Pereira[1],
postado no dia 21 de setembro de 2005 &nbsp;&nbsp;ele exemplifica com detalhes seu funcionamento
e faz a seguinte citação:&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; É ai que entram nossos sinalizadores, vulgo
semáforos.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; Com eles, é possível acesso controlado
a processos,&nbsp;de

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; forma que só haverá disponibilidade
quando a operação

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; em andamento for finalizada[...](Pereira, 2005).



Para a confirmação deste,
Tanenbaum[2] nos diz que: “Garante-se que, uma iniciada uma operação
de semáforo, nenhum outro processo pode ter acesso ao semáforo ate que a
operação tenha terminado ou sido bloqueada[...]”. Sendo assim, vale ressaltar o
quanto é a importância do semáforo.

No artigo, Pereira da inicio
dando um exemplo onde ocorre a necessidade da utilização do semáforo, onde que
dois ou mais processos possam está tentando acessar o mesmo recurso, cabendo à
função do semáforo controlar a situação. 

Mas
para a realização desse evento, tem de haver uma comunicação entre os processos
para que o semáforo possa dar a próxima instrução ao processador para que seja
executada, o
compartilhamento dessas threads
pode ser chamado &nbsp;filas de mensagens,
processos ou memoria compartilhada.&nbsp;

No
decorrer do artigo, Pereira enfatiza que o semáforo é o responsável pelo
controle de acesso aos recursos compartilhados, no entanto ele poderia ser mais
esclarecedor em seu texto, dando uma explicação próxima da realidade para que
alguns leigos no assunto possam entender seu artigo com mais clareza.

Um
fato disso, seria um exemplo de uma impressora que só admite cinco impressões
simultâneas, então temos de assegurar que em cada instante existem no máximo
cinco processos a imprimir ficando os outros à espera para imprimir. 

Pereira
também deixa algo importante ao não ser mencionado em seu texto, ele explica
quando um semáforo é utilizado, seu funcionamento e entre outros, mas não fala
nada sobre os problemas que pode vim a acontecer com o semáforo, já que o mesmo
também está sujeitado a ocorrer falhas. &nbsp;

Um
exemplo dessa situação é uma&nbsp;tarefa&nbsp;de
alta prioridade que é obrigada a esperar porque uma tarefa de baixa prioridade
bloqueou um semáforo, se uma tarefa de baixa prioridade bloquear um semáforo,
impede que uma tarefa que verifica o estado desse semáforo seja executada mesmo
sendo de prioridade superior.&nbsp; 

Essas
operações de acesso aos semáforos são geralmente implementadas pelo núcleo do
sistema operacional, na forma de chamadas de sistema, é importante falar que a
execução dessas operações deve ser atômica, ou seja, não devem ocorrer acessos
concorrentes às variáveis internas do semáforo, para evitar condições de
disputa sobre as mesmas.


Visando
o texto Pereira, saliento que ele deveria ter ido mais além em suas explicações
mencionando alguns desses argumentos em seu texto, pois estes servem para da uma
implementação é um entendimento a mais sobre o assunto de semáforo.&nbsp;


Sobre
o artigo apresentado do autor Pereira, recomendo essa obra para todas as pessoas
em especial aos alunos voltados a disciplina de Sistemas Operacionais, com a
leitura da para compreender um pouco a mais sobre semáforos e seus principais conceitos. &nbsp;

Mailson Junior Ferreira da Costa acadêmico do
Curso de Sistemas de Informação da Universidade Universitária Estadual de
Goiás, Unidade de Posse. 







Referencias:

[1] Pereira, JAIRO. WILLIAN.(2005) “Semáforos, Kernel,
Memoria Compartilhada e Cia” Disponível em&nbsp;
&lt;http://www.dicas.com.br/arquivo/semaforos_kernel_memoria_compartilhada_e_cia.php#.T-NbTt3TmVI&gt;.
Acessado em 26 de junho de 2012.

[2] Tanenbaum, Andrew S. Sistemas Operacionais Modernos,
3. ed. São Paulo: Editora Pearson Prentice Hall, 2009. Pag. 77. Paragrafo 2.











&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 





&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;