Versión para impresoraCódigo: SP-365
Duración: Consultar
Fechas previstas: Bajo demanda
Descripción del Curso
El curso Solaris 9 Internal proporciona información sobre los distintos subsistemas, rutinas y estructuras del kernel que componen el entorno operativo Solaris 9.
En las sesiones prácticas se hace un uso abundante de los depuradores kadb y mdb para examinar las estructuras del sistema en sistemas en funcionamiento. Los subsistemas del kernel estudiados incluyen la arquitectura multiproceso, la memoria virtual, la programación de procesos de tiempo real y tiempo compartido, los ciclos de vida de los procesos, la administración de las señales, el file systems UNIX y swapfs.
Este curso sustituye al curso SP-361.
Objetivos
Las personas que realicen el curso aprenderán a:
- Explicar detalladamente cómo se obtiene un bloqueo.
- Explicar el propósito de la herencia de prioridad y su implementación.
- Identificar las fases que componen la traducción de direcciones de memoria virtuales a físicas.
- Enumerar las rutinas y estructuras de procesos necesarias para implementar una clase de planificación de procesos (scheduling).
- Enumerar las estructuras de procesos utilizadas para implementar varias clases de planificación y los campos de las tablas de parámetros de ejecución en tiempo real y en tiempo compartido.
- Describir los algoritmos de paginación e intercambio de memoria que gestionan la memoria física como una caché.
- Describir la creación, ejecución e interrupción de procesos.
- Explicar la planificación y la prioridad de subprocesos del núcleo.
- Usar kadb para localizar y ver las estructuras del sistema de un archivo abierto en un determinado proceso, como la de descriptor, estructura de archivo, vnode, inode, la página y el superbloque.
- Describir las normas de distribución que utiliza el sistema de archivos UNIX para colocar inodes y bloques de datos.
Prerequisitos
Para obtener el máximo aprovechamiento del curso, los alumnos necesitan:
- Saber escribir programas C correctos y evaluar una función a "a = (struct foo 8) b" y "c = int (func) (int)".
- Utilizar el nivel de llamadas del sistema para solicitar servicios del sistema.
- Saber escribir un programa con las funciones read(2), write(2), mmap(2), fork(2), execve(2), exit(2) y waitid(2).
A quién va dirigido
Este curso es indicado para programadores, ingenieros de sistemas y técnicos de soporte.
Cursos relacionados
Cursos relacionados (Después):
SI-375: Writing Device Drivers for the Solaris Operating Environment
Contenido
Módulo 1 - Introducción al entorno Solaris 9
- Definir la finalidad del sistema operativo, explicar el concepto de estratificación del kernel en capas y describir las diferentes capas.
- Describir los procesos y bibliotecas de usuario.
- Explicar el significado de la administración de memoria en el entorno Solaris.
- Describir el concepto de almacenamiento temporal de archivos (caching).
- Explicar los conceptos relacionados con las señales.
- Explicar el modo de entrada al kernel.
- Describir el concepto de planificación.
- Enumerar las funciones nuevas en las versiones más recientes de Solaris 9.
Módulo 2 - Análisis de la arquitectura multiproceso
- Explicar la diferencia entre multiproceso simétrico (SMP) y multiproceso asimétrico (ASMP).
- Definir una aplicación y un thread del kernel.
- Definir un proceso ligero (LWP).
- Explicar la diferencia entre un thread y LWP.
- Enumerar las estructuras que describen el estado de un thread, un proceso ligero y un proceso del núcleo.
- Explicar cómo funciona el bloqueo mutex.
- Definir una variable de condición.
- Describir cómo se implementa un semáforo de cuenta.
- Explicar cómo funciona un bloqueo de lector múltiple y escritor único.
- Explicar las ventajas que ofrecen múltiples procesos ligeros en un proceso determinado.
Módulo 3 - Análisis de la administración de la memoria de hardware
- Enumerar los pasos que intervienen en la transformación de la dirección virtual en dirección física.
- Enumerar las diferencias que existen entre la unidad de administración de memoria (MMU) anterior de Sun y la MMU de referencia SPARC.
- Describir los tipos de cache (caché) implementados en los sistemas Sun.
Módulo 4 - Análisis de la administración de la memoria de software
- Enumerar las capas del sistema VM del software SunOS 5.x y definir la función de cada capa.
- Enumerar las estructuras de mapeo que conforman el espacio de direcciones de un proceso.
- Localizar las estructuras de página y de espacio de direcciones de un proceso en kadb e identificar los campos contenidos en las estructuras.
- Explicar cómo puede utilizar un programador de aplicaciones el mapeo de memoria y las llamadas del sistema de control de memoria para administrar los requisitos de memoria del proceso de forma efectiva.
Módulo 5 - Análisis de la paginación y el intercambio de memoria
- Explicar el mótodo de capas para administrar fallos de página.
- Enumerar las condiciones en la que se ejecuta el demonio de la página.
- Enumerar las funciones del demonio de la página.
- Enumerar las condiciones en las que se ejecuta e swapper.
Módulo 6 - Análisis del file system swapfs
- Enumerar los defectos en la administración del intercambio de memoria del software SunOS 4.x.
- Describir los cambios efectuados en la capa de memoria anónima para adaptarla a la implementación del file system swapfs.
- Enumerar dos ventajas derivadas de la incorporación del file system swapfs al software SunOS 5.x.
Módulo 7 - Análisis de la planificación
- Enumerar al menos dos obstáculos importantes para realizar procesos en tiempo real en las arquitecturas de UNIX convencionales, como System V Release 3 (SVR3), la versión 4.3 de Berkeley Software Design (BSD) para UNIX y SunOS 4.x.
- Explicar la diferencia entre un kernel completamente priorizable y un kernel con puntos de prioridad.
- Indicar una rutina utilizada para introducir un thread en una cola de distribución.
- Describir cuándo se sitúa un thread al principio de la cola de distribución.
- Describir cómo están ordenadas las colas de espera.
- Definir el orden de prioridad del usuario.
- Definir el orden de prioridad del kernel.
- Definir la respuesta de distribución determinista (latencia de distribución).
- Definir la inversión de prioridades.
Módulo 8 - Análisis del tiempo de vida de los procesos
- Definir las distintas llamadas del sistema que se utilizan para crear un proceso nuevo.
- Describir las rutinas del kernel utilizadas para implementar la creación de procesos.
- Enumerar los distintos tipos de ejecutables admitidos en el entorno Solaris.
- Explicar las rutinas utilizadas para implementar el formato de ejecutables y enlazables (ELF).
- Citar las ventajas del formato de ejecutables ELF.
- Describir las acciones que realiza un proceso a su cierre.
- Explicar la llamada del sistema waitid(2) y cómo se implementa.
Módulo 9 - Análisis de las señales
- Enumerar los distintos tipos de señales que se pueden suministrar a un proceso o thread.
- Explicar la diferencia entre una señal de captura y una señal de interrupción.
- Enumerar las rutinas de gestión de señales y describir sus funciones.
- Describir para qué sirve la función de señales y cómo se suministra una señal.
Módulo 10 - Análisis del file system
- Describir la capa de la interfaz vnode de un file system.
- Enumerar los cuatro campos de una entrada del directorio.
- Explicar las ventajas del file system BSD 4.3.
- Describir la función de las estructuras de superbloque y de grupo de cilindros.
- Enumerar los campos de una estructura inode de disco y explicar para qué sirven.
- Mencionar las rutinas implicadas en la determinación de políticas de distribución globales.
- Explicar las rutinas de asignación mediante diagramas de flujo y describir cómo se localizan rápidamente los fragmentos.