Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introduccin ........................................................................................................ 2
1.1. Relacin con los ciclos impartidos en FP ....................................................... 2
1.2. Introduccin a los SSOO ............................................................................... 2
1.3. Conceptos ..................................................................................................... 2
2. Procesos y el SO .................................................................................................. 2
2.1. Modelo de procesos ....................................................................................... 2
2.2. Comparticin del Procesador ......................................................................... 2
2.3. Creacin de un nuevo proceso ....................................................................... 3
2.4. Hilos (threads) o procesos ligeros ................................................................ 3
3. Planificacin del procesador ................................................................................ 3
3.1. Introduccin ................................................................................................. 3
3.2. Objetivos del planificador ............................................................................. 3
3.3. Algoritmos de planificacin ........................................................................... 4
4. Comunicacin y sincronizacin entre procesos .................................................... 5
4.1. Introduccin ................................................................................................. 5
4.2. Soluciones: software, hardware, semforos y mensajes ............................... 5
5. Bibliografa y Personalidades Influyentes/Destacadas ........................................ 6
5.1. Bibliografa ................................................................................................... 6
5.2. Personalidades Destacadas ........................................................................... 6
T16. Sistemas Operativos. Gestin de Procesos.
1. Introduccin
1.1. Relacin con los ciclos impartidos en FP
Este tema est directamente relacionado con los siguientes mdulos y ciclos formativos
de la rama de informtica:
CFGS Administracin de Sistemas Informticos: Sistemas informticos monousuario y
multiusuario (SyAI).
CFGS Desarrollo de Aplicaciones Informticas: Sistemas informticos multiusuario y en
red (SyAI).
CFGM Explotacin de Sistemas Informticos: Sistemas operativos en entornos
monousuario y multiusuario (SyAI).
1.2. Introduccin a los SSOO
Stallings, 2001. Un programa que controla la ejecucin de los programas de
aplicacin y que acta como interfaz entre el usuario de un computador y el
hardware del mismo
Conjunto de programas de control cuya finalidad es hacer ms fcil y eficiente el uso
del ordenador en que se ejecutan
Estn presentes en todo tipo de sistemas electrnicos que necesiten un software de
control sobre el que un usuario pueda trabajar fcilmente, desde super-ordenadores
con cientos de microprocesadores (Solaris, AIX, Linux), hasta en aparatos tan
comunes como agendas electrnicas (Windows Mobile o Palm OS), telfonos mviles
(Windows Phone, IOS o Android), y como no, ordenadores personales (Windows,
Linux, Mac OS X, etc.)
1.3. Conceptos
Proceso: Programa en ejecucin que comprende el valor actual del contador de
programa, los registros y de las variables.
Monoprogramacin: Slo se puede ejecutar un proceso y hasta que no se termine
no puede iniciarse el siguiente. Ya no existen. MSDOS era multitarea pero no expulsiva
Multiprogramacin/Multitarea: Se pueden ejecutar varios procesos
simultneamente, compartiendo el tiempo de uso de procesador. Mejor
aprovechamiento de los recursos y aumento del rendimiento del microprocesador
2. Procesos y el SO
2.1. Modelo de procesos
De manera conceptual se considera que cada proceso tiene su propia CPU virtual,
aunque la verdadera CPU alterna entre los procesos listos segn un determinado
algoritmo.
Cada proceso puede estar bsicamente en los estados en ejecucin, bloqueado
(esperando una E/S) o listo. Slo un proceso estar en ejecucin, y el planificador
decidir en cada instante a cual de los procesos en estado listo le cede la CPU.
El planificador constituye el nivel inferior del sistema operativo, y en l estn ocultos
todo el manejo de interrupciones, as como el de arranque y parada de los procesos.
Esto permite que el resto del SO. se estructure elegantemente en forma de procesos.
El SO utiliza una tabla de procesos que tiene una entrada por cada proceso, en sta,
guarda informacin sobre el estado del proceso, su contador de programa el puntero
de pila, memoria asignada, informacin relativa a su planificacin y a su utilizacin de
los recursos. Por ejemplo en Linux tiene el nombre de task_struct, y guarda, entre
otras propiedades, la prioridad y la poltica de planificacin (round robin, FIFO o
tiempo real).
2.2. Comparticin del Procesador
Multitarea cooperativa: las tareas cooperan en el reparto del procesador. Si una
tarea no cede el control el sistema quedar bloqueado. MSDOS/W3.11
Multitarea expulsiva o apropiativa: El SO recupera el control en cada interrupcin
de reloj hardware y decide si se contina ejecutando el mismo proceso, o si se le cede
la CPU a otro proceso. Windows, Unix, Linux, etc.
2.3. Creacin de un nuevo proceso
Cuando se crea un nuevo proceso (por ejemplo ejecutando un programa) se realizan
una serie de acciones:
o Cargar en memoria el cdigo y los datos
o Crear una nueva pila para el proceso
o Iniciar el bloque de control de procesos
o Dar a conocer el nuevo proceso al dispatcher
Pare crear un proceso en Unix se utiliza la llamada fork() que duplica el cdigo, los
datos y la pila del proceso llamante. la funcin fork() devuelve un cero al proceso hijo
y el pid del hijo al proceso padre. En el proceso hijo se podr llamar a continuacin a
exec() para ejecutar otro programa, cambiando as el cdigo y los datos.
2.4. Hilos (threads) o procesos ligeros
Unidad bsica de ejecucin que nicamente posee como propio el contador de
programa, los registros del procesador y la pila, y que comparte recursos como la
memoria o los archivos abiertos con los hilos de la misma tarea, facilitando as la
comparicin de recursos.
Una tarea posee recursos, pero no posee capacidad de ejecucin, debe tener al menos
un hilo de ejecucin. Un proceso clsico sera equivalente a una tarea con un hilo en
ejecucin.
Empleando hilos podemos tener varias unidades de ejecucin activas en una misma
aplicacin. Por ejemplo en un procesador de textos, un hilo recoge las pulsaciones del
teclado y visualiza el texto y otro hilo realiza las tareas de corrector ortogrfico. Otro
ejemplo son los sistemas cliente-servidor, en los que el servidor genera un hilo para
atender a cada proceso cliente, esto sucede en chats o servidores de pginas Web.
Como ventajas, los cambios de contexto entre hilos de la misma tarea son mucho ms
rpidos que entre procesos, adems, en sistemas multiprocesador los distintos hilos
de una aplicacin pueden ser ejecutados en paralelo en distintos procesadores.
Existe una biblioteca estndar POSIX Threads (pthreads.h) soportada por Linux y
Windows a partir de su versin Windows 2000 entre otros, que simplifica la creacin,
desarrollo, portabilidad y seguridad de aplicaciones multihilo para diferentes entornos.
En esta, existen llamadas para generar hilos como pthread_creare() que recibe como
parmetros la rutina (o funcin) que ejecutar el hilo, la memoria compartida y otras
opciones.
Sistemas como Solaris o Windows Server soportan hilos desde el ncleo, Linux en
cambio est basado en procesos y para trabajar con hilos lo hace mediante un
paquete que se ejecuta en modo usuario, esto acelera los cambios de contexto dentro
de un mismo proceso, pero genera otros problemas como que al bloquear un hilo de
un proceso, se bloqueen todos los de ese proceso.