Está en la página 1de 9

1.

Si un “componente de un sistema operativo” se define como un programa que co-ayuda a


manejar los cálculos del usuario o los recursos, ¿calificarían los siguientes programas para ser
designados como componentes de un sistema operativo? Dé una respuesta de si/no
SUSTENTADA con argumentos.
a. El compilador para un lenguaje de programación concurrente.

Si, puesto que los procesos en ejecución de un programa concurrente son gestionados por el sistema
RTSS, el cual hace parte del sistema operativo. Ahora bien, existen dos tipos de estrategias para
agregar el RTSS:

 Al código se introduce sentencias de acceso en el sistema operativo, gestionando así los


procesos.
 El RTSS es asignado al código ejecutable del programa por él compilador.

Conocido estos dos tipos de estrategias, se tiene que el compilador del lenguaje concurrente genera
un RTSS, agregando todas las facultades de gestión en cada uno de los procesos, puesto que son los
encargados de mapear la concurrencia lógica teniendo en cuenta el hardware disponible, para luego
ser empaquetados con los códigos de todos los procesos que constituyen el programa, de forma que
se ve como un programa global, él cual es ejecutado por el sistema operativo.

b. El procesador de comandos
SI, porque es el programa que ejecuta los comandos en el sistema operativo, algunas veces llamada
Shell. Por ejemplo, en los sistemas operativos gráficos el procesador de comandos interpreta las
operaciones con periféricos como el teclado, una pantalla táctil, un mouse óptico inalámbrico, entre
otros, ejecutando de esta manera el comando correcto, ingresado por el usuario, dando una
respuesta idónea, requerida por esa instrucción ingresada y gestionada. En MS-DOS este procesador
está ubicado en un archivo llamado COMMAND.COM, almacenado en la memoria principal.
c. El programa ssh (este programa se usa para el uso remoto de un sistema de cómputo,
security Shell)
No, debido a que es un protocolo que permite a los usuarios registrarse y acceder a sistemas y
máquinas remotas por medio de una red SHELL. Este protocolo hace comunicación a través de TCP, y
es por este medio que garantiza que las ordenes van a llegar a su destino final. Este protocolo se usa
para encriptar reemplazando métodos como telnet, rsh y rcp. Por ende, no es un componente del
sistema operativo, es un protocolo.
d. El sistema de archivos.
Si, puesto que al considerar que es parte del sistema operativo, se está afirmando que es un software
el cual gestiona los archivos almacenados de forma relacionada y organizada. El sistema operativo es
quien se encarga de construir, manipular y eliminar tanto archivos como directorios, es por tanto que
es necesario un sistema que gestione los archivos, los cuales están ubicados en el almacenamiento
secundario. Todo esto con el objetivo de proporcionar a los usuarios y aplicaciones, la administración
de los archivos permitiendo el acceso y un cierto grado de control de los mismos, pero ocultando los
aspectos específicos de recursos o dispositivos necesarios, proporcionando una abstracción de los
archivos con nombre.
2. Un trabajo contiene 5 tarjetas de datos en un paso del trabajo. Sin embargo, el programa de
paso del trabajo trata de leer 10 tarjetas. Explique claramente las acciones del procesador de
comandos cuando el programa trate de leer la sexta tarjeta y las subsiguientes.

La lectura de la sexta tarjeta en adelante, genera un error durante la ejecución del programa, por un
lado, porque es un error de hardware, en específico un error de memoria, o un fallo en un
dispositivo, por la ausencia de la tarjeta; a su vez genera errores de software, debido la incapacidad
del sistema operativo para conceder la solicitud de la aplicación. Sin embargo, en cada caso, el
sistema operativo debe proporcionar una respuesta que elimine la condición de error, suponiendo el
menor impacto en las aplicaciones que está en ejecución. La respuesta puede oscilar entre finalizar el
programa que causó el error hasta reintentar la operación o simplemente informar del error a la
aplicación.
Ahora desde el procesador, ejecuta instrucciones de la zona de memoria principal que contiene el
monitor. Estas instrucciones provocan que se lea el siguiente trabajo y se almacene en otra zona de
memoria principal. Una vez que el trabajo se ha leído, el procesador encontrará una instrucción de
salto en el monitor que le indica al procesador que continúe con la ejecución al inicio del programa
de usuario. El procesador entonces ejecutará las instrucciones del programa usuario hasta que
encuentre una condición de finalización o de error. Cualquiera de estas condiciones hace que el
procesador ejecute la siguiente instrucción del programa monitor.

Por lo que quiere decir que se da la terminación del proceso luego de tratar de leer las tarjetas del 6
al 10, siendo el 10 como condición de salida, y los otros como errores de lectura en los ficheros que
no existen, dando así una llamada al sistema operativo para indicar que ha completado su ejecución.
Pero si el proceso se ha ejecutado más tiempo del especificado, también puede salirse del proceso
por límite de tiempo excedido lo que quiere decir que en el caso del registro de lectura en el
programa 6, 7, 8 y 9 se puede dar esta condición, sin embargo, es posible que el tiempo nos sea
quien determine este error sino más bien la falta de memoria disponible, en cualquiera de los casos
el programa ni el sistema operativo se ven afectados en su normal desarrollo, lo que sucede es que el
tiempo de respuesta se va a tardar mas de lo esperado, pero continuando con el normal desarrollo
del programa.

Ahora estos no son los únicos errores que se pueden dar otro es el fallor de E/S, debido a que
durante la operación de lectura no es posible encontrar el fichero que guarda las posición 6, luego la
posición 7 así sucesivamente, claro está luego de un límite máximo de intentos.

El sistema de gestión de procesos podría abortar el proceso, debido a que puede alcanzar su punto
máximo natural de finalización, porque es un error no recuperable. De esa forma se puede dar un
cambio de proceso, esto se da cuando el programa tiene un mecanismo para la interrupción de la
ejecución de un proceso, manejando con ese mecanimo una condición de salida al ser verdadero ese
error.

En conclusión se puede decir que la lectura sería efectiva de las primera 5 tarjetas, luego entraría a
funcionar la detección de errores para no quedar bloqueado a esperar a que se conecte la tarjeta,
haciendo que el procesador reconocimiento de las otras tarjetas verificando si están presentes o si
están en buen estado o si no tienen fallas, si cumple la condición de estar disoinibles en uso entonces
las reconoce y las usa, de lo contrario por lo ya mensionado salta de instrucción, salta de proceso
pero con el atenuante que el proceso va a demorar, por los intentos en la lectura, debido a que el
sistema operativo debe estar verificando si ya están disponibles las tarjetas.
3. Cuando un programa de prioridad alta inicia una operación de E/S, un sistema de
multiprogramación conmuta a la ejecución de un programa de prioridad baja. Dé una
explicación paso a paso de cómo se logra esto. (Sugerencia: Un programa inicia una
operación de E/S haciendo una llamada de sistema)

Podemos definir una interrupción como una señal o un cambio de estado recibido por el procesador,
para indicarle que deje de ejecutar la tarea que en ese momento está realizando, para pasar a
ejecutar una subrutina de servicio de interrupción, y luego regrese y continúe la tarea que estaba
realizando antes de que se presentara la interrupción.

Entonces, las interrupciones de E/S en los sistemas operativos son establecidas en principio por
hardware de entrada y salida o periféricos, indicando a la CPU un cambio de estado de un canal o
dispositivo y son producidas en el momento que un dispositivo pasa de inactivo al estado listo.

Hay una técnica denominada DMA o acceso directo de memoria, se utiliza cuando el controlador
debe encargarse de transferir los datos entre el periférico y la memoria principal, sin requerir
intervención alguna por parte del procesador.

Esta técnica se da cuando la CPU tiene como tarea la transferencia de datos una vez detectado la
disponibilidad de estos en el controlador, ya sea por una señal E/S o interrupciones internas tanto de
hardware como de software. Para incrementar la concurrencia entre la CPU y la E/S, el controlador
del dispositivo se debe encargar de la transferencia de datos, de esta manera se debe interrumpir a
la CPU sólo cuando haya terminado la operación completa de E/S.

Entonces cuando un programa de prioridad alta inicia una operación de E/S, indica al controlador,
esta operación, la dirección de memoria y los datos a transferir de la operación que se va a efectuar.
La interrupción es suspendida transitoriamente del proceso actual almacenando en memoria RAM
un bloque con toda la información indispensable para restablecer posteriormente la ejecución.
Luego el sistema conmuta el proceso de multiprogramación retirándolo del proceso actual para
asignárselo a la operación E/S.

Se debe tener en cuenta que para conmutar el sistema de multiprogramación tiene las siguientes
características:

 Se debe cambiar el proceso de multiprogramación que posee la CPU por el de la interrupción


de E/S.
 El tiempo de latencia en la conmutación es inútil, es un gasto extra. Este tiempo depende del
soporte del procesador.
 Los procesos se encuentran en colas: Trabajos, Procesos listos y Dispositivos (conjunto de
procesos esperando un dispositivo E/S).

Luego de capturar la interrupción y de conmutar, la operación para gestionar la prioridad alta es:

 Control de las unidades de información transferidas para reconocer el fin de la operación.


 Sincronizar las velocidades entre la CPU y los periféricos en cuestión.
 Detección de errores mediante la utilización de los códigos como: bits de paridad, códigos de
redundancia cíclica, entre otros indicadores.
 Almacenamiento temporal de la información, como la utilización de buffer temporal para las
operaciones de E/S que utilizan el área de datos del programa.

Una vez terminada la ejecución se restablece el programa original en el mismo punto en que fue
interrumpido usando para ello la información almacenada previamente.
4. Describa las acciones del kernel cuando los procesos hacen llamadas de sistema para los
siguientes propósitos:

EL kernel o núcleo es el componente central de la mayoría de los sistemas operativos. Es el


encargado de administrar a los distintos programas acceso seguro al hardware. Sus
responsabilidades incluyen la gestión de los recursos del sistema a través de servicios de llamada al
sistema, a su vez tiene la facultad de multiplexado, lo que quiere decir que toma decisiones sobre
qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo.

a. Una petición de recepción para un mensaje.


Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa que el
procesador transfiera el control a un código privilegiado (generalmente es el núcleo), previamente
especificado. Esto permite al código privilegiado especificar donde va a ser conectado así como el
estado del procesador.

Una llamada al sistema es una interfaz entre una aplicación del espacio del usuario y un servicio que
provee el kernel. Estas llamadas usan instrucciones especiales de la CPU causando la transferencia a
un código privilegiado el cuál es el kernel, permitiendo la especificación de a dónde se va a conectar,
así como el estado del procesador. Debido a que no es posible realizar una llamada directa en el
kernel, se debe cruzar el límite entre el espacio del usuario y el kernel. Cada llamada al sistema se
somete a un proceso de multiplexación al kernel a través de un único punto de ingreso.

b. Una petición de memoria

El Kernel, al requerir memoria dinámica, crea y destruye con cierta frecuencia crea y destruye tablas
y buffers durante la ejecución, asignación de memoria dinámica para cada una. Por lo general los
objetos signados como estructuras de procesos son significativamente más pequeños que el tamaño
de página en las máquinas normales, por tanto, el mecanismo de paginación sería inútil en la
asignación de memoria dinámica. Para esto se utiliza un sistema llamado Buddy System, debido a
que el coste de asignar y liberar un bloque de memoria es bajo, sin embargo, en la gestión de
memoria del kernel las operaciones de asignación y liberación deben hacer en el menor tiempo
posible, por lo que el Buddy System, su mayor problema es el tiempo de gestión en estas dos tareas,
debido a que es un sistema para la gestión de la partición de memoria buscando un equilibrio entre
los esquemas estáticos y dinámicos de memoria.

Lo que quiere decir para una petición de memoria, la administración de memoria por parte del
kernel necesita los siguiente:

 Memoria principal
 Direccionamiento
 Gestión de memoria
 Espacio de direcciones de un proceso
 Unidad de Manejo de Memoria
 Subsistema Gestión de Memoria
 Paginación

Todo esto se necesita debido a que el kernel usa las páginas como unidad básica en la administración
de memoria, por petición. También ofrecer a cada proceso un espacio lógico, proporcionar
protección entre procesos, maximizar el rendimiento del sistema, minimizar la fragmentación y
optimizar el uso del cache.

c. Solicitud de información del estatus en relación con un proceso

El Kernel o núcleo poseen algunas funciones básicas como la carga y ejecución de los procesos,
plantear una interfaz que relacione espacio del kernel y los programas que son propios en el espacio
del usuario, administrar la memoria y el tiempo para los programas y procesos que se estén
ejecutando y los E/S para que se pueda acceder a los periféricos.

Una de esas funciones que le competen al kernel, es el tratamiento de los procesos, debido a que en
un sistema operativo se ejecutan una gran variedad de programas, por ende, una gran cantidad de
procesos, debido a que en ejecución los procesos deben progresar en forma secuencial algunos
parámetros como es el contador de programa, el stack y la sección de datos.

Ahora en un modelo de procesos de estados, el sistema operativo controla la ejecución de los


procesos. Siendo así, se debe saber cómo es el estado de un proceso, debido a que mientras se
ejecuta el cambia. Entonces mientras un proceso se ejecuta puede pasar por los siguientes estados
(No siendo los únicos):

 Nuevo
 Corriendo o en ejecución
 En espera o puede estar Bloqueado
 Listo para ser asignado
 Terminado

Teniendo en cuenta que el kernel puede tomar decisiones sobre un proceso basado en el estado del
mismo, como puede ser suspender el proceso que sospeche debido a que causa un problema o el
estado puede indicar al sistema operativo la liberación de memoria para un nuevo proceso, como
también puede darse por solicitud de cliente, entre otros, lo que da un control y administración de
los procesos basados en los estados, por parte del kernel en función del sistema operativo.

d. Solicitud para crear un proceso


En la administración de procesos, el kernel se encarga de poner un entorno multiprogramable,
creando procesos padres, quienes a su vez crean procesos hijos formando un árbol de procesos. El
entorno permite que todos los procesos que están en la cola de procesos, esperen a ser ejecutados
en la CPU. Luego de esperar su turno a ser ejecutados, salen de la cola de procesos y ahora el
proceso que se encarga de decidir quién es el que pasa a estado ready o un estado de ejecutándose
es el scheduler, debido a que agrega y elimina procesos de la tabla de procesos. Otro elemento al
lado del Schedule es el Dispacther, es quien controla la asignación de slice de tiempo a los procesos,
en la tabla de procesos, debido a que es un planificador de corto término. Cada proceso de usuario
se ejecuta en su propio espacio de usuario, lo que implica que puede compartirse entre procesos si
se pide, o bien automáticamente si el kernel lo cree apropiado.
El estado de cada proceso en su vida útil es: ejecutándose en el procesador, durmiendo o esperado a
que un evento se termine, listo para ser ejecutado y esperado en la cola de procesos, parado ya sea
por una señal de control o porque están haciéndole un trace o zombie el proceso está a punto de ser
eliminado.

Adicional a esto cada proceso tiene: Un contexto, es una copia con los registros de la CPU que
indican el estado del proceso, Un descriptor de procesos, es una estructura de datos que guarda toda
la información relacionada con un proceso.

e. Solicitud para terminar un proceso hijo


Como ya se sabe, la creación de un proceso es la formación de un árbol de procesos, generado por el
padre creando procesos hijos, de forma que se pueden compartir recursos o subconjunto de los
recursos o no se comparten ningún recurso y en la ejecución padres e hijos se ejecutan
concurrentemente o los padres esperan hasta que los hijos terminen.

Teniendo en cuenta como es la creación y la ejecución de procesos, el proceso ejecuta la última


sentencia, es decir los datos de salida del hijo se pasan al padre y los recursos de los procesos son
liberados por el sistema operativo.

Ese sería un proceso donde el padre espera, pero hay una forma donde el padre puede terminar el
proceso del hijo, debido a que excedido los recursos asignados o el padre está terminando su
proceso y el sistema operativo decide terminar el proceso del hijo, por jerarquía de procesos,
adicional la terminación del proceso es en cascada.

5. Describa cómo el número de acciones de planificación realizadas en un sistema operativo


depende de la ocurrencia de los eventos en el sistema. Desarrolle una fórmula para calcular
el número de veces que u sistema operativo realiza la planificación.

Para la planificación de procesos se debe tener en cuenta los siguiente:

 Planificador de Jobs: Selecciona cual y que procesos deberían ingresar a la cola de procesos
listos.
 Planificador de CPU/Dispatcher: Selecciona que procesos deben ser ejecutados, repartiendo
el tiempo disponible entre los procesos que están disponibles y de esa forma saber cuales
son los que estén próximos a ser ejecutados por la CPU.
 Planificación de mediano término: Procesos parcialmente ejecutados al swapping.
 El planificador de Jobs es ejecutado es invocado con poca frecuencia y controla el grado de
multiprogramación, estando limitados por E/S y la CPU.

Los parámetros son los siguientes:


 Entrada en la tabla de procesos
 Rango de prioridad
 Clase de procesos
 Valor asociado a la cola de procesos

Cálculo:
Función de decaimiento
CPU=CPU/2
Prioridad de procesos
Prioridad=Uso_reciente_CPU/2+nivel_base__prioridad_usuario

6. Explique por qué las listas libres en un sistema acompañante están doblemente ligadas.

El sistema operativo administra de dos formas de llevar el registro de uso de la memoria, cuando a la
memoria se le asigna de forma dinámica: mapas de bits y listas libres.

Una forma de llevar el control de la memoria es mantener una lista enlazada de segmentos de
memoria asignados y libres, donde un segmento de proceso o también llamado hueco entre dos
procesos. Esta forma es con una lista ligada de segmentos de la memoria asignados y libres, donde
un segmento es un proceso o un espacio entre dos procesos: estado, dirección, tamaño. Cuando los
procesos y los huecos se mantienen en la lista ordenada por direcciones se pueden utilizar diversos
algoritmos para asignar la memoria para un proceso de reciente creación o intercambio.

Por lo tanto, la administración de la memoria con listas enlazadas se caracteriza por:

 Al momento de asignar un nuevo hoyo o proceso se convierte en segmento asignado y es


una hoyo mas pequeño.
 Best-fit deja hoyos pequeños.
 Worstfit deja hoyos grandes
 Es mas probable que el número de entradas en la lista aumente.
 Es mas probable que el número de entradas en la lista disminuya.
 La memoria se representa como una lista enlazada, que para el caso es doblemente
enlazada.
 Cada nodo de lista representa un bloque, su dirección, su longitud y un puntero, que para el
caso son dos al nodo siguiente y el nodo anterior.
 El doble enlace de los nodos permite recorrer la lista en cualquier dirección.

7. El tamaño de la memoria física asignada a un proceso un sistema de memoria virtual con


paginamiento se mantiene constante y el tamaño de página es variable. (Con esta acción se
hace variar el número del proceso en la memoria) Elabore un diagrama de tamaño de página
contra razón de fallos de página esperados.

8M

4M

20 M

6M

 Para la capacidad de 8M, se alcanza a cubrir con los 16M


 Para la capacidad de 4M es mas que suficiente, debido a que se va a almacenar en 12 M.
 El requerimiento de 20M va a provocar pérdidas debido a que va a faltar 12 M y generando
errores.
 Para el requerimiento de 6M lo que sucede es que queda muy justo, por lo tanto queda a
con un cierto grado de incertidumbre por la perdida o no de información,

También podría gustarte