Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/translations/freebsd-doc/articles_vm-design/es/changes/?format=api&page=2
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 140,
    "next": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/changes/?format=api&page=3",
    "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/changes/?format=api",
    "results": [
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207398/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T07:28:41.381486Z",
            "action": 2,
            "target": "Este modelo crea un número de problemas potenciales. El primero es que puedes terminar con una pila de Objetos de Memoria Virtual relativamente profunda que puede tener un coste de tiempo de escaneo y de memoria cuando recibes un fallo. Capas muy profundas pueden ocurrir cuando los procesos se bifurcan y se bifurcan de nuevo (en el padre o en el hijo). El segundo problema es que puedes terminar con páginas muertas, inaccesibles en lo profundo de la pila de Objetos de Memoria Virtual. En nuestro último ejemplo si tanto los el proceso padre como el hijo modifican la misma página, ambos obtienen su propia copia privada de la página y la página original en B ya no es accesible por nadie. Esa página en B puede ser liberada.",
            "id": 106874,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106874/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207399/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T12:40:41.628532Z",
            "action": 5,
            "target": "FreeBSD soluciona el problema de capas profundas con una optimización especial llamada <quote>Caso de Todo Sombreado</quote>. Este caso ocurre si C1 o C2 generan suficientes fallos COW como para sombrear (ocultar) todas las páginas en B. Digamos que C1 lo consigue. C1 puede ahora puentear B completamente, así que en lugar de tener C1-&gt;B-&gt;A y C2-&gt;B-&gt;A ahora tenemos C1-&gt;A y C2-&gt;B-&gt;A. Pero mira lo que ha pasado también—ahora B tiene sólo una referencia (C1), así que podemos colapsar B y C2 juntas. El resultado final es que B se borra completamente y tenemos C1-&gt;A y C2-&gt;A. Habitualmente el caso es que B contendrá un gran número de páginas y ni C1 ni C2 serán capaces de ocultarla completamente. Si bifurcamos de nuevo y creamos un conjunto de capas D, sin embargo, es mucho más probable que una de las capas de D eventualmente sea capaz de ocultar el conjunto mucho menor representado por C1 o C2. La misma optimización funcionará en cualquier punto del grafo y el resultado total de esto es que incluso en una máquina con muchas bifurcaciones las pilas de Objetos de Memoria Virtual tienen a no ser mucho más profundas de 4. Esto es verdad tanto para el padre como para los hijos y es así tanto si el padre hace la bifurcación como si los hijos bifurcan en cascada.",
            "id": 106876,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106876/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207400/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T12:42:22.446855Z",
            "action": 5,
            "target": "El problema de la página muerta todavía existe en el caso en el que C1 o C2 no ocultan completamente B. Debido a otras optimizaciones este caso no es demasiado problema y simplemente permitimos que haya páginas muertas. Si el sistema se queda sin memoria las intercambiará a disco, utilizando un poco de espacio de intercambio, pero eso es todo.",
            "id": 106877,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106877/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207401/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T13:15:08.594110Z",
            "action": 5,
            "target": "La ventaja del modelo de Objetos de Memoria Virtual es que <function>fork()</function> es extremadamente rápido, ya que no se necesita realizar una copia real de datos. La desventaja es que puedes construir un conjunto de capas de Objetos de Memoria Virtual relativamente complejo que haga un poco más lento el manejo de fallos de página, y que tienes que gastar memoria en la gestión de las estructuras de los Objetos de Memoria Virtual. Las optimizaciones que hace FreeBSD demuestran que reducen los problemas lo suficiente de forma que pueden ser ignorados, eliminando prácticamente la desventaja.",
            "id": 106878,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106878/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207402/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T13:15:18.815874Z",
            "action": 5,
            "target": "Capas de Intercambio",
            "id": 106879,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106879/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207403/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:06:56.215135Z",
            "action": 5,
            "target": "Las páginas de datos privadas se crean como páginas copy-on-write o rellenas con ceros. Cuando se hace un cambio, y por lo tanto una copia, el objeto de respaldo original (normalmente un fichero) ya no puede ser utilizado para guardar una copia de la página cuando el sistema de Memoria Virtual necesita reutilizarla para otros fines. Aquí es donde aparece el Intercambio. El Intercambio se asigna para crear almacenamiento de respaldo para memoria que de otra forma no la tendría. FreeBSD asigna la estructura de gestión del intercambio para un Objeto de Memoria Virtual solo cuando se necesita realmente. Sin embargo históricamente, la estructura de gestión del intercambio ha tenido problemas:",
            "id": 106881,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106881/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207404/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:09:31.800684Z",
            "action": 5,
            "target": "En FreeBSD 3.X la estructura de gestión de intercambio preasigna un array que engloba todo el objeto que requiere almacenamiento de respaldo de intercambio—incluso si solo unas pocas páginas de ese objeto están respaldadas en el área de intercambio. Esto crea un problema de fragmentación de la memoria del núcleo cuando se mapean objetos grandes, o cuando procesos con tamaños de ejecución grandes (RSS) bifurcan.",
            "id": 106882,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106882/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207405/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:11:31.351767Z",
            "action": 5,
            "target": "Además, para llevar la cuenta del espacio de intercambio, una <quote>lista de huecos</quote> es mantenida en la memoria del núcleo, y esta tiende a fragmentarse de forma severa también. Puesto que la <quote>lista de huecos</quote> es una lista lineal, el rendimiento de asignación y liberación de intercambio es de un orden subóptimo de O(n) por página.",
            "id": 106883,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106883/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207406/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:13:04.036806Z",
            "action": 5,
            "target": "Requiere que se lleven a cabo asignaciones de memoria del núcleo durante el proceso de liberación de espacio de intercambio, y eso crea problemas de bloqueo por baja memoria.",
            "id": 106884,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106884/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207407/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:13:59.251305Z",
            "action": 5,
            "target": "El problema se exacerba debido a los huecos creados por el algoritmo de entrelazado.",
            "id": 106885,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106885/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207408/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:14:33.988997Z",
            "action": 5,
            "target": "Además, el mapa de bloques de intercambio se puede fragmentar fácilmente dando como resultado asignaciones no contiguas.",
            "id": 106886,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106886/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207409/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:16:26.969889Z",
            "action": 5,
            "target": "La memoria del núcleo se debe asignar al vuelo para las estructuras adicionales de gestión de intercambio cuando se escribe en el área de intercambio.",
            "id": 106887,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106887/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207410/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:17:22.038608Z",
            "action": 5,
            "target": "De esa lista se hace evidente que había mucho margen de mejora. Para FreeBSD 4.X, reescribí completamente el subsistema de intercambio:",
            "id": 106888,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106888/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207411/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:18:29.532867Z",
            "action": 3,
            "target": "",
            "id": 106889,
            "action_name": "添加了评论",
            "url": "https://translate-dev.freebsd.org/api/changes/106889/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207411/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:18:33.315176Z",
            "action": 5,
            "target": "Las estructuras de gestión de intercambio se asignan mediante una tabla has en lugar de un array lineal dándoles un tamaño de asignación fijo y mucha mayor granularidad.",
            "id": 106890,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106890/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207412/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:21:03.019309Z",
            "action": 3,
            "target": "",
            "id": 106891,
            "action_name": "添加了评论",
            "url": "https://translate-dev.freebsd.org/api/changes/106891/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207412/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:21:05.518141Z",
            "action": 5,
            "target": "En lugar de utilizar una lista enlazada linear para llevar la cuenta de las reservas de espacio de intercambio, ahora usa un mapa de bits de bloques de intercambio dispuestos en una estructura tipo árbol radix con anotaciones sobre el espacio libre en las estructuras de nodos del radix.",
            "id": 106892,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106892/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207413/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:22:40.727257Z",
            "action": 5,
            "target": "El mapa de bits entero para el árbol radix también se preasigna para evitar tener que asignar memoria del núcleo durante operaciones de intercambio con un nivel crítico de memoria baja. Después de todo, el sistema tiende a utilizar intercambio cuando está bajo en memoria de forma que deberíamos evitar asignar memoria del núcleo en esas situaciones para evitar potenciales bloqueos.",
            "id": 106893,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106893/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207414/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:23:36.259855Z",
            "action": 5,
            "target": "Para reducir la fragmentación el árbol radix es capaz de asignar de una sola vez grandes trozos contiguos, saltándose pequeños trozos fragmentados.",
            "id": 106895,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106895/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207415/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:25:26.931083Z",
            "action": 5,
            "target": "No realicé el paso final de tener un <quote>puntero de anotaciones para las asignaciones</quote> que recorrería una porción del espacio de intercambio según se hicieran las asignaciones para así garantizar asignaciones contiguas o al menos localidad de referencia, pero aseguré que esa condición no podría darse.",
            "id": 106896,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106896/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207416/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:25:35.114366Z",
            "action": 5,
            "target": "Cuando liberar una página",
            "id": 106897,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106897/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207417/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:30:25.744413Z",
            "action": 5,
            "target": "Como el sistema de Memoria Virtual usa toda la memoria disponible para cachear disco, normalmente hay pocas páginas que estén realmente libres. El sistema de Memoria Virtual depende de su habilidad para adecuadamente escoger las páginas que no están en uso para reutilizarlas en nuevas asignaciones. Seleccionar las páginas óptimas para liberar es posiblemente la función más importante que cualquier sistema de Memoria Virtual puede realizar porque si la elección no es buena, el sistema de Memoria Virtual puede verse forzada a recuperar páginas de disco innecesariamente, degradando seriamente el rendimiento del sistema.",
            "id": 106898,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106898/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207418/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:33:45.023844Z",
            "action": 5,
            "target": "¿Cuánto trabajo extra estamos dispuestos a sufrir en el camino crítico para evitar liberar la página equivocada? Cada decisión errónea que hacemos costará cientos de miles de ciclos de CPU y una parada notable de los procesos afectados, así que estamos dispuestos a soportar una cantidad significativa de trabajo extra para estar seguros que que se escoge la página adecuada. Por esto es por lo que FreeBSD tiende a superar en rendimiento a otros sistemas cuando se estresan los recursos de memoria.",
            "id": 106899,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106899/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207418/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:34:06.786285Z",
            "action": 2,
            "target": "¿Cuánto trabajo extra estamos dispuestos a sufrir en el camino crítico para evitar liberar la página equivocada? Cada decisión errónea que hacemos costará cientos de miles de ciclos de CPU y una parada notable de los procesos afectados, así que estamos dispuestos a soportar una cantidad significativa de trabajo extra para estar seguros que se escoge la página adecuada. Por esto es por lo que FreeBSD tiende a superar en rendimiento a otros sistemas cuando se estresan los recursos de memoria.",
            "id": 106900,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106900/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207419/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:35:57.154286Z",
            "action": 5,
            "target": "El algoritmo que determina la página libre se construye en base al histórico de uso de las páginas de memoria. Para adquirir este histórico, el sistema se aprovecha de la característica del bit de página utilizada que la mayoría del hardware de tablas de página posee.",
            "id": 106901,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106901/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207420/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:39:46.484157Z",
            "action": 5,
            "target": "En cualquier caso, el bit de página utilizada se blanquea y en algún momento posterior el sistema de Memoria Virtual se encuentra con la página de nuevo y vee que el bit de página utilizada ha sido marcado. Esto indica que la página todavía se está utilizando activamente. Si el bit está blanqueado  eso indica que la página no se usa activamente. Mediante el chequeo periódico de este bit, se desarrollo (en forma de contador) un histórico de uso . Cuando posteriormente el sistema de Memoria Virtual necesita liberar algunas páginas, examinar este histórico se convierte en la piedra de toque para determinar la mejor página candidata para reutilizar.",
            "id": 106902,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106902/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207420/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:39:53.350546Z",
            "action": 2,
            "target": "En cualquier caso, el bit de página utilizada se blanquea y en algún momento posterior el sistema de Memoria Virtual se encuentra con la página de nuevo y vee que el bit de página utilizada ha sido marcado. Esto indica que la página todavía se está utilizando activamente. Si el bit está blanqueado eso indica que la página no se usa activamente. Mediante el chequeo periódico de este bit, se desarrollo (en forma de contador) un histórico de uso . Cuando posteriormente el sistema de Memoria Virtual necesita liberar algunas páginas, examinar este histórico se convierte en la piedra de toque para determinar la mejor página candidata para reutilizar.",
            "id": 106903,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106903/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207421/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:40:20.162127Z",
            "action": 5,
            "target": "¿Qué ocurre si el hardware no tiene bit de página utilizada?",
            "id": 106904,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106904/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207422/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:43:11.589526Z",
            "action": 5,
            "target": "Para esas plataformas que no tienen esta característica, el sistema en realidad emula un bit de página utilizada. Desmapea o protege una página, forzando un fallo de página si ésta es accedida de nuevo. Cuando se maneja el fallo de página, el sistema simplemente marca la página como usada y desprotege la página de forma que puede ser utilizada. Aunque realizar este fallo de página tan solo para determinar si una página está siendo usada puede parecer una proposición cara, es mucho menos cara que reutilizar la página para otro propósito para darse cuenta después de que otro proceso la necesita y tener que ir al disco.",
            "id": 106905,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106905/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207423/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:52:45.096576Z",
            "action": 5,
            "target": "FreeBSD utiliza varias colas de páginas para refinar aún más la selección de páginas a reutilizar así como para determinar cuando se deben llevar las páginas sucias a su almacenamiento de respaldo. Puesto que las tablas de páginas en FreeBSD son entidades dinámicas, cuesta virtualmente nada desmapear una página del espacio de direcciones de cualquier proceso que la esté usando. Cuando se ha escogido una página candidata basándose en el contador de página utilizada, esto es precisamente lo que se hace. El sistema debe distinguier entre páginas limpias que pueden en teoría ser liberadas en cualquier momento, y páginas sucias que deben ser escritas primero en el almacenamiento de respaldo antes de ser reutilizadas. Cuando se encuentra una página candidata se mueve a la cola inactiva si está sucia, o a la cola de caché si está limpia. In algoritmo separado que se bajas en el ratio de páginas sucias respecto de las limpias determina cuándo se tienen que escribir a disco las páginas sucias de la cola inactiva. Una vez hecho esto, las páginas escritas se mueven de la cola inactiva a la cola de caché. En este punto, las páginas en la cola de caché todavía pueden ser reactivadas por un fallo de Memoria Virtual con un coste relativamente bajo. Sin embargo, las páginas  de la cola de caché se consideran como <quote>inmediatamente liberables</quote> y serán reutilizadas de modo LRU (Usada Menos Recientemente) cuando el sistema necesita asignar nueva memoria.",
            "id": 106906,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106906/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207423/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T17:52:59.530771Z",
            "action": 2,
            "target": "FreeBSD utiliza varias colas de páginas para refinar aún más la selección de páginas a reutilizar así como para determinar cuando se deben llevar las páginas sucias a su almacenamiento de respaldo. Puesto que las tablas de páginas en FreeBSD son entidades dinámicas, cuesta virtualmente nada desmapear una página del espacio de direcciones de cualquier proceso que la esté usando. Cuando se ha escogido una página candidata basándose en el contador de página utilizada, esto es precisamente lo que se hace. El sistema debe distinguier entre páginas limpias que pueden en teoría ser liberadas en cualquier momento, y páginas sucias que deben ser escritas primero en el almacenamiento de respaldo antes de ser reutilizadas. Cuando se encuentra una página candidata se mueve a la cola inactiva si está sucia, o a la cola de caché si está limpia. In algoritmo separado que se bajas en el ratio de páginas sucias respecto de las limpias determina cuándo se tienen que escribir a disco las páginas sucias de la cola inactiva. Una vez hecho esto, las páginas escritas se mueven de la cola inactiva a la cola de caché. En este punto, las páginas en la cola de caché todavía pueden ser reactivadas por un fallo de Memoria Virtual con un coste relativamente bajo. Sin embargo, las páginas de la cola de caché se consideran como <quote>inmediatamente liberables</quote> y serán reutilizadas de modo LRU (Usada Menos Recientemente) cuando el sistema necesita asignar nueva memoria.",
            "id": 106907,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106907/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207424/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T18:02:04.275233Z",
            "action": 5,
            "target": "Es importante señalar que el sistema de Memoria Virtual de FreeBSD intenta separar páginas limpias y sucias para expresar la razón de evitar la escritura innecesaria de páginas sucias (que come ancho de banda de E/S), y tampoco mueve de forma gratuita páginas entre distintas colas de páginas cuando el sistema de memoria no está bajo estrés. Este es el motivo por el que verás algunos sistemas con contadores de cola de caché muy bajos y contadores de cola de páginas activa altos cuando se ejecuta el comando <command>systat -vm</command>. Según el sistema de Memeoria Virtual va sufriendo más estrés, hace un gran esfuerzo por mantener varias colas de páginas en los niveles que determina que son más efectivos.",
            "id": 106908,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106908/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207425/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T18:04:44.183611Z",
            "action": 5,
            "target": "Durante años ha circulado una leyenda urbana acerca de que Linux hacía un mejor trabajo que FreeBSD evitando escribir en intercambio, pero de hecho esto no es cierto. Lo que ocurría en realidad era que FreeBSD estaba llevando a intercambio de forma proactiva páginas no utilizadas para hacer sitio para más caché de disco mientras que Linux estaba manteniendo las páginas sin utilizar y dejando menos memoria disponible para la caché y para páginas de procesos. No sé si esto sigue siendo cierto a día de hoy.",
            "id": 106909,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106909/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207426/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T18:05:40.142678Z",
            "action": 5,
            "target": "Optimizaciones de Prefallo y de Rellenado con Ceros",
            "id": 106910,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106910/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207427/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:28:40.556347Z",
            "action": 5,
            "target": "Realizar un fallo de Memoria Virtual no es caro y la página subyacente ya está cargada y simplemente puede ser mapeada en el proceso, pero puede ser costoso si hay muchas de ellas de forma regular. Un buen ejemplo de esto es ejecutar un programa como <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> o <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> una y otra vez. Si el programa binario está mapeado en la memoria pero no lo está en la tabla de páginas, entonces todas las páginas que serán accedidas por el programa generarán un fallo cada vez que el programa se ejecute. Esto es innecesario cuando las páginas en cuestión ya están en la Caché de Memoria Virtual, de modo que FreeBSD intentará pre-poblar las tablas de páginas de un proceso con aquellas páginas que ya están en la Caché de Memoria Virtual. Algo que FreeBSD no hace todavía es un pre-copy-on-write de ciertas páginas al hacer exec. Por ejemplo, si ejecutas el programa <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> mientras ejecutas <command>vmstat 1</command> notarás que siempre produce un cierto número de fallos de página, incluso cuando lo ejecutas una y otra vez. Estos son fallos de página de rellenados de ceros, no fallos de código de programa (que ya han sido pre-fallados). Realizar una pre-copia de páginas en un exec o fork es un área en el que ser sujeto de más estudio.",
            "id": 106911,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106911/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207427/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:29:52.894059Z",
            "action": 2,
            "target": "Realizar un fallo de Memoria Virtual no es costoso y la página subyacente ya está cargada y simplemente puede ser mapeada en el proceso, pero puede ser costoso si hay muchas de ellas de forma regular. Un buen ejemplo de esto es ejecutar un programa como <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> o <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> una y otra vez. Si el programa binario está mapeado en la memoria pero no lo está en la tabla de páginas, entonces todas las páginas que serán accedidas por el programa generarán un fallo cada vez que el programa se ejecute. Esto es innecesario cuando las páginas en cuestión ya están en la Caché de Memoria Virtual, de modo que FreeBSD intentará pre-poblar las tablas de páginas de un proceso con aquellas páginas que ya están en la Caché de Memoria Virtual. Algo que FreeBSD no hace todavía es un pre-copy-on-write de ciertas páginas al hacer exec. Por ejemplo, si ejecutas el programa <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> mientras ejecutas <command>vmstat 1</command> notarás que siempre produce un cierto número de fallos de página, incluso cuando lo ejecutas una y otra vez. Estos son fallos de página de rellenados de ceros, no fallos de código de programa (que ya han sido pre-fallados). Realizar una pre-copia de páginas en un exec o fork es un área en el que ser sujeto de más estudio.",
            "id": 106912,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106912/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207362/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:30:17.780768Z",
            "action": 2,
            "target": "Fernando Apesteguía fernape@FreeBSD.org, 2021",
            "id": 106913,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106913/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207428/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:36:42.224226Z",
            "action": 5,
            "target": "Un gran porcentaje de los fallos de página que se producen son fallos de rellenado de ceros. Habitualmente puedes verlo observando la salida del comando<command>vmstat -s</command>. Esto ocurre cuando un proceso accede a páginas de su área de BSS. Se espera que el área de BSS esté inicializada a cero pero el sistema de Memoria Virtual no se molesta en asignar ninguna memoria en absoluto hasta el momento en el que el proceso accede de verdad. Cuando se produce un fallo el sistema de Memoria Virtual no solo debe asignar una nueva página, tiene que inicializarla a cero también. Para optimizar la operación de rellenado de ceros el sistema de Memoria Virtual tiene la capacidad de pre-inicializar páginas a cero y marcarlas como tal, y solicitar páginas pre-inicializadas a cero cuando ocurre un fallo de rellenado de ceros. La pre-inicialización a cero ocurren cuando la CPU está ociosa pero el número de páginas que el sistema pre-inicializa a cero está limitado para evitar destrozar las cachés de memoria. Este es un ejemplo excelente de cómo añadir complejidad al sistema de Memoria Virtual para optimizar el camino crítico.",
            "id": 106915,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106915/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207429/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:36:53.680913Z",
            "action": 5,
            "target": "Optimizaciones de la Tabla de Páginas",
            "id": 106916,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106916/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207430/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:46:25.471976Z",
            "action": 5,
            "target": "Las optimizaciones de la tabla de páginas constituyen la parte más controvertida del diseño de la Memoria Virtual de FreeBSD y ha mostrado cierta tensión con la llegada de uso  serio de <function>mmap()</function>. Creo que esto en realidad es una característica de la mayor parte de los BSDS aunque no estoy seguro de cuándo se introdujo por primera vez. Hay dos optimizaciones principales. La primar es que las tablas de páginas hardware no contienen un estado persistente sino que pueden descartarse en cualquier momento con solo un pequeño sobre coste en la gestión. La segunda es que cada entrada en la tabla de páginas activas en el sistema tiene una estructura <literal>pv_entry</literal> que lo gobierna la cual está enlazada a la estructura <literal>vm_page</literal>. FreeBSD puede simplemente iterar sobre esos mapeos que se sabe que existen mientras Linux tiene que comprobar todas las tablas de páginas que <emphasis>podrían</emphasis>  contener un mapeo específico para ver si es así, lo que puede provocar un sobre coste de O(n^2) en algunas situaciones. Por esto FreeBSD tiene a tomar mejores decisiones sobre qué páginas reutilizar o intercambiar cuando la memoria está bajo estrés, resultando en un mejor rendimiento bajo carga. Sin embargo, FreeBSD requiere ajustes del núcleo para acomodar situaciones con grandes espacios de direcciones  compartidos como los que pueden darse en sistemas nuevos porque podría agotar las estructuras <literal>pv_entry</literal>.",
            "id": 106917,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106917/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207430/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:46:29.353415Z",
            "action": 2,
            "target": "Las optimizaciones de la tabla de páginas constituyen la parte más controvertida del diseño de la Memoria Virtual de FreeBSD y ha mostrado cierta tensión con la llegada de uso serio de <function>mmap()</function>. Creo que esto en realidad es una característica de la mayor parte de los BSDS aunque no estoy seguro de cuándo se introdujo por primera vez. Hay dos optimizaciones principales. La primar es que las tablas de páginas hardware no contienen un estado persistente sino que pueden descartarse en cualquier momento con solo un pequeño sobre coste en la gestión. La segunda es que cada entrada en la tabla de páginas activas en el sistema tiene una estructura <literal>pv_entry</literal> que lo gobierna la cual está enlazada a la estructura <literal>vm_page</literal>. FreeBSD puede simplemente iterar sobre esos mapeos que se sabe que existen mientras Linux tiene que comprobar todas las tablas de páginas que <emphasis>podrían</emphasis>  contener un mapeo específico para ver si es así, lo que puede provocar un sobre coste de O(n^2) en algunas situaciones. Por esto FreeBSD tiene a tomar mejores decisiones sobre qué páginas reutilizar o intercambiar cuando la memoria está bajo estrés, resultando en un mejor rendimiento bajo carga. Sin embargo, FreeBSD requiere ajustes del núcleo para acomodar situaciones con grandes espacios de direcciones  compartidos como los que pueden darse en sistemas nuevos porque podría agotar las estructuras <literal>pv_entry</literal>.",
            "id": 106918,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106918/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207431/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:50:15.465571Z",
            "action": 5,
            "target": "Tanto Linux como FreeBSD necesitan trabajar en este área. FreeBSD trata de maximizar la ventaja de un potencialmente escado modelo de mapeo activo (no todos los procesos necesitan mapear todas las páginas de una biblioteca compartida por ejemplo), mientras que Linux trata de simplificar sus algoritmos. FreeBSD en general tiene la venta del rendimiento a costa de gastar algo más de memoria extra, pero FreeBSD se desmorona en el caso donde un fichero grande está compartido de forma masiva entre cientos de procesos. Linux, por otro lado, se desmorona en el caso donde muchos procesos mapean pocas porciones de la misma biblioteca compartida y también se ejecuta de forma no-óptima cuando intenta determinar si una página puede ser reutilizada o no.",
            "id": 106919,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106919/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207432/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:50:22.328891Z",
            "action": 5,
            "target": "Coloreado de Páginas",
            "id": 106920,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106920/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207433/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-15T19:56:30.624404Z",
            "action": 5,
            "target": "Terminaremos con las optimizaciones de coloreado de páginas. El coloreado de páginas es una optimización de rendimiento diseñada para asegurar que el acceso a páginas contiguas en memoria virtual hacen el mejor uso posible de la caché del procesador. Hace mucho tiempo (es decir, más de 10 años) las cachés de los procesadores solían mapear memoria virtual en lugar de memoria física. Esto produjo un gran número de problemas que incluyen tener que limpiar la caché en cada cambio de contexto en algunos casos, y problemas con los alias de datos en la caché. De hecho, si no tienes cuidado, páginas contiguas en memoria virtual podrían terminar utilizando la misma página en la caché del procesador—llevando a desechar prematuramente datos cacheables y reduciendo el rendimiento de la CPU. Esto es cierto incluso en cachés asociativas multi direccionales (aunque el efecto se mitiga algo).",
            "id": 106921,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/106921/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207434/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-17T16:25:37.450193Z",
            "action": 5,
            "target": "El código de asignación de memoria de FreeBSD implementa optimizaciones de coloreado de páginas, lo que significa que el código se asignación de memoria intentará localizar páginas libres que son contiguas desde el punto de vista de la caché. Por ejemplo, si la página 16 de memoria física está asignada a la página 0 de la memoria virtual del proceso y la caché puede mantener 4 páginas, el código de coloreado de páginas no asignará la página 20 de memoria física a la página 1 de la memoria virtual de un proceso. En su lugar, asignaría la página 21 de memoria física. El código de coloreado de páginas intenta evitar la asignación de la página 20 porque esto mapea sobre la misma memoria cacheada que la página 16 y resultaría en un cacheo no óptimo. Este código añade una significativa complejidad al subsistema de asignación de memoria de la Memoria Virtual como puedes imaginar, pero el resultado merece la pena. El Coloreado de Páginas hace que la memoria de la Memoria Virtual sea tan determinista como la memoria física en términos de rendimiento de caché.",
            "id": 107055,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/107055/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207435/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-17T16:25:44.722913Z",
            "action": 5,
            "target": "Conclusión",
            "id": 107056,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/107056/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207436/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-17T16:29:41.186115Z",
            "action": 5,
            "target": "La Memoria Virtual en lo sistemas operativos modernos deben afrontar diversas situaciones de forma eficiente y para muchos patrones de uso distintos. La aproximación modular y algorítmica que históricamente ha tomado BSD nos permite estudiar y entender la implementación actual así como reemplazar piezas de código relativamente grandes de forma también relativamente limpia. Ha habido una serie de mejoras en el sistema e Memoria Virtual de FreeBSD en los últimos años, y el trabajo continua.",
            "id": 107057,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/107057/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207437/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-17T16:30:39.333606Z",
            "action": 5,
            "target": "Sesión extra de Preguntas y Respuestas por Allen Briggs <email>briggs@ninthwonder.com</email>",
            "id": 107058,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/107058/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207438/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-17T16:30:58.752997Z",
            "action": 4,
            "target": "¿Qué es el <quote>algoritmo",
            "id": 107059,
            "action_name": "添加了建议",
            "url": "https://translate-dev.freebsd.org/api/changes/107059/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/207438/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_vm-design/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_vm-design/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/fernape/?format=api",
            "timestamp": "2021-01-17T16:32:27.115451Z",
            "action": 5,
            "target": "¿Qué es el <quote>algoritmo de entrelazado</quote> al que hiciste referencia en la lista de problemas del sistema de intercambio de FreeBSD 3.X?",
            "id": 107060,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/107060/?format=api"
        }
    ]
}