cambios SS 2024-10-24 12:44:01
This commit is contained in:
40
.obsidian/workspace.json
vendored
40
.obsidian/workspace.json
vendored
@@ -4,36 +4,24 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "c841a021395cc4d3",
|
||||
"id": "84c5dfd2b48489b3",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "d8a559569207f8b1",
|
||||
"id": "af3658905894d992",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "image",
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "TERCERO/SPD/images/Pasted image 20241022150214.png"
|
||||
"file": "TERCERO/SS/SS 24-25.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-image",
|
||||
"title": "Pasted image 20241022150214"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "2cf8494471daa0d9",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "diff-view",
|
||||
"state": {
|
||||
"file": "conflict-files-obsidian-git.md",
|
||||
"staged": false
|
||||
},
|
||||
"icon": "git-pull-request",
|
||||
"title": "Diff View (conflict-files-obsidian-git)"
|
||||
"icon": "lucide-file",
|
||||
"title": "SS 24-25"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 1
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
@@ -89,7 +77,8 @@
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300
|
||||
"width": 300,
|
||||
"collapsed": true
|
||||
},
|
||||
"right": {
|
||||
"id": "44cf06183e1c1c7d",
|
||||
@@ -186,10 +175,12 @@
|
||||
"obsidian-git:Open Git source control": false
|
||||
}
|
||||
},
|
||||
"active": "2cf8494471daa0d9",
|
||||
"active": "af3658905894d992",
|
||||
"lastOpenFiles": [
|
||||
"conflict-files-obsidian-git.md",
|
||||
"Pasted image 20241024113018.png",
|
||||
"Pasted image 20241024090239.png",
|
||||
"TERCERO/SPD/images/Pasted image 20241022150214.png",
|
||||
"conflict-files-obsidian-git.md",
|
||||
"TERCERO/ATR1/images/Pasted image 20241020204947.png",
|
||||
"TERCERO/ATR1/images/Pasted image 20241020204701.png",
|
||||
"TERCERO/ATR1/images/Pasted image 20241020204340.png",
|
||||
@@ -200,7 +191,6 @@
|
||||
"TERCERO/SPD/Teoría_2425.md",
|
||||
"TERCERO/SPD/images/Pasted image 20241022134454.png",
|
||||
"Imagen de WhatsApp 2024-10-22 a las 11.43.21_270060da.jpg",
|
||||
"TERCERO/IA/images/tic-tac-toe.gif",
|
||||
"TERCERO/IA/Teoría_2425.md",
|
||||
"TERCERO/SS/SS 24-25.md",
|
||||
"TERCERO/ATR1/Teoría_2425.md",
|
||||
|
||||
BIN
Pasted image 20241024090239.png
Normal file
BIN
Pasted image 20241024090239.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 193 KiB |
BIN
Pasted image 20241024113018.png
Normal file
BIN
Pasted image 20241024113018.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
@@ -182,3 +182,36 @@ 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.**
|
||||
|
||||
# <mark style="background: #FFF3A3A6;">TEMA 4: Modelo de programación de un SO</mark>
|
||||
### <mark style="background: #FFB86CA6;">Arquitectura de un SO</mark>
|
||||
|
||||
![[Pasted image 20241024090239.png|600]]
|
||||
|
||||
## <mark style="background: #ADCCFFA6;">1. Para qué programar directamente con el SO</mark>
|
||||
|
||||
![[Pasted image 20241024113018.png|600]]
|
||||
### <mark style="background: #FFB86CA6;">Como se usa indirectamente</mark>
|
||||
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
|
||||
### <mark style="background: #FFB86CA6;">Como se usa directamente</mark>
|
||||
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++.
|
||||
### <mark style="background: #FFB86CA6;">Por qué usarlo directamente</mark>
|
||||
- Se ahorra sobrecarga de la biblioteca/framework.
|
||||
- Acceso a todas las capacidades del SO
|
||||
- Ejemplos: `system`, `CreateProcess`
|
||||
- Más control de errores
|
||||
## <mark style="background: #ADCCFFA6;">2. Versiones de un SO</mark>
|
||||
- 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.
|
||||
## <mark style="background: #ADCCFFA6;">3. Programación en Windows desde C/C++</mark>
|
||||
|
||||
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user