TEMA 6 Sistemas Operativos © Á lvarez, S., Bravo, S., Departamento de Informática y autom ática Universidad de Salamanca Introducción n Un sistema informático esta formado por el hardware (parte material) y software (parte inmaterial). n Para que el hardware pueda realizar su trabajo se necesita tener un conjunto de normas y órdenes para coordinar todos los procesos que se van realizar (software) con el cual se manejan todos los recursos del sistema informático n El software se puede dividir en dos grandes grupos: é Software de sistema: compuesto por programas imprescindibles para el funcionamiento del hardware y otros destinados a facilitar el us o del ordenador y sus recursos é Software de aplicación: compuesto por programas destinados al desarrollo de cualquier trabajo controlado por el usuario. n El sistema operativo es el elemento más importante del software de sistema es un conjunto de programas y funciones que controlan el funcionamiento del hardware y sus recursos (procesador, memoria interna, dispositivos de entrada/salida e información) de una forma sencilla y transparente para el usuario. © Álvarez, S., Bravo, S. Universidad de Salamanca -2- Definición de Sistema Operativo n Un sistema operativo es un programa (o conjunto de programas) de control que tiene por objeto facilitar el uso de la computadora y conseguir que ésta se utilice eficientemente n Es un programa de control, ya que se encarga de gestionar y asignar los recursos hardware que requieren los programas. n Los recursos son: el procesador (CPU), la memoria, los dispositivos o periféricos de entrada/salida. n Tiene como función de asignar los recursos a cada programa, el sistema operativo se encarga de contabilizarlos y de la seguridad (de que un usuario no pueda acceder sin autorización a la información de otro, por ejemplo). © Álvarez, S., Bravo, S. Universidad de Salamanca -3- Eficiencia n El sistema operativo también hace que la computadora se utilice de forma eficiente. n Los programas tradicionalmente se ejecutan secuencialmente (hasta que no concluye la ejecución de una instrucción no se ejecuta la siguiente). n El sistema operativo se encargará de gestionar y asignar recursos a los diferentes procesos que se tengan ejecutando para optimizar el rendimiento. © Álvarez, S., Bravo, S. Universidad de Salamanca -4- Esquema general de un SO. n Un sistema operativo, en general, está compuesto por un conjunto de programas que, según la función que realizan, se pueden clasificar como se indica en el siguiente esquema: © Álvarez, S., Bravo, S. Universidad de Salamanca -5- Esquema general de un SO n Un sistema operativo ha de encargarse de las siguientes funciones: é Asignación de CPU: planificación temporal de las diversas actividades. é Control de recursos: asignación de recursos de forma racional como por ejemplo la división de la memoria del ordenador entre los programas, o el control de las colas de E/S. é Control de E/S: gestión de la información procedente de los periféricos o destinada a ellos. é Control de los errores y protección: información y solución en la medida de lo posible de las situaciones anómalas. é Interfaz con el usuario: facilitar el uso en la mayor medida posible. é Facilidades contables: cálculo de costes de uso de CPU. © Álvarez, S., Bravo, S. Universidad de Salamanca -6- Programas de control n Los programas de control constituyen la parte del sistema operativo dedicada a coordinar el funcionamiento de todos los recursos y elementos de la computadora, es decir, el procesador, la memoria, las operaciones de entrada/salida, la información y, en definitiva, todo el entorno del sistema incluyendo los periféricos n En general, un sistema operativo tiene englobados estos programas en un conjunto denominado núcleo (kernel). n El núcleo descansa directamente sobre el hardware y proporciona una serie de servicios a las capas superiores del sistema. © Álvarez, S., Bravo, S. Universidad de Salamanca -7- Programas de control é El núcleo se encarga de los siguientes grupos de funciones: Ø Gestión del procesador Ø Gestión de memoria Ø Gestión de entrada/salida Ø Gestión de datos Ø Gestión del sistema © Álvarez, S., Bravo, S. Universidad de Salamanca -8- Gestión de Memoria n El módulo de gestión de memoria es el encargado de asignar ciertas porciones de la memoria principal a los diferentes programas, mientras el resto de programas y datos se mantienen en los dispositivos de almacenamiento masivo. n La forma mas común de gestión de memoria es crear una memoria virtual utilizando los dispositivos de almacenamiento masivo. n La memoria se puede dividir de diferentes modos: é Por páginas: bloques de bytes de igual tamaño para todos los procesos y tareas. é Por segmentos: bloques de bytes con distinto tamaño según el proceso. é Por segmentos paginados: segmentos de tamaño distinto que se dividen a su vez en páginas de distinto tamaño. © Álvarez, S., Bravo, S. Universidad de Salamanca -9- Gestión de Memoria n Se dividen en dos grandes grupos: é Gestión de memoria central: Ø multitud de métodos de asignación y control de la memoria central o interna según se trate de un sistema operativo monoprogramado o multiprogramado. Ø asignan los espacios que deben ocupar los programas y datos estableciendo zonas de seguridad Ø en SO con memoria virtual donde se procesan programas que se van cargando parcialmente en la memoria, gestionan la paginación o segmentación del programa para que el proceso no se interrumpa en ningún momento. é Gestión de memoria secundaria: Ø hacer ver al usuario el tratamiento de la información almacenada en la memoria externa, desde el punto de vista lógico ocultándole la realidad física. Ø un sistema puede mantener en un mismo instante un gran número de usuarios y procesos que pueden estar solicitando y manejando continuamente archivos en memoria externa, en ocasiones hasta comparti éndolos nos deben asegurar el correcto funcionamiento del almacenamiento secundario. © Álvarez, S., Bravo, S. Universidad de Salamanca -10- Gestión de la E/S n El control de las operaciones de E/S es otra de las misiones de un SO para facilitar el uso de distintos dispositivos externos que forman parte del sistema informático. n Gestionan las operaciones que un proceso realice sobre un dispositivo externo, ocultándole sus peculiaridades. n Los problemas derivados de las diferentes velocidades de funcionamiento de los dispositivos son tratados por el módulo de control de E/S presentándolo como una cuestión independiente del dispositivo. © Álvarez, S., Bravo, S. Universidad de Salamanca -11- Gestión de Datos n Los programas del grupo de gestión de datos son los que controlan y coordinan todas aquellas operaciones relativas al movimiento de datos e informaciones en la computadora, como pueden ser las de transferencia, tratamiento o manejo de archivos de datos, etc. n Tienen las siguientes funciones: é Control de periféricos é Control de transferencia de la información é Tratamiento de cada bloque de información é Apertura y cierre de archivos é Acceso a los archivos © Álvarez, S., Bravo, S. Universidad de Salamanca -12- Gestión del Sistema n Este grupo de programas es el verdadero motor del sistema operativo ya que se encarga de la coordinación y supervisión del funcionamiento del resto de programas, por ello se le denomina supervisor. n Sus cometidos fundamentales son: é Protección de memoria: Ø (multiprogramación) ejecutándose solapada o concurrentemente, es necesario fijar unas fronteras de separación de memoria é Errores en la memoria: Ø cuando mediante control de paridad se detecta que cierta información de la memoria no es correcta (debido a algún defecto f ísico del hardware o a alguna transmisión errónea) se activa este grupo de programas para averiguar dónde se produjo el error y reenviar nuevamente el dato, subsanando el error sobre la marcha. é Errores de programa: Ø cuando la unidad de control, al analizar las dos partes básicas de una instrucción (código de operación y operandos), no reconoce la operación que debe realizar, la ubicación donde se encuentran los datos o sencillamente se trata de una operación errónea, se debe diagnosticar un error, cediendo el control a este grupo de programas que se encargaran de cancelar el programa del usuario y enviar los correspondientes mensajes para informarle sobre las características del error encontrado. © Álvarez, S., Bravo, S. Universidad de Salamanca -13- Programas de proceso n Están enfocados preferentemente para ayudar al programador en la puesta a punto de programas de usuario, llegando incluso a proporcionarle pseudo programas estándares semiescritos, que completados con unas pocas instrucciones más quedan perfectamente listos para su ejecución. n Existen dos tipos de programas de proceso: é programas traductores é programas de servicio. © Álvarez, S., Bravo, S. Universidad de Salamanca -14- Programas de proceso : traductores n Programas traductores é Un traductor es cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto. é Existen varios tipos de traductores: Ø Ensambladores Ø Compiladores Ø Intérpretes. © Álvarez, S., Bravo, S. Universidad de Salamanca -15- Programas de proceso : traductores é Programas Ensambladores Ø Son los encargados de llevar a cabo el proceso denominado de ensamblaje o ensamblado. Este proceso consiste en generar un determinado lenguaje máquina a partir de un lenguaje ensamblador. Ø Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Una sola macroinstrucción podía producir varias líneas de código en lenguaje de máquina © Álvarez, S., Bravo, S. Universidad de Salamanca -16- Programas de proceso : traductores é Compiladores Ø El programa compilador traduce las instrucciones en un lenguaje de alto nivel a instrucciones que la computadora pueda interpretar y ejecutar (lenguaje máquina). Ø Cada lenguaje de programación requiere un compilador (ya que cada lenguaje tiene sus propias instrucciones) Ø El compilador traduce todo el programa antes de ejecutarlo Ø Una vez traducido en código fuente, si no ha habido errores se crea el programa objeto que ya estará listo para montarlo y crear el programa ejecutable Ø La traducción del programa fuente, no suele ser directa, sino que aparece un paso intermedio situado al nivel del lenguaje ensamblador. © Álvarez, S., Bravo, S. Universidad de Salamanca -17- Programas de proceso : traductores é Componentes de un compilador © Álvarez, S., Bravo, S. Universidad de Salamanca -18- Programas de proceso : traductores n Intérpretes é Ciertos lenguajes de alto nivel no se prestan a la traducción del programa fuente al programa objeto sino a la interpretación de cada una de las instrucciones que componen el programa fuente y su inmediata ejecución. é Este tipo de lenguajes necesita la utilización de programas intérpretes. El programa siempre permanece en su forma original (programa fuente) y se traduce cuando está en la fase de ejecución instrucción por instrucción © Álvarez, S., Bravo, S. Universidad de Salamanca -19- Programas de proceso : traductores é Ventajas e inconvenientes de los compiladores frente a los intérpretes: Ø Los compiladores compilan una vez, se ejecuta n-veces el programa. Ø En bucles, la compilación genera código equivalente al bucle pero un interprete se traduce tantas veces una línea como veces se repite el bucle. Ø El compilador tiene una visión global del programa, por lo que la información de mensajes de errores es más detallada. Ø Un intérprete necesita menos memoria que un compilador y permite una mayor interactividad con el código en tiempo de desarrollo. © Álvarez, S., Bravo, S. Universidad de Salamanca -20- SO de mayor difusión n Microsoft Windows é Nació simplemente como una aplicación que necesitaba del DOS pero el tiempo y los usuarios demandaron que se convirtiera en un sistema operativo completo é Es el más utilizado hoy en día en todo el mundo, que implica que sea o no el mejor é Fue diseñado para facilitar la comunicación entre el usuario y el ordenador. (convierte la pantalla en un escritorio). é Tecnología plug and play que simplifica la tarea de configurar los dispositivos periféricos que se conecten al ordenador é Permite al usuario etiquetar sus archivos como desee é Facilita la tarea del intercambio de datos entre programas diferentes é Está especialmente diseñado para que el usuario pueda trabajar con las tecnologías multimedia. © Álvarez, S., Bravo, S. Universidad de Salamanca -21- SO de mayor difusión é Como características técnicas se pueden destacar: Ø Multitarea Ø interfaz de usuario muy intuitiva Ø estabilidad y seguridad sólo relativas é Surgió una demanda que obligó a Microsoft al desarrollo de un SO que aprovechara la interfaz Windows, pero orientado al mundo empresarial.(Windows NT) é Windows NT es un sistema operativo multiusuario y proyectado para actuar en servidores de archivos, impresoras y otros sistemas, a los que se accede a través de redes de área local (LAN) o Internet. Incluye funciones de seguridad para grupos de usuario, autentificación de usuarios y control de acceso a los recursos compartidos de la red. © Álvarez, S., Bravo, S. Universidad de Salamanca -22- SO de mayor difusión é Windows 2000 Ø está orientado a estaciones de trabajo en red. Ø puede utilizarse con diversos procesadores en un sistema operativo monousuario y multiprogramación. Ø mucha seguridad (identificación y contabilidad de usuarios) Ø es tolerante a. fallos Ø Está disponible en cuatro versiones: Professional, Server, Advanced Server y Detacenter Server. Siendo la primera la más orientada a usuarios y la última la más enfocada a entornos de servidores. é Windows Server 2003 Ø es de los últimos sistemas operativos basados en la plataforma .NET también dedicado a entornos de servidores. é Windows XP Ø es el sistema operativo enfocado a los usuarios por excelencia en la actualidad. Ø Se distribuye en cuatro versiones diferentes: XP Home Edition (enfocada a los usuarios domésticos), XP Profesional (enfocada a usuarios más avanzados) y dos versiones especiales: XP Media Center Edition (especializada en tecnologías multimedia) y XP Tablet PC Edition (versión exclusiva para la nueva generación de dispositivos Tablet PC). é Windows CE Ø es una versión simplificada de las otras versiones de Windows NT ideada para equipos inform áticos miniaturizados como PDA’s o televisión conectables a Internet, etc. © Álvarez, S., Bravo, S. Universidad de Salamanca -23- SO de mayor difusión n UNIX é UNIX nació en 1969 gracias a Ken Thompson, de los laboratorios Bell de AT&T y fue originariamente escrito en ensamblador, llamándose en sus comienzos UNICS. é Más tarde, en 1973, Thompson y Ritchie lo tradujeron a lenguaje C. Su finalidad era buscar un entorno informático donde ellos mismos pudieran realizar c ómodamente la investigació n en cuanto a programación é En cuanto a las derivaciones de UNIX en este punto se tendrían dos ramas, una liderada por la investigació n en la Universidad de Berkeley y que comienza con la versión 7 y evoluciona a una versión conocida como 4.2 BSD, y un segundo ramal de investigación en AT&T, que culmina con la famosa System V. é De forma paralela al UNIX “oficial”, desde mediados de los ochenta, Richard Stallman,se inicia en lo que más tarde se denominó software libre, y cre ó un sistema similar para cederlo gratuitamente. Este es el conocido GNU (GNU´s Not Unix). é otro investigador, el finlandés Linus Torvalds , empezó a escribir su propio sistema operativo compatible con UNIX. Partiendo del GNU de libre distribución, desarrolló un núcleo (kernel), d ándole el nombre de Linux al producto resultante. é Hoy en d ía se utilizan las versiones estandarizadas tanto de UNIX como de Linux,las cuales evolucionan a pasos agigantados © Álvarez, S., Bravo, S. Universidad de Salamanca -24- SO de mayor difusión é UNIX es uno de los sistemas operativos más ampliamente usados en computadoras que varían desde las personales hasta las macrocoputadoras , pasando por las estaciones de trabajo. é Existen versiones monoprocesador y multiprocesador. é Una de las características más relevantes de este sistema operativo es que en él todo se maneja como cadena de bytes : los dispositivos periféricos, los archivos o los comandos pueden verse como secuencias de bytes . é En cuanto al sistema de archivos, desde el punto de vista del us uario, cuenta con é una organización jerárquica o en forma de árbol invertido que parte de una raíz conocida como “/”, y usa el nombrado redireccionamiento para establecer varios niveles de archivos é Las labores de sistema operativo en cuanto a gestión de recursos hardware las realiza el núcleo de UNIX (kernel) en el que pueden distinguirse dos partes: el núcleo dependiente y el independiente é El núcleo dependiente se encarga de las interrupciones y parte del manejo de la memoria mientras que el núcleo independiente incluye el manejo de las llamadas del sistema, la planificació n de procesos, el entubamiento, el manejo de discos y del sistema de archivos é El modelo de gestión de procesos que utiliza se basa en prioridad © Álvarez, S., Bravo, S. Universidad de Salamanca -25- Windows vs UNIX n En materia de seguridad, estos sistemas difieren en varios aspectos como la autentificación, aunque de cara al usuario no se notan especiales diferencias en este aspecto. n Windows NT está un poco más extendido en la empresa aunque últimamente grandes empresas apuestan por UNIX, como la Casa Blanca, Google, Yahoo o Sony en Japón. n En general, UNIX cuenta con grandes ventajas frente a Windows para uso aunque requiere más conocimientos de informática y algunos dispositivos de última generación no están soportados © Álvarez, S., Bravo, S. Universidad de Salamanca -26- Conclusiones n El objetivo fundamental de los sistemas operativos es el de gestionar y administrar de forma eficiente los recursos hardware de los que dispone el sistema informático. n Como tareas principales de un sistema operativo se pueden considerar la ejecución concurrente de varios programas sin que se produzcan conflictos entre ellos por el acceso a los recursos (CPU, memoria, dispositivos de E/S) que precisen, el reparto de de dichos recursos entre los diferentes programas, etc. n Otros aspectos secundarios tendrán que ver con la apariencia y el manejo que ofrezcan, según los cuales ciertos sistemas operativos podrán orientarse hacia un tipo de público o hacia otro. © Álvarez, S., Bravo, S. Universidad de Salamanca -27-