Está en la página 1de 14

Capítulo 3 Estructuras de un sistema operativo

2.1 Cual es el propósito de las llamadas de sistema?

R: Las llamadas de sistema permiten a los procesos a nivel de usuario hacer un requerimiento
de servicios del sistema operativo

2.2 Cuales son las 5 principales actividades de un sistema operativos en lo que concierne la
gestión de procesos.

R:

a. La creación y la eliminación de tanto usuario u procesos de sistema


b. La suspensión y la renaudación de procesos
c. La provisión de mecanismos para procesos de sincronización
d. La provisión de mecanismos para el manejo de deadlock

2.3 Cuales son las tres principales actividades de un sistema operativo en lo que concierne el
manejo de memoria.

R.

a. . Mantiene registro de las partes de la memoria que están siendo actualmente


utilizadas.
b. Decide cuales son los procesos que van a ser cargados en la memoria cuando el
espacio de memoria pase a estar disponible.
c. Asigna y des-asigna espacios de memoria a medida que sean necesarios.

2.4 Cuales son las tres principales actividades de un sistema operative concerniendo el manejo
del almacenamiento secundario:

R:

a. Manejo de espacio disponible


b. Asignción de almacenamiento
c. Programación (Scheduling) de disco

2.5 Para qué sirve el interprete de órdenes? ¿Por qué está generalmente separado del núcleo?

R: Lee los comandos desde el usuario desde un archivo de comandos y los ejecuta,
generalmente convirtiéndolos en más de una llamada a sistema. Generalmente no es parte del
kernel debido a que el intérprete de órdenes está sujeto a cambios.

2.9 Liste 5 servicios provistos por el sistema operative. Explique cómo cada uno prove
conveniencia al usuario. Explique también los casos en los cuales sería imposible para los
programas a nivel de usuario proveer estos servicios.
R:

a. Ejecución de programas. EL sistema operativo carga los contenidos (o secciones) de un


archivo en la memoria y comenzar su ejecución. Un programa a nivel usuario no podría
ser confiado para asignar correctamente el tiempo de CPU.
b. Operaciones de E/S Discos, cintas, líneas seriales y otros dispositivos que deben ser
comunicados con un muy bajo nivel. El usuario necesita solamente especificar el
dispositivo y la operación para operar en el, mientras el sistema convierte ese
requerimiento en el dispositivo o en los comandos específicos de controladores.
Programas a nivel de usuario no pueden ser confiados en el acceder solamente a los
dispositivos, estos deberían tener accesos solamente cuando no están en uso.
c. Manipulación de archivos-sistemas. Existen muchos detalles en la creación de
archivos, la eliminación de archivos, asignación y nombrar estos archivos. Estas
acciones los usuarios no deberían realizar. Bloques de espacio de discos son utilizados
por archivos y deberían ser rastreados. Eliminar un archivos requiere remover el
nombre del archivos de información y liberar los bloques asignados. Las protecciones
pertinentes también deben ser revisadas para asegurar un debido acceso a archivos.
Los programas a nivel de usuario no podrían ni asegurar métodos de protección ni
tampoco podrían ser confiados en asignar bloques libres ni tampoco reasignar bloques
de eliminación de archivos.
d. Comunicación: Mensajes que se transmiten entre sistemas requieren que estos
mismos sean convertidos en paquetes de información, enviados desde el controlador
de red, transmitido a través de medios de comunicación y re ensamblados por
sistemas de destinación. La orden de paquetes y datos de corrección pueden tomar
lugar. Nuevamente, programas a nivel de usuario pueden no coordinar el acceso al
dispositvo de red, o bien pueden recibir paquetes destinados para otros propósitos.
e. Detección de errores: La detección de errores ocurre tanto a niveles de hardware y
software. A nivel de hardware, todos los datos transferidos deben ser inspeccionados
para asegurar los que estos datos no hayan sido corrompidos en el tránsito. Todos los
medios de datos deben ser chequeados para asegurarse de que no cambien desde que
estos fueron escritos en el medio. En el nivel de software, los medios deben ser
chequeados para encontrar consistencia de datos, por ejemplo, tanto si los números
de asignación y desasignación de bloques de almacenamiento coincida con el total de
números en el dispositivo. En estos casos, los errores son frecuentemente
independientes del proceso (como por ejemplo la corrupción de datos en un disco),es
por esto que debe existir un programa global (el sistema operativo) que maneja los
tipos de errores. También, por tener errores de procesos por el sistema operativo, los
procesos no deben contener código para captar y corregir todos los posibles errores
en un sistema.

Para qué sirven las llamadas de sistema?

R. Las llamadas de sistema permiten a los procesos a nivel de usuario hacer un requerimiento
de servicios del sistema operativo.
2.11 Cuales son las principales ventajas del enfoque del micro-kernel al sistema?

R: Los beneficios típicamente incluyen:

a. Agregar un nuevo servicio no requiere modificar el kernel.


b. Es más seguro mientras más operaciones se realizan en modo usuario que en modo
Kernel.
c. Un diseño y una funcionabilidad más simple típicamente conlleva a un sistema
operativo más confiable.

¿Por qué algunos sistemas operatvos se almacenan en el sistema de firmware y otros en


discos?

R. Para algunos dispositivos, como celulares, un disco con un sistema de archivos puede no
estar disponible para el dispositivo. En esta situación, el sistemaoperativo debe ser
almacenado en firmware.
Capítulo 4: Procesos

4.1 Varios sistemas operativos de microcomputador populares ofrecen poco o ningún soporte
del procesamiento concurrente. Comente las principales complicaciones que el procesamiento
concurrente añade a un sistema operativo.

R. – Un método de tiempo compartido debe ser implementado para permitir a cada proceso a
tener acceso al sistema. Este método involucra el derecho a prioridad a procesos que no
voluntariamente dejarían de utilizar la CPU (Utilizando llamados a sistema) y el Kernel
volviendo a entrar (Más de un proceso puede estar ejecutando código kernel
concurrentemente)

- procesos y recursos del sistema deben tener protección y deben estar protegidos de cada
uno. Cualquier proceso dado debe estar limitado en la cantidad de memoria que puede usar y
las operaciones que puede realizar en los dispositivos como discos

- Se debe tener cuidado en el kernel para prevenir deadlocks entre procesos, para que los
procesos no estén esperando los recursos asignados entre si.

4.2 Describa las diferencias entre la planificación a corto plazo, mediano plazo y largo plazo.

R.

-Corto plazo (Planificador de CPU (CPU scheduler)- Selecciona desde trabajos en memoria,
aquellos trabajos que están listos para ejecutar, y asigna la CPU a ellos.

-Mediano plazo. Utilizado especialmente con sistemas de tiempo compartido como un


organizador de nivel intermedio. Un esquema de swapping es implementado para renovar
parcialmente programas que estén corriendo en la memoria y reinstaurarlos más tarde para
continuar donde quedaron.

-Largo plazo (Planificador de trabajo (Job Scheduler))- Determina cuales trabajos son llevados a
la memoria para ser procesados.

4.3 Un computador DECSYSTEM-20 tiene múltiples conjuntos de registros. Describa las


acciones de una conmutación de contexto si el contexto nuevo ya está cargado en uno de los
conjuntos de registros. ¿Qué más debe suceder si el contexto nuevo está en la memoria, no en
un conjunto de registro, y todos los conjuntos de registro están ocupados?

R. El registro actual de punteros de la CPU es cambiado para apuntar al set que contenga el
nuevo contexto, el cual toma muy poco tiempo. Si el contexto está en memoria, uno de los
contextos en el set de registros debe estar escogido y movido en la memoria, y el nuevo
contexto debe estar cargado desde la memoria al set. Este proceso lleva más tiempo que en
los sistemas con un solo set de registro, dependiendo en cómo un objetivo a ser reemplazado
es escogido.

4.4 Cite las dos ventajas que tienen os hilos sobre los procesos mútiples ¿Qué desventaja
importante tienen? Sugiera una aplicación que se beneficiaría del uso de hilos, y una que no se
beneficiaría.
R. Los hilos son muy baratos de crear y destruir, además de que utilizan muy pocos recursos
mientras existen. Sin embargo, si utilizan tiempo de CPU, pero no tienen espacios de memoria
completamente separados. Desafortunadamente hilos tienen que “confiar” entre ellos para no
dañar datos compartidos. Por ejemplo, un hilo podría destruir datos que todos los demás hilos
podrían depender, mientras que el mismo no podría ocurrir entre procesos a no ser que haya
utilizado una función del sistema que les permita compartir datos. Cualquier programa que
pueda hacer más de una tarea a la vez podría beneficiarse de la multitarea. Por ejemplo, un
programa que lea dispositivos de entrada, los procese y los “libere” podría tener 3 hilos, uno
para cada tarea. Procesos “de una sola forma de pensar” no podrían beneficiarse de multiples
hilos; por ejemplo, un programa que muestre la hora del día.

4.5 ¿Qué recursos se consumen cuando se crea un hilo? ¿En qué difieren de los que se
consumen cuando se crea un proceso?

R. Un contexto debe ser creado, incluido un registro de un set direcciones de almacenamiento


durante cambios de contexto, y un stack local para registrar los procedimientos de llamada de
argumentos, retornar valores, retornar direcciones y el almacenamiento local de hilos. Un
proceso de creación resulta en memoria siendo asignado para programas de instrucciones y
datos, como también almacenamiento de hilos. El código también puede ser asignado en
memorias asignadas.

4.6 Describa las acciones del núcleo cuando conmuta el contexto

a. Entre hilos

b. Entre procesos.

R.

a. El contexto entre hilos debe ser salvado (Registro y contabilidad en caso de ser apropiado), y
otros contextos de hilos también tienen que ser cargados.

b. Lo mismo que en a, pero también se agrega que el contexto de memoria debe ser
almacenado y el del proceso siguiente debe ser cargado.

4.7 ¿Qué diferencias hay entre los hilos en el nivel de usuario y los apoyados por el núcleo?
¿En qué circunstancias es un tipo “mejor” que el otro?

R. Los hilos a nivel de usuario no tienen soporte del kernel, por lo tanto son muy baratos de
crear, destruir y hacerles “switch”. Sin embargo, si uno se bloquea, todo el proceso se bloquea
también. Los hilos que tienen soporte del kernel son más caros debido a que se necesita una
llamada al sistema para que puedan ser creados y destruidos y el kernel debe programarlos.
Son más poderosos porque son programados y bloqueados individualmente.

4.8 el algoritmo de productores y consumidores correcto que se presentó en la sección 4.4


sólo permite que n-1 buffers estén llenos en cualquier momento. Modifique el algoritmo para
permitir que todos los buffers se aprovechen al máximo.

R. sin respuesta.
Preguntas de repaso:

1. Qué es un proceso?
R. Un programa en ejecución.

2. Qué es PCB? (Ver Figura)

R: Proceso de control de bloqueo. Contiene varias estructuras de datos

3 Haga una lista de algunas de las colas típicas de un sistema.

R. Ready, Run, I/O

4. Cómo son estás colas típicamente implementadas?

R. Colas FIFO, Arboles, Listas enlazadas.

5. Cuantas colas de dispositivos existen en un sistema?

R. Una para cada dispositivo.

6. Qué hace el planificador a largo plazo?

R. Determina qué trabajos pertenecen en la mezcla actual de trabajos que e están ejecutando
y los que están esperando

7. Qué hace el planificador de corto plazo?

R: Determina cual de los trabajos actuales debería correr en la próxima ráfaga de CPU

8. Que planificador debe trabajar muy rápido con el fin de que no se gaste tiempo significante
de la CPU? ¿Cuál puede ser lento?

R. EL que tiene que ser rápido es el de corto plazo, y el que puede ser lento es el de largo
plazo.

9. Cual es el grado de multiprogramación

R. no caché.

10. Cuando se invoca al controlador de largo plazo?


R. Cuando un trabajo es completado, o cuando un grado no se ha alcanzado.

11. Verdadero o falso: El planificador de largo plazo selecciona un grupo de trabajos ligados a
dispositivos de E/S o un grupo de trabajo ligado a la CPU para actividades subsecuentes.
Explique

R. Falso. Se selecciona. Un mix de tareas para utilización eficiente de la máquina.

12. Qué es tiempo compartido? Qué tipo de planificación tiene involucrada?

R. Tiempo compartido es cuando muchos usuarios de forma interactiva usan un sistema


“simultáneamente”, cada usuario tiene una parte del tiempo de CPU, después de que otroas
usuarios hayan conseguido su parte. Utiliza planificación de tiempo medio.

13. Explique el sentido de: “Tiempo compartido depende de la retroalimentación negativo de


usuarios para operaciones rápidas”

R. Usuarios que son impacientes con respuestas de largo tiempo se desconectarán, resultando
en que hayan menos usuarios en el sistema con un tiempo de respuesta mayor.

14. Qué es swapping?

R. Copiar un proceso que está fuera de la memoria a un disco o tambor, permitiendo así que se
desocupe espacio para otros procesos activos. Una vez que el espacio se vuelva a ampliar se
volverán a copiar en la memoria.

15. Qué es el cambio de contexto.

R. EL tiempo que se necesita para cambiar de una tarea a otra.

16. Describa 5 implementaciones del mecanismo de creación de nuevos procesos.

R.

a. Ejecución contínua de los padres.

b. Los padres no se ejecutan hasta que los hijos terminen

c. Padres e hijos comparten todas las variables.

d. Los hijos comparten solamente un subset de variables de los padres.

e. Padres e hijos no comparten recursos en común.

17. Describa el problema productor/consumidor

R. El consumidor no se le permite utilizar un resultado hasta que el productor lo haya creado, y


al productor no se le permite de crear resultados si el buffer está completo.

18. De ejemplos de pares productor/consumidor

R. Compilador/enlazador, enlazador/cargador, lector de tarjetas/Impresora de línea


19. Cómo se implementa un arreglo circular=

R. ni un brillo
Capítulo 5 planificación de CPU

5.1 Un algoritmo de planificación de la CPU determina un orden para la ejecición de sus


proceos. Si hay que planificar n procesos, en un procesador ,¿Cuántos planes distintos puede
haber? Deduzca una fórmula en términos den.

R: n! (n factorial = n × n –1 × n –2 × ... × 2 × 1).

5.2 Defina la diferencia entre planificación expropiativa y no expropiativa. Explique por qué es
poco probable que se use una planificación no expropitiva estricta en un centro de cómputo.

R. PLanificación expropiativa permite al proceso ser interrumpido a la mitad de su ejecución,


sacando la CPU y asignadola a otro proceso. Planificación expropiativa asegura que el proceso
renuncie al control de la CPU solamente cuando ha finalizado con su ráfaga de CPU actual.

5.3 Considere el conjunto de procesos siguiente (la duración de la ráfaga de CPU s en


milisegundos):

Proceso Tiempo de ráfaga Prioridad

P1 10 3

P2 1 1

P3 2 3

P4 1 4

P5 5 2

Se supone que los procesos llegaron en el orden P1,P2, P3, P4, P5 todos en el instante 0.

a. Dibuje cuatro diagramas de Gantt que ilustren la ejecución de estos procesos


empleando planificación FCFS, SJF, una técnica por prioridad no expropiativa (un
número de prioridad más bajo implica una priodidad más alta) y RR (quantum = 1)
b. Calcule el tiempo de retorno para cada proceso con cada uno de los algoritmos de
planificación de la parte a.
c. Calcule el tiempo de espera para cada uno de los algoritmos de planificación de la
parte a.
d. ¿Cuál de los planes de la parte a da pie al tiempo de espera promedio más bajo
(considerando todos los procesos)?
R. Sin respuesta

5.4

5.5
R.

a. En efecto, este proceso tendrá un incremento en su prioridad debido a que al recibir tiempo
más a menudo estará recibiendo un trato preferencial.

b. La ventaja es que a tareas más importantes se le podría asignar más tiempo, en otras
palabras, mayor prioridad en el tratamiento. La consecuencia, desde luego, es que tareas más
pequeñas sufrirán.

c. Asignandole más tiempo a los procesos que merezcan mayorprioridad, en otras palabras,
tener dos o más quantums posibles en la planificación RR

5.6¿Qué ventaja tendría definir quantums de tiempo de diferente tamaña en distitnso niveles
de un sistema de colas multinivel?

R. Procesosque necesiten prestación de servicios frecuentemente, por ejemplo, procesos


interactivos como los editores, pueden estar en una cola con un quantum mayor, requiriendo
menores cambios de contexto para completar su proceso, haciendo así más eficiente el uso del
computador.

5.7 Considere el siguiente algoritmo de planificación por prioridad extrapropiativo basado en


prioridades que cambian dinámicamente. Un número de prioridad mayor implica una
prioridad más alta. Mientras un proceso está esperando la CPU (en la cola de procesos listos,
pero no ejecutándose), su prioridad cambia con una rápidez alfa, cuando se está ejecutnado,
su prioridad cambia con rapidez beta. Todos los procesos reciben una prioridad de 0 cuando
ingresan en la cola de procesos listos. Los parámetros alfa y beta pueden ajustarse para dar
muchos algoritmos de planificación distitnos.

a. Qué algoritmo se obtiene si beta>alfa>0?

b. Qué algoritmo se obtiene si alfa<beta<0?

R:

a. FCFS
b. LIFO

5.8 Muchos algoritmos de planificación de la CPU usan parámetros. Por ejemplo, el algoritmo
RR requiere un parámetro indique la porción de tiempo. Las colas multinivel con
retroalimentación necesitan parámetros que definan el número de colas, los algoritmos de
planificaicón para cada cola, los criterios que se aplican para pasar procesos de una cola a otra,
etcétera.

Por tanto, tales algoritmos son realmente conjuntos de algoritmos (por ejemplo, el conjunto
de algoritmos RR para todas las porciones de tiempo, etc) UN conjunto DE ALGORITMOS
PODRÍA INCLUIR OTRO (Por ejemplo el algoritmo FCFS es el algoritmo RR con un quantum de
tiempo infinito) ¿Qué relación hay (si acaso existe alguna) entre los siguientes pares de
conjuntos de algoritmos?

a. Prioridad y SJF
b. Colas multinivel con realimentación y FCFS
c. Prioridad y FCFS
d. RR y SJF

R.

a. La tarea más corta tiene la mayor prioridad.

b. La tarea de más bajo nivel de MLFQ es FCFS

c. FCFS da la mayor prioridad a la tarea habiendo estado en existencia la mayor parte del
tiempo.

d. Ninguna

5.9 Suponga que un algoritmo de planificación (en el nivel de planificación de la CPU a


corto plazo) favorece los procesos que han consumido la menor cantidad de tiempo de
procesador en el pasado reciente. ¿Por qué este algoritmo favorecería los procesos
limitados por E/S pero sin postergar indifenidamente los programas limintados por CPU?

R.

Favorecerá a los programas ligados a E/S porque las ráfagas de CPU relativamente cortas
solicitadas por estos mismos. Sin embargo, los programas ligados a la CPU no se
desabastecerán porque los programas ligados a E/S renunciarían a la CPU relativamente
temprano para hacer su E/S

5.10 Explique las diferencias en el grado en que los algoritmos de planificación siguientes
discriminan a favor de los procesos cortos:
a. FCFS

b. RR

c. Colas multinivel retroalimentadas.

R.

a. FCFS – Discrimina contra tareas pequeñas debido a que cualquier tarea corta que llegue
después de una larga tendrá una espera de tiempo mayor.

b. RR – Trata a todas las tareas por igual (dándoles el mismo tiempo de ráfagas de CPU)
asique tareas pequeñas podrán irse del sistema más rápido debido a que germinarán
primero.

c. Colas multinivel retroalimentadas- Trabajan de una forma similar que el algoritmo RR –


Discriminan favorablemente para las tareas cortas.

Preguntas de resumen.
1. Qué es una Rafaga de CPU? Qué es una ráfaga de E/S?
- Ráfaga de CPU: Un intervalo de tiempo cuando el un proceos usa solamente la CPU
- Ráfaga E/S: Un intervalo de tiempo donde un proceso usa solamente dispositivos
de E/S
2. Un programa ligado a E/S podría típicamente tener algún tipo de ráfaga de CPU?
R. Pequeño

3. Qué es el Despachador?

R. Determina qué procesos son intercambiados.


Capítulo 6 Sincronización de procesos.

6.1 ¿Qué significa el término espera activa? ¿Qué otros tipos de espera hay en un sistema
operativo? ¿Es posible evitar totalmente la espera activa? Explique su respuesta

R.

- Un proceso está esperando por un evento que ocurra cuando lo hace ejecutando
instrucciones.

- Un proceso está esperando por un evento a ocurrir en alguna cola de espera (por ejemplo
E/S, semáforos) y lo hace sin que la CPU lo haya asignado.

- La espera activa no puede ser evitada totalmente.

6.2 Paja

6.5 En la sección 6.3 mencionamos que la desactivación frecuente de las interrupciones podría
afectar el reloj del sistema. Explique por qué podría suceder esto y cómo podría minimizarse
dicho efecto.

R. La mantención del tiempo (TImekeeping) está usualmente basado en interrumpiciones


generadas por un reloj de cristarl. Fespués de una cantidad definida de oscilaciones, las que
equivalen al pasaje de una cantidad de tiempo, una interrupciuón ocurre y el computador
incrementa su tiempo de almacenamiento. Si la interrupción es desactivada, estos ticks de
reloj pueden ser perdidos, y el valor del tiempo no se incrementaría.

6.6 Demuestre que, si las operaciones espera y señal no se ejecutan atómicamente, podría
violarse la mutua exlcusión.

R.

a. T0. P1 determina que el valor de S = 1

b. T1: p2 determina que el valor de S = 1

c. T2: p1 decrementa S por 1 y entra en la sección crítica

d. T3: p3 decrementa S por 1 y entra en la sección crítica.

6.7

Preguntas de resumen

1. Qué es una sección crítica?


R. Una porción de código en la que solo un proceso a la vez puede ser ejecutado.

2 Cual es problema de la sección círitca?

R: Para diseñar un algoritmo que permita a lo más un proceso en la sección crítica a la vez, sin
deadlock
3 . Por qué los programas tienen sección crítica?

R. Para permitir no másde un proceso a la vez.

4. Haga una lista de las limitaciones Dijkstra situadas en soluciones para elproblema de la
sección crítica.

a. Ejecución simultánea es equivalente a la ejecución secuencial en un orden desconocido.

b. Las velocidades de los procesos son independientes uno de otro.

c. Un procesos en la sección no crítica no puede prevenir a otros procesos de entrar en la


sección crítica.

d. Selección de admitir un proceso en la sección crítica no puede ser indefinidamente


pospuesta.

5 Cuales son los tres requerimientos que debe satisfacer una solución a la sección crítica?

R. Exclusión mutua, progreso (progress), espera ligada (bounded waiting).

6 Qué significa ejecución atómica?

R. Ejecución en grupo, sin un cambio de contexto posible hasta que todos las declaraciones en
el grupo hayan sido completadas.

7. Defina la operación wait- (postopone) y wait(S)

R. Mientras un semáforo está en estado no positivo, wait; cuando un semáforo se pone en


positivo, sustrae uno y se va.

8. Defina la operación wakeup signal(s)

R. Añade 1 al semáforo

9. Suponga que queremos ejecutar instrucciones S1, S2 y S3 en secuencia, pero que S2 no

También podría gustarte