cambios SS 2024-10-29 10:16:54

This commit is contained in:
Jose
2024-10-29 10:16:54 +01:00
parent 4f6901a92d
commit e70d667f4d
6 changed files with 38 additions and 44 deletions

View File

@@ -78,9 +78,6 @@ double pp2()
| ![[Pasted image 20241022144832.png]] | ![[Pasted image 20241022150214.png]] |
(Todo para config1 y config2)
1. CPI (supertomasim)
2. CPI (reordenado). Cambiar escalaridad (m=1, m=grande).
3. Identificar CPI_bloq
5. GFLOPS (o MIPS)
6. CPI (pp2 pp4) y Ac
7. Cronograma

View File

@@ -215,3 +215,32 @@ En C/C++ parece fácil: usándolo. La mayoría de SO están escritos en C así q
- Portabilidad: binaria (raramente), source (hay que recompilar).
- API: nuevas funciones con cada versión y funciones deprecated.
## <mark style="background: #ADCCFFA6;">3. Programación en Windows desde C/C++</mark>
### <mark style="background: #FFB86CA6;">Tratamiento de cadenas y caracteres</mark>
- **ANSI 8 bits/ASCII con codificación MCBS:**
- Tipo `char`, `char*`, `char ...[]` (ANSI C)
- Tipos `CHAR` y variantes en Windows.h
- Las funciones estándar en C/C++ trabajan con ASCII: `printf`, `putc`, `getc`...
- **Unicode:**
- Uso interno en Windows (WCHAR y variantes)
- Estándar en otros lenguajes (Java, C#, Python,...)
- Funciones terminadas en W (`MessageBoxW`)
### <mark style="background: #FFB86CA6;">Tratamiento de errores</mark>
Las funciones devuelven un entero, y si este es negativo es que ha terminado con error. Para más información sobre el error se usa `GetLastError()` y para mensajes al usuario `FormatMessage()`.
# <mark style="background: #FFF3A3A6;">TEMA 5: Control de ejecución: procesos e hilos</mark>
En Windows todos los procesos tienen al menos el "main thread". El programa termina cuando termina el hilo principal. Dos modelos básicos:
- **Multihilo:** cada proceso tiene múltiples hilos. Típico de Windows aunque se usa cada vez más en UNIX/Linux.
- **Multiproceso:** múltiples procesos. Típico de UNIX/Linux, aunque también se puede en Windows. En Linux es **muy fácil** usando `fork()`.
## <mark style="background: #ADCCFFA6;">1. Operaciones básicas con hilos</mark>
Organizar la ejecución en varios hilos **¿para qué?**
EJEMPLO: Programa de proceso de audio
- **Hilo 1:** lee datos de la entrada de audio, los procesa y envía el resultado a la salida.
- Periódico
- Intensivo en datos
- Requiere velocidad de proceso
- **WORKER THREADS**
- **Hilo 2:** controla la UI (subir, bajar volumen, play, pause...) Complicado si alguna tarea es bloqueante.
- No periódico
- No intensivo
- No requiere velocidad de proceso
- **USER INTERFACE THREAD**
-

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB