<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Prova_teorica_2013.05.30</id>
	<title>Prova teorica 2013.05.30 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Prova_teorica_2013.05.30"/>
	<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_teorica_2013.05.30&amp;action=history"/>
	<updated>2026-06-30T23:23:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_teorica_2013.05.30&amp;diff=1859&amp;oldid=prev</id>
		<title>FedericoB: Created page with &quot;[http://www.cs.unibo.it/~renzo/so/compiti/2013.05.30.tot.pdf Link al testo] == Esercizio 2 == ===Soluzione di FedericoB=== Creo i v2p con i semafori normali &lt;source lang=&quot;text...&quot;</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_teorica_2013.05.30&amp;diff=1859&amp;oldid=prev"/>
		<updated>2017-05-09T14:16:16Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;[http://www.cs.unibo.it/~renzo/so/compiti/2013.05.30.tot.pdf Link al testo] == Esercizio 2 == ===Soluzione di FedericoB=== Creo i v2p con i semafori normali &amp;lt;source lang=&amp;quot;text...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[http://www.cs.unibo.it/~renzo/so/compiti/2013.05.30.tot.pdf Link al testo]&lt;br /&gt;
== Esercizio 2 ==&lt;br /&gt;
===Soluzione di FedericoB===&lt;br /&gt;
Creo i v2p con i semafori normali&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
class v2p&lt;br /&gt;
 semaphore s;&lt;br /&gt;
 &lt;br /&gt;
 v2p(val)&lt;br /&gt;
   new s(val);&lt;br /&gt;
&lt;br /&gt;
 p()&lt;br /&gt;
  mutex.p()&lt;br /&gt;
  s.p()&lt;br /&gt;
  s.p()&lt;br /&gt;
  mutex.v()&lt;br /&gt;
&lt;br /&gt;
 v()&lt;br /&gt;
  s.v&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Creiamo i semafori normali con i v2p&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
class semaphore&lt;br /&gt;
	v2p s;&lt;br /&gt;
	v2p mutex=1;&lt;br /&gt;
	&lt;br /&gt;
	int val;&lt;br /&gt;
	&lt;br /&gt;
	semaphore(initval):&lt;br /&gt;
		val = initval&lt;br /&gt;
	&lt;br /&gt;
	p()&lt;br /&gt;
		mutex.p()&lt;br /&gt;
		val--&lt;br /&gt;
		if (val&amp;lt;0)&lt;br /&gt;
			mutex.v()&lt;br /&gt;
			mutex.v()&lt;br /&gt;
			s.p()&lt;br /&gt;
		mutex.v()&lt;br /&gt;
		mutex.v()&lt;br /&gt;
	&lt;br /&gt;
	v():&lt;br /&gt;
		mutex.p()&lt;br /&gt;
		val++&lt;br /&gt;
		if (val&amp;lt;=0)&lt;br /&gt;
			s.v()&lt;br /&gt;
			s.v()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>FedericoB</name></author>
	</entry>
</feed>