Skip to content

Commit

Permalink
fix: enlaces a ejemplos
Browse files Browse the repository at this point in the history
  • Loading branch information
jesustorresdev committed Nov 1, 2024
1 parent 7620ab3 commit 452108e
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 7 deletions.
6 changes: 1 addition & 5 deletions content/C17-memoria_virtual.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -355,14 +355,10 @@ Deben coincidir con el modo con el que se abrió el archivo.
Una vez mapeado el archivo, si no se van a crear más mapeos, se puede cerrar el descriptor de archivo con {linux_close}.
Y la región de memoria mapeada se puede liberar, al terminar, con {linux_munmap}.

En {mapped_files_c} se puede ver un ejemplo de un programa que cuenta el número de líneas, palabra y caracteres de un archivo.
En {mapped_files_cpp} se puede ver un ejemplo de un programa que cuenta el número de líneas, palabra y caracteres de un archivo.
Para acceder al archivo, primero lo mapea en memoria, para así poder acceder a su contenido sin tener que leerlo usando {linux_read}.
Una vez ha terminado, libera la memoria mapeada.

El ejemplo en {mapped_files_cpp} es identico al de {mapped_files_c}, pero desarrollado en {cpp}.
Usa la clase definida en {memory_map_hpp} para abstraer la gestión del mapeo del archivo, por lo que en la implementación de sus métodos, obviamente, se utilizan las mismas llamadas al sistema que en {mapped_files_c}.
Este ejemplo es algo más complejo porque también muestra como manejar el puntero a la memoria mapeada de forma que sea liberada automáticamente cuando ya no es necesaria, siguiendo las pautas recomendadas en {cpp}.

Con Windows API el proceso requiere un paso más. Primero hay que usar el manejador del archivo abierto para crear un *objeto de mapeo de archivo* con {win32_createfilemapping}.
Después, el manejador devuelto por {win32_createfilemapping} es usado con {win32_mapviewoffile} para mapear el archivo en la memoria del proceso.

Expand Down
2 changes: 0 additions & 2 deletions content/enlaces.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,6 @@
:jthreads_factorial_cpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap12/jthreads-factorial.cpp[jthreads-factorial.cpp]
:shared_memory_control_cpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap11/shared-memory-control.cpp[shared-memory-control.cpp]
:shared_memory_cpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap11/shared-memory.cpp[shared-memory.cpp]
:memory_map_hpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap17/memory_map.hpp[memory_map.hpp]
:mapped_files_c: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap17/mapped-files.c[mapped-files.c]
:mapped_files_cpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap17/mapped-files.cpp[mapped-files.cpp]
:message_queue_hpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap10/message_queue.hpp[message_queue.hpp]
:mqueue_client_cpp: link:https://github.com/ull-esit-sistemas-operativos/ssoo-ejemplos/blob/{release}/src/cap10/mqueue-client.cpp[mqueue-client.cpp]
Expand Down

0 comments on commit 452108e

Please sign in to comment.