Puede considerarse
                           como un programa
                              en ejecución


  Necesita recursos
                                                 Es la unidad de
   para realizar su
                                                  trabajo en la
   tarea, estos se
                                                 mayoría de los
asignan al crearse el
                                                     sistemas.
proceso o cuando se
  está ejecutando.
                            PROCESO

           Incluye la pila del
              proceso, que                 Un proceso puede
             contiene datos                 generar muchos
                                           procesos a medida
           temporales y una
                                             que se ejecuta
           sección de datos
Ocupación
                 principal del SO:
Sistema            ejecución de
                  programas de
                      usuario




                 Consiste en
                una colección
                 de procesos



    Procesos del SO          Procesos de
      ejecutando                usuario
      código del             ejecutando
        sistema            código de usuario
SO       SO
(ayer)   (hoy)
A medida que se ejecuta
un proceso, cambia su
estado, este se define en
parte por la actividad                   El proceso se
                             Nuevo
                                         está creando
actual de dicho proceso

                                             Se están
                            Ejecución      ejecutando
                                          instrucciones


        Estados de un                   Está esperando
           proceso          En espera     que ocurra
                                         algún evento

                                         Está en espera
                               Listo    de ser asignado
                                        a un procesador

                                         El proceso ha
                            Terminado    terminado su
                                           ejecución
 Nombres de los procesos varían entre los SO, mas sin embargo, los
  estados que representan están en todos los sistemas.

 Sólo un proceso puede estar ejecutándose en un procesador en algún
  momento.

 Muchos procesos pueden estar listos y en espera.
Cada proceso se
                                           Información de                         representa en el
                                         planificación de la
                   Estado del                    CPU                              SO mediante un
                    proceso             Incluye prioridad del                     bloque         de
                   Nuevo, listo,              proceso,                            control        del
                    espera….               apuntadores a
                                              colas de                            proceso     (PCB),
                                        planificación y otros                     llamado también
                                                                                  bloque         de
  Contador de                                             Información de          control de tarea.
                                                        administración de la
   programa                                                   memoria
Indica la dirección                                       Puede incluir datos
  de la siguiente                                        referentes al valor de
   instrucción a                                           los registros base y
                                                       límite, tablas de página
      ejecutar                                              o de segmentos.


      Registros de la CPU                              Información
     Varía dependiendo                                   contable
      de la arquitectura                           Incluye la cantidad
      del computador.                               de tiempo de CPU
           Incluyen                                     y tiempo real
       acumuladores,                                  usado, límites de
        apuntadores                                 tiempo, entre otros
                              Información de
                               estado de E/S
                            Incluye la lista de
                            dispositivos de E/S
                               asignados al
                                 proceso
Un proceso es un programa que sigue
un solo hilo (thread) de ejecución.




    Un único hilo de control sólo permite
    que el proceso realice una tarea a la
    vez (procesador de palabras).



        Muchos SO han extendido el concepto
        de proceso para permitir que éste tenga
        varios hilos de ejecución y a la vez pueda
        realizar más de una tarea a la vez
• Su objetivo es tener un
                                    proceso en ejecución en
                                    todo   momento         y   así
          Multiprogramación         maximizar la utilización de la
                                    CPU




                                  • Su objetivo es conmutar la
                                    CPU entre procesos tan
             Tiempo                 frecuentemente     que   los
                                    usuarios puedan interactuar
           compartido               con cada programa que
                                    está en ejecución.


En un sistema con un solo microprocesador, nunca hay más de un proceso en
ejecución.
En caso de existir más proceso deberán esperar hasta que la CPU esté libre y
puedan volver a planificarse.
Aquí están todos
                                Cola de
                                              los procesos en el
                                trabajos      sistema



Es una lista en la
cual se encuentran
los    procesos    que   Cola de
residen en la memoria    procesos
principal listos y en
espera de ejecutarse



                                              Es   la    lista   de
                                Cola del      procesos esperando
                                dispositivo   por un dispositivo de
                                              E/S particular
El planificador es un componente funcional muy importante de
los sistemas operativos.




   Multitarea y multiproceso.
   Tiempo real (esencial).




                  El planificador a corto plazo: selecciona
                  procesos y los carga en la memoria para su
                  ejecución.

                  El planificador a largo plazo: selecciona de
                  entre los procesos que están listos para su
                  ejecución, y asigna la CPU a uno de ellos.
Los procesos pueden describirse como: Limitados         por E/S o
Limitados por CPU



                     Limitados por            Limitados por
                           E/S                     CPU

                         Es el que consume
                         mas de su tiempo       Es el que genera
                         haciendo               solicitudes de E/S
                         operaciones de E/S     de manera poco
                         que       haciendo     frecuente.
                         cálculos.

 IMPORTANTE
                                                Empleando        mas
 Seleccionar una buena mezcla de                tiempo en cálculos
procesos limitados por E/S y limitados          que un proceso
                                                limitado por E/S
              por CPU.
Así se obtiene un sistema con mejor
            desempeño.
La conmutación de contexto es la tarea de conservar el
estado de un proceso anterior y cargar el estado de guardado
del nuevo proceso.


El contexto de un proceso
se representa en su PCB.                    El valor de
                                                los
                                             registros
Incluye:                                    de la CPU.



                                El estado
                                    del
                                proceso.

                                                  La información
                                                       sobre
                                                  administración
                                                  de la memoria.
Puede crear varios procesos
             nuevos a través de una
          llamada para la creación de
PROCESO



                   procesos.


          Necesita recursos (tiempo de
            CPU, memoria, archivos,
              dispositivos de E/S)



          Puede ser padre y convertirse
                     en hijo.
Un proceso concluye cuando termina de ejecutar su declaración
final y le pide al sistema que lo borre (exit).

CIRCUNSTANCIAS ADICIONALES POR LAS QUE SE PUEDE TERMINAR UN PROCESO


                Un proceso puede terminar la ejecución de otro
                proceso por medio de una llamada apropiada al
                               sistema (abort).


                El hijo se ha excedido en el uso de algunos de los
                            recursos que tiene asignados.



                   Ya no se requiere la tarea asignada al hijo.



              El padre está saliendo, y el sistema no permite que un
                        hijo continúe si su padre termina.
Los procesos dentro de un sistema operativo pueden
          ser independientes o cooperativos.

      PROCESOS                    PROCESOS
   INDEPENDIENTES               COOPERATIVOS
      Un proceso es              Un proceso es                  Compartir
                                                               información
independiente si no puede    cooperativo si puede
 afectar o verse afectado   afectar o verse afectado
                                                       Aceleración de
                                                          cálculos




       Existen varias razones para generar                     Modularidad

        un ambiente para la cooperación:

                                                       Conveniencia
Cuando dos procesos desean comunicarse requieren enviar y recibir
mensajes, para ello debe existir un enlace de comunicación, existen varias
formas de implementar enlaces:

         • Implementación física
         • Implementación lógica

Algunos métodos para la implementación lógicamente de un enlace ya las
operaciones send-receive

                                                                   Mensajes de
                                                     Envió por     tamaño fijo o
                                                     copia o por   variable
                                      Uso            referencia
                                      automático o
                      Comunicació
                                      explícito de
                      n simétrica o
       Comunicación                   los buffers
                      asimétrica
       directa o
       indirecta
Su función es permitir que los procesos se comuniquen entre ellos, sin
necesidad de recurrir a datos compartidos.
El tamaño de los mensajes enviados por un proceso puede ser fijo o
variable.




   ASIGNACIÓN comunicarse necesitan hacer referencia
 Los procesos que desean
                          DE NOMBRES
    entre ellos.
   Para esto pueden usar una comunicación:



            DIRECTA                      INDIRECTA
En la comunicación Directa cada proceso que
 quiere comunicarse debe nombrar al receptor o
 emisor de la comunicación.

                       Esto presenta


      Simetría en el                Asimetría en el
    Direccionamiento               Direccionamiento


El emisor como el receptor        Solo el emisor nombra al
    nombra a otro para                     receptor
       comunicarse
En la comunicación indirecta los mensajes se
envían y reciben de buzones o puertos.


         Cada buzón tiene una identificación única




 Puede ser propiedad de un proceso o del sistema operativo




Cuando un proceso propietario de un buzón termina, el buzón
                      desaparece.
El paso de mensajes puede ser:

                   Con bloqueo                Sin
                   (síncrono)                 bloqueo(asíncrono)




                              Envío sin                                Recepción
  •El proceso emisor          bloqueo           •El receptor se       sin bloqueo
   se bloquea hasta                           bloquea hasta que
   que el mensaje e     •El emisor envía el    haya un mensaje      •El receptor
    recibido por el     mensaje y continúa         disponible       recupera un
   proceso receptor         su operación                           mensaje válido o
                                                                    un valor nulo

       Envío con                                  Recepción
        bloqueo                                  con bloqueo
   Los   mensajes   intercambiados  por  los   procesos
    comunicados residen en una cola temporal. Existen tres
    formas para implementarlas:



          Capacidad cero: el enlace puede tener
          mensajes esperando en él.

          Capacidad limitada: n mensajes pueden
          residir en ella.

          Capacidad ilimitada: Cualquier número de
          mensajes puede esperar en ella.
Solución al problema: Empleo
                                                        de paso de mensajes.

    EJEMPLO DEL PRODUCTOR-CONSUMIDOR
Import java.util.*;
Public class ColaMensajes
{
Public ColaMensajes(){                                        El productor y el consumidor
   cola=new Vector();
                                                              se comunicarán
)
//Éste implementa un envío (send) sin bloqueo
                                                              indirectamente empleando
Public void send(Object item){                                el buzón compartido.
Cola.agregaElemento(item);
}                                                             El buffer se implementa
//Éste implementa una recepción (receive) sin bloqueo
                                                              usando la clase
Public Object receive() {
  Object item;                                                java.util.vector, lo que
                                                              significa que habrá un buffer
If(cola.tamaño()==0)                                          con apacidad ilimitada.
            return null;                                      Cuando el productor
Else
            {
                                                              genera un elemento, coloca
            item=cola.primerElemento();                       ese elmento en el buzón vía
            cola.removerElementoEn(0);                        el método send().
            return item;
}
}
Private Vector cola;
}
Proceso productor
 ColaMensajes Buzón;
 While (true){
   Date mensaje= new Date();
 Buzon.send(mensaje);
 }



Proceso consumidor
 ColaMensajes Buzón;
 While (true){
  Date mensaje= (Date) buzon.receive();
   if (mensaje !=null)
         //consumir el mensaje
EJEMPLO :MATCH (Sistema operativo
basado en mensajes)
   La mayoría de las comunicaciones se
    realizan mediante mensajes, éstos se
    envían y reciben desde los llamados
    puertos.

   Cuando se crea cada tarea, también se
    crean: el buzón kernel y el notify.

   Se necesitan tres llamadas al sistema para
    la transferencia: msg_send, msg_receive.
    Las llamadas remotas a procedimientos a
    través de msg_rpc

   La llamada al sistema port_allocate crea
    un nuevo buzón y asigna espacio para su
    cola de mensajes.(8)

   FIFO
   Si el buzón está lleno, el hilo emisor debe:
       Esperar hasta que haya espacio
       Esperar a lo sumo n milisegundos
       No esperar, sino regresar de inmediato
       Poner temporalmente el mensaje en una caché. (tareas de
        servidor




                     El sistema Mach intenta evitar
                   operaciones de copiado doble
               utilizando técnicas de administración
                            de memoria virtual.
EJEMPLO: WINDOWS NT
                                       Emplea modularidad.
                                       Proporciona soporte para múltiples
                                        ambientes de operación o
                                        subsistemas.
                                       Servidor de paso de mensajes:
                                        servidor local de llamada a
                                        procedimientos.

NT emplea dos tipos de puertos: de conexión(proporciona a las aplicaciones
una forma para preparar un canal de comunicación) y de comunicación.
La comunicación funciona así:

o   El cliente abre un manejador al objeto puerto de conexión del subsistema
o   El cliente envía una solicitud de conexión.
o   El servidor crea dos puertos de comunicación privaos, y devuelve el manejador
    de uno de ellos al cliente.
o   El cliente y el servidor emplean el manejador del puerto correspondiente para
    enviar mensajes o contestar.
   NT emplea tres tipos de técnicas de paso de mensajes:
       1. Usa la cola de mensajes
       2. Pasa el mensaje a través de un objeto de sección(memoria
        compartida).
       3. Si el servidor decide que las respuestas serán largas, crea un
        objeto de sección.




    Desventajas
     El rendimiento no es tan bueno
     Para aumentar el rendimiento, emplea un tercer
      método de paso de mensajes. (LCP rápido)

Capitulo 4 grupo 2

  • 2.
    Puede considerarse como un programa en ejecución Necesita recursos Es la unidad de para realizar su trabajo en la tarea, estos se mayoría de los asignan al crearse el sistemas. proceso o cuando se está ejecutando. PROCESO Incluye la pila del proceso, que Un proceso puede contiene datos generar muchos procesos a medida temporales y una que se ejecuta sección de datos
  • 3.
    Ocupación principal del SO: Sistema ejecución de programas de usuario Consiste en una colección de procesos Procesos del SO Procesos de ejecutando usuario código del ejecutando sistema código de usuario
  • 4.
    SO SO (ayer) (hoy)
  • 5.
    A medida quese ejecuta un proceso, cambia su estado, este se define en parte por la actividad El proceso se Nuevo está creando actual de dicho proceso Se están Ejecución ejecutando instrucciones Estados de un Está esperando proceso En espera que ocurra algún evento Está en espera Listo de ser asignado a un procesador El proceso ha Terminado terminado su ejecución
  • 6.
     Nombres delos procesos varían entre los SO, mas sin embargo, los estados que representan están en todos los sistemas.  Sólo un proceso puede estar ejecutándose en un procesador en algún momento.  Muchos procesos pueden estar listos y en espera.
  • 7.
    Cada proceso se Información de representa en el planificación de la Estado del CPU SO mediante un proceso Incluye prioridad del bloque de Nuevo, listo, proceso, control del espera…. apuntadores a colas de proceso (PCB), planificación y otros llamado también bloque de Contador de Información de control de tarea. administración de la programa memoria Indica la dirección Puede incluir datos de la siguiente referentes al valor de instrucción a los registros base y límite, tablas de página ejecutar o de segmentos. Registros de la CPU Información Varía dependiendo contable de la arquitectura Incluye la cantidad del computador. de tiempo de CPU Incluyen y tiempo real acumuladores, usado, límites de apuntadores tiempo, entre otros Información de estado de E/S Incluye la lista de dispositivos de E/S asignados al proceso
  • 8.
    Un proceso esun programa que sigue un solo hilo (thread) de ejecución. Un único hilo de control sólo permite que el proceso realice una tarea a la vez (procesador de palabras). Muchos SO han extendido el concepto de proceso para permitir que éste tenga varios hilos de ejecución y a la vez pueda realizar más de una tarea a la vez
  • 9.
    • Su objetivoes tener un proceso en ejecución en todo momento y así Multiprogramación maximizar la utilización de la CPU • Su objetivo es conmutar la CPU entre procesos tan Tiempo frecuentemente que los usuarios puedan interactuar compartido con cada programa que está en ejecución. En un sistema con un solo microprocesador, nunca hay más de un proceso en ejecución. En caso de existir más proceso deberán esperar hasta que la CPU esté libre y puedan volver a planificarse.
  • 10.
    Aquí están todos Cola de los procesos en el trabajos sistema Es una lista en la cual se encuentran los procesos que Cola de residen en la memoria procesos principal listos y en espera de ejecutarse Es la lista de Cola del procesos esperando dispositivo por un dispositivo de E/S particular
  • 11.
    El planificador esun componente funcional muy importante de los sistemas operativos.  Multitarea y multiproceso.  Tiempo real (esencial). El planificador a corto plazo: selecciona procesos y los carga en la memoria para su ejecución. El planificador a largo plazo: selecciona de entre los procesos que están listos para su ejecución, y asigna la CPU a uno de ellos.
  • 12.
    Los procesos puedendescribirse como: Limitados por E/S o Limitados por CPU Limitados por Limitados por E/S CPU Es el que consume mas de su tiempo Es el que genera haciendo solicitudes de E/S operaciones de E/S de manera poco que haciendo frecuente. cálculos. IMPORTANTE Empleando mas Seleccionar una buena mezcla de tiempo en cálculos procesos limitados por E/S y limitados que un proceso limitado por E/S por CPU. Así se obtiene un sistema con mejor desempeño.
  • 13.
    La conmutación decontexto es la tarea de conservar el estado de un proceso anterior y cargar el estado de guardado del nuevo proceso. El contexto de un proceso se representa en su PCB. El valor de los registros Incluye: de la CPU. El estado del proceso. La información sobre administración de la memoria.
  • 14.
    Puede crear variosprocesos nuevos a través de una llamada para la creación de PROCESO procesos. Necesita recursos (tiempo de CPU, memoria, archivos, dispositivos de E/S) Puede ser padre y convertirse en hijo.
  • 15.
    Un proceso concluyecuando termina de ejecutar su declaración final y le pide al sistema que lo borre (exit). CIRCUNSTANCIAS ADICIONALES POR LAS QUE SE PUEDE TERMINAR UN PROCESO Un proceso puede terminar la ejecución de otro proceso por medio de una llamada apropiada al sistema (abort). El hijo se ha excedido en el uso de algunos de los recursos que tiene asignados. Ya no se requiere la tarea asignada al hijo. El padre está saliendo, y el sistema no permite que un hijo continúe si su padre termina.
  • 16.
    Los procesos dentrode un sistema operativo pueden ser independientes o cooperativos. PROCESOS PROCESOS INDEPENDIENTES COOPERATIVOS Un proceso es Un proceso es Compartir información independiente si no puede cooperativo si puede afectar o verse afectado afectar o verse afectado Aceleración de cálculos Existen varias razones para generar Modularidad un ambiente para la cooperación: Conveniencia
  • 17.
    Cuando dos procesosdesean comunicarse requieren enviar y recibir mensajes, para ello debe existir un enlace de comunicación, existen varias formas de implementar enlaces: • Implementación física • Implementación lógica Algunos métodos para la implementación lógicamente de un enlace ya las operaciones send-receive Mensajes de Envió por tamaño fijo o copia o por variable Uso referencia automático o Comunicació explícito de n simétrica o Comunicación los buffers asimétrica directa o indirecta
  • 18.
    Su función espermitir que los procesos se comuniquen entre ellos, sin necesidad de recurrir a datos compartidos. El tamaño de los mensajes enviados por un proceso puede ser fijo o variable. ASIGNACIÓN comunicarse necesitan hacer referencia  Los procesos que desean DE NOMBRES entre ellos.  Para esto pueden usar una comunicación: DIRECTA INDIRECTA
  • 19.
    En la comunicaciónDirecta cada proceso que quiere comunicarse debe nombrar al receptor o emisor de la comunicación. Esto presenta Simetría en el Asimetría en el Direccionamiento Direccionamiento El emisor como el receptor Solo el emisor nombra al nombra a otro para receptor comunicarse
  • 20.
    En la comunicaciónindirecta los mensajes se envían y reciben de buzones o puertos. Cada buzón tiene una identificación única Puede ser propiedad de un proceso o del sistema operativo Cuando un proceso propietario de un buzón termina, el buzón desaparece.
  • 21.
    El paso demensajes puede ser: Con bloqueo Sin (síncrono) bloqueo(asíncrono) Envío sin Recepción •El proceso emisor bloqueo •El receptor se sin bloqueo se bloquea hasta bloquea hasta que que el mensaje e •El emisor envía el haya un mensaje •El receptor recibido por el mensaje y continúa disponible recupera un proceso receptor su operación mensaje válido o un valor nulo Envío con Recepción bloqueo con bloqueo
  • 22.
    Los mensajes intercambiados por los procesos comunicados residen en una cola temporal. Existen tres formas para implementarlas: Capacidad cero: el enlace puede tener mensajes esperando en él. Capacidad limitada: n mensajes pueden residir en ella. Capacidad ilimitada: Cualquier número de mensajes puede esperar en ella.
  • 23.
    Solución al problema:Empleo de paso de mensajes. EJEMPLO DEL PRODUCTOR-CONSUMIDOR Import java.util.*; Public class ColaMensajes { Public ColaMensajes(){ El productor y el consumidor cola=new Vector(); se comunicarán ) //Éste implementa un envío (send) sin bloqueo indirectamente empleando Public void send(Object item){ el buzón compartido. Cola.agregaElemento(item); } El buffer se implementa //Éste implementa una recepción (receive) sin bloqueo usando la clase Public Object receive() { Object item; java.util.vector, lo que significa que habrá un buffer If(cola.tamaño()==0) con apacidad ilimitada. return null; Cuando el productor Else { genera un elemento, coloca item=cola.primerElemento(); ese elmento en el buzón vía cola.removerElementoEn(0); el método send(). return item; } } Private Vector cola; }
  • 24.
    Proceso productor ColaMensajesBuzón; While (true){ Date mensaje= new Date(); Buzon.send(mensaje); } Proceso consumidor ColaMensajes Buzón; While (true){ Date mensaje= (Date) buzon.receive(); if (mensaje !=null) //consumir el mensaje
  • 25.
    EJEMPLO :MATCH (Sistemaoperativo basado en mensajes)  La mayoría de las comunicaciones se realizan mediante mensajes, éstos se envían y reciben desde los llamados puertos.  Cuando se crea cada tarea, también se crean: el buzón kernel y el notify.  Se necesitan tres llamadas al sistema para la transferencia: msg_send, msg_receive. Las llamadas remotas a procedimientos a través de msg_rpc  La llamada al sistema port_allocate crea un nuevo buzón y asigna espacio para su cola de mensajes.(8)  FIFO
  • 26.
    Si el buzón está lleno, el hilo emisor debe:  Esperar hasta que haya espacio  Esperar a lo sumo n milisegundos  No esperar, sino regresar de inmediato  Poner temporalmente el mensaje en una caché. (tareas de servidor El sistema Mach intenta evitar operaciones de copiado doble utilizando técnicas de administración de memoria virtual.
  • 27.
    EJEMPLO: WINDOWS NT  Emplea modularidad.  Proporciona soporte para múltiples ambientes de operación o subsistemas.  Servidor de paso de mensajes: servidor local de llamada a procedimientos. NT emplea dos tipos de puertos: de conexión(proporciona a las aplicaciones una forma para preparar un canal de comunicación) y de comunicación. La comunicación funciona así: o El cliente abre un manejador al objeto puerto de conexión del subsistema o El cliente envía una solicitud de conexión. o El servidor crea dos puertos de comunicación privaos, y devuelve el manejador de uno de ellos al cliente. o El cliente y el servidor emplean el manejador del puerto correspondiente para enviar mensajes o contestar.
  • 28.
    NT emplea tres tipos de técnicas de paso de mensajes:  1. Usa la cola de mensajes  2. Pasa el mensaje a través de un objeto de sección(memoria compartida).  3. Si el servidor decide que las respuestas serán largas, crea un objeto de sección. Desventajas  El rendimiento no es tan bueno  Para aumentar el rendimiento, emplea un tercer método de paso de mensajes. (LCP rápido)