SlideShare una empresa de Scribd logo
1 de 4
Alumno: García Aguilar José Gabriel Grupo: 15Li251 
2.1 Procesos 
En cualquier sistema de multiprogramación, la CPU conmuta de un proceso a otro con rapidez, 
ejecutando cada uno durante décimas o centésimas de milisegundos (La CPU está ejecutando solo 
un proceso y en el transcurso de 1 segundo podría trabajar en varios de ellos dando la apariencia 
de un paralelismo, o pseudoparalelismo para distinguirlo del verdadero paralelismo del hardware 
de los sistemas multiprocesadores con 2 o más CPUs que comparten la misma memoria física). 
Los diseñadores de sistemas operativos han evolucionado con el paso de los años a un modelo 
conceptual (procesos secuenciales) que facilita el trabajo con el paralelismo. 
2.1.1 El modelo de un proceso 
Todo el software ejecutable se organiza en varios procesos secuenciales. Un proceso no es más 
que una instancia de un programa en ejecución, incluyendo los valores actuales del contador de 
programas, los registros y las variables. Cada proceso tiene su propia CPU virtual, una 
conmutación rápida de un proceso a otro se conoce como conmutación. 
Dado que la CPU conmuta rápidamente ente un proceso y otro, la velocidad a la que un proceso 
ejecuta sus cálculos no es uniforme y tal vez ni siquiera sea reproducible si se ejecutan los mismos 
procesos de nuevo. 
La idea clave es que un proceso es una actividad de cierto tipo: Tiene un programa, una entrada, 
una salida y un estado. Varios procesos pueden compartir un solo procesador mediante el uso de 
un algoritmo de planificación para determinar cuándo se debe detener el trabajo en un proceso 
para dar servicio a otro. 
2.1.2 Creación de un proceso 
En sistemas muy simples o sistemas diseñados para ejecutar solo una aplicación es posible tener 
presentes todos los procesos que se vayan a requerir cuando el sistema se inicie, no obstante en 
los sistemas de propósito general se necesita cierta forma de crear y terminar procesos según sea 
necesario durante la operación. 
Hay 4 eventos principales que provocan la creación de procesos: 
1° El arranque del sistema 
2° La ejecución, desde un proceso, de una llamada al sistema creación de procesos 
3° Una petición de usuario para crear un proceso 
4° El inicio de un trabajo por lotes 
Generalmente, cuando se arranque un sistema operativo se crean varios procesos, algunos de 
ellos son procesos en primer plano; es decir, procesos que interactúan con los usuarios y realizan 
trabajo para ellos. Otros son procesos en segundo plano, que no están asociados con usuarios 
específicos sino con una función específica. 
Los procesos que permanecen en segundo plano como correo electrónico, páginas web, noticias, 
etc. Se conocen como demonios (daemons), los sistemas grandes tienen comúnmente docenas de
Alumno: García Aguilar José Gabriel Grupo: 15Li251 
ellos, en UNIX podemos utilizar el programa PS para listar los procesos en ejecución mientras que 
en Windows podemos usar el administrador de tareas. 
En los sistemas interactivos, los usuarios pueden iniciar un programa escribiendo un comando o 
haciendo doble clic en un icono, cualquiera de las 2 acciones inicia un proceso y ejecuta el 
programa seleccionado. 
Existe la ejecución de una llamada al sistema para crear el proceso, esta indica al sistema 
operativo que cree un proceso y le indica directa o indirectamente cual programa debe ejecutarlo. 
En Unix solo hay una llamada al sistema para crear un proceso. Fork: Esta llamada crea un clon 
exacto del proceso que hizo la llamada, después de fork los 2 procesos (padre e hijo) tienen la 
misma imagen de memoria, las mismas cadenas de entorno y los mismos archivos abiertos. 
Windows solo hace una llamada a una función de Win32 CreateProcess, maneja la creación de 
procesos y carga el programa correcto en el nuevo proceso, esta llamada incluye los siguientes 
parámetros: 
1° Programa a ejecutar 
2° Parámetros de la línea de comandos para introducir datos a ese programa 
3° Varios atributos de seguridad 
4° bits que controlan si los archivos abiertos se heredan 
5° Información de prioridad 
6° Una especificación de la ventana que se va a crear para el proceso 
7° Apuntador a una estructura 
2.1.3 Terminación de procesos 
Una vez que se crea un proceso empieza a ejecutarse y realiza el trabajo al que esta destinado, sin 
embargo, tarde o temprano el nuevo proceso terminaría, por lo general debido a una de las 
siguientes condiciones. 
1° Salida normal (voluntaria) 
2° Salida por error (voluntaria) 
3° Error fatal (involuntaria) 
4° Eliminado por otro proceso (involuntaria) 
La mayoría de los procesos terminan debido a que han concluido su trabajo. 
La segunda razón de terminación es que el proceso descubra un error. 
La tercera razón de terminación es un error fatal producido por el proceso, a menudo debido a un 
error en el programa.
Alumno: García Aguilar José Gabriel Grupo: 15Li251 
La cuarta razón es que ejecute una llamada al sistema que indique al sistema operativo que 
elimine a otros procesos, en Unix esta llamada es Kill, la función correspondiente en Win32 es 
TerminateProcess. 
2.1.4 Jerarquía de Procesos 
En algunos sistemas, cuando un proceso crea otro, el proceso padre y el proceso hijo continúan 
asociados en ciertas formas. El proceso hijo puede crear por sí mismo más procesos, formando 
una jerarquía de procesos. Observe que, a diferencia de las plantas y los animales que utilizan la 
reproducción sexual, un proceso sólo tiene un padre (pero cero, uno, dos o más hijos). 
En UNIX, un proceso y todos sus hijos, junto con sus posteriores descendientes, forman un grupo 
de procesos. Cuando un usuario envía una señal del teclado, ésta se envía a todos los miembros 
del grupo de procesos actualmente asociado con el teclado (por lo general, todos los procesos 
activos que se crearon en la ventana actual). De manera individual, cada proceso puede atrapar la 
señal, ignorarla o tomar la acción predeterminada que es ser eliminado por la señal. 
Como otro ejemplo dónde la jerarquía de procesos juega su papel, veamos la forma en que 
UNIX se inicializa a sí mismo cuando se enciende la computadora. Hay un proceso especial 
(llamado init) en la imagen de inicio. Cuando empieza a ejecutarse, lee un archivo que le indica 
cuántas terminales hay. Después utiliza fork para crear un proceso por cada terminal. Estos 
procesos esperan a que alguien inicie la sesión. Si un inicio de sesión tiene éxito, el proceso de 
inicio de sesión ejecuta un shell para aceptar comandos. Éstos pueden iniciar más procesos y así 
sucesivamente. 
Por ende, todos los procesos en el sistema completo pertenecen a un solo árbol, con init en la raíz. 
En contraste, Windows no tiene un concepto de una jerarquía de procesos. Todos los procesos son 
iguales. La única sugerencia de una jerarquía de procesos es que, cuando se crea un proceso, el 
padre recibe un indicador especial un token (llamado manejador) que puede utilizar para controlar 
al hijo. Sin embargo, tiene la libertad de pasar este indicador a otros procesos, con lo cual invalida 
la jerarquía. Los procesos en UNIX no pueden desheredar a sus hijos. 
2.1.5 Estados de un Proceso 
Los estados de un proceso son los siguientes: 
1. En ejecución (en realidad está usando la CPU en ese instante). 
2. Listo (ejecutable; se detuvo temporalmente para dejar que se ejecute otro proceso). 
3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo). 
2.1.6 Implementación de los procesos 
Para implementar el modelo de procesos, el sistema operativo mantiene una tabla (un arreglo de 
estructuras) llamada tabla de procesos, con sólo una entrada por cada proceso (algunos autores 
llaman a estas entradas bloques de control de procesos). Esta entrada contiene información 
importante acerca del estado del proceso, incluyendo su contador de programa, apuntador de 
pila, asignación de memoria, estado de sus archivos abiertos, información de contabilidad y
Alumno: García Aguilar José Gabriel Grupo: 15Li251 
planificación, y todo lo demás que debe guardarse acerca del proceso cuando éste cambia del 
estado en ejecución a listo o bloqueado, de manera que se pueda reiniciar posteriormente como si 
nunca se hubiera detenido. 
2.1.7 Modelación de multiprogramación 
Cuando se utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho en forma cruda: 
si el proceso promedio realiza cálculos sólo 20 por ciento del tiempo que está en la memoria, con 
cinco procesos en memoria a la vez la CPU deberá estar ocupada todo el tiempo. Sin embargo, 
este modelo es demasiado optimista, ya que supone que los cinco procesos nunca estarán 
esperando la E/S al mismo tiempo. 
Un mejor modelo es analizar el uso de la CPU desde un punto de vista probabilíst ico. Suponga que 
un proceso gasta una fracción p de su tiempo esperando a que se complete una operación de 
E/S. Con n procesos en memoria a la vez, la probabilidad de que todos los n procesos estén 
esperando la E/S (en cuyo caso, la CPU estará inactiva) es pn. Entonces, el uso de la CPU se obtiene 
mediante la fórmula 
Uso de la CPU _ 1 _ pn 
CUESTIONARIO 
1° Que es un proceso? 
R= Un proceso no es mas que una instancia de un programa en ejecución incluyendo los valores 
actuales del contador de programa, los registros y las variables. 
2° Cuales son los estados de un proceso? 
R= -En ejecución=Se usa la CPU 
-Listo= Mensaje en ejecución de un proceso 
-Bloqueado= No puede ejecutarse 
3° Que son las interrupciones para un proceso? 
R= Procesos de usuario, procesos de disco, procesos de terminal, etc, que se bloquean cuando 
estan esperando a que algo ocurra. 
4° Que es la multiprogramación? 
R= Una conmutación rápida de un proceso a otro. 
5° Que es el vector de interrupción? 
R= Es la ubicación asociada de cada clase de entrada y salida.

Más contenido relacionado

La actualidad más candente

Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareJennifer Andrea Cano Guevara
 
Ejemplos de diagramas =)
Ejemplos de diagramas =)Ejemplos de diagramas =)
Ejemplos de diagramas =)bat1820
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoMarvin Romero
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónYare LoZada
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
 Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automáticoItzel656131
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1jmpov441
 
Mapa Conceptual procesos concurrentes
Mapa Conceptual procesos concurrentesMapa Conceptual procesos concurrentes
Mapa Conceptual procesos concurrentesFrangelys Perez
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
La evolución histórica de los sistemas operativos
La evolución histórica de los sistemas operativosLa evolución histórica de los sistemas operativos
La evolución histórica de los sistemas operativosegonrea
 

La actualidad más candente (20)

Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
Ejemplos de diagramas =)
Ejemplos de diagramas =)Ejemplos de diagramas =)
Ejemplos de diagramas =)
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativo
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
 
Componentes en-poo
Componentes en-pooComponentes en-poo
Componentes en-poo
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
 Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1
 
Mapa Conceptual procesos concurrentes
Mapa Conceptual procesos concurrentesMapa Conceptual procesos concurrentes
Mapa Conceptual procesos concurrentes
 
Sistemas de archivos
Sistemas de archivosSistemas de archivos
Sistemas de archivos
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
La evolución histórica de los sistemas operativos
La evolución histórica de los sistemas operativosLa evolución histórica de los sistemas operativos
La evolución histórica de los sistemas operativos
 

Similar a Cuestionario procesos

Similar a Cuestionario procesos (20)

27 de oct
27 de oct27 de oct
27 de oct
 
acti27 de oct
acti27 de octacti27 de oct
acti27 de oct
 
27 de oct
27 de oct27 de oct
27 de oct
 
Tarea 3_individual_Nelis Rivero
Tarea 3_individual_Nelis RiveroTarea 3_individual_Nelis Rivero
Tarea 3_individual_Nelis Rivero
 
Proceso
ProcesoProceso
Proceso
 
Procesos e hilos- Parte 1
Procesos e hilos- Parte 1Procesos e hilos- Parte 1
Procesos e hilos- Parte 1
 
Tarea 3 actividad individual
Tarea 3 actividad individualTarea 3 actividad individual
Tarea 3 actividad individual
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativos
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Procesos
ProcesosProcesos
Procesos
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
Expocontrolcalidad
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 

Más de Gabriel Garcia

Más de Gabriel Garcia (17)

ingenieria de requerimientos
ingenieria de requerimientos ingenieria de requerimientos
ingenieria de requerimientos
 
Admonmemory
AdmonmemoryAdmonmemory
Admonmemory
 
Blogger tercer
Blogger tercerBlogger tercer
Blogger tercer
 
Blogger tercer
Blogger tercerBlogger tercer
Blogger tercer
 
Sistemas Operativos ii
Sistemas  Operativos iiSistemas  Operativos ii
Sistemas Operativos ii
 
Plan estudios11
Plan estudios11Plan estudios11
Plan estudios11
 
Examen sinf2parcial
Examen sinf2parcialExamen sinf2parcial
Examen sinf2parcial
 
Segunda secundaria (2)
Segunda secundaria (2) Segunda secundaria (2)
Segunda secundaria (2)
 
Cuestionario ubuntu
Cuestionario ubuntu Cuestionario ubuntu
Cuestionario ubuntu
 
Cuestionario hilos
Cuestionario hilos Cuestionario hilos
Cuestionario hilos
 
Cuestionario de software
Cuestionario de software Cuestionario de software
Cuestionario de software
 
Sistemas operativos 1
Sistemas operativos 1Sistemas operativos 1
Sistemas operativos 1
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Manual basico de ubuntu gnu linux
Manual basico de ubuntu gnu linux Manual basico de ubuntu gnu linux
Manual basico de ubuntu gnu linux
 
Users ubuntu
Users ubuntu Users ubuntu
Users ubuntu
 
Curso de ubuntu
Curso de ubuntuCurso de ubuntu
Curso de ubuntu
 
Manual basico de ubuntu gnu linux
Manual basico de ubuntu gnu linuxManual basico de ubuntu gnu linux
Manual basico de ubuntu gnu linux
 

Último

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 

Último (7)

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 

Cuestionario procesos

  • 1. Alumno: García Aguilar José Gabriel Grupo: 15Li251 2.1 Procesos En cualquier sistema de multiprogramación, la CPU conmuta de un proceso a otro con rapidez, ejecutando cada uno durante décimas o centésimas de milisegundos (La CPU está ejecutando solo un proceso y en el transcurso de 1 segundo podría trabajar en varios de ellos dando la apariencia de un paralelismo, o pseudoparalelismo para distinguirlo del verdadero paralelismo del hardware de los sistemas multiprocesadores con 2 o más CPUs que comparten la misma memoria física). Los diseñadores de sistemas operativos han evolucionado con el paso de los años a un modelo conceptual (procesos secuenciales) que facilita el trabajo con el paralelismo. 2.1.1 El modelo de un proceso Todo el software ejecutable se organiza en varios procesos secuenciales. Un proceso no es más que una instancia de un programa en ejecución, incluyendo los valores actuales del contador de programas, los registros y las variables. Cada proceso tiene su propia CPU virtual, una conmutación rápida de un proceso a otro se conoce como conmutación. Dado que la CPU conmuta rápidamente ente un proceso y otro, la velocidad a la que un proceso ejecuta sus cálculos no es uniforme y tal vez ni siquiera sea reproducible si se ejecutan los mismos procesos de nuevo. La idea clave es que un proceso es una actividad de cierto tipo: Tiene un programa, una entrada, una salida y un estado. Varios procesos pueden compartir un solo procesador mediante el uso de un algoritmo de planificación para determinar cuándo se debe detener el trabajo en un proceso para dar servicio a otro. 2.1.2 Creación de un proceso En sistemas muy simples o sistemas diseñados para ejecutar solo una aplicación es posible tener presentes todos los procesos que se vayan a requerir cuando el sistema se inicie, no obstante en los sistemas de propósito general se necesita cierta forma de crear y terminar procesos según sea necesario durante la operación. Hay 4 eventos principales que provocan la creación de procesos: 1° El arranque del sistema 2° La ejecución, desde un proceso, de una llamada al sistema creación de procesos 3° Una petición de usuario para crear un proceso 4° El inicio de un trabajo por lotes Generalmente, cuando se arranque un sistema operativo se crean varios procesos, algunos de ellos son procesos en primer plano; es decir, procesos que interactúan con los usuarios y realizan trabajo para ellos. Otros son procesos en segundo plano, que no están asociados con usuarios específicos sino con una función específica. Los procesos que permanecen en segundo plano como correo electrónico, páginas web, noticias, etc. Se conocen como demonios (daemons), los sistemas grandes tienen comúnmente docenas de
  • 2. Alumno: García Aguilar José Gabriel Grupo: 15Li251 ellos, en UNIX podemos utilizar el programa PS para listar los procesos en ejecución mientras que en Windows podemos usar el administrador de tareas. En los sistemas interactivos, los usuarios pueden iniciar un programa escribiendo un comando o haciendo doble clic en un icono, cualquiera de las 2 acciones inicia un proceso y ejecuta el programa seleccionado. Existe la ejecución de una llamada al sistema para crear el proceso, esta indica al sistema operativo que cree un proceso y le indica directa o indirectamente cual programa debe ejecutarlo. En Unix solo hay una llamada al sistema para crear un proceso. Fork: Esta llamada crea un clon exacto del proceso que hizo la llamada, después de fork los 2 procesos (padre e hijo) tienen la misma imagen de memoria, las mismas cadenas de entorno y los mismos archivos abiertos. Windows solo hace una llamada a una función de Win32 CreateProcess, maneja la creación de procesos y carga el programa correcto en el nuevo proceso, esta llamada incluye los siguientes parámetros: 1° Programa a ejecutar 2° Parámetros de la línea de comandos para introducir datos a ese programa 3° Varios atributos de seguridad 4° bits que controlan si los archivos abiertos se heredan 5° Información de prioridad 6° Una especificación de la ventana que se va a crear para el proceso 7° Apuntador a una estructura 2.1.3 Terminación de procesos Una vez que se crea un proceso empieza a ejecutarse y realiza el trabajo al que esta destinado, sin embargo, tarde o temprano el nuevo proceso terminaría, por lo general debido a una de las siguientes condiciones. 1° Salida normal (voluntaria) 2° Salida por error (voluntaria) 3° Error fatal (involuntaria) 4° Eliminado por otro proceso (involuntaria) La mayoría de los procesos terminan debido a que han concluido su trabajo. La segunda razón de terminación es que el proceso descubra un error. La tercera razón de terminación es un error fatal producido por el proceso, a menudo debido a un error en el programa.
  • 3. Alumno: García Aguilar José Gabriel Grupo: 15Li251 La cuarta razón es que ejecute una llamada al sistema que indique al sistema operativo que elimine a otros procesos, en Unix esta llamada es Kill, la función correspondiente en Win32 es TerminateProcess. 2.1.4 Jerarquía de Procesos En algunos sistemas, cuando un proceso crea otro, el proceso padre y el proceso hijo continúan asociados en ciertas formas. El proceso hijo puede crear por sí mismo más procesos, formando una jerarquía de procesos. Observe que, a diferencia de las plantas y los animales que utilizan la reproducción sexual, un proceso sólo tiene un padre (pero cero, uno, dos o más hijos). En UNIX, un proceso y todos sus hijos, junto con sus posteriores descendientes, forman un grupo de procesos. Cuando un usuario envía una señal del teclado, ésta se envía a todos los miembros del grupo de procesos actualmente asociado con el teclado (por lo general, todos los procesos activos que se crearon en la ventana actual). De manera individual, cada proceso puede atrapar la señal, ignorarla o tomar la acción predeterminada que es ser eliminado por la señal. Como otro ejemplo dónde la jerarquía de procesos juega su papel, veamos la forma en que UNIX se inicializa a sí mismo cuando se enciende la computadora. Hay un proceso especial (llamado init) en la imagen de inicio. Cuando empieza a ejecutarse, lee un archivo que le indica cuántas terminales hay. Después utiliza fork para crear un proceso por cada terminal. Estos procesos esperan a que alguien inicie la sesión. Si un inicio de sesión tiene éxito, el proceso de inicio de sesión ejecuta un shell para aceptar comandos. Éstos pueden iniciar más procesos y así sucesivamente. Por ende, todos los procesos en el sistema completo pertenecen a un solo árbol, con init en la raíz. En contraste, Windows no tiene un concepto de una jerarquía de procesos. Todos los procesos son iguales. La única sugerencia de una jerarquía de procesos es que, cuando se crea un proceso, el padre recibe un indicador especial un token (llamado manejador) que puede utilizar para controlar al hijo. Sin embargo, tiene la libertad de pasar este indicador a otros procesos, con lo cual invalida la jerarquía. Los procesos en UNIX no pueden desheredar a sus hijos. 2.1.5 Estados de un Proceso Los estados de un proceso son los siguientes: 1. En ejecución (en realidad está usando la CPU en ese instante). 2. Listo (ejecutable; se detuvo temporalmente para dejar que se ejecute otro proceso). 3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo). 2.1.6 Implementación de los procesos Para implementar el modelo de procesos, el sistema operativo mantiene una tabla (un arreglo de estructuras) llamada tabla de procesos, con sólo una entrada por cada proceso (algunos autores llaman a estas entradas bloques de control de procesos). Esta entrada contiene información importante acerca del estado del proceso, incluyendo su contador de programa, apuntador de pila, asignación de memoria, estado de sus archivos abiertos, información de contabilidad y
  • 4. Alumno: García Aguilar José Gabriel Grupo: 15Li251 planificación, y todo lo demás que debe guardarse acerca del proceso cuando éste cambia del estado en ejecución a listo o bloqueado, de manera que se pueda reiniciar posteriormente como si nunca se hubiera detenido. 2.1.7 Modelación de multiprogramación Cuando se utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho en forma cruda: si el proceso promedio realiza cálculos sólo 20 por ciento del tiempo que está en la memoria, con cinco procesos en memoria a la vez la CPU deberá estar ocupada todo el tiempo. Sin embargo, este modelo es demasiado optimista, ya que supone que los cinco procesos nunca estarán esperando la E/S al mismo tiempo. Un mejor modelo es analizar el uso de la CPU desde un punto de vista probabilíst ico. Suponga que un proceso gasta una fracción p de su tiempo esperando a que se complete una operación de E/S. Con n procesos en memoria a la vez, la probabilidad de que todos los n procesos estén esperando la E/S (en cuyo caso, la CPU estará inactiva) es pn. Entonces, el uso de la CPU se obtiene mediante la fórmula Uso de la CPU _ 1 _ pn CUESTIONARIO 1° Que es un proceso? R= Un proceso no es mas que una instancia de un programa en ejecución incluyendo los valores actuales del contador de programa, los registros y las variables. 2° Cuales son los estados de un proceso? R= -En ejecución=Se usa la CPU -Listo= Mensaje en ejecución de un proceso -Bloqueado= No puede ejecutarse 3° Que son las interrupciones para un proceso? R= Procesos de usuario, procesos de disco, procesos de terminal, etc, que se bloquean cuando estan esperando a que algo ocurra. 4° Que es la multiprogramación? R= Una conmutación rápida de un proceso a otro. 5° Que es el vector de interrupción? R= Es la ubicación asociada de cada clase de entrada y salida.