Title: Sistemas operativos
1Sistemas operativos
- Unidad IV.
- Administración de procesos
2Definición de Proceso
- El usuario activa un programa ejecutable
(compilado y enlazado o interpretado) por medio
de una orden especializada tal como EXECUTE, JAVA
o RUN, etc., este comando es una llamada al
sistema operativo. - El sistema operativo responde creando un proceso,
y para identificarlo crea la PCB. - Un proceso es un programa en ejecución junto con
su entorno asociado (registro, variables, áreas
de memoria, archivos, impresora asignada, etc.).
3Clasificación según como retienen los recursos
asignados Apropiativos.Los procesos que al
tener asignado un recurso no permiten que otro
proceso pueda acceder a él hasta que haya dejado
de utilizarlo.No apropiativos.Permiten que otros
procesos puedan acceder a un recurso que esta
siendo utilizado por él (pero no al mismo
tiempo).
Clasificación de los procesos
Existen varias clasificaciones para los procesos
o hilos, a continuación se enumeran algunas
- Según su forma de ejecución
- Residentes. Los procesos que permanecen en
memoria principal todo el tiempo que dure su
ejecución. - Intercambiables.Los procesos que pueden ser
llevados de la memoria principal a disco (memoria
virtual) mientras estan bloqueados.
4Clasificación de los procesos
- Clasificación según los datos que procesan
- Reutilizables
- Cambian los datos que utilizan cada vez que
inician el ciclo de ejecución, comienzan desde su
estado inicial para procesar nuevos datos.
(Ejemplo la mayoría de los sistemas que
conocemos) - Reentrantes
- No tienen datos asociados, solo se conforman de
código puro. Los datos que utilizan se encuentran
dentro del programa en pilas, listas o registros
internos y no pueden ser modificados durante su
uso.
5Procesos e hilos
- Un proceso a su vez se puede subdividir en
funciones y generar sub-procesos a los que se les
denomina procesos hijos, hilos, hebra (thread). - El proceso principal o raíz se le denomina padre,
este incluso puede tener facultades de
administración sobre sus procesos hilos, como
sería el activarlos o suspenderlos. - El proceso padre si requiere varias solicitudes
del mismo tipo (operaciones iguales requeridas
por varios usuarios) puede generar varios hilos
que hagan el mismo proceso para usuarios
diferentes, este concepto se conoce como
multihilo. - En el concepto de multihilo cada hilo es
independiente y actúa sobre sus propios datos y
trabajan a su propio ritmo. Java soporta
computación multihilo
6Operaciones sobre los procesos
- Los S.O. poseen una serie de funciones u
operaciones cuyo objetivo es la de manipular los
procesos. - Crear el proceso.Se produce una llamada al SO, la
orden de ejecución del programa, y el SO responde
generando la PCB, la cual será insertada en la
cola de procesos en espera. - Entorno. A cada proceso se le asignan los
recursos requeridos, como son variables,
buffers, archivos, dispositivos, a esto se le
denomina su entorno. - Entorno heredado . Cada proceso hijo que se crea,
hereda el entorno de ejecución de su padre.
7Operaciones sobre los procesos
- Prioridad. El SO asigna a los procesos la
prioridad de ejecución, esto lo realiza con base
en el algoritmo de planificación que tenga activo
el SO en ese momento, si el algoritmo de
planificación da prioridad a procesos cortos,
estos tendrán prioridad sobre procesos largo
(batch), etc. Normalmente los procesos ingresan
con la más baja prioridad y se ejecutan en el
orden en que fueron llegando. - Cambio de prioridad de un proceso. El SO
contempla comandos para que el operador o
administrador del SO cambie la prioridad asignada
al proceso - Temporizar la ejecución de un proceso. El
adminsitrador del SO puede establecer que se
ejecute un proceso en un día y hora determinada,
quedando encolado en la cola de espera hasta que
se cumpla la condición.. - Despertar un proceso. Desbloquear un proceso que
había sido bloqueado por temporización o
cualquier otra causa - Destruir un proceso. Es la orden de eliminación
del proceso y la PCB. - Suspender un proceso. Paraliza, detiene un
proceso el cual puede ser reanudado después.
8Carga del proceso
- La carga del proceso es la operación de efectuar
una copia del proceso (archivo) o parte de él,
de la unidad de memoria secundaria o auxiliar a
la memoria primaria.
Procesador
Unidad de control
Unidad aritmética y lógica
PC
IR
FR
Buffers
Buffers
MAR
MDR
AC
9PCB
- Un proceso desde el punto de vista del sistema
operativo se representa por medio de su
identificador o PCB (Bloque de Control del
Proceso), la cual contiene la siguiente
información - Estado del proceso. (Program Counter, PC),
prioridad del proceso, modo de ejecución, estado
de los registros internos de la computadora, etc. - Estadística de tiempo y ocupación de recursos.
- Ocupación de memoria interna y externa para el
intercambio (swapping). - Recursos en uso (unidades de entrada/salida).
- Archivos en uso.
- Privilegios. Etc.
10PCB
- El Bloque de control de procesos permite al
sistema operativo - La localización del proceso y la información
sobre este. - Mantener registrados los datos del proceso en
caso de tener que suspender temporalmente su
ejecución o reanudarla.
11Ejemplo de Medidas de Seguridad para el Manejo de
la Información
12Estados del proceso
- El administrador de procesos para controlar la
ejecución de los procesos establece varias colas
de control, denominándolas cola de espera, cola
de listo o preparado, cola de ejecución, cola de
bloqueados y cola de suspendido. - Dependiendo en la cola en donde el administrador
de procesos almacena la PCB, determina el estado
del proceso. - Durante la ejecución del proceso, este pasa por
varios estados denominándose a esto TRANSICIÓN DE
ESTADOS. - Los estados en espera, listo, ejecución y
bloqueado son normales. - El estado suspendido, establece una situación de
problema con la ejecución del proceso.
13Transición de estados
- Inicia insertándose el proceso en la cola de
procesos en espera de ejecución o simplemente en
espera. - Una vez que los recursos que necesita el proceso
están disponibles, el administrador de procesos.
se los asigna al proceso. Cuando el proceso tiene
asignados todos los recursos que necesita pasa la
PCB del proceso a la cola de procesos listos o
preparados. - Cuando el procesador esta inactivo, el
administrador de procesos selecciona la PCB
(proceso) que esta en la cima de la cola de
procesos listos o preparados y le sede el
procesador al proceso. Cambiando el estado del
proceso a ejecución. En computadores con un solo
procesador, solo un proceso puede estar
ejecutando en una instancia de tiempo. - Si el proceso solicita una operación la cual
tenga que utilizar un dispositivo diferente del
procesador, (cualquier dispositivos de
Ent./Sal.), el administrador de procesos. lo pasa
a la cola de procesos Bloqueados, para que el
administrador de dispositivos le asigne el
dispositivo solicitado. - Cuando el proceso esta listo para volver a
utilizar el procesador el administrador de
procesos lo inserta en la cola de procesos listos
o preparados. Repitiéndose todo el ciclo hasta
que termina el proceso.
14Transición normal de estados del proceso
Cola de procesos en espera
Cola de procesos listos o preparado
Cola de procesos en ejecución
Cola de procesos bloqueados
Cola de procesos suspendidos
15Transición de estados
- Paso de estado de espera a listo o preparado. El
Administrador de procesos (AP) asigno al proceso
los recursos que necesita para ejecutarse. - Paso de listo a ejecución. El AP asigno el
procesador al proceso. - Paso de ejecución a bloqueado El AP detecta que
el proceso requiere efectuar operaciones de
Entrada / Salida. - Paso de bloqueado a listo o preparado El AP
detecta que el proceso ha terminado las
operaciones de entrada/salida y requiere utilizar
el procesador nuevamente.
16Transición de estados
- Si el proceso tiene algún problema en la
ejecución, el Administrador de procesos lo encola
en la cola de procesos suspendidos, hasta que se
solucione el problema o hasta que el Sistema
Operativo envié una segunda señal de suspensión
al proceso. Cuando un proceso esta en estado
suspendido y recibe una segunda señal se
suspensión el Administrador de procesos cancela
al proceso.
17Transición de estados
- Paso de estado de listo o preparado a suspendido
El SO detecta que existe algún error que impide
que se le asignen los recursos al proceso. - Paso de ejecución a suspendido. El SO detecta un
problema en la ejecución (uso del procesador) del
proceso. - Paso de bloqueado a suspendido. El SO detecta un
problema en las operaciones de Ent/Sal del
proceso - Si el proceso esta en estado de suspendido y
recibe una segunda orden por parte del SO de
suspensión, el proceso se cancela.
18Transición con problemas de estados de los
procesos
Cola de procesos en espera
Cola de procesos listos o preparado
Cola de procesos en ejecución
Cola de procesos bloqueados
Cola de procesos suspendidos
19Estado de proceso
Sistemas Operativos. Gary Nutt. Ed. Pearson
El diagrama de estados más básico tiene tres
estados listo, ejecución y bloqueado
Sistemas Operativos, Gary Nutt, Ed. Pearson
20Diagrama de estados de UNIX
Bloqueado por una operación de I/O, es igual a
estado de sueño ininterrumpido (uninterruptible
sleeping). Bloqueado por otro recurso, es igual
a estado de dormido (sleeping) Si el proceso
(hilo) esta esperando por alguna orden del
proceso padre, esta en estado traceado o
parado. Si el proceso (hilo) ya termino pero no
ha recibido la orden del proceso padre de liberar
los recursos y después borrarse, esta en estado
Zombi
Sistemas Operativos. Gary Nutt. Ed. Pearson
21Diagrama de estados de un proceso reflejando
control
Sistemas Operativos. Gary Nutt. Ed. Pearson
Un proceso padre puede extender la
responsabilidad de gestionar sus procesos hijos
(hilos). El padre puede activar o suspender a
sus procesos hilos.
22Planificación de los hilos
Sistemas Operativos. Gary Nutt. Ed. Pearson
El planificador
El planificador cambia de estado de un
proceso/hilo de preparado al estado de ejecución,
el distribuidor asigna el procesador al proceso y
el de conmutador de contexto desalojar los
procesos del procesador y sitúa otro en su
lugar.
23Concurrencia
- Variables compartidas. Se establece cuando un
conjunto de procesos tiene acceso a un espacio
común de direcciones (área global). Esta practica
puede conducir a inconsistencias. - Sección critica. Una o mas variables compartidas
por varios procesos. Es una secuencia de
instrucciones con un comienzo y un final
claramente marcados que delimita la actualización
de una o mas variables compartidas. - Debe completar todas las instrucciones incluidas
en ella antes de que se permita a cualquier otro
proceso entrar a la misma sección critica.
24Concurrencia
- Concurrencia Es la existencia de varias
actividades ejecutándose simultáneamente, y se
requieren sincronizar para actuarse
conjuntamente. - Para que dos actividades sean concurrentes deben
tener relación entre si, como puede ser la
cooperación en un trabajo determinado o el uso de
información compartida. - Hace referencia a las actividades, sin importar
el número de procesadores presentes. - Para evitar la concurrencia se puede establecer
un control optimista o pesimista.
25Exclusión Mutua
- Exclusión mutua. Es cuando un solo proceso
impide temporalmente a los demás procesos el uso
de un recurso compartido, con el fin de asegurar
la integridad del sistema. - Asegura que como máximo un proceso a la vez tenga
acceso a una variable durante las sección
critica. - Cuando se comparten dispositivos, la necesidad de
exclusión mutua es más obvia si se considera que
que son muchos los problemas que se generan si se
utilizan sin control.
26Exclusión Mutua
- La exclusión mutua permite que sólo un proceso en
cada punto tenga permitido el control de un
dispositivo reutilizable en serie. - Es inevitable la concurrencia de procesos por eso
es indispensable establecer varias formas para
controlarlo. - Descartar la concurrencia.
- Negociación con todos los procesos existentes.
- Si sólo son dos procesos se utiliza la propuesta
de Dekker, MUTEX1 (acceso por TURNOS(0,1)), solo
un proceso a la vez tiene permitido el acceso.
27Exclusión Mutua
- El MUTEX1 tiene varios problemas
- Se tiene que conocer al proceso competidor, lo
que seria extraordinariamente inconveniente. - Cada proceso asigna explícitamente el turno al
otro. - Solo funciona con dos procesos.
- Para mas procesos se utiliza la propuesta de
Dijkstra llamada de Semáforo. - Para explicar esta propuesta se presenta el
problema de los cinco Filósofos. - La sincronización tiene relacionada una bandera o
semáforo para controlar el acceso al dispositivo
y una cola para controlar los procesos que están
en espera del recurso.
28La estrategia pesimista supone el peor caso
posible. Para defenderse toma medidas que con
frecuencia acaban limitando la concurrencia.
S.O. de propósito General
Control Pesimista
- 1. Bloquea todo aquello que pudiera interferir.
Penaliza a todos los usuarios. - 2. Desbloquea la parte del sistema bloqueado o en
interbloqueo elimando procesos.
29Se basan en la suposición de que lo probable es
que no haya conflictos o que se reduzca su número.
Control Optimista
B.D.
- Una solución optimista puede estructurarse del
modo siguiente - 1. Lee el valor de la variable global y preparar
la actualización local tentativa basada en ese
valor. - 2. Compara el valor actual de la variable global
con el valor utilizado para preparar la
actualización tentativa.
30El problema de los cinco filósofos
- Consideraciones
- Filósofo Funciones pensar y comer.
- Espagueti es muy resbaloso se requieren 2
tenedores para comerlo. - Sólo existen 6 tenedores.
- Filósofo con hambre posee un tenedor e intenta
obtener otro tenedor (ya sea con su mano
izquierda o derecha) Si logra obtener los dos
tenedores,come un rato y después deja los
tenedores para continuar pensando.
Esta propuesta resuelve la sincronización, a
partir de dos estados, el pensar y el comer
31Semáforos y sincronización de procesos
- La sincronización es un conjunto de protocolos y
mecanismos para preservar la integridad y
consistencia del sistema, (se compone de
Semáforos y colas de control) - Los procesos cooperativos deben sincronizarse
unos con otros para utilizar recursos
compartidos, (estructuras de datos, dispositivos
físicos, etc.)
- Un recurso reutilizable sólo puede ser utilizado
por un proceso cada vez. - Los semáforos sencillos pero poderosos aseguran
la exclusión mutua entre procesos, el programador
los puede construir o utilizarlos mediante
llamadas al S.O.
32Sincronización
- En unix el proceso padre se sincroniza con la
actividad de los hijos, esperando a que cada hijo
termine antes de arrancar el siguiente hilo. - En otro caso el padre puede crear al hijo pero no
sincronizarse, en lugar de esto envía a ejecutar
otro hilo.
33Implementación de semáforos
- Un mecanismo de semáforo consta básicamente de
dos operaciones primitivas asignado (SIGNAL) y
espera (WAIT). El semáforo solo puede tomar
valores enteros. El Semáforo solo puede ser
accedida y manipulado por (Signal y Wait). - WAIT (S) Decremento del valor del argumento del
semáforo (Espera el dispositivo esta Asignado u
Ocupado). - SIGNAL(S) Incrementa el valor del argumento del
semáforo, en una operación indivisible (El
dispositivo esta Libre, Disponible por lo tanto
puede ser asignado al proceso que lo require). - Para los semáforos binarios la lógica Wait
debería interpretarse como la espera hasta que la
variable semáforo sea igual a LIBRE, seguido de
su modificación para que indique OCUPADO antes de
devolver el control al invocador. - Wait implementa por tanto la fase de negociación
del protocolo de exclusión mutua y Signal la de
Liberación.
34Relación productor - consumidor
- Productores y consumidores con búfer ilimitado.
- El primer proceso en ejecutarse debe ser un
proceso productor con el fin de proporcionar el
primer dato. - Desde ese momento puede ejecutarse un proceso
consumidor habiendo más de un dato en el búfer,
producido pero aún no consumido. El búfer puede
ser implementado como un vector, una lista
enlazada o cualquier otra colección de datos. - El código del proceso productor refleja esta
situación por la ausencia de operaciones WAIT, se
produce un dato, y es colocado en el búfer, y el
hecho es señalizado por el semáforo general.
35Productores y consumidores con un búfer limitado
- Los procesos consumidores y productores pueden
verse detenidos bajo ciertas circunstancias. - Los productores pueden producir datos sólo
mientras haya espacios vacíos en el búfer para
recibirlos. - Un consumidor sólo puede absorber datos
producidos y debe esperar cuando no hay datos
disponibles. - En cualquier momento particular el búfer global
compartido puede estar vació, parcialmente lleno
o completo con los datos producidos listos para
consumo.
36El problema de lectores y escritores
- Sistema Multiusuario. Dado un universo de
lectores y un universo de escritores que accesan
datos en común es necesario la sincronización
para asegurar la consistencia e integridad de los
datos. - La lógica es esperar que el semáforo binario este
en ESCRIBIR para recibir el permiso y entrar a la
sección critica.
37El problema de lectores y escritores
- Una solución es utilizar una variable ejemplo
NUMLECTORES, para llevar la cuenta de los
lectores que están activamente utilizando el
recurso. - Primer proceso lector (Numlectores 1 uso, -1
deja de usar) si hay un grupo de lectores todos
proceden a leer. Semaforo Lectura - Segundo proceso escritor si hay lectores se
mantendrán en espera. Semáforo Escribir. -
- Cuando el S.O. esta inactivo la disputa será
imparcial, el primero que llegue ocupa el
recurso.
38S.O. Basados en monitores
- Lo que se puede operar con semáforos también
puede ser operado por Monitores.. - Los monitores proporcionan una abstracción de
datos estructural además de controlar la
concurrencia, controlan la naturaleza de las
operaciones realizadas sobre los datos globales,
para prevenir actuaciones dañinas o sin
significado. - Los procesos de usuario no tienen modo de conocer
la organización interna de un monitor. Una vez
depurados no es fácil que el usuario corrompa los
datos globales. - Los monitores encapsulan los datos utilizados por
los procesos concurrentes y permiten su
manipulación por medio de operaciones adecuadas
y sincronizadas. Comunicación y sincronización
entre procesos.
39Monitores
- Un monitor se activa cuando es invocado por un
proceso en ejecución. - Cada monitor se encarga de un grupo pequeño de
recursos en particular . - Una serie de monitores puede coexistir en un S.O.
- Los monitores aumentan la concurrencia y
facilitan el diseño y mantenimiento. - Si un monitor invoca a otro monitor que esta
bloqueado el primero también se bloquea.
Interbloqueos entre monitores
40Recursos
- Un recurso es un elemento que un programa o
procesos puede utilizar en la computadora donde
se esta ejecutando, - Los recursos son concedidos a un proceso
solicitante cuando están disponibles. - Algo que puede ser utilizado por un sólo proceso
en el momento dado. - Para que un proceso pueda utilizar un recurso,
deberá realizar la siguiente secuencia de
operaciones - Solicitar el recurso. Si no estuviera disponible
el proceso, quedará bloqueado hasta que el SO se
lo asigne. - Utilizar el recurso
- Liberar el recurso
- Los recursos de un sistema informático cuya
asignación está sujeta a interbloqueos pueden ser
categorizados en dos clases recursos
reutilizables y recursos consumibles. - Los recursos reutilizables pueden ser utilizados
con seguridad por un sólo proceso como máximo en
una instancia de tiempo, cuando el proceso no
los está ocupando los pone disponibles
temporalmente para que otro proceso pueda hacer
unos de ellos. - Los recursos consumibles son asignados al proceso
y este los retiene desde el momento de iniciar el
proceso hasta su finalización. Durante este
tiempo el recursos permanece en estado de
asignado, por lo tanto no puede ser utilizando
por ningún otro proceso.
41Solicitando todos los recursos antes de comenzar
Sistemas Operativos. Gary Nutt. Ed. Pearson
Liberación de todos los recursos antes de
solicitar más o antes de desaparecer
42Principios de Interbloqueos
- También conocida como embotellamiento.
- Situación donde un grupo de procesos están
permanentemente bloqueados como consecuencia de
que cada proceso ha adquirido un subconjunto de
los recursos necesarios para su operación y esta
en espera de la liberación de los restantes
recursos mantenidos por otros procesos del mismo
grupo.
43Condiciones de interbloqueo
- Interbloqueo es la situación de un conjunto de
procesos en un estado de espera tal que ninguno
de ellos tiene suficientes criterios para
continuar su ejecución. Esto sucede a menudo en
la vida real. - Un conjunto de procesos ha llegado al interbloque
si se cumplen las siguientes condiciones - Exclusión mutua. Recurso exclusivo
- Posesión y espera.
- No apropiación.Liberación de recurso por acción
voluntaria del proceso. - Espera circula. Los procesos forman una cadena de
retención y espera de recursos.
44Postergación indefinida
- Es posible que un determinado proceso quede en
esperando indefinidamente por el recurso deseado,
mientras otros reciben la atención del sistema. - Esto puede surgir en sistemas gestionados por
prioridades ya que un proceso puede quedarse sin
el control del procesador debido a que
continuamente lleguen nuevos procesos de
prioridad más alta.
45Prevención de deadlock
- Prevención de la condición de exclusión mutua.
- Con un Spooling de la salida a la impresora,
varios procesos podrían generar generar la salida
al mismo tiempo. - Prevención de la condición Detenerse y esperar.
- Podemos evitar que los los procesos que conservan
recursos esperan más exigiendo recursos podríamos
eliminar el bloqueo.exigir a todos los procesos
que soliciten todos sus recursos antes de iniciar
su ejecución . Si todo esta disponible, el
proceso tendrá todo lo que necesite y podrá
ejecutarse hasta terminar. Si están ocupados no
podrá signarse recurso alguno y el proceso tendrá
que esperar. - Prevención de la condición de la no apropiación.
- Si un proceso tiene asignada la impresora y se
encuentra a la mitad de la impresión de su
salida, el hecho de quitarle a la fuerza la
impresora puesto que no se dispone de un plotter
es por lo menos difícil, si no es que imposible. - Prevención de la condición de esperar circular.
- La espera circular se puede eliminar disponiendo
de una regla que un proceso sólo está autotrizado
a utilizar un recurso.
46Modelo de estado con espera circular
En un estado de espera circular, cada uno de los
n procesos esta en posesión de un recurso y
solicita otro. Gary Nutt
Estado seguro
Estado inseguro
Estado de interbloqueo
Sistemas Operativos. Gary Nutt. Ed. Pearson
47Otra forma de evitar la espera circular es
mediante una numeración global de todos los
recursos
- Se numeran los dispositivos en función de acuerdo
a como son requeridos de mayor a menor - 1.-Disco Duro maestro
- 2.- Disco duro respaldo
- 3.- Unidad de CD-Rom
- 4.- Impresora
- 5.- Escáner
- 6.- etc.
Los procesos deben solicitar los dispositivos de
acuerdo con su numeración, un proceso no podrá
solicitar un dispositivo con un menor numero al
que tiene asignado.
48Recuperación de deadlock
- Suponiendo que el algoritmo de detección de
bloqueos tiene éxito y detecte el bloqueo. Se
necesita alguna forma de recuperar y lograr que
sistema continúe nuevamente. - Recuperación mediante la apropiación.
- En ciertos casos, podría ser posible tomar un
recurso en forma temporal de su poseedor y
dárselo a otro proceso. - La posibilidad de quitar un recurso a un proceso,
hacer que otro recurso lo utilice y después
regresarlo si que el proceso lo note depende en
gran medida de la naturaleza del recurso.La
recuperación mediante esta vía es difícil o
imposible. - Recuperación mediante rollback.
- La verificación de un proceso indica que su
estado se escribe en un archivo de modo que pueda
volver a iniciar más tarde.El punto de
verificación contiene la imagen de la memoria, el
estado de recurso es decir los recursos
asignados en ese momento al proceso.Los nuevo
puntos de verificación deben escribirse en nuevos
archivos así durante la ejecucuión del proceso
se acumula toda una serie de archivos con puntos
de verificación. - Al detectar un bloqueo , un proceso que posee un
recurso necesario regresa hasta cierto instante
en el tiempo anterior a la adquisición de algún
otro recurso, mediante la inicialización de
alguno de sus anteriores puntos de verificación.
49Recuperación mediante la eliminación de procesos
- La forma más sencilla de romper un bloqueo es
eliminar uno o más procesos. Una posibilidad es
eliminar un proceso del ciclo . - Otra alternativa es elegir un proceso que no este
en el ciclo, para poder liberar sus recursos se
elige con cuidado el proceso por eliminar, como
aquel que posee recursos necesarios para algún
proceso del ciclo. - Cuando sea posible, es mejor eliminar un proceso
que pueda volver a iniciar su ejecución sin
efectos dañino. - Un proceso que actualiza una base de datos no
siempre se puede volver a ejecutar por segunda
vez con seguridad.Si el proceso añade 1 a cierto
registro en esta base de datos, al ejecutarlo una
vez, eliminarlo y volver a ejecutarlo se sumara 2
al registro,lo cual es incorrecto.