Giter VIP home page Giter VIP logo

society-simulation's Introduction

In creazione...

society-simulation's People

Contributors

francescariddone avatar impe93 avatar

society-simulation's Issues

Lista di compiti da svolgere per il completamento

Lista di compiti da svolgere per il completamento

Gestore

@impe93

  • Terminazione di un processo casuale con un segnale
  • Creazione nuovo processo successivo alla terminazione di uno casuale
  • Aggiornamento dell'utente sullo stato della simulazione
  • Attesa per esser contattato da un processo B per accoppiamento
  • Attesa di terminazione dei processi dopo l'accoppiamento (?)
  • Generazione delle nuove caratteristiche dei nuovi processi
  • Immissione dei nuovi processi nel programma
  • Attesa della conclusione di tutti i processi all'invio del segnale di chiusura
  • Rilascio di tutte le risorse al ricevimento del segnale di terminazione
  • Stampa delle statistiche della simulazione

Tipo A

@FrancescaRiddone

  • Diminuzione dello standard di accettazione di accoppiamento
  • Controllo per lo standard di un processo B
  • Risposta ad una richiesta di accoppiamento
  • Gestione del segnale inviato dal gestore per la terminazione non spontanea
  • Gestione della terminazione spontanea dell'individuo

Tipo B

  • Inizializzazione di B ed inserimento nella lista dei processi B
  • Modalita con cui fare la ricerca di un processo A
  • Ricerca del processo A a cui fare la richiesta di accoppiamento
  • Attesa di risposta da un processo A
  • Comunicazione al gestore dell'accoppiamento
  • Gestione ripsposta negativa da parte del processo A
  • Gestione del segnale inviato dal gestore per la terminazione non spontanea
  • Gestione della terminazione spontanea dell'individuo

Gestore - Terminazione di un processo casuale

1. Descrizione

Il gestore termina un processo A oppure B con un segnale. In seguito crea un nuovo processo con le stesse modalità della creazione iniziale e lo immette nella popolazione. Una volta completato aggiorna l'utente sullo stato della simulazione, indicando:

  • Numero di processi di tipo A e B attivi
  • Processi morti fino a quel momento
  • Processi A nati fino a quel momento
  • Processi B nati fino a quel momento

2. Dettagli

  • La sceta casuale del processo da terminare viene fatta generando inizialmente un numero casuale tra zero (tipo A) e 1 (tipo B) per decidere il tipo di processo da terminare.
  • Avviata una sezione critica per le operazioni di lettura dalla shared memory del tipo scelto.
  • Contare i processi attivi nella shared memory.
  • Estratto un numero da 1 a X (X è il numero di processi attivi nella shared memory)
  • Viene inviato un segnale SIGUSR1 al pid del processo precedentemente scelto.
  • Attende la terminazione del processo a cui è stato inviato il segnale.
  • Crea il nuovo processo casualmente.
  • Aggiorna la lista di processi Nati/Morti fino a quel momento.
  • Mostra le statistiche all'utente.

Accoppiamento tra A e B

Descrzione

Gestione dell'accoppiamento tra un individuo di tipo A ed uno di tipo B che si sono già scelti a vicenda ed hanno già deciso di accoppiarsi. Entrambi i processi hanno l'obbligo di comunicare al gestore il loro intento di accoppiarsi attraverso un messaggio su una coda di messaggi appositamente aperta. Il messaggio conterrà una struttura contentente il PID e il tipo del mittente ed il PID dell'individuo con cui si vuole accoppiare. Una volta ricevuto il messaggio il gestore dovrà creare i nuovi individui, rimuovere dalla shm i genitori, ed inserire i figli.

Dettagli

  • Ricevere il messaggio da A e B
  • Creare i nuovi individui sulla base dei genitori controllando che i ci sia almeno un individuo di ogni tipo attivo
  • Rimuovere dalla shm i vecchi individui
  • Inserire i figli nella memoria condivisa per il tipo esatto

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.