Procesos - Facultad de Ciencias-UCV

Anuncio
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
Procesos
Objetivos:
•
•
•
Estudiar el concepto de proceso y su importancia en el desarrollo de los sistemas
operativos.
Analizar cada uno de los posibles estados por los cuales pasa un proceso así
como también las estructuras que hacen posible la representación de estos
estados.
Estudiar las diferentes formas de comunicación entre procesos
Preguntas:
1.
Discuta la definición de proceso, luego razone: ¿Existe alguna diferencia entre
archivo ejecutable y un proceso?
2.
Nombre y explique las estructuras de datos que mantiene el sistema operativo para
el control de los procesos.
3.
Muchos sistemas operativos reservan un arreglo estático para los descriptores de
proceso (PCB), de modo que existe un número máximo fijo de procesos que pueden
existir en el SO. Proporcione algunos argumentos para justificar que el núcleo no
utilice una estructura dinámica de datos para permitir que exista un número variable
de descriptores de proceso.
4.
El sistema operativo VAX / MVS tiene cuatro modos de acceso al procesador para
facilitar la protección de los recursos del sistema y compartirlos entre los procesos.
El modo de acceso determina:
•
•
•
Privilegios de ejecución de las instrucciones: que instrucciones puede
ejecutar el procesador
Privilegios de acceso a la memoria: a que posiciones de memoria virtual
puede acceder la instrucción en curso
Los cuatro modos son los siguientes:
a. Núcleo: ejecuta el núcleo del sistema operativo VMS, lo que incluye la
gestión de memoria, el tratamiento de interrupciones y las operaciones de
E/S
b. Ejecutivo: ejecuta muchas de las llamadas a servicios del sistema
operativo, incluyendo las rutinas de gestión de archivos y registros
c. Supervisor: ejecuta otros servicios del sistema operativo, como las
respuestas a las órdenes de usuario.
d. Usuario: ejecuta programas de usuario y utilidades como compiladores,
editores y depuradores
Semestre II-2013
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
Un proceso que esté ejecutándose en un modo menos privilegiado tiene que
llamar a menudo a procedimientos que ejecutan en un modo más privilegiado.
Por ejemplo, un programa de usuario solicita un servicio del sistema operativo.
Esta llamada se lleva a cabo mediante una instrucción de cambio de modo,
que provoca una interrupción y transfiere el control a una rutina con un nuevo
modo de acceso.
•
•
5.
Algunos sistemas operativos tienen dos modos, de núcleo y de usuario.
¿Cuáles son las ventajas y desventajas de tener cuatro modos en lugar de dos
¿Se puede encontrar un motivo para tener aún más de cuatro modos?
¿Cuál(es) de los siguientes elementos no forma parte de la imagen del proceso?
Explique detalladamente:
a.
b.
c.
d.
Contador de programa
Tabla de página del proceso
El puntero de posición de un archivo
Puntero de pila
6.
Básicamente un proceso se encuentra en estado de ejecución o en estado de no
ejecución, dependiendo de la disponibilidad del procesador o del estado en el cual
estén los recursos del sistema (Dispositivos de E/S, Archivos, Memoria) ¿Explique
por qué es necesario separar a los procesos en distintos estados (listos,
bloqueados, suspendidos, etc.)?
7.
Se desea mantener el bloque de control de procesos (PCB) en una estructura de
datos denominada tabla de procesos. La tabla tendrá una entrada por cada uno de
los procesos. El pid de cada proceso es un entero entre 0 y <número máximo de
procesos – 1> que proporciona su entrada en la tabla. Una de las entradas
corresponderá siempre a la del proceso en ejecución, y el resto a procesos que
esperan por una u otra causa. Cada entrada de la tabla dispondrá de toda la
información necesaria por el proceso, que supone que es:
Semestre II-2013
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
a.
b.
c.
d.
Dirección inicial del código del proceso.
Número del identificador del proceso (pid).
Un arreglo con el nombre del proceso.
Estado del proceso (ejecución, preparado, suspendido y entrada sin proceso
para una entrada no ocupada por proceso).
e. Prioridad del proceso (0 a 9).
f. Un campo que contiene el estado del proceso que se salvará al hacer el
cambio de contexto, y que contiene:
i. Contador del programa
ii.
El estado del CPU
iii.
El segmento de datos
iv.
El segmento de código
v.
El segmento de pila
vi.
El puntero de pila
g. Un apuntador al PCB del siguiente proceso
Con base a lo anterior se desea que usted plantee un pseudocódigo de alto nivel
para una estructura adecuada del PCB que se ha definido.
8.
Cuando se mueve a un proceso del estado listo al estado de ejecución, cada registro
en la CPU debe establecerse a unos valores iniciales o a los valores que el proceso
tenía cuando fue interrumpido la última vez. Explique porque el valor del registro PC
normalmente es el último registro cargado para el nuevo proceso.
9.
¿Tiene sentido un cambio de estado de bloqueado a bloqueado suspendido? ¿Y de
bloqueado suspendido a bloqueado?
10.
Explique los principales mecanismos de comunicación que ofrecen los sistemas
Operativos mencionando ventajas y desventajas de algunos.
11.
Explique el funcionamiento de fork() y vfork(), mencione diferencias y semejanzas.
12.
Realice un código sencillo donde se utilice y aprovechen las características de la
función fork() y vfork().
13.
¿Puede un sistema con un solo procesador no tener procesos listos ni procesos en
ejecución? ¿Es este un sistema “muerto”
Semestre II-2013
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
14.
Dado el siguiente programa:
void main (int argc, char argv)
{
int i;
for( i =1; i < = argc; i ++ )
fork();
}
Dibuje un esquema de la jerarquía de procesos generada.
15.
Se desea implementar un programa llamado programaSO el cual lea un número
entero de teclado y empiece a escribir por la consola los números consecutivos, del
mismo modo deberá mantenerse leyendo una nueva entrada de un número entero.
Si se lee una nueva entrada el programa deberá parar de imprimir la secuencia y
comenzar a escribir los números consecutivos a partir de ella. El programa deberá
culminar si se lee el numero 0 (cero). Una impresión ejemplo seria:
GDSO
Semestre II-2013
Descargar