Cuestionario 2 ● Abstracción de un programa en ejecución.

Anuncio
Cuestionario 2
1.- ¿Qué es un proceso? ¿Cuáles son los estados de un proceso?
● Abstracción de un programa en ejecución.
● Unidad de programa que actúa como una computadora de propósito particular.
● Asociado a cada proceso existe:
– su espacio de direcciones (una lista de sectores de memoria que el
proceso puede leer y escribir).
● programa ejecutable (segmento de código)
● datos (segmento de datos y heap)
● stack
– el conjunto de valores que poseen los registros del procesador
(posibilitan la ejecución del proceso).
2.- ¿Cuál es la función del planificador de procesos?
Java tiene un Planificador (Scheduler), una lista de procesos, que muestra por
pantalla todos los hilos que se están ejecutando en todos los programas y decide cuáles
deben ejecutarse y cuáles deben encontrarse preparados para su ejecución. Hay dos
características de los hilos que el planificador tiene en cuenta en este proceso de
decisión.
3.- ¿Qué es un time slice?
Una forma bastante justa y extendida de hacerlo es mediante la asignación de
rodajas de tiempo a cada uno de los procesos, de tal forma que cuando un proceso
cumple su tiempo de permanencia en el procesador, éste es desalojado y pasado al
estado listo. En este estado esperará una nueva oportunidad para pasar a Ejecución.
4.- ¿a que se denomina cambio de contexto?
El cambio de contexto es un concepto distinto al cambio de un proceso. Puede
ocurrir un cambio de contexto sin cambiar el estado del proceso que está actualmente en
estado de ejecución. En tal caso, salvar el contexto y restaurarlo posteriormente
involucra un pequeño coste extra. Sin embargo, si el proceso que estaba ejecutándose
tiene que pasar a otro estado (listo o bloqueado), el sistema operativo tiene que llevar a
cabo cambios substanciales en su entorno( contexto ).
5.- ¿Cuáles son los elementos de un proceso?
Creado, listo, ejecución, bloqueado, listo.
6.- ¿Cuáles son los atributos para la administración de procesos?
ID del proceso
Estado del proceso (listo, ejecución, bloqueado, terminado).
Ubicación en memoria.
7.- ¿Cuál seria la disposición en memoria de un proceso?
En un Sistema Operativo tradicional, la memoria suele estar dividida en dos
partes: un espacio de usuario donde suele encontrarse la mayoría de la información
relativa a los procesos de usuario y un espacio del núcleo donde reside el código y las
estructuras de datos propios del SO.
8.- ¿Qué elementos existen en el espacio del usuario y que elementos existen en el
espacio del núcleo ó kernel?
En el espacio de usuario se encuentra información propia del proceso tales como
el código del proceso, el contador de programa, sus variables, su pila y su puntero de
pila. Sin embargo, el SO necesita tener información del estado de los procesos para
poder realizar apropiadamente los cambios de contexto. Esta información, que suele
conocerse con el nombre de bloque de control del proceso (PCB), suele residir en el
espacio del núcleo.
9.- ¿Qué es un hilo y cuales son sus características?
Es como una secuencia de control dentro de un proceso que ejecuta sus
instrucciones de forma independiente.
10.- ¿Cuál es la diferencia principal entre un hilo y un proceso?
Que los procesos son entidades pesadas mientras que los hilos son entidades
ligeras, ya que los procesos consumen muchos recursos de procesador en cada llamada
mientras que los hilos comparten la información del proceso.
11.- ¿Cuáles son los dos niveles de hilos que existen?
Aquellos que nosotros usaremos para programar y que pueden crearse desde
lenguajes de programación como Java y aquellos otros hilos del propio SO que sirven
para dar soporte a nuestros hilos de usuario y que son los hilos del sistema.
12.- ¿Qué son los hilos posix?
Los hilos permiten la ejecución concurrente de varias secuencias de
instrucciones asociadas a diferentes funciones dentro de un mismo proceso
compartiendo un mismo espacio de direcciones y las mismas estructuras de datos del
núcleo. Cuando se quiera escribir código multi-hilo portable, código que funcione bajo
Solaris, FreeBSD, Linux y otros, los hilos POSIX son el camino a seguir.
13.- ¿Cuáles son las formas de implementación de Linux?
El nivel de usuario y el nivel núcleo ó kernel.
14.- ¿Cuáles son las técnicas para hacer la planificación de hilos?
Hay principalmente tres técnicas distintas para hacer la planificación de hilos
sobre los recursos del núcleo (indirectamente sobre las distintas CPU’s).
 Muchos hilos en un procesador lógico (muchos-a-uno).
 Un hilo por procesador lógico (uno a uno).
 Muchos hilos en muchos procesadores lógicos (muchos a muchos).
15.- ¿Qué es un hilo en java y cuales son sus formas de crearlo?
Java proporciona un API para el uso de hilos. Este API es bastante simple
(aproximadamente una veintena de métodos) comparado con otras librerías de hilos
como Posix que alcanza el medio centenar de métodos.
Como prácticamente todo en Java, los hilos se representan mediante una clase, la clase
Thread. Esta clase se encuentra en el paquete java.lang.Thread. Los métodos de esta
clase junto con algunos métodos de la clase Object son los que permiten un manejo
prácticamente completo de hilos en Java.
Existen 2 formas de trabajar con hilos en cuanto a su creación se refiere:
- Heredando de la clase Thread
- Implementando la interfaz Runnable
16.- ¿Cuáles son los estados de un hilo que se manejan en java?
Nuevo, listo, ejecución, bloqueado, dormido, esperando sinchronized, esperar
por wait, terminado.
17.- ¿Como pasa al estado de nuevo un hilo?
A través del operador new.
18.- ¿Cuáles son los niveles de prioridad de un hilo?
Las prioridades de cada hilo en Java están en el rango de 1 (MIN_PRIORITY) a
10 (MAX_PRIORITY). La prioridad de un hilo es inicialmente la misma que la del hilo
que lo creó. Por defecto todo hilo tiene la prioridad 5 (NORM_PRIORITY). El
planificador siempre pondrá en ejecución aquel hilo con mayor prioridad (teniendo en
cuenta lo dicho en el punto anterior) Los hilos de prioridad inferior se ejecutarán cuando
estén bloqueados los de prioridad superior.
19.- ¿Qué es un hilo demonio?
Los hilos de ejecución demonio también se llaman servicios, porque se ejecutan,
normalmente, con prioridad baja y proporcionan un servicio básico a un programa o
programas cuando la actividad de la máquina es reducida.
Descargar