TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

SEMÁFOROS NO LINUX E WINDOWS .

Por:   •  24/10/2017  •  Trabalho acadêmico  •  856 Palavras (4 Páginas)  •  972 Visualizações

Página 1 de 4

SEMÁFOROS NO LINUX E WINDOWS

1. INTRODUÇÃO

        Semáforo é uma variável especial protegida (ou tipo abstrato de dados) que tem como função o controle de acesso a recursos compartilhados (por exemplo, um espaço de armazenamento) num ambiente multitarefa. A invenção desse tipo de variável é atribuída a Edsger Dijkstra, em 1965 e foi utilizado inicialmente no sistema operacional THEOS.

        O valor de um semáforo indica quantos processos (ou threads) podem ter acesso a um recurso compartilhado. As principais operações sobre Semáforos são:

→ Inicialização: Recebe um valor inteiro indicando a quantidade de processos que podem acessar um determinado recurso.

→ Operação wait ou P: Descrementa o valor do semáforo. Se o semáforo está com valor zero, o processo é posto para dormir.

→ Operaçõa signal ou V: Se o semáforo estiver com valor zero e existir algum processo adormecido, um processo será acordado. Caso contrário, o valor do semáforo é incrementado.

        No trabalho original, Dijkstra utilizou as letras P e V para denominar as operações, advindas dos verbos holandeses proberen (testar) e verhogen (incrementar). Em textos sobre computação, essas operações são denominadas por down e up, respectivamente.

2. TRABALHOS RELACIONADOS

Estudo da Estrutura do Sistema Operacional Linux – UFF (http://www.midiacom.uff.br/~natalia/2012-1-sisop/tgrupo3.pdf).

3. COMPARAÇÕES

        Existem duas APIs utilizados nos sistemas que utilizam Kernel Linux, sendo eles XSI IPC, API tradicional, inspirada na API do System V, e a POSIX IPC.

        A XSI IPC utiliza-se de namespace independente e utilitários específicos, é amplamente disponível e é utilizada em aplicações clássicas, como no servidor X11, que ainda não tem um substituto adequadamente pronto para tomar seu posto.

        A POSIX IPC é sugerido para novas aplicações, se utiliza de namespace e utilitários do sistema de arquivos mas. Passou a estar disponível a partir do Kernel 2.6.

        A sincronização do Kernel requer uma estrutura que permita que as tarefas do kernel sejam executadas sem violar a integridade dos dados compartilhados. O Linux fornece spinlock e semáforos (bem como versões de leitor e gravador) para fechamento do kernel. O spinlock é usado para períodos curtos. Para as máquinas com um único processador é usada a habilitação e desabilitação de preempção do kernel. O kernel não é suscetível a sofrer com preempção se estiver um lock. Cada tarefa do sistema tem uma estrutura thread-info que inclui o campo preempt_count que é o contador indicando o número de locks sendo mantidos pela tarefa. Se for maior que zero não é seguro fazer preempção e se for igual o kernel pode ser interrompido tendo em vista que não existe chamadas pendentes para preempt_disable(). Os semáforos são utilizados quando um lock for mantido por longos períodos.

        Os semáforos do Windows são variáveis de contagem que permitem que um número limitado de threads/processos acesse um recurso compartilhado. No Windows, quando é utilizado wait, o valor limite pode ser especificado para objetos de semáforo, o que não é previsto no Linux.

Limite de semáforos no Kernel Linux 4.4.46 (Figura 1).

[pic 1]

Detalhamento do comando ipcs -l no Linux:

---- Limites de mensagens -----

número máximo geral de filas no sistema: 32000

tamanho máximo da mensagem (bytes) = 65536

tamanho máximo padrão da fila (bytes) = 65536

- Limites da memória compartilhada -

Número máximo de segmentos = 4096

Tamanho máximo de segmentos (kbytes) = 18014398509481983

total máximo de memória compartilhada (kbytes) = 18014398509480960

Tamanho mínimo de segmentos (bytes) = 1

------ Limites de semáforo ------

número máximo de vetores: 32000

máximo de semáforos por vetor: 32000

máximo geral de semáforos do sistema: 1024000000

máximo de ops por chamada semop: 500

valor máximo de semáforo: 32767

Obs.: Não encontrei comando similar para visualização dos dados para MS Windows.

...

Baixar como (para membros premium)  txt (5.8 Kb)   pdf (312.9 Kb)   docx (1.1 Mb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com