Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Pila
Montn
Variables globales
Mantiene las direcciones de vuelta para las llamadas a funciones. Mantiene las variables locales.
Regin de memoria libre que puede usar el programa mediante las funciones de asignacin dinmica.
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Direcciones absolutas SP
CS
PC
Direcciones relativas
Pila
Montn
Variables globales
Proceso
El sistema operativo consiste en un conjunto de programas que permiten la manipulacin de los recursos hardware del sistema, as como su gestin. Cuando un programa se ejecuta, el intrprete de comandos resuelve el nombre del programa, dicho nombre corresponde normalmente a un archivo ejecutable cuya informacin est contenida en un dispositivo de almacenamiento secundario. Dicha informacin es volcada a la memoria, las direcciones relativas son resueltas y se convierten en direcciones absolutas, los registros almacenan los valores de las direcciones de los diferentes segmentos del programa: pila, datos, cdigo, contador de programa, etc. El sistema operativo sigue ejecutndose junto con el programa: sistemas monotarea y sistemas multitarea.
Sistema operativo
Programa
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Sistemas monotarea
Slo puede ejecutarse una tarea simultneamente. MS DOS. No es necesaria la planificacin de procesos. Posibilidad de crear entornos de programacin concurrente mediante interpretacin o simulacin: PASCAL FC.
Pascal FC
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Sistemas multitarea
Se pueden ejecutar varias tareas simultneamente (varios procesos). Versiones de Windows a partir del 95, Unix, Minix, Linux, etc. Es necesaria la planificacin de procesos. Posibilidad de crear entornos de programacin concurrente en el espacio de usuario. Por ejemplo, planificacin en mquina virtual de JAVA.
Espacio de usuario
Kernel S.O.
Hardware
Espacio de usuario Kernel S.O. Hardware Microkernel (Organizacin por capas): MINIX Monoltico : LINUX Espacio de usuario Kernel S.O. Hardware
Sistemas multitarea
Si existen varios procesadores, y el S.O. es capaz de distribuir la carga computacional entre los mismos, hablamos de un sistema operativo multiprocesamiento. Dos tipos de sistemas multitarea: Memoria compartida Memoria distribuida
Memoria compartida
Pr1P1 Pr2P1 Pr2P2 Pr3P3
Planificador
S.O.
Programa 1
Programa 2
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Memoria compartida
H1
H2
H3
H4
H5 H6
H7
Pr1P1
Pr2P1
Pr2P2
Pr3P3
Planificador
S.O.
Programa 1
Programa 2
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Programacin secuencial: Las acciones se ejecutan una tras otra, en un sentido estricto, esto es una accin posterior no se inicia hasta que se haya completado la anterior. Programacin paralela: Las acciones se ejecutan de forma independiente, obviamente por diferentes elementos de procesos, y al final los resultados parciales se unen formando la solucin global. Ventajas: Reduccin del tiempo para completar el trabajo. Reduccin del esfuerzo individual. Inconvenientes: Necesidad de compartir el trabajo. Necesidad de compartir los recursos. Necesidad de esperas en puntos clave. Necesidad de comunicacin. Necesidad de resolucin de posibles errores. Programacin Concurrente: Las acciones se ejecutan por nico elementos de procesos capaz de seleccionar una de ellas segn una determinadas caractersticas. Ventajas No depende de la arquitectura o n de elementos de proceso Menos necesidad de compartir el trabajo Menos necesidad de resoluciones de errores Permite resolver problemas que no sera posible con un procesamiento secuencial
(a) Programa.
(b) Proceso. (c) Sistemas monotarea. (d) Sistemas multitarea. (e) Sistema operativo LINUX.
(a) Definicin.
(b) Propiedades de los programas concurrentes.
Orden: Orden en que se ejecutan las instrucciones. Parcial: No se conoce exactamente la secuencia en la que sern ejecutadas las instrucciones. Total: Se conoce exactamente el orden en el que se deben ejecutar todas las instrucciones. ORDEN TOTAL => DETERMINISMO ORDEN PARCIAL => INDETERMINISMO Requisitos para la Programacin Concurrente: Situacin de los procesos en un sistema: Independientes. Colaborando o Compitiendo son necesarias normas o protocolo. Requisitos Sincronizacin Capacidad de informar de la situacin de un proceso a otro. Objetivo: Establecer la secuencialidad correcta del programa Exclusin Mutua. Asegurar que un solo proceso tiene acceso a un recurso compartido nico. Por condicin. Asegurar que un proceso no progrese hasta que se cumpla una determinada condicin. Comunicacin Capacidad de transmitir informacin desde un proceso a otro. Objetivo: Intercambio de informacin entre procesos. Prioridad Capacidad de establecer una ordenacin de importancia en los procesos. Objetivo: Permitir la ejecucin de procesos ms importantes (prioritarios) antes que otros.
Interbloqueos: Espera de un proceso por un evento que nunca va a suceder. Violacin de la exclusin mutua: Acceso simultneo a un recurso por 2 o ms procesos, cuando dicho recurso slo puede ser accedido por un nico proceso cada vez. Postergacin indefinida o inanicin: Uno o ms procesos nunca son seleccionados para ejecutarse en la CPU.
Seguridad (safety): Asegurar que nada no permitido ocurrir durante la ejecucin. El programa no llegar a un estado inconsistente, debido a posibles problemas por un mal uso de los recursos compartidos. Ejemplo: Asegurar la exclusin mutua. Viveza (liveness): Asegurar que lo deseado ocurrir finalmente en la ejecucin del programa. El programa no se bloquear o provocar que un proceso no se pueda ejecutar. Ejemplo: No permitir la postergacin indefinida. Correccin Parcial (propiedad de seguridad) Si el programa termina, la salida es la deseada Correccin Total (propiedad de seguridad y viveza) El programa termina y la salida es la correcta
Sumar dos matrices de 3 x 3. Usamos 3 procesos para sumar cada fila, un proceso que lea las matrices y un ltimo proceso que genere la matriz resultado.
Sum filas 0
Leer matrices
Dividir en filas
Sum filas 1
Sum filas 2
Secuencial
Zona concurrente