cambios SS 2024-10-29 10:16:54
This commit is contained in:
@@ -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
|
||||
@@ -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**
|
||||
-
|
||||
BIN
TERCERO/SS/images/Pasted image 20241024090239.png
Normal file
BIN
TERCERO/SS/images/Pasted image 20241024090239.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 193 KiB |
BIN
TERCERO/SS/images/Pasted image 20241024113018.png
Normal file
BIN
TERCERO/SS/images/Pasted image 20241024113018.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
Reference in New Issue
Block a user