Multitarea, multiprogramación, multiprocesos y

15
INSTITUTO POLITÉCNICO NACIONAL INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA “CULHUACÁN” MECÁNICA Y ELÉCTRICA “CULHUACÁN” INGENIERÍA EN COMPUTACIÓN INGENIERÍA EN COMPUTACIÓN SISTEMAS OPERATIVOS SISTEMAS OPERATIVOS 6CV1 6CV1 RESENDIZ COLIN PILAR RESENDIZ COLIN PILAR MAGAÑA CASTILLO MIGUEL EDUARDO MAGAÑA CASTILLO MIGUEL EDUARDO ORTEGA CORTES LUIS JOEL ORTEGA CORTES LUIS JOEL MARTINEZ CARRISOSA EDGAR JESUS MARTINEZ CARRISOSA EDGAR JESUS RUIZ GARCIA NATALY RUIZ GARCIA NATALY MULTITAREA, MULTITAREA, MULTIPROGRAMACIÓN, MULTIPROGRAMACIÓN, MULTIPROCESOS Y MULTIPROCESOS Y CONCURRENCIA CONCURRENCIA

Transcript of Multitarea, multiprogramación, multiprocesos y

Page 1: Multitarea, multiprogramación, multiprocesos y

INSTITUTO POLITÉCNICO NACIONALINSTITUTO POLITÉCNICO NACIONALESCUELA SUPERIOR DE INGENIERÍA ESCUELA SUPERIOR DE INGENIERÍA

MECÁNICA Y ELÉCTRICA “CULHUACÁN”MECÁNICA Y ELÉCTRICA “CULHUACÁN”

INGENIERÍA EN COMPUTACIÓN INGENIERÍA EN COMPUTACIÓN

SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS

6CV16CV1

RESENDIZ COLIN PILARRESENDIZ COLIN PILAR

MAGAÑA CASTILLO MIGUEL EDUARDOMAGAÑA CASTILLO MIGUEL EDUARDO

ORTEGA CORTES LUIS JOELORTEGA CORTES LUIS JOEL

MARTINEZ CARRISOSA EDGAR JESUSMARTINEZ CARRISOSA EDGAR JESUS

RUIZ GARCIA NATALY RUIZ GARCIA NATALY

MULTITAREA, MULTITAREA, MULTIPROGRAMACIÓN, MULTIPROGRAMACIÓN,

MULTIPROCESOS Y MULTIPROCESOS Y CONCURRENCIACONCURRENCIA

Page 2: Multitarea, multiprogramación, multiprocesos y

PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE• La programación concurrente es la simultaneidad La programación concurrente es la simultaneidad

en la ejecución de múltiples tareas interactivas. en la ejecución de múltiples tareas interactivas.

Page 3: Multitarea, multiprogramación, multiprocesos y

• Estas tareas pueden ser un conjunto de procesos o Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las hilos de ejecución creados por un único programa. Las tareas se pueden ejecutar en un sola UCP tareas se pueden ejecutar en un sola UCP ((multiprogramación)multiprogramación), en varios procesadores o en una , en varios procesadores o en una red de computadores distribuidos. La programación red de computadores distribuidos. La programación concurrente está relacionada con la programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas. paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y los nodos los comunicaciones entre los procesos y los nodos los procesos coordinados de recursos que se comparten procesos coordinados de recursos que se comparten por tareas son las claves de esta disciplina.por tareas son las claves de esta disciplina.

Page 4: Multitarea, multiprogramación, multiprocesos y

La programación concurrente tiene capacidad para realizar La programación concurrente tiene capacidad para realizar varias tareas al mismo tiempo o muchas tareas en una sola varias tareas al mismo tiempo o muchas tareas en una sola PC con un procesador o varios.PC con un procesador o varios.

Page 5: Multitarea, multiprogramación, multiprocesos y

MULTITAREAS MULTITAREAS

• Es la capacidad de un sistema operativo para ejecutar Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo corriendo sobre un varios procesos al mismo tiempo corriendo sobre un procesador.procesador.

• Con los sistemas operativos DOS esto era incapaz de Con los sistemas operativos DOS esto era incapaz de realizarse.realizarse.

• Existen varios tipos de multitareas y son :Existen varios tipos de multitareas y son :* Multitarea Nula* Multitarea Cooperativa* Multitarea Preferente* Multitarea Real

Page 6: Multitarea, multiprogramación, multiprocesos y

MULTITAREA NULAMULTITAREA NULA ES ES aquel sistema aquel sistema

operativo que carece de operativo que carece de multitarea. Aún así puede multitarea. Aún así puede simularla simularla implementándola en un implementándola en un espacio de usuario espacio de usuario Justamente la familia Justamente la familia DOSDOS son ejemplos de sistemas son ejemplos de sistemas operativos de multitarea operativos de multitarea nula.nula.

Page 7: Multitarea, multiprogramación, multiprocesos y

MULTITAREA COOPERATIVAMULTITAREA COOPERATIVA

• Tipo de multitarea en donde los Tipo de multitarea en donde los procesos de usuario son quienes procesos de usuario son quienes ceden la CPU al sistema operativo ceden la CPU al sistema operativo a intervalos regulares.a intervalos regulares.

Es sumamente problemático Es sumamente problemático porque si por algún motivo el porque si por algún motivo el proceso de usuario es proceso de usuario es interrumpido, no cede la CPU al interrumpido, no cede la CPU al sistema operativo que lo ejecuta sistema operativo que lo ejecuta y, por lo tanto, quedará trabado y, por lo tanto, quedará trabado (bloqueado).(bloqueado).

Los sistemas operativos Windows Los sistemas operativos Windows antes de la versión 1995 antes de la versión 1995 implementaban este tipo de implementaban este tipo de multitarea.multitarea.

Page 8: Multitarea, multiprogramación, multiprocesos y

MULTITAREA PREFERENTEMULTITAREA PREFERENTE

Multitarea en donde el SO se encarga de administrar uno o Multitarea en donde el SO se encarga de administrar uno o más procesadores, repartiendo el tiempo de uso del mismo más procesadores, repartiendo el tiempo de uso del mismo entre los distintos procesos que esperan utilizarlo (tareas en entre los distintos procesos que esperan utilizarlo (tareas en ejecución).ejecución).

En el caso de un solo procesador, cada proceso o tarea lo En el caso de un solo procesador, cada proceso o tarea lo utiliza en períodos cortísimos de tiempo, lo que, en la utiliza en períodos cortísimos de tiempo, lo que, en la práctica, da la sensación de que estuviesen ejecutándose al práctica, da la sensación de que estuviesen ejecutándose al mismo tiempo.mismo tiempo.

Los sistemas operativos que utilizan este tipo de multitareas Los sistemas operativos que utilizan este tipo de multitareas son los UNIX y sus clones (Linux, etc), Windows NT, etc.son los UNIX y sus clones (Linux, etc), Windows NT, etc.

Page 9: Multitarea, multiprogramación, multiprocesos y

MULTITAREA REALMULTITAREA REAL

Multitarea en donde el SO ejecuta los procesos realmente al mismo Multitarea en donde el SO ejecuta los procesos realmente al mismo tiempo haciendo uso de múltiples procesadores (más de dos).tiempo haciendo uso de múltiples procesadores (más de dos).

La ejecución realmente se realiza en distintos procesadores para cada La ejecución realmente se realiza en distintos procesadores para cada proceso o tarea. Obviamente en el caso de que los procesos o tareas sean proceso o tarea. Obviamente en el caso de que los procesos o tareas sean más que la cantidad de procesadores, éstos comienzan a ejecutarse en más que la cantidad de procesadores, éstos comienzan a ejecutarse en procesadores "en uso" en la forma de multitareas preferenteprocesadores "en uso" en la forma de multitareas preferente

Todos los sistemas operativos modernos soportan esta capacidad.Todos los sistemas operativos modernos soportan esta capacidad.

Page 10: Multitarea, multiprogramación, multiprocesos y

MULTIPROGRAMACIONMULTIPROGRAMACION

• MULTIPROGRAMACION Es la técnica que permite que dos o mas MULTIPROGRAMACION Es la técnica que permite que dos o mas programas ocupen la misma unidad de memoria principal y que programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo. sean ejecutados al mismo tiempo.

• La multiprogramación se refiere a dos o mas programas La multiprogramación se refiere a dos o mas programas corriendo o procesándose al mismo tiempo; La corriendo o procesándose al mismo tiempo; La multiprogramación se controla a través del sistema operativo, el multiprogramación se controla a través del sistema operativo, el cual observa los programas y los vigila hasta que estén cual observa los programas y los vigila hasta que estén concluidos. concluidos.

• El numero de programas que pueden multiprogramarse en forma El numero de programas que pueden multiprogramarse en forma efectiva, depende de una combinación de la cantidad de efectiva, depende de una combinación de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad de memoria, de la velocidad de la CPU y del numero y velocidad de los recursos periféricos que tenga conectados, así como de la los recursos periféricos que tenga conectados, así como de la eficiencia del SISTEMA OPERATIVO. eficiencia del SISTEMA OPERATIVO.

Page 11: Multitarea, multiprogramación, multiprocesos y

PRINCIPIOS DE CONCURRENCIAPRINCIPIOS DE CONCURRENCIA• En un sistema multiprogramado con un único procesador, los En un sistema multiprogramado con un único procesador, los

procesos se intercalan en el tiempo aparentando una ejecución procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia del procesamiento y intercalada produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas.en la estructuración de los programas.

Page 12: Multitarea, multiprogramación, multiprocesos y

PRINCIPIOS DE CONCURRENCIAPRINCIPIOS DE CONCURRENCIA• La concurrencia es el punto clave en los conceptos de multitarea, La concurrencia es el punto clave en los conceptos de multitarea,

multiprogramación y multiproceso, la concurrencia comprende un multiprogramación y multiproceso, la concurrencia comprende un gran numero de cuestiones de diseño incluyendo la comunicación gran numero de cuestiones de diseño incluyendo la comunicación entre procesos, la compartición y competencia por los recursos, la entre procesos, la compartición y competencia por los recursos, la sincronización de la ejecución de varios procesos y la asignación sincronización de la ejecución de varios procesos y la asignación del procesador a los procesos, la concurrencia puede presentarse del procesador a los procesos, la concurrencia puede presentarse en tres contextos diferentes:en tres contextos diferentes:

• Varias aplicaciones:Varias aplicaciones:• Aplicaciones estructuradas:Aplicaciones estructuradas:• Estructura del sistema operativo:Estructura del sistema operativo:

Page 13: Multitarea, multiprogramación, multiprocesos y

APLICACIONES APLICACIONES ESTRUCTURADAS:ESTRUCTURADAS:

Como consecuencia del diseño modular de una aplicación y la división de Como consecuencia del diseño modular de una aplicación y la división de la misma en tareas explícitas estas pueden ser ejecutadas de forma la misma en tareas explícitas estas pueden ser ejecutadas de forma concurrente.concurrente.

En programación, un lenguaje estructurado es aquel que soporta la En programación, un lenguaje estructurado es aquel que soporta la división en bloques (procedimientos y funciones) que pueden o no división en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí.comunicarse entre sí.

Por ejemplo, los archivos batch (.bat) es contrario a inestructurado, de Por ejemplo, los archivos batch (.bat) es contrario a inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un “bloque”, poco uso, que no tiene ninguna estructura, es simplemente un “bloque”,

Page 14: Multitarea, multiprogramación, multiprocesos y

ESTRUCTURA DEL SISTEMA ESTRUCTURA DEL SISTEMA OPERATIVO:OPERATIVO:

Como resultado de las aplicaciones estructurada que se aplica en Como resultado de las aplicaciones estructurada que se aplica en

el diseño del propio SO, de forma que este se implemente como el diseño del propio SO, de forma que este se implemente como

un conjunto de procesos.un conjunto de procesos.

Page 15: Multitarea, multiprogramación, multiprocesos y

LABORES DEL SISTEMA LABORES DEL SISTEMA OPERATIVOOPERATIVO

Son Elementos de gestión y diseño que surgen por causa de la concurrencia:Son Elementos de gestión y diseño que surgen por causa de la concurrencia:1) El sistema operativo debe seguir a los distintos procesos activos1) El sistema operativo debe seguir a los distintos procesos activos

2) El sistema operativo debe asignar y retirar los distintos recursos a cada 2) El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo, entre estos se incluyen:proceso activo, entre estos se incluyen:

_Tiempo de procesador _Tiempo de procesador __MemoriaMemoria

_Archivos _Archivos _Dispositivos de E/S_Dispositivos de E/S

3) El sistema operativo debe proteger los datos y los recursos físicos de cada 3) El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.proceso contra injerencias no intencionadas de otros procesos.

4) Los resultados de un proceso deben ser independientes de la velocidad a la 4) Los resultados de un proceso deben ser independientes de la velocidad a la que se realiza la ejecución de otros procesos concurrentes.que se realiza la ejecución de otros procesos concurrentes.