Gestion de Linux

Páginas: 8 (1990 palabras) Publicado: 6 de noviembre de 2013
Sistemas Operativos 2









Gestión de entradas y salidas










Introducción
El sistema de Entradas y salidas de Linux es relativamente sencillo. En esencia, se hace que todos los dispositivos de E/S semejen archivos y se accede a ellos con las mismas llamadas al sistema read y write que se usan para el acceso a todos los archivos ordinarios. En algunos casos debenestablecerse parámetros de dispositivos, y esto se hace con una llamada especial al sistema.
La Entrada y salida en Linux se implementa como una colección de controladores de dispositivos, uno por tipo de dispositivo. La función de los controladores es aislar el resto del sistema de las peculiaridades del hardware.
Gestión de entrada y salida en linux
La Entrada/Salida se realiza por medio delos controladores de dispositivos, que tienen un rol especial en el núcleo de Linux. Estos son los encargados de ocultar completamente los detalles de funcionamiento interno de un dispositivo a nivel del Hardware, independizando así los programas de usuario que deberán utilizar ciertas funciones para poder operar con dichos dispositivos; de esta manera, si hubiera cambios en los dispositivos,porque se añadan, quiten o cambien, no hará falta volver a programar los programas, bastando con reemplazar los controladores antiguos por los que gestionen el nuevo hardware.
La ventaja de desarrollar controladores de dispositivos para Linux consiste en que estos pueden desarrollarse por separado del resto del núcleo y luego ser cargados en tiempo de ejecución, cuando se necesiten.

Espacio denombres
La primera elección antes de escribir un driver es su nombre. Este nombre debe ser corto (probablemente dos o tres caracteres). Por ejemplo, la impresora se llama "lp", los disquetes "fd", y los discos SCSI son "sd". Al escribir el controlador, los nombres de las funciones deberán llevar como prefijo este nombre, y de esta manera poder distinguirlas de las funciones que gestionan otrosdispositivos. Por ejemplo, si llamamos a nuestro dispositivo, y por tanto el identificador del driver como "dp", las funciones que diseñemos tendrían nombres como dp_read, dp_write, ...
Asignación de memoria
La asignación de memoria dentro del kernel o núcleo es diferente a como se hace en los programas de usuario. En lugar de utilizar malloc, la función dentro del núcleo sería kmalloc que secomporta de forma diferente:
La memoria se asigna en porciones cuyo tamaño es una potencia de 2, excepto si es necesario que sean mayores de 128 bytes, asignándose entonces en bloques de potencias de 2 menos una cierta cantidad que se necesita para su control. No es aconsejable pedir cantidades de memoria de tamaño impar ya que es menos eficiente. Por otro lado, el tamaño máximo de memoria que se puedesolicitar es de 131.056 bytes

kmalloc tiene un segundo argumento, la prioridad. Esto se utiliza como un argumento para la función get_free_page, usado para determinar cuándo debe hacer "return". Si la función se pudiera llamar desde la función que trata una interrupción, se debería utilizar GFP_ATOMIC, y así evitar que falle, ya que si se utilizase GFP_KERNEL, la función podría quedarsesuspendida esperando, y esto no se puede dar durante el tratamiento de una interrupción. La otra opción es GFP_BUFFER, que se utiliza sólo cuando el núcleo asigna espacio para un búfer, pero nunca se utiliza en los controladores de dispositivos.
Para liberar memoria asignada con kmalloc, se utiliza kfree o kfree_s. Se diferencian de free () en:
Kfree es una macro que llama a kfree_s y actúa como lafunción free estándar fuera del núcleo

Si se conoce el tamaño del objeto a liberar, se puede llamar a kfree_s directamente. Se necesitan dos argumentos: el primero es el puntero a la zona que se quiere liberar, como en kfree (), y el segundo es el tamaño del objeto.
Debido a que la memoria del núcleo es física y no es paginable, deben utilizarse estas funciones con mucho cuidado, solicitando...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Gestion De Procesos En Linux
  • Gestion De Memoria En Linux
  • Gestion linux
  • Gestion de usuarios y grupos linux
  • Gestion De Procesos En Gnu/Linux
  • Gestion de permisos linux
  • Gestion De Memoria Linux
  • GESTIÓN DE USUARIOS EN LINUX Y WINDOWS

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS