Sistemas Operativos (Parte 1) Guía de Estudio Escuela de Ingeniería de Sistemas y Computación Universidad del Valle 2012 Contenido: 1. Repaso: Software y tipos de software 2. Conceptos generales de Sistemas Operativos: Definición: S.O: como máquina virtual, S.O. como administrador de recursos. Funciones y conceptos clave. Clasificación. Interfaces: Línea de comandos, gráfica 3. Sistemas Operativos más conocidos Qué es Software? Es un conjunto de programas, documentos, procedimientos y rutinas asociadas con la operación de un sistema de cómputo. Comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos, que son llamados hardware. Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario. El software asegura que el computador cumpla por completo con los objetivos del usuario. Específicamente, puede verse como el conjunto de instrucciones que se le proporciona al microprocesador para que pueda procesar los datos y generar los resultados esperados. Cuáles son los Tipos de Software? • Lenguajes de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Permiten la creación de nuevos programas o sistemas operativos. Utilizados por Ingenieros de Sistemas. • Software de aplicación: Diseñados para cumplir distintas tareas de acuerdo al uso que se le dé. Permite a los usuarios llevar a cabo una o varias de esas tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. • Sistemas operativos. Administra los recursos de hardware y de software, además de abstraer los detalles de funcionamiento. Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros: Ubicación del Sistema Operativo El Sistema Operativo se encuentra entre el Usuario, las Aplicaciones y el Hardware y sirve como interfaz para que el primero pueda acceder a los recursos que los segundos le ofrecen. Definición del Sistema Operativo? El Sistema Operativo puede definirse de dos maneras, siendo ambas perfectamente correctas: • Sistema Operativo como Máquina Virtual: Separa el Hardware del Software. Facilita al usuario el uso del computador y sus periféricos para desarrollar su trabajo diario de manera sencilla. • Sistema Operativo como Administrador de Recursos: Asegura un reparto ordenado y equitativo. Hace seguimiento al uso de recursos (atender solicitudes, contabilizar uso). Mediador de conflictos. Máquina Virtual: se refiere a un software capaz de emular los recursos de una computadora y que además puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". Funciones del Sistema Operativo? Un Sistema Operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las órdenes al microprocesador central, para que éste realice las tareas necesarias y específicas para completar una acción Desde el punto de vista de la administración, el sistema operativo es un gestor de los recursos del computador según se observa en el siguiente mapa conceptual: Funciones del Sistema Operativo Conceptos Clave • • • • • • Proceso: es una tarea en ejecución, tiene asociado un espacio de direcciones, lista de posiciones de memoria y de datos. informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados" Kérnel: núcleo del sistema, contiene las operaciones básicas del sistema. constituye la parte más importante del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Llamadas al sistema: interfaz entre el S.O. y los programas de usuario. es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo. Secuencia por lotes: Se conoce como sistema por lotes (batch processing), o modo batch, a la ejecución de un programa sin el control o supervisión directa del usuario (que se denomina procesamiento interactivo). Este tipo de programas se caracterizan porque su ejecución no precisa ningún tipo de interacción con el usuario. Los programas son tratados en grupos y ejecutados uno tras otro. Tiempo Real: Procesa las instrucciones recibidas inmediatamente. Respuestas rápidas. Por eso, la principal característica que distingue a los STR de otros tipos de sistemas es el tiempo de interacción. Tiempo Compartido: se refiere a compartir un recurso computacional entre muchos usuarios por medio de la multitarea. Uso del sistema por más de un usuario al mismo tiempo. Clasificación de los Sistemas Operativos Según su estructura: Monolítico: están constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Por Capas, o Jerárquico: está dividido en pequeñas partes, de tal forma que cada una de ellas es perfectamente definida y con una interfaz clara con el resto de elementos. Cliente-Servidor: El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Cuando un proceso de usuario, llamado proceso cliente, necesita un servicio del S.O lo que hace es enviar un mensaje al proceso servidor correspondiente el cual realiza el trabajo y devuelve la respuesta. Estructura Cliente/Servidor Según la cantidad de tareas que pueden procesar: Monotarea: Si sólo puede ejecutar una tarea o proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización o interrupción. Multitarea: Permite que varias tareas (procesos) se ejecuten al tiempo. Cada tarea se ejecuta de manera independiente y utilizando los mismos recursos. Según la cantidad de usuarios que puede atender al mismo tiempo: Monousuario: Solamente permite ejecutar los programas de un usuario al mismo tiempo. Esto a causa de las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se esté ejecutando. Sistema Monousuario Multiusuario: Administran y permiten que varios usuarios utilicen al tiempo, recursos de hardware y de software. Permite que varios usuarios ejecuten simultáneamente sus programas. Utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario. Sistema Multiusuario Según la forma en que administran los recursos: Paralelos, distribuidos: Permite utilizar los recursos (memoria, CPU, disco, periféricos) de más de un computador al mismo tiempo. Integran recursos, en una sola máquina virtual, que el usuario accede en forma transparente. El usuario no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Centralizados: Si los recursos computacionales se encuentran en un solo lugar desde donde todos los usuarios los pueden acceder. Interfaces de los Sistemas Operativos Las interfaces sirven para comunicar el sistema operativo con el usuario y sus programas. Esta comunicación se realiza por medio de instrucciones que el SO proporciona o llamadas al sistema. Las interfaces se usan de dos formas: Línea de comandos: Conocida como CLI por sus siglas en inglés (Comand Line Interfaz). Lenguaje de comandos especial. El usuario introduce los comandos de texto al sistema para iniciar o ejecutar instrucciones específicas. Los comandos deben ser memorizados, son programables, otorgándoles flexibilidad. Se pueden utilizar de manera más automatizada haciendo uso del procesamiento por lotes. Línea de Comandos en Linux Interfaz gráfica: Conocida como GUI del inglés Graphical User Interfaz. Tipo de visualización que permite al usuario elegir comandos, iniciar programas, ver listas de archivos, etc. usando representaciones visuales (íconos) y menús. Se activan a través del mouse o teclado. Su intención principal es brindarle al usuario una forma más amigable para que interactúe con el computador, se basa en un entorno visual con representaciones sencillas de interpretar. Surgió en el proceso evolutivo de los sistemas operativos y tiene sus raíces en la línea de comandos. Interfaces Gráficas Sistemas Operativos más comunes Los sistemas operativos más populares han sido o son: MS-DOS: Desarrollado en 1979 por Microsoft. Diseñado para IBM que lo estandarizó en todos sus PC. El sistema operativo podía estar en un disco flexible. Nombres de ficheros sólo de 8 letras máximo. Sistema monotarea. COMMAND.COM o Procesador de Comandos. OS/2: Desarrollado inicialmente por Microsoft e IBM. Muy parecido a MS-DOS, pero es más grande y completo. Ambiente de trabajo gráfico. El intérprete de comandos no hace parte del SO, sólo aparece cuando se hace clic en el ícono. Multitarea de tiempo compartido . Monousuario . Mac OS: Multitarea cooperativa. Es un sistema netamente gráfico. No tiene interfaz de línea de comandos. Tiene la capacidad integrada de compartir archivos y comunicarse con otras PC de Macintosh en una red. UNIX: S. O. de propósito general. Desarrollado en los Laboratorios Bell de AT&T en 1969. Escrito en lenguaje C. Multiusuario, Multitarea e Interactivo. Soporta multiprogramación y multiacceso. Linux: Es uno de los principales ejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List Archive. El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés, Linus Torvalds, en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para su uso en el nuevo sistema operativo. Microsoft Windows ( 95,98,NT,XP,Vista, etc): Windows es un SO para computadores basados en procesadores Intel. Es el sistema operativo comercial más utilizado mundialmente. El entorno gráfico se basa en la metáfora de las ventanas, de allí viene su nombre. Versiones de MS-Windows. Evolución del Sistema Operativo Windows