fondamenti-01.tex 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. %\documentclass[10pt, a4paper, twocolumn, notitlepage]{article}
  2. \documentclass[10pt, a4paper, notitlepage]{article}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage{lipsum}
  5. \usepackage{biblatex}
  6. \usepackage{url}
  7. \usepackage{breakurl}
  8. \usepackage[breaklinks]{hyperref}
  9. %\addbibresource{bibliography.bib}
  10. \usepackage{comment}
  11. % Todo red marker
  12. \usepackage{xcolor}
  13. \newcommand{\todo}[1]{}
  14. \renewcommand{\todo}[1]{{\color{red} TODO: {#1}}}
  15. \begin{document}
  16. \title{\textbf{Informatica 2020-21\\}
  17. Esercizi di Introduzione}
  18. \author{Andrea Gussoni}
  19. \author{
  20. Andrea Gussoni\\
  21. andrea1.gussoni@polimi.it\\
  22. {Politecnico di Milano}\\
  23. }
  24. \date{March 9th, 2021}
  25. %\date{}
  26. \maketitle
  27. \section{Esercizi di codifica dell'informazione}
  28. \subsection{Conversione a base 10}
  29. Calcolare le conversione dei seguenti numeri in base 10:
  30. \begin{itemize}
  31. \item $101101_{2} = x_{10}$
  32. \item $101101_{5} = x_{10}$
  33. \item $42_{8} = x_{10}$
  34. \item $111_{3} = x_{10}$
  35. \item $BA_{16} = x_{10}$
  36. \end{itemize}
  37. \bigskip
  38. \noindent
  39. \paragraph{Soluzione:}\
  40. \begin{itemize}
  41. \item $101101_{2} = 45_{10}$
  42. \item $101101_{5} = 3276_{10}$
  43. \item $42_{8} = 34_{10}$
  44. \item $111_{3} = 13_{10}$
  45. \item $BA_{16} = 186_{10}$
  46. \end{itemize}
  47. \bigskip
  48. \subsection{Conversione da base 10 ad altra base}
  49. Calcolare le conversione dei seguenti numeri nella base indicata dal pedice:
  50. \begin{itemize}
  51. \item $128_{10} = x_{2}$
  52. \item $63_{10} = x_{2}$
  53. \item $77_{10} = x_{7}$
  54. \item $15_{10} = x_{3}$
  55. \item $46_{10} = x_{16}$
  56. \end{itemize}
  57. \textbf{NB.:} In base esadecimale, in aggiunta alle cifre 0-9, si usano anche le lettere A-F.
  58. \bigskip
  59. \noindent
  60. \paragraph{Soluzione:}\
  61. Utilizzando il metodo delle divisione successive, si ottiene:
  62. \begin{itemize}
  63. \item $128_{10} = 10000000_{2}$
  64. \item $63_{10} = 111111_{2}$
  65. \item $77_{10} = 140_{7}$
  66. \item $15_{10} = 120_{3}$
  67. \item $46_{10} = 2E_{16}$
  68. \end{itemize}
  69. \bigskip
  70. \subsection{Conversione in complemento a 2}
  71. Calcolare la conversione dei seguenti numeri in complemento a 2, usando 8 bit per la loro rappresentazione:
  72. \begin{itemize}
  73. \item $17_{10} = x_{c2}$
  74. \item $127_{10} = x_{c2}$
  75. \item $128_{10} = x_{c2}$
  76. \item $-21_{10} = x_{c2}$
  77. \item $-128_{10} = x_{c2}$
  78. \end{itemize}
  79. \bigskip
  80. \noindent
  81. \paragraph{Soluzione:}\
  82. \begin{itemize}
  83. \item $17_{10} = 00010001_{c2}$
  84. \item $127_{10} = 01111111_{c2}$
  85. \item $128_{10} = ???_{c2}$
  86. \item $-21_{10} = 11101011_{c2}$
  87. \item $-128_{10} = 10000000_{c2}$
  88. \end{itemize}
  89. \bigskip
  90. \subsection{Operazioni tra numeri in complemento a 2}
  91. Svolgere le operazioni seguenti tra numeri in complemento a 2, 8 bit:
  92. \begin{itemize}
  93. \item $+15_{10} + 30_{10}$
  94. \item $+10_{10} + 125_{10}$
  95. \item $127_{10} - 15_{10}$
  96. \item $-21_{10} - 32_{10}$
  97. \item $-115_{10} - 40_{10}$
  98. \end{itemize}
  99. \bigskip
  100. \noindent
  101. \paragraph{Soluzione:}\
  102. \begin{itemize}
  103. \item $+15_{10} + 30_{10} = 00001111_{c2} + 00011110_{c2} = 00101101_{c2} = 45_{10}$
  104. \item $+10_{10} + 125_{10} = 00001010_{c2} + 01111101_{c2} = 10000111_{c2} = -121_{10}$ (operandi concordi, risultato negativo, overflow)
  105. \item $127_{10} - 15_{10} = 01111111_{c2} + 11110001_{c2} = 01110000_{c2} = 112_{10}$
  106. \item $-21_{10} - 32_{10} = 11101011_{c2} + 11100000_{c2} = 11001011_{c2} = -53_{10}$
  107. \item $-115_{10} - 40_{10} = 10001101_{c2} + 11011000_{c2} = 01100101_{c2} = 101_{c10}$ (operandi concordi, risultato positivo, overflow)
  108. \end{itemize}
  109. \bigskip
  110. \subsection{Conversioni Binario, Decimale, Esadecimale, Ottale}
  111. Svolgere le seguenti conversioni rapide:
  112. \begin{itemize}
  113. \item $347_{8} = x_{2}$
  114. \item $347_{8} = x_{16}$
  115. \item $F3A5_{16} = x_{2}$
  116. \item $F3A5_{10} = x_{8}$
  117. \end{itemize}
  118. \bigskip
  119. \noindent
  120. \paragraph{Soluzione:}\
  121. \begin{itemize}
  122. \item $347_{8} = 011100111_{2}$
  123. \item $347_{8} = E7_{16}$
  124. \item $F3A5_{16} = 1111001110100101_{2}$
  125. \item $F3A5_{16} = 171645_{8}$
  126. \end{itemize}
  127. \bigskip
  128. \subsection{Codifica Floating Point}
  129. Conversioni in virgola fissa e virgola mobile.
  130. \begin{itemize}
  131. \item $0|1010.011_{2, virg fissa} = x_{10}$
  132. \item $17.675_{10} = x_{2, virg fissa}$
  133. \item $6.375_{10} = segno=x, exp=x, mantissa=x..._{2, virg mobile}$
  134. \end{itemize}
  135. \bigskip
  136. \noindent
  137. \paragraph{Soluzione:}\
  138. \begin{itemize}
  139. \item $0|1010.011_{2, virg fissa} = 10.375_{10}$
  140. \item $17.675_{10} = 0|10001.1010110_{2, virg fissa, ci fermiamo alla settima cifra frazionaria perchè periodico}$
  141. \item $6.375_{10} = segno=0, exp=00000010, mantissa=1001100..._{2, virg mobile}$
  142. \end{itemize}
  143. \bigskip
  144. \section{Esercizi di dimensionamento dati}
  145. \subsection{Video di Sorveglianza}
  146. Per la sorveglianza di un capannone aziendale, viene impiegata una fotocamera con risoluzione Full HD. Il flusso video generato è quindi composto da una sequenza di immagini (anche dette frame) ognuna con dimensione di $1920\times1080$ pixels. Ogni pixel è rappresentato da una tripletta RGB (Red, Green, Blue), ognuna occupante $24$ bit. Ogni secondo, la fotocamera registra $24$ frame. La policy di sicurezza dell'azienda prevede che i filmati debbano venire conservati per un periodo di 1 settimana. Calcolare la dimensione di memoria necessaria per soddisfare tale requisito.
  147. \bigskip
  148. \noindent
  149. \paragraph{Soluzione:}\
  150. Cominciamo calcolando quanta memoria necessita un singolo frame. Ad una risoluzione di $1920\times1080$ ogni frame racchiude un totale di $2073600$ pixels, ed ogni pixel necessita di $3$ byte. Questo significa che ogni fame occuperà uno spazio di circa $5.9 \; MiB$. Ogni secondo vengono catturati $24$ frames, per un totale di $5.9MiB * 24 \approx 141.6 \; MiB$. In una settimana, sono presenti $604800$ secondi, quindi per contenere una settimana di registrazioni saranno necessari $604800 * 141.6 \; MiB \approx 81.7 \; TiB$ di spazio.
  151. Questa quantità di memoria è molto elevata. Infatti, per memorizzare immagini e video si usano algoritmi di compressione che ne riducono di molto la dimensione.
  152. \subsection{SDR}
  153. La Software Defined Radio, è una recente tecnologia che permette di ricevere, analizzare e creare trasmissioni radio con tecnologia digitale in modo molto più economico di quanto avveniva in passato. Un software SDR, è in genere in grado di demodulare e salvare un segnale ricevuto sotto forma di registrazione audio. Il segnale viene salvato con un campionamento a $44.1kHz$, di due canali, dove ogni campione ha una dimensione di $24$ bit. Se assumiamo che il nostro software sia in grado di attivare automaticamente $1$ minuto di registrazione ogni volta che un segnale sopra una certa soglia viene ricevuto, quanta memoria servirà immagazzinare il risultato di $1000$ ricezioni di segnale? In aggiunta, ogni attivazione salverà anche $1 \; KiB$ di metadati per poter ricostruire il momento della registrazione.
  154. \bigskip
  155. \noindent
  156. \paragraph{Soluzione:}\
  157. Ogni secondo, il campionamento del segnale richiederà $44100 * 2 * 3B \approx 258.4 \; KiB$. Un minuto di registrazione, richiederà quindi $60 * 258.4 \; KiB \approx 15.1 \; MiB$. Se consideriamo quindi 1000 eventi di attivazione, serviranno $1000 * (15.1 \; MiB + 1 \; KiB) \approx 14.7 \; GiB$.
  158. \clearpage
  159. \clearpage
  160. \section{Installazione IDE}
  161. Controllare la pagina Beep per slides su installazione di un IDE (consigliato CodeBlocks) per seguire al meglio le prossime esercitazioni e sessioni di laboratorio.
  162. \end{document}