Conceptos básicos de las computadoras: funciones del sistema operativo
Como saben, el sistema operativo es responsable del funcionamiento del sistema informático. Para ello, lleva a cabo estas tres amplias categorías de actividades:
Essential functions - Garantiza una utilización óptima y eficaz de los recursos.
Monitoring functions - Supervisa y recopila información relacionada con el rendimiento del sistema
Service functions - Brinda servicios a los usuarios
Veamos algunas de las funciones más importantes asociadas con estas actividades.
Gestión de procesadores
Administrar la CPU de una computadora para asegurar su uso óptimo se llama processor management. La gestión del procesador básicamente implica la asignación del tiempo del procesador a las tareas que deben completarse. Se llamajob scheduling. Los trabajos deben programarse de tal manera que:
- Hay una utilización máxima de la CPU.
- El tiempo de respuesta, es decir, el tiempo necesario para completar cada trabajo, es mínimo.
- El tiempo de espera es mínimo
- Cada trabajo obtiene el tiempo de respuesta más rápido posible
- Se logra el rendimiento máximo, donde el rendimiento es el tiempo promedio necesario para completar cada tarea
Hay dos métodos de programación de trabajos realizados por sistemas operativos:
- Programación preventiva
- Programación no preventiva
Programación preventiva
En este tipo de programación, el siguiente trabajo que debe realizar el procesador se puede programar antes de que se complete el trabajo actual. Si surge un trabajo de mayor prioridad, el procesador puede verse obligado a liberar el trabajo actual y tomar el siguiente. Hay dos técnicas de programación que utilizan la programación preventiva:
Round robin scheduling - Una pequeña unidad de tiempo llamada time sliceestá definido y cada programa obtiene solo un intervalo de tiempo a la vez. Si no se completa durante ese tiempo, debe unirse a la cola de trabajos al final y esperar hasta que todos los programas tengan un intervalo de tiempo. La ventaja aquí es que todos los programas tienen las mismas oportunidades. La desventaja es que si un programa completa la ejecución antes de que finalice el intervalo de tiempo, la CPU estará inactiva durante el resto de la duración.
Response ratio scheduling - La tasa de respuesta se define como
$$ \ frac {Transcurrido \: Tiempo} {Ejecución \: tiempo \: recibido} $$
Un trabajo con un tiempo de respuesta más corto tiene mayor prioridad. Por lo tanto, es posible que un programa más grande tenga que esperar incluso si se solicitó antes que el programa más corto. Esto mejora el rendimiento de la CPU.
Programación no preventiva
En este tipo de programación, las decisiones de programación de trabajos se toman solo después de que se completa el trabajo actual. Un trabajo nunca se interrumpe para dar prioridad a trabajos de mayor prioridad. Las técnicas de programación que utilizan la programación no preventiva son:
First come first serve scheduling - Esta es la técnica más simple donde el primer programa que lanza una solicitud se completa primero.
Shortest job next scheduling - Aquí se programa a continuación el trabajo que necesita la menor cantidad de tiempo para su ejecución.
Deadline scheduling - El trabajo con la fecha límite más temprana está programado para ejecutarse a continuación.
Gestión de la memoria
El proceso de regular la memoria de la computadora y el uso de técnicas de optimización para mejorar el rendimiento general del sistema se denomina memory management. El espacio de la memoria es muy importante en el entorno informático moderno, por lo que la gestión de la memoria es un papel importante de los sistemas operativos.
Como sabe, las computadoras tienen dos tipos de memoria: primary y secondary. La memoria primaria esfast but expensive y la memoria secundaria es cheap but slower. El sistema operativo tiene que lograr un equilibrio entre los dos para garantizar que el rendimiento del sistema no se vea afectado debido a la menor cantidad de memoria primaria o que los costos del sistema no se disparen debido a demasiada memoria primaria.
Los datos de entrada y salida, las instrucciones del usuario y los datos intermedios para la ejecución del programa deben almacenarse, accederse y recuperarse de manera eficiente para un alto rendimiento del sistema. Una vez que se acepta una solicitud de programa, el sistema operativo le asigna áreas de almacenamiento primarias y secundarias según los requisitos. Una vez que se completa la ejecución, se libera el espacio de memoria asignado. El sistema operativo utiliza muchas técnicas de administración de almacenamiento para realizar un seguimiento de todos los espacios de almacenamiento asignados o libres.
Asignación de almacenamiento contiguo
Ésta es la técnica de asignación de espacio de almacenamiento más simple en la que se asignan ubicaciones de memoria contiguas a cada programa. El sistema operativo tiene que estimar la cantidad de memoria requerida para el proceso completo antes de la asignación.
Asignación de almacenamiento no contiguo
Como sugiere el nombre, el programa y los datos asociados no necesitan almacenarse en ubicaciones contiguas. El programa se divide en componentes más pequeños y cada componente se almacena en una ubicación separada. Una tabla mantiene un registro de dónde se almacena cada componente del programa. Cuando el procesador necesita acceder a cualquier componente, el sistema operativo proporciona acceso mediante esta tabla de asignación.
En un escenario de la vida real, el espacio de la memoria primaria podría no ser suficiente para almacenar todo el programa. En ese caso, OS toma la ayuda deVirtual Storagetécnica, donde el programa se almacena físicamente en la memoria secundaria pero parece estar almacenado en la memoria primaria. Esto introduce un retraso minúsculo en el acceso a los componentes del programa. Hay dos enfoques para los almacenamientos virtuales:
Program paging - Un programa se divide en un tamaño fijo pagey almacenado en la memoria secundaria. Las páginas se danlogical address or virtual addressde 0 a n. UNApage table asigna las direcciones lógicas a las direcciones físicas, que se utiliza para recuperar las páginas cuando sea necesario.
Program segmentation - Un programa se divide en unidades lógicas llamadas segments, dirección lógica asignada de 0 an y almacenada en la memoria secundaria. UNAsegment table se utiliza para cargar segmentos de la memoria secundaria a la memoria primaria.
Los sistemas operativos suelen utilizar una combinación de segmentación de programas y páginas para optimizar el uso de la memoria. Un segmento de programa grande puede dividirse en páginas o más de un segmento pequeño puede almacenarse como una sola página.
Gestión de archivos
Los datos y la información se almacenan en computadoras en forma de archivos. La gestión del sistema de archivos para permitir a los usuarios mantener sus datos de forma segura y correcta es una función importante de los sistemas operativos. La gestión de sistemas de archivos por sistema operativo se denominafile management. La gestión de archivos es necesaria para proporcionar herramientas para estas actividades relacionadas con archivos:
- Crear nuevos archivos para almacenar datos
- Updating
- Sharing
- Protección de datos mediante contraseñas y cifrado
- Recuperación en caso de falla del sistema
Gestión de dispositivos
El proceso de implementación, operación y mantenimiento de un dispositivo por sistema operativo se denomina device management. El sistema operativo utiliza un software de utilidad llamadodevice driver como interfaz para el dispositivo.
Cuando muchos procesos acceden a los dispositivos o solicitan acceso a los dispositivos, el sistema operativo administra los dispositivos de una manera que comparte eficientemente los dispositivos entre todos los procesos. Procesa los dispositivos de acceso a través desystem call interface, una interfaz de programación proporcionada por el sistema operativo.