<!DOCTYPE html>
<html lang="it">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Prestazioni di un Sistema</title>
  <style>
    :root {
      font-size: 18px;
      box-sizing: inherit;
    }

    *,
    *:before,
    *:after {
      box-sizing: inherit;
    }

    p {
      margin: 0;
    }

    p:not(:last-child) {
      margin-bottom: 1.5em;
    }

    h3,
    h4 {
      margin: 0 0 1rem;
    }

    body {
      font: 1em/1.618 Inter, sans-serif;
      display: flex;
      flex-direction: column;
      padding: 1.5em;
      background: url(https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe) center/cover no-repeat fixed;
      justify-content: center;
      align-items: center;
          margin: auto;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    overflow: auto;
background: linear-gradient(315deg, rgba(60,0,94,1) 3%, rgba(60,132,206,1) 38%, rgba(48,238,226,1) 68%, rgba(25,70,255,1) 98%);
    animation: gradient 100s ease infinite;
    background-size: 400% 400%;
    background-attachment: fixed;
    }
    
@keyframes gradient {
    0% {
        background-position: 0% 0%;
    }
    50% {
        background-position: 100% 100%;
    }
    100% {
        background-position: 0% 0%;
    }
}

.area{
    width: 100%;
    height:100vh;
    position: fixed;
    bottom: 0;
    top: 0;
    right: 0;
    left: 0;
    z-index: -100
}

.circles{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.circles li{
    position: absolute;
    display: block;
    list-style: none;
    width: 20px;
    height: 20px;
    background: rgba(255, 255, 255, 0.2);
    animation: animate 25s linear infinite;
    bottom: -150px;
    
}

.circles li:nth-child(1){
    left: 25%;
    width: 80px;
    height: 80px;
    animation-delay: 0s;
}


.circles li:nth-child(2){
    left: 10%;
    width: 20px;
    height: 20px;
    animation-delay: 2s;
    animation-duration: 12s;
}

.circles li:nth-child(3){
    left: 70%;
    width: 20px;
    height: 20px;
    animation-delay: 4s;
}

.circles li:nth-child(4){
    left: 40%;
    width: 60px;
    height: 60px;
    animation-delay: 0s;
    animation-duration: 18s;
}

.circles li:nth-child(5){
    left: 65%;
    width: 20px;
    height: 20px;
    animation-delay: 0s;
}

.circles li:nth-child(6){
    left: 75%;
    width: 110px;
    height: 110px;
    animation-delay: 3s;
}

.circles li:nth-child(7){
    left: 35%;
    width: 150px;
    height: 150px;
    animation-delay: 7s;
}

.circles li:nth-child(8){
    left: 50%;
    width: 25px;
    height: 25px;
    animation-delay: 15s;
    animation-duration: 45s;
}

.circles li:nth-child(9){
    left: 20%;
    width: 15px;
    height: 15px;
    animation-delay: 2s;
    animation-duration: 35s;
}

.circles li:nth-child(10){
    left: 85%;
    width: 150px;
    height: 150px;
    animation-delay: 0s;
    animation-duration: 11s;
}



@keyframes animate {

    0%{
        transform: translateY(0) rotate(0deg);
        opacity: 1;
        border-radius: 0;
    }

    100%{
        transform: translateY(-1000px) rotate(720deg);
        opacity: 0;
        border-radius: 50%;
    }

}
    .page:not(.page .page) {
          margin: 1em;
    }

    .page {
      font-family: Inter;
      border-radius: 0.5em;
      max-width: 60em;
      color: rgba(55, 21, 21, 0.9);
      border: 1px solid rgba(255, 255, 255, 0.25);
      background: rgba(255, 255, 255, 0.25);
      box-shadow: 0 0 1em 0.5em rgba(55, 21, 21, 0.45);
      backdrop-filter: blur(1em);
      overflow: hidden;
    }

    .page .page {
      background-color: rgba(255, 255, 255, 0.3);
      backdrop-filter: blur(0.5em);
      border-width: 0;
    }

    .page .page .page {
      background-color: rgba(255, 255, 255, 0.34);
      backdrop-filter: blur(0.25em);
    }

    .page-box {
      padding: 1.5em;
    }

    .page h3 {
      color: #6f2a2a;
    }

    .header-title {
      text-transform: uppercase;
    }

    .header-text {
      font-weight: bold;
    }

    .body-text {
      font-size: 0.9em;
    }

    .footer-text {
      font-size: 0.75em;
    }
    
    
    /* Code block styling to match glassmorphism design */
div.sourceCode {
  border-radius: 0.5em;
  padding: 1em;
  margin: 1em 0;
  overflow-x: auto;
   border: 1px solid rgba(0, 0, 0, 0.25);
   background: rgba(0, 0, 0, 0.125);
   box-shadow: 0 0 1em 0.5em rgba(200, 234, 234, 0.45);
   backdrop-filter: blur(0.25em);
   overflow: hidden;
}

/* Code syntax highlighting */
.sourceCode pre {
  margin: 0;
  padding: 0;
  overflow-x: auto;
  color: rgba(55, 21, 21, 0.9);
  font-family: 'Courier New', Courier, monospace;
}
/* Syntax highlighting colors */
.sourceCode .bu {
  color: #a83232; /* Built-in functions - warmer red tone */
}
.sourceCode .kw {
  color: #b45f1c; /* Keywords - warm orange-brown */
}
.sourceCode .dv {
  color: #c77b36; /* Decimal values - warm orange */
}
.sourceCode .cf {
  color: #8f3a8b; /* Control flow - warm magenta-purple */
}
.sourceCode .op {
  color: rgba(87, 33, 33, 0.7); /* Operators - deeper warm reddish-brown */
}

    blockquote {
      font-family: Inter;
      border-radius: 0.5em;
      border: 1px solid rgba(121, 21, 255, 0.25);
      background: rgba(121, 21, 255, 0.1);
      color: rgba(55,21,21,0.75);
      box-shadow: 0 0 3em 1em rgba(66, 0, 234, 0.25);
      backdrop-filter: blur(4em);
      overflow: hidden;
      padding: 2em;
    }
  </style>
</head>
<body>
  <div class="page">
    <div class="page-box">
      <h1 id="cosa-si-intende-per-prestazioni-di-un-sistema-e-come-si-misurano" class="header-title">Cosa si intende per prestazioni di un sistema e come si misurano?</h1>
      <p class="body-text">Le prestazioni di un sistema informatico rappresentano la capacità del sistema di eseguire operazioni. Questo concetto è spesso associato alla velocità, ma include anche aspetti come l’efficienza energetica e la capacità di gestire carichi di lavoro complessi.</p>
      <p class="body-text">La misurazione delle prestazioni avviene principalmente attraverso il <strong>benchmarking</strong>, un processo che utilizza software specializzati per simulare vari scenari operativi e valutare le capacità del sistema. Le benchmark eseguono una serie di algoritmi e operazioni complesse e ne misurano la velocità di esecuzione, fornendo infine un punteggio numerico che riflette le prestazioni complessive o quelle specifiche di un componente, come CPU, GPU o disco di archiviazione.</p>
      <p class="body-text">In ambiti specifici come il gaming, le prestazioni vengono valutate tramite <strong>gaming benchmark</strong>, che si concentrano su metriche quali i <strong>fotogrammi per secondo (FPS)</strong> medi, massimi e minimi, oltre al consumo e alla temperatura dei principali componenti hardware (CPU, GPU e RAM). Questi ultimi sono spesso inclusi con il videogioco spesso, e aiutano a capire le performance che si possono ottenere in un determinato gioco con determinati componenti.</p>
        <div class="page">
    <div class="page-box">
      <h2 id="perché-è-importante-misurare-le-prestazioni" class="header-text">Perché è importante misurare le prestazioni?</h2>
      <p class="body-text">Ogni sistema informatico è costituito da molteplici componenti, ciascuno con caratteristiche diverse. La combinazione di questi elementi può generare variazioni significative nelle prestazioni complessive. Ad esempio, un sistema può essere limitato da un componente meno performante, fenomeno noto come <strong>bottleneck</strong> (in italiano, <em>collo di bottiglia</em>). In questi casi, metriche tradizionali come il MIPS di un processore <strong>non</strong> sono sufficienti a descrivere le <em>reali</em> capacità del sistema.</p>
      <blockquote class="body-text">
        <p>Un esempio pratico: immagina di ricevere in regalo un vecchio PC, e di decidere di utilizzarlo per il montaggio video (con software professionale come DaVinci Resolve). Non soddisfatto della sua velocità scadente, decidi di acquistare una nuova scheda grafica per migliorare le prestazioni di codifica e decodifica video. Tuttavia, l’Intel Celeron di seconda generazione del tuo <em>“nuovo”</em> PC, non è in grado di sfruttare pienamente la potenza dell’Nvidia 4090. Il risultato? Le prestazioni restano vastamente inferiori alle aspettative, perché il processore diventa il <em>bottleneck</em> del sistema.</p>
      </blockquote>
          </div>
  </div></div>
  <div class="page">
      <div class="page-box">
        <div class="footer-text">
        <p>Nome: Davide Monaco.<br>
        Classe: 3B IET <br>
        Data: 9 Dicembre 2024</p>
        </div>
      </div>
    </div>
    </div>
  </div>
  
  
  <div class="page">
    <div class="page-box">
      <h1 id="cosa-prevede-la-tecnica-della-pipeline" class="header-title">Cosa prevede la tecnica della pipeline?</h1>
      <p class="body-text">La tecnica della <strong>pipeline</strong> è un metodo utilizzato nei sistemi informatici, in particolare nei processori, per migliorare le prestazioni. Questo approccio permette di sovrapporre l’elaborazione di più istruzioni, aumentando l’efficienza e il <em>throughput</em> del sistema.</p>
      <p class="body-text">In una pipeline di un processore, l’esecuzione di un’istruzione viene suddivisa in <strong>fasi</strong>, come:</p>
      <ol class="body-text">
        <li><strong>Fetch</strong>: il processore recupera l’istruzione dalla memoria.</li>
        <li><strong>Decode</strong>: l’istruzione viene decodificata per determinare l’operazione da eseguire.</li>
        <li><strong>Execute</strong>: l’operazione viene eseguita (ad esempio, un calcolo aritmetico).</li>
        <li><strong>Memory Access</strong>: il processore accede alla memoria, se necessario.</li>
        <li><strong>Write-Back</strong>: il risultato viene scritto nel registro o nella memoria.</li>
      </ol>
      <p class="body-text">Con la pipeline, mentre un <em>thread</em> sta elaborando un’istruzione, altri <em>thread</em> possono lavorare contemporaneamente su istruzioni diverse. Ad esempio, mentre la prima istruzione è in fase di <strong>execute</strong>, la seconda può essere in <strong>decode</strong> e una terza in <strong>fetch</strong>.</p>
              <div class="page">
    <div class="page-box">
      <h2 id="vantaggi-della-pipeline" class="header-text">Vantaggi della pipeline:</h2>
      <ul class="body-text">
        <li><p><strong>Aumento del throughput</strong>: più istruzioni vengono elaborate contemporaneamente, migliorando la velocità complessiva del sistema.</p></li>
        <li><p><strong>Uso efficiente delle risorse</strong>: ogni <em>thread</em> del processore è attivamente impegnato in un’operazione specifica.</p></li>
      </ul>
                    <div class="page">
    <div class="page-box">
      <h2 id="limitazioni-della-pipeline" class="header-text">Limitazioni della pipeline:</h2>
      <ul class="body-text">
        <li><strong>Conflitto dati</strong>: quando un’istruzione dipende dai risultati di un’istruzione precedente non ancora completata.</li>
      </ul>
      <h5 id="esempio" class="footer-text">Esempio:</h5>
      <div class="sourceCode body-text" id="cb1"><pre class="sourceCode asm"><code class="sourceCode fasm"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="bu">add</span> <span class="kw">ax</span><span class="op">,</span> <span class="dv">5</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="bu">mul</span> <span class="kw">bx</span></span></code></pre></div>
      <ul class="body-text">
        <li><strong>Conflitto di controllo</strong>: legati alle istruzioni di salto o ramificazione, dove non è chiaro quale istruzione eseguire successivamente.</li>
      </ul>
      <h5 id="esempio-1" class="footer-text">Esempio:</h5>
      <div class="sourceCode body-text" id="cb2"><pre class="sourceCode asm"><code class="sourceCode fasm"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="bu">cmp</span> <span class="kw">ax</span><span class="op">,</span> <span class="dv">0</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="cf">jne</span> <span class="op">.</span>loop</span></code></pre></div>
          </div>
  </div>
            </div>
  </div>
    </div>
  <div class="page">
      <div class="page-box">
        <div class="footer-text">
        <p>Nome: Davide Monaco.<br>
        Classe: 3B IET <br>
        Data: 9 Dicembre 2024</p>
        </div>
      </div>
    </div>
  </div>

<!-- Animazione CSS gentilmente fornita da TokyoWeb. Licenza MIT. https://codepen.io/tokyoweb/pen/ZjdYVj -->

<div class="area" >
            <ul class="circles">
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
            </ul>
    </div >

</body>
</html>
