Llamadas al sistema
Proveen una interfaz entre los procesos y el Sistema de Operación. Una llamada al sistema básicamente es la solicitud por parte de algún proceso hacia el Sistema operativo solicitando recursos para que pueda funcionar o realizar alguna tarea determinada. De ésta forma, el proceso avisa al sistema operativo para que sepa que necesita ser atendido, y así le asigne los recursos necesarios. Ésta es la única forma de acceder a recursos de hardware en S.O de multitarea.
Control de trabajos o procesos
El sistema operativo controla todos los procesos mediante el BLOQUE DE CONTROL DE PROCESOS (PCB, Process Control Block). Éste, es un registro y descriptor de los procesos. El PCB contiene la siguiente información sobre un proceso:
· Identificador del proceso
· El estado del proceso
· Prioridad del proceso.
· Estado hardware (contador de programa, códigos de condición, punteros de pila, etc.).
· Espacio de direcciones de memoria.
· Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
· Datos del propietario (owner).
· Permisos asignados.
El sistema operativo mantiene listas de PCB para cada uno de los estados del sistema (preparado, activo, etc.). Cada proceso pertenece a una única lista. El planificador se encarga de gestionar el paso de los procesos de una lista a otra.
De ésta manera el S.O tiene el control e información de todos los procesos independientemente del estado en que estén.
Estructura de un sistema operativo
El sistema operativo está compuesto principalmente por 3 capas:
Las aplicaciones del usuario: Son todas las encargadas de satisfacer las necesidades del usuario. Las aplicaciones más comunes en la actualidad, trabajan con un nivel de abstracción muy alto, esto quiere decir que el usuario no requiere conocimientos de programación elevados. A estas alturas, casi la totalidad de los softwares trabajan con interfaz gráfica, que es interpretada por el Shell.
Shell: Muchas personas lo confunden con el Kernel, siendo cosas muy distintas. Es el interprete de ordenes del usuario, puede ser a través de una interfaz gráfica tipo Windows, GNU/Linux (KDE, Gnome y etc) y MacOSo, o con lineas de comandos tipo MSDOS. Una vez interpretadas las ordenes, el Shell se las envía al kernel.
Entorno de llamadas del sistema: Proveen una interfaz entre los procesos y el Sistema de Operación. Una llamada al sistema básicamente es la solicitud por parte de algún proceso hacia el Sistema operativo, solicitando recursos para que pueda funcionar o realizar alguna tarea determinada. Esta actividad es llevada a cavo por el Kernel.
El Kernel o núcleo: Es el corazón del SO, es el encargado de la comunicación entre el hardware y el software. Lleva a cavo la gestión de procesos, gestión de memoria y en él residen los controladores del hardware. Otra cosa fundamental, es que traduce las ordenes recibidas por el Shell que están en un alto nivel, a un nivel de máquina (baja abstracción).
Maquina virtual
Es una técnica que permite simular un sistema operativo dentro de otro primario o real. Lo bueno que tienen estas máquinas virtuales es que se puede instalar cualquier sistema operativo en ellas, incluso sistemas operativos diferentes al sistema operativo real. Ej: En mi PC tengo Windows XP como S.O real y a través de software simulo un S.O Linux para probar éste último. La maquina virtual también simula una bios, una memoria, conexiones de red, puertos, discos duros, etc.
Manipulación de archivos
Una de las principales funciones de un Sistema Operativo es la administración del almacenamiento de información, para lo cual es necesario contar con un “Sistema de Archivos”. Esto se refiere a cómo el sistema operativo organiza la información en medios físicos tales como discos y diskettes (aspecto físico del sistema de archivos), y la visión que es ofrecida al usuario para permitir la manipulación de la información almacenada (interfaz para que el usuario abra, elimine, cree o modifique archivos). A través del Sistema de archivos, los archivos van quedando almacenados de forma organizada en directorios, formándose una estructura jerarquizada además de determinando el tamaño de los clusters y la capacidad máxima de almacenaje que puede tener el disco duro y de la seguridad para los archivos.
Gestión de dispositivos
“Los dispositivos” son aparatos que cumplen determinada función y pueden ser conectados a una computadora. Los dispositivos de entrada son el medio para que el usuario pueda comunicarse con la máquina o ingresar información (ratón, escáner, teclado y etc), y los dispositivos de salida son aquellos que proporcionan al usuario el resultado final del procesamiento de información (pantalla, impresora, parlantes y etc).Existen 3 tipos de procesos de entrada y salida, en función de como el SO se sincroniza con el controlador.
E/S programada: La CPU hace una consulta al registro de estado del controlador (Polling), produciendo un bucle que es solucionado con los SO multiprogramados.
E/S por interrupciones: El controlador lleva a cabo el proceso de interrupción, si otra parea está siendo ejecutada por la CPU, es interrumpida. Este mecanismo da la base del sistema multiprogramado.
E/S por DNA: Los dispositivos que llevan a cabo una transferencia de datos muy elevada, se auxilian con la memoria principal.
Interrupciones
Es una señal recibida por la CPU, que indica que debe interrumpir la ejecución actual de x programa y pasar a ejecutar instrucciones específicas para tratar la nueva tarea..
Este concepto surge de las necesidades que tienen los dispositivos externos, así como impresora, fax y etc, de enviar información al procesador.
Polling: Es la primera técnica que se implementó, consiste en que el procesador se encargara de “escanear” el dispositivo cada cierto tiempo para averiguar si tiene pendiente alguna instrucción para él. La CPU constantemente consumía tiempo en realizar el escaneo, por lo tanto el método fue clasificado como ineficiente. El mecanismo de interrupciones fue la solución que permitió eliminar dicho problema, y dejar en el dispositivo la responsabilidad de comunicarse con el procesador cuando sea necesario.
Programas del sistema
Hoy en día, los sistemas operativos vienen con software pre-instalado, con el fin de hacer fácil para el usuario el uso del computador. En la actualidad, muchos SO viene con un interprete de ordenes gráfico (GUI), dejando de lado a las lineas de comando, además, cuentan con gestores de memoria, con el fin de proteger a usuario de la cruda tarea de gestionar su memoria a través de un lenguaje de bajo nivel.
Las herramientas que vienen por defecto en un sistema, varían según la necesidad del usuario, gestor de particionado, calculadora de programador, hojas de calculo, cliente de correo electrónico, además de sus herramientas propias para la administración y configuración del equipo.
Jerarquía de Almacenamiento
Para poder ejecutarse y ser manipulados, los programas y su información tienen que residir en memoria principal, y los datos que no son necesarios, se quedan en la memoria secundaria. Como ya se sabe, la memoria principal (física) es costosa y de menor tamaño que la secundaria, pero más rápida.
Hoy en día existen sistemas con varios niveles de almacenamiento y los programas residentes van trasladándose de forma dinámica entre estos niveles, que son:
-Memoria Caché
-Memoria Principal
-Memoria Secundaria
En el caso del 1er y 2do nivel, la CPU puede acceder a los datos de forma directa, por lo contrario, en el 3er nivel (Memoria Secundaria) solo puede acceder a los datos si éstos son trasladados a la Memoria Principal (2do nivel). La rapidez de acceso de la CPU va decreciendo según el niveles.