SlideShare uma empresa Scribd logo
1 de 67
PROCESOS



http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm
PROCESOS-CONCEPTO
Todos los programas, cuya ejecución solicitan los usuarios se ejecutan en forma de
procesos, por lo que se puede definir como un programa en ejecución
El S.O mantiene por cada proceso una serie de estructuras de información que permiten
identificar 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 los
archivos 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 una
tabla de procesos con todos los BCP y esta tabla se construye normalmente con una
estructura 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
PCB
                                     Cada 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 secciones
                                     de 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 ejecutar
                                     Registros de la CPU: Estos varían en número y tipo dependiendo de la arquitectura
                                     de la computadora, incluyen acumuladores , registros índice , apuntadores de pila y
                                     registros de propósito general, además de cualquier información de código de
                                     condición .
                                     Junto con el contador de programa , esta información de estado debe guardarse
                                     cuando ocurre una interrupción, para posteriormente permitir que el proceso
                                     continú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 de
planificació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ímites
de tiempo , números de procesos o trabajo, etc
Información de estado de E/S: En esta sección incluye la lista de dispositivos de E/S asignados al proceso, una lista de
archivos abiertos , etc
ESTADOS BASICOS DE UN PROCESO




•   NUEVO Un programa que no ha iniciado su ejecución , se encuentra en memoria
    secundaria.
•   LISTO Se encuentra en memoria principal sin operaciones de E/S pendientes y
    apto 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.
JERARQUIA DE LOS 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

Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hijo, hermano o
abuelo. 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ógico
ENTORNO DE PROCESOS
El entorno consiste en un conjunto de variables que se le pasan al proceso en el momento de su creación
El entorno está formado por una tabla NOMBRE-VALOR que se incluye en la pila del proceso, el NOMBRE
especifica el nombre de la variable y el VALOR su valor.
GRUPOS DE PROCESOS
Los procesos forman grupos que tienen diversas propiedades , ejm El conjunto de procesos creados a partir de un
shell puede formar un grupo de procesos .
TIPOS DE SISTEMAS OPERATIVOS




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


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




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




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




             Soporta varios usuarios trabajando simultáneamente desde varias
             terminales . A su vez cada usuario puede tener activo más de 1
             proceso , por lo que debe ser también el sistema Multitarea .
             También reciben el nombre de Tiempo Compartido porque ha de
             repartir el tiempo de la computadora entre los usuarios para procesar
             cada una de las tareas de los usuarios
BASE DE LA MULTITAREA
La multitarea se basa en las tres características siguientes:
1. Paralelismo real entre E/S y procesador
2. Alternancia en los procesos de fases de E/S y de procesamiento
3. Memoria principal capaz de almacenar varios procesos


                                                       Existe una concurrencia real entre el
                                                       procesador y las funciones de E/S, Esto
                                                       significa que mientras se están realizando
                                                       una operación de E/S de un proceso, se
                                                       puede estar ejecutando otro proceso.



Podemos observar que la ejecución de un proceso alterna fases de procesamiento
con fases de E/S puesto que cada tiempo , necesita leer o escribir datos en un
periférico . En sistemas multiprocesamiento se aprovechan las fases de E/S de
unos procesos para realizar las fases de procesamiento de otros.
BASE DE LA MULTITAREA
         Ejemplo 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 del
Proceso 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 es
porque las operaciones de E/S no las gobiernan directamente los procesos, si no que se limitan a pedirle al S.O que
las realice . De igual forma el S.O trata las interrupciones que generan los controladores para avisar que ha
completado una operación
PROCESO NULO




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




El planificador (sheduler) forma parte del núcleo del S.O , este entra en ejecución cada vez
que se activa el Sistema Operativo y su misión es Seleccionar el proceso que se ha de
ejecutar a continuación.
El Activador (dispatcher) también forma parte del Sistema Operativo y su función es poner
en ejecución el proceso seleccionado por el planificador.
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
    modularidad
2. Permite prestar un buen servicio.- Esto hace que se pueda atender a varios usuarios de forma
    eficiente, interactiva y simultánea
3. Aprovecha los tiempos muertos que los procesos pasan esperando a que se completen sus
    operaciones de E/S
4. Aumenta el uso de la UCP, al aprovechar los espacios de tiempo que los procesos están
    bloqueados.
GRADO DE MULTIPROGRAMACION




Se denomina grado de multiprogramación al numero de proceso activos que mantienen un Sistema y este factor es
el que afecta de forma importante el rendimiento que se obtienen de una computadora. Mientras más procesos
activos haya en un sistema, mayor es la probabilidad de encontrar siempre un proceso en estado de listo para
ejecutar , 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 necesidades
de memoria
Mencionaremos 2 aspectos a considerar:
Un sistema sin Memoria Virtual
Un sistema con Memoria Virtual
MEMORIA VIRTUAL
                                      Administrar la memoria es optimizar el uso del RAM que consiste de
                                      uno o más chips en el motherboard que mantiene los datos e
                                      instrucciones en forma temporanea mientras el procesador los
                                      interpreta y ejecuta. El sistema operativo limpia las áreas de
                                      memoria 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, el
                                      sistema operativo asigna una porción de un medio de
                                      almacenamiento, usualmente el disco duro, para funcionar como
                                      RAM adicional. Según se interacciona con un programa, parte de él
                                      puede 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 la
cantidad de datos e instrucciones que se pueden intercambiar en un momento dado. A la técnica de
intercambiar 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 la
luz del disco duro sigue encendida. Si el “thrashing” sucede con mucha frecuencia, es posible que la
computadora necesite más RAM.
SISTEMA SIN MEMORIA VIRTUAL

Los procesos activos han de residir totalmente en memoria
principal, por tanto el grado de multiprogramación viene limitado
por el tamaño de los procesos y por la memoria disponible.
Además en estos sistemas el rendimiento de la utilización del
procesador aumenta siempre con el grado de multiprogramación
, esto es así ya que los procesos siempre residen en memoria
principal
SISTEMA CON MEMORIA VIRTUAL
Este esquema es mucho mas complejo , puesto que los procesos sólo tienen en memoria principal su conjunto
residente
Conjunto residente es el número de páginas de un proceso que están alojadas en un marco de memoria principal
Si 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 conjunto
residente de cada uno como se muestra en la figura.
SISTEMA CON MEMORIA VIRTUAL




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



Cuando el conjunto residente de un proceso se hace menor de un determinado valor, ya no representa
adecuadamente 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 que
hay 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 de
resolver estos fallos.
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 a
un aumento del rendimiento del procesador. Sin embargo superado un determinado valor de grado de
multiprogramación , los conjuntos residentes de los procesos empiezan a ser demasiado pequeños , por lo que el
sistema baja su rendimiento al perder tiempo de paginado
Se denomina HIPERPAGINACIÓN (trashing) a la situación de alta paginación producida cuando los conjuntos
residentes 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 de
utilización del procesador. Para aumentar el rendimiento de un sistema que esté en esta situación , es necesario
añadir mas memoria principal. Cuando la memoria es grande se llega a saturar el procesador con menos procesos de
los que caben en memoria. En este case se puede aumentar el rendimiento del sistema manteniendo la memoria
pero aumentando la potencia del procesador o añadiendo otro procesador
RESUMEN
Proceso: 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
RESUMEN
REPRESENTACION EN MEMORIA


        Un proceso necesita memoria para las
         instrucciones y los datos.
        Distintas instancias de un programa necesitan
         zonas independientes para los datos.
INFORMACION DE UN PROCESO
El proceso es la unidad de procesamiento gestionada por el S.O , este tiene asociado una serie de elementos de
información y que se organizan en tres grupos: ESTADO DEL PROCESADOR, IMAGEN DE MEMORIA Y TABLAS DEL
SISTEMA OPERATIVO
ESTADO DEL PROCESADOR
Básicamente, está formada por el contenido de los registros del procesador. Por supuesto, mientras
el 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 el
proceso reanude su ejecución. La naturaleza y número de registros involucrados depende del
diseñ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)
IMAGEN DE MEMORIA DEL PROCESO

La imagen de memoria del proceso está formado por los espacios de memoria que está autorizado a utilizar, las principales
caracterí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. El
    segundo solo es de aplicación en los sistemas con memoria virtual y se refiere a la modificación del conjunto residente
    del proceso.


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




Si un proceso genera una dirección que esta fuera del espacio de direcciones el HW genera un trap.
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.2
     Sistemas 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ño
2 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.
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 solamente
se harán operaciones de lectura
Datos Depende del proceso, los lenguajes de programación modernos permiten asignación dinámica de memoria lo
que 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 se
almacenan 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 programa
la gestión de este espacio
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 WINDOWS
   NT y las versiones actuales de UNIX
PREPARACIÓN DEL CODIGO DE UN PROCESO
Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado directamente por un Pc, sino que debe
ser traducido a lenguaje máquina.         La preparación del código de un proceso, también llamado texto del
                                          proceso sigue los siguientes pasos:
                                          Programa fuente: Programa escrito en un lenguaje de alto nivel (texto
                                          ordinario que contiene las sentencias del programa en un lenguaje de
                                          programación). Necesita ser traducido a código máquina para poder
                                          ser ejecutado.

                                          Compilador: Programa encargado de traducir los programas fuentes
                                          escritos en un lenguaje de alto nivel a lenguaje máquina y de
                                          comprobar que las llamadas a las funciones de librería se realizan
                                          correctamente.

                                          Programa (o código) objeto: Es el programa fuente traducido (por el
                                          compilador) 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 es
                                          directamente ejecutable.

                                          Linker (montador o enlazador): Es el programa encargado de insertar al
                                          programa objeto el código máquina de las funciones de las librerías
                                          (archivos de biblioteca) usadas en el programa y realizar el proceso de
                                          montaje, que producirá un programa ejecutable .exe. Las librerías son
                                          una colección de código (funciones) ya programado y traducido a
                                          código máquina, listo para utilizar en un programa
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
INFORMACION DEL BCP
EL BCP contiene la información básica del proceso, entre la que cabe destacar la siguiente:
INFORMACION DE IDENTIFICACION
Esta 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 PROCESADOR
Contiene los valores iniciales del estado del procesador o su valor en el instante en que fue interrumpido el proceso.
INFORMACION DE CONTROL DEL PROCESO
Aquí 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 pueden
    estar 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 mensaje
    enviado al proceso.
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 asociada
a cada proceso se encuentra parcialmente en el BCP y parcialmente fuera de el. L a decisión de incluir o no una
informació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 por
un 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 ser
incluidas habría que reservar en cada BCP el espacio necesario para almacenar el mayor tamaño que puedan tener
estas informaciones . Este espacio estaría presente en todos los BCP pero estaría desaprovechado en la mayoría de
ellos.
Un ejemplo de este tipo de información es la tabla de páginas puesto que su tamaño depende de las necesidades de
memoria de los procesos, valor que es variable uno del otro.




Registro identificador de espacio de direccionamiento
RIED, indica el espacio de mapa de memoria que puede
utilizar el programa en ejecución.
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 BCP
contendrá 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 se
heredó 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 el
                                                      archivo, lo mas conveniente es que compartan el puntero de
                                                      posición PP . De esta forma si ambos escriben en el archivo, lo
                                                      escrito por uno se pondrá a continuación de lo escrito por el otro
                                                      pero no encima.

                                                     El proceso BCP7 es hijo del proceso BCP4 el descriptor de
En términos                                          archivo (fd)3 de ambos procesos utiliza la entrada 4 de la tabla
generales un                                         de archivos , lo que significa que comparten e l archivo y su
descriptor de                                        puntero de posición . Observamos que el IDFF del archivo es el
archivo es un                                        34512 y que el puntero PP tiene un valor de 10000
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 tabla
  de archivos externa a los BCP y compartida por todos los procesos, en esta tabla se encuentra el puntero de posición
  PP, además del identificador físico del archivo IDFF.
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
RESUMEN
CICLO DE VIDA BASICO DE UN PROCESO
ESTADOS DE UN PROCESO
CAMBIO DE CONTEXTO

La activación del S.O se realiza mediante el mecanismo de las interrupciones, cuando se produce una inerrupción se
realizan las siguientes 2 operaciones:
• Se salva el Estado del Proceso en el BCP                      Cambio de contexto
• Se pasa a ejecutar la rutina de interrupción del S.O
Como resultado de este cambio su puede producir un cambio en el estado de algunos procesos, pero no
necesariamente.
Pongamos que El Proceso A está bloqueado esperando a que se complete una lectura de disco y que llega una
interrupción del disco , se produce un cambio de contexto y entra a ejecutar el S.O , en el caso de que la
interrupción indique que ha terminado la lectura por la que esperaba el P.A , el S.O cambia el estado del proceso a
LISTO o incluso a EJECUCION si así lo desee el planificador , resultando finalmente un cambio de estado del proceso.
CAMBIO DE CONTEXTO
SALVAGUARDAR LOS REGISTROS
El aspecto mas delicado se refiere al contenido de los registros de la computadora y describamos los pasos que sigue
esta 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 no
contienen los valores que deberían .




 Para resolver este problema, lo primero que hace el S.O al entrar a ejecutar es salvar el contenido de todos los
 registros , teniendo en cuenta de no haber modificado el valor de ninguno de ellos
HILOS
El modelo de procesos examinado hasta ahora implica que un proceso es un programa que sigue un
solo hilo (thread) de ejecución, Esta único hilo de control permite al proceso realizar solo una tarea
cada vez, por ejemplo, si un proceso está ejecutando un programa de procesador de palabras , existe
un solo hilo de instrucciones en ejecución, este único hilo de control solo permite que el proceso
realice una tarea a la vez. El usuario no podría simultáneamente capturar caracteres y activar el
verificador de ortografía dentro del mismo proceso.
Muchos sistemas operativos modernos han extendido el concepto de proceso para permitir que éste
tenga varios hilos de ejecución. De esta forma, se permite que el procesos realice más de una tarea a
la vez.




En sistemas operativos, un hilo de ejecución, hebra o subproceso es la unidad de procesamiento más
pequeña que puede ser planificada por un sistema operativo.
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 a
                                                una aplicación realizar varias tareas a la vez (concurrentemente). Los
                                                distintos hilos de ejecución comparten una serie de recursos tales
                                                como el espacio de memoria, los archivos abiertos, situación de
                                                autenticación, etc. Esta técnica permite simplificar el diseño de una
                                                aplicació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 hilos
  pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado
  inmediatamente.


 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ón
 finalizan, el proceso no existe más y todos sus recursos son liberados.
Procesos Ligeros (Hilos o Hebras)
Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos
ligeros. 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:
                                                               Proceso
 Espacio de memoria.
                                                                              Código
 Variables globales.
 Archivos abiertos.
                                                                               Datos
 Procesos hijos.
 Temporizadores.                                                         Recursos (ficheros, ...)
 Senales y semaforos.
 Contabilidad.                                                            Entorno del proceso

                                                                      Thread 1                 Thread n
                                                                       Registros   ......       Registros

                                                                         Pila                    Pila
ESTADOS DE UN PROCESO LIGERO
                                  Bloqueado por comunicación
       Proceso                             Bloqueado por acceso a disco
                                               Activo




Procesos ligeros

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
PARALELISMO
Los procesos Ligeros permiten paralelizar una aplicación, en efecto un programa puede dividirse en procedimientos que
pueden ejecutarse de manera independiente, los procesos ligeros permiten lanzar simultáneamente la ejecución de
todos ellos, consiguiendo que el proceso avance más rápidamente.

     Procedimiento 1                           Procedimiento 2
     P                                     F P                                       F Ejecución
                     Espera                                    Espera                     serie
                     en E/S                                    en E/S

     Procedimiento 1
     P                                     F
                     Espera
                     en E/S
                                                                 Ejecución
                                                                 paralela
    Procedimiento 2
     P                                                F
                               Espera                                                 Procesamiento
                               en E/S

Los procesos ligeros permite que un proceso aproveche más el procesador, es decir ejecute mas de prisa, esto no
significa que aumente la tasa total de uso del procesador
Diseño de proceso ligeros
La utilización de procesos ligeros ofrece las ventajas de división de trabajo, cabe destacar que los procesos
ligeros comparten memoria directamente y la creación y destrucción de estos procesos requiere mucho menos
trabajo 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ón
concurrente la misma que garantizará el acceso a los datos compartidos se haga de forma correcta, los
principios básicos que hay aplicar son los siguientes:

     – Hay variables globales que se comparten entre varios procesos ligeros , y debido a que estos procesos
       se 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 pueden
       existir están ejecutando cualquier sentencia al mismo tiempo que la sentencia que se está
       escribiendo.
TALLER INSTALAR LINUX SUSE PROFESIONAL
EN UNA MAQUINA VIRTUAL
CONFIGURAR E INSTALAR EL COMPILADOR C
REALIZAR EJERCICIOS DE REPASO EN C BAJO LA
PLATAFORMA UNIX
PLANIFICACION

LA PLANIFICACION HACE REFERENCIA A UN CONJUNTO DE
POLITICAS Y MECANISMOS INCORPORADOS EN EL SISTEMA
OPERATIVO QUE GOBIERNAN EL ORDEN EN QUE DEBEN SER
EJECUTADOS LOS TRABAJOS QUE DEBEN CUMPLIRSE EN EL
SISTEMA OPERATIVO.

EL OBJETIVO GENERAL DE LA PLANIFICACION ES OPTIMIZAR EL
RENDIMIENTO DEL SISTEMA.
PLANIFICACION
 El objetivo de la planificación de procesos y procesos ligeros es el
 reparto del tiempo de procesador entre los procesos que pueden
 ejecutar. El Planificador es el módulo del S.O que realiza la función de
 seleccionar 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 el
 proceso planificado.


                                                            Los planificadores son módulos de software encargados de
                                                            determinar el orden en que los procesos serán ejecutados.
                                                            Existen diferentes tipos de planificadores:
                                                            PLANIFICACION A LARGO PLAZO
                                                            Tiene como objetivo añadir nuevos procesos al sistema
                                                            tomándolos de la lista de espera, invocado muy
                                                            infrecuentemente por lo que puede ser mas lento.
                                                            PLANFICACION A MEDIO PLAZO
                                                            Trata la suspensión de procesos . Traslada un proceso de
                                                            memoria principal a disco y viceversa. Añade o elimina
                                                            procesos de memoria, reduciendo la contienda por el uso de la
                                                            CPU, modificando por tanto el grado de multiprogramación.
                                                            PLANFICACION A CORTO PLAZO
                                                            Se encarga de seleccionar el proceso en estado listo que pasa a
                                                            estado de ejecución es por tanto, la que asigna el procesador .
                                                            Este es invocado muy frecuentemente (milisegundos) y es muy
EL SISTEMA OPERATIVO UTILIZA PARA LA                        rápido.
PLANIFICACIÓN DE PROCESOS COLAS DE
PLANFICIACION
Reparto equitativo del procesador
                         Optimizar el uso del procesador
                            En lotes (batch)
Esta solución permite controlar el tiempo que esta en ejecución un proceso.




Esta solución minimiza el tiempo que gasta el sistema operativo en planificar y activar
procesos, pero tienen como inconveniente que un proceso puede monopolizar el
procesador
ALGORITMOS DE PLANIFICACION

El algoritmo de planificación definido para un proceso debe
enmarcarse en las siguientes políticas:
1. Ser Justas
2. Aumentar la productividad
3. Aumentar la capacidad de atención de usuarios y programas
   concurrentes activos sin el peligro de saturación
4. Ser predecibles
5. Imponer una mínima carga extra al sistema
6. Evitar tanto la saturación como la ociosidad de los recursos
7. Proveer seguridad y evitar problemas clásicos como el
   aplazamiento indebido.
Procesos y multitarea: conceptos clave
Procesos y multitarea: conceptos clave

Mais conteúdo relacionado

Mais procurados

metodos de instalacion de un sistema operativo
metodos de instalacion de un sistema operativometodos de instalacion de un sistema operativo
metodos de instalacion de un sistema operativoJorge David Mares Sanchez
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativosDeivis Romero
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srtCarlos Solano
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
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
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instruccionesLely
 
Gestor de almacenamiento
Gestor de almacenamientoGestor de almacenamiento
Gestor de almacenamientoCarlos Mila
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc callclauddiaa
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascadamasilog
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 

Mais procurados (20)

Herramientas case full informacion
Herramientas case full informacionHerramientas case full informacion
Herramientas case full informacion
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
metodos de instalacion de un sistema operativo
metodos de instalacion de un sistema operativometodos de instalacion de un sistema operativo
metodos de instalacion de un sistema operativo
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativos
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
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
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
Gestor de almacenamiento
Gestor de almacenamientoGestor de almacenamiento
Gestor de almacenamiento
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
3.1 Administración de memoria CUESTIONARIO
3.1 Administración de memoria CUESTIONARIO3.1 Administración de memoria CUESTIONARIO
3.1 Administración de memoria CUESTIONARIO
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc call
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 

Semelhante a Procesos y multitarea: conceptos clave

Semelhante a Procesos y multitarea: conceptos clave (20)

Procesos
ProcesosProcesos
Procesos
 
Prueba
PruebaPrueba
Prueba
 
Grupo1
Grupo1Grupo1
Grupo1
 
Capitulo 4 grupo 2
Capitulo 4 grupo 2Capitulo 4 grupo 2
Capitulo 4 grupo 2
 
Unidad2
Unidad2Unidad2
Unidad2
 
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesos
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Procesos
ProcesosProcesos
Procesos
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02ele
 
Unidad2
Unidad2Unidad2
Unidad2
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
 
Introducción a los procesos alfa ii
Introducción a los procesos alfa iiIntroducción a los procesos alfa ii
Introducción a los procesos alfa ii
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos
 
Gestion de procesos
Gestion de procesosGestion de procesos
Gestion de procesos
 
Gestion de procesos
Gestion de procesosGestion de procesos
Gestion de procesos
 
3 1 Estructura Sistema Operativo
3 1 Estructura Sistema Operativo3 1 Estructura Sistema Operativo
3 1 Estructura Sistema Operativo
 
Clases procesos
Clases procesosClases procesos
Clases procesos
 
Administración de Procesos
Administración de ProcesosAdministración de Procesos
Administración de Procesos
 

Mais de Cesar Oswaldo Osorio Agualongo (20)

Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Notas 2 do parcial
Notas 2 do parcialNotas 2 do parcial
Notas 2 do parcial
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Notas 2490
Notas 2490Notas 2490
Notas 2490
 
Notas 2625
Notas 2625Notas 2625
Notas 2625
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Punteros y funciones
Punteros y funciones Punteros y funciones
Punteros y funciones
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Punteros presentacion
Punteros presentacionPunteros presentacion
Punteros presentacion
 
Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016
 
Programacion semanal programacion i
Programacion semanal programacion iProgramacion semanal programacion i
Programacion semanal programacion i
 

Procesos y multitarea: conceptos clave

  • 2. PROCESOS-CONCEPTO Todos los programas, cuya ejecución solicitan los usuarios se ejecutan en forma de procesos, por lo que se puede definir como un programa en ejecución El S.O mantiene por cada proceso una serie de estructuras de información que permiten identificar 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 los archivos 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 una tabla de procesos con todos los BCP y esta tabla se construye normalmente con una estructura 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
  • 3. PCB Cada 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 secciones de 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 ejecutar Registros de la CPU: Estos varían en número y tipo dependiendo de la arquitectura de la computadora, incluyen acumuladores , registros índice , apuntadores de pila y registros de propósito general, además de cualquier información de código de condición . Junto con el contador de programa , esta información de estado debe guardarse cuando ocurre una interrupción, para posteriormente permitir que el proceso continú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 de planificació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ímites de tiempo , números de procesos o trabajo, etc Información de estado de E/S: En esta sección incluye la lista de dispositivos de E/S asignados al proceso, una lista de archivos abiertos , etc
  • 4. ESTADOS BASICOS DE UN PROCESO • NUEVO Un programa que no ha iniciado su ejecución , se encuentra en memoria secundaria. • LISTO Se encuentra en memoria principal sin operaciones de E/S pendientes y apto 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.
  • 5. JERARQUIA DE LOS 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 Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hijo, hermano o abuelo. 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ógico ENTORNO DE PROCESOS El entorno consiste en un conjunto de variables que se le pasan al proceso en el momento de su creación El entorno está formado por una tabla NOMBRE-VALOR que se incluye en la pila del proceso, el NOMBRE especifica el nombre de la variable y el VALOR su valor. GRUPOS DE PROCESOS Los procesos forman grupos que tienen diversas propiedades , ejm El conjunto de procesos creados a partir de un shell puede formar un grupo de procesos .
  • 6. TIPOS DE SISTEMAS OPERATIVOS Los sistemas operativos se clasifican en función del número de procesos y de usuarios
  • 7. TIPOS DE SISTEMAS OPERATIVOS También llamado Monoproceso permiten que exista un proceso en cada instante si se requieren ejecutar varios procesos que hay que hacer……… O Multiproceso , permite que exista varios procesos a la vez . El S.O se encarga de ir repartiendo el tiempo del procesador entre estos procesos Está previsto para soportar a un solo usuario Estos sistemas pueden ser monoproceso o multiproceso , esto quiere decir que un usuario puede solicitar varias tareas al mismo tiempo Soporta varios usuarios trabajando simultáneamente desde varias terminales . A su vez cada usuario puede tener activo más de 1 proceso , por lo que debe ser también el sistema Multitarea . También reciben el nombre de Tiempo Compartido porque ha de repartir el tiempo de la computadora entre los usuarios para procesar cada una de las tareas de los usuarios
  • 8. BASE DE LA MULTITAREA La multitarea se basa en las tres características siguientes: 1. Paralelismo real entre E/S y procesador 2. Alternancia en los procesos de fases de E/S y de procesamiento 3. Memoria principal capaz de almacenar varios procesos Existe una concurrencia real entre el procesador y las funciones de E/S, Esto significa que mientras se están realizando una operación de E/S de un proceso, se puede estar ejecutando otro proceso. Podemos observar que la ejecución de un proceso alterna fases de procesamiento con fases de E/S puesto que cada tiempo , necesita leer o escribir datos en un periférico . En sistemas multiprocesamiento se aprovechan las fases de E/S de unos procesos para realizar las fases de procesamiento de otros.
  • 9. BASE DE LA MULTITAREA Ejemplo 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 del Proceso 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 es porque las operaciones de E/S no las gobiernan directamente los procesos, si no que se limitan a pedirle al S.O que las realice . De igual forma el S.O trata las interrupciones que generan los controladores para avisar que ha completado una operación
  • 10. PROCESO NULO Bajo la premisa de que el procesador no para de ejecutar nunca la figura muestra lo contrario, pues podemos observar que hay un intervalo en el que el procesador no tiene nada que hacer , para evitar esto los S.O incluyen los llamados Procesos Nulos Estos procesos consisten en un bucle infinito que no realiza ninguna operación útil , el objetivo de este proceso es entretener al procesador cuando no haya ninguna tarea.
  • 11. PLANIFICADORES ACTIVADORES El planificador (sheduler) forma parte del núcleo del S.O , este entra en ejecución cada vez que se activa el Sistema Operativo y su misión es Seleccionar el proceso que se ha de ejecutar a continuación. El Activador (dispatcher) también forma parte del Sistema Operativo y su función es poner en ejecución el proceso seleccionado por el planificador.
  • 12. 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 modularidad 2. Permite prestar un buen servicio.- Esto hace que se pueda atender a varios usuarios de forma eficiente, interactiva y simultánea 3. Aprovecha los tiempos muertos que los procesos pasan esperando a que se completen sus operaciones de E/S 4. Aumenta el uso de la UCP, al aprovechar los espacios de tiempo que los procesos están bloqueados.
  • 13. GRADO DE MULTIPROGRAMACION Se denomina grado de multiprogramación al numero de proceso activos que mantienen un Sistema y este factor es el que afecta de forma importante el rendimiento que se obtienen de una computadora. Mientras más procesos activos haya en un sistema, mayor es la probabilidad de encontrar siempre un proceso en estado de listo para ejecutar , 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 necesidades de memoria Mencionaremos 2 aspectos a considerar: Un sistema sin Memoria Virtual Un sistema con Memoria Virtual
  • 14. MEMORIA VIRTUAL Administrar la memoria es optimizar el uso del RAM que consiste de uno o más chips en el motherboard que mantiene los datos e instrucciones en forma temporanea mientras el procesador los interpreta y ejecuta. El sistema operativo limpia las áreas de memoria 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, el sistema operativo asigna una porción de un medio de almacenamiento, usualmente el disco duro, para funcionar como RAM adicional. Según se interacciona con un programa, parte de él puede 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 la cantidad de datos e instrucciones que se pueden intercambiar en un momento dado. A la técnica de intercambiar 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 la luz del disco duro sigue encendida. Si el “thrashing” sucede con mucha frecuencia, es posible que la computadora necesite más RAM.
  • 15. SISTEMA SIN MEMORIA VIRTUAL Los procesos activos han de residir totalmente en memoria principal, por tanto el grado de multiprogramación viene limitado por el tamaño de los procesos y por la memoria disponible. Además en estos sistemas el rendimiento de la utilización del procesador aumenta siempre con el grado de multiprogramación , esto es así ya que los procesos siempre residen en memoria principal
  • 16. SISTEMA CON MEMORIA VIRTUAL Este esquema es mucho mas complejo , puesto que los procesos sólo tienen en memoria principal su conjunto residente Conjunto residente es el número de páginas de un proceso que están alojadas en un marco de memoria principal Si 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 conjunto residente de cada uno como se muestra en la figura.
  • 17. SISTEMA CON MEMORIA VIRTUAL El conjunto residente medio decrece con el grado de multiprogramación Cuando el conjunto residente de un proceso se hace menor de un determinado valor, ya no representa adecuadamente 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 que hay 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 de resolver estos fallos.
  • 18. 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 a un aumento del rendimiento del procesador. Sin embargo superado un determinado valor de grado de multiprogramación , los conjuntos residentes de los procesos empiezan a ser demasiado pequeños , por lo que el sistema baja su rendimiento al perder tiempo de paginado Se denomina HIPERPAGINACIÓN (trashing) a la situación de alta paginación producida cuando los conjuntos residentes 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 de utilización del procesador. Para aumentar el rendimiento de un sistema que esté en esta situación , es necesario añadir mas memoria principal. Cuando la memoria es grande se llega a saturar el procesador con menos procesos de los que caben en memoria. En este case se puede aumentar el rendimiento del sistema manteniendo la memoria pero aumentando la potencia del procesador o añadiendo otro procesador
  • 19.
  • 20. RESUMEN Proceso: 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
  • 21. RESUMEN REPRESENTACION EN MEMORIA  Un proceso necesita memoria para las instrucciones y los datos.  Distintas instancias de un programa necesitan zonas independientes para los datos.
  • 22. INFORMACION DE UN PROCESO El proceso es la unidad de procesamiento gestionada por el S.O , este tiene asociado una serie de elementos de información y que se organizan en tres grupos: ESTADO DEL PROCESADOR, IMAGEN DE MEMORIA Y TABLAS DEL SISTEMA OPERATIVO
  • 23. ESTADO DEL PROCESADOR Básicamente, está formada por el contenido de los registros del procesador. Por supuesto, mientras el 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 el proceso reanude su ejecución. La naturaleza y número de registros involucrados depende del diseñ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)
  • 24. IMAGEN DE MEMORIA DEL PROCESO La imagen de memoria del proceso está formado por los espacios de memoria que está autorizado a utilizar, las principales caracterí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. El segundo solo es de aplicación en los sistemas con memoria virtual y se refiere a la modificación del conjunto residente del proceso. Al contenido de los segmentos de memoria en los que reside el código y los datos del proceso se le denomina: IMAGEN DE MEMORIA Si un proceso genera una dirección que esta fuera del espacio de direcciones el HW genera un trap.
  • 25. 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.2 Sistemas 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ño 2 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.
  • 26. 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 solamente se harán operaciones de lectura Datos Depende del proceso, los lenguajes de programación modernos permiten asignación dinámica de memoria lo que 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 se almacenan 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 programa la gestión de este espacio
  • 27. 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 WINDOWS NT y las versiones actuales de UNIX
  • 28. PREPARACIÓN DEL CODIGO DE UN PROCESO Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado directamente por un Pc, sino que debe ser traducido a lenguaje máquina. La preparación del código de un proceso, también llamado texto del proceso sigue los siguientes pasos: Programa fuente: Programa escrito en un lenguaje de alto nivel (texto ordinario que contiene las sentencias del programa en un lenguaje de programación). Necesita ser traducido a código máquina para poder ser ejecutado. Compilador: Programa encargado de traducir los programas fuentes escritos en un lenguaje de alto nivel a lenguaje máquina y de comprobar que las llamadas a las funciones de librería se realizan correctamente. Programa (o código) objeto: Es el programa fuente traducido (por el compilador) 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 es directamente ejecutable. Linker (montador o enlazador): Es el programa encargado de insertar al programa objeto el código máquina de las funciones de las librerías (archivos de biblioteca) usadas en el programa y realizar el proceso de montaje, que producirá un programa ejecutable .exe. Las librerías son una colección de código (funciones) ya programado y traducido a código máquina, listo para utilizar en un programa
  • 29. 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
  • 30. INFORMACION DEL BCP EL BCP contiene la información básica del proceso, entre la que cabe destacar la siguiente: INFORMACION DE IDENTIFICACION Esta 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 PROCESADOR Contiene los valores iniciales del estado del procesador o su valor en el instante en que fue interrumpido el proceso. INFORMACION DE CONTROL DEL PROCESO Aquí 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 pueden estar 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 mensaje enviado al proceso.
  • 31. 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 asociada a cada proceso se encuentra parcialmente en el BCP y parcialmente fuera de el. L a decisión de incluir o no una informació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 por un 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 ser incluidas habría que reservar en cada BCP el espacio necesario para almacenar el mayor tamaño que puedan tener estas informaciones . Este espacio estaría presente en todos los BCP pero estaría desaprovechado en la mayoría de ellos. Un ejemplo de este tipo de información es la tabla de páginas puesto que su tamaño depende de las necesidades de memoria de los procesos, valor que es variable uno del otro. Registro identificador de espacio de direccionamiento RIED, indica el espacio de mapa de memoria que puede utilizar el programa en ejecución.
  • 32. 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 BCP contendrá 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 se heredó 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 el archivo, lo mas conveniente es que compartan el puntero de posición PP . De esta forma si ambos escriben en el archivo, lo escrito por uno se pondrá a continuación de lo escrito por el otro pero no encima. El proceso BCP7 es hijo del proceso BCP4 el descriptor de En términos archivo (fd)3 de ambos procesos utiliza la entrada 4 de la tabla generales un de archivos , lo que significa que comparten e l archivo y su descriptor de puntero de posición . Observamos que el IDFF del archivo es el archivo es un 34512 y que el puntero PP tiene un valor de 10000 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 tabla de archivos externa a los BCP y compartida por todos los procesos, en esta tabla se encuentra el puntero de posición PP, además del identificador físico del archivo IDFF.
  • 33. 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
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. RESUMEN CICLO DE VIDA BASICO DE UN PROCESO
  • 45. ESTADOS DE UN PROCESO
  • 46. CAMBIO DE CONTEXTO La activación del S.O se realiza mediante el mecanismo de las interrupciones, cuando se produce una inerrupción se realizan las siguientes 2 operaciones: • Se salva el Estado del Proceso en el BCP Cambio de contexto • Se pasa a ejecutar la rutina de interrupción del S.O Como resultado de este cambio su puede producir un cambio en el estado de algunos procesos, pero no necesariamente. Pongamos que El Proceso A está bloqueado esperando a que se complete una lectura de disco y que llega una interrupción del disco , se produce un cambio de contexto y entra a ejecutar el S.O , en el caso de que la interrupción indique que ha terminado la lectura por la que esperaba el P.A , el S.O cambia el estado del proceso a LISTO o incluso a EJECUCION si así lo desee el planificador , resultando finalmente un cambio de estado del proceso.
  • 47. CAMBIO DE CONTEXTO SALVAGUARDAR LOS REGISTROS El aspecto mas delicado se refiere al contenido de los registros de la computadora y describamos los pasos que sigue esta 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 no contienen los valores que deberían . Para resolver este problema, lo primero que hace el S.O al entrar a ejecutar es salvar el contenido de todos los registros , teniendo en cuenta de no haber modificado el valor de ninguno de ellos
  • 48. HILOS El modelo de procesos examinado hasta ahora implica que un proceso es un programa que sigue un solo hilo (thread) de ejecución, Esta único hilo de control permite al proceso realizar solo una tarea cada vez, por ejemplo, si un proceso está ejecutando un programa de procesador de palabras , existe un solo hilo de instrucciones en ejecución, este único hilo de control solo permite que el proceso realice una tarea a la vez. El usuario no podría simultáneamente capturar caracteres y activar el verificador de ortografía dentro del mismo proceso. Muchos sistemas operativos modernos han extendido el concepto de proceso para permitir que éste tenga varios hilos de ejecución. De esta forma, se permite que el procesos realice más de una tarea a la vez. En sistemas operativos, un hilo de ejecución, hebra o subproceso es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.
  • 49. 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 a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicació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 hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente. 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ón finalizan, el proceso no existe más y todos sus recursos son liberados.
  • 50. Procesos Ligeros (Hilos o Hebras) Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. 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: Proceso  Espacio de memoria. Código  Variables globales.  Archivos abiertos. Datos  Procesos hijos.  Temporizadores. Recursos (ficheros, ...)  Senales y semaforos.  Contabilidad. Entorno del proceso Thread 1 Thread n Registros ...... Registros Pila Pila
  • 51. ESTADOS DE UN PROCESO LIGERO Bloqueado por comunicación Proceso Bloqueado por acceso a disco Activo Procesos ligeros 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
  • 52. PARALELISMO Los procesos Ligeros permiten paralelizar una aplicación, en efecto un programa puede dividirse en procedimientos que pueden ejecutarse de manera independiente, los procesos ligeros permiten lanzar simultáneamente la ejecución de todos ellos, consiguiendo que el proceso avance más rápidamente. Procedimiento 1 Procedimiento 2 P F P F Ejecución Espera Espera serie en E/S en E/S Procedimiento 1 P F Espera en E/S Ejecución paralela Procedimiento 2 P F Espera Procesamiento en E/S Los procesos ligeros permite que un proceso aproveche más el procesador, es decir ejecute mas de prisa, esto no significa que aumente la tasa total de uso del procesador
  • 53. Diseño de proceso ligeros La utilización de procesos ligeros ofrece las ventajas de división de trabajo, cabe destacar que los procesos ligeros comparten memoria directamente y la creación y destrucción de estos procesos requiere mucho menos trabajo 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ón concurrente la misma que garantizará el acceso a los datos compartidos se haga de forma correcta, los principios básicos que hay aplicar son los siguientes: – Hay variables globales que se comparten entre varios procesos ligeros , y debido a que estos procesos se 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 pueden existir están ejecutando cualquier sentencia al mismo tiempo que la sentencia que se está escribiendo.
  • 54. TALLER INSTALAR LINUX SUSE PROFESIONAL EN UNA MAQUINA VIRTUAL CONFIGURAR E INSTALAR EL COMPILADOR C REALIZAR EJERCICIOS DE REPASO EN C BAJO LA PLATAFORMA UNIX
  • 55.
  • 56. PLANIFICACION LA PLANIFICACION HACE REFERENCIA A UN CONJUNTO DE POLITICAS Y MECANISMOS INCORPORADOS EN EL SISTEMA OPERATIVO QUE GOBIERNAN EL ORDEN EN QUE DEBEN SER EJECUTADOS LOS TRABAJOS QUE DEBEN CUMPLIRSE EN EL SISTEMA OPERATIVO. EL OBJETIVO GENERAL DE LA PLANIFICACION ES OPTIMIZAR EL RENDIMIENTO DEL SISTEMA.
  • 57.
  • 58. PLANIFICACION El objetivo de la planificación de procesos y procesos ligeros es el reparto del tiempo de procesador entre los procesos que pueden ejecutar. El Planificador es el módulo del S.O que realiza la función de seleccionar 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 el proceso planificado. Los planificadores son módulos de software encargados de determinar el orden en que los procesos serán ejecutados. Existen diferentes tipos de planificadores: PLANIFICACION A LARGO PLAZO Tiene como objetivo añadir nuevos procesos al sistema tomándolos de la lista de espera, invocado muy infrecuentemente por lo que puede ser mas lento. PLANFICACION A MEDIO PLAZO Trata la suspensión de procesos . Traslada un proceso de memoria principal a disco y viceversa. Añade o elimina procesos de memoria, reduciendo la contienda por el uso de la CPU, modificando por tanto el grado de multiprogramación. PLANFICACION A CORTO PLAZO Se encarga de seleccionar el proceso en estado listo que pasa a estado de ejecución es por tanto, la que asigna el procesador . Este es invocado muy frecuentemente (milisegundos) y es muy EL SISTEMA OPERATIVO UTILIZA PARA LA rápido. PLANIFICACIÓN DE PROCESOS COLAS DE PLANFICIACION
  • 59.
  • 60.
  • 61. Reparto equitativo del procesador Optimizar el uso del procesador En lotes (batch)
  • 62. Esta solución permite controlar el tiempo que esta en ejecución un proceso. Esta solución minimiza el tiempo que gasta el sistema operativo en planificar y activar procesos, pero tienen como inconveniente que un proceso puede monopolizar el procesador
  • 63.
  • 64.
  • 65. ALGORITMOS DE PLANIFICACION El algoritmo de planificación definido para un proceso debe enmarcarse en las siguientes políticas: 1. Ser Justas 2. Aumentar la productividad 3. Aumentar la capacidad de atención de usuarios y programas concurrentes activos sin el peligro de saturación 4. Ser predecibles 5. Imponer una mínima carga extra al sistema 6. Evitar tanto la saturación como la ociosidad de los recursos 7. Proveer seguridad y evitar problemas clásicos como el aplazamiento indebido.