Practica #1 - Facultad de Ciencias-UCV

Anuncio
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
Introducción a los Sistemas Operativos y Procesos
Objetivos de la práctica:




Describir los principios en los que se basan los Sistemas Operativos para ofrecer
un buen servicio al usuario.
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.
Desarrollo de la práctica:
1. ¿Cuál es el propósito de las llamadas al sistema (System Calls) y cómo dichas
llamadas se relacionan al Sistema Operativo y al concepto de funcionamiento de
modo dual (modo usuario y modo supervisor)?
2. ¿Cuáles son los 3 propósitos principales de un sistema operativo?
3. Explique con ayuda de un diagrama, la gestión de invocación de una llamada al
sistema. (Como por ejemplo Open();)
4. ¿Por qué un programador preferiría usar una API en lugar de invocar las propias
llamadas al sistema?
5. El sistema operativo está formado conceptualmente por tres capas principales
representadas en la figura con los números 3, 4 y 5. Se quiere que complete
dichas capas y las demás partes requeridas de manera que la estructuración por
niveles del sistema operativo representada en la figura sea correcta. Se
proporcionan las siguientes palabras posibles a ubicar:
- Software
- Hardware
- Sistema Operativo
- Microkernel
- Servicios
- E/S
- Shell
- Usuarios
- Middleware
6. ¿Es todo sistema de tiempo compartido multiprogramado? ¿Y viceversa?
7. Discutir si existen ventajas en el uso de sistemas operativos con
multiprogramación, en vez de procesamiento en serie, en un computador dedicado
a servir las necesidades de un único usuario.
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
8. Discuta la definición de proceso, luego razone: ¿Existe alguna diferencia entre
archivo ejecutable y un proceso?
9. Nombre y explique las estructuras de datos que mantiene el sistema operativo
para el control de los procesos.
10. 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.
11. 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
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.


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 aun más de cuatro modos?
12. ¿Cuál(es) de los siguientes elementos no forma parte de la imagen del proceso?
Explique detalladamente:
a. Contador de programa
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
b. Tabla de página del proceso
c. El puntero de posición de un archivo
d. Puntero de pila
13. 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.)?
14. 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:
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.
15. 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.
16. Dibuje el diagrama de estados de un proceso, explique qué ocurre en cada
transición.
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
17. ¿Tiene sentido un cambio de estado de bloqueado a bloqueado suspendido? ¿Y
de bloqueado suspendido a bloqueado?
18. Explique los principales mecanismos de comunicación que ofrecen los sistemas
Operativos mencionando ventajas y desventajas de algunos.
19. Explique el funcionamiento de fork() y vfork(), mencione diferencias y semejanzas.
20. Realice un código sencillo donde se utilice y aprovechen las características de la
función fork() y vfork().
21. ¿Puede un sistema con un solo procesador no tener procesos listos ni procesos
en ejecución? ¿Es este un sistema “muerto”?
22. 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.
23. Escriba un programa en C que permita crear la siguiente estructura de procesos:
24. 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:
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)
Práctica #1
Ejecución por consola.
Explicación de la corrida.
$> programaSO
27
Se lee 27 de entrada.
28
29
30
31
32
5
Se lee 5, la secuencia cambia.
Descargar