Upload
internet
View
104
Download
0
Embed Size (px)
Citation preview
CIn.ufpe.br
Sistema de Comunicação CelularControle de usuários e recursos
Disciplina: Especificação de Sistemas Distribuídos
Mestrado em Ciências da ComputaçãoAleciano Jr.
Leonilson [email protected]
Renata [email protected]
CIn.ufpe.br
Agenda• Introdução
– Histórico
• Características do sistema– Antenas– Canais– Células– Sinal– Chamada
• Objetivos do projeto• Dados• Código• Refinamento• Demonstração
CIn.ufpe.br
Histórico
• “Inventado” em 1940 por Hedy Lamarr, atriz e inventora austríaca;
• Objetivo inicial era despistar radares nazistas na época da 2ª guerra mundial.
CIn.ufpe.br
Histórico
• Em 1956 a Ericsson desenvolveu o Ericsson MTA (Mobile Telephony A);
• Mas, a Motorola por meio do Dynatac 8000X, permitiu a primeira ligação no ano de 1973;
• A primeira chamada foi feita pelo pesquisador Martin Cooper em Nova Iorque.
CIn.ufpe.br
Histórico
• No Brasil, a primeira rede foi lançada pela TELERJ em 1990;
• Home somos o 4º maior utilizador de telefonia celular no mundo, perdendo para China, Índia e EUA (segundo a União Internacional de Telecomunicações);
• No mundo, ao final de 2014, segundo a ONU: celulares ~ pessoas
CIn.ufpe.br
Características do sistema
• Antena: emite sinal por meio de radiação eletromagnética;
• Existe uma antena tanto na estação rádio base quanto no celular (interna)!
CIn.ufpe.br
Características do sistema
• Canal: porção de frequência utilizada por um dado usuário de sistema de telecomunicações;
• Canais de TV, Rádio, Internet Sem fio, Celular...
• Cada canal em um sistema celular possuirá partes interessadas nas informações que ali são transmitidas, e para isso, sincronizarão nos mesmos afim de obter o serviço desejado.
CIn.ufpe.br
Características do sistema
CIn.ufpe.br
Características do sistema
• Células: área geográfica coberta por uma dada estação rádio base de telefonia celular;
• O formato hexagonal é didático, na prática seria próximo de um círculo (se a área for plana);
CIn.ufpe.br
Características do sistema
• Tipos de células:
Antena Omnidirecional Antena setorial
• •Setor A
Setor B Setor C
CIn.ufpe.br
Características do sistema
• Área de serviço: região coberta por um conjunto de células.
CIn.ufpe.br
Características do sistema
• Intensidade do sinal: pode ser aceitável, fraca ou inexistente.
CIn.ufpe.br
Características do sistema
• Chamada: usuário ocupando um dos canais de sua célula durante determinado tempo.
CIn.ufpe.br
Objetivos
• Especificar o comportamento de um sistema de comunicação celular no que se refere ao controle de usuários e recursos de canais;
• Modelar operações básicas de controle das estações rádio base e de requisições por parte dos celulares.
CIn.ufpe.br
Dados
• Número de células: 12• Número de celulares: 20• Canais disponíveis por célula: 4• Máximo de celulares por célula: 8
É possível ter um número de entidades maior que essas, mas para fins de simplificação dos testes no ProBE e FDR, o número foi reduzido.
CIn.ufpe.br
Dados
• Operações suportadas:
• Celular ingressar em uma dada célula;• Celular em modo de ligação;• Celular encerrar ligação em andamento;• Troca de canal devido a falha no sinal;• Terminação forçada devido a indisponibilidade de canais
com qualidade aceitável;• Celular sair de uma determinada célula.
CIn.ufpe.br
Dados
• Considerações em relação a um sistema real:
• Operações de handoff, paging, roaming apesar de interessantes, não estavam no escopo original;
• Agrupamento por cluster (reutilização de frequência em células adjacentes) necessitaria de uma camada de complexidade a mais para incluir questões de localização espacial;
• Uso de dois canais durante uma ligação (uplink e downlink). Como os canais são utilizados e liberados em pares, decidimos simplificar e considerar como um recurso único.
CIn.ufpe.br
Trechos do código - declarações
• CELULAS = {1..12} -- nº de células (torres)
• IDS = {1..20} -- identificadores de cada celular (usuário)
• LIMITE_USUARIOS = 8 -- por torre
• LIMITE_CANAIS = 4 -- por torre
• DADOS = < > -- matriz (unidimensional) de dados
• CONJ_CANAIS = {1..LIMITE_CANAIS} -- nº de canais
CIn.ufpe.br
Trechos do código - declarações
• A matriz começa vazia e vai sendo atualizada.
– Exemplo: usuário de ID 15 entra na torre, a matriz fica <<0,15,0>>
– Exemplo: usuário de ID 1 entra na torre, a matriz fica <<0,15,0>,<0,1,0>>
• Novos usuários precisam que a torre tenha espaço livre para entrada de
usuários.
• O usuário pode estar ocupando um slot mas não estar ligando.
• Quando usuário liga a matriz fica:
– Exemplo: usuário de ID 1 faz ligação, a matriz fica <<0,15,0>,<1,1,nº do canal>>
– O primeiro “1” indica ligação, o terceiro número da sequência é o canal em uso (Se
houver).
CIn.ufpe.br
Trechos do código - canais
• Interface = {|entrarNaCelula, respostaSolicitacao,
entradaUsuario, realizarLigacao, informaCanalLigacao,
encerrarLigacao, saidaUsuario, novoCanal |}
• Hidden = {| semEspacoNaRede, usuarioConversa,
semCanaisDisponiveis, ofereceDesligar, ofereceSaida|}
CIn.ufpe.br
Trechos do código - principal
• CELS_REF = ||| i:IDS @ CELULAR_REF(i, 0, 0, 0)
• TORRES_REF = ||| t:CELULAS @ TORRE_REF(DADOS,
<1..LIMITE_CANAIS>, t)
• SISTEMA_REF = TORRES_REF [| Interface |]
CELS_REF \Hidden
CIn.ufpe.br
Refinamento
• Este refinamento é muito simples: tomamos algumas das escolhas internas presentes na especificação original e as alteramos para escolha interna na implementação.
• Tem-se nesse caso:
CIn.ufpe.br
RefinamentoProcesso CELULAR
CELULAR(id, rede, ligando, canal) = if (rede==0)
then(entrarNaCelula?t -> respostaSolicitacao?resposta -> if (resposta == true)
then (entradaUsuario!id -> CELULAR(id, t, ligando, canal))
else semEspacoNaRede -> CELULAR(id, rede, ligando, canal))else
((realizarLigacao!id -> respostaSolicitacao?resposta -> if (resposta == true)
then (informaCanalLigacao?c-> usuarioConversa -> CELULAR(id, rede, 1, c))
else semCanaisDisponiveis -> CELULAR(id, rede, ligando, canal))
[] (encerrarLigacao!id -> respostaSolicitacao?resposta -> CELULAR(id, rede, 0, 0))
[] (saidaUsuario!id -> respostaSolicitacao?resposta -> CELULAR(id, 0, 0, 0) )
|~| (novoCanal!id?c -> CELULAR(id, rede, ligando, c))
)
CIn.ufpe.br
RefinamentoCELULAR Refinado
CELULAR_REF(id, rede, ligando, canal) = if (rede==0)
then(entrarNaCelula?t -> respostaSolicitacao?resposta -> if (resposta == true)
then (entradaUsuario!id -> CELULAR(id, t, ligando, canal))
else semEspacoNaRede -> CELULAR(id, rede, ligando, canal))
else ((realizarLigacao!id -> respostaSolicitacao?resposta -> if (resposta == true)
then (informaCanalLigacao?c-> usuarioConversa -> CELULAR(id, rede, 1, c))
else semCanaisDisponiveis -> CELULAR(id, rede, ligando, canal))
[] (encerrarLigacao!id -> respostaSolicitacao?resposta -> CELULAR(id, rede, 0, 0))
[] (saidaUsuario!id -> respostaSolicitacao?resposta -> CELULAR(id, 0, 0, 0) )
[] (novoCanal!id?c -> CELULAR(id, rede, ligando, c))
)
CIn.ufpe.br
RefinamentoProcesso TORRE (trecho com escolha interna)
TORRE(dados, canais,t) = ( (entrarNaCelula!t -> if(verificaCapacidade(dados)==true)
then respostaSolicitacao!true -> entradaUsuario?i -> TORRE(dados^<<0,i,0>>, canais, t)
else respostaSolicitacao!false -> TORRE(dados, canais, t) )
[]( realizarLigacao?i:idsValidosOciosos(dados) ->
( (if(#canais>0)
then respostaSolicitacao!true -> informaCanalLigacao?c:funcao(canais) -> TORRE(alocaCanal(dados,i,head(canais)), tail(canais),t)
|~| sinalInsuficiente -> respostaSolicitacao!false -> TORRE(dados, canais, t)
else respostaSolicitacao!false -> TORRE(dados, canais, t) ) ) )
CIn.ufpe.br
RefinamentoTORRE Refinada (trecho com escolha externa)
TORRE_REF(dados, canais,t) = ( (entrarNaCelula!t -> if(verificaCapacidade(dados)==true)
then respostaSolicitacao!true -> entradaUsuario?i -> TORRE_REF(dados^<<0,i,0>>, canais, t)
else respostaSolicitacao!false -> TORRE_REF(dados, canais, t) )
[]
( realizarLigacao?i:idsValidosOciosos(dados) -> ( (if(#canais>0)
then respostaSolicitacao!true -> informaCanalLigacao?c:funcao(canais) -> TORRE_REF(alocaCanal(dados,i,head(canais)), tail(canais),t)
[] sinalInsuficiente -> respostaSolicitacao!false -> TORRE_REF(dados, canais, t)
else respostaSolicitacao!false -> TORRE_REF(dados, canais, t) )
) )
CIn.ufpe.br
RefinamentoOBS.:
Com os valores e implementações normais não conseguimos observar o refinamento da TORRE, isto é devido a complexidade da simulação, apenas no celular foi possível checar com sucesso o refinamento. Para isso, na TORRE checamos o refinamento em cada trecho do código, comentando outras partes. Ao final, todos os trechos foram verificados e o refinamento foi confirmado.
Unindo os dois códigos e realizando a mesma abordagem acima, pudemos refinar o sistema por completo.
CIn.ufpe.br
Refinamento
CIn.ufpe.br
RefinamentoTestando no ProBE
CIn.ufpe.br
RefinamentoTestando no ProBE
• Observamos que para cada requisição por parte do celular vai haver uma reposta da torre seguida da ação desejada.
• Note que mesmo realizando algumas operações em uma torre, todas vão estar disponíveis para executar suas respectivas ações (inclusive a torre que está recebendo um celular).
• Em seguida podemos realizar uma ligação ou sair do torre que o celular está conectado.
CIn.ufpe.br
RefinamentoTestando no ProBE
• Antes de permitir a ligação a torre informa o canal que será utilizado.
• A torre aceitando, o celular faz a ligação e conversa. Esta ação é interna ao celular e aparece como “tau” no ProBe.
• Em seguida a torre pode perceber uma interferência no sinal e tentar realocar o canal em uso.Se não achar canal, a ligação é encerrada.
• Essas dentre outras ações vão ocorrer durante a execução do código.