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)
Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.). En cuyo caso, son manejados mediante una interfaz gráfica de usuario, un gestor de ventanas o un entorno de escritorio, si es un celular, mediante una consola o control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un enrutador.Funciones del Sistema Operativo.1º Control de la ejecución de programas: Acepta los trabajos y administra como se realizan estos, y les asigna los recursos.2º Administración de periféricos: coordina y maneja los distintos dispositivos conectados a la maquina.3º Gestión de permisos y usuarios: Adjudica permisos a los usuarios afín de evitar conflictos entre los distintos trabajos.4º Control de concurrencia: Establece prioridades entre los distintos procesos que desean utilizar el mismo recurso.5º Control de errores: Controla la posible perdida de información, así como los problemas que pueda producir el hardware.6º Administración de memoria: Asigna y gestiona la memoria del sistema a los distintos procesos.7º Control de seguridad: proporciona seguridad para la información almacenada y para la seguridad de los usuarios del sistema.Los 5 niveles teóricos den un Sistema OperativoSolo se pueden comunicar con los de arriba y abajoNivel 1 - Gestión del ProcesadorEn este nivel se encuentra la parte del Sistema Operativo encargada de la gestión de la CPU.Nivel 2 - Gestión de MemoriaNivel encargado de repartir la memoria disponible entro los distintos procesos.Nivel 3 - Gestión de ProcesosEste nivel encargado de la creación y destrucción de procesos, intercambio, detección y arranque de mensajes.Nivel 4 - Gestión de DispositivosRealiza la gestión de las entradas y salidas en función de los dispositivos existentes.Nivel 5 - Gestión de la InformaciónSe encarga de la gestión de los nombres lógicos y la protección de la información, realizando funciones de creación y destrucción de ficheros, lectura, escritura y protección de accesos.
BIOS Basic Input/Output System (BIOS) o sistema básico de entrada/salida, en computadoras IBM PC compatibles, también conocido como “System BIOS”, “ROM BIOS”1 o “PC BIOS”, es un estándar de facto que define la interfaz de firmware.2 El nombre se originó en 1975, en el Basic Input/Output System usado por el sistema operativo CP/M.3 4El software BIOS es instalado dentro de la computadora personal (PC), y es el primer programa que se ejecuta cuando se enciende la computadora.El propósito fundamental del BIOS es iniciar y probar el hardware del sistema y cargar un gestor de arranque o un sistema operativo desde un dispositivo de almacenamiento de datos. Además, el BIOS provee una capa de abstracción para el hardware, por ejemplo, que consiste en una vía para que los programas de aplicaciones y los sistemas operativos interactúen con el teclado, el monitor y otros dispositivos de entrada/salida. Las variaciones que ocurren en el hardware del sistema quedan ocultos por el BIOS, ya que los programas usan servicios de BIOS en lugar de acceder directamente al hardware. Los sistemas operativos modernos ignoran la capa de abstracción provista por el BIOS y acceden al hardware directamente.
CMOS El semiconductor complementario de óxido metálico o complementary metal-oxide-semiconductor (CMOS) es una de las familias lógicas empleadas en la fabricación de circuitos integrados. Su principal característica consiste en la utilización conjunta de transistores de tipo pMOS y tipo nMOS configurados de forma tal que, en estado de reposo, el consumo de energía es únicamente el debido a las corrientes parásitas, colocado en la placa base.En la actualidad, la mayoría de los circuitos integrados que se fabrican utilizan la tecnología CMOS. Esto incluye microprocesadores, memorias, procesadores digitales de señales y muchos otros tipos de circuitos integrados digitales cuyo consumo es considerablemente bajo. Otra de las características importantes de los circuitos CMOS es que son “regenerativos”: una señal degradada que acometa una puerta lógica CMOS se verá restaurada a su valor lógico inicial 0 ó 1, siempre y cuando aún esté dentro de los márgenes de ruido que el circuito pueda tolerar.La tecnología CMOS mejora estos dos factores:Elimina la carga activa. La estructura complementaria hace que sólo se consuma corriente en las transiciones, de modo que el transistor de canal P puede aportar la corriente necesaria para cargar rápidamente las capacidades parásitas, con un transistor de canal N más pequeño, de modo que la célula resulta más pequeña que su contrapartida en NMOS. En CMOS se suelen sustituir los registros dinámicos por estáticos, debido a que así se puede bajar el reloj hasta cero y las reducidas dimensiones y bajo consumo de la celda CMOS ya no hacen tan atractivos los registros dinámicos.Por último, se suelen emplear transistores pequeños, poniendo una celda mayor para la interfaz con las patillas, ya que las necesidades de corriente son mucho mayores en las líneas de salida del chip.La disminución del tamaño de los transistores y otras mejoras condujo a nuevas familias CMOS: AC, ACT, ACQ, etc.
ROM La memoria de sólo lectura, conocida también como ROM (acrónimo en inglés de read-only memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite solo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente en su sentido más estricto, se refiere solo a máscara ROM -en inglés, MROM- (el más antiguo tipo de estado sólido ROM), que se fabrica con los datos almacenados de forma permanente y, por lo tanto, su contenido no puede ser modificado de ninguna forma. Sin embargo, las ROM más modernas, como EPROM y Flash EEPROM, efectivamente se pueden borrar y volver a programar varias veces, aun siendo descritos como "memoria de sólo lectura" (ROM). La razón de que se las continúe llamando así es que el proceso de reprogramación en general es poco frecuente, relativamente lento y, a menudo, no se permite la escritura en lugares aleatorios de la memoria. A pesar de la simplicidad de la ROM, los dispositivos reprogramables son más flexibles y económicos, por lo cual las antiguas máscaras ROM no se suelen encontrar en hardware producido a partir de 2007.Dentro de la memoria ROM se encuentran tres pequeños programas: el BIOS, el SETUP y el POST. El BIOS (Basic Input Output System o Sistema Básico de Entradas y Salidas) es un programa de sólo lectura cuya función principal es actuar como intermediario entre los recursos del Hardware y Software. La función del POST es realizar una prueba inicial del Hardware crítico del sistema. Cuando se presiona el botón de encendido de un PC, el primer proceso que se lleva a cabo es el POST. Si todo funciona correctamente, el sistema sigue su proceso habitual que culmina con la carga del sistema operativo. Si por el contrario, algunos de los dispositivos críticos no pasa la prueba POST, el sistema se detiene en esa instancia e informa a través de un unos mensajes sonoros cuál es el error, el BIOS tiene un sistemas de pitidos (beeps) para avisar al usuario que tipo de problema hay. El SETUP es una porción de software que a diferencia de sus compañeros, podemos entrar en su configuración y realizar cambios en sus parámetros con la intención de optimizar el funcionamiento del hardware. El menú principal del SETUP está dividido en secciones, en las que se agrupan las opciones de acuerdo con los componentes que se pueden modificar. Como la ROM no puede ser modificada (al menos en la antigua versión de máscara), solo resulta apropiada para almacenar datos que no necesiten ser modificados durante la vida de este dispositivo. Con este fin, la ROM se ha utilizado en muchos ordenadores para guardar tablas de consulta, utilizadas para la evaluación de funciones matemáticas y lógicas. Esto era especialmente eficiente cuando la CPU era lenta y la ROM era barata en comparación con la RAM.
RAM La memoria de acceso aleatorio (Random Access Memory, RAM) se utiliza como memoria de trabajo de computadoras para el sistema operativo, los programas y la mayor parte del software.En la RAM se cargan todas las instrucciones que ejecuta la unidad central de procesamiento (procesador) y otras unidades del computador.Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder (acceso secuencial) a la información de la manera más rápida posible.Durante el encendido de la computadora, la rutina POST verifica que los módulos de RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de sonidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma.
CPU La unidad central de procesamiento o unidad de procesamiento central (conocida por las siglas CPU, del inglés: central processing unit), es el hardware dentro de una computadora u otros dispositivos programables, que interpreta las instrucciones de un programa informático mediante la realización de las operaciones básicas aritméticas, lógicas y de entrada/salida del sistema. El término, y su acrónimo, han estado en uso en la industria de la Informática por lo menos desde el principio de los años 1960.1 La forma, el diseño de CPU y la implementación de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su operación fundamental sigue siendo la misma.Una computadora puede tener más de una CPU; esto se llama multiprocesamiento. Todas las CPU modernas son microprocesadores, lo que significa que contienen un solo circuito integrado (chip). Algunos circuitos integrados pueden contener varias CPU en un solo chip; estos son denominados procesadores multinúcleo. Un circuito integrado que contiene una CPU también puede contener los dispositivos periféricos, y otros componentes de un sistema informático; a esto se llama un sistema en un chip (SoC).Dos componentes típicos de una CPU son la unidad aritmético lógica (ALU), que realiza operaciones aritméticas y lógicas, y la unidad de control (CU), que extrae instrucciones de la memoria, las decodifica y las ejecuta, llamando a la ALU cuando sea necesario.No todos los sistemas computacionales se basan en una unidad central de procesamiento. Una matriz de procesador o procesador vectorial tiene múltiples elementos cómputo paralelo, sin una unidad considerada el "centro". En el modelo de computación distribuido, se resuelven problemas mediante un conjunto interconectado y distribuido de procesadores.
Estructura por anillos concéntricos (capas).El sistema por "capas" consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes.El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignación del procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros. Sobre la capa 0, el sistema consta de procesos secuénciales, cada uno de los cuales se podría programar sin importar que varios procesos estuvieran ejecutándose en el mismo procesador, la capa 0 proporcionaba la multiprogramación básica de la CPU.La capa 1 realizaba la administración de la memoria. Asignaba el espacio de memoria principal para los procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los procesos (páginas) para las que no existía lugar en la memoria principal. Por encima de la capa 1, los procesos no debían preocuparse si estaban en la memoria o en el recipiente; el software de la capa 1 se encargaba de garantizar que las páginas llegaran a la memoria cuando fueran necesarias.La capa 2 se encargaba de la comunicación entre cada proceso y la consola del operador. Por encima de esta capa, cada proceso tiene su propia consola de operador.La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de información entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S con propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es donde estaban los programas del usuario, estos no tenían que preocuparse por el proceso, memoria, consola o control de E/S. el proceso operador del sistema se localizaba en la capa 5Una generalización mas avanzada del concepto de capas se presento en el sistema MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de anillos concéntricos, siendo los anillos interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a un procedimiento de un anillo interior, debió hacer el equivalente a una llamada al sistemaMientras que el esquema de capas de THE era en realidad un apoyo al diseño, debido a que todas las partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el mecanismo de anillos estaba mas presente durante el tiempo de ejecución y era reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de extensión para estructurar subsistemas del usuario.5 El operador4 Programas del usuario3 Control de entrada/salida2 Comunicación operador-proceso1 Administración de la memoria y del disco0 Asignación del procesador y multiprogramación
Estructura por microkernel.Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandosLas funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.
Estructura cliente – servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el código a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo único que hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequeña y controlable. Además como todos los servidores se ejecutan como procesos en modo usuario y no en modo núcleo, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, éste puede fallar, pero esto no afectará en general a toda la máquina.