diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 9c6f5b4..a4436f3 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,11 +4,11 @@ "type": "split", "children": [ { - "id": "84c5dfd2b48489b3", + "id": "2b4a2a38f19c49b5", "type": "tabs", "children": [ { - "id": "af3658905894d992", + "id": "7d00eaebf5db2f27", "type": "leaf", "state": { "type": "markdown", @@ -20,23 +20,8 @@ "icon": "lucide-file", "title": "SS 24-25" } - }, - { - "id": "0137e113676ad163", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "conflict-files-obsidian-git.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "conflict-files-obsidian-git" - } } - ], - "currentTab": 1 + ] } ], "direction": "vertical" @@ -190,25 +175,25 @@ "obsidian-git:Open Git source control": false } }, - "active": "0137e113676ad163", + "active": "7d00eaebf5db2f27", "lastOpenFiles": [ + "TERCERO/SS/SS Lab.md", "TERCERO/SS/SS 24-25.md", + "TERCERO/SPD/P4_SPD.md", + "TERCERO/SPD/Teoría_2425.md", + "TERCERO/SS/images/Pasted image 20241024113018.png", + "TERCERO/SS/images/Pasted image 20241024090239.png", "conflict-files-obsidian-git.md", - "Pasted image 20241024113018.png", - "Pasted image 20241024090239.png", "TERCERO/SPD/images/Pasted image 20241022150214.png", "TERCERO/ATR1/images/Pasted image 20241020204947.png", "TERCERO/ATR1/images/Pasted image 20241020204701.png", "TERCERO/ATR1/images/Pasted image 20241020204340.png", "TERCERO/ATR1/images/Pasted image 20241020204107.png", - "TERCERO/SPD/P4_SPD.md", "TERCERO/SPD/images/Pasted image 20241022144832.png", "TERCERO/SPD/images/Pasted image 20241022144429.png", - "TERCERO/SPD/Teoría_2425.md", "TERCERO/SPD/images/Pasted image 20241022134454.png", "TERCERO/IA/Teoría_2425.md", "TERCERO/ATR1/Teoría_2425.md", - "TERCERO/SS/SS Lab.md", "SEGUNDO/ADDA/Teoría_2324.md", "TERCERO/IA/Apuntes Julia.md", "SEGUNDO/IISSI2/Teoría_2324.md", diff --git a/TERCERO/SPD/P4_SPD.md b/TERCERO/SPD/P4_SPD.md index cd0fe8c..7032c64 100644 --- a/TERCERO/SPD/P4_SPD.md +++ b/TERCERO/SPD/P4_SPD.md @@ -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 \ No newline at end of file diff --git a/TERCERO/SS/SS 24-25.md b/TERCERO/SS/SS 24-25.md index 9af7ee8..cec6699 100644 --- a/TERCERO/SS/SS 24-25.md +++ b/TERCERO/SS/SS 24-25.md @@ -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. ## 3. Programación en Windows desde C/C++ +### Tratamiento de cadenas y caracteres +- **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`) +### Tratamiento de errores +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()`. +# TEMA 5: Control de ejecución: procesos e hilos +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()`. +## 1. Operaciones básicas con hilos +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** +- \ No newline at end of file diff --git a/Pasted image 20241024090239.png b/TERCERO/SS/images/Pasted image 20241024090239.png similarity index 100% rename from Pasted image 20241024090239.png rename to TERCERO/SS/images/Pasted image 20241024090239.png diff --git a/Pasted image 20241024113018.png b/TERCERO/SS/images/Pasted image 20241024113018.png similarity index 100% rename from Pasted image 20241024113018.png rename to TERCERO/SS/images/Pasted image 20241024113018.png diff --git a/conflict-files-obsidian-git.md b/conflict-files-obsidian-git.md deleted file mode 100644 index d8bbd4f..0000000 --- a/conflict-files-obsidian-git.md +++ /dev/null @@ -1,17 +0,0 @@ -# Conflicts -Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push` -(This file will automatically be deleted before commit) -[[#Additional Instructions]] available below file list - -- Not a file: .obsidian/workspace.json - -# Additional Instructions -I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. - -```diff -<<<<<<< HEAD - File changes in local repository -======= - File changes in remote repository ->>>>>>> origin/main -``` \ No newline at end of file