Características y funciones fundamentales de un sistema operativo.
A continuación tenemos la definición de sistema operativo que nos ofrece la wikipedia:
Un sistema operativo (SO o, frecuentemente, OS —del inglés operating system—) es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario)
Funciones de un sistema operativo
A continuación se enumeran y explican las funciones de un sistema operativo:
- Gestión de procesos: El SO es el responsable de:
- Crear y destruir procesos
- Parar y reanudar procesos
- Ofrecer mecanismos para que los procesos puedan comunicarse y se sincronicen
- Gestión de memoria principal: La memoria es una gran tabla de palabras o bytes que se referencia cada una mediante una dirección única. Este almacén de datos de rápido acceso es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido ante fallos del sistema. El SO es el responsable de:
- Conocer qué partes de la memoria están siendo utilizadas y por quién
- Decidir qué procesos se cargarán en memoria cuando haya espacio disponible
- Asignar y reclamar espacio de memoria cuando sea necesario
- Gestión de almacenamiento secundario: Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:
- Planificar los discos.
- Gestionar el espacio libre.
- Asignar el almacenamiento.
- Verificar que los datos se guarden en orden.
- Sistema de E/S: El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.
- Sistema de archivos: El SO es responsable de:
- Construir, eliminar archivos y directorios.
- Ofrecer funciones para manipular archivos y directorios.
- Establecer la correspondencia entre archivos y unidades de almacenamiento.
- Realizar copias de seguridad de archivos.
- Sistemas de protección: Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
- Distinguir entre uso autorizado y no autorizado.
- Especificar los controles de seguridad a realizar.
- Forzar el uso de estos mecanismos de protección.
- Sistemas de comunicación: Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.
- Programas del sistema: Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:
- Manipulación y modificación de archivos.
- Información del estado del sistema.
- Soporte a lenguajes de programación.
- Comunicaciones.
- Gestor de recursos: Como gestor de recursos, el sistema operativo administra:
- La unidad central de procesamiento (donde está alojado el microprocesador)
- Los dispositivos de entrada y salida.
- La memoria principal.
- Los discos (o memoria secundaria)
- Los procesos (o programas en ejecución)
- Y en general todos los recursos del sistema
Clasificación de los sistemas operativos
La clasificación de los sistemas operativos puede realizarse en base a 3 criterios tareas, usuarios y recursos:
- Clasificación por tareas:
- Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
- Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
- Clasificación por usuarios:
- Monousuario: Sólo permite ejecutar los programas de un usuario al mismo tiempo.
- Multiusuario: Permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
- Clasificación por recursos:
- Centralizado: Permite usar los recursos de una sola computadora.
- Distribuído: Permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de una computadora al mismo tiempo.
A continuación vamos a clasificar algunos sistemas operativos en base a lo descrito anteriormente:
Windows XP | Windows 7 | Windows 10 | Ubuntu 14.04 | Ubuntu 16.04 | Windows Server 2016 | |
---|---|---|---|---|---|---|
Tareas | Multitarea | Multitarea | Multitarea | Multitarea | Multitarea | Multitarea |
Usuarios | Monousuario | - | - | Multiusuario | Multiusuario | Multiusuario |
Gestión de procesos de un S.O.
Se define proceso como un programa en ejecución. Cada proceso tiene un identificador de proceso único (PID) que permite al S.O. identificarlo de forma unívoca.
El Bloque de Control de Procesos (BCP) es es una estructura de datos donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema solo cuando existe un BCP activo asociado a él.
Cuando el proceso termina, su BCP es borrado.
Estados de los procesos
Un proceso puede encontrarse en los estados:
- Ejecución: El proceso dispone de todos los recursos que necesita y además está siendo ejecutado por el procesador.
- Bloqueado: El proceso necesita de algún recurso que necesita para ser ejecutado (además del procesador).
- Espera: El proceso dispone de todos los recursos que necesita para ser ejecutado excepto del procesador
Planificación de procesos
Los SSOO pueden planificar en que modo gestionan los procesos para ello pueden hacer uso de distintos algoritmos de planificación (rueda, FCFS, STR,...)
Mas información en wikipedia: https://es.wikipedia.org/wiki/Planificador
Gestión de memoria principal
Consultar el apartado anterior "Funciones de un sistema operativo"
Memoria virtual
En la wikipedia leemos la definición de memoria virtual:
La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria que esté disponible físicamente.
xxx: como se configura en windows
Swapping - Intercambio
En la wikipedia tenemos acceso a la deficnición del espacio de intercambio:
En Sistemas Operativos, el espacio de intercambio (También conocido como Archivo de paginación o Memoria Virtual -Entendiendo por memoria la RAM-) es una zona del disco (un fichero o partición) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. A este espacio se le suele llamar swap, del inglés "intercambiar".
xxx: como se configura en linux