Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema distribuido
• Usabilidad: Facilidad de Uso
• Eficiencia: utilización de Recursos (sin tiempos Muertos, que se use todo el tiempo)
12. Qué es una red?
13. Qué son los sistemas interactivos y a cuáles se les denomina sistemas o procesos batch?
Hoy se dice que un sistema batch es el que no tiene interacción humana, el interactivo sí
14. Desde el punto de vista del sistema operativo, cuáles son los recursos que necesitan los programas
para ejecutarse?
15. En qué consiste las tareas de administración que lleva a cabo un SO?
Como toda tarea de administración, él es el responsable de los recursos (físicos y lógicos) y su uso. Eso
incluye: Planificación, Asignación, Control, Sincronización, entre lo más importante
16. Cómo hace un sistema operativo para controlar el recurso CPU?
Lo hace gracias al Hardware, cuando hay errores de ejecución de programas, éste se da cuenta y
despierta al kernel para que se ejecute una rutina de excepción. En particular, si un código de usuario se
excede en tiempo (es controlado por un TEMPORIZADOR), también el hardware despierta al kernel para
que éste le quite la CPU y decida qué hacer.
17. Cómo hace un sistema operativo para controlar el recurso Mp?
Por cada direccionamiento a Memoria principal que un programa haga, un chip (la MMU o controlador de
memoria), controla que se haga en los límites permitidos
18. Cómo hace un sistema operativo para controlar los recursos de E/S?
Nuevamente es el hardware el que controla y avisa a "su jefe", el kernel. Con CPUs que cuentan con más
de un modo de trabajo, Sólo con modo privilegiado o kernel se puede controlar las placas controladoras
de los dispositivos de E/S, por lo que los programas en modo usuario no tienen ninguna posibilidad de
llegar a dichas placas.
19. Cuáles son los pasos que se suceden cuando arranca un computador? Pag 6
Es necesario que el computador tenga un programa de inicio (o también llamado programa de arranque)
que ejecutar. El programa de arranque debe saber como cargar el sistema operativo e iniciar la ejecución
de dicho sistema. Para lograr este objetivo, el programa de arranque debe localizar y cargar en memoria
el kernel (núcleo) del sistema operativo. Después, el sistema operativo comienza ejecutando el primer
proceso y espera q se produzca algún suceso.
• Encendido (Cuando usted presiona el botón de encendido, el power light es iluminado y la energía es
distribuida por circuitos internos de la computadora).
• Comienzo del programa de arranque (El microprocesador empieza a ejecutar las instrucciones
almacenadas en la memoria ROM).
• Auto prueba de encendido o POST:power-on self- test (La computadora realiza un diagnostico crucial
del sistema y de cada componente de la computadora)
• carga del Sistema Operativo (El sistema operativo es copiado desde el disco duro a la memoria RAM)
• Chequeo de la configuración (El microprocesador lee los datos de configuración del CMOs (Setup) y
ejecuta cualquier rutina específica para su uso)
• El Sistema Operativo puede crear procesos, llamados Demonios
• Lista para aceptar datos y comandos. (La computadora esta lista para aceptar comandos y datos). El
sistema operativo espera un Evento o suceso.
El cableado (hardware sin software) resuelve rápido, pero es limitado, rígido. El almacenado (software
con soporte de hardware) resuelve el problema, pero es más caro, más lento pero con una enorme
flexibilidad para resolver una gama muy grande de problemas (depende del repertorio del ISA del
procesador).
O sea, el hardware puede resolver sólo (sin software), pero el software sin hardware, no hace nada.
22. Qué son las interrupciones?
Son eventos que pueden ocurrir en un computador puede ocurrir a través de un dispositivo q acaba de
ser conectado.
23. A qué se denomina una interrupción de hardware?
Si el evento q interrumpe es externo, es decir cuando un dispositivo interrumpe al procesador. El
procesador dejará de hacer lo q estaba haciendo para atender a la interrupción.
24. A qué se denomina una interrupción de software o excepción?
Si el evento es interno, o sea producido por la ejecución de la instrucción en curso.
Interrupción de software, excepciones o trampas son eventos que interrumpen la secuencia normal de
instrucciones ejecutadas por la CPU.
25. A qué se denomina una llamada al sistema?
Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto
servicio al sistema operativo.
Algunos ejemplos de son las siguientes:
• write, que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o
un disco magnético.
• read, que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco
magnético.
• open, que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a
write.
• close, que se emplea para cerrar un descriptor de fichero.
26. Cuáles son los pasos que se suceden para llevar a cabo una interrupción?
a) identificar qué rutina de interrupción pide que se ejecute, b) salvar los registros que se sobreescribirán
en la ejecución de la rutina de interrupción, c) ejecutar dicha rutina y d) restaurar los registros o no
(según lo resuelto por la rutina y el kernel) e) continuar con el mismo programa u otro que decida el
kernel. VER las diapositivas Cap1 Revisión de Arquitectura que envié.
27. Qué tiene que ver el ciclo de la instrucción con el de la interrupción?
Cuando se produce un error en la ejecución de una instrucción q se estaba ejecutando es entonces
cuando se produce una interrupción.
28. A qué se denomina el vector de interrupciones?
Es una tabla en donde implementa un sistema de prioridad de interrupción. Estos niveles permiten a la
CPU diferir el manejo de interrupciones de baja prioridad todas las interrupciones sin enmascarar y hace
posible una alta prioridad de interrupción para evitar la ejecución de una interrupción de baja prioridad.
29. Por qué se guardan los datos en la pila del sistema?
Porque cuando se detecta que hay una interrupción pendiente de atender, el micro se pasa a modo
kernel, ya que la rutina de interrupción corre en modo kernel, por lo que hay que "salvar" los contenidos
de los registros de la CPU que serán modificados por la rutina de Interrupción. Y lo mejor es guardarlos
en la estructura de pila (en memoria) que posee el kernel (es lo más rápido)
30. Por qué se modela como una pirámide a la estructura de almacenamiento?
Se inventó para establecer un orden que se da de acuerdo al tiempo de respuesta, la complejidad y la
capacidad, todas están relacionadas.
El objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de
baja velocidad, basándose en el principio de cercanía o de referencia.
31. Según el modelo de Von Neumann, por qué conviene que la memoria principal sea volátil?
Para que se pueda cambiar de contenido rápidamente (cargar y descargar programas) y cumplir con el
objetivo de la multiprogramación. Las RAM son más apropiadas que las ROM (que son muy lentas para
escribirles)
32. A que se denomina almacenamiento secundario?
Los dispositivos de almacenamiento secundario más comunes son las unidades de disco duro (HDD) y
dispositivos de memoria no volátil (NVM), que proporcionan almacenamiento para ambos: programas y
datos.
El almacenamiento no volátil retiene su contenido cuando se pierde energía.
33. A que se denomina almacenamiento terciario?
memoria caché, CD-ROM o blu-ray, cintas magnéticas, etc. Los que son lo suficientemente lentos y lo
suficientemente grande como para que se usen solo para fines especiales —Para almacenar copias de
seguridad del material almacenado en otros dispositivos, por ejemplo— se llaman almacenamiento
terciario. Pag 20
34. Qué significa “cachear” (caching) una memoria?
Cache significa oculto, ni siquiera es reconocida por el sistema operativo solo es administrada y
reconocida por el hardware
Cachear significa traer una información de capas inferiores antes q el procesador me la pida. Esto levanta
mucho el rendimiento de un computador
35. Qué ventajas tienen las memorias denominadas cachés?
Es más rápida q la memoria principal, esta más próxima del procesador.
Responde muy bien al principio de localidad de referencia.
36. A qué se denomina una operación de E/S?
En un computador tengo puertas (son posiciones direccionales) a través de la cual yo puedo entrar
información o sacar información. El procesador no llega a ver esas operaciones. Las operaciones E/S
llevan su tiempo ya q tienen q ver con el tiempo del periférico o lo lento q puede ser frente al procesador
37. Qué son las placas controladoras, por qué son necesarias?
Las placas controladoras funcionan de intermediario entre el procesador y el monitor o cualquier otro
periférico conectado a nuestra computadora ya q estas placas conocen el funcionamiento del periférico y
es q pide el computador. Por ejemplo, el procesador puede pedir al monitor q muerte por pantalla, pero el
procesador no llega directamente al monitor, primero llega hasta la placa controladora de video.
38. A qué se denomina puertos de una controladora y qué tipos de puertos conoce?
A las posiciones direccionables por la CPU de una placa controladora. Hay al menos 3 tipos de puertos:
a) de estado (muestra el estado del dispositivo: Ready, Busy, Error, etc), b) de Control (sirve para que
CPU le escriba la órden (Lectura, escritura, etc) que quiera que ejecute la placa) y c) de Datos (de ahí la
CPU leerá los datos que le solicitó en una lectura, o la CPU pondrá los datos, si se le pidió escritura)
39. Qué son los drivers, por qué son necesarios?
los sistemas operativos tienen un manejador de dispositivo (driver) para cada controlador de dispositivo.
Este manejador de dispositivo entiende al controlador del dispositivo y proporciona al resto del sistema
operativo una interfaz uniforme con el dispositivo.
40. Cuáles son los distintas formas que se pueden realizar las operaciones de E/S?
41. En qué consiste una operación de E/S programada y cuándo se la utiliza?
intercambia datos entre el CPU y el modulo E/S.
El CPU ejecuta un programa que controla directamente la operación E/S, incluyendo la comprobación del
estado del dispositivo, el envió de la orden de lectura o escritura y la transferencia de datos
42. En qué consiste una operación de E/S con interrupciones y cuándo se la utiliza?
El procesador proporciona la orden de E/S, y continúa ejecutando otras interrupciones, se intercambian
entre el procesador y el módulo de E/S y es interrumpido por el módulo de E/S cuando este ha terminado.
La ventaja que tiene es atención inmediata, el procesador trabaja, pero el dispositivo de entrada y salida
se ocupa
43. En qué consiste una operación de E/S con DMA y cuándo se la utiliza?
hay una sobrecarga elevada cuando se usa para movimiento de datos a granel como E/S NVS. Para
resolver este problema, Se utiliza el acceso (DMA) a memoria directa.
44. Qué son los procesadores de propósito específico y cuándo conviene usarlos?
45. A qué se denomina un sistema multiprocesador, qué ventajas ofrece? Dibuje un modelo de 2 CPUs.
46. Qué problemas hay que resolver en los sistemas multiprocesados?
47. Qué desventajas aparecen cuando crece el número de procesadores?
48. Qué significa que un sistema sea tolerante a las fallas o que ofrezca alta disponibilidad?
Tolerancia a fallos se refiere a la capacidad de un sistema o componente para continuar con la Operación
normal a pesar de la presencia de fallas de hardware o software
Los servicios específicos proporcionados, por supuesto, difieren de un sistema operativo a otro, pero
podemos identificar clases comunes.
Un conjunto de servicios del sistema operativo proporciona funciones que son útiles para el usuario.
• interfaz gráfica de usuario (GUI). Aquí, la interfaz es un sistema de ventanas con un mouse que sirve
como dispositivo señalador para dirigir E/S, elija de los menús, y hace selecciones y un teclado para
ingresar texto.
• Sistemas móviles tales ya que los teléfonos y tabletas proporcionan una interfaz de pantalla táctil, lo
que permite a los usuarios deslizar sus dedos por la pantalla o presionar los botones en la pantalla para
seleccionar opciones
• Otra opción es una interfaz de línea de comandos (CLI), que usa comandos en modo texto y un
método para ingresarlos (por ejemplo, un teclado para escribir en comandos en un formato específico
con opciones específicas). Algunos sistemas proporcione dos o las tres de estas variaciones.
permite a los usuarios ingresar directamente los comandos que debe realizar el sistema operativo.
6. Nombre los otros servicios que debe proveer todo sistema operativo, además de servir de interfaz
con el usuario.
• Interfaz de usuario.
• Operaciones de E/S.
• Comunicaciones.
• Detección de errores.
• Asignación de recursos
• Inicio sesión.
• Protección y seguridad
El sistema debe poder cargar un programa en la memoria y ejecutar ese programa. El programa debe
poder finalizar su ejecución, normal o anormalmente (indicando error).
El programa de ejecución puede requerir E/S, lo que puede implicar una archivo o un dispositivo de E/S.
Para dispositivos específicos, se pueden desear funciones especiales (como leer desde una interfaz de
red o escribir en un sistema de archivos). Por eficiencia y protección, los usuarios generalmente no
pueden controlar los dispositivos de E/S directamente. Por lo tanto, el sistema operativo debe
proporcionar un medio para hacer la E/S.
El sistema de archivos es de particular interés. Obviamente, los programas necesitan leer y escribir
archivos y directorios. Ellos también necesitan para crear y eliminar el nombre del equipo, buscar un
archivo determinado y mostrar la información del archivo.
Finalmente, algunos sistemas operativos incluyen administración de permisos para permitir o denegar el
acceso a archivos o directorios en función de la propiedad del archivo. Muchos sistemas operativos
proporcionan una variedad de sistemas de archivos, a veces para permitir elección personal y, a veces,
para proporcionar características o rendimiento específicos
Hay muchas circunstancias en las que un proceso necesita intercambiar información con otro proceso.
Tal comunicación puede ocurrir entre procesos que se ejecutan en la misma computadora o entre
procesos que se ejecutan en diferentes sistemas informáticos unidos por una red. Las comunicaciones
pueden implementarse a través de memoria compartida, en la que dos o más procesos leen y escriben en
una sección de memoria, o por la transmisión de mensajes, en la que se encuentran paquetes de
información en formatos predefinidos que son movidos por el sistema operativo entre los procesos.
11. Porque hace falta que el sistema operativo detecte los errores, qué tipo de errores?
El sistema operativo debe detectar y corregir errores constantemente Pueden producirse errores en la
CPU y el hardware de memoria (como un error de memoria o una falla de energía), en dispositivos de E/S
(como un error de paridad en el disco, una falla de conexión en una red o falta de papel en la impresora),
y en el programa de usuario (como un desbordamiento aritmético o un intento de acceder a una
ubicación de memoria ilegal). Para cada tipo de error, el funcionamiento el sistema debe tomar las
medidas adecuadas para garantizar una correcta y coherente computación. A veces, no tiene más
remedio que detener el sistema. Otras veces, podría terminar un proceso que causa errores o devolver un
código de error a un proceso para que el proceso detecte y posiblemente corrija.
Existe otro conjunto de funciones del sistema operativo no para ayudar al usuario sino más bien para
asegurar la operación eficiente del sistema mismo. Sistemas con múltiples procesos puede ganar
eficiencia al compartir los recursos de la computadora entre los diferentes procesos.
12. Cuáles son algunas de las funciones que debe contar un sistema operativo para garantizar la
eficiencia del propio sistema de computación?
Cuando hay múltiples procesos ejecutándose al mismo tiempo, los recursos deben asignarse a cada uno
de ellos. El sistema operativo gestiona muchos tipos diferentes de recursos. Algunos (como ciclos de
CPU, memoria principal y almacenamiento de archivos) pueden tener un código de asignación especial,
mientras que otros (como los dispositivos de E/S) pueden tener una solicitud mucho más general y
liberar código. Por ejemplo, al determinar la mejor manera de usar la CPU, los sistemas operativos tienen
rutinas de planificación de CPU que tienen en cuenta la velocidad de la CPU, el proceso que debe
ejecutarse, el número de kernels de procesamiento en la CPU y otros factores. También puede haber
rutinas para asignar impresoras, unidades de almacenamiento USB y otros dispositivos periféricos.
16. Explique cómo trabaja un intérprete de comandos, que significa que los comandos sean internos o
externos?
La función principal del intérprete de comandos es obtener y ejecutar el siguiente comando especificado
por el usuario. Muchos de los comandos dados en este nivel manipulan archivos: crear, eliminar,
enumerar, imprimir, copiar, ejecutar, etc.
17. Que conviene, en intérprete de comandos sea parte del kernel o se ejecute como un proceso de
usuario separado del sistema operativo?
Conviene que el Intérprete de Comandos NO sea parte del kernel, porque es una interfaz de usuario y
puede variar según lo que distintos usuarios quieran pedirle, además de que se podrían incorporar
nuevos comandos o solicitudes, según como va cambiando la tecnología. Si se lo agrega al kernel, habría
que recompilarlo cada modificación, y además se suma más código en modo kernel, lo que no es bueno,
por la estabilidad y seguridad.
18. Qué actividades se puede realizar a través de las interfases gráficas de usuario?
Aquí, en lugar de ingresar comandos directamente a través de una interfaz de línea de comandos, los
usuarios emplean un Sistema de menú en una ventana basada en mouse caracterizado por un
“escritorio” metafórico. El usuario mueve el mouse para colocar su puntero en imágenes o iconos, en la
pantalla (el escritorio) que representan programas, archivos, directorios y funciones del sistema.
Dependiente de la ubicación del puntero del mouse, hacer clic en un botón del mouse puede invocar un
programa, seleccione un archivo o directorio, conocido como carpeta, o desplegar un menú que contiene
comandos
Las llamadas al sistema proporcionan una interfaz para los servicios puestos a disposición por un
sistema operativo.
20. En que lenguaje están escritas las rutinas que dan los servicios que se ofrecen como llamadas al
sistema?
Estas llamadas están generalmente disponibles como funciones escritas en C y C ++, aunque ciertas
tareas de bajo nivel (por ejemplo, tareas donde el hardware debe accederse directamente) puede que
tenga que escribirse usando instrucciones de lenguaje ensamblador.
21. Porque si existen las llamadas al sistema, los sistemas operativos ofrecen un interfaz de
programación de aplicaciones (API)?
La API especifica un conjunto de funciones que están disponibles para un programador de aplicaciones,
incluidos los parámetros que se pasan a cada función y los valores de retorno que el programador puede
esperar. Tres de las más comunes API disponibles para los programadores de aplicaciones son:
• API de Windows para sistemas Windows,
• API POSIX para sistemas basados en POSIX (que incluyen prácticamente todos versiones de UNIX,
Linux y macOS)
• API de Java para programas que se ejecutan en la máquina virtual Java.
la Función de Windows CreateProcess () (que, como era de esperar, se usa para crear un nuevo proceso)
en realidad invoca la llamada al sistema NTCreateProcess () en Kernel de Windows.
23. Cuáles son los tres métodos que se usan para pasar parámetros al sistema operativo?
control de procesos,
gestión de archivos,
gestión de dispositivos,
mantenimiento de información,
comunicaciones,
y protección.
Todos los procesos (salvo el primero, que es construido por el SO) son creados por las llamadas al
sistema que piden otros procesos. En el caso de los primeros procesos que se crean cuando se inicializa
un SO, son necesarios porque dan servicio a procesos de usuario (aplicaciones), como el demonio de
impresión, de paginación, de intercambio, etc. Luego, los procesos de usuario se van también creando a
pedido (cuando el usuario quiere ejecutar programas). Todo esto es porque es el SO el responsable de
TODOS los procesos y debe llevar cuenta de ellos en sus mecanismos (tablas, algoritmos, etc). De esa
manera, al pasar la petición por una llamad al sistema, queda registrada y él puede tomar la decisión de
continuar o no con la solicitud, de acuerdo a los recursos, permisos, etc.
27. Porque se deben abrir los archivos?
Primero necesitamos poder créate () y delete() archivos. Cualquiera de las llamadas al sistema requiere el
nombre del archivo y quizás algunos de los atributos del archivo. Una vez
el archivo está creado, necesitamos open() y usarlo. También podemos read(), write () o reposition ()
(saltar hasta el final del archivo, por ejemplo). Finalmente, necesitamos close() el archivo, lo que indica
que ya no lo estamos usando.
Se pueden pensar los diversos recursos controlados por el sistema operativo como dispositivos.
El sistema con múltiples usuarios puede requerir primero un request() (solicitud) de un dispositivo, para
garantizar su uso exclusivo. Después de que hayamos terminado con el dispositivo, nosotros release()
(liberarlo). Estas funciones son similares a las llamadas al sistema open () y close () para archivos.
29. Para qué se deben crear mecanismos de comunicación entre los procesos?
Hay dos modelos comunes de comunicación entre procesos: el modelo de paso de mensajes y el modelo
de memoria compartida.
En el modelo de paso de mensajes, los procesos intercambian mensajes entre sí para comunicación para
transferirse información
En el modelo de memoria compartida, los procesos usan las llamadas de sistema shared_memory_create
() y shared_memory_attach () para crear y obtener acceso a regiones de memoria que son propiedad de
otros procesos.
30. Qué diferencia hay a simple vista entre un programa que ejecute en un sistema operativo como MS-
DOS y otro que se ejecute en Fre BSD?
31. Qué diferencia hay entre el modelo de memoria compartida y el modelo de paso de mensajes?
El paso de mensajes es útil para intercambiar cantidades más pequeñas de datos, porque no es
necesario cuidar los conflictos. También es más fácil implementar que la memoria compartida para la
comunicación entre computadoras. La memoria compartida permite la máxima velocidad y mayor
rendimiento en la comunicación, ya que se puede hacer a velocidades de transferencia de memoria
cuando tiene lugar dentro de una computadora.
Los programas del sistema proporcionan un entorno conveniente para el desarrollo y ejecución de
programas.
33. Cuáles son algunas de las categorías en que se agrupan los programas del sistema?
Los programas del sistema proporcionan un entorno conveniente para el desarrollo y ejecución de
programas. Se pueden dividir en:
a. Manipulación de archivos
b. Información de estado, a veces almacenada en una modificación de archivo
c. Soporte de lenguaje de programación
d. Programa de carga y ejecución
e. Comunicaciones
f. Servicios de ejecución background (demonios)
g. Programas de aplicación
La visión del sistema operativo de la mayoría de los usuarios está definida por los programas del
sistema, no por las llamadas reales del sistema.
34. Porque es necesario que existan las llamadas al sistema si ya se ofrecen programas del sistema?
Los programas del sistema se armaron en base a los requerimientos de los usuarios sin mayor
conocimiento de software (los llamados no-calificados) y que se determinó que esos servicios que
ofrecen son los más requeridos.
Las llamadas al sistema, son los servicios simples que ofrecen los SO a través de su interfaz de llamadas
al sistema, para atender necesidades que fueron solicitadas por los programadores de aplicaciones y que
son muy específicas de ellas rutinarias como copiar, editar, crear archivos, etc.
35. Cuáles son los objetivos de diseño de un sistema operativo? De qué depende?
36. Porque es conveniente dividir en objetivos del usuario y objetivos del sistema?
Porque uno contempla el aspecto, lo que percibe el usuario (el cliente) y otro es el arquitectónico, las
funciones internas y su implementación (la seguridad, la confiabilidad, etc.), objetivos que el usuario final
da por hecho.
El primer problema en el diseño de un sistema es definir objetivos y especificaciones. Al más alto nivel, el
diseño del sistema se verá afectado por la elección del hardware y el tipo de sistema: computadora de
escritorio/portátil tradicional, móvil, distribuida, o en tiempo real
Más allá de este nivel de diseño más alto, los requisitos pueden ser mucho más difíciles de especificar.
Sin embargo, los requisitos se pueden dividir en dos grupos básicos: objetivos de usuario y objetivos del
sistema.
Los usuarios quieren ciertas propiedades obvias en un sistema. El sistema debe ser conveniente de usar,
fácil de aprender y de usar, confiable, seguro y rápido. Por supuesto, estas especificaciones no son
particularmente útiles en el diseño del sistema, ya que no hay un acuerdo general sobre cómo lograrlos.
Las políticas determinan lo que se hará y los Mecanismos se usan para determinar cómo hacer algo.
39. Qué características tienen los sistemas operativos del tipo microkernel respecto de las políticas y de
los mecanismos?
Los sistemas operativos basados en microkernel (discutidos en la Sección 2.8.3) separan mecanismo y
política a un extremo mediante la implementación de un Conjunto básico de bloques de construcción
primitivos. Estos bloques son casi libres de políticas, lo que permite que Se agreguen mecanismos y
políticas más avanzados a través del kernel creado por los módulos de usuario o programas de usuario
propios.
40. Son las ventajas y desventajas de usar un lenguaje de alto nivel para escribir un sistema operativo?
El código se puede escribir más rápido, es más compacto y es más fácil de entender y depurar.
41. Cuáles son algunas de las posibles estructuras que pueden adoptar los sistemas operativos?
Un sistema tan grande y complejo como un sistema operativo moderno se debe diseñar cuidadosamente
para que funcione correctamente y se modifique fácilmente. Un enfoque común consiste en dividir la
tarea en pequeños componentes o módulos, más bien que tener un solo sistema. Cada uno de estos
módulos debe estar bien definido como porción del sistema, con interfaces y funciones cuidadosamente
definidas. Puede usar un enfoque similar cuando estructura sus programas: en lugar de colocar todo su
código en la función main (),separa la lógica en un número de funciones, articula parámetros claramente
y devuelva valores, y luego llama a esas funciones de main ().
42. Qué diferencia hay entre una estructura simple como la de MS-DOS y la estructura de niveles como la
de Unix?
En un SO como MS-DOS, no hay protección de espacio de kernel, ya que se ejecutaba en un Intel 8086,
que tenía un único modo de trabajo (no hay instrucciones privilegiadas). En cambio UNIX, desde que
nació se ejecutaba en procesadores que ofrecían modos privilegiados, que le permiten ejecutar su kernel
con ese modo y aislarse de las aplicaciones en los espacios de direcciones, lo que le da protección y
jerarquía.
43. Porque se dice que algunos sistemas operativos son monolíticos? Dé ejemplos.
Porque aunque haya módulos distinguibles, no hay control ni jerarquía entre ellos
Un ejemplo de estructuración tan limitada es el sistema operativo original de UNIX, que consta de dos
partes separables: el kernel y los programas del sistema.
44. Qué ventajas tiene estructurar un sistema operativo con un enfoque por capas o niveles? Qué
desventajas tiene diseñar de este modo?
Que cada nivel da servicios o resuelve sólo funciones asignadas a ese nivel, por lo que sí o sí hay que
pasar por él para resolverlo. Así se arman jerarquías de niveles de servicios que deben ser respetados.
Eso le da mucha estabilidad y seguridad al sistema. Pero es muy lerdo porque a veces hay que acceder a
niveles intermedios que sólo sirven de puentes. Por otro lado, en general, para pasar por cada nivel, hay
que cambiar de modo y de contexto de la CPU, lo que lo hace más lento aún.
45. Porque algunas estructuras de sistemas se denominan de microkernel? Cuál es la función principal
de un microkernel?
El sistema operativo es la pieza fundamental del software y se ejecuta en modo kernel (también conocido
como modo supervisor). En este modo, el sistema operativo tiene acceso completo a todo el hardware y
puede ejecutar cualquier instrucción que la máquina sea capaz de ejecutar.
La función principal del microkernel es proporcionar comunicación entre el programa cliente y los
diversos servicios
En los sistemas microkernel, hay procesos clientes y procesos servidores. Los dos tipos se ejecutan en
modo usuario, pero la comunicación entre ellos debe pasar por el kernel, quién sólo dirige o encamina
esa comunicación, que lo hace recibiendo y reenviando mensajes entre los procesos, lo que lo hace lento
pero muy seguro.
QNX es un sistema operativo en tiempo real para sistemas integrados. El microkernel QNX Neutrino
proporciona servicios para pasan mensajes y planifican procesos. También maneja comunicaciones de
red de bajo nivel e nterrupciones de hardware. Todos los demás servicios en QNX son proporcionados
por procesos estándar
49. Porque se dice que Windows nació casi como un sistema operativo de microkernel pero luego se
transformó en un monolítico?
Cuando se diseñó Windows XP, la arquitectura de Windows se había convertido más monolítico que
microkernel.
50. Qué ventajas tiene un diseño modular o usar las técnicas de programación orientadas objetos para
estructurar un sistema operativo?
Aquí, el kernel tiene un conjunto de componentes y pueden enlazarse en servicios adicionales a través de
módulos, ya sea en el momento del arranque o durante el tiempo de ejecución. Este tipo de diseño es
común en implementaciones modernas de UNIX, como Linux, macOS y Solaris, así como Windows.
La idea del diseño es que el kernel proporcione servicios básicos, mientras que otros servicios se
implementan dinámicamente a medida que se ejecuta el kernel.
Las máquinas virtuales son software que simulan o abstrae el hardware de la computadora (cpu,
memorial,
unidades de disco, etcétera), creando así la ilusión de que es otro el hardware donde se está ejecutando.
54. Como se logra implementar una máquina virtual? A que se denomina modo usuario virtual y modo
kernel virtual?
• está la protección que se ofrece por estar completamente aislada de las demás.
• Un mejor aprovechamiento de los recursos de hardware que se puede acceder en sistemas que son
servidores
(en una misma máquina pueden estar servidores de archivo, de base de datos, Web, etc.)
57. Explique cómo hace para ejecutar un programa que fue escrito en Java?
Generalmente, cuando se arranca un sistema operativo se crean varios procesos. Algunos de ellos son
procesos en primer plano; es decir, procesos que interactúan con los usuarios (humanos) y realizan
trabajo para ellos. Otros son procesos en segundo plano, que no están asociados con usuarios específicos
sino con una función espe
• Sección de pila: almacenamiento temporal de datos al invocar funciones (como parámetros de función,
direcciones de retorno y variables locales)
11. Explique por qué motivo los procesos transicionan de estado en estado (mostrando para cada una de
las transiciones)
12. explique que es el bloque de control de procesos (PCB), para qué sirve?
el PCB simplemente sirve como repositorio de todos los datos necesarios para comenzar o reiniciar, un
proceso, junto con algunos datos contables.
13. Muestre cada uno de los campos que posee un PCB y explique cuál es su sentido.
20. Explique qué sucesos podrían ocurrir después de que a un proceso se le asigne la CPU.
De acuerdo a lo que se ve en la diapositiva 14 del Cap 3 de Procesos, un proceso que está en ejecución
(tiene asignada la CPU), podría abandonar ese estado porque: a) Finaliza (normal o anormalmente) b) Se
le termina el tiempo de asignación de la CPU (si el planificador de CPU, trabaja por asignación de tiempo)
y vuelve al estado Ready c) Solicita una operación de E/S d) pidió la creación de un proceso hijo con
fork() o e) espera por un evento (espera una interrupción que lo saque de la espera. En las 3 últimas
opciones el proceso pasa al estado de bloqueo, donde espera por sucesos.
21. Qué sentido tiene el llamado planificador a largo plazo? Cada qué tiempo se ejecuta?
Respuesta en la imagen de pregunta 17
22. Porque se le denomina planificador de corto plazo al scheduler?
Respuesta en la imagen de pregunta 17
• Aprueba la llamada fork, para crear un hijo (al verificar los permisos y que hay lugar en la tabla de
procesos: necesita una entrada nueva, para crear un PCB)
• Llena el PCB nuevo (del hijo) con: un nuevo número PID, y hereda todos los entornos (valores de los
registros) de la CPU que estaba usando el padre
• O sea hace una copia exacta del código y datos del padre (en realidad, todavía no genera un nuevo
espacio, hasta que no se modifiquen datos en el hijo, así que el hijo comparte los links del padre al
mismo espacio del padre)
• También el hijo comparte los recursos (archivos abiertos y dispositivos abiertos) del padre
• Luego asigna un número al padre (el PID asignado al hijo) y Cero al hijo
• Luego el planificador decide quién sigue en ejecución (el padre o el hijo, ya que los dos tienen la
misma prioridad)
30. A que se denomina árbol de procesos? Qué función cumple el proceso init?
los procesos nuevos se denominan hijos de ese proceso. Cada uno de estos nuevos procesos a su vez
puede crear otros procesos, formando así un árbol de procesos.
El proceso init como el nuevo padre de procesos huérfanos.
31. Cuáles son las posibilidades de sucesos para un proceso padre, cuando acaba de crear un hijo, en
términos de ejecución?
a) El padre continúa ejecutándose simultáneamente con sus hijos.
b) El padre espera hasta que algunos o todos sus hijos hayan terminado.
c) También hay dos posibilidades de espacio de direcciones para el nuevo proceso:
d) El proceso hijo es un duplicado del proceso padre (tiene el mismo programa y datos como
padre).
e) El proceso hijo tiene un nuevo programa cargado.
32. Cuáles son las posibilidades de sucesos para un proceso padre, cuando acaba de crear un hijo, en
función del espacio de direcciones del nuevo proceso?
El nuevo proceso consiste en una copia del espacio de direcciones del proceso original.
Este mecanismo permite que el proceso padre se comunique fácilmente con su proceso hijo. Ambos
procesos (el padre y el hijo) continúan la ejecución en la instrucción después de fork (), con una
diferencia: el código de retorno para fork () es cero para el nuevo proceso (hijo), mientras que el número
de identificador del proceso del hijo (distinto de cero) es devuelto al padre.
33. Explique con el máximo detalle posible que pasos se realizan cuando se ejecuta fork.
34. Explique los sucesos que ocurren cuando se ejecuta el código de la figura 3.8.
35. Muestre la diferencia entre fork y CreateProcess.
Mientras que fork () tiene el proceso hijo heredando el espacio de direcciones de su padre, CreateProcess
() requiere cargar un programa específico en el espacio de direcciones del proceso hijo en la creación del
proceso. Además, mientras que fork () no pasa parámetros, CreateProcess () espera no menos de 10
parámetros
41. Como se caracteriza a los procesos que se ejecutan concurrentemente? Que significa que un proceso
sea independiente?
Los procesos dentro de un sistema pueden ser independientes o cooperantes.
Un proceso independiente no puede afectar o verse afectado por la ejecución de otro proceso.
Los procesos cooperativos pueden afectar o verse afectado por otros procesos, incluido el intercambio
de datos
42. Cómo definiría un proceso cooperativo?
cualquier proceso que comparta datos con otros procesos es un proceso cooperativo
43. Cuáles son las ventajas que brinda la ejecución concurrente de procesos cooperativos?
• Comparten información
• Aceleración de la computación
• Modularidad
• conveniencia
44. Porque es necesaria la comunicación entre procesos?
La cooperación de procesos requiere un mecanismo de comunicación entre procesos (IPC) que les
permitirá intercambiar datos, es decir, enviar datos y recibir datos el uno del otro.
45. Explique el modelo de memoria compartida de comunicación interproceso.
En el modelo de memoria compartida, se establece una región de memoria compartida para los procesos
cooperantes. Los procesos pueden intercambiar información leyendo y escribiendo datos en la región
compartida.
46. Explique cómo tiene lugar la comunicación interproceso cuando el modelo es de paso de mensajes.
En el modelo de paso de mensajes, la comunicación se realiza mediante intercambio de mensajes entre
procesos cooperativos.
47. Ventajas y desventajas del modelo de memoria compartida.
El paso de mensajes es útil para intercambiar pequeñas cantidades de datos, porque no es necesario
evitar conflictos. El Paso de mensajes también es más fácil de implementar en un sistema distribuido que
la memoria compartida.
48. Ventajas y desventajas del modelo de paso de mensajes.
La memoria compartida puede ser más rápida que la transmisión de mensajes, dado que los sistemas de
paso de mensajes generalmente se implementan utilizando llamadas al sistema y por lo tanto, requieren
una mayor intervención del kernel. En los sistemas de memoria compartida, las llamadas al sistema solo
son necesarias para establecer regiones de memoria compartida. Una vez que se establece la memoria
compartida, se tratan todos los accesos como accesos a memoria normal (en espacio de usuario), y no
se requiere asistencia del kernel.
60. Cómo afecta el tamaño del almacenamiento en buffer a los procesos que hacen las llamadas send y
receive?
61. Como se da la comunicación de procesos en memoria compartida en POSIX?
62. Como se da la comunicación de procesos en un sistema operativo como Mach?
63. Qué ventajas tiene la llamada a procedimiento remoto (RPC)?
64. Cómo trabajan los buzones en Mach?
Los mensajes son enviados, y recibidos de buzones, que se llaman puertos en Mach. Los puertos son de
tamaño finito y unidireccional; para comunicación bidireccional, se envía un mensaje a un puerto, y se
envía una respuesta a un puerto de respuesta separado. Cada puerto puede tener múltiples remitentes
(emisores), pero solo un receptor. Mach usa puertos para representar recursos tales como tareas, hilos,
memoria y procesadores, mientras que el paso de mensajes proporciona un enfoque orientado a objetos
para interactuar con estos recursos del sistema y servicios.
65. Cómo se comunican los procesos en un sistema operativo como Windows ?
66. A que le denomina llamada a procedimiento local (LPC) Windows?
El recurso de paso de mensajes en Windows se llama llamada a procedimiento local avanzado (ALPC). Se
utiliza para la comunicación entre dos procesos de la misma máquina.
67. Son los dos tipos de puertos que usa Windows?
Windows utiliza dos tipos de puertos: puertos de conexión y puertos de comunicación.
68. Cómo funciona la comunicación en Windows ? Cuál es la limitación del tamaño del mensaje?
La comunicación funciona de la siguiente manera:
➢ El cliente abre un identificador (handle) para el objeto de puerto de conexión del subsistema.
➢ El cliente envía una solicitud de conexión
➢ El servidor crea dos puertos de comunicación privador y devuelve el identificador a uno de ellos
para el cliente.
➢ El cliente y el servidor usan el identificador de puerto correspondiente para enviar mensajes o
devoluciones de llamadas y para escuchar las respuestas.
69. A que se denomina descriptor en esta comunicación?
70. A que se denomina comunicación en sistemas cliente-servidor?
describimos cómo se pueden comunicar los procesos mediante el uso de memoria compartida y paso de
mensajes. Estas técnicas últimas se pueden utilizar para la comunicación en sistemas cliente-servidor
71. Que es un socket? Cómo funciona la comunicación con socket?
Un socket se define como un punto final para la comunicación.
Los sockets permiten que dos procesos en diferentes máquinas se comuniquen a través de una red.
72. Cómo funciona una llamada a procedimiento remoto (RPC)?
Preguntas del capítulo 4
10. Explique que significa que los hilos son soportados en el nivel de usuario y su diferencia con
aquellos hilos soportados por el kernel.
Los soportados en el nivel de usuario: son los que el kernel no sabe de su existencia y deben ser
administrado en nivel de usuario. En librerías o bibliotecas que se ejecutan en modo usuario
Los soportados en el nivel de kernel: éste ya conoce su existencia y los administra (planifica, despacha,
sincroniza, etc.)
11. Explique el modelo muchos a uno. Qué ventajas y desventajas ofrece.
asigna muchos hilos de nivel de usuario a un hilo de kernel. La administración de hilos es realizada por la
biblioteca de hilos en el espacio del usuario, entonces es eficiente
12. Explique el modelo uno a uno. Qué ventajas y desventajas ofrece.
asigna cada hilo de usuario a un hilo del kernel. Eso proporciona más concurrencia que el modelo de
muchos a uno al permitir que otro hilo se ejecute cuando un hilo hace una llamada al sistema bloqueante.
También permite múltiples hilos para ejecutarse en paralelo en multiprocesadores. El único
inconveniente de este modelo es que crear un hilo de usuario requiere crear el correspondiente hilo del
kernel, y una gran cantidad de hilos del kernel pueden afectar el rendimiento de un sistema.
13. Explique el modelo muchos a muchos. Qué ventajas y desventajas ofrece.
multiplexa muchos hilos de nivel de usuario para un número menor o igual de hilos de kernel. El número
de hilos del kernel puede ser específico para una aplicación particular o una máquina particular (una
aplicación se puede asignar más hilos de kernel en un sistema con ocho núcleos de procesamiento de
que un sistema con cuatro núcleos).
17. Qué cuestiones surgen con las llamadas al sistema fork y exec, en los programas multihilos?
18. Cuáles son las distintas maneras de terminar un hilo. Qué características tienen cada una?
1. Cancelación asincrónica. Un hilo termina inmediatamente el objetivo hilo.
2. Cancelación diferida. El hilo objetivo verifica periódicamente si debería terminar, permitiéndole la
oportunidad de terminar de una manera ordenada.
20. Qué diferencia hay en recibir una señal en forma síncrona o asíncrona?.
Las señales síncronas se entregan al mismo proceso que realizó la operación que causó la señal (esa es
la razón por la que se consideran sincrónico).
Cuando una señal es generada por un evento externo a un proceso en ejecución, El proceso recibe la
señal de forma asíncrona.
21. Cuáles son las distintas variantes en el tratamiento de las señales por parte de los procesos?
Las señales pueden ser sincrónicas (deben ser atendidas ya sea porque las generó el mismo proceso y
no pueden ser ignoradas). Pueden ser asincrónicas, cuando se generan en un evento externo al proceso
(usuario, proceso padre o kernel), en este caso pueden ser ignoradas, postergadas u obligadas a
ejecutar. También pueden clasificarse si el programa para atender esa señal, el código ya está presente
en el kernel o será definido por el usuario.
22. Cuál es el equivalente en Windows de las señales en Unix?.
Texto extraído del libro Sistemas Operativos Modernos de Tanenbaum 3era Edic, Cap 10, Pág 745 (dado
como bibliografía de consulta)
Señales en UNIX. En este caso usan las señales como alarmas o anunciadores de eventos
Un proceso sólo puede tener una alarma pendiente en cualquier momento. Si se hace una llamada a
alarm con un parámetro de 10 segundos, y 3 segundos después se hace otra llamada a alarm con un
parámetro de 30 segundos, sólo se generará una señal 20 segundos después de la segunda llamada. La
segunda llamada a alarm cancela a la primera.
Windows, que apareció más de 20 años después que UNIX, usa Objetos para casi toda su arquitectura y
dispone de Objetos tipo Eventos para dar un servicio similar y mejorado que las señales en UNIX. La
principal ventaja es que se pueden almacenar y encolar varios eventos que el proceso (a través de la
ejecución de sus hilos) puede o debe ejecutar su código. UNIX en su versión original sólo permitía alojar
un solo número de señal (el número funciona como un puntero, al igual que las interrupciones), por lo
que si al proceso le enviaban otra señal, se borraba la anterior. Cap 11, Pág 842:
El administrador de objetos administra la mayoría de los objetos interesantes en modo de kernel que se
utilizan en el nivel ejecutivo. Éstos incluyen los procesos, hilos, archivos, semáforos, dispositivos y
drivers de E/S, temporizadores y muchos otros.
O sea: el kernel asigna estos procesadores virtuales o procesos livianos, que en realidad son estructuras
de control que, al ponerlas en el medio de los hilos del kernel y los de usuario, podrían bloquearse sin
bloquear todo el proceso y no se crean tantos hilos del kernel, ya que ese que se correspondía con el
proceso liviano bloqueado, ahora puede asignarse a otro proceso liviano, donde se puede ejecutar otro
hilo de usuario.
Texto extraído del libro Sistemas Operativos Modernos de Tanenbaum 3era Edic, Cap 11, Pág 864
(dado como bibliografía de consulta)
La principal ventaja de las fibras es que la sobrecarga de cambiar entre una fibra y otra es bastante
menor que la sobrecarga de cambiar entre un hilo y otro. Para un cambio de hilo se requiere entrar y
salir del kernel. En un cambio de fibra se guardan y restauran unos cuantos registros sin cambiar los
modos.
Windows, tiene una estructura compleja, porque trata de optimizar todo lo que puede con toda la
“herencia que no puede abandonar, por su OBJETIVO: Compatibilidad con sistemas anteriores”. Así,
todavía conserva el concepto de Trabajo o Job antiguo, ahora le llama tarea: sobre ésta carga todos
los recursos que los procesos del mismo usuario van usando y lo limita, para que no se “despilfarro”.
Luego como novedoso tiene concepto de “fibra”, para decir que es más liviano que un hilo, ya que se
administra en espacio de usuario (éste no depende directo de un único hilo)
60. porque se dice que un sistema operativo provee de servicios a los usuarios.
Los servicios específicos proporcionados, por supuesto, difieren de un sistema operativo a otro, pero podemos
identificar clases comunes.
Un conjunto de servicios del sistema operativo proporciona funciones que son útiles para el usuario.
61. A que se le denomina interfase de usuario? Cuáles son las posibles variantes?
• interfaz gráfica de usuario (GUI). Aquí, la interfaz es un sistema de ventanas con un mouse que sirve como dispositivo
señalador para dirigir E/S, elija de los menús, y hace selecciones y un teclado para ingresar texto.
• Sistemas móviles tales ya que los teléfonos y tabletas proporcionan una interfaz de pantalla táctil, lo que permite a
los usuarios deslizar sus dedos por la pantalla o presionar los botones en la pantalla para seleccionar opciones
• Otra opción es una interfaz de línea de comandos (CLI), que usa comandos en modo texto y un método para
ingresarlos (por ejemplo, un teclado para escribir en comandos en un formato específico con opciones específicas).
Algunos sistemas proporcione dos o las tres de estas variaciones.
permite a los usuarios ingresar directamente los comandos que debe realizar el sistema operativo.
en lugar de ingresar comandos directamente a través de una interfaz de línea de comandos, los usuarios emplean un
Sistema de menú en una ventana basada en mouse caracterizado por un “escritorio” metafórico. El usuario mueve el
mouse para colocar su puntero en imágenes o iconos, en la pantalla (el escritorio) que representan programas, archivos,
directorios y funciones del sistema. Dependiente de la ubicación del puntero del mouse, hacer clic en un botón del mouse
puede invocar un programa, seleccione un archivo o directorio, conocido como carpeta, o desplegar un menú que
contiene comandos
65. Nombre los otros servicios que debe proveer todo sistema operativo, además de servir de interfaz con el usuario.
• Interfaz de usuario.
• Operaciones de E/S.
• Detección de errores.
• Asignación de recursos
• Inicio sesión.
• Protección y seguridad
El sistema debe poder cargar un programa en la memoria y ejecutar ese programa. El programa debe poder
finalizar su ejecución, normal o anormalmente (indicando error).
El programa de ejecución puede requerir E/S, lo que puede implicar una archivo o un dispositivo de E/S. Para dispositivos
específicos, se pueden desear funciones especiales (como leer desde una interfaz de red o escribir en un sistema de
archivos). Por eficiencia y protección, los usuarios generalmente no pueden controlar los dispositivos de E/S
directamente. Por lo tanto, el sistema operativo debe proporcionar un medio para hacer la E/S.
68. Cual es el servicio que ofrece con la manipulación del sistema de archivos?
El sistema de archivos es de particular interés. Obviamente, los programas necesitan leer y escribir archivos y directorios.
Ellos también necesitan para crear y eliminar el nombre del equipo, buscar un archivo determinado y mostrar la
información del archivo.
Finalmente, algunos sistemas operativos incluyen administración de permisos para permitir o denegar el acceso a
archivos o directorios en función de la propiedad del archivo. Muchos sistemas operativos proporcionan una variedad de
sistemas de archivos, a veces para permitir elección personal y, a veces, para proporcionar características o rendimiento
específicos
Hay muchas circunstancias en las que un proceso necesita intercambiar información con otro proceso. Tal comunicación
puede ocurrir entre procesos que se ejecutan en la misma computadora o entre procesos que se ejecutan en diferentes
sistemas informáticos unidos por una red. Las comunicaciones pueden implementarse a través de memoria compartida,
en la que dos o más procesos leen y escriben en una sección de memoria, o por la transmisión de mensajes, en la que se
encuentran paquetes de información en formatos predefinidos que son movidos por el sistema operativo entre los
procesos.
70. Porque hace falta que el sistema operativo detecte los errores, qué tipo de errores?
El sistema operativo debe detectar y corregir errores constantemente Pueden producirse errores en la CPU y el hardware
de memoria (como un error de memoria o una falla de energía), en dispositivos de E/S (como un error de paridad en el
disco, una falla de conexión en una red o falta de papel en la impresora), y en el programa de usuario (como un
desbordamiento aritmético o un intento de acceder a una ubicación de memoria ilegal). Para cada tipo de error, el
funcionamiento el sistema debe tomar las medidas adecuadas para garantizar una correcta y coherente computación. A
veces, no tiene más remedio que detener el sistema. Otras veces, podría terminar un proceso que causa errores o
devolver un código de error a un proceso para que el proceso detecte y posiblemente corrija.
Existe otro conjunto de funciones del sistema operativo no para ayudar al usuario sino más bien para asegurar la
operación eficiente del sistema mismo. Sistemas con múltiples procesos puede ganar eficiencia al compartir los recursos
de la computadora entre los diferentes procesos.
71. Cuáles son algunas de las funciones que debe contar un sistema operativo para garantizar la eficiencia del propio
sistema de computación?
Cuando hay múltiples procesos ejecutándose al mismo tiempo, los recursos deben asignarse a cada uno de ellos. El
sistema operativo gestiona muchos tipos diferentes de recursos. Algunos (como ciclos de CPU, memoria principal y
almacenamiento de archivos) pueden tener un código de asignación especial,
mientras que otros (como los dispositivos de E/S) pueden tener una solicitud mucho más general y liberar código. Por
ejemplo, al determinar la mejor manera de usar la CPU, los sistemas operativos tienen rutinas de planificación de CPU
que tienen en cuenta la velocidad de la CPU, el proceso que debe ejecutarse, el número de kernels de procesamiento en
la CPU y otros factores. También puede haber rutinas para asignar impresoras, unidades de almacenamiento USB y otros
dispositivos periféricos.
Los propietarios de la información almacenada en un sistema multiusuario o un sistema de computación en red controlan
el uso de esa información. Cuando varios procesos separados se ejecutan simultáneamente, no debería ser posible que
un proceso interfiera con los otros o con el funcionamiento del sistema en sí. La protección implica garantizar que el
acceso al sistema, a los recursos, estén controlados. La seguridad del sistema se refiere a que personas externas ingresen
al sistema. Dicha seguridad comienza con la exigencia de que cada usuario se autentique o ella misma al sistema,
generalmente por medio de una contraseña, para obtener acceso a los recursos del sistema. Se extiende a la defensa de
dispositivos de E/S externos, incluidos adaptadores de red, desde intentos de acceso no válidos y controlando todas las
conexiones para la detección de robos. Si un sistema debe ser protegido y seguro, se deben instituir precauciones en todo
el mismo. Una cadena es tan fuerte como su eslabón más débil.
75. Explique cómo trabaja un intérprete de comandos, que significa que los comandos sean internos o externos?
La función principal del intérprete de comandos es obtener y ejecutar el siguiente comando especificado por
el usuario. Muchos de los comandos dados en este nivel manipulan archivos: crear, eliminar, enumerar,
imprimir, copiar, ejecutar, etc.
76. Que conviene, en intérprete de comandos sea parte del kernel o se ejecute como un proceso de usuario separado del
sistema operativo?
Conviene que el Intérprete de Comandos NO sea parte del kernel, porque es una interfaz de usuario y puede
variar según lo que distintos usuarios quieran pedirle, además de que se podrían incorporar nuevos comandos
o solicitudes, según como va cambiando la tecnología. Si se lo agrega al kernel, habría que recompilarlo cada
modificación, y además se suma más código en modo kernel, lo que no es bueno, por la estabilidad y
seguridad.
77. Qué actividades se puede realizar a través de las interfases gráficas de usuario?
Aquí, en lugar de ingresar comandos directamente a través de una interfaz de línea de comandos, los usuarios emplean
un Sistema de menú en una ventana basada en mouse caracterizado por un “escritorio” metafórico. El usuario mueve el
mouse para colocar su puntero en imágenes o iconos, en la pantalla (el escritorio) que representan programas, archivos,
directorios y funciones del sistema. Dependiente de la ubicación del puntero del mouse, hacer clic en un botón del mouse
puede invocar un programa, seleccione un archivo o directorio, conocido como carpeta, o desplegar un menú que
contiene comandos
Las llamadas al sistema proporcionan una interfaz para los servicios puestos a disposición por un sistema
operativo.
79. En que lenguaje están escritas las rutinas que dan los servicios que se ofrecen como llamadas al sistema?
Estas llamadas están generalmente disponibles como funciones escritas en C y C ++, aunque ciertas tareas de bajo nivel
(por ejemplo, tareas donde el hardware debe accederse directamente) puede que tenga que escribirse usando
instrucciones de lenguaje ensamblador.
80. Porque si existen las llamadas al sistema, los sistemas operativos ofrecen un interfaz de programación de
aplicaciones (API)?
La API especifica un conjunto de funciones que están disponibles para un programador de aplicaciones, incluidos
los parámetros que se pasan a cada función y los valores de retorno que el programador puede esperar. Tres de
las más comunes API disponibles para los programadores de aplicaciones son:
• API de Windows para sistemas Windows,
• API POSIX para sistemas basados en POSIX (que incluyen prácticamente todos versiones de UNIX, Linux y
macOS)
• API de Java para programas que se ejecutan en la máquina virtual Java.
la Función de Windows CreateProcess () (que, como era de esperar, se usa para crear un nuevo proceso) en realidad
invoca la llamada al sistema NTCreateProcess () en Kernel de Windows.
82. Cuáles son los tres métodos que se usan para pasar parámetros al sistema operativo?
control de procesos,
gestión de archivos,
gestión de dispositivos,
mantenimiento de información,
comunicaciones,
y protección.
Todos los procesos (salvo el primero, que es construido por el SO) son creados por las llamadas al sistema que piden
otros procesos. En el caso de los primeros procesos que se crean cuando se inicializa un SO, son necesarios porque dan
servicio a procesos de usuario (aplicaciones), como el demonio de impresión, de paginación, de intercambio, etc. Luego,
los procesos de usuario se van también creando a pedido (cuando el usuario quiere ejecutar programas). Todo esto es
porque es el SO el responsable de TODOS los procesos y debe llevar cuenta de ellos en sus mecanismos (tablas,
algoritmos, etc). De esa manera, al pasar la petición por una llamad al sistema, queda registrada y él puede tomar la
decisión de continuar o no con la solicitud, de acuerdo a los recursos, permisos, etc.
Primero necesitamos poder créate () y delete() archivos. Cualquiera de las llamadas al sistema requiere el nombre del
archivo y quizás algunos de los atributos del archivo. Una vez
el archivo está creado, necesitamos open() y usarlo. También podemos read(), write () o reposition () (saltar hasta el final
del archivo, por ejemplo). Finalmente, necesitamos close() el archivo, lo que indica que ya no lo estamos usando.
El sistema con múltiples usuarios puede requerir primero un request() (solicitud) de un dispositivo, para
garantizar su uso exclusivo. Después de que hayamos terminado con el dispositivo, nosotros release()
(liberarlo). Estas funciones son similares a las llamadas al sistema open () y close () para archivos.
88. Para qué se deben crear mecanismos de comunicación entre los procesos?
Hay dos modelos comunes de comunicación entre procesos: el modelo de paso de mensajes y el modelo de
memoria compartida.
En el modelo de paso de mensajes, los procesos intercambian mensajes entre sí para comunicación para
transferirse información
En el modelo de memoria compartida, los procesos usan las llamadas de sistema shared_memory_create () y
shared_memory_attach () para crear y obtener acceso a regiones de memoria que son propiedad de otros
procesos.
89. Qué diferencia hay a simple vista entre un programa que ejecute en un sistema operativo como MS-DOS y otro que
se ejecute en Fre BSD?
90. Qué diferencia hay entre el modelo de memoria compartida y el modelo de paso de mensajes?
El paso de mensajes es útil para intercambiar cantidades más pequeñas de datos, porque no es necesario cuidar los
conflictos. También es más fácil implementar que la memoria compartida para la comunicación entre computadoras. La
memoria compartida permite la máxima velocidad y mayor rendimiento en la comunicación, ya que se puede hacer a
velocidades de transferencia de memoria cuando tiene lugar dentro de una computadora.
Los programas del sistema proporcionan un entorno conveniente para el desarrollo y ejecución de programas.
92. Cuáles son algunas de las categorías en que se agrupan los programas del sistema?
Los programas del sistema proporcionan un entorno conveniente para el desarrollo y ejecución de programas. Se pueden
dividir en:
a. Manipulación de archivos
b. Información de estado, a veces almacenada en una modificación de archivo
c. Soporte de lenguaje de programación
d. Programa de carga y ejecución
e. Comunicaciones
f. Servicios de ejecución background (demonios)
g. Programas de aplicación
La visión del sistema operativo de la mayoría de los usuarios está definida por los programas del sistema, no por
las llamadas reales del sistema.
93. Porque es necesario que existan las llamadas al sistema si ya se ofrecen programas del sistema?
Los programas del sistema se armaron en base a los requerimientos de los usuarios sin mayor conocimiento de software
(los llamados no-calificados) y que se determinó que esos servicios que ofrecen son los más requeridos.
Las llamadas al sistema, son los servicios simples que ofrecen los SO a través de su interfaz de llamadas al sistema, para
atender necesidades que fueron solicitadas por los programadores de aplicaciones y que son muy específicas de ellas
rutinarias como copiar, editar, crear archivos, etc.
94. Cuáles son los objetivos de diseño de un sistema operativo? De qué depende?
95. Porque es conveniente dividir en objetivos del usuario y objetivos del sistema?
Porque uno contempla el aspecto, lo que percibe el usuario (el cliente) y otro es el arquitectónico, las funciones internas
y su implementación (la seguridad, la confiabilidad, etc.), objetivos que el usuario final da por hecho.
El primer problema en el diseño de un sistema es definir objetivos y especificaciones. Al más alto nivel, el diseño del
sistema se verá afectado por la elección del hardware y el tipo de sistema: computadora de escritorio/portátil
tradicional, móvil, distribuida, o en tiempo real
Más allá de este nivel de diseño más alto, los requisitos pueden ser mucho más difíciles de especificar. Sin embargo, los
requisitos se pueden dividir en dos grupos básicos: objetivos de usuario y objetivos del sistema.
Los usuarios quieren ciertas propiedades obvias en un sistema. El sistema debe ser conveniente de usar, fácil de aprender
y de usar, confiable, seguro y rápido. Por supuesto, estas especificaciones no son particularmente útiles en el diseño del
sistema, ya que no hay un acuerdo general sobre cómo lograrlos.
Las políticas determinan lo que se hará y los Mecanismos se usan para determinar cómo hacer algo.
98. Qué características tienen los sistemas operativos del tipo microkernel respecto de las políticas y de los mecanismos?
Los sistemas operativos basados en microkernel (discutidos en la Sección 2.8.3) separan mecanismo y política
a un extremo mediante la implementación de un Conjunto básico de bloques de construcción primitivos. Estos
bloques son casi libres de políticas, lo que permite que Se agreguen mecanismos y políticas más avanzados a
través del kernel creado por los módulos de usuario o programas de usuario propios.
99. Son las ventajas y desventajas de usar un lenguaje de alto nivel para escribir un sistema operativo?
El código se puede escribir más rápido, es más compacto y es más fácil de entender y depurar.
100. Cuáles son algunas de las posibles estructuras que pueden adoptar los sistemas operativos?
Un sistema tan grande y complejo como un sistema operativo moderno se debe diseñar cuidadosamente para que
funcione correctamente y se modifique fácilmente. Un enfoque común consiste en dividir la tarea en pequeños
componentes o módulos, más bien que tener un solo sistema. Cada uno de estos módulos debe estar bien definido como
porción del sistema, con interfaces y funciones cuidadosamente definidas. Puede usar un enfoque similar cuando
estructura sus programas: en lugar de colocar todo su código en la función main (),separa la lógica en un número de
funciones, articula parámetros claramente y devuelva valores, y luego llama a esas funciones de main ().
101. Qué diferencia hay entre una estructura simple como la de MS-DOS y la estructura de niveles como la de Unix?
En un SO como MS-DOS, no hay protección de espacio de kernel, ya que se ejecutaba en un Intel 8086, que tenía un único
modo de trabajo (no hay instrucciones privilegiadas). En cambio UNIX, desde que nació se ejecutaba en procesadores que
ofrecían modos privilegiados, que le permiten ejecutar su kernel con ese modo y aislarse de las aplicaciones en los
espacios de direcciones, lo que le da protección y jerarquía.
102. Porque se dice que algunos sistemas operativos son monolíticos? Dé ejemplos.
Un ejemplo de estructuración tan limitada es el sistema operativo original de UNIX, que consta de dos partes separables:
el kernel y los programas del sistema.
103. Qué ventajas tiene estructurar un sistema operativo con un enfoque por capas o niveles? Qué desventajas tiene
diseñar de este modo?
Que cada nivel da servicios o resuelve sólo funciones asignadas a ese nivel, por lo que sí o sí hay que pasar por él para
resolverlo. Así se arman jerarquías de niveles de servicios que deben ser respetados. Eso le da mucha estabilidad y
seguridad al sistema. Pero es muy lerdo porque a veces hay que acceder a niveles intermedios que sólo sirven de
puentes. Por otro lado, en general, para pasar por cada nivel, hay que cambiar de modo y de contexto de la CPU, lo que lo
hace más lento aún.
104. Porque algunas estructuras de sistemas se denominan de microkernel? Cuál es la función principal de un
microkernel?
El sistema operativo es la pieza fundamental del software y se ejecuta en modo kernel (también conocido como modo
supervisor). En este modo, el sistema operativo tiene acceso completo a todo el hardware y puede ejecutar cualquier
instrucción que la máquina sea capaz de ejecutar.
La función principal del microkernel es proporcionar comunicación entre el programa cliente y los diversos servicios
En los sistemas microkernel, hay procesos clientes y procesos servidores. Los dos tipos se ejecutan en modo usuario, pero
la comunicación entre ellos debe pasar por el kernel, quién sólo dirige o encamina esa comunicación, que lo hace
recibiendo y reenviando mensajes entre los procesos, lo que lo hace lento pero muy seguro.
QNX es un sistema operativo en tiempo real para sistemas integrados. El microkernel QNX Neutrino proporciona servicios
para pasan mensajes y planifican procesos. También maneja comunicaciones de red de bajo nivel e nterrupciones de
hardware. Todos los demás servicios en QNX son proporcionados por procesos estándar
108. Porque se dice que Windows nació casi como un sistema operativo de microkernel pero luego se transformó en un
monolítico?
Cuando se diseñó Windows XP, la arquitectura de Windows se había convertido más monolítico que microkernel.
109. Qué ventajas tiene un diseño modular o usar las técnicas de programación orientadas objetos para estructurar un
sistema operativo?
Aquí, el kernel tiene un conjunto de componentes y pueden enlazarse en servicios adicionales a través de módulos, ya
sea en el momento del arranque o durante el tiempo de ejecución. Este tipo de diseño es común en implementaciones
modernas de UNIX, como Linux, macOS y Solaris, así como Windows.
La idea del diseño es que el kernel proporcione servicios básicos, mientras que otros servicios se implementan
dinámicamente a medida que se ejecuta el kernel.
El sistema operativo macOS de Apple está diseñado para ejecutarse principalmente en computadoras de escritorio y
Las máquinas virtuales son software que simulan o abstrae el hardware de la computadora (cpu, memorial,
unidades de disco, etcétera), creando así la ilusión de que es otro el hardware donde se está ejecutando.
113. Como se logra implementar una máquina virtual? A que se denomina modo usuario virtual y modo kernel virtual?
• está la protección que se ofrece por estar completamente aislada de las demás.
(en una misma máquina pueden estar servidores de archivo, de base de datos, Web, etc.)
116. Explique cómo hace para ejecutar un programa que fue escrito en Java?
Generalmente, cuando se arranca un sistema operativo se crean varios procesos. Algunos de ellos son procesos en primer
plano; es decir, procesos que interactúan con los usuarios (humanos) y realizan trabajo para ellos. Otros son procesos en
segundo plano, que no están asociados con usuarios específicos sino con una función específica
• Sección de almacenamiento dinámico: memoria que se asigna dinámicamente en la ejecución del programa
• Sección de pila: almacenamiento temporal de datos al invocar funciones (como parámetros de función,
direcciones de retorno y variables locales)
83. Explique por qué motivo los procesos transicionan de estado en estado (mostrando para cada una de las
transiciones)
84. explique que es el bloque de control de procesos (PCB), para qué sirve?
el PCB simplemente sirve como repositorio de todos los datos necesarios para comenzar o reiniciar, un
proceso, junto con algunos datos contables.
85. Muestre cada uno de los campos que posee un PCB y explique cuál es su sentido.
92. Explique qué sucesos podrían ocurrir después de que a un proceso se le asigne la CPU.
De acuerdo a lo que se ve en la diapositiva 14 del Cap 3 de Procesos, un proceso que está en ejecución (tiene
asignada la CPU), podría abandonar ese estado porque: a) Finaliza (normal o anormalmente) b) Se le
termina el tiempo de asignación de la CPU (si el planificador de CPU, trabaja por asignación de tiempo) y
vuelve al estado Ready c) Solicita una operación de E/S d) pidió la creación de un proceso hijo con fork() o
e) espera por un evento (espera una interrupción que lo saque de la espera. En las 3 últimas opciones el
proceso pasa al estado de bloqueo, donde espera por sucesos.
93. Qué sentido tiene el llamado planificador a largo plazo? Cada qué tiempo se ejecuta?
Respuesta en la imagen de pregunta 17
94. Porque se le denomina planificador de corto plazo al scheduler?
Respuesta en la imagen de pregunta 17
• Aprueba la llamada fork, para crear un hijo (al verificar los permisos y que hay lugar en la tabla de
procesos: necesita una entrada nueva, para crear un PCB)
• Llena el PCB nuevo (del hijo) con: un nuevo número PID, y hereda todos los entornos (valores de los
registros) de la CPU que estaba usando el padre
• O sea hace una copia exacta del código y datos del padre (en realidad, todavía no genera un nuevo
espacio, hasta que no se modifiquen datos en el hijo, así que el hijo comparte los links del padre al
mismo espacio del padre)
• También el hijo comparte los recursos (archivos abiertos y dispositivos abiertos) del padre
• Luego asigna un número al padre (el PID asignado al hijo) y Cero al hijo
• Luego el planificador decide quién sigue en ejecución (el padre o el hijo, ya que los dos tienen la misma
prioridad)
102. A que se denomina árbol de procesos? Qué función cumple el proceso init?
los procesos nuevos se denominan hijos de ese proceso. Cada uno de estos nuevos procesos a su vez puede
crear otros procesos, formando así un árbol de procesos.
El proceso init como el nuevo padre de procesos huérfanos.
103. Cuáles son las posibilidades de sucesos para un proceso padre, cuando acaba de crear un hijo, en
términos de ejecución?
a) El padre continúa ejecutándose simultáneamente con sus hijos.
b) El padre espera hasta que algunos o todos sus hijos hayan terminado.
c) También hay dos posibilidades de espacio de direcciones para el nuevo proceso:
d) El proceso hijo es un duplicado del proceso padre (tiene el mismo programa y datos como padre).
e) El proceso hijo tiene un nuevo programa cargado.
104. Cuáles son las posibilidades de sucesos para un proceso padre, cuando acaba de crear un hijo, en
función del espacio de direcciones del nuevo proceso?
El nuevo proceso consiste en una copia del espacio de direcciones del proceso original.
Este mecanismo permite que el proceso padre se comunique fácilmente con su proceso hijo. Ambos procesos
(el padre y el hijo) continúan la ejecución en la instrucción después de fork (), con una diferencia: el código de
retorno para fork () es cero para el nuevo proceso (hijo), mientras que el número de identificador del proceso
del hijo (distinto de cero) es devuelto al padre.
105. Explique con el máximo detalle posible que pasos se realizan cuando se ejecuta fork.
106. Explique los sucesos que ocurren cuando se ejecuta el código de la figura 3.8.
107. Muestre la diferencia entre fork y CreateProcess.
Mientras que fork () tiene el proceso hijo heredando el espacio de direcciones de su padre, CreateProcess ()
requiere cargar un programa específico en el espacio de direcciones del proceso hijo en la creación del
proceso. Además, mientras que fork () no pasa parámetros, CreateProcess () espera no menos de 10
parámetros
113. Como se caracteriza a los procesos que se ejecutan concurrentemente? Que significa que un
proceso sea independiente?
Los procesos dentro de un sistema pueden ser independientes o cooperantes.
Un proceso independiente no puede afectar o verse afectado por la ejecución de otro proceso.
Los procesos cooperativos pueden afectar o verse afectado por otros procesos, incluido el intercambio de
datos
114. Cómo definiría un proceso cooperativo?
cualquier proceso que comparta datos con otros procesos es un proceso cooperativo
115. Cuáles son las ventajas que brinda la ejecución concurrente de procesos cooperativos?
• Comparten información
• Aceleración de la computación
• Modularidad
• conveniencia
116. Porque es necesaria la comunicación entre procesos?
La cooperación de procesos requiere un mecanismo de comunicación entre procesos (IPC) que les permitirá
intercambiar datos, es decir, enviar datos y recibir datos el uno del otro.
117. Explique el modelo de memoria compartida de comunicación interproceso.
En el modelo de memoria compartida, se establece una región de memoria compartida para los procesos
cooperantes. Los procesos pueden intercambiar información leyendo y escribiendo datos en la región
compartida.
118. Explique cómo tiene lugar la comunicación interproceso cuando el modelo es de paso de mensajes.
En el modelo de paso de mensajes, la comunicación se realiza mediante intercambio de mensajes entre
procesos cooperativos.
119. Ventajas y desventajas del modelo de memoria compartida.
El paso de mensajes es útil para intercambiar pequeñas cantidades de datos, porque no es necesario evitar
conflictos. El Paso de mensajes también es más fácil de implementar en un sistema distribuido que la memoria
compartida.
120. Ventajas y desventajas del modelo de paso de mensajes.
La memoria compartida puede ser más rápida que la transmisión de mensajes, dado que los sistemas de paso
de mensajes generalmente se implementan utilizando llamadas al sistema y por lo tanto, requieren una mayor
intervención del kernel. En los sistemas de memoria compartida, las llamadas al sistema solo son necesarias
para establecer regiones de memoria compartida. Una vez que se establece la memoria compartida, se tratan
todos los accesos como accesos a memoria normal (en espacio de usuario), y no se requiere asistencia del
kernel.
132. Cómo afecta el tamaño del almacenamiento en buffer a los procesos que hacen las llamadas send
y receive?
133. Como se da la comunicación de procesos en memoria compartida en POSIX?
134. Como se da la comunicación de procesos en un sistema operativo como Mach?
135. Qué ventajas tiene la llamada a procedimiento remoto (RPC)?
136. Cómo trabajan los buzones en Mach?
Los mensajes son enviados, y recibidos de buzones, que se llaman puertos en Mach. Los puertos son de
tamaño finito y unidireccional; para comunicación bidireccional, se envía un mensaje a un puerto, y se envía
una respuesta a un puerto de respuesta separado. Cada puerto puede tener múltiples remitentes (emisores),
pero solo un receptor. Mach usa puertos para representar recursos tales como tareas, hilos, memoria y
procesadores, mientras que el paso de mensajes proporciona un enfoque orientado a objetos para interactuar
con estos recursos del sistema y servicios.
137. Cómo se comunican los procesos en un sistema operativo como Windows ?
138. A que le denomina llamada a procedimiento local (LPC) Windows?
El recurso de paso de mensajes en Windows se llama llamada a procedimiento local avanzado (ALPC). Se
utiliza para la comunicación entre dos procesos de la misma máquina.
139. Son los dos tipos de puertos que usa Windows?
Windows utiliza dos tipos de puertos: puertos de conexión y puertos de comunicación.
140. Cómo funciona la comunicación en Windows ? Cuál es la limitación del tamaño del mensaje?
La comunicación funciona de la siguiente manera:
➢ El cliente abre un identificador (handle) para el objeto de puerto de conexión del subsistema.
➢ El cliente envía una solicitud de conexión
➢ El servidor crea dos puertos de comunicación privador y devuelve el identificador a uno de ellos para
el cliente.
➢ El cliente y el servidor usan el identificador de puerto correspondiente para enviar mensajes o
devoluciones de llamadas y para escuchar las respuestas.
141. A que se denomina descriptor en esta comunicación?
142. A que se denomina comunicación en sistemas cliente-servidor?
describimos cómo se pueden comunicar los procesos mediante el uso de memoria compartida y paso de
mensajes. Estas técnicas últimas se pueden utilizar para la comunicación en sistemas cliente-servidor
143. Que es un socket? Cómo funciona la comunicación con socket?
Un socket se define como un punto final para la comunicación.
Los sockets permiten que dos procesos en diferentes máquinas se comuniquen a través de una red.
144. Cómo funciona una llamada a procedimiento remoto (RPC)?
46. Explique que significa que los hilos son soportados en el nivel de usuario y su diferencia con aquellos hilos
soportados por el kernel.
Los soportados en el nivel de usuario: son los que el kernel no sabe de su existencia y deben ser administrado
en nivel de usuario. En librerías o bibliotecas que se ejecutan en modo usuario
Los soportados en el nivel de kernel: éste ya conoce su existencia y los administra (planifica, despacha,
sincroniza, etc.)
47. Explique el modelo muchos a uno. Qué ventajas y desventajas ofrece.
asigna muchos hilos de nivel de usuario a un hilo de kernel. La administración de hilos es realizada por la
biblioteca de hilos en el espacio del usuario, entonces es eficiente
48. Explique el modelo uno a uno. Qué ventajas y desventajas ofrece.
asigna cada hilo de usuario a un hilo del kernel. Eso proporciona más concurrencia que el modelo de muchos a
uno al permitir que otro hilo se ejecute cuando un hilo hace una llamada al sistema bloqueante. También
permite múltiples hilos para ejecutarse en paralelo en multiprocesadores. El único inconveniente de este
modelo es que crear un hilo de usuario requiere crear el correspondiente hilo del kernel, y una gran cantidad
de hilos del kernel pueden afectar el rendimiento de un sistema.
49. Explique el modelo muchos a muchos. Qué ventajas y desventajas ofrece.
multiplexa muchos hilos de nivel de usuario para un número menor o igual de hilos de kernel. El número de
hilos del kernel puede ser específico para una aplicación particular o una máquina particular (una aplicación se
puede asignar más hilos de kernel en un sistema con ocho núcleos de procesamiento de que un sistema con
cuatro núcleos).
53. Qué cuestiones surgen con las llamadas al sistema fork y exec, en los programas multihilos?
54. Cuáles son las distintas maneras de terminar un hilo. Qué características tienen cada una?
1. Cancelación asincrónica. Un hilo termina inmediatamente el objetivo hilo.
2. Cancelación diferida. El hilo objetivo verifica periódicamente si debería terminar, permitiéndole la
oportunidad de terminar de una manera ordenada.
56. Qué diferencia hay en recibir una señal en forma síncrona o asíncrona?.
Las señales síncronas se entregan al mismo proceso que realizó la operación que causó la señal (esa es la razón
por la que se consideran sincrónico).
Cuando una señal es generada por un evento externo a un proceso en ejecución, El proceso recibe la señal de
forma asíncrona.
57. Cuáles son las distintas variantes en el tratamiento de las señales por parte de los procesos?
Las señales pueden ser sincrónicas (deben ser atendidas ya sea porque las generó el mismo proceso y no
pueden ser ignoradas). Pueden ser asincrónicas, cuando se generan en un evento externo al proceso (usuario,
proceso padre o kernel), en este caso pueden ser ignoradas, postergadas u obligadas a ejecutar. También
pueden clasificarse si el programa para atender esa señal, el código ya está presente en el kernel o será
definido por el usuario.
58. Cuál es el equivalente en Windows de las señales en Unix?.
Texto extraído del libro Sistemas Operativos Modernos de Tanenbaum 3era Edic, Cap 10, Pág 745 (dado como bibliografía
de consulta)
Señales en UNIX. En este caso usan las señales como alarmas o anunciadores de eventos
Un proceso sólo puede tener una alarma pendiente en cualquier momento. Si se hace una llamada a alarm con un
parámetro de 10 segundos, y 3 segundos después se hace otra llamada a alarm con un parámetro de 30 segundos, sólo se
generará una señal 20 segundos después de la segunda llamada. La segunda llamada a alarm cancela a la primera.
Windows, que apareció más de 20 años después que UNIX, usa Objetos para casi toda su arquitectura y dispone de
Objetos tipo Eventos para dar un servicio similar y mejorado que las señales en UNIX. La principal ventaja es que se
pueden almacenar y encolar varios eventos que el proceso (a través de la ejecución de sus hilos) puede o debe ejecutar
su código. UNIX en su versión original sólo permitía alojar un solo número de señal (el número funciona como un
puntero, al igual que las interrupciones), por lo que si al proceso le enviaban otra señal, se borraba la anterior. Cap 11,
Pág 842:
El administrador de objetos administra la mayoría de los objetos interesantes en modo de kernel que se utilizan en el
nivel ejecutivo. Éstos incluyen los procesos, hilos, archivos, semáforos, dispositivos y drivers de E/S, temporizadores y
muchos otros.
O sea: el kernel asigna estos procesadores virtuales o procesos livianos, que en realidad son estructuras de
control que, al ponerlas en el medio de los hilos del kernel y los de usuario, podrían bloquearse sin bloquear
todo el proceso y no se crean tantos hilos del kernel, ya que ese que se correspondía con el proceso liviano
bloqueado, ahora puede asignarse a otro proceso liviano, donde se puede ejecutar otro hilo de usuario.
Texto extraído del libro Sistemas Operativos Modernos de Tanenbaum 3era Edic, Cap 11, Pág 864 (dado como
bibliografía de consulta)
La principal ventaja de las fibras es que la sobrecarga de cambiar entre una fibra y otra es bastante menor que la
sobrecarga de cambiar entre un hilo y otro. Para un cambio de hilo se requiere entrar y salir del kernel. En un cambio
de fibra se guardan y restauran unos cuantos registros sin cambiar los modos.
Windows, tiene una estructura compleja, porque trata de optimizar todo lo que puede con toda la “herencia que no
puede abandonar, por su OBJETIVO: Compatibilidad con sistemas anteriores”. Así, todavía conserva el concepto de
Trabajo o Job antiguo, ahora le llama tarea: sobre ésta carga todos los recursos que los procesos del mismo usuario
van usando y lo limita, para que no se “despilfarro”. Luego como novedoso tiene concepto de “fibra”, para decir que
es más liviano que un hilo, ya que se administra en espacio de usuario (éste no depende directo de un único hilo)