Вы находитесь на странице: 1из 6

1..

-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).

2..-estructuras de sistemas operativos


2.1 ¿Cuál es el propósito de las llamadas al sistema?
Las llamadas al sistema permiten que los procesos de nivel de usuario soliciten servicios del
sistema operativo.
2.2 ¿Cuáles son las cinco actividades principales de un sistema operativo con respecto a
¿gestión de proceso?
Las cinco actividades principales son:
a. La creación y eliminación de procesos de usuario y sistema.
b. La suspensión y reanudación de procesos.
c. La provisión de mecanismos para la sincronización de procesos.
d. La provisión de mecanismos para la comunicación de procesos.
e. La provisión de mecanismos para el manejo del interbloqueo.
2.3 ¿Cuáles son las tres actividades principales de un sistema operativo con respecto a
a la gestión de la memoria?
Las tres actividades principales son:
a. Mantenga un registro de qué partes de la memoria se están utilizando actualmente y por
quién.
b. Decida qué procesos se cargarán en la memoria cuando el espacio de memoria se vuelve
disponible.
c. Asigne y desasigne espacio de memoria según sea necesario.
2.4 ¿Cuáles son las tres actividades principales de un sistema operativo con respecto a
a la gestión de almacenamiento secundario?
Las tres actividades principales son:
• Gestión del espacio libre.
• Asignación de almacenamiento.
• Programación de discos.
2.5 ¿Cuál es el propósito del intérprete de comando? Porque es usualmente
separado del kernel?
Lee los comandos del usuario o de un archivo de comandos y los ejecuta.
ellos, usualmente convirtiéndolos en una o más llamadas al sistema. Es usual
no es parte del kernel ya que el intérprete de comandos está sujeto a cambios.
2.6 ¿Qué llamadas del sistema deben ser ejecutadas por un intérprete de comandos o shell?
¿Para iniciar un nuevo proceso?
En los sistemas Unix, una llamada al sistema de bifurcación seguida de una llamada al sistema
exec necesita realizar para iniciar un nuevo proceso. La llamada de la horquilla clona la actual
proceso de ejecución, mientras que la llamada ejecutiva superpone un nuevo proceso basado en
un Ejecutable diferente sobre el proceso de llamada.
2.7 ¿Cuál es el propósito de los programas del sistema?
Los programas del sistema pueden considerarse como paquetes de llamadas útiles al sistema.
Proporcionan funcionalidad básica a los usuarios para que los usuarios no necesiten
Escribe sus propios programas para resolver problemas comunes.
2.8 ¿Cuál es la principal ventaja del enfoque en capas para el diseño del sistema?
¿Cuáles son las desventajas de usar el enfoque en capas?
Como en todos los casos de diseño modular, diseñar un sistema operativo en
Una vía modular tiene varias ventajas. El sistema es más fácil de depurar.
y modificar porque los cambios afectan solo a secciones limitadas del sistema
En lugar de tocar todas las secciones del sistema operativo. Información
se mantiene solo donde es necesario y es accesible solo dentro de un determinado
y área restringida, por lo que cualquier error que afecte a esos datos debe limitarse a
Módulo específico o capa.
2.9 Enumere cinco servicios proporcionados por un sistema operativo y explique cómo cada uno
Crea conveniencia para los usuarios. ¿En qué casos sería imposible para
programas de nivel de usuario para proporcionar estos servicios? Explica tu respuesta.
Los cinco servicios son:
a. Ejecución del programa. El sistema operativo carga los contenidos (o
Secciones) de un archivo en memoria y comienza su ejecución. Un nivel de usuario
No se puede confiar en que el programa asigne correctamente el tiempo de CPU.
b. Operaciones de E / S. Los discos, cintas, líneas serie y otros dispositivos deben ser
Comunicado con a un nivel muy bajo. El usuario solo necesita especificar
El dispositivo y la operación a realizar en él, mientras que el sistema
convierte esa solicitud en comandos específicos del dispositivo o del controlador.
No se puede confiar en los programas de nivel de usuario para acceder solo a los dispositivos a
los que deberían tener acceso y para acceder a ellos solo cuando están
de lo contrario sin uso.
c. Manipulación del sistema de archivos. Hay muchos detalles en la creación de archivos,
eliminación, asignación y denominación que los usuarios no deberían tener que
realizar. Los archivos utilizan los bloques de espacio en el disco y deben rastrearse.
Eliminar un archivo requiere eliminar la información del archivo de nombre y
liberando los bloques asignados. Las protecciones también deben ser revisadas.
para asegurar el acceso adecuado a los archivos. Los programas de usuario no podrían asegurar
Adherencia a los métodos de protección, no se puede confiar en asignar solo
bloques libres y desasignar bloques en la eliminación de archivos.
d. Comunicaciones El paso de mensajes entre sistemas requiere
Los mensajes se convertirán en paquetes de información, enviados a la
Controlador de red, transmitido a través de un medio de comunicación,
y reensamblado por el sistema de destino. Pedido de paquetes y
La corrección de datos debe tener lugar. Una vez más, los programas de usuario podrían no
coordinar el acceso al dispositivo de red, o pueden recibir
Paquetes destinados a otros procesos.

e. Detección de errores. La detección de errores se produce en el hardware y Niveles de software.


En el nivel de hardware, todas las transferencias de datos deben ser inspeccionado para
garantizar que los datos no se hayan dañado en el tránsito. Todos los datos en los medios deben
ser verificados para asegurarse de que no hayan cambiado Desde que fueron escritos a los
medios de comunicación. A nivel de software, los medios de comunicación. debe comprobarse la
consistencia de los datos; por ejemplo, si el El número de bloques de almacenamiento asignados
y no asignados coincide con el Número total en el dispositivo. Allí, los errores con frecuencia son
independientes del proceso (por ejemplo, la corrupción de los datos en un disco), por lo que
debe haber un programa global (el sistema operativo) que maneje todos los tipos de errores.
Además, al tener errores procesados por el sistema operativo, los procesos no necesitan contener
código para detectar y corregir todos los errores posibles en un sistema.
2.10 ¿Por qué algunos sistemas almacenan el sistema operativo en firmware, mientras que otros lo
almacenan en el disco?
Para ciertos dispositivos, como PDA de mano y teléfonos celulares, una
Es posible que el disco con un sistema de archivos no esté disponible para el dispositivo. En esto
situación, el sistema operativo debe estar almacenado en el firmware.
2.11 ¿Cómo podría diseñarse un sistema para permitir una selección de sistemas operativos desde los
cuales arrancar? ¿Qué tendría que hacer el programa bootstrap?
Considere un sistema que le gustaría ejecutar tanto Windows XP como tres
diferentes distribuciones de Linux (por ejemplo, RedHat, Debian y Mandrake).
Cada sistema operativo será almacenado en el disco. Durante el inicio del sistema, un programa
especial (al que llamaremos administrador de inicio) determinará en qué sistema operativo se
iniciará. Esto significa que, en lugar de iniciarse inicialmente en un sistema operativo, el
administrador de arranque se ejecutará primero durante el inicio del sistema. Es este
administrador de arranque el que se encarga de determinar en qué sistema arrancar.
Normalmente, los administradores de arranque se deben almacenar en ciertas ubicaciones del
disco duro para que se reconozcan durante el inicio del sistema.
Los gestores de arranque a menudo proporcionan al usuario una selección de sistemas para
iniciar; los gestores de arranque también suelen estar diseñados para arrancar en un valor
predeterminado
Sistema operativo si el usuario no selecciona ninguna opción.

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.

Вам также может понравиться