67
PROCESOS http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm

Procesos

Embed Size (px)

Citation preview

Page 1: Procesos

PROCESOS

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm

Page 2: Procesos

PROCESOS-CONCEPTO

Todos los programas, cuya ejecución solicitan los usuarios se ejecutan en forma deprocesos, por lo que se puede definir como un programa en ejecuciónEl S.O mantiene por cada proceso una serie de estructuras de información que permitenidentificar las características de éste así como los recursos que tiene asignado.Aquí entran los descriptores de los segmentos de memoria asignados, los descriptores de losarchivos abiertos, los descriptores de los puertos de comunicación.Una parte importante de todas estas informaciones se llevan el en BCP . El S.O mantiene unatabla de procesos con todos los BCP y esta tabla se construye normalmente con unaestructura estática que tiene un determinado número de BCP todos ellos del mismo tamaño.

INFORMACION DE UN PROCESO • Contenidos de los segmentos de memoria en los que

residen el código y los datos• Contenido de los registros del modelo de programación• Contenido del BCP

Page 3: Procesos

PCBCada proceso se representa en el S.O mediante el Bloque de Control del Proceso,también denominado bloque de control de tarea, este contiene diversas seccionesde información asociadas con un proceso específico, incluyendo:Estado del proceso: El estado puede ser Nuevo, Listo, en Ejecución, Bloqueado, etc.Contador de Programa: Este indica la dirección de la siguiente instrucción a ejecutarRegistros de la CPU: Estos varían en número y tipo dependiendo de la arquitecturade la computadora, incluyen acumuladores , registros índice , apuntadores de pila yregistros de propósito general, además de cualquier información de código decondición .Junto con el contador de programa , esta información de estado debe guardarsecuando ocurre una interrupción, para posteriormente permitir que el procesocontinúe de la forma más apropiada.

Información de Planificación de la CPU: Esta información incluye la prioridad del proceso, apuntadores a colas deplanificación y cualquier otro parámetro de planificación .Información contable: Esta información incluye la cantidad de tiempo de CPU y tiempo real usado, así como límitesde tiempo , números de procesos o trabajo, etcInformación de estado de E/S: En esta sección incluye la lista de dispositivos de E/S asignados al proceso, una lista dearchivos abiertos , etc

Page 4: Procesos

ESTADOS BASICOS DE UN PROCESO

• NUEVO Un programa que no ha iniciado su ejecución , se encuentra en memoriasecundaria.

• LISTO Se encuentra en memoria principal sin operaciones de E/S pendientes yapto para entrar o continuar su ejecución

• EJECUCION El proceso que se está ejecutando en el procesador en ese momento• BLOQUEADO Se encuentra interrumpido por el procesador por haber atendido a

otro de mayor prioridad o que le orrespondía el turno• TERMINADO Cuando finaliza la ejecución del proceso o se le detecta un error

grave.

Page 5: Procesos

JERARQUIA DE LOS PROCESOS

Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hijo, hermano oabuelo. Cuando el proceso A solicita al S.O que cree el proceso B , se dice que A es padre de B y que B es hijo de A, bajo esta óptica, la jerarquía de procesos puede considerarse como un árbol genealógicoENTORNO DE PROCESOSEl entorno consiste en un conjunto de variables que se le pasan al proceso en el momento de su creaciónEl entorno está formado por una tabla NOMBRE-VALOR que se incluye en la pila del proceso, el NOMBREespecifica el nombre de la variable y el VALOR su valor.GRUPOS DE PROCESOSLos procesos forman grupos que tienen diversas propiedades , ejm El conjunto de procesos creados a partir de unshell puede formar un grupo de procesos .

Bajo el control del Test del Hardware Iniciador ROM Cargar en memoria del cargador del S.O Bajo el control del Carga en memoria componentes Cargador del S.O del S.O Inicialización bajo el Test del Sistema de Archivos Control de la parte Creación de estructuras de datos internas Residente del S.O completa la carga del S.O residente Creación de procesos LOGIN

Page 6: Procesos

TIPOS DE SISTEMAS OPERATIVOS

Los sistemas operativos se clasifican en función del número de procesos y de usuarios

Page 7: Procesos

También llamado Monoproceso permiten que exista un proceso en cada instante sise requieren ejecutar varios procesos que hay que hacer………

O Multiproceso , permite que exista varios procesos a la vez . El S.Ose encarga de ir repartiendo el tiempo del procesador entre estosprocesos

Está previsto para soportar a un solo usuario Estos sistemas pueden sermonoproceso o multiproceso , esto quiere decir que un usuario puedesolicitar varias tareas al mismo tiempo

Soporta varios usuarios trabajando simultáneamente desde variasterminales . A su vez cada usuario puede tener activo más de 1proceso , por lo que debe ser también el sistema Multitarea .También reciben el nombre de Tiempo Compartido porque ha derepartir el tiempo de la computadora entre los usuarios para procesarcada una de las tareas de los usuarios

TIPOS DE SISTEMAS OPERATIVOS

Page 8: Procesos

BASE DE LA MULTITAREA

La multitarea se basa en las tres características siguientes:1. Paralelismo real entre E/S y procesador2. Alternancia en los procesos de fases de E/S y de procesamiento3. Memoria principal capaz de almacenar varios procesos

Existe una concurrencia real entre elprocesador y las funciones de E/S, Estosignifica que mientras se están realizandouna operación de E/S de un proceso, sepuede estar ejecutando otro proceso.

Podemos observar que la ejecución de un proceso alterna fases de procesamientocon fases de E/S puesto que cada tiempo , necesita leer o escribir datos en unperiférico . En sistemas multiprocesamiento se aprovechan las fases de E/S deunos procesos para realizar las fases de procesamiento de otros.

Page 9: Procesos

BASE DE LA MULTITAREAEjemplo de ejecución de un Sistema Multitarea

Se presenta la ejecución multitarea con tres procesos , notemos que al finalizar la primera fase de procesamiento delProceso A , hay un intervalo de tiempo en el que no hay trabajo para el procesador .Como se muestra el S.O entra a ejecutar al final de las fases de procesamiento y al final de las fases de E/S. Esto esporque las operaciones de E/S no las gobiernan directamente los procesos, si no que se limitan a pedirle al S.O quelas realice . De igual forma el S.O trata las interrupciones que generan los controladores para avisar que hacompletado una operación

Page 10: Procesos

PROCESO NULO

Bajo la premisa de que el procesador no para de ejecutar nunca la figura muestra lo contrario, puespodemos observar que hay un intervalo en el que el procesador no tiene nada que hacer , paraevitar esto los S.O incluyen los llamados Procesos NulosEstos procesos consisten en un bucle infinito que no realiza ninguna operación útil , el objetivo deeste proceso es entretener al procesador cuando no haya ninguna tarea.

Page 11: Procesos

PLANIFICADORES ACTIVADORES

El planificador (sheduler) forma parte del núcleo del S.O , este entra en ejecución cada vezque se activa el Sistema Operativo y su misión es Seleccionar el proceso que se ha deejecutar a continuación.El Activador (dispatcher) también forma parte del Sistema Operativo y su función es poneren ejecución el proceso seleccionado por el planificador.

Page 12: Procesos

VENTAJAS DE LA MULTITAREA

La multiprogramación presenta varias ventajas entre las que podemos resaltar las siguientes:1. Facilita la programación .- Permite dividir las aplicaciones en varios procesos lo que beneficia su

modularidad2. Permite prestar un buen servicio.- Esto hace que se pueda atender a varios usuarios de forma

eficiente, interactiva y simultánea3. Aprovecha los tiempos muertos que los procesos pasan esperando a que se completen sus

operaciones de E/S4. Aumenta el uso de la UCP, al aprovechar los espacios de tiempo que los procesos están

bloqueados.

Page 13: Procesos

GRADO DE MULTIPROGRAMACION

Se denomina grado de multiprogramación al numero de proceso activos que mantienen un Sistema y este factor esel que afecta de forma importante el rendimiento que se obtienen de una computadora. Mientras más procesosactivos haya en un sistema, mayor es la probabilidad de encontrar siempre un proceso en estado de listo paraejecutar , por lo que entrará a ejecutar menos veces el proceso nulo.Sin embargo, se tiene e inconveniente de que a mayor grado de multiprogramación , se tienen mayores necesidadesde memoriaMencionaremos 2 aspectos a considerar:Un sistema sin Memoria VirtualUn sistema con Memoria Virtual

Page 14: Procesos

MEMORIA VIRTUALAdministrar la memoria es optimizar el uso del RAM que consiste deuno o más chips en el motherboard que mantiene los datos einstrucciones en forma temporanea mientras el procesador losinterpreta y ejecuta. El sistema operativo limpia las áreas dememoria que están ocupadas por los datos e instrucciones cuandoéstos ya no se están usando.

Algunos sistemas operativos usan memoria virtual (Virtual Memory -VM) para optimizar el uso del RAM. Con la memoria virtual, elsistema operativo asigna una porción de un medio dealmacenamiento, usualmente el disco duro, para funcionar comoRAM adicional. Según se interacciona con un programa, parte de élpuede estar en el RAM y el resto del programa está en el disco duro,el que se está usando como memoria virtual.

El área que el disco duro usa para memoria virtual es llamada “swap file”, pues intercambia (“swap”)datos, información e instrucciones entre la memoria y el almacenamiento. Una página (page) es lacantidad de datos e instrucciones que se pueden intercambiar en un momento dado. A la técnica deintercambiar entre memoria y almacenamiento se le llama “paging”. Cuando un sistema operativo estámucho tiempo haciendo “paging” en vez de ejecutando una aplicación, se dice que el sistema está“thrashing”. Por ejemplo, cuando se intenta acceder a una página del Internet, la página ya bajó, pero laluz del disco duro sigue encendida. Si el “thrashing” sucede con mucha frecuencia, es posible que lacomputadora necesite más RAM.

Page 15: Procesos

SISTEMA SIN MEMORIA VIRTUAL

Los procesos activos han de residir totalmente en memoriaprincipal, por tanto el grado de multiprogramación viene limitadopor el tamaño de los procesos y por la memoria disponible.Además en estos sistemas el rendimiento de la utilización delprocesador aumenta siempre con el grado de multiprogramación, esto es así ya que los procesos siempre residen en memoriaprincipal

Page 16: Procesos

SISTEMA CON MEMORIA VIRTUALEste esquema es mucho mas complejo , puesto que los procesos sólo tienen en memoria principal su conjuntoresidenteConjunto residente es el número de páginas de un proceso que están alojadas en un marco de memoria principalSi se asignan muchos marcos a un proceso:o Se reduce el nivel de multiprogramación.o La tasa de fallos se mantiene baja.Si se asignan pocos marcos a un proceso:o Se aumenta la tasa de fallos de página.

Esto hace que quepan mas procesos , sin embargo al aumentar el número de procesos disminuye el conjuntoresidente de cada uno como se muestra en la figura.

Page 17: Procesos

SISTEMA CON MEMORIA VIRTUAL

Cuando el conjunto residente de un proceso se hace menor de un determinado valor, ya no representaadecuadamente un trabajo a realizarse, lo que tiene como consecuencia que se produzcan muchos fallos de página.Cada fallo de página consume tiempo de procesador , porque el S.O ha de tratar esa falla y tiempo de E/S puesto quehay que hacer una migración de páginas .Todo esto conlleva a que al crecer los fallos de página el Sistema dedique más tiempo al improductivo trabajo deresolver estos fallos.

El conjunto residente medio decrece con el grado de multiprogramación

Page 18: Procesos

RENDIMIENTO DEL PROCESADOR Y GRADO DE MULTIPROGRAMACIÓN

Se puede ver que en un Sistema con memoria virtual el aumento del grado de multiprogramación conlleva primero aun aumento del rendimiento del procesador. Sin embargo superado un determinado valor de grado demultiprogramación , los conjuntos residentes de los procesos empiezan a ser demasiado pequeños , por lo que elsistema baja su rendimiento al perder tiempo de paginadoSe denomina HIPERPAGINACIÓN (trashing) a la situación de alta paginación producida cuando los conjuntosresidentes de los procesos son demasiados pequeños

Cuando la memoria principal es pequeña, se llega a la situación de hiperpaginación antes de alcanzar una cota alta deutilización del procesador. Para aumentar el rendimiento de un sistema que esté en esta situación , es necesarioañadir mas memoria principal. Cuando la memoria es grande se llega a saturar el procesador con menos procesos delos que caben en memoria. En este case se puede aumentar el rendimiento del sistema manteniendo la memoriapero aumentando la potencia del procesador o añadiendo otro procesador

Page 19: Procesos
Page 20: Procesos

RESUMENProceso: Programa en ejecución.

Cada ejecución de un programa da lugar a un proceso.El proceso - unidad de procesamiento que gestiona el sistema operativo.

Un proceso está formado por:Código del programa: Instrucciones.Conjunto de datos asociados a la ejecución del programa

Page 21: Procesos

RESUMENREPRESENTACION EN MEMORIA

Un proceso necesita memoria para las instrucciones y los datos.

Distintas instancias de un programa necesitan zonas independientes para los datos.

Page 22: Procesos

INFORMACION DE UN PROCESOEl proceso es la unidad de procesamiento gestionada por el S.O , este tiene asociado una serie de elementos deinformación y que se organizan en tres grupos: ESTADO DEL PROCESADOR, IMAGEN DE MEMORIA Y TABLAS DELSISTEMA OPERATIVO

Page 23: Procesos

ESTADO DEL PROCESADORBásicamente, está formada por el contenido de los registros del procesador. Por supuesto, mientrasel proceso está ejecutándose, la información está en los registros. Cuando se interrumpe el proceso,toda la información de los registros debe salvarse de forma que pueda restaurarse cuando elproceso reanude su ejecución. La naturaleza y número de registros involucrados depende deldiseño del procesador.

Está integrado por el contenido de todos sus registros que son los siguientes:• Registros generales de existir específicos también son incluidos como los de coma flotante.• Contador de programa• Puntero de Pila• Registro o registros de Estado• Registros especiales como el RIED (registro identificador de espacio de direccionamiento)

Page 24: Procesos

IMAGEN DE MEMORIA DEL PROCESO

La imagen de memoria del proceso está formado por los espacios de memoria que está autorizado a utilizar, las principalescaracterísticas de la imagen de memoria son:• El proceso solamente puede tener información en su imagen de memoria y no fuera de ella• Dependiendo de la computadora, la imagen de memoria estará referida a memoria virtual o a memoria física• Los procesos suelen necesitar asignación dinámica de memoria. Por tanto la imagen de memoria de los mismos se

deberá adaptar a esas necesidades , creciendo o decreciendo adecuadamente• No hay que confundir la asignación de memoria con la asignación de marcos de memoria, el primer término implica al

modificación de la imagen de memoria y se refiere a espacio virtual en los sistemas con este tipo de espacio. Elsegundo solo es de aplicación en los sistemas con memoria virtual y se refiere a la modificación del conjunto residentedel proceso.

Si un proceso genera una dirección que esta fuera del espacio de direcciones el HW genera un trap.

Al contenido de los segmentos dememoria en los que reside el código y losdatos del proceso se le denomina:IMAGEN DE MEMORIA

Page 25: Procesos

MODELOS DE IMAGEN DE MEMORIA:REGIÓN ÚNICA

Proceso con única región de tamaño fijo.Usado en sistemas sin memoria virtual. 1

Proceso con única región de tamaño variable.Sistemas sin memoria virtual:

Necesita espacio de reserva Desperdicio de memoria.2Sistemas con memoria virtual:

Espacio de reserva virtual Factible pero menos flexible que múltiples regiones.

1 El proceso recibe un único espacio de memoria , que además no puede variar de tamaño2 Los segmentos no pueden crecer a menos que se deje espacio de memoria principal de reserva, se chocaría con otro proceso, la memoria principal es muy cara para reservarla.3 Se podría utilizar pero es mas factible usar un modelo de varias regiones , pues es mucho mas flexible y se adapta mejor a las necesidades reales de los procesos.

Page 26: Procesos

MODELOS DE IMAGEN DE MEMORIA:REGIONES MÚLTIPLES

Proceso con número fijo de regiones de tamaño variable.Regiones prefijadas (texto, datos, pila).Cada región puede crecer.Con memoria virtual el hueco entre pila y datos no consume recursos físicos.

Texto o código es el programa de máquina que ha de ejecutar el proceso, la información contenida es fija y solamentese harán operaciones de lecturaDatos Depende del proceso, los lenguajes de programación modernos permiten asignación dinámica de memoria loque hace que varíe el tamaño del bloque de datos al avanzar la ejecución del proceso.Pila A través del puntero de pila, los programas utilizan una estructura de pila residente en memoria, en ella sealmacenan por ejemplo los bloques de activación de los procedimientos llamados, la pila es una estructura dinámica.

En este esquema el Sistema Operativo ofrece un espacio de datos que puede crecer y decrecer, pero deja al programala gestión de este espacio

Page 27: Procesos

MODELOS DE IMAGEN DE MEMORIA:REGIONES MÚLTIPLES

Proceso con un número variable de regiones de tamaño variable.Opción más avanzada (usada en versiones actuales de Windows y UNIX).Un proceso se estructura en un número arbitrario de regiones.Muy flexible:

Regiones compartidas.Regiones con distintos permisos.

Es la solución más flexible y, por tanto, la utilizada en los sistemas operativos modernos como WINDOWSNT y las versiones actuales de UNIX

Page 28: Procesos

PREPARACIÓN DEL CODIGO DE UN PROCESO

La preparación del código de un proceso, también llamado texto delproceso sigue los siguientes pasos:

Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado directamente por un Pc, sino que debeser traducido a lenguaje máquina.

Programa fuente: Programa escrito en un lenguaje de alto nivel (textoordinario que contiene las sentencias del programa en un lenguaje deprogramación). Necesita ser traducido a código máquina para poderser ejecutado.

Compilador: Programa encargado de traducir los programas fuentesescritos en un lenguaje de alto nivel a lenguaje máquina y decomprobar que las llamadas a las funciones de librería se realizancorrectamente.

Programa (o código) objeto: Es el programa fuente traducido (por elcompilador) a código máquina. Aún no es directamente ejecutable.

Programa Ejecutable: Traducción completa a código máquina,realizada por el enlazador, del programa fuente y que ya esdirectamente ejecutable.

Linker (montador o enlazador): Es el programa encargado de insertar alprograma objeto el código máquina de las funciones de las librerías(archivos de biblioteca) usadas en el programa y realizar el proceso demontaje, que producirá un programa ejecutable .exe. Las librerías sonuna colección de código (funciones) ya programado y traducido acódigo máquina, listo para utilizar en un programa

Page 29: Procesos

PREPARACIÓN DEL CODIGO DE UN PROCESO

El objeto ejecutable es un archivo que incluye la siguiente información:• Cabecera que contiene entre otras informaciones como:

• Estado Inicial de los registros• Tamaño del código y de los datos• Palabra mágica que identifica al archivo como ejecutable

• Código• Datos con valor inicial no necesitan residir en el archivo puesto que el S,O se encargará de asignarles valor

(normalmente 0) cuando cree el proceso encargado de ejecutar el programa

Page 30: Procesos

INFORMACION DEL BCPEL BCP contiene la información básica del proceso, entre la que cabe destacar la siguiente:INFORMACION DE IDENTIFICACIONEsta información identifica al usuario y al proceso, pj:• Identificador del proceso• Identificador del proceso padre , en caso de existir relaciones padre-hijo• Información sobre el usuario (id usuario, id grupo)ESTADO DEL PROCESADORContiene los valores iniciales del estado del procesador o su valor en el instante en que fue interrumpido el proceso.INFORMACION DE CONTROL DEL PROCESOAquí se incluye diversa información que permite gestionar el proceso en donde destacamos los siguientes datos:• Información de planificación y estado

Estado del proceso Evento por el que espera el proceso cuando está bloqueado Prioridad del proceso Información de planificación

• Descripción de los segmentos de memoria asignados al proceso• Recursos asignados tales como:

Archivos abiertos Puertos de comunicación asignados.

• Punteros para estructurar los procesos en colas o anillos, Por ej,. Los procesos que están en estado LISTO puedenestar organizado en una cola de forma que facilita la labor del planificador

• Comunicación entre procesos . El BCP puede contener espacio para almacenar las señales y para algún mensajeenviado al proceso.

Page 31: Procesos

TABLAS DEL SISTEMA OPERATIVO

El S.O mantiene una serie de tablas que describen a los procesos y a los recursos del sistema. La información asociadaa cada proceso se encuentra parcialmente en el BCP y parcialmente fuera de el. L a decisión de incluir o no unainformación en el BCP se toma según dos argumentos: EFICIENCIA Y NECESIDAD de compartir información

Para acelerar los accesos , la tabla de procesos se construye normalmente como una estructura estática , formada porun número determinado de BCP del mismo tamaño.Bajo este esquema existen informaciones que pueden tener un tamaño variable y no deben incluirse en el BCP , de serincluidas habría que reservar en cada BCP el espacio necesario para almacenar el mayor tamaño que puedan tenerestas informaciones . Este espacio estaría presente en todos los BCP pero estaría desaprovechado en la mayoría deellos.Un ejemplo de este tipo de información es la tabla de páginas puesto que su tamaño depende de las necesidades dememoria de los procesos, valor que es variable uno del otro.

Registro identificador de espacio de direccionamientoRIED, indica el espacio de mapa de memoria que puedeutilizar el programa en ejecución.

Page 32: Procesos

TABLAS DEL SISTEMA OPERATIVO

Cuando la información ha de ser compartida por varios procesos, no ha de residir en el BCP , a los sumo el BCPcontendrá un apuntador que permita alcanzar esa información.Por ejemplo dos procesos pueden tener simultáneamente abierto el mismo archivo por dos razones: el archivo seheredó de un proceso padre o el archivo se abrió de forma independiente por los dos procesos.

Al tratarse de procesos que están diseñados para compartir elarchivo, lo mas conveniente es que compartan el puntero deposición PP . De esta forma si ambos escriben en el archivo, loescrito por uno se pondrá a continuación de lo escrito por el otropero no encima.

El proceso BCP7 es hijo del proceso BCP4 el descriptor dearchivo (fd)3 de ambos procesos utiliza la entrada 4 de la tablade archivos , lo que significa que comparten e l archivo y supuntero de posición . Observamos que el IDFF del archivo es el34512 y que el puntero PP tiene un valor de 10000

En términos generales un descriptor de archivo es un identificador para acceder a una archivo

El compartir punteros de posición exige que no estén ubicados en el BCP, se plantea una solución basada en una tablade archivos externa a los BCP y compartida por todos los procesos, en esta tabla se encuentra el puntero de posiciónPP, además del identificador físico del archivo IDFF.

Page 33: Procesos

FORMACION DE UN PROCESO

La formación de un proceso consiste en completar todas las informaciones que constituyen un proceso.

• Operaciones que debe hacer el SO:– Asignar espacio para su imagen de memoria (debe ser virtual y de pocos segmentos).

– Seleccionar un BCP libre de la tabla de proceso.

– Rellenar el BCP con información de: identificación, descripción de memoria, valores iniciales de

registros .indicados en el archivo objeto....

– Cargar el segmento de texto (código + rutinas del sistema) y el segmento de datos (datos iniciales

contenidos en el archivo objeto)

– Crear en el segmento de pila, pila inicial del proceso (entorno del proceso y los parámetros que se pasan

por invocación del programa correspondiente).

Una vez completado toda la información, este se puede marcar como listo para ejecutar para que el

planificador lo seleccione para su ejecución

Page 34: Procesos
Page 35: Procesos
Page 36: Procesos
Page 37: Procesos
Page 38: Procesos
Page 39: Procesos
Page 40: Procesos
Page 41: Procesos
Page 42: Procesos
Page 43: Procesos
Page 44: Procesos

RESUMENCICLO DE VIDA BASICO DE UN PROCESO

Page 45: Procesos

ESTADOS DE UN PROCESO

Page 46: Procesos

CAMBIO DE CONTEXTO

La activación del S.O se realiza mediante el mecanismo de las interrupciones, cuando se produce una inerrupción serealizan las siguientes 2 operaciones:• Se salva el Estado del Proceso en el BCP• Se pasa a ejecutar la rutina de interrupción del S.O

Cambio de contexto

Como resultado de este cambio su puede producir un cambio en el estado de algunos procesos, pero nonecesariamente.Pongamos que El Proceso A está bloqueado esperando a que se complete una lectura de disco y que llega unainterrupción del disco , se produce un cambio de contexto y entra a ejecutar el S.O , en el caso de que lainterrupción indique que ha terminado la lectura por la que esperaba el P.A , el S.O cambia el estado del proceso aLISTO o incluso a EJECUCION si así lo desee el planificador , resultando finalmente un cambio de estado del proceso.

Page 47: Procesos

SALVAGUARDAR LOS REGISTROSEl aspecto mas delicado se refiere al contenido de los registros de la computadora y describamos los pasos que sigueesta actividad:• Un P. está en ejecución, por tanto parte de su información reside en los registros de la máquina que están siendo

modificados constantemente por la ejecución de instrucciones de máquina• El Procesos para su ejecución por alguna de las causas conocidas• Entra a ejecutar el S.O. Ya sea para tratar la interrupción o para atender el servicio demandado• Esta ejecución como la de todo programa modifica los contenidos de los registros de la maquina destruyendo

sus valores anteriores..Si se desea mas adelante continuar la ejecución del proceso, se presentaría un grave problema , los registros ya nocontienen los valores que deberían .

CAMBIO DE CONTEXTO

Para resolver este problema, lo primero que hace el S.O al entrar a ejecutar es salvar el contenido de todos losregistros , teniendo en cuenta de no haber modificado el valor de ninguno de ellos

Page 48: Procesos

HILOSEl modelo de procesos examinado hasta ahora implica que un proceso es un programa que sigue unsolo hilo (thread) de ejecución, Esta único hilo de control permite al proceso realizar solo una tareacada vez, por ejemplo, si un proceso está ejecutando un programa de procesador de palabras , existeun solo hilo de instrucciones en ejecución, este único hilo de control solo permite que el procesorealice una tarea a la vez. El usuario no podría simultáneamente capturar caracteres y activar elverificador de ortografía dentro del mismo proceso.Muchos sistemas operativos modernos han extendido el concepto de proceso para permitir que éstetenga varios hilos de ejecución. De esta forma, se permite que el procesos realice más de una tarea ala vez.

En sistemas operativos, un hilo de ejecución, hebra o subproceso es la unidad de procesamiento máspequeña que puede ser planificada por un sistema operativo.

Page 49: Procesos

Procesos Ligeros (Hilos o Hebras)

Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura , un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o mas de un flujo de ejecución (procesos ligeros).

Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main.

La creación de un nuevo hilo es una característica que permite auna aplicación realizar varias tareas a la vez (concurrentemente). Losdistintos hilos de ejecución comparten una serie de recursos talescomo el espacio de memoria, los archivos abiertos, situación deautenticación, etc. Esta técnica permite simplificar el diseño de unaaplicación que debe llevar a cabo distintas funciones simultáneamente.

El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilospueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificadoinmediatamente.

El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso finaliza,todos sus hilos de ejecución también han terminado. Asimismo en el momento en el que todos los hilos de ejecuciónfinalizan, el proceso no existe más y todos sus recursos son liberados.

Page 50: Procesos

Procesos Ligeros (Hilos o Hebras)

Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesosligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución,pudiéndose destacar las siguientes:

Contador de programa. Pila. Registros. Estado del proceso ligero (ejecutando, listo o bloqueado).

Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten:

Espacio de memoria. Variables globales. Archivos abiertos. Procesos hijos. Temporizadores. Senales y semaforos. Contabilidad.

Thread 1

Registros

Pila

Entorno del proceso

Recursos (ficheros, ...)

Datos

Código

Proceso

Thread n

Registros

Pila

......

Page 51: Procesos

ESTADOS DE UN PROCESO LIGERO

Proceso

Procesos ligeros

Activo

Bloqueado por acceso a disco

Bloqueado por comunicación

El estado del proceso será la combinación de los estados de sus procesos ligeros: Si se tiene un proceso ligero en ejecución el proceso está en EJECUCION Si no tiene procesos ligeros en ejecución pero tiene alguno listo para ejecutar, el proceso está en estado de LISTO Si todos los procesos ligeros están bloqueados , el proceso está BLOQUEADO

Page 52: Procesos

PARALELISMOLos procesos Ligeros permiten paralelizar una aplicación, en efecto un programa puede dividirse en procedimientos quepueden ejecutarse de manera independiente, los procesos ligeros permiten lanzar simultáneamente la ejecución detodos ellos, consiguiendo que el proceso avance más rápidamente.

Procedimiento 2

Procedimiento 1

Esperaen E/S

P F

Procedimiento 1

Ejecuciónparalela

Ejecuciónserie

Esperaen E/S

P F

Procedimiento 2

Procesamiento

Esperaen E/S

P F

Esperaen E/S

P F

Los procesos ligeros permite que un proceso aproveche más el procesador, es decir ejecute mas de prisa, esto nosignifica que aumente la tasa total de uso del procesador

Page 53: Procesos

Diseño de proceso ligerosLa utilización de procesos ligeros ofrece las ventajas de división de trabajo, cabe destacar que los procesosligeros comparten memoria directamente y la creación y destrucción de estos procesos requiere mucho menostrabajo que la de los procesos comunes

• Ventajas:

– Permite la separación de tareas. Cada tarea se puede encapsular en un proceso ligero independiente.

– Facilita la modularidad, al dividir trabajos complejos en tareas.

– Aumenta la velocidad de ejecución del trabajo aprovechando los tiempos de bloqueo.

El paralelismo que permiten los procesos ligeros, unido a que comparten memoria permiten la programaciónconcurrente la misma que garantizará el acceso a los datos compartidos se haga de forma correcta, losprincipios básicos que hay aplicar son los siguientes:

– Hay variables globales que se comparten entre varios procesos ligeros , y debido a que estos procesosse ejecutan independientemente , es facil que ocurran acceso incorrectos a estas variables

– Para ordenar que estos procesos accedan a estos datos Se emplean mecanismos de sincronización,como mutex cuyo objetivo es impedir que un proceso ligero acceda a unos datos mientras lo estéutilizando otro.

– Para escribir código correcto hay que imaginar los códigos de otros procesos ligeros que puedenexistir están ejecutando cualquier sentencia al mismo tiempo que la sentencia que se estáescribiendo.

Page 54: Procesos

TALLER INSTALAR LINUX SUSE PROFESIONAL EN UNA MAQUINA VIRTUALCONFIGURAR E INSTALAR EL COMPILADOR CREALIZAR EJERCICIOS DE REPASO EN C BAJO LA PLATAFORMA UNIX

Page 55: Procesos
Page 56: Procesos

PLANIFICACION

LA PLANIFICACION HACE REFERENCIA A UN CONJUNTO DEPOLITICAS Y MECANISMOS INCORPORADOS EN EL SISTEMAOPERATIVO QUE GOBIERNAN EL ORDEN EN QUE DEBEN SEREJECUTADOS LOS TRABAJOS QUE DEBEN CUMPLIRSE EN ELSISTEMA OPERATIVO.

EL OBJETIVO GENERAL DE LA PLANIFICACION ES OPTIMIZAR ELRENDIMIENTO DEL SISTEMA.

Page 57: Procesos
Page 58: Procesos

PLANIFICACIONEl objetivo de la planificación de procesos y procesos ligeros es elreparto del tiempo de procesador entre los procesos que puedenejecutar. El Planificador es el módulo del S.O que realiza la función deseleccionar el proceso en estado listo que pasa a estado de ejecución ,mientras que el activador es el módulo que pone en ejecución elproceso planificado.

Los planificadores son módulos de software encargados dedeterminar el orden en que los procesos serán ejecutados.Existen diferentes tipos de planificadores:PLANIFICACION A LARGO PLAZOTiene como objetivo añadir nuevos procesos al sistematomándolos de la lista de espera, invocado muyinfrecuentemente por lo que puede ser mas lento.PLANFICACION A MEDIO PLAZOTrata la suspensión de procesos . Traslada un proceso dememoria principal a disco y viceversa. Añade o eliminaprocesos de memoria, reduciendo la contienda por el uso de laCPU, modificando por tanto el grado de multiprogramación.PLANFICACION A CORTO PLAZOSe encarga de seleccionar el proceso en estado listo que pasa aestado de ejecución es por tanto, la que asigna el procesador .Este es invocado muy frecuentemente (milisegundos) y es muyrápido.EL SISTEMA OPERATIVO UTILIZA PARA LA

PLANIFICACIÓN DE PROCESOS COLAS DEPLANFICIACION

Page 59: Procesos
Page 60: Procesos
Page 61: Procesos

Reparto equitativo del procesador

Optimizar el uso del procesador

En lotes (batch)

Page 62: Procesos

Esta solución minimiza el tiempo que gasta el sistema operativo en planificar y activarprocesos, pero tienen como inconveniente que un proceso puede monopolizar elprocesador

Esta solución permite controlar el tiempo que esta en ejecución un proceso.

Page 63: Procesos
Page 64: Procesos
Page 65: Procesos

ALGORITMOS DE PLANIFICACION

El algoritmo de planificación definido para un proceso debeenmarcarse en las siguientes políticas:1. Ser Justas2. Aumentar la productividad3. Aumentar la capacidad de atención de usuarios y programas

concurrentes activos sin el peligro de saturación4. Ser predecibles5. Imponer una mínima carga extra al sistema6. Evitar tanto la saturación como la ociosidad de los recursos7. Proveer seguridad y evitar problemas clásicos como el

aplazamiento indebido.

Page 66: Procesos
Page 67: Procesos