diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index 2d5c187..b7ea70d 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -11,10 +11,14 @@
"id": "3b843e69b2a87354",
"type": "leaf",
"state": {
- "type": "empty",
- "state": {},
+ "type": "markdown",
+ "state": {
+ "file": "conflict-files-obsidian-git.md",
+ "mode": "source",
+ "source": false
+ },
"icon": "lucide-file",
- "title": "New tab"
+ "title": "conflict-files-obsidian-git"
}
}
]
@@ -171,8 +175,11 @@
"obsidian-advanced-slides:Show Slide Preview": false
}
},
- "active": "b40a18c39aef8e17",
+ "active": "3b843e69b2a87354",
"lastOpenFiles": [
+ "conflict-files-obsidian-git.md",
+ "TERCERO/SS/images/Pasted image 20241024113018.png",
+ "TERCERO/SS/images/Pasted image 20241024090239.png",
"TERCERO/SPD/Teoría_2425.md",
"TERCERO/SPD/Guión Practica 4 SPD.md",
"TERCERO/SPD/P4_SPD_Presentacion.md",
@@ -185,8 +192,6 @@
"TERCERO/SPD/images/Pasted image 20240916121903.png",
"export/P4_SPD_Presentacion/plugin/chalkboard/img/whiteboard.png",
"export/P4_SPD_Presentacion/plugin/chalkboard/img/chalk-yellow.png",
- "export/P4_SPD_Presentacion/plugin/chalkboard/img/sponge.png",
- "export/P4_SPD_Presentacion/plugin/chalkboard/img/chalk-white.png",
"export/P4_SPD_Presentacion/plugin/chalkboard/style.css",
"export/P4_SPD_Presentacion/plugin/chalkboard/_style.css",
"export/P4_SPD_Presentacion/plugin/chalkboard/plugin.js",
@@ -202,7 +207,6 @@
"export/P4_SPD_Presentacion/plugin/customcontrols/README.md",
"export/P4_SPD_Presentacion/plugin/menu/CONTRIBUTING.md",
"export/P4_SPD_Presentacion/plugin/menu/README.md",
- "conflict-files-obsidian-git.md",
"TERCERO/SS/SS Lab.md",
"TERCERO/SS/SS 24-25.md",
"TERCERO/ATR1/Teoría_2425.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 3d99a2d..cec6699 100644
--- a/TERCERO/SS/SS 24-25.md
+++ b/TERCERO/SS/SS 24-25.md
@@ -182,3 +182,65 @@ A diferencia del **enlace estático**, donde el ejecutable se construye totalmen
- Si lo hay, localiza la función en memoria y la enlaza. Además crea una nueva sección de datos para `printf` en el espacio de memoria virtual del nuevo programa.
- Al cerrarse todos los programas que usan ese código, se descarga de memoria.
**El objetivo es que todo programa en ejecución comparta el código de printf.obj pero que cada uno tenga una copia privada de los datos definidos en este.**
+
+# TEMA 4: Modelo de programación de un SO
+### Arquitectura de un SO
+
+![[Pasted image 20241024090239.png|600]]
+
+## 1. Para qué programar directamente con el SO
+
+![[Pasted image 20241024113018.png|600]]
+### Como se usa indirectamente
+Vía bibliotecas/runtime/frameworks del lenguaje. Por ejemplo:
+```C
+if( (stream = fopen("data", "w+" )) == NULL )
+```
+Flujo de parámetros: `fopen` $\rightarrow$ `CreateFile` $\rightarrow$ `NTCreateFile` $\rightarrow$ `Kernel`
+Flujo de errores es el inverso
+### Como se usa directamente
+En C/C++ parece fácil: usándolo. La mayoría de SO están escritos en C así que la API es accesible con C/C++.
+### Por qué usarlo directamente
+- Se ahorra sobrecarga de la biblioteca/framework.
+- Acceso a todas las capacidades del SO
+ - Ejemplos: `system`, `CreateProcess`
+- Más control de errores
+## 2. Versiones de un SO
+- Qué cambia entre versiones de un SO:
+ - Si se incluyen o no algunos módulos
+ - Evolución del kernel
+- Soporte del procesador
+ - En Windows (NT): x86, x64... Poca variedad comparado con otros SO.
+- ¿Qué implica?
+ - 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/TERCERO/SS/images/Pasted image 20241024090239.png b/TERCERO/SS/images/Pasted image 20241024090239.png
new file mode 100644
index 0000000..3b874d0
Binary files /dev/null and b/TERCERO/SS/images/Pasted image 20241024090239.png differ
diff --git a/TERCERO/SS/images/Pasted image 20241024113018.png b/TERCERO/SS/images/Pasted image 20241024113018.png
new file mode 100644
index 0000000..931ec43
Binary files /dev/null and b/TERCERO/SS/images/Pasted image 20241024113018.png differ