procesos: estructura de minix (3)alram/so/clase13.pdf · signal.h define todas las señales ansi...

12
Procesos: Estructura de Minix (3) Dr. Alonso Ramírez Manzanares 7-Oct-2010

Upload: others

Post on 22-Aug-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Procesos: Estructura de Minix (3)

Dr. Alonso Ramírez Manzanares7-Oct-2010

Page 2: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Ejemplos de archivos de cabecera (ver el libro)

string.h Definición de funciones de cadena.

signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la estructura sigaction en linea 769 usada en funcion 797.

fcntl.h para las llamadas open() y fcntl().

stdlib.h Funciones comunes (¿cuál es la diferencia entre malloc() y calloc()? ).

termios.h Para el control de las terminales TTY (Teletypewriter), habilitar echo 1152, definir la veocidad de envio de info (1184), tamaño de ventana en 1297.

a.out.h define el formato de los archivos executables de usuario (línea 1400), ver número magico en 1426.

Page 3: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Kernel

Cuando MINIX se compila, todos los archivos de /kernel, /mm y /fs generan archivos objeto, los cuales se junta para formar los executable kernel, mm y fs. Algo similar con init en /src/tools.

El binario del SO esta compuesto por la concatenación (lo concatena la utilería installboot) de los anteriores que podrá cargar y ejecutar el programa monitor de arranque.

Page 4: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Organización de la memoria, despues de

desconcatenar y cargar el binario del

SO.

Haciéndolo muy reducido, puede

caber en 640K de memoria!!

Tenemos 3 o más programas

independientes que se comunican por

mensajes.

Page 5: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Archivos de cabecera

Los archivos de cabecera de programas de usuario estan en /usr/include/

Para programas de sistema usamos cabeceras en /usr/include/sys/

Page 6: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Ejemplos de archivos de cabecera (ver el libro)

ansi.h prueba si el compilador cumple con requisitos de Standar C.

limits.h Define tamaños de tipos del lenguaje (ejemplo: tamaño máximo del path de un archivo [172], número de archivos abiertos de un proceso [16], etc).

errno.h números de error devueltos (negativos para sistema y positivos para programas de usuario).

unistd.h constantes requeridas por POSIX y prototipos de funciones importantes (ejemplo: def de in/out std). También ver def. de size_t y ssize_t en linea 405. Aqui estan declarados los prototipos de las llamadas al SO.

Page 7: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Ejemplos de archivos de cabecera (ver el libro)

string.h Definición de funciones de cadena.

signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la estructura sigaction en linea 769 usada en funcion 797.

fcntl.h para las llamadas open() y fcntl().

stdlib.h Funciones comunes (¿cuál es la diferencia entre malloc() y calloc()? ).

termios.h Para el control de las terminales TTY (Teletypewriter), habilitar echo 1152, definir la veocidad de envio de info (1184), tamaño de ventana en 1297.

a.out.h define el formato de los archivos executables de usuario (línea 1400), ver número magico en 1426.

Page 8: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Archivos de cabecera de sistema

sys/types.h muchos tipos de datos empleados por minix (ver linea 1653, # de links y confrontar con limits.h)

sys/ioctl.h macros para operaciones de control de dispositivos (incluso para tarjeta de sonido en línea 1922)

Page 9: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Archivos de cabecera de sistema

sys/sigcontext.h define la estructura sigcontext, usada por la llamada sigreturn, usada por el mecanismo que atrapa señales. Esto se define dependiento de cada tipo de microprocesador.

sys/stat.h En 2300, define la estructura de información de los archivos.

sys/dir.h define la estructura de los archivos que son directorios.

sys/wait.h Macros relacionadas con wait(), por ejemplo define el regreso por izquierda dependiendo de la terminación del proceso.

Page 10: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Archivos de cabecera de MINIX /include/minix/config.h ahi se define la maquina donde va a correr.

Aqui podemos hacer cambios y recompilar el sistema. Por ejemplo, definir la máquina.

El compilador el es Amsterdam Compiler Kit __ACK__. Este compilador define el tamaño de la palabra en bytes en 2627 (ver como se usa esto en la línea 2647).

Lineas más editadas en la linea 2671, se ve como se habilitan y deshabiltan servicios.

Page 11: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Archivos de cabecera de MINIX /include/minix/const.h Uso de Extern, el cual podemos definir y tambien redefinirlo como una cadena nula. Tenemos cosas como max min en 2949, directorios en 2981, etc.

type.h, la definición de mensaje en lineas 3135, usando union (m_type lo veremos más adelante).

El tamaño de la estructura puede cambiar dependiendo del tamaño de los datos primitivos

Page 12: Procesos: Estructura de Minix (3)alram/SO/clase13.pdf · signal.h Define todas las señales ANSI an POSIX (ejemplos, interrupcion, abandonar, matar, etc.). Tambien se define la

Archivos de cabecera de MINIX /include/minix/callnr.h cuando se hace llamada al sistema, se envia un mensaje al MM o al FS, el número de llamada se define aqui (linea 3400).

com.h definiciones empleadas en mensajes del MM y el FS a las tareas de entrada/salida (E/S). También se definen los números de las tareas (negativos, para diferenciarlos de los procesos). También se definen los tipos de mensajes, ejemplo, GET_TIME (linea 3604) que se usa en la estructura de mensaje en 3137 en type.h.