From Agentgroup
Jump to: navigation, search
(Esercizi con synchronized)
(Esercizi vecchi)
 
(39 intermediate revisions by 2 users not shown)
Line 14: Line 14:
 
'''[[User:Mariachiara | Ph.D. Ricercatrice Mariachiara Puviani]]'''
 
'''[[User:Mariachiara | Ph.D. Ricercatrice Mariachiara Puviani]]'''
  
= Guida Eclipse =
+
= Slide del corso =
 +
Le slide le trovate su google docs.
  
[[Media:Eclipse.pdf | Eclipse]]
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/13sZmEKlz5_yqd66mdI1ImK-vKw72Glp3BntLd1G49H0/edit?usp=sharing slide della prima lezione].
  
=Classi utili=
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/1gyKNa686qeiJd0x9R7UPMV13yW-7ndRxYv6luE_5SMY/edit?usp=sharing slide della seconda lezione].
  
==Package Monitor==
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/1Misqjnviix6cchHzOJW63cbkwXfVTZ9bJRGSDSTb0yg/edit?usp=sharing slide della terza lezione].
  
Il package monitor è da inserire in ogni progetto per il suo corretto funzionamento
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/1bSc35PP8FzD8yBJhXtX9ZT8xQkoEFW25XkyWF7Px6yQ/edit?usp=sharing slide della quarta lezione].
  
===Package JAR===
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/10V8uCy-8RTG_tzM1vQzZWEuR3A9VOiFnvsnv8foukX4/edit?usp=sharing slide della quinta lezione].
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/packageMonitorPSO.jar <font COLOR="#0000ff">Package Jar</font>]
+
  
===Singoli File===
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/1OhulWvV01eniwVh-JArFte0a7du-j5WZCRNqTtTXN2U/edit?usp=sharing slide della sesta lezione].
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Monitor.java <font COLOR="#0000ff">Monitor </font>]
+
+
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Cond.java <font COLOR="#0000ff">Cond </font>]
+
  
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Urgent.java <font COLOR="#0000ff">Urgent </font>]
+
[https://docs.google.com/a/studenti.unimore.it/presentation/d/1qstWbLbLjbXPnrDilV7SQBDddPU1caHeN4CVBrLRAQc/edit?usp=sharing slide della settima lezione].
  
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Mutex.java <font COLOR="#0000ff">Mutex </font>]
+
Invito ad esperimento:
  
==Template==
+
'''[https://docs.google.com/a/studenti.unimore.it/presentation/d/1X0QjKCYcOA7yw_UcZewPrnRse82bFwdp_Oy-_HsZRxc/edit?usp=sharing invito ad esperimento].'''
  
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/TemplateMain.java <font COLOR="#0000ff">TemplateMain </font>]
+
= Esercizi =
 +
Il testo e le soluzioni agli esercizi di laboratorio saranno pubblicati di settimana in settimana prima delle esercitazioni, in modo da dare agli studenti la possibilità di guardarli prima delle lezioni di laboratorio.
  
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/TemplateProcesso.java <font COLOR="#0000ff">TemplateProcesso </font>]
+
Gli esercizi si trovano su BitBucket a [https://bitbucket.org/agr_unimore/operativesystemsmsc.git questo indirizzo]''': non è necessario creare Account né effettuare Login: il repository è pubblico (read-only).
  
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/TemplateMonitor.java <font COLOR="#0000ff">TemplateMonitor </font>]
 
  
= Esercizi =
+
'''Per scaricare il codice:'''
Il testo e le soluzioni agli esercizi di laboratorio saranno pubblicati di settimana in settimana prima delle esercitazioni, in modo da dare agli studenti la possibilità di guardarli prima delle lezioni di laboratorio.
+
  
== Esercizi con synchronized ==
+
Aprite un terminale e lanciate:
  
Gli esercizi seguenti sono realizzati con i costrutti di sincronizzazione nativi di Java: '''synchronized''', '''wait()''', '''notify()''' e '''notifyAll()'''.
+
''git clone https://bitbucket.org/agr_unimore/operativesystemsmsc.git''
 +
 
 +
Per lavorare in Eclipse:
 +
 
 +
1) Aprire un nuovo progetto
 +
 
 +
2) Copiare il contenuto della cartella src/ della cartella scaricata con git dentro alla cartella src/ del vostro progetto.
  
 
Qualunque studente trovi errori nel codice è '''fortemente''' invitato a comunicarmelo :)
 
Qualunque studente trovi errori nel codice è '''fortemente''' invitato a comunicarmelo :)
  
'''Il codice degli esercizi si trova su GitHub a [https://github.com/marcogalassi/esercitazioniPSO questo indirizzo]''': non è necessario creare Account né effettuare Login: il repository è pubblico(read-only).
+
Il codice è stato scritto usando [https://www.jetbrains.com/idea/ IntelliJ], e potrebbero quindi esserci problemi nell'import in altri ambienti (es. in Eclipse): in questo caso, copiare ed incollare i file dentro un progetto Eclipse creato da voi risolve il problema.
 
+
Potete liberamente scaricare il codice usando '''git''' oppure direttamente come file compresso '''.zip'''. ''Attenzione: di default si è posizionati sul branch Master, cambiarlo se serve. Inoltre, il codice è stato scritto usando l'IDE IntelliJ, e potrebbero quindi esserci problemi nell'importarlo in Eclipse direttamente: in questo caso, semplicemente copiare ed incollare i file dentro un progetto Eclipse creato da voi risolve il problema.''
+
  
 
Per ogni problema non esitate a contattarmi.
 
Per ogni problema non esitate a contattarmi.
  
 
''Marco Galassi''
 
''Marco Galassi''
 
  
 
=== Letture Utili ===
 
=== Letture Utili ===
Passaggio per riferimento/valore in Java: [http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value link (StackOverflow)]
+
Passaggio di parametri in Java:
 +
* [http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value Is Java “pass-by-reference” or “pass-by-value”? (StackOverflow)]
 +
* [http://javadude.com/articles/passbyvalue.htm Java is Pass-By-Value, Dammit!]
  
 
Java Concurrency Tutorial: [https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html link]
 
Java Concurrency Tutorial: [https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html link]
Line 69: Line 70:
 
Java Thread Documentation: [http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html link]
 
Java Thread Documentation: [http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html link]
  
 +
= Guida Eclipse =
  
=== Testi esercizi ===
+
[[Media:Eclipse.pdf | Eclipse]]
Esercizio ponte: [http://{{SERVERNAME}}/didattica/psoLM/Esercitazioni/es_bridge/problem.pdf <font COLOR="#0000ff">testo esercizio</font>]
+
  
Esercizio deposito bagagli: [http://{{SERVERNAME}}/didattica/psoLM/Esercitazioni/es_deposit/problem.pdf <font COLOR="#0000ff">testo esercizio</font>]
+
=Classi utili=
  
Esercizio pizzeria: [http://{{SERVERNAME}}/didattica/psoLM/Esercitazioni/es_food_shop/problem.pdf <font COLOR="#0000ff">testo esercizio</font>]
+
==Package Monitor==
 +
 
 +
Il package monitor è da inserire in ogni progetto per il suo corretto funzionamento
 +
 
 +
===Package JAR===
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/packageMonitorPSO.jar <font COLOR="#0000ff">Package Jar</font>]
 +
 
 +
===Singoli File===
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Monitor.java <font COLOR="#0000ff">Monitor </font>]
 +
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Cond.java <font COLOR="#0000ff">Cond </font>]
 +
 
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Urgent.java <font COLOR="#0000ff">Urgent </font>]
 +
 
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Mutex.java <font COLOR="#0000ff">Mutex </font>]
 +
 
 +
==Template==
 +
 
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/TemplateMain.java <font COLOR="#0000ff">TemplateMain </font>]
 +
 
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/TemplateProcesso.java <font COLOR="#0000ff">TemplateProcesso </font>]
 +
 
 +
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/TemplateMonitor.java <font COLOR="#0000ff">TemplateMonitor </font>]
  
Esercizio stazione ferroviaria: [http://{{SERVERNAME}}/didattica/psoLM/Esercitazioni/es_station/problem.pdf <font COLOR="#0000ff">testo esercizio</font>]
+
= Esercizi vecchi =
  
Esercizio traghetto: [http://{{SERVERNAME}}/didattica/psoLM/Esercitazioni/es_ferry/problem.pdf <font COLOR="#0000ff">testo esercizio</font>]
+
Trovate molti testi e soluzioni a [http://www.didattica.agentgroup.unimore.it/wiki/index.php/EsamiPSO questa pagina].
  
== Esercizi vecchi ==
+
Esercizi vecchi realizzati con il package monitor: per i testi dovrebbero essere recuperabili nella seguente [http://www.didattica.agentgroup.unimore.it/didattica/psoNOD/MONITOR.html#java pagina]
Esercizi vecchi realizzati con il package monitor.
+
  
 
=== Esercitazione 1 (Ponte) ===
 
=== Esercitazione 1 (Ponte) ===
Line 207: Line 229:
 
Codice della soluzione es. 2 Pronto Soccorso
 
Codice della soluzione es. 2 Pronto Soccorso
  
[http://{{SERVERNAME}}/didattica/psoLM/Esami/12-13/19Set12/PS.java <font COLOR="#0000ff">PS (monitor)</font>]
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/19Set12/PS.java <font COLOR="#0000ff">PS (monitor)</font>]
  
[http://{{SERVERNAME}}/didattica/psoLM/Esami/12-13/19Set12/ProvaPS.java <font COLOR="#0000ff">ProvaPS (main)</font>]
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/19Set12/ProvaPS.java <font COLOR="#0000ff">ProvaPS (main)</font>]
 
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/12-13/19Set12/Paziente.java <font COLOR="#0000ff">Paziente (processo)</font>]
+
  
 +
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/19Set12/Paziente.java <font COLOR="#0000ff">Paziente (processo)</font>]
  
 
=== Esercitazione 5 (Officina e Parco Giochi) ===
 
=== Esercitazione 5 (Officina e Parco Giochi) ===
Line 234: Line 255:
 
Codice della soluzione es. 2 Parco giochi
 
Codice della soluzione es. 2 Parco giochi
  
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/12Dic11/ParcoGiochi.java <font COLOR="#0000ff">ParcoGiochi (monitor)</font>]
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/16Dic11/ParcoGiochi.java <font COLOR="#0000ff">ParcoGiochi (monitor)</font>]
  
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/12Dic11/ProvaParco.java <font COLOR="#0000ff">ProvaParco (main)</font>]
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/16Dic11/ProvaParco.java <font COLOR="#0000ff">ProvaParco (main)</font>]
  
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/12Dic11/Giostra.java <font COLOR="#0000ff">Giostra (processo)</font>]
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/16Dic11/Giostra.java <font COLOR="#0000ff">Giostra (processo)</font>]
  
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/12Dic11/Persona.java <font COLOR="#0000ff">Persona (processo)</font>]
+
[http://{{SERVERNAME}}/didattica/psoLM/Esami/11-12/16Dic11/Persona.java <font COLOR="#0000ff">Persona (processo)</font>]
  
  
Line 403: Line 424:
 
=== Biblioteca ===
 
=== Biblioteca ===
  
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Biblioteca.java <font COLOR="#0000ff">Biblioteca (monitor)</font>]
+
<!--[http://www.didattica.agentgroup.unimore.it/didattica/corsoso/testiEsami/99-00/16giu00.pdf Testo dell'esame in cui era contenuto il problema della Biblioteca (16/06/2000)]
 +
-->[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/Biblioteca.java <font COLOR="#0000ff">Biblioteca (monitor)</font>]
  
 
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/ProvaBiblioteca.java <font COLOR="#0000ff">ProvaBiblioteca (main)</font>]
 
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/ProvaBiblioteca.java <font COLOR="#0000ff">ProvaBiblioteca (main)</font>]
  
 
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/UtenteBiblioteca.java <font COLOR="#0000ff">UtenteBiblioteca (processo)</font>]
 
[http://{{SERVERNAME}}/didattica/psoNOD/Lastmonitor/UtenteBiblioteca.java <font COLOR="#0000ff">UtenteBiblioteca (processo)</font>]
 
 
  
 
=== Call Centre ===
 
=== Call Centre ===

Latest revision as of 12:54, 22 December 2021

Esercitazioni

Ogni settimana verranno aggiunti in questa pagina gli esercizi proposti a lezione (venerdì mattina in laboratorio LINFA) e la soluzione agli esercizi della settimana precedente.

Informazioni sul docente

Dall'A.A. 2015-16

Galassi Marco

Negli A.A. precedenti

Ph.D. Ricercatrice Mariachiara Puviani

Slide del corso

Le slide le trovate su google docs.

slide della prima lezione.

slide della seconda lezione.

slide della terza lezione.

slide della quarta lezione.

slide della quinta lezione.

slide della sesta lezione.

slide della settima lezione.

Invito ad esperimento:

invito ad esperimento.

Esercizi

Il testo e le soluzioni agli esercizi di laboratorio saranno pubblicati di settimana in settimana prima delle esercitazioni, in modo da dare agli studenti la possibilità di guardarli prima delle lezioni di laboratorio.

Gli esercizi si trovano su BitBucket a questo indirizzo: non è necessario creare Account né effettuare Login: il repository è pubblico (read-only).


Per scaricare il codice:

Aprite un terminale e lanciate:

git clone https://bitbucket.org/agr_unimore/operativesystemsmsc.git

Per lavorare in Eclipse:

1) Aprire un nuovo progetto

2) Copiare il contenuto della cartella src/ della cartella scaricata con git dentro alla cartella src/ del vostro progetto.

Qualunque studente trovi errori nel codice è fortemente invitato a comunicarmelo :)

Il codice è stato scritto usando IntelliJ, e potrebbero quindi esserci problemi nell'import in altri ambienti (es. in Eclipse): in questo caso, copiare ed incollare i file dentro un progetto Eclipse creato da voi risolve il problema.

Per ogni problema non esitate a contattarmi.

Marco Galassi

Letture Utili

Passaggio di parametri in Java:

Java Concurrency Tutorial: link

Java Thread Documentation: link

Guida Eclipse

Eclipse

Classi utili

Package Monitor

Il package monitor è da inserire in ogni progetto per il suo corretto funzionamento

Package JAR

Package Jar

Singoli File

Monitor

Cond

Urgent

Mutex

Template

TemplateMain

TemplateProcesso

TemplateMonitor

Esercizi vecchi

Trovate molti testi e soluzioni a questa pagina.

Esercizi vecchi realizzati con il package monitor: per i testi dovrebbero essere recuperabili nella seguente pagina

Esercitazione 1 (Ponte)

30/10/15

Testo degli esercizi: Ponte.pdf


Codice della soluzione es.1 Ponte Semplice:

ProvaPonte (main)

Ponte (interfaccia -opzionale-)

PonteSemplice (monitor)

Auto (processo)


Codice della soluzione es.2 Ponte con capacità limitata: (i file Auto e Ponte sono uguali a quelli dell'esempio precedente)

ProvaPonteCap (main)

PonteCap (monitor)


Codice della soluzione es.3 Ponte con capacità limitata e senza starvation: (i file Auto e Ponte sono uguali a quelli dell'esempio precedente)

ProvaPonteCapStar (main)

PonteCapStar (monitor)


Codice della soluzione es.4 Ponte con capacità limitata e macchine con peso:

ProvaPontePeso (main)

PonteMioPeso (monitor)

AutoPesante (processo)

Esercitazione 2 (Deposito bagagli e Pizzeria al taglio)

13/11/15

Testo degli esercizi: Es2.pdf

Codice della soluzione es.1 Deposito bagagli:

DepositoBagagli (monitor)

ProvaBagagli (main)

UtenteBagaglio (processo)


Codice della soluzione es.2 Pizzeria al taglio

Pizzeria (monitor)

Prova (main)

Cliente (processo)

Fattorino (processo)

Pizzaiolo (processo)


Esercitazione 3 (Raccolta differenziata e Giostra)

27/10/14

Testo degli esercizi: Es3.pdf


Codice della soluzione es.1 Raccolta differenziata:

CentroRifiuti (monitor)

ProvaRifiuti (main)

Camion (processo)

Cittadino (processo)


Codice della soluzione es.2 Giostra:

Giostra

ProvaBambino

Bambino

Giostraio


Esercitazione 4 (Elezioni e Pronto soccorso)

03/11/14

Testo degli esercizi: Es4.pdf


Codice della soluzione es. 1 Elezioni:

MonitorSistemaElettorale (monitor)

ProvaElezioni (main)

Elettore (processo)

Candidato (processo)

Prefetto (processo)


Codice della soluzione es. 2 Pronto Soccorso

PS (monitor)

ProvaPS (main)

Paziente (processo)

Esercitazione 5 (Officina e Parco Giochi)

17/11/14

Testo degli esercizi: Es5.pdf


Codice della soluzione es. 1 Officina

Officina (monitor)

ProvaOfficina (main)

Operaio (processo)

Cliente (processo)


Codice della soluzione es. 2 Parco giochi

ParcoGiochi (monitor)

ProvaParco (main)

Giostra (processo)

Persona (processo)


Esercitazione 6 (Terremoto e Albergo)

24/11/14

Testo degli esercizi: Es6.pdf


Codice della soluzione es.1 Albergo:

Albergo (monitor)

ProvaAlbergo (main)

Gruppo (processo)

Persona (processo)


Codice della soluzione es.2 Terremoto:

Città (monitor)

ProvaCitta (main)

Cittadino (processo)

VVFF (processo)

PC (processo)


Esercitazione 7 (Negozio Cellulari e Elicottero)

01/12/2014

Testo degli esercizi: Es7.pdf

Codice della soluzione es.1 Negozio Cellulari:

Negozio (monitor)

ProvaNegozio (main)

Cliente (processo)

Negoziante (processo)


Codice della soluzione es.2 Elicottero

Elicottero

Prova_volo

Pilota

Passeggero


Centro Prelievi

Codice della soluzione es.1 Centro prelievi:

centro_prelievi (monitor)

prova_prelievi (main)

persona (processo)

medico (processo)


Ferrovia

Codice della soluzione es.2 Ferrovia:

MonitorStazione (monitor)

ProvaStazioneFerroviarie (main)

Treno (processo)

Passeggero (processo)

Ambasciata

Codice della soluzione es.1 Ambasciata:

Ambasciata (monitor)

ProvaAmbasciata (main)

Persona (processo)

Ambasciatore (processo)

Addetto (processo)


Museo

Codice della soluzione es.2 Museo:

Museo (monitor)

ProvaMuseo (main)

Gruppo (processo)


Sala parto

Codice della soluzione es.1 Sala Parto:

Ospedale (monitor)

Prova_parto (main)

Gestante (processo)

Anestesista (processo)


Asilo

Codice della soluzione es.2 Asilo:

Asilo (monitor)

ProvaAsilo (main)

Comune (processo)

Bambino (processo)


Centro agopuntura

CantroAgopuntura (monitor)

ProvaCentro (main)

Pazienti (processo)


Distributore

Codice della soluzione es.1 Distributore:

Distributore (monitor)

Prova (main)

Cliente (processo)

Biblioteca

Biblioteca (monitor)

ProvaBiblioteca (main)

UtenteBiblioteca (processo)

Call Centre

Codice della soluzione es.2 Call Centre:

CallCentre (monitor)

ProvaCallCentre (main)

Addetto (processo)

Risponditore (processo)

Cliente (processo)


Sagra

Codice della soluzione es.1 Sagra:

Sagra (monitor)

prova_sagra (main)

Persona (processo)


Traghetto

Codice della soluzione es.1 Traghetto:

MonitorIsole (monitor)

ProvaTraghetto (main)

Auto (processo)

Traghetto (processo)


Pastificio

Codice della soluzione es.1 Pastificio:

Pastificio (monitor)

prova_pastificio (main)

Mugnaio (processo)

Contadino (processo)


Campo da golf

Codice della soluzione es.2 Campo da golf:

CampoGolf (monitor)

ProvaGolf (main)

GiocatoreGolf (processo)


Frantoio

Codice della soluzione es 2. Frantoio:

Frantoio (monitor)

ProvaFrantoio (main)

Contadino (processo)

Pressa (processo)

Parcheggio

Codice della soluzione es.2 Parcheggio:

Parcheggio (monitor)

ProvaParcheggio (main)

Autoveicolo (processo)

Ufficio postale

ufficio (monitor)

prova_posta (main)

sportello (processo)

cliente (processo)

soluzione alternativa proposta da uno studente:

Ufficio (monitor)

UfficioMain (main)

Addetto (processo)

Cliente (processo)


Lavanderia

Lavanderia

ProvaLavanderia

Cliente


Traghetto

Codice della soluzione es1. Traghetto:

MonitorIsole (monitor)

ProvaTraghetto (main)

Auto (processo)

Traghetto (processo)




Il testo e la soluzione delle prove d'esame li trovate alla pagina relativa agli esami.