Funciones de un sistema operativo

Tipos de sistemas operativos

Trabajo en red

En red

Distribuidos

Centralizado

Número de procesadores

Multiproceso

Monoproceso

Tiempo de respuesta

Procesamiento por lotes

Interactivos

Tiempo real

Número de usuarios

Monousuario

Multiusuario

Número de procesos

Monoprogramación

Multiprogramación

Estructura de un sistema operativo

En niveles o capas: El primer sistema operativo dividido en capas fue desarrollado por Dijkstra en 1968. El sistema operativo se llamó THE, organizado en varios niveles. El sistema operativo MINIX, creado y desarrollado por Andrew S. Tanembaum en 1987 para fines educativos.

Máquina virtual: El objetivo es instalar varios sistemas operativos sobre el mismo equipo, dando la sensación de que son diferentes equipos.

Monolíticos: No están estructurados, están formados por un programa que consta de un conjunto de funciones o procedimientos entre sí. A medida que aumentan las acciones del sistema operativo y los recursos del sistema informático se necesita una organización de los sistemas operativos.

Cliente-Servidor: Otro tipo de sistema operativo, un programa de aplicación de un usuario que se está ejecutando se convertiría en un programa cliente.

Gestión de procesos

Procesos

Procesos del sistema: Son procesos que generalmente se ejecutan al iniciar el sistema y suelen estar en ejecución para proporcionar servicios a los usuarios del sistema.

Procesos de usuarios: Son los procesos que manda ejecutar el usuario que entre sistema. Si el sistema es multiusuario, puede haber varios procesos de distintos usuarios ejecutándose a la vez.

Servicios del sistema

Arranque: Mediante el arranque se prepara el sistema para que pueda ser explotado y utilizado por los usuarios.

Parada: El servicio de parada debe dejar al sistema de manera que se pueda volver arrancar sin problemas.

Algoritmos de planificación de procesos

Los estados en los que se puede encontrar un proceso son:

Listos

Bloqueados

En ejecución

Gestión de E/S

El sistema operativo debe gestionar los dispositivos de E/S, como los periféricos y las memoria auxiliares, de manera que facilite su uso al usuario. La gestión de E/S se realiza por el sistema operativo a través de las direcciones de E/S.

Interrupción y rutina de atención: Una interrupción se produce cuando algún elemento hardware produce una señal al sistema para llamar su atención. Se las llaman IRQ (Interrupt Request), y tienen como función interrumpir el trabajo del procesador para destinarlo a otra actividad. Ejemplos de interrupciones son las que producen el ratón y el teclado cada vez que se utilizan.

Caching, buffering y spooling:
Vamos a ver distintas técnics que mejoran el rendimiento del sistema con respecto a la gestión de la E/S:

Buffering: Esta técnica consiste en utilizar un área de memoria como buffer, simulando un dispositivo o un periférico lógico, que hará de dispositivo intermedio entre el periférico real y el procesador.

Spooling: La palabra deriva de las siglas en inglés de SPOOL (simultaneous perpherial operation on-line), que viene a significar que mediante esta técnica la E/S hacia los periféricos del ordenador se pueden simultanear.

Caching: Mejora las presentaciones del sistema. Consiste en almacenar en una caché temporal, de rápido acceso, los datos más frecuentemente solicitados o enviados a un dispositivo de E/S.

Advanced Host Controller Interface (AHCI) es una especificación de interfaz que le permite al controlador de almacenamiento activar automáticamente las funciones avanzadas de SATA, como la cola de comandos nativos y la conexión directa nativa de los discos SATA que estén conectados a su computadora.

NVMe (Non-Volatile Memory Express, Memoria exprés no volátil) es una interfaz de comunicaciones y un controlador que define un conjunto de comandos y un conjunto de funciones de los discos SSD basados en PCIe, con el objetivo de incrementar y hacer más eficientes el rendimiento y la interoperabilidad de una amplia variedad de sistemas empresariales y de clientes.