Vous êtes sur la page 1sur 10

1. Cules son las funciones del SO?

El sistema operativo hace de intermediario entre el usuario y las


aplicaciones/hardware que utiliza el ordenador, entre sus
funciones cabe destacar: ejecutar los programas del usuario,
hacer que sea ms fcil usar el ordenador y que el ordenador
funcione de forma eficiente.
2. Qu entendemos por proceso?
Es un programa en ejecucin que incluye para su correcta
ejecucin un contador del programa, una imagen de memoria y
el estado del procesador.
3. Define con tus palabras qu es la "Programacin
Concurrente".
Programacin Concurrente es cuando tenemos solo un
procesador y el sistema operativo se encarga de ir cambiando
los procesos tras ejecutarlos durante un periodo corto y da la
sensacin al usuario de que se estn ejecutando varios
procesos a la vez pero todo esto no mejora el tiempo de
ejecucin.
4. Es cierto que cuando un ordenador tiene un solo
microprocesador se pueden ejecutar " a la vez"
diferentes acciones? Por qu? Cmo se llama esta
forma de trabajar?
Si es cierto que cuando un ordenador tiene un solo
microprocesador se pueden ejecutar a la vez diferentes
acciones si este microprocesador tiene varios ncleos en el, ya
que cada ncleo puede ejecutar una instruccin diferente a la
vez, esta forma de trabajar se llama programacin paralela.
5. Cmo ejecuta el SO un programa en un ordenador que
tiene varios procesadores? Cmo se llama esta forma
de trabajar?
Se llama multitarea Real y el sistema operativo ejecuta en cada
procesador un proceso o tarea de forma real y en el caso de que
los procesos o tareas sean mayores al nmero de procesadores
estos pasan a ejecutarse en multitarea preferente. Todos los
sistemas operativos actuales tienen soporte para la multitarea
real.

6. Explica con tus palabras que es la programacin


distribuida.
Un conjunto de ordenadores cada uno con su procesador y su
memoria conectados en red para mejorar el rendimiento al
ejecutar cualquier proceso.

7. Investiga
en
qu
consiste
el
"mecanismo
de
interrupciones" con el que funcionan el SO y el kernel
del procesador.
Consiste en ejecutar un bloque de instrucciones interrumpiendo
la ejecucin del proceso para poder realizar alguna necesidad
urgente del ordenador y despus restablecer el proceso
directamente sin afectarlo. Existen tres tipos de interrupciones:
las interrupciones internas de hardware (generadas por algunos
eventos que surgen durante la ejecucin del proceso), las
interrupciones externas de hardware (generadas por perifricos
o coprocesadores) y las interrupciones de software (generadas
internamente).
8. Cules son los estados por los que puede pasar un
proceso? Explica con tus palabras en qu consiste cada
uno de ellos. Quin se encarga de cambiar de estado
los procesos?
Nuevo: se est creando el proceso todava no est acabado.
Listo: El proceso est acabado pero no est en ejecucin.
En ejecucin: El proceso se encuentra ejecutndose.
Bloqueado: El proceso ha parado debido algn suceso.
Terminado: El proceso ha acabado de ejecutarse.
El sistema operativo se encarga de cambiar el estado de los
procesos.
9. Debido a la programacin concurrente el SO puede
admitir en memoria varios procesos, para ello puede
organizar los datos en forma de "pilas" o "colas". Qu
diferencia hay entre estas dos formas de almacenaje?
Cul es realmente la que utiliza el SO?
En una pila el elemento que entra el ltimo es el primero que
sale y en una cola el primer elemento es el primero que sale. El
sistema operativo utiliza las colas.

10.
Haz un diagrama explicativo de los estados por los
que pasa un proceso utilizando las siguientes palabras:
terminado, listo, bloqueado, nuevo, en ejecucin,
admitido,
E/S,
evento,
finalizacin,
interrupcin,
planificacin.
Nuev
Admitido
o

Interrupcin Listo
En ejecucin

Finalizacin

Evento
Planificacin
E/S

Bloquead
o

Terminad
o

11.
De qu se encarga la "planificacin de procesos a
largo plazo"?
La planificacin de procesos a largo plazo se encarga de decir
que procesos nuevos deben pasar a la cola de procesos
preparados, controla el nivel de la multiprogramacin.
12.
Si en algn momento se crea un nuevo proceso
qu planificacin de proceso se utiliza? Y si se ha
terminado un proceso?
Si se crea un nuevo proceso se utiliza una planificacin a largo
plazo, que selecciona que procesos nuevos son enviados a la
cola de procesos preparados y cuando ha terminado un proceso
este libera su imagen de la memoria llamando al sistema para
indicrselo o tambin puede ser el mismo el que finalice
mediante una excepcin.
13.

Qu es un PID? Para qu se utiliza?

Es un identificador que usa el sistema operativo para identificar


todos los procesos y poder gestionarlos.
14.
Define con tus palabras el significado de "rbol de
procesos". Por qu hay un rbol de procesos?
Un rbol de procesos es la manera que tiene el sistema
operativo de gestionar los procesos y ordenarlos para saber
cual es proceso padre y si tiene cual es su hijo para trabajar
mas fcilmente con ellos. Existe el rbol de procesos para saber
qu proceso ha creado qu proceso
15.
Accede al rbol de procesos de tu ordenador desde
la consola de msdos utilizando el comando "tasklist".
Cul es el proceso 0 del que cuelgan todos los dems?
Pega una imagen del arbol de procesos.
El proceso 0 es el System Idle Process.

16.
Investiga cmo asigna Windows los nmeros PID a
los procesos.
Para asignar el PID el kernel utiliza internamente una variable
global que se incrementa con cada proceso nuevo creado con la
llamada createProcess(), Cuando dicha variable alcanza un

lmite se comienza desde 0 de nuevo teniendo en cuenta que


no se pueden asignar nmeros que ya hayan sido asignados.
17.
Haz un breve resumen de cules son las
operaciones bsicas con procesos. (No incluyas la parte
de programacin en JAVA)
Las operaciones bsicas con procesos serian la creacin de
nuevos proceso que la llamaremos crate, que puede ser un
proceso padre, un proceso hijo o un proceso hijo de un hijo. Otra
funcin bsica seria la espera que es cuando el proceso padre
espera hasta que el hijo termine la ejecucin para poder
comunicar y se puede hacer mediante la operacin wait. Todos
los procesos tienen su espacio en memoria llamado imagen de
memoria y este espacio es independiente. En Windows
podemos crear un proceso nuevo a partir de un programa
distinto al que se ejecuta con la funcin createProcess(), y en
UNIX la funcin es fork(). Los procesos padres e hijos comparten
recursos para intercambiar informacin y esto se desarrolla en
la memoria compartida que es una regin a la que pueden
acceder para compartir dicha informacin. Cuando terminan de
ejecutarse tienen que avisar al sistema operativo para que se
libere los recursos que tenga asignado esto lo hacen mediante
la operacin exit.

18.
Explica cmo se comunican el usuario y un proceso
hijo en JAVA.
En Java el usuario no puede comunicarse directamente con un
proceso hijo sino que todas las salidas y entradas de
informacin tienen que pasar por el proceso padre
redirigindolas hacia el a travs de los siguientes flujos de
datos:
OutPutStream: es el flujo de salida del proceso hijo.
InputStream: es el flujo de entrada del proceso hijo.
ErrorStream: es un flujo de eror del proceso hijo.
Se pueden identificar errores de forma sencilla usando el
mtodo redirectErrorStream(boolean) de la clase ProcessBuilder.
Con estos pasos el proceso padre enva datos al proceso hijo y
el padre recibe los resultados de salida que el hijo genera con
los errors comprobados.

19.
Qu otras formas de comunicacin existen adems
de los flujos de datos? Explcalas brevemente.
Utilizando sockets: un socket es un conector que recibe o
solicita peticiones de conexin.
Usando JNI (Java Native Interface): permite que programas
escritos en Java y ejecutado en la mquina virtual de Java
pueda comunicarse con otros programas escritos en otros
lenguajes.
Utilizando libreras de comunicacin para que puedan aumentan
los mtodos de comunicacin entre procesos.
20.
Para qu se utiliza la operacin "wait"? Cmo
funciona?
Se utiliza cuando el proceso padre necesita esperar a que el
proceso hijo termine para que el proceso padre pueda continuar
con su ejecucin con los datos obtenidos del proceso hijo.
El proceso padre espera bloqueado mediante waitFor() hasta
que el proceso hijo finalice e inmediatamente vuelve a
ejecutarse el padre, el proceso hijo puede ser interrumpido con
la interrupcin InterruptedException. Tambin se puede usar
exitValue(), con esto obtenemos el valor de retorno que el
proceso hijo a devuelto. Si el proceso hijo no ha terminado se
lanza la excepcion Ille
21.
Explica con tus palabras cules son las fases que
deben seguirse para crear un programa multiproceso.
Primero hay que identificar todas las funciones que tiene que
hacer la aplicacin y las relaciones que tienen entre ellas, luego
hay que distribuir las diferentes funciones identificadas
anteriormente en procesos y como se van a comunicar entre
ellos de la manera ms eficiente posible y por ultimo
implementar todo.
22.
Para finalizar escribe un texto "coherente" en el
que resumas toda la informacin recabada al contestar
las preguntas.
Para empezar tenemos que saber que el sistema operativo hace
de intermediario entre el usuario y las aplicaciones/hardware
que utiliza el ordenador, entre sus funciones cabe destacar:
ejecutar los programas del usuario, hacer que sea ms fcil
usar el ordenador y que el ordenador funcione de forma
eficiente. Y tambin es muy importante saber que un proceso

es un programa en ejecucin que incluye para su correcta


ejecucin un contador del programa, una imagen de memoria y
el estado del procesador.
Otra parte importante es la "Programacion Concurrente" que la
definiramos como cuando tenemos solo un procesador y el
sistema operativo se encarga de ir cambiando los procesos tras
ejecutarlos durante un periodo corto y da la sensacin al
usuario de que se estn ejecutando varios procesos a la vez
pero todo esto no mejora el tiempo de ejecucin.
Cuando tenemos un ordenador que tiene un solo
microprocesador puede ejecutar a la vez diferentes acciones si
tiene varios ncleos en l, por qu cada ncleo puede ejecutar
una instruccin diferente a la vez, esta forma de trabajar se
llama programacin paralela. Otra cosa es si un sistema
operativo tiene varios procesadores ya que esto se llamara
multitarea Real y se realiza cuando sistema operativo ejecuta
en cada procesador un proceso o tarea de forma real y en el
caso de que los procesos o tareas sean mayores al nmero de
procesadores estos pasan a ejecutarse en multitarea
preferente. Actualmente todos los sistemas operativos actuales
tienen soporte para la multitarea real.
La programacin distribuida es un conjunto de ordenadores
cada uno con su procesador y su memoria conectados en red
para mejorar el rendimiento al ejecutar cualquier proceso.
Tambin conviene saber que el mecanismo de interrupciones
consiste en ejecutar un bloque de instrucciones interrumpiendo
la ejecucin del proceso para poder realizar alguna necesidad
urgente del ordenador y despus restablecer el proceso
directamente sin afectarlo. Existen tres tipos de interrupciones:
las interrupciones internas de hardware (generadas por algunos
eventos que surgen durante la ejecucin del proceso), las
interrupciones externas de hardware (generadas por perifricos
o coprocesadores) y las interrupciones de software (generadas
internamente).
Un proceso puede tener muchos estados que son:
Nuevo: se est creando el proceso todava no est
acabado.
Listo: El proceso est acabado pero no est en ejecucin.
En ejecucin: El proceso se encuentra ejecutndose.
Bloqueado: El proceso ha parado debido algn suceso.

Terminado: El proceso ha acabado de ejecutarse.

El sistema operativo se encarga de cambiar el estado de los


procesos.
Gracias a la programacin concurrente el SO puede admitir en
memoria varios procesos y los organiza en forma de cola ya que
el primero que entra es el primero que sale y en una pila el que
entra el ultimo es el primero que sale.
Tenemos una planificacin de procesos a largo plazo que se
encarga de de decir que procesos nuevos deben pasar a la cola
de procesos preparados y que
controla el nivel de la
multiprogramacin.
Si en un momento determinado se crea un proceso se utiliza
una planificacin a largo plazo ya que selecciona que procesos
nuevos son enviados a la cola de
procesos preparados y cuando ha terminado un proceso este
libera su imagen de la memoria llamando al sistema para
indicrselo o tambin puede ser el mismo el que finalice
mediante una excepcin. Y se usan unos identificadores de
procesos llamados PID para que el sistema operativo pueda
identificar y gestionar mejor los procesos. Hablando de
gestionar los procesos el SO utiliza un rbol de procesos ya que
es la manera mediante la que gestiona y ordena los procesos
para saber cul es proceso padre y si tiene cul es su hijo para
trabajar ms fcilmente con ellos. Existe el rbol de procesos
para saber qu proceso ha creado qu proceso. Como
curiosidad el proceso 0 es el System Idle Process.
Windows para asignar el PID a los procesos utiliza internamente
una variable global que se incrementa con cada proceso nuevo
creado con la llamada
createProcess(), Cuando dicha variable alcanza un lmite se
comienza desde 0 de nuevo teniendo en cuenta que no se
pueden asignar nmeros que ya hayan sido asignados.
Para resumir las operaciones bsicas con procesos y sin entrar
en la parte de Java se podra decir que Las operaciones bsicas
con procesos serian la creacin de nuevos proceso que la
llamaremos crate, que puede ser un proceso padre, un proceso
hijo o un proceso hijo de un hijo. Otra funcin bsica seria la
espera que es cuando el proceso padre espera hasta que el hijo
termine la ejecucin para poder comunicar y se puede hacer

mediante la operacin wait. Todos los procesos tienen su


espacio en memoria llamado imagen de memoria y este
espacio es independiente. En Windows podemos crear un
proceso nuevo a partir de un programa distinto al que se
ejecuta con la funcin createProcess(), y en UNIX la funcin es
fork(). Los procesos padres e hijos comparten recursos para
intercambiar informacin y esto se desarrolla en la memoria
compartida que es una regin a la que pueden acceder para
compartir dicha informacin. Cuando terminan de ejecutarse
tienen que avisar al sistema operativo para que se libere los
recursos que tenga asignado esto lo hacen mediante la
operacin exit.
La comunicacion entre el usuario y un proceso hijo en Java es
diferente ya que el usuario no puede comunicarse directamente
con un proceso hijo sino que todas las salidas y entradas de
informacin tienen que pasar por el proceso padre
redirigindolas hacia el a travs de los siguientes flujos de
datos:
OutPutStream: es el flujo de salida del proceso hijo.
InputStream: es el flujo de entrada del proceso hijo.
ErrorStream: es un flujo de eror del proceso hijo.
Se pueden identificar errores de forma sencilla usando el
mtodo redirectErrorStream(boolean) de la clase ProcessBuilder.
Con estos pasos el proceso padre enva datos al proceso hijo y
el padre recibe los resultados de salida que el hijo genera con
los errors comprobados.
Otras formas de comunicacin a parte de los flujos de datos
son:
Utilizando sockets: un socket es un conector que recibe o
solicita peticiones de conexin.
Usando JNI (Java Native Interface): permite que
programas escritos en Java y ejecutado en la mquina
virtual de Java pueda comunicarse con otros programas
escritos en otros lenguajes.
Utilizando libreras de comunicacin para que puedan
aumentan los mtodos de comunicacin entre procesos.
Anteriormente he mencionado la operacion wait que se utiliza
cuando el proceso padre necesita esperar a que el proceso hijo
termine para que el proceso padre pueda continuar con su
ejecucin con los datos obtenidos del proceso hijo. El proceso

padre espera bloqueado mediante waitFor() hasta que el


proceso hijo finalice e inmediatamente vuelve a ejecutarse el
padre, el proceso hijo puede ser interrumpido con la
interrupcin InterruptedException. Tambin se puede usar
exitValue(), con esto obtenemos el valor de retorno que el
proceso hijo a devuelto. Si el proceso hijo no ha terminado se
lanza la excepcion Ille.
Y para finalizar explicare las fases que deben seguirse para
crear un programa multiproceso. Primero hay que identificar
todas las funciones que tiene que
hacer la aplicacin y las relaciones que tienen entre ellas, luego
hay que distribuir las diferentes funciones identificadas
anteriormente en procesos y
como se van a comunicar entre ellos de la manera ms
eficiente posible y por ultimo implementar todo.

Vous aimerez peut-être aussi