Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
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:
Luego de capturar la interrupción y de conmutar, la operación para gestionar la prioridad alta es:
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:
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.
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.
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.
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.
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.
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.
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.
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.
8M
4M
20 M
6M