unix

Páginas: 16 (3978 palabras) Publicado: 8 de junio de 2013
El núcleo de Minix I
Estructura interna de Minix ([Tanenbaum97], capítulo 2).
Microkérnel apoyado en procesos para tareas básicas comunicados mediante paso de mensajes. Esta organización es más modular y permite más fácilmente la distribución de funciones vía red.
Opuesta a kérnel monolíticos
Escrito en C excepto la gestión de interrupciones que está escrita en ensamblador.
Estru ctura encuatro capas:


Kérnel: capas 1 y 2.
Capa 1: interrupciones (hardware -externas,internas-, software), cambio de contexto (guardar y restaurar registros), planificación, gestión de mensajes. Este código se ejecuta en el modo supervisor de la cpu.
Capa 2: tareas de E/S (también llamadas manejadores de E/S). Los procesos que realizan funciones básicas de gestión del s.op. se llaman tareas.La tarea de sistema es un caso especial y sirve para cuestiones que los procesos no pueden realizar (por ejemplo, copiado entre zonas de memoria de diferente nivel de protección). Las tareas tienen más prioridad que los procesos al estar en ranuras especiales del PCB. Sin embargo el procesador se encuentra en modo usuario cuando son ejecutadas.
Se requiere una tarea por cada dispositivo de E/Sexistente

Capa 3: tareas de gestión de memoria, archivos y red (procesos servidores). Esta capa es el punto de entrada al sistema, el interfaz con los procesos de usuario (interpretación de las llamadas al sistema). Estos procesos se ejecutan con mayor prioridad que los de usuario (capa 4) debido al algoritmo de planificación utilizado.
Capa 4: tarea init (el padre del resto de procesos deusuario) y procesos de usuario.
Fichero image: formado por el núcleo más las tareas de las capas 2, 3 y 4 (menos los procesos de usuario, claro). Está todo junto aunque al inicializarse MINIX se convierten en las diferentes tareas.
Privilegios: el kérnel es el de mayor nivel. Las tareas (aunque realicen funciones básicas) tienen menor nivel de privilegio.
Administración de memoria (mm) : fork,exec, brk, ...
Administración de archivos (fs): read, mount, chdir, ...
Organización, comunicación y planificación de procesos ([Tanenbaum97], capítulo 2).
Árbol de procesos. Proceso inicial: init. Este proceso comienza su ejecución una vez inicializados todos los servidores y tareas del sistema.
El proceso init (/usr/src/tools/init.c) tiene, entre sus funciones, la de gestionar la llegadade nuevos usuarios. El procedimiento es el siguiente:
1. Ejecuta /etc/rc (usa fork() + execve())
2. Lee /etc/ttytab (usando la función getttyent()) y bifurca un proceso (daemon) por cada entrada getty. Estos daemons sirven para atender a los terminales. Se llaman getty y se corresponden con el proceso /usr/bin/getty (/usr/src/commands/simple/getty.c).
3. Las tareas getty imprimen un mensaje(login) y esperan la recepción de un nombre.
4. Con ese nombre como argumento se invoca a /usr/bin/login (/usr/src/commands/simple/login.c).
5. login comprueba /etc/passwd y permite, si todo va bien, iniciar una sesión a un usuario. Para ello ejecuta /bin/ash o lo que aparezca en el último campo de cada línea de /etc/passwd.
6. El sh permite que se tecleen comandos y luego birfuca (fork) alfichero que implementa cada uno de ellos.
EXEC (y fork): llamada al sistema que permite a un proceso ejecutar un programa especificado (ver /usr/src/mm/forkexit.c y /usr/src/mm/exec.c).
Se le asigna una cantidad de memoria que está especificada en la cabecera del fichero ejecutable.
Tabla de procesos: almacena la información referente a cada proceso. 
Dividida entre el kérnel (ver/usr/src/kernel/proc.h), el administrador de memoria (ver /usr/src/mm/mproc.h) y el de ficheros. Cada uno tiene los campos que necesita.
Cuando un proceso es creado o muere, el que se entera es el administrador de memoria, el cuál realiza las tareas necesarias y a continuación envía mensajes al núcleo y al administrador de ficheros para que hagan lo mismo.
Comunicación entre procesos:
Siempre con...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • unix
  • Unix
  • Unix
  • Unix
  • Unix
  • Unix
  • Unix
  • unix

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS