S.O. Preguntas y Respuestas
S.O. Preguntas y Respuestas
S.O. Preguntas y Respuestas
-introduccion
1.1 ¿Cuáles son los tres propósitos principales de un sistema operativo?
Los tres puropses principales son:
• Proporcionar un entorno para que un usuario de una computadora ejecute programas en
hardware de una manera conveniente y eficiente.
• Asignar los recursos separados de la computadora según sea necesario para resolver el
problema dado. El proceso de asignación debe ser lo más justo y eficiente posible.
• Como programa de control, cumple dos funciones principales: (1) la supervisión de la ejecución
de los programas del usuario para evitar errores y el uso inadecuado de la computadora, y (2) la
administración de la operación y el control de los dispositivos de E / S.
1.2 Hemos enfatizado la necesidad de un sistema operativo para hacer un uso eficiente del hardware de
computación. ¿Cuándo es apropiado que el sistema operativo abandone este principio y "desperdicie"
recursos? ¿Por qué un sistema así no es realmente inútil?
Los sistemas de un solo usuario deben maximizar el uso del sistema para el usuario. Una GUI
podría "desperdiciar" ciclos de CPU, pero optimiza la interacción del usuario
con el sistema.
1.3 ¿Cuál es la principal dificultad que debe superar un programador al escribir un sistema operativo para
un entorno en tiempo real?
La principal dificultad es mantener el sistema operativo dentro de los límites de tiempo fijos de
un sistema en tiempo real. Si el sistema no completa una tarea en un período de tiempo
determinado, puede causar un desglose de todo el sistema que se está ejecutando. Por lo tanto,
al escribir un sistema operativo para un sistema en tiempo real, el escritor debe asegurarse de
que sus esquemas de programación no permitan que el tiempo de respuesta exceda la restricción
de tiempo.
1.4 Teniendo en cuenta las diversas definiciones de sistema operativo, considere si el sistema operativo
debe incluir aplicaciones como navegadores web y programas de correo. Argumenta que debería y que no,
y respalda tus respuestas.
Un argumento a favor de incluir aplicaciones populares con el sistema operativo es que si la
aplicación está integrada dentro de la En el sistema operativo, es probable que pueda aprovechar
mejor las funciones del kernel y, por lo tanto, tener ventajas de rendimiento sobre una aplicación
que se ejecuta fuera del kernel. Sin embargo, los argumentos en contra de integrar aplicaciones
dentro del sistema operativo dominan: (1) las aplicaciones son aplicaciones, y no son parte de un
sistema operativo, (2) cualquier ventaja de rendimiento de la ejecución en el kernel está
compensada por vulnerabilidades de seguridad, (3) lleva a un sistema operativo hinchado.
1.5 ¿Cómo funciona la distinción entre modo de núcleo y modo de usuario como una forma rudimentaria
de sistema de protección (seguridad)?
La distinción entre modo de núcleo y modo de usuario proporciona una forma rudimentaria de
protección de la siguiente manera. Ciertas instrucciones podrían ejecutarse solo cuando la CPU
está en modo kernel. De manera similar, solo se puede acceder a los dispositivos de hardware
cuando el programa se está ejecutando en modo kernel. El control sobre cuándo se podrían
habilitar o deshabilitar las interrupciones también es posible solo cuando la CPU está en modo
kernel. En consecuencia, la CPU tiene una capacidad muy limitada cuando se ejecuta en modo de
usuario, lo que obliga a proteger los recursos críticos.
1.6 ¿Cuál de las siguientes instrucciones debe tener privilegios?
a. Establecer el valor del temporizador.
b. Lee el reloj
c. Memoria clara.
d. Emitir una instrucción trampa.
e. Apague las interrupciones.
F. Modificar las entradas en la tabla de estado del dispositivo.
g. Cambia de usuario al modo kernel.
h. Acceda al dispositivo de E / S.
Las siguientes operaciones deben tener privilegios: establecer el valor del temporizador, borrar
memoria, desactivar interrupciones, modificar entradas en la tabla de estado del dispositivo,
acceder al dispositivo de E / S. El resto se puede realizar en modo usuario.
1.7 Algunas computadoras tempranas protegieron el sistema operativo al colocarlo en una partición de
memoria que no pudo ser modificada por el trabajo del usuario o el sistema operativo en sí. Describe dos
dificultades que crees que podrían surgir con tal esquema.
Los datos requeridos por el sistema operativo (contraseñas, controles de acceso, información
contable, etc.) deberían almacenarse o pasarse a través de la memoria no protegida y, por lo
tanto, estar disponibles para usuarios no autorizados.
1.8 Algunas CPU proporcionan más de dos modos de operación. ¿Cuáles son dos usos posibles de estos
modos múltiples?
Aunque la mayoría de los sistemas solo distinguen entre usuario y kernel Modos, algunas CPUs
han soportado múltiples modos. Modos multiples podría utilizarse para proporcionar una política
de seguridad más detallada. Por ejemplo, En lugar de distinguir entre el modo de usuario y el
modo kernel, Podía distinguir entre los diferentes tipos de modo de usuario. Quizás los usuarios
que pertenecen al mismo grupo podrían ejecutar el código de cada uno. La máquina entraría en
un modo específico cuando uno de estos usuarios ejecutaba el código. Cuando la máquina estaba
en este modo, un miembro del grupo podría ejecutar el código que pertenece a cualquier otra
persona en el grupo.
Otra posibilidad sería proporcionar diferentes distinciones dentro de código del kernel. Por
ejemplo, un modo específico podría permitir que se ejecuten los controladores de dispositivos
USB. Esto significaría que los dispositivos USB podrían recibir servicio sin tener que cambiar al
modo kernel, lo que esencialmente permite que los controladores de dispositivos USB se
ejecuten en un modo de quasi-usuario / kernel.
1.9 Los temporizadores podrían usarse para calcular la hora actual. Proporcionar un corto
Descripción de cómo se podría lograr esto.
Un programa podría usar el siguiente enfoque para calcular la corriente, Tiempo usando
temporizador interrumpe. El programa podría establecer un temporizador para algunos Tiempo
en el futuro e ir a dormir. Cuando es despertado por la interrupción, puede actualizar su estado
local, que está utilizando para realizar un seguimiento de la cantidad de interrupciones que ha
recibido hasta el momento. Luego, podría repetir este proceso de configuración continua de las
interrupciones del temporizador y actualizar su estado local cuando las interrupciones realmente
se activan.
1.10 Da dos razones por las que los cachés son útiles. ¿Qué problemas resuelven? ¿Qué problemas
causan? Si una memoria caché se puede hacer tan grande como el dispositivo para el que se está
almacenando en caché (por ejemplo, una memoria caché tan grande como un disco), ¿por qué no hacerlo
tan grande y eliminar el dispositivo?
Los cachés son útiles cuando dos o más componentes necesitan intercambiarse
Datos, y los componentes realizan transferencias a diferentes velocidades. Los cachés resuelven
el problema de transferencia proporcionando un búfer de velocidad intermedia entre los
componentes. Si el dispositivo rápido encuentra los datos que necesita en el caché, no necesita
esperar al dispositivo más lento. Los datos en el caché deben mantenerse consistentes con los
datos en los componentes. Si un componente tiene un cambio de valor de datos, y el dato
también está en la memoria caché, la memoria caché también debe actualizarse. Esto es
especialmente un problema en sistemas multiprocesador donde más de un proceso puede estar
accediendo a un dato. Un componente puede ser eliminado por un caché de igual tamaño, pero
solo si: (a) el caché y el componente tienen una capacidad de ahorro de estado equivalente (es
decir, si el componente conserva sus datos cuando se elimina la electricidad, el caché debe
conservar los datos) también), y (b) el caché es asequible, porque un almacenamiento más rápido
tiende a ser más caro.
1.11 Distinguir entre el cliente-servidor y los modelos de sistemas distribuidos de igual a igual.
El modelo cliente-servidor distingue firmemente los roles del cliente y
servidor. Bajo este modelo, el cliente solicita servicios que son proporcionados por el servidor. El
modelo de igual a igual no tiene roles tan estrictos. De hecho, todos los nodos del sistema se
consideran pares y, por lo tanto, pueden actuar como clientes o servidores, o ambos. Un nodo
puede solicitar un servicio de otro igual o, de hecho, el nodo puede proporcionar dicho servicio a
otros iguales en el sistema.
Por ejemplo, consideremos un sistema de nodos que comparten la cocina
recetas. Bajo el modelo cliente-servidor, todas las recetas se almacenan con el
servidor. Si un cliente desea acceder a una receta, debe solicitarla al servidor especificado.
Usando el modelo de igual a igual, un nodo igual podría pedir a otros nodos iguales la receta
especificada. El nodo (o tal vez los nodos) con la receta solicitada podría proporcionarla al nodo
solicitante. Observe cómo cada par puede actuar como cliente (puede solicitar recetas) y como
servidor (puede proporcionar recetas).
4..-hebras
4.1 Proporcionar tres ejemplos de programación en los que proporciona multihilo. mejor rendimiento que
una solución de un solo hilo.
a. Un servidor web que atiende cada solicitud en un hilo separado.
b. Una aplicación paralelizada como la multiplicación de matrices donde
diferentes partes de la matriz se pueden trabajar en paralelo.
c. Un programa interactivo de GUI como un depurador donde un hilo es
utilizado para monitorear la entrada del usuario, otro hilo representa la ejecución
aplicación, y un tercer hilo supervisa el rendimiento.
4.2 ¿Cuáles son las dos diferencias entre los subprocesos de nivel de usuario y los subprocesos de nivel de
kernel? ¿Bajo qué circunstancias es un tipo mejor que el otro?
a. Los hilos de nivel de usuario son desconocidos por el kernel, mientras que el kernel
Es consciente de los hilos del núcleo.
b. En los sistemas que utilizan la asignación M: 1 o M: N, los hilos de usuario son
programado por la biblioteca de hilos y el kernel del kernel
trapos.
c. Los subprocesos del núcleo (Kernel) no necesitan asociarse con un proceso, mientras que cada
subproceso de usuario pertenece a un proceso. Los hilos del núcleo son generalmente
Más caro de mantener que los hilos de usuario, ya que deben ser
Representado con una estructura de datos del núcleo.
4.3 Describa las acciones tomadas por un kernel para cambiar de contexto entre hilos de kernellevel.
El cambio de contexto entre los subprocesos del kernel generalmente requiere guardar el valor
de los registros de la CPU del subproceso que se está desconectando y
Restaurando los registros de la CPU del nuevo hilo que se está programando.
4.4 ¿Qué recursos se utilizan cuando se crea un hilo? ¿En qué se diferencian de los utilizados cuando se
crea un proceso?
Debido a que un hilo es más pequeño que un proceso, la creación de hilos normalmente
Utiliza menos recursos que la creación de procesos. La creación de un proceso requiere la
asignación de un bloque de control de proceso (PCB), una estructura de datos bastante grande.
El PCB incluye un mapa de memoria, una lista de archivos abiertos y un entorno
variables Asignar y administrar el mapa de memoria es típicamente el
La actividad más lenta. Creando un usuario o un hilo del kernel
implica asignar una pequeña estructura de datos para mantener un conjunto de registros, apilar,
y la prioridad.
4.5 Suponga que un sistema operativo asigna subprocesos de nivel de usuario al kernel utilizando el
modelo de muchos a muchos y que la asignación se realiza a través de LWP. Además, el sistema permite a
los desarrolladores crear subprocesos en tiempo real para su uso en sistemas en tiempo real. ¿Es
necesario vincular un hilo en tiempo real a un LWP? Explique.
Sí. El tiempo es crucial para las aplicaciones en tiempo real. Si un hilo está marcado como
en tiempo real, pero no está vinculado a un LWP, el subproceso puede tener que esperar a
adjuntarse a un LWP antes de ejecutar. Considere si un hilo en tiempo real se está ejecutando
(está conectado a un LWP) y luego procede al bloqueo (es decir, debe realizar I / O, ha sido
precedido por un hilo en tiempo real de mayor prioridad, está esperando un bloqueo de
exclusión mutua, etc.) Mientras el hilo en tiempo real está bloqueado, el LWP al que estaba
conectado se ha asignado a otro hilo.
Cuando el hilo en tiempo real se ha programado para ejecutarse de nuevo, primero debe esperar
para adjuntarse a un LWP. Al vincular un LWP a un subproceso en tiempo real, se asegura de que
el subproceso podrá ejecutarse con un retraso mínimo una vez que esté programado.