コード例 #1
0
    def __init__(self, pecaA, pecaB):

        # Relógio de simulação - variável que contém o valor do tempo em cada instante
        self.instant = 0  # valor inicial a zero

        # Serviço - pode haver mais do que um num simulador
        self.fila_envernizamento = fila.Fila(self, 'envernizamento', 30,
                                             pecaA.n_servicos_envernizamento)

        self.fila_polimento_A = fila.Fila(self, 'polimento', 45,
                                          pecaA.n_servicos_polimento,
                                          self.fila_envernizamento)
        self.fila_polimento_B = fila.Fila(self, 'polimento', 60,
                                          pecaB.n_servicos_polimento,
                                          self.fila_envernizamento)

        self.fila_perfuracao_A = fila.Fila(self, 'perfuracao', 75,
                                           pecaA.n_servicos_perfuracao,
                                           self.fila_polimento_A)
        self.fila_perfuracao_B = fila.Fila(self, 'perfuracao', 90,
                                           pecaB.n_servicos_perfuracao,
                                           self.fila_polimento_B)
        # Lista de eventos - onde ficam registados todos os eventos que vão ocorrer na simulação
        # Cada simulador só tem uma
        self.event_list = lista.Lista(self)

        # Agendamento da primeira chegada
        # Se n�o for feito, o simulador n�o tem eventos para simular
        self.insereEvento(
            eventos.Chegada(self.instant, self, self.fila_perfuracao_A, pecaA))
        self.insereEvento(
            eventos.Chegada(self.instant, self, self.fila_perfuracao_B, pecaB))
コード例 #2
0
ファイル: simulador.py プロジェクト: kYwzor/SCC-projeto
    def __init__(self, m_cheg_a, m_cheg_b, n_sim, toggle_sim, md_per_a,
                 dv_per_a, nm_per_a, md_per_b, dv_per_b, nm_per_b, md_pol_a,
                 dv_pol_a, nm_pol_a, md_pol_b, dv_pol_b, nm_pol_b, md_env,
                 dv_env, nm_env, s_cheg_a, s_cheg_b, s_per_a, s_per_b, s_pol_a,
                 s_pol_b, s_env):
        self.media_cheg_a = m_cheg_a
        self.media_cheg_b = m_cheg_b
        self.n_sim = n_sim
        self.toggle_sim = toggle_sim

        if s_cheg_a != 0:
            rand_generator.randst(s_cheg_a, 0)
        if s_cheg_b != 0:
            rand_generator.randst(s_cheg_b, 1)
        if s_per_a != 0:
            rand_generator.randst(s_per_a, 2)
        if s_per_b != 0:
            rand_generator.randst(s_per_b, 3)
        if s_pol_a != 0:
            rand_generator.randst(s_pol_a, 4)
        if s_pol_b != 0:
            rand_generator.randst(s_pol_b, 5)
        if s_env != 0:
            rand_generator.randst(s_env, 6)

        #Relógio de simulação - variável que contém o valor do tempo em cada instante
        self.instant = 0  #valor inicial a zero

        self.envernizamento = fila.Fila(self, md_env, dv_env, nm_env, None, 6)
        self.polimento_b = fila.Fila(self, md_pol_b, dv_pol_b, nm_pol_b,
                                     self.envernizamento, 5)
        self.polimento_a = fila.Fila(self, md_pol_a, dv_pol_a, nm_pol_a,
                                     self.envernizamento, 4)
        self.perfuracao_b = fila.Fila(self, md_per_b, dv_per_b, nm_per_b,
                                      self.polimento_b, 3)
        self.perfuracao_a = fila.Fila(self, md_per_a, dv_per_a, nm_per_a,
                                      self.polimento_a, 2)
        #Lista de eventos - onde ficam registados todos os eventos que vão ocorrer na simulação
        #Cada simulador só tem uma
        self.event_list = lista.Lista(self)

        #Agendamento da primeira chegada
        #Se não for feito, o simulador não tem eventos para simular
        if self.media_cheg_a != 0:
            self.insereEvento(
                eventos.Chegada(self.instant, self, self.perfuracao_a,
                                True))  #começa geração de A
        if self.media_cheg_b != 0:
            self.insereEvento(
                eventos.Chegada(self.instant, self, self.perfuracao_b,
                                False))  #começa geração de B
コード例 #3
0
def start_server(soc):
    f1 = fila.Fila()
    f2 = fila.Fila()
    f3 = fila.Fila()

    while True:
        connection, address = soc.accept()
        print("Conectado com: " + str(address[0]) + ":" + str(address[1]))
        try:
            Thread(target=client_thread, args=(connection, address, f1, f2, f3)).start()
        except:
            print("client_tread não iniciou.")
            traceback.print_exc()
    soc.close()
コード例 #4
0
 def numeroDeFila(self, numero):
     f = fila.Fila()
     for i in range(_FILA_LENGTH):
         if (f.esNumero(numero)):
             return i
     else:
         return -1
コード例 #5
0
ファイル: simulador.py プロジェクト: Goamaral/SCC
    def setup(self):
        # Serviço - pode haver mais do que um num simulador
        # Queues for objects of type A.
        #Queues for both objects

        aleatorio.Random.reset_stream_count()

        self.envernizamento_queue = fila.Fila(
            self, 2, self.dist_envernizamento, None,
            self.numero_maquinas_envernizamento,
            100000 + 1000000 * self.repeticao_i)

        self.a_polimento_queue = fila.Fila(self, 1, self.dist_polimento_A,
                                           self.envernizamento_queue,
                                           self.numero_maquinas_polimento_A,
                                           200000 + 1000000 * self.repeticao_i)
        self.b_polimento_queue = fila.Fila(self, 2, self.dist_polimento_B,
                                           self.envernizamento_queue,
                                           self.numero_maquinas_polimento_B,
                                           300000 + 1000000 * self.repeticao_i)

        self.b_perfuracao_queue = fila.Fila(
            self, 1, self.dist_perfuracao_B, self.b_polimento_queue,
            self.numero_maquinas_perfuracao_B,
            400000 + 1000000 * self.repeticao_i)
        self.a_perfuracao_queue = fila.Fila(
            self, 1, self.dist_perfuracao_A, self.a_polimento_queue,
            self.numero_maquinas_perfuracao_A,
            500000 + 1000000 * self.repeticao_i)

        # Lista de eventos - onde ficam registados todos os eventos que vão ocorrer na simulação
        # Cada simulador só tem uma
        self.event_list = lista.Lista(self)

        # Agendamento da primeira chegada
        # Se não for feito, o simulador não tem eventos para simular
        r1 = aleatorio.Random(600000 + 1000000 * self.repeticao_i)
        r2 = aleatorio.Random(700000 + 1000000 * self.repeticao_i)
        self.insereEvento(eventos.Chegada(self.instant, self, 'A', r1))
        self.insereEvento(eventos.Chegada(self.instant, self, 'B', r2))
コード例 #6
0
ファイル: server.py プロジェクト: ruehara/SdPython
 def __init__(self, bits, srv, cAnt, cAtu, cSuc, pAnt, pAtu, pSuc, tsnap):
     self.port = pAtu
     self.bits = bits
     self.srv = srv
     self.cAnt = cAnt
     self.cAtu = cAtu
     self.cSuc = cSuc
     self.pAnt = pAnt
     self.pAtu = pAtu
     self.pSuc = pSuc
     self.time_snap = tsnap
     self.chaves = []
     self.f1 = fila.Fila()
     self.f2 = fila.Fila()
     self.f3 = fila.Fila()
     self.f4 = fila.Fila()
     self.fresp = fila.Fila()
     self.bd = banco.Banco()
     self.log = log.Log(self.time_snap, self.cAtu)
     self.cfg = config.Config()
     self.host = self.cfg.getHost().strip("\n")
     self.visitado = False
     self.versao_snap = 0
コード例 #7
0
import fila

if __name__ == "__main__":
    f = fila.Fila()
    print('### Estado inicial')
    f.imprime()

    for i in range(3):
        f.enfileira(i)

    print('### Apos enfileiramento')
    f.imprime()

    for i in range(3):
        e = f.desenfileira()
        print('Objeto removido: {}'.format(e))
        print('### fila')
        f.imprime()
コード例 #8
0
ファイル: server_grpc.py プロジェクト: ruehara/SdPython
from concurrent import futures
import grpc
import servicos_pb2
import servicos_pb2_grpc
import threading 
import fila
import banco
import time
import os
import config
import random

_ONE_DAY_IN_SECONDS = 60 * 60 * 24
f1 = fila.Fila()
f2 = fila.Fila()
f3 = fila.Fila()
f4 = fila.Fila()
bd = banco.Banco()

class Requisicao(servicos_pb2_grpc.RequisicaoServicer):
    def Create(self,request,context):
        requisicao = "1 " + request.chave + " " + request.valor
        #tratar responsabilidade
        f1.insere(requisicao)
        

    def Read(self, request, context):
        requisicao = "2 " + request.chave
        f1.insere(requisicao)

コード例 #9
0
ファイル: tarefa4.py プロジェクト: diegotorresBR/aed_t4
#[RP_A] Resposta pouso autorizado. 

#[C]Comunicação
#[R_C]Resposta de Comunicação
#[D]Decolagem - Solicitacao
#[RD_AG]Resposta de Decolagem Aguardar
#[RD_A]Resp Decolagem Autorizado

import random as r
import fila as fila
import time as tempo
import threading as thread
espera = 3
tempo_operacao = 4
L_voos = []
fila_pouso = fila.Fila()
fila_pista = fila.Fila()
compa_avioes = ["AZUL", "TAM", "GOL", "COPA"]
l_cidade = ["Manaus", "Belem", "Salvador", "Rio de Janeiro", "Florianópolis"]
l_cidade_destino = ["Natal", "Teresina", "Fortaleza", "Curitiba"]

L_pousos_soli = []
L_pousos_eme = []
L_resp_p_ag = []
L_resp_p_a = []
L_dec_soli = [] 
L_resp_dec_a = []
L_resp_dec_ag = []
L_c = []
L_resp_c = []
コード例 #10
0
 def setUp(self):
     self.testFila = fila.Fila()