domingo, 5 de mayo de 2013

Hilos (parte 2) - MVA - Microsoft Virtual Academy - Desarrollo en Microsoft Visual Studio - Módulo 32 de 44 - Avanzado



Nota:
  • La solución de las siguientes preguntas pueden ayudarte a aprobar el módulo, siempre y cuando sean las mismas que me mostraron. 
  • Dos asteriscos (**) significa Alternativa Correcta. 
  • Alternativas sin marcar significa que me equivoque en la respuesta, por consiguiente depende únicamente de tu conocimiento. Si logras identificar la alternativa correcta compártela en este Sitio Web y si te tocan nuevas preguntas también. Gracias! 

Hilos (parte 2)

1. En equipos con varios núcleos, en que los períodos de tiempo de espera deben ser breves y en que la contención es mínima, se recomienda utilizar __________

ReaderWriterLockSlim
Mutex
Monitor
SemaphoreSlim
**SpinLock 


2. El multithreading resuelve problemas de rendimiento y de capacidad de respuesta, pero al hacerlo también crea nuevos problemas, como _______________ y ______________

Consumo de memoria
**Interbloqueos
Recalentamiento de la CPU
**Condiciones de carrera
Costo de hardware


3. Un interbloqueo tiene lugar cuando

el número de CPUs (o cores) es excedido por el número de threads en ejecución
cuando un recurso queda bloqueado por un thread que ya no existe pues la aplicación se ha cerrado abruptamente
**dos threads intentan bloquear un recurso que ya ha bloqueado uno de estos threads
dos threads han bloqueado un recursos que ya ha sido bloqueado por uno de estos threads 
dos recursos son accedidos por el mismo thread en el mismo instante 


4. La planificación de los threads esta relacionada directamente con la cantidad de lineas por segundo generadas por un programador

TRUE
FALSE
NO APLICA


5. Ejecutar el programa muchas veces genera distintos resultados y no es posible predecir el resultado de una ejecución específica. Es un caso sospechoso de sufrir

Dead Lock
**Condición de carrera
Ataque de números aleatorios
Semilla aleatoria en metástasis
Condición de carrera interbloqueada 


6. Cuando se requiere trabajar en conjunto con elementos visuales con mayor eficiencia aunque a expensas de la complejidad del código se recomienda utilizar este Timer

System.Windows.Forms.Timer
**System.Timers.Timer
System.Timers.ReverseClock
System.Threading.FastClock 
System.Threading.Timer 


7. Solo se debe utilizar _____________ si medienta el perfilado de código se ha determinado que el uso de __________ esta causando problemas de velocidad

SpinLock, SpinWait
**SpinLock, Monitor
Monitor, SpinLock
SpinLock, Mutex 
Mutex, SpinLock 


Espero haber ayudado en algo. Hasta la próxima oportunidad!






44 comentarios:

  1. Se puede cambiar el tamaño inicial de la pila (stack) de un Thread
    **TRUE
    FALSE
    NO APLICA

    La planificación de los threads esta relacionada directamente con la cantidad de lineas por segundo generadas por un programador
    TRUE
    FALSE
    **NO APLICA

    Un ThreadId del sistema operativo no tiene relación fija con un Thread administrado
    **TRUE
    FALSE
    NO APLICA


    ________ es un primitiva de sincronización definida por el usuario que permite que varios subprocesos (denominados participantes) trabajar simultáneamente en un algoritmo en fases

    Barrier
    SpinLock
    SpinWait
    InterLocked
    SemaphoreSlim

    Un Thread del sistema opertivo puede estar asociado a 1 o N Threads administrados
    **TRUE
    FALSE
    NO APLICA


    ________es un tipo de sincronización ligero que se puede utilizar en escenarios de bajo nivel para evitar los costosos cambios de contexto y las transiciones del kernel que se requieren para los eventos de kernel
    **SpinWait
    SpinWaitSlim
    SpinLockSlim
    SpinLock
    WaitSpin

    Admite semáforos con nombre

    **a. Semaphore
    b. SemaphoreSlim
    c. a y b
    d. Ninguno de los anteriores

    De estos métodos es el único que no tiene afinidad entre threads, por lo cual un thread puede adquirir un recurso, pero otro thread es el que fuerza su liberación
    Semaphore
    ReaderWriterLockSlim
    WaitHandle
    Monitor
    Mutex

    Las siguiente funcionalidades estan marcadas como obsoletas
    Thread.GetNamedDataSlot
    **Thread.Suspend
    Thread.Dispose
    **Thread.Resume
    **Thread.SetCompressedStack

    El tejido como producto textil es el resultado de tejer hilos (threads) y filamentos (Fibers)
    TRUE
    **FALSE
    No aplica

    ResponderEliminar
    Respuestas
    1. Hola Victor Contreras, gracias por la visita y el aporte de tus conocimientos!!
      Estoy seguro que muchos compartirán mi sensación muy grata, por saber que dedicaste algo de tu tiempo para compartir nueva información.
      Éxitos!! Hasta cualquier momento!!

      Eliminar
    2. Hola Anónimo, gracias por la visita y el aporte de tu comentario!
      ¿De qué pregunta?
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  2. La instrucción lock (C#) o la instruccioón SyncLock Me (VB) son otra manera de hacer uso de la clase
    Interlocked
    (NO) ThreadLock
    WaitHandle
    Semaphore
    Monitor

    El modelo asincrónico basado en eventos es un conjunto de
    a. APIS
    b. Interfaces
    c. Buenas Prácticas
    (NO) d. a y c
    e. b y c

    Existen en el Framework
    ** ReaderWriterLockSlim
    ** ReaderWriterLock
    ReaderWriterSlimLock
    ReaderSlimWriterLock
    ReaderAnyWriterOnlyLock

    La instrucción de la API de Windows ExitThread equivale a este método del .Net Framework
    Thread.ForceExit
    ** Ningún equivalente
    Thread.Abort
    Thread.Suspend
    Thread.Close

    ResponderEliminar
    Respuestas
    1. Hola Juan Pablo Strelczuk, gracias por la visita y el aporte de tus conocimientos.
      Es grato saber que tomaste algo de tu tiempo para compartir nuevas preguntas.
      Los mejores deseos!! Hasta cualquier momento!

      Eliminar
    2. La instrucción lock (C#) o la instruccioón SyncLock Me (VB) son otra manera de hacer uso de la clase
      (NO)Interlocked

      Eliminar
    3. Hola Anónimo, gracias por la visita y el aporte de tus conocimientos.
      Éxitos!! Hasta cualquier instante!

      Eliminar
  3. WaitHandle es una clase abstracta, algunas de las clases que heredan de ella son:

    Mutex

    EventWaitHandle
    AutoResetEvent
    ManualResetEvent
    ManagedWaitHandle

    En .Net Framework ___ y _____ proporcionan una API que reduce parte de la complejidad y los riesgos que entraña la programación multiproceso.

    **TPL
    TLP
    TCL
    **PLINQ
    LINQP

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, gracias por la visita y el aporte de tus conocimientos.
      Los mejores deseos!! Hasta cualquier momento!

      Eliminar
  4. Para sincronizar las actividades de varios threads no se recomienda utilizar

    Thread.Suspend

    Mutex

    ManualResetEvent

    Thread.Resume

    Monitor

    AutoResetEvent

    ResponderEliminar
    Respuestas
    1. Hola GDV 2014, gracias por la visita y el aporte de una nueva pregunta.
      Éxitos!! Hasta cualquier instante!

      Eliminar
  5. Para sincronizar las actividades de varios threads no se recomienda utilizar

    Thread.Suspend

    Mutex

    ** ManualResetEvent

    Thread.Resume

    Monitor

    AutoResetEvent

    ResponderEliminar
    Respuestas
    1. Hola Luis Hermogenes Ochoa Buitrago, gracias por la visita y el aporte de tus conocimientos.
      Los mejores deseos!! Hasta cualquier momento!

      Eliminar
    2. Hola Anónimo, gracias por la visita y el aporte de tu comentario.
      Espero que los demás visitantes apoyen tu propuesta!
      Éxitos!! Hasta cualquier instante!!

      Eliminar
  6. Es una clase utilitaria util para evitar condiciones de carrera
    AtomicLocked
    *Interlocked
    LockedMath
    Intercorelocked
    Overlocked


    Del contenido relacionado con la clase Mutex se puede establecer
    **Mutex es más pesado que Monitor pero permite establecer control de acceso a recursos más allá del proceso local
    Mutex es obsoleto, en su lugar siempre se debe hacer uso de Monitor
    Mutex y Monitor son lo mismo solo que uno hace uso de APIS en Modo Kernel y otro en Modo Usuario
    Mutex y Monitor no son lo mismo por que uno hace uso de APIS en Modo Kernel y otro en Modo Usuario
    Monitor es más pesado que Mutex pero permite establecer control de acceso a recursos más allá del proceso local


    Para evitar interbloqueos cuando se usa Barrier se debe hacer uso de ________________ a fin de especificar un tiempo de espera y token de cancelación

    BarrierPostPhaseException
    **SignalAndWait
    AddParticipant
    RemoveParticipant
    ContinueWhenAll

    La planificación de los threads puede variar de un sistema operativo a otro
    **TRUE
    FALSE
    NO APLICA

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, gracias por la visita y el aporte de tus conocimientos.
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  7. Un Thread administrado puede estar asociado a 1 o N Threads del sistema operativo

    TRUE

    FALSE

    NO APLICA

    La clase _______________ habilita a varios subprocesos para leer un recurso de forma simultánea, aunque para escribir en el recurso, el subproceso debe esperar a un bloqueo exclusivo.
    "

    Interlocked

    Mutex

    Monitor

    ReaderWriterLockSlim

    ReaderAndWriterLockSlim

    Se puede cambiar el tamaño inicial de la pila (stack) de un Thread

    TRUE

    FALSE

    NO APLICA

    ResponderEliminar
    Respuestas
    1. Hola Andres Florez, gracias por la visita y el aporte de nuevas preguntas.
      Éxitos!! Hasta cualquier instante!!

      Eliminar
  8. Usar llamandas sincronas para optimizar el desempeño:

    Se deben evitar siempre

    Se deben usar siempre

    Solo deben usarse cuando realmente se requiera

    Solo deben usarse cuando se disponga de múltiples CPU

    Solo deben usarse cuando se disponga de múltiples Cores x CPU

    ResponderEliminar
    Respuestas
    1. Hola Andres Florez, gracias por la visita y el aporte de una nueva pregunta!.
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  9. WaitForSingleObject, de la API de Windows, equivale a este método del .Net Framework

    TreadPool.WaitForSingleThread

    *** Thread.Join

    Thread.WaitForSingleObject

    ThreadPool.JoinThreadObject

    Thread.Wait

    "La clase _______________ habilita a varios subprocesos para leer un recurso de forma simultánea, aunque para escribir en el recurso, el subproceso debe esperar a un bloqueo exclusivo.
    "

    Interlocked

    Mutex

    Monitor

    *** ReaderWriterLockSlim

    ReaderAndWriterLockSlim

    Usar llamandas sincronas para optimizar el desempeño:

    Se deben evitar siempre

    Se deben usar siempre

    **** Solo deben usarse cuando realmente se requiera

    Solo deben usarse cuando se disponga de múltiples CPU

    Solo deben usarse cuando se disponga de múltiples Cores x CPU

    Son delegados usados para la inicialización de threads

    **** ThreadStart

    UnParameterizedThreadStart

    StartThreadObject

    StartParametrizedThreadObject

    **** ParameterizedThreadStart

    ResponderEliminar
    Respuestas
    1. Hola Andres Florez, gracias por la visita y el aporte de tus conocimientos!.
      Genial aporte! Es agradable saber que tomaste algo de tu tiempo para compartirlo con los visitantes!

      Éxitos!! Hasta cualquier instante!!

      Eliminar
  10. La diferencia entre ReaderWriterLockSlim y ReaderWriterLock
    A.ReaderWriterLock es obsoleta y fue reemplazada por ReaderWriterLockSlim
    **B.La primera tiene reglas simplificadas para la recursividad y para actualizar y degradar el estado del bloqueo, la segunda tiene funcionalidades similares pero no esta tan optimizada
    C.ReaderWriterLockSim es obsoleta y fue reemplazada por ReaderWriterLock
    D.La primera es para mini Framework la segunda para Framework normal
    E.No hay diferencia se conservan ambas por temas de compatibilidad.

    ResponderEliminar
    Respuestas
    1. Hola Rangers Jair, gracias por la visita y el aporte de tus conocimientos!
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  11. 3. Una condición de carrera es un error que se produce cuando

    RTA: el resultado de un programa depende del primero de dos o más threads que consiga llegar hasta una frecuencia específica del procesador

    ResponderEliminar
    Respuestas
    1. Hola JRojas, gracias por la visita y el aporte de tus conocimientos!.
      Éxitos!! Hasta cualquier instante!!

      Eliminar
  12. 4. Es conveniente utilizar este Timer cuando se deben modificar objetos de UI ya que se ejecuta en el mismo thread

    RTA: System.Windows.Forms.Timer

    ResponderEliminar
    Respuestas
    1. Hola JRojas, gracias por la visita y el aporte de tus conocimientos!
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  13. 2. Para sincronizar las actividades de varios threads no se recomienda utilizar

    RTA: Thread.Suspend
    Thread.Resume

    ResponderEliminar
    Respuestas
    1. Hola JRojas, gracias por la visita y el aporte de tus conocimientos!.
      Éxitos!! Hasta cualquier instante!!

      Eliminar
  14. 2. Condición de carrera interbloqueada
    A. Thread.Start
    B. Thread.Sleep
    C. Thread.Abort **
    D. Thread.Close
    E. Thread.Dispose

    ResponderEliminar
    Respuestas
    1. Hola Gilber Gabriel Guerrero Rodriguez, gracias por la visita y el aporte de tus conocimientos!
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  15. 3. Se puede optimizar el ThreadPool de ASP.NET para reducir la contención genreada por la exesiva creación de hilos?
    A. TRUE **
    B. NO APLICA
    C. FALSE

    ResponderEliminar
    Respuestas
    1. Hola Gilber Gabriel Guerrero Rodriguez, gracias por la visita y el aporte de tus conocimientos!.
      Éxitos!! Hasta cualquier instante!!

      Eliminar
  16. Es recomendable evitar crear Threads por demanda (por request) y Favorecer el uso de Threads desde el ThreadPool
    A. False
    B. True **

    ResponderEliminar
    Respuestas
    1. Hola Gilber Gabriel Guerrero Rodriguez, gracias por la visita y el aporte de tus conocimientos!
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  17. 7. Un Thread administrado puede estar asociado a 1 o N Threads del sistema operativo
    A. FALSE
    B. TRUE **

    ResponderEliminar
    Respuestas
    1. Hola Gilber Gabriel Guerrero Rodriguez, gracias por la visita y el aporte de tus conocimientos!.
      Éxitos!! Hasta cualquier instante!!

      Eliminar
  18. La planificación de threads en el .net Framework es realizada por
    A. El sistema operativo **
    B. El programador
    C. El servicio svhost.exe
    D. El CLR
    E. El driver msvcsMulticore.dll

    ResponderEliminar
    Respuestas
    1. Hola Gilber Gabriel Guerrero Rodriguez, gracias por la visita y el aporte de tus conocimientos!
      Los mejores deseos! Hasta cualquier momento!

      Eliminar
  19. El modelo asincrónico basado en eventos es un conjunto de
    A. Interfaces

    B. a y c

    C. Buenas Prácticas xxxxxxxxxxxxxxx

    D. APIS

    E. b y c

    ResponderEliminar
    Respuestas
    1. Hola Vanessa Flores, gracias por la visita y confirmar la pregunta!.
      Éxitos!! Hasta cualquier instante!!

      Eliminar