Portada » Informática » Examen de sistema operativo
El sistema operativo es un programa que se encarga de cubrir el hardware para facilitar el uso
del computador, lo que lleva a cabo mediante la realización de tres funciones principales:
operativo, que debe ocuparse de asignar los recursos de la computadora a los programas
en ejecución, así como de evitar que unos programas accedan a los recursos de los otros y
de llevar la contabilidad de los recursos consumidos por cada programa. Tiene como
principal tarea administrar los diferentes procesos que pueden estar en ejecución en la
máquina simultáneamente. Lo más importante es saber, mediante las estructuras
adecuadas, que recursos están libres y cuáles ocupados. Atendiendo a esto deberá asignar
a los procesos en ejecución, dependiendo de la prioridad de cada uno, unos recursos
determinados y recuperar, para su aprovechamiento, los que han quedado libres porque
un proceso ha terminado. El sistema operativo deberá también hacerse cargo de que los
procesos no accedan a los recursos asignados a otros, velando así por la seguridad del
sistema.
Por último, el sistema debe medir la cantidad de recursos que se están usando en
cada momento, lo que se usa frecuentemente para monitorizar.
denominada de servicios o llamadas al sistema que permite que la ejecución de los
programas sea más cómoda. Estas llamadas se encargan de:
a. Ejecutar y destruir procesos.
b. Facilitar la entrada / salida y las operaciones sobre los archivos.
c. Detectar y tratar los errores detectados por el hardware.
El sistema operativo ofrece principalmente cuatro tipos de servicios, o llamadas al
sistema;
Servicios para lanzar programas y convertirlos en procesos, pararlos y abortarlos.
Debido a la complejidad de las operaciones de entrada/salida con los periféricos, el S.O.
provee los servicios necesarios para facilitar la comunicación entre los procesos y los
dispositivos externos (abrir, cerrar, leer, etc…). Para trabajar con archivos el sistema
operativo ofrece servicios similares a los de E/S, pero con un nivel de abstracción mayor.
Además el sistema se encarga de tratar los posibles errores que pueda detectar el
hardware.
la computadora con los usuarios, esto lo lleva a cabo mediante shells. Las shells pueden
ser de línea de mandatos, como puede ser el bash de UNIX, o gráficas como la de
Windows. Las shells por línea de mandato obligan al usuario a aprender todos los
mandatos, mientras que las gráficas son mucho más intuitivas.
Se solicita mediante un mecanismo de interrupciones. Cuando un proceso en ejecución la
solicita, éste utiliza una instrucción TRAP que genera una interrupción.
Cuando se programa en un lenguaje de alto nivel, la solicitud de servicios al sistema operativo
se hace mediante una llamada a una función determinada, que se encarga de generar la
llamada al sistema y el trap correspondiente.
En general estas funciones que solicitan los servicios del sistema operativo se componen de:
• Una parte inicial que prepara los parámetros del servicio de acuerdo con la forma en que
los espera el sistema operativo.
• La instrucción TRAP que realiza el paso al sistema operativo.
• Una parte final que recoge los parámetros de contestación del sistema operativo, para
devolverlos al programa que hizo la llamada.
Estas funciones se encuentran en una biblioteca del sistema y se incluyen en el código en el
momento de su carga en memoria. Para completar la imagen de que se está llamando a una
función, el sistema operativo devuelve un valor, como una función real. Al programador le
parece, por tanto, que invoca al sistema operativo como a una función. Sin embargo, esto no
es así, puesto que lo que hace es invocar una función que realiza la solicitud al sistema
operativo.
El proceso se puede definir como un programa en ejecución y de una forma un poco más
precisa como la unidad de procesamiento gestionada por el sistema operativo. El sistema
operativo mantiene una tabla de procesos, dentro de la que se almacena un bloque de
control del proceso BCP por cada proceso.
Dentro de la información que el sistema guarda como imagen del proceso está la siguiente:
Información de identificación del proceso y del usuario creador: PID del proceso, PID del
padre, ID de usuario, ID de grupo, …
Estado del procesador: contenido de los registros de la CPU (Registros generales, Contador de
programa, Puntero de pila, Registro de estado, …). Cuando un proceso está ejecutando su
estado reside en los registros del computador. Cuando un proceso no ejecuta su estado reside
en el BCP
Imagen de memoria: contenido de los segmentos de memoria en los que reside el código y los
datos del proceso
Información de control del proceso: información de planificación y estado, recursos asignados
(archivos abiertos, …), comunicación entre procesos, señales, …
Indique los posibles estados de un proceso en su ciclo de vida y cómo se pasa de uno a otro en algoritmos con expulsión.¿Si el proceso tiene varios threads de biblioteca, que ocurre cuando uno de ellos
Se diferencian tres estados básicos en los que puede estar un proceso, estados que detallamos
seguidamente:
• Ejecución.
En este estado se encuentra el proceso que está siendo ejecutado por el
procesador, es decir, que está en fase de procesamiento. En este estado el estado del
proceso reside en los registros del procesador.
• Bloqueado.
Un proceso bloqueado está esperando a que ocurra un evento y no puede
seguir ejecutando hasta que termine el evento. Una situación típica de proceso bloqueado
se produce cuando el proceso solicita una operación de E/S. Hasta que no termina esta
operación el proceso queda bloqueado. En este estado el estado del proceso reside en el
BCP.
• Listo.
Un proceso está listo para ejecutar cuando puede entrar en fase de procesamiento.
Dado que puede haber varios procesos en este estado, una de las tareas del sistema
operativo será seleccionar aquél que debe pasar a ejecución. El módulo del sistema
operativo que toma esta decisión se denomina planificador.
En este estado el estado del
proceso reside en el BCP.
Un cambio de contexto consiste en la ejecución de una rutina perteneciente al núcleo del sistema operativomultitarea de una computadora, cuyo propósito es parar la ejecución de un hilo (oproceso o Threads) para dar paso a la ejecución de otro distinto.
Para hacer realidad la ejecución concurrente en primer lugar es necesario que el programa en ejecución se detenga voluntariamente. Puesto que esto no va a ocurrir nunca, es imprescindible la intervención del hardware
. Gracias a las interrupciones generadas por el propio ordenador, es posible expulsar el programa en ejecución para dar paso al sistema operativo.
Cuando esto ocurre, el sistema operativo ejecuta inmediatamente la rutina de cambio de contexto.
Esta rutina realiza las siguientes operaciones en el orden indicado:
El estado, también denominado contexto, consiste en los valores de todos los registros del microprocesador
. Se copian en lamemoria principal
.
Entre todos los programas que estén preparados para ejecutarse, la rutina selecciona uno de ellos siguiendo algún algoritmo equitativo.
Para ello, se toma el estado previamente copiado en la memoria principal y se vuelca en los registros del microprocesador.
La rutina termina su ejecución saltando a la instrucción que estaba pendiente de ejecutar en el programa seleccionado.
La estructura de datos que contiene la información a cerca de un proceso se denomina bloque de control de procesos (BCP)
La manifestación de un proceso en un sistema operativo es un BCP. Un BCP es la representación de un proceso durante su ejecución. Un BCP se crea cuando se crea su proceso asociado. El conjunto de BCPs representa el estado del sistema. Los BCP son accedidos y mantenidos por rutinas del sistema operativo.
Elementos del BCP:
Identificación de procesos.
Identificación única del proceso.
Identificación del proceso padre.
Identificación del usuario.
Información del estado del proceso.
Registros de control y estado: PC, PSW, códigos de condición.
Registros visibles al usuario.
Punteros de pila.
Información de control de procesos.
Información sobre planificación y estado.
Información útil en la planificación de la CPU: prioridad del proceso, punteros a colas, cantidad de tiempo en espera, en ejecución, etc.
Eventos pendientes.
Gestión de memoria.
Límite superior e inferior de la memoria asignada.
Lista de los bloques asignados.
Apuntador a la tabla de segmento o de página.
Información de contabilidad: Tiempo de CPU y tiempo real.
Información del estado de los dispositivos y operaciones de E/S: Lista de dispositivos asignados, ficheros abiertos.
Apuntadores para asignar recursos.
Comunicación entre procesos: Tubos, señales.
El BCP permite al sistema operativo localizar toda la información clave sobre procesos. El conjunto de BCP forman las tablas de procesos. El id del proceso se usa como índice en las tablas de los procesos.