conjunto de programas imprescindibles para el funcionamiento del hardware, más un conjunto cuya misión es la de facilitar el uso del sistema y optimizar recursos. • Software de Aplicación: Es el conjunto de programas que se desarrollan para que una computadora realice cualquier trabajo controlado por el usuario. Sistemas Operativos y Traductores • Sistema Operativo: es un conjunto de programas y funciones que controlan el funcionamiento del hardware ocultando sus detalles, ofreciendo al usuario una vía sencilla y flexible de acceso a la computadora. • Recursos del computador: procesador, memoria interna, entrada/salida, la información Sistemas Operativos y Traductores Desde el punto de vista del control de los recursos
• Sistema Operativo: es el administrador de
los recursos ofrecidos por el hardware para alcanzar un eficaz rendimiento de los mismos. Esquema General de un S.O. Gestión del Procesador Gestión de Memoria Programas de Control Gestión de Entrada/Salida Gestión de Datos
Sistema Gestión del Sistema
Operativo Traductores Programas de Proceso Programas de Servicio S.O. - Programas de Control Constituyen la parte del S.O. Dedicada a la coordinar el funcionamiento de todos los recursos y elementos de la computadora.
El S.O. Tiene englobado estos programas en un
conjunto denominado núcleo (kernel) que se divide en los siguientes grupos: S.O. - Programas de Control • Gestión del Procesador: se encarga de la preparación de los programas de usuario para su ejecución, así como la asignación del tiempo del procesador. • Preparación de programas: transferir los programas ejecutables de usuarios desde la Memoria externa a la Memoria Central, por medio de un programa que se llama Cargador. • Planificación del procesador: Se encarga del control de la utilización del procesador en los distintos procesos. Planificar el tiempo del procesador S.O. - Programas de Control • Asignación de Periféricos: es un grupo de programas de asignación que transforma las solicitudes simbólicas, en asignaciones físicas y concretas de cada periférico. • Relanzamiento de programas: Este grupo de programas se encarga de establecer un punto de control en el instante de la interrupción para que se pueda reproducir el estado que tenia el proceso cuando se vuelva a reactivar. S.O. - Programas de Control • Gestión de memoria: consiste en asignar y controlar el almacenamiento en la memoria interna y externa. • Gestión de Memoria Central: asignan espacios que deben ocupar programas y datos estableciendo zonas de seguridad para que no se produzcan colisiones. • Gestión de Memoria Secundaria: tienen como misión hacer ver al usuario el tratamiento de la información almacenada en la memoria externa, desde el punto de vista lógico ocultandose la realidad física. • Gestión de Entrada/Salida: facilitar el uso de los distintos dispositivos externos. S.O. - Programas de Control • Gestión de Datos: controlan y coordinan todas aquellas operaciones relativas al movimiento de datos e informaciones. Estos programas realizan las siguientes funciones: – Control de Periféricos – Control de Transferencia de Información – Tratamiento de cada bloque de información – Apertura y cierre de archivos – Acceso a los archivos S.O. - Programas de Control • Gestión del sistema: es el verdadero motor del S.O. Ya que se encarga de la coordinación y supervisión del funcionamiento del resto de los programas, por ello se denomina supervisor. Sus cometidos fundamentales son: – Protección de Memoria – Errores en la Memoria – Errores de Programa S.O. - Programas de Proceso • Están enfocados preferentemente para ayudar al programador en la puesta a punto de los programas. Existen dos tipos de programas de proceso: programas traductores y programas de servicios. - Programas Traductores: - Programas Ensambladores - Programas Compiladores - Programas Intérpretes S.O. - Programas de Proceso • Programa de Servicio: realizan funciones utiles para el sistema o para el usuario. Existen dos grupos: – Programas de manipulación de datos: realizan en forma automática alguna de las siguientes funciones: • Transferencia de informaciones o archivos entre soportes. • Recodificación o transformación de informaciones • Reorganización de la información en archivos • Ordenación de datos en archivos, etc. S.O. - Programas de Proceso • Programas de Servicios del Sistema: tienen como misión la generación del sistema operativo completo sobre la computadora, la preparación de los programas, la creación y mantenimiento de las bibliotecas de programas. Estructura General de un Compilador Un compilador, además de traducir, realiza una serie de funciones que en su mayoría están enfocadas a la detección de errores del programa fuente. Por lo general esta constituido por los siguientes bloques: • Analizador lexicográfico (Scannaer) • Analizador Sintáctico • Generador de Código intermedio • Optimizador de código final • Tabla de Símbolos • Módulo de Tratamiento de errores Analizador Lexicográfico • Examina en el programa fuente las unidades básicas de información pertenecientes al lenguaje. Estás unidades se denominan unidades léxicas o tokens. En el caso de no existir errores en este primer análisis, se realiza una primera traducción a un código propio del compilador (generalmente de tipo numérico), eliminando toda información superflua como pueden ser los comentarios y espacios no significativos para el Prog. Fuente. Analizador Sintáctico Recibe la tira de tokens (del analizador lexicográfico) e investiga en ella los posibles errores sintácticos que aparezcan, estos errores suelen ser de formatos de instrucciones, duplicidad de identificadores de distintas variables, etc.
Por tanto en un analizador como en otro, todo error
detectado es comunicado al programador por medio del listado de compilación, en el que se indica dónde está situado y que tipo de error es. Generador de Código Intermedio • Traduce el resultado del análisis anterior (en caso de ausencia de errores) a un código intermedio propio del compilador, para con el permitir la portabilidad del lenguaje (posibilidad de utilización en distintas computadoras) Optimizador de Código Consiste en tomar el código intermedio y optimizarlo, adaptándolo a las características del procesador al que va dirigido. Además adapta el código a un procesador concreto. • Generador de código Final La misión del generador de código final es la de traducir el código intermedio optimizado en el código final, es decir, en el lenguaje de máquina del procesador al que el compilador va dirigido. Módulo de tratamiento de errores