Format markdown

This commit is contained in:
Philipp Oppermann
2025-03-27 17:52:48 +01:00
parent 88fd5aabdd
commit 52b31ded4d
10 changed files with 91 additions and 91 deletions

View File

@@ -277,16 +277,16 @@ pub fn _print(args: fmt::Arguments) {
Bloquea el `WRITER`, llama a `write_fmt` en él y lo desbloquea implícitamente al final de la función. Ahora imagina que una interrupción ocurre mientras `WRITER` está bloqueado y el manejador de interrupciones intenta imprimir algo también:
Timestep | _start | manejador_interrupcion
---------|------|------------------
0 | llama a `println!` |  
1 | `print` bloquea `WRITER` |  
2 | | **ocurre la interrupción**, el manejador comienza a ejecutarse
3 | | llama a `println!` |
4 | | `print` intenta bloquear `WRITER` (ya bloqueado)
5 | | `print` intenta bloquear `WRITER` (ya bloqueado)
… | | …
_nunca_ | _desbloquear `WRITER`_ |
| Timestep | _start | manejador_interrupcion |
| -------- | ------------------------ | -------------------------------------------------------------- |
| 0 | llama a `println!` |   |
| 1 | `print` bloquea `WRITER` |   |
| 2 | | **ocurre la interrupción**, el manejador comienza a ejecutarse |
| 3 | | llama a `println!` |
| 4 | | `print` intenta bloquear `WRITER` (ya bloqueado) |
| 5 | | `print` intenta bloquear `WRITER` (ya bloqueado) |
| … | | … |
| _nunca_ | _desbloquear `WRITER`_ |
El `WRITER` está bloqueado, así que el manejador de interrupciones espera hasta que se libere. Pero esto nunca sucede, porque la función `_start` solo continúa ejecutándose después de que el manejador de interrupciones regrese. Así, todo el sistema se cuelga.
@@ -734,4 +734,4 @@ Ahora podemos interactuar con nuestro kernel y tenemos algunos bloques fundament
Las interrupciones de temporizador son esenciales para un sistema operativo porque proporcionan una manera de interrumpir periódicamente el proceso en ejecución y permitir que el kernel recupere el control. El kernel puede luego cambiar a un proceso diferente y crear la ilusión de que varios procesos se están ejecutando en paralelo.
Pero antes de que podamos crear procesos o hilos, necesitamos una forma de asignar memoria para ellos. Las próximas publicaciones explorarán la gestión de memoria para proporcionar este bloque fundamental.
Pero antes de que podamos crear procesos o hilos, necesitamos una forma de asignar memoria para ellos. Las próximas publicaciones explorarán la gestión de memoria para proporcionar este bloque fundamental.