Contenidos
Procesos. Tipos. Estados. Estructura
Uno de los conceptos más importantes en los sistemas operativos es el proceso que se define como un programa en ejecución. Los programas son un conjunto de archivos que están almacenados en algún dispositivo de almacenamiento (disco duro, USB, etc.) y que por sí solos no tienen ningún funcionamiento, pero cuando ese conjunto de archivos se ejecutan entonces pasan a ser un proceso.
Más información
Hilos de ejecución
Un proceso tiene miniprocesos que se llaman hilos, la razón de dividir un proceso en unidades más pequeñas es que la mayoría de los procesos están realizando varias acciones a la vez (leer del disco, esperar un clic del ratón, etc.) y puede ser que alguna de esas acciones se bloquee y deje bloqueado al proceso completo.
Utilizando los hilos, el bloqueo sólo se produce en una parte y no todo el proceso, esto quiere decir que otros hilos se pueden seguir ejecutando sin problema.
Algunas características de los hilos:
- Los procesos crean hilos.
- Los hilos tienen prioridad.
- Se pueden ver los hilos que se ejecutan.
- Se pueden ver las prioridades de los hilos.
- Se pueden relacionar hilos con procesos y servicios.
Más información
Transiciones de estados
Los procesos cuando se ejecutan pueden atravesar distintos estados desde que se inician hasta que finalizan. Cuando un proceso se inicia, primero se mete en una cola de trabajos; cuando es admitido por el sistema, pasa a una cola de procesos que están preparados y esperando para ejecutarse; cuando el procesador asigna tiempo de ejecución, el proceso pasa de estar preparado a ejecución, y cuando el proceso necesita alguna señal o dato, pasa al estado bloqueado (se lo introduce en la cola de bloqueados).
Más información
Prioridades
El sistema operativo puede asignar distinta importancia a cada proceso.
Más información
Gestión de los procesos del sistema. Línea de orden. Entorno gráfico
Los procesos en segundo plano que realizan distintas funciones, algunas relacionadas con el sistema operativo y otras no, se denominan servicios, y se están ejecutando permanentemente en el sistema.
Los servicios se pueden iniciar, detener, pausar, reanudar, etc. Estas acciones, normalmente, sólo las puede realizar el administrador de forma local o remota. Un ejemplo de servicio de sistema es el servicio de escritorio remoto, que permite conectarse remotamente al equipo.
Más información
Secuencia de arranque del sistema. Demonios
Proceso de arranque en Linux
- Tareas de inicio en BIOS.
- Si reconoce el hardware correctamente, carga y ejecuta el código de la partición de arranque del dispositivo de arranque designado, que contiene la fase 1 de un gestor de arranque Linux. La fase 1 carga la fase 2 (la mayor parte del código del gestor de arranque).
- Cargar gestor de arranque, a continuación, carga el sistema operativo, que descomprime en la memoria, y establece las funciones del sistema como del hardware esencial y la paginación de memoria.
- Llamar a la función start_kernel() que realiza la mayor parte de la configuración del sistema (interrupciones, el resto de la gestión de memoria, la inicialización del dispositivo, controladores, etc), antes de continuar por separado el proceso inactivo y planificador, y el proceso de Init (que se ejecuta en el espacio de usuario).
- El planificador toma control efectivo de la gestión del sistema, y el núcleo queda dormido (inactivo).
- El proceso Init (Init se ejecuta con un parámetro conocido como nivel de ejecución) ejecuta secuencias de comandos necesarios para configurar todos los servicios y estructuras que no sean del sistema operativo, a fin de permitir que el entorno de usuario sea creado y pueda presentarse al usuario con una pantalla de inicio de sesión.
Niveles de ejecución en Linux
- 0 Alto. Alto o cierre del sistema (Apagado).
- 1 Modo de usuario único (Monousuario). No configura la interfaz de red o los demonios de inicio, ni permite que ingresen otros usuarios que no sean el usuario root, sin contraseña. Este nivel de ejecución permite reparar problemas, o hacer pruebas en el sistema.
- 2 Multiusuario. Multiusuario sin soporte de red.
- 3 Multiusuario con soporte de red. Inicia el sistema normalmente.
- 4 Multiusuario con soporte de red. Igual que el 3.
- 5 Multiusuario gráfico (X11). Similar al nivel de ejecución 3 + display manager.
- 6 Reinicio. Se reinicia el sistema.
Arranque y parada de servicios en Linux
Ejercicio en Linux: comando para actualizar el arranque y parada de servicios:
1 |
update-rc.d |
Ejercicio en Linux: iniciar nuevos servicios en el proceso de arranque:
update-rc.d nombre_proceso defaults
1 |
update-rc.d ssh defaults |
Ejercicio en Linux: eliminar servicios del proceso de arranque:
update-rc.d -f nombre_proceso remove
1 |
update-rc.d -f squid remove |
Ejercicio en Linux: arrancar SSH Server
1 2 |
sudo /etc/init.d/ssh start sudo update-rc.d ssh defaults |