Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIVERSIDAD DE SONSONATE
Ing. Daro Cristian Arias Jaco
Implementación de Llamadas al
Sistema en MINIX
Llamadas al sistema
• Una llamada al sistema es la forma en que un programa
solicita un servicio al kernel
• La estructura de llamadas es la interfaz entre el sistema
operativo y sus programas de aplicación
• Kernel calls
• Funciones a bajo nivel proporcionadas por las tareas de
sistema para permitir a los drivers y servers hacer su trabajo
• e.j. leer un puerto de hardware para IO
• System calls
• Las llamadas de sistema de POSIX son llamadas de alto
nivel definidas por el estándar POSIX, y están disponibles
para los programas de usuario en la capa 4
• Ejemplo: read, fork, unlink…
• Los programas de usuario solo contienen llamadas de
sistema POSIX
Servidores
• Reincarnation Server (RS): responsable de la
fiabilidad de todo el sistema operativo
• Datastore Server (DS): Proporciona un
almacenamiento persistente del estado del
servidor en memoria
• Virtual Memory Server (VM): responsable de
manejar el mapeo de memoria física y virtual
• Process Management Server (PM):
responsable de crear, destruir y administrar
los procesos
Servidores
• Virtual File System Server (VFS): responsable
de proporcionar una interface unificada para
todos los sistemas de archivos en el sistema
• Peripheral Component Interconnect Server
(PCI): Permite a los drivers de los dispositivos
acceder a dispositivos en el bus PCI
• Internet Network Server (INET): Responsable
de la implementación de los protocolos de red
Drivers (Controladores)
• Terminal Driver (TTY): es responsable de la operación de la
consola
• Teclado/pantalla
• Serial: cable serial
• Pseudo: OpenSSH
• Disk Driver: El driver de disco se encarga de la
lectura/escritura de bloques de disco desde y hacia el disco(s)
local
• Memory Driver: El driver del dispositivo memoria es usado
durante la carga de MINIX para servir como un sistema inicial.
Contiene archivos de configuración y programas necesarios
para iniciar MINIX
• Network Driver: MINIX soporta varios tipos de tarjetas de red.
Cada tipo esta implementado en un driver de dispositivo de red
Intercomunicación de procesos
• Es manejada por el kernel
• Un proceso envía un destinatario y un
mensaje al kernel, el cual copia el mensaje al
proceso destino
• Un proceso debe estar esperando por el
mensaje para poder recibirlo
• send
• receive
• sendrec (los procesos de usuario solo pueden
usar este)
Organización de archivos en MINIX 3
• La implementación modificada de
/usr/src/servers/pm/do_printmsg.c es:
• #include <stdio.h>
• #include "pm.h" // provides global variables such as m_in
• int do_printmsg() {
• int i = m_in.m1_i1; /* m_in is a global variable set to PM's
• * incoming message,
• * So m_in.m1_i1 is the integer parameter set in our
• * test program above.
• */
• printf(“MI llamada ha sido llamada, mi entero es %d\n", i);
• return 0;
• }
Correr la prueba
• En /usr/src/releasetools digitar: #make
services
• Luego digitar:
• #make install Luego reboot
• (para corer la nueva version de minix)
• Recompilar el archivo de prueba y
ejecutarlos así:
• # ./a.out 10
TAREA