示例#1
0
    def stampaColor(self):
	#print isAGirlOnlyN(self.nome)
	if isAGirlOnlyN(self.nome):
		inizioStr = "<green>"
		fineStr = "</green>"
		print cms.color( "[+]  "+inizioStr+self.nome+" "+self.classe+" "+self.cognome+fineStr)
	else:
		self.stampa()
示例#2
0
 def stampa(self,istante,flussoCPu,durataCpu,flussoIO,durataIO,codaCPU,codaIO):
         print cms.color("<yellow>istante: </yellow>")+str(istante)+"s"
         print "Processo in eseguzione: "+self.flussoCpu+" con durata: "+str(self.durataCpu)+ 's'
         if codaCPU.getLunghezza()==0:
             print "La coda dei processi pronti e' vuota"
         else:
             print "La coda dei processi pronti e' popolata da: "
             codaCPU.stampainfo()
         print "Processo in IO: "+self.flussoIO+" con durata:"+str(self.durataIO)+'s'
         if codaIO.getLunghezza()==0:
             print "La coda di I/O e' vuota"
         else:
             print "Coda IO: "
             codaIO.stampainfo()
示例#3
0
if len(sys.argv) <= 1:
    print help
else:
    numProcessiSimulazione = int(sys.argv[1])
    durataMinSeqCPU = int(sys.argv[2])
    durataMaxSeqCPU = int(sys.argv[3])
    durataMinSeqIO = int(sys.argv[4])
    durataMaxSeqIO = int(sys.argv[5])
    quanto = int(sys.argv[6])
    try:

        # dichiaro le strutture necessarie allo scheduler
        codaProcessiPronti = Coda()
        codaIO = Coda()
        print cms.color("<green>#--- I processi creati sono ---#\n</green>")
        # creazione lista dei processi
        p = [
            Processo(Pid, durataMinSeqCPU, durataMaxSeqCPU, durataMinSeqIO, durataMaxSeqIO)
            for Pid in range(numProcessiSimulazione)
        ]
        # aggiungi i processi alla coda
        codaProcessiPronti.aggiungiLista(p)
        # stampo la coda dei processi pronti
        codaProcessiPronti.stampainfo()
        print cms.color("<green>\nIl quanto di tempo e': </green>") + str(quanto) + "s"
        print cms.color("<green>#-------------------------------#</green>")
        # avvio lo scheduler
        print cms.color("<blue>\nINIZIO SIMULAZIONE\n</blue>")
        algoritmo = RR()
        algoritmo.scheduler(quanto, codaProcessiPronti, codaIO)
示例#4
0
#fine procedura

media = 0
totale = 0
inserito = 1
numero = 0

scritta()

while ( inserito != 0 ):
	inserito = input("Inserisci un numero: ")
	if (inserito):
		numero = inserito
		media = media + numero
		totale = totale + 1
	

media = (float(media) / totale)
if (media > 6):
	str_inizio = "<green>"
	str_fine = "</green>"
elif (media == 6):
	str_inizio = "<yellow>"
	str_fine = "</yellow>"
else:
	str_inizio = "<red>"
	str_fine = "</red>"
print cms.color("\nLa tua media e': "+str_inizio+str(media)+str_fine)


示例#5
0
        for nome in nomi:
            
            inizioStr = "<white>"
            fineStr = "</white>"
	    
            if nome.find("1R")>0:
                inizioStr = "<red>"
                fineStr = "</red>"
	    elif isAGirl(nome):
		#print isAGirl(nome)
		inizioStr = "<green>"
		fineStr = "</green>"
            
	    if nome.find("d.") > 0:
                inizioStr = "<blue>"
                fineStr = "</blue>"
            print cms.color(inizioStr+nome+fineStr)
            myfile.write(nome+"\n")
            data.write(nome[1:-1]+"\n")

	print "----------------------------------"
	myfile.write("----------------------------------\n")

	sock.close()
	time.sleep(120) #5 minuti, ogni quanto moodle aggiorna le persone online
                                        
myfile.close()
#print htmlSource


示例#6
0
    def scheduler(self,quanto,codaCPU,codaIO):
        flag=''#se il proc. ha finito la sua seq. di CPU vale 0 altrimenti il flag vale 1 se deve tornare in ready queue
        istante=0
        finito=bool(0) #e' falso
        while (not finito): #finche' e' vero
#------------------------------------gestione della Cpu--------------------------------------#
#coda piena e cpu vuota
            if(codaCPU.getLunghezza()!=0)and(self.flussoCpu=="Inattiva"):
                elementoDispatchedCPU, pidDispatchedCPU, durataDispatchedCPU = self.dispatched(codaCPU)
#primo caso la durata e' maggiore del quanto
                if durataDispatchedCPU > quanto:
                    resto=durataDispatchedCPU-quanto
                    elementoDispatchedCPU.ListaSequenze[0]=resto
                    self.durataCpu=quanto
                    self.flussoCpu=pidDispatchedCPU
                    print cms.color("<red>PROCESSO SCELTO PER L'ESECUZIONE:</red>")+str(pidDispatchedCPU)
                    flag=1
#secondo e terzo caso la durata e' minore o uguale al quanto
                elif durataDispatchedCPU <= quanto:
                    self.durataCpu=durataDispatchedCPU
                    self.flussoCpu=pidDispatchedCPU
                    print cms.color("<red>PROCESSO SCELTO PER L'ESECUZIONE:</red>")+str(pidDispatchedCPU)
                    flag=0 
#coda piena ed cpu piena
            elif ((codaCPU.getLunghezza() != 0)and(self.flussoCpu!="Inattiva")):
                if(self.durataCpu==0): #ma il processo ha finito il quanto
                    if flag==1:
                        codaCPU.aggiungiProcesso(elementoDispatchedCPU)
                    elif flag==0:
                        self.cambioContesto(elementoDispatchedCPU, codaIO)
#prendo il primo processo
                    elementoDispatchedCPU, pidDispatchedCPU, durataDispatchedCPU = self.dispatched(codaCPU)
#primo caso la durata e' maggiore del quanto
                    if durataDispatchedCPU > quanto:
                        resto=durataDispatchedCPU-quanto
                        elementoDispatchedCPU.ListaSequenze[0]=resto
                        self.durataCpu=quanto
                        self.flussoCpu=pidDispatchedCPU
                        print cms.color("<red>PROCESSO SCELTO PER L'ESECUZIONE:</red>")+str(pidDispatchedCPU)
                        flag=1
#secondo e terzo caso la durata e' minore o uguale al quanto
                    elif durataDispatchedCPU <= quanto:
                        self.durataCpu=durataDispatchedCPU
                        self.flussoCpu=pidDispatchedCPU
                        print cms.color("<red>PROCESSO SCELTO PER L'ESECUZIONE:</red>")+str(pidDispatchedCPU)
                        flag=0      
#coda vuota e la cpu e' piena    
            elif(codaCPU.getLunghezza()==0)and(self.flussoCpu!="Inattiva"):
                if(self.durataCpu==0): #ma il processo ha finito il quanto
                    if flag==1: #viene mandato in coda
                        codaCPU.aggiungiProcesso(elementoDispatchedCPU)
                        #ma viene riscelto in quanto unico processo in coda
                        elementoDispatchedCPU, pidDispatchedCPU, durataDispatchedCPU = self.dispatched(codaCPU)
                        #primo caso la durata e' maggiore del quanto
                        if durataDispatchedCPU > quanto:
                            resto=durataDispatchedCPU-quanto
                            elementoDispatchedCPU.ListaSequenze[0]=resto
                            self.durataCpu=quanto
                            self.flussoCpu=pidDispatchedCPU
                            print cms.color("<red>PROCESSO SCELTO PER L'ESECUZIONE:</red>")+str(pidDispatchedCPU)
                            flag=1
#secondo e terzo caso la durata e' minore o uguale al quanto
                        elif durataDispatchedCPU <= quanto:
                            self.durataCpu=durataDispatchedCPU
                            self.flussoCpu=pidDispatchedCPU
                            print cms.color("<red>PROCESSO SCELTO PER L'ESECUZIONE:</red>")+str(pidDispatchedCPU)
                            flag=0
                #se ha finito il quanto e non ha piu' istruzioni,setto la cpu inattiva
                    elif flag==0:
                        self.cambioContesto(elementoDispatchedCPU, codaIO)
                        self.flussoCpu="Inattiva"
#------------------------------------gestione dell' I/O-----------------------------------#
       #coda piena ed i/o piena ma processo morto
            if(codaIO.getLunghezza()!=0)and(self.flussoIO!="Inattiva"):
                if(self.durataIO==0):
                    self.cambioContesto(elementoDispatchedIO, codaCPU)
                    elementoDispatchedIO, pidDispatchedIO, durataDispatchedIO = self.dispatched(codaIO)
                    self.durataIO=durataDispatchedIO
                    self.flussoIO=pidDispatchedIO
       #coda piena e la i/o e' vuota
            elif (codaIO.getLunghezza()!=0)and(self.flussoIO=="Inattiva"): 
                elementoDispatchedIO, pidDispatchedIO, durataDispatchedIO = self.dispatched(codaIO)
                self.durataIO=durataDispatchedIO
                self.flussoIO=pidDispatchedIO
       #coda vuota e la i/o e' piena ma il processo ha finito
            elif(codaIO.getLunghezza()==0)and(self.flussoIO!="Inattiva"):
                if(self.durataIO==0):
                    self.cambioContesto(elementoDispatchedIO, codaCPU)
                    self.flussoIO="Inattiva"
            #coda cpu/io vuota e cpu/io vuota
            if (codaCPU.getLunghezza() == 0)and(self.durataCpu==0):
                if (codaIO.getLunghezza() == 0)and(self.durataIO==0):
                    finito=not finito
#-----------------------------------stampa dei processi-----------------------------------#
            self.stampa(istante,self.flussoCpu,self.flussoIO,self.durataCpu,self.durataIO,codaCPU,codaIO)
#----------------------------------gestione della timeline--------------------------------#
            if(self.durataCpu!=0):
		self.durataCpu=self.durataCpu-1
            if(self.durataIO!=0):
		self.durataIO=self.durataIO-1
            istante=istante+1
示例#7
0
            nomi.append(line[inizio:fine])

    for nome in nomi:

        inizioStr = "<white>"
        fineStr = "</white>"

        if nome.find("1R") > 0:
            inizioStr = "<red>"
            fineStr = "</red>"
        elif isAGirl(nome):
            #print isAGirl(nome)
            inizioStr = "<green>"
            fineStr = "</green>"

        if nome.find("d.") > 0:
            inizioStr = "<blue>"
            fineStr = "</blue>"
        print cms.color(inizioStr + nome + fineStr)
        myfile.write(nome + "\n")
        data.write(nome[1:-1] + "\n")

    print "----------------------------------"
    myfile.write("----------------------------------\n")

    sock.close()
    time.sleep(120)  #5 minuti, ogni quanto moodle aggiorna le persone online

myfile.close()
#print htmlSource