Allocating Frames en un Sis Op en Rust

Description

Ingeniería Mind Map on Allocating Frames en un Sis Op en Rust, created by sheldon coper on 18/12/2019.
sheldon coper
Mind Map by sheldon coper, updated more than 1 year ago
sheldon coper
Created by sheldon coper over 4 years ago
14
0

Resource summary

Allocating Frames en un Sis Op en Rust
  1. estructura de información de arranque múltiple
    1. Cuando un gestor de arranque compatible con arranque múltiple carga un núcleo, pasa un puntero a una estructura de información de arranque en el ebxregistro. Podemos usarlo para obtener información sobre la memoria disponible y las secciones cargadas del kernel.
    2. Memoria disponible
      1. La estructura de información de arranque consta de varias etiquetas . La etiqueta del mapa de memoria contiene una lista de todas las áreas de RAM disponibles. Las áreas especiales como el búfer de texto VGA en 0xb8000no están disponibles. Tenga en cuenta que parte de la memoria disponible ya la utiliza nuestro núcleo y la propia estructura de información de arranque múltiple.
      2. frame allocator
        1. Cuando se utiliza la paginación, la memoria física se divide en fragmentos de igual tamaño (normalmente 4096 bytes). Este fragmento se denomina "página física" o "marco". Estos marcos se pueden asignar a cualquier página virtual a través de tablas de páginas.
          1. Necesitaremos un marco libre en muchos casos. Por ejemplo, cuando queremos aumentar el tamaño de nuestro futuro montón de kernel. O cuando creamos una nueva tabla de páginas. O cuando agregamos un nuevo hilo de kernel y, por lo tanto, necesitamos asignar una nueva pila. Por lo tanto, necesitamos algún tipo de asignador que realice un seguimiento de los fotogramas físicos y nos proporcione uno libre cuando sea necesario.
            1. formas de escribir un asignador de marcos
              1. Podríamos crear algún tipo de lista vinculada a partir de los marcos libres. Por ejemplo, cada cuadro podría comenzar con un puntero al siguiente cuadro libre. Como los marcos son libres, esto no sobrescribirá ningún dato. Nuestro asignador simplemente guardaría el encabezado de la lista y podría asignar y desasignar fácilmente marcos actualizando punteros.
                1. Otro enfoque es crear algún tipo de estructura de datos, como un mapa de bits o una pila para administrar marcos libres. Podríamos colocarlo en el área ya mapeada de identidad justo detrás del núcleo o la estructura de arranque múltiple. De esa manera no necesitaríamos mapear (temporalmente) cada cuadro libre.
          2. The Allocator
            1. Es una abstracción que proporciona el kernel para manejar la creación y destrucción de estructuras en memoria
              1. Funciona como un cache de datos de forma que se sacan estructuras creadas del cache y se devuelven al mismo cuando ya no se necesitan
                1. Al dar una interfase general el kernel tiene control sobre el tamaño del caché y puede reducirlo cuando hay poca memoria
              Show full summary Hide full summary

              Similar

              INGENIERIA DE MATERIALES
              Ricardo Álvarez
              Elementos Básicos de Ingeniería Ambiental
              Evilus Rada
              Historia de la Ingeniería
              Camila González
              Introducción a la Ingeniería de Software
              David Pacheco Ji
              UNIDAD II DIBUJO PROYECTIVO
              anyimartinezrued
              GENERALIDADES DE LAS EDIFICACIONES
              yessi.marenco17
              MAPA MENTAL SOFTWARE APLICADOS EN INGENIERÍA CIVIL
              Ruben Dario Acosta P
              Estado de la ingenería mecánica y su perspectiva a futuro
              Roberto Martinez
              MAPA CONCEPTUAL SOBRE LA INICIATIVA CDIO
              Victor Antonio Rodriguez Castañeda
              Características de la Pitahaya y su potencial de uso en la industria alimentaria
              Héctor Infanzón
              Diapositivas neumática
              Victor Zamora Delgado