Translation components API.

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

GET /api/components/documentation/articlesvm-design_index/changes/?format=api&page=4
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 1155,
    "next": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/changes/?format=api&page=5",
    "previous": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/changes/?format=api&page=3",
    "results": [
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412813/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:13:14.364040Z",
            "action": 5,
            "target": "fig1.png",
            "id": 230699,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230699/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615382/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:13:20.414170Z",
            "action": 5,
            "target": "A representa el fichero—las páginas pueden ser paginadas hacia o desde el medio físico del fichero según sea necesario. Paginar desde el disco es razonable para un programa, pero en realidad no queremos paginar de vuelta y sobrescribir el ejecutable. Por tanto, el sistema de Memoria Virtual crea una segunda capa, B, que estará respaldada físicamente por espacio de intercambio:",
            "id": 230700,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230700/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412815/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:13:26.446766Z",
            "action": 5,
            "target": "fig2.png",
            "id": 230701,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230701/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615384/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:13:32.396968Z",
            "action": 5,
            "target": "En la primera escritura a una página después de esto, se crea una nueva página en B, y su contenido es inicizalizado desde A. Todas las páginas en B pueden ser paginadas a o desde el dispositivo de intercambio. Cuando el programa bifurca, el sistema de Memoria Virtual crea dos capas de objetos nuevas—C1 para el padre, y C2 para el hijo—que descansan sobre B:",
            "id": 230702,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230702/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615384/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:13:47.649523Z",
            "action": 2,
            "target": "En la primera escritura a una página después de esto, se crea una nueva página en B, y su contenido es inicializado desde A. Todas las páginas en B pueden ser paginadas a o desde el dispositivo de intercambio. Cuando el programa bifurca, el sistema de Memoria Virtual crea dos capas de objetos nuevas—C1 para el padre, y C2 para el hijo—que descansan sobre B:",
            "id": 230703,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230703/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412817/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:13:54.683887Z",
            "action": 5,
            "target": "fig3.png",
            "id": 230704,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230704/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615386/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:14:17.801859Z",
            "action": 5,
            "target": "En este caso, digamos que una página en B es modificada por el proceso padre original. El proceso recibirá un fallo de copy-on-write y duplicará la página en C1, dejando la página original en B sin tocar. Ahora, digamos que la misma página en B es modificada por el proceso hijo. El proceso recibirá un fallo de copy-on-write y duplicará la página en C2. La página original en B está ahora completamente oculta ya que tanto C1 como C2 tienen una copia y B podría teóricamente ser destruida si no representa un fichero <quote>real</quote>; sin embargo, este tipo de optimización no es trivial de hacer porque es muy fina. FreeBSD no hace esta optimización. Ahora, supón (como suele ser el caso) que el proceso hijo hace un `exec()`. Su espacio de direcciones actual es habitualmente remplazado por un nuevo espacio de direcciones que representa un nuevo fichero. En este caso, la capa C2 es destruida:",
            "id": 230705,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230705/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412819/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:14:23.954308Z",
            "action": 5,
            "target": "fig4.png",
            "id": 230706,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230706/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615388/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:14:43.298840Z",
            "action": 5,
            "target": "En este caso, el número de hijos de B ha bajado a uno, y todos los accesos a B van ahora a través de C1. Esto significa que B y C1 pueden colapsarse juntas. Cualquier página en B que también existe en C1 se borran de B durante el colapso. Por lo tanto, incluso aunque la optimización en el paso anterior no se pudo hacer, podemos recuperar las páginas muertas bien cuando el proceso sale o cuando llama a `exec()`.",
            "id": 230707,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230707/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615390/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:14:52.956516Z",
            "action": 5,
            "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": 230708,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230708/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615392/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:15:57.482807Z",
            "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->B->A y C2->B->A ahora tenemos C1->A y C2->B->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->A y C2->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": 230709,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230709/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615392/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:16:32.613405Z",
            "action": 2,
            "target": "FreeBSD soluciona el problema de capas profundas con una optimización especial llamada \"Caso de Todo Sombreado\". 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->B->A y C2->B->A ahora tenemos C1->A y C2->B->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->A y C2->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": 230710,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230710/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615394/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:16:38.593918Z",
            "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": 230711,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230711/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615396/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:16:56.907230Z",
            "action": 5,
            "target": "La ventaja del modelo de Objetos de Memoria Virtual es que `fork()` 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": 230712,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230712/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412825/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:17:51.571827Z",
            "action": 5,
            "target": "Capas de Intercambio",
            "id": 230713,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230713/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615398/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:17:58.032785Z",
            "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": 230714,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230714/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412827/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:18:03.850431Z",
            "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": 230715,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230715/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412829/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:18:28.265639Z",
            "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": 230717,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230717/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412830/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:18:34.122970Z",
            "action": 5,
            "target": "El problema se exacerba debido a los huecos creados por el algoritmo de entrelazado.",
            "id": 230718,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230718/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412831/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:18:39.483790Z",
            "action": 5,
            "target": "Además, el mapa de bloques de intercambio se puede fragmentar fácilmente dando como resultado asignaciones no contiguas.",
            "id": 230719,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230719/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412832/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:18:51.750698Z",
            "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": 230720,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230720/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615400/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:18:57.418583Z",
            "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": 230721,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230721/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412834/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:19:01.472639Z",
            "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": 230722,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230722/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412835/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:19:07.327112Z",
            "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": 230723,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230723/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412837/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:19:25.268604Z",
            "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": 230725,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230725/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412839/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:19:54.586973Z",
            "action": 5,
            "target": "Cuando liberar una página",
            "id": 230728,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230728/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615402/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:19:59.803128Z",
            "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": 230729,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230729/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615406/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:20:11.730049Z",
            "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": 230731,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230731/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615408/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:20:17.947726Z",
            "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": 230732,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230732/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615410/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:20:23.906870Z",
            "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": 230733,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230733/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615412/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:20:53.940541Z",
            "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": 230734,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230734/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615412/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:22:00.384499Z",
            "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 distinguir 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 \"inmediatamente liberables\" y serán reutilizadas de modo LRU (Usada Menos Recientemente) cuando el sistema necesita asignar nueva memoria.",
            "id": 230735,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230735/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615414/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:22:22.831443Z",
            "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 `systat -vm`. Según el sistema de Memoria 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": 230736,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230736/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412848/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:22:34.567692Z",
            "action": 5,
            "target": "Optimizaciones de Prefallo y de Rellenado con Ceros",
            "id": 230738,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230738/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615418/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:23:16.657716Z",
            "action": 5,
            "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 man:ls[1] o man:ps[1] 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 man:ls[1] mientras ejecutas `vmstat 1` 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": 230739,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230739/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412851/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:23:48.129036Z",
            "action": 5,
            "target": "Optimizaciones de la Tabla de Páginas",
            "id": 230741,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230741/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615422/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:24:42.043453Z",
            "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 `mmap()`. 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 `pv_entry` que lo gobierna la cual está enlazada a la estructura `vm_page`. FreeBSD puede simplemente iterar sobre esos mapeos que se sabe que existen mientras Linux tiene que comprobar todas las tablas de páginas que _podrían_ 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 `pv_entry`.",
            "id": 230742,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230742/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615424/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:24:50.093492Z",
            "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": 230743,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230743/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412854/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:24:54.958502Z",
            "action": 5,
            "target": "Coloreado de Páginas",
            "id": 230744,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230744/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615426/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:25:02.553009Z",
            "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": 230745,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230745/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615428/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:25:09.146428Z",
            "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": 230746,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230746/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412857/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:25:17.249118Z",
            "action": 5,
            "target": "Conclusión",
            "id": 230755,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230755/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615430/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:25:26.499870Z",
            "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": 230756,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230756/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412859/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:26:02.888164Z",
            "action": 5,
            "target": "Sesión extra de Preguntas y Respuestas por Allen Briggs",
            "id": 230757,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230757/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412860/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:26:08.110076Z",
            "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": 230758,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230758/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412860/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:26:48.891324Z",
            "action": 2,
            "target": "¿Qué es el algoritmo de entrelazado al que hiciste referencia en la lista de problemas del sistema de intercambio de FreeBSD 3.X?",
            "id": 230759,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230759/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615432/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:27:27.282294Z",
            "action": 5,
            "target": "FreeBSD utiliza un entrelazado de intercambio fijo con un valor por defecto de 4. Esto significa que FreeBSD reserva espacio para cuatro áreas de intercambio incluso si solo tienes una, dos o tres. Puesto que el espacio de intercambio está entrelazado el espacio lineal de direcciones que representa las \"cuatro áreas de intercambio\" estará fragmentado si en realidad no tienes cuatro áreas de intercambio. Por ejemplo, si tienes dos áreas de intercambio A y B la representación del espacio de direcciones en FreeBSD para ese área de intercambio estará entrelazada en bloques de 16 páginas",
            "id": 230760,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230760/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615432/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:27:39.512072Z",
            "action": 2,
            "target": "FreeBSD utiliza un entrelazado de intercambio fijo con un valor por defecto de 4. Esto significa que FreeBSD reserva espacio para cuatro áreas de intercambio incluso si solo tienes una, dos o tres. Puesto que el espacio de intercambio está entrelazado el espacio lineal de direcciones que representa las \"cuatro áreas de intercambio\" estará fragmentado si en realidad no tienes cuatro áreas de intercambio. Por ejemplo, si tienes dos áreas de intercambio A y B la representación del espacio de direcciones en FreeBSD para ese área de intercambio estará entrelazada en bloques de 16 páginas:",
            "id": 230761,
            "action_name": "修改了译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230761/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/412862/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:27:45.082526Z",
            "action": 37,
            "target": "A B C D A B C D A B C D A B C D\n",
            "id": 230762,
            "action_name": "标记为需要编辑",
            "url": "https://translate-dev.freebsd.org/api/changes/230762/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/615434/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/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-03-24T15:28:10.705110Z",
            "action": 5,
            "target": "FreeBSD 3.X utiliza una aproximación de \"lista secuencial de regiones libres\" para contabilizar las áreas de intercambio libres. La idea es que grandes bloques de espacio lineal libre puede ser representado con un único nodo en la lista ([.filename]#kern/subr_rlist.c#). Pero debido a la fragmentación la lista termina estando completamente fragmentada. En el ejemplo superior, espacio de intercambio completamente sin utilizar hará que A y B se muestren como \"libre\" y C y D como \"todo asignado\". Cada secuencia A-B requiere un nodo en la lista para ser contabilizado porque C y D son huecos, así que el nodo de la lista no puede ser combinado junto con la siguiente secuencia A-B.",
            "id": 230763,
            "action_name": "新译文",
            "url": "https://translate-dev.freebsd.org/api/changes/230763/?format=api"
        }
    ]
}