Ronda 1: Ronda de codificación de máquina (1,5 horas)
Me dieron la siguiente declaración del problema y me pidieron que la implementara con cualquier lenguaje de programación. Esperaban que el código fuera de nivel de producción, modular y libre de errores. Después de esto, hubo una ronda de evaluación del código. Probaron el código con todos los casos de esquina y me pidieron que modificara el código para los nuevos requisitos, lo que pude hacer fácilmente.
Programador de trabajos
Un programador de trabajos para programar M trabajos en N subprocesos en una sola máquina. La entrada contiene los siguientes datos:
- Nombre del trabajo
- Duración: tiempo necesario para completar el trabajo
- Prioridad: prioridad del trabajo. P0 > P1 > P2
- Fecha límite: tiempo de caducidad después del cual no se debe ejecutar el trabajo (el reloj comienza desde 0 y la fecha límite es la hora real del reloj)
- UserType: Tipo de usuario que ha iniciado el trabajo, Precedencia de usuarios Raíz > Admin > Usuario
Hay varios algoritmos de programación:
El trabajo más corto primero – SJF
Shortes job first (SJF), es una política de programación que selecciona el proceso de espera con el menor tiempo de ejecución para ejecutar a continuación. En caso de empate escoger el trabajo de acuerdo al siguiente orden-
- Prioridad (el trabajo de mayor prioridad se programa primero)
Primero en llegar Primero en servir -FCFS
Los trabajos se ejecutan por orden de llegada. Tome la entrada ya que el orden de los trabajos debe programarse.
Programación de prioridad fija -FPS
A cada proceso se le asigna una prioridad. El proceso con mayor prioridad se ejecutará primero y así sucesivamente. En caso de empate escoger el trabajo de acuerdo al siguiente orden-
- Tipo de usuario
- Primero el trabajo más largo
Fecha límite más temprana primero – EDF
El siguiente trabajo se buscará sobre la base del trabajo que esté más cerca de su fecha límite. En caso de empate, elegir el trabajo de acuerdo al siguiente orden-
- Prioridad (el trabajo de mayor prioridad se programa primero)
- Duración (el trabajo de menor duración se programa primero) En caso de que no podamos programar un trabajo para que se complete antes de su fecha límite, entonces debe ignorarse.
Se le dará una lista de trabajos (consulte el ejemplo a continuación para ver el formato) y la cantidad de subprocesos como entrada. Se espera que imprima el orden de los trabajos programados para cada algoritmo en cada subproceso como salida.
Ejemplo
Aporte
Threads= 2
Nombre del trabajo | Duración | Prioridad | Plazo | Tipo de usuario |
---|---|---|---|---|
J1 | 10 | P0 | 10 | Raíz |
J2 | 20 | P0 | 40 | Administración |
J 3 | 15 | P2 | 40 | Raíz |
J4 | 30 | P1 | 40 | Usuario |
J5 | 10 | P2 | 30 | Usuario |
Producción
SJF
Thread 1 - J1, J3, J4
Thread 2 - J5, J2
FCFS
Thread 1 - J1, J3, J5
Thread 2 - J2, J4
FPS
Thread 1 - J1, J4, J5
Thread 2 - J2, J3
EDF
Thread 1 - J1, J2
Thread 3 - J5, J4
Ronda 2: Ronda PS-DS (1 hora)
Esta fue una ronda relacionada con la resolución de problemas y las estructuras de datos.
El entrevistador me hizo las siguientes preguntas con código de trabajo.
- En cualquier momento, encuentre el promedio de los números máximos de k de un flujo entrante de números infinitos. Lo resolví usando un montón mínimo de tamaño k y manteniendo una variable de suma para encontrar el promedio. Para cada inserción en min-heap, agregue el elemento a sum y para cada eliminación de min-heap, reste el elemento de sum. Para obtener la suma de retorno promedio / no. de elementos
- Copie el contenido de una pila dada a otra pila en el mismo orden sin usar espacio adicional.
- Problema de atrapamiento de agua de lluvia. https://www.geeksforgeeks.org/trapping-rain-water/
Resolví todos los problemas anteriores y mi entrevistador quedó satisfecho.
Ronda 3: Ronda de gerentes de contratación (1 hora)
El HM tuvo una discusión en profundidad sobre mi último proyecto y las tecnologías que había usado en el proyecto. También me hizo muchas preguntas sobre el comportamiento.
Después de unas semanas recibí la oferta.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA