Fundamentos del Sistema Operativo UNIX: Ficheros, Procesos y Tareas Programadas
Clasificado en Informática
Escrito el en español con un tamaño de 4,17 KB
Gestión de Archivos y Directorios en UNIX
Los directorios no contienen los archivos propiamente dichos, sino los nombres de los archivos que les pertenecen junto con su número de i-nodo. Para acceder a un archivo, basta con consultar la entrada del directorio, encontrar su número de i-nodo, y luego buscar el i-nodo correspondiente en la tabla de i-nodos para obtener toda la información relativa al archivo.
Originalmente, cada entrada de directorio tenía una longitud de 16 bytes: dos bytes para el número de i-nodo y catorce bytes para el nombre. Aunque el formato pudo haberse ampliado para permitir nombres más largos, el principio fundamental sigue siendo el mismo.
Organización del Disco Duro en Sistemas UNIX
La estructura de un disco duro en sistemas UNIX se compone de las siguientes partes:
Bloque de Arranque
Contiene lo necesario para iniciar el sistema, pero no incluye componentes del sistema operativo propiamente dicho.
Superbloque
Contiene el resumen del sistema de archivos.
I-nodos
Serie de bloques donde los i-nodos de todos los ficheros se almacenan de forma contigua en el disco. Cuando se menciona la "lista de i-nodos", se hace referencia a un array en disco donde cada elemento es el i-nodo de un fichero.
Bloques de Datos
Contienen los datos de los ficheros.
Procesos en Sistemas Operativos UNIX
Un proceso es un programa en ejecución con una tarea específica que realizar.
Ejemplos de Procesos del Sistema
Algunos procesos que siempre están presentes en el sistema son:
- Cuando un terminal está esperando por el inicio de sesión (login), se está ejecutando el proceso
/etc/getty
. - Cuando existe una sesión en un terminal, un proceso
sh
(shell) está atendiendo las órdenes del usuario. - El sistema de impresión es atendido por el proceso
/usr/lib/spched
. - Las peticiones del sistema operativo son atendidas por el proceso
/etc/init
.
Cada vez que el usuario solicita al shell que ejecute una orden, esta se ejecuta como un proceso separado.
Procesos Foreground y Background
Cuando un proceso interactúa directamente con un terminal (pantalla/teclado), se denomina proceso en foreground (primer plano). Sin embargo, también es posible ejecutar órdenes en background (segundo plano) o con "prioridad subordinada".
Un proceso se ejecuta en background cuando se lanza con el símbolo &
al final de la orden. Al hacerlo, el sistema devuelve el número de identificación del proceso (PID).
Información y Gestión de Procesos
Para obtener información detallada sobre los procesos en ejecución, se utiliza la orden ps
.
Uso Básico de ps
$ ps
Opciones Comunes de ps
-f
: Visualiza una lista extendida de campos.-e
: Muestra todos los procesos existentes en el sistema.-l
: Presenta una lista completa de los campos disponibles.-t ttys
: Lista los procesos asociados al terminal especificado.
Campos Comunes de Salida de ps
- UID: Identificador del usuario que ha solicitado la ejecución del proceso.
- PID: Identificador único del proceso.
- PPID: Identificador del proceso padre.
Programación de Tareas con at
La orden at
permite programar la ejecución de una tarea en un momento específico.
La salida de la tarea programada se envía al correo electrónico del usuario que la programó.
Formas de Invocar at
Esta orden se puede invocar de dos formas principales:
$ at hora [día]
$ at hora [día] < fichero_comandos
(para redirigir la entrada desde un fichero)