Clarissa Álvarez Natalia Zapiain Nancy Pino Carolina Villarreal Luisa Medina Fernanda de la Fuente Jocelin Menchaca 207 Sistemas Operativos Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración eficaz de sus recursos. Comienza a trabajar cuando en memoria se carga un programa especifico y aun antes de ello, que se ejecuta al iniciar el equipo, o al iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario. Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios,etc). Concepto y definición de Sistemas Operativos. Figura. Algunos recursos que administra el Sistema Operativo Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definición exacta, es decir una que sea estándar; a continuación se presentan algunas: 1.- Se pueden imaginar un Sistema Operativo como los programas, instalados en el software o firmware, que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de cómputo"; los sistemas operativos ponen dicha capacidad de cómputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento. 2.- Los Sistemas Operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware del computador ;además de los procesadores, los medios de almacenamiento, los dispositivos de entrada/salida, los dispositivos de comunicación y los datos. 3.- Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware del computador y su propósito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es, lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. 4.- Un Sistema Operativo es un conjunto de programas que controla la ejecución de programas de aplicación y actúa como una interfaz entre el usuario y el hardware de una computadora, esto es, un Sistema Operativo explota y administra los recursos de hardware de la computadora con el objeto de proporcionar un conjunto de servicios a los usuarios del sistema. En resumen, se podría decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son: o o Gestionar el hardware.- Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina. Facilitar el trabajo al usuario.-Permite una comunicación con los dispositivos de la máquina. El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado. 3. Características de los Sistemas Operativos. En general, se puede decir que un Sistema Operativo tiene las siguientes características: o o o o o o o o o o o o o Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible. Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos. Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera. Organizar datos para acceso rápido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras. Procesamiento por bytes de flujo a través del bus de datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora. Técnicas de recuperación de errores. Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario. Generación de estadísticas. Permite que se puedan compartir el hardware y los datos entre los usuarios. El software de aplicación son programas que se utilizan para diseñar, tal como el procesador de palabras, lenguajes de programación, hojas de cálculo, etc. El software de base sirve para interactuar el usuario con la máquina, son un conjunto de programas que facilitan el ambiente plataforma, y permite el diseño del mismo. El Software de base está compuesto por : o o o o Cargadores. Compiladores. Ensambladores. Macros Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, sinulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM. Introducción Sin el software, una computadora no es más que una masa metálica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general en dos clases: los programas de sistema, que controlan la operación de la computadora en si y los programas de aplicación, los cuales resuelven problemas para sus usuarios. El programa fundamental de todos los programas de sistema es el sistema operativo (SO), que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación. ¿ Qué es un Sistema Operativo ?. Desde su creación, las computadoras digitales han utilizado un sistema de codificación de instrucciones en sistema de numeración binaria, es decir con los 0S. Esto se debe a que los circuitos integrados funcionan con este principio, es decir, hay corriente o no hay corriente. En el origen de la historia de las computadoras ( hace unos cuarenta años), los sistemas operativos no existían y la introducción de un programa para ser ejecutado se convertía en un increíble esfuerzo que solo podía ser llevado a cabo por muy pocos expertos. Esto hacia que las computadoras fueran muy complicadas de usar y que se requiriera tener altos conocimientos técnicos para operarlas. Era tan complejo su manejo, que en algunos casos el resultado llegaba a ser desastroso. Además, el tiempo requerido para introducir un programa en aquellas grandes máquinas de lento proceso superaba por mucho el de ejecución y resultaba poco provechosa la utilización de computadoras para resolución de problemas prácticos. Se buscaron medios más elaborados para manipular la computadora, pero que a su vez simplificaran la labor del operador o el usuario. Es entonces cuando surge la idea de crear un medio para que el usuario pueda operar la computadora con un entorno, lenguaje y operación bien definido para hacer un verdadero uso y explotación de esta. Surgen los sistemas operativos. Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden. El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto útil. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilización de este enredo de cables y circuitos, que de otra manera serian difíciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automáticos, que permiten a un grupo de usuarios compartir una instalación de computadora eficazmente. Interfaz de Línea de Comandos. La forma de interfaz entre el sistema operativo y el usuario en la que este escribe los comandos utilizando un lenguaje de comandos especial. Los sistemas con interfaces de líneas de comandos se consideran más difíciles de aprender y utilizar que los de las interfaces gráficas. Sin embargo, los sistemas basados en comandos son por lo general programables, lo que les otorga una flexibilidad que no tienen los sistemas basados en gráficos carentes de una interfaz de programación. Interfaz Gráfica del Usuario. Es el tipo de visualización que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales (iconos) y las listas de elementos del menú. Las selecciones pueden activarse bien a través del teclado o con el mouse. Para los autores de aplicaciones, las interfaces gráficas de usuario ofrecen un entorno que se encarga de la comunicación con el ordenador o computadora. Esto hace que el programador pueda concentrarse en la funcionalidad, ya que no esta sujeto a los detalles de la visualización ni a la entrada a través del mouse o el teclado. También permite a los programadores crear programas que realicen de la misma forma las tareas más frecuentes, como guardar un archivo, porque la interfaz proporciona mecanismos estándar de control como ventanas y cuadros de diálogo. Otra ventaja es que las aplicaciones escritas para una interfaz gráfica de usuario son independientes de los dispositivos: a medida que la interfaz cambia para permitir el uso de nuevos dispositivos de entrada y salida, como un monitor de pantalla grande o un dispositivo óptico de almacenamiento, las aplicaciones pueden utilizarlos sin necesidad de cambios. Funciones de los Sistemas Operativos. Interpreta los comandos que permiten al usuario comunicarse con el ordenador. Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse. Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas. Gestiona los errores de hardware y la pérdida de datos. Servir de base para la creación del software logrando que equipos de marcas distintas funcionen de manera análoga, salvando las diferencias existentes entre ambos. Configura el entorno para el uso del software y los periféricos; dependiendo del tipo de máquina que se emplea, debe establecerse en forma lógica la disposición y características del equipo. Como por ejemplo, una microcomputadora tiene físicamente dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o recursos que comparten. De igual forma, provee de protección a la información que almacena. Qué es un Sistema Operativo Una de las definiciones más comúnmente aceptadas expresa: “Un S. O. es un grupo de programas de proceso con las rutinas de control necesarias para mantener continuamente operativos dichos programas”. El objetivo primario de un Sistema Operativo es: Optimizar todos los recursos del sistema para soportar los requerimientos. A los efectos de situar a los S. O. en el conjunto del software para computadoras, podemos clasificar a este de la siguiente manera: Programas de sistema: o Controlan la operación de la computadora en sí. Programas de aplicación: o Resuelven problemas para los usuarios. En este contexto, el Sistema Operativo es el programa fundamental de todos los programas de sistema. El S. O. protege y libera a los programadores de la complejidad del hardware, colocándose un nivel de software por sobre el hardware para: Controlar todas las partes del sistema. Presentar al usuario una interfaz o máquina virtual. El esquema típico de un sistema de cómputos incluye: o Sistema bancario, reservaciones en una línea aérea, juegos, etc. o o Compiladores, editores, intérpretes de comandos. Sistema Operativo. o o o Lenguaje de máquina. Microprogramación. Dispositivos físicos. Las principales características del microprograma son: Se trata de software que generalmente se localiza en la memoria de solo lectura. Busca las instrucciones de lenguaje de máquina para ejecutarlas como una serie de pequeños pasos. El conjunto de instrucciones que interpreta define al lenguaje de máquina. En ciertas máquinas se implanta en el hardware y no es en realidad una capa distinta. Respecto del lenguaje de máquina es preciso señalar que: Generalmente posee entre 50 y 300 instrucciones, sirviendo la mayoría para desplazar datos, hacer operaciones aritméticas y comparar valores. Los dispositivos de e / s (entrada / salida) se controlan al cargar valores en registros del dispositivo especiales. Una de las principales funciones del S. O. es ocultar toda esta complejidad y brindar al programador un conjunto más conveniente de instrucciones para trabajar. El S. O. se ejecuta en modo central o modo de supervisión, con máxima prioridad y generalmente con protección por hardware. Los compiladores, editores y demás programas se ejecutan en modo usuario. El S. O. es la serie de programas, dispuestos ya sea en el software o en la memoria fija (microcódigo), que hacen al hardware utilizable. Los S. O. ponen el “poder computacional básico” del hardware convenientemente a disposición del usuario, pero consumen parte de ese poder computacional para funcionar [7, Deitel]. Los S. O. son, en primer lugar, administradores de recursos, siendo el recurso primario el hardware del sistema (ver Figura 1.1). Las principales características de los S. O. son: Definir la “Interfaz del Usuario”. Compartir el hardware entre usuarios. Permitir a los usuarios compartir los datos entre ellos. Planificar recursos entre usuarios. Facilitar la entrada / salida. Recuperarse de los errores. Los principales recursos administrados por los S. O. son: Procesadores. Almacenamiento. Dispositivos de e / s. Datos. Los S. O. son una interfaz con: Operadores. Programadores de aplicaciones. Programadores de sistemas (administradores del S. O.). Programas. Hardware. Usuarios. El S. O. debe presentar al usuario el equivalente de una máquina extendida o máquina virtual que sea mas fácil de programar que el hardware subyacente. Capítulo 1.1.- Conceptos básicos de Sistemas Operativos Qué es un SO? Un sistema operativo es un programa que actua como intermediario entre el usuario de un ordenador y el hardware de esa máquina; por lo tanto, su misión principal es la de proporcionar un entorno donde los programas se puedan ejecutar de forma conveniente y eficiente. Características de los Sistemas Operativos Sistemas Grandes Complejos: Asíncronos. Diferentes necesidades de los usuarios. HW muy diverso. Performance importante. Poco conocidos: Poco predecibles. Depuración complicada (bugs). Ciclo de vida largo. Componentes (funciones) Gestor de procesos creación y borrado de procesos de sistema y usuario. suspensión y reanudación de programas. provisión de mecanismos para sincronizar. provisión de mecanismos para comunicar procesos. provisión de mecanismos para tratar bloqueos. Gestor de memoria principal cuenta de páginas de memoria en uso y usuario. decisión de procesos a cargar en memoria, con espacio libre. asignación de memoria dinámica, según necesidades. Gestor de memoria secundaria gestión de espacio libre. planificación de operaciones sobre el disco (concurrencia). gestión del espacio ocupado (contabilidad del mismo). Gestor del sistema de Entrada/Salida gestión del sistema de buffers. interfaz general con los dispositivos. control de los dispositivos. Gestor de ficheros: creación y borrado de ficheros. creación y borrado de directorios. manejo de ficheros y directorios. correspondencia de ficheros y directorios con espacio en memoria secundaria. volcados de ficheros. Mecanismos de protección. Mecanismos de comunicación en red. Intérprete de comandos. Servicios de un Sistema Operativo De ayuda al usuario para la ejecución de programas. ejecución de programas (entorno). operaciones de Entrada/Salida. manipulación de ficheros. comunicaciones (memoria compartida, paso de mensajes). Para asignar y asegurar uso eficiente del Hardware. asignación de recursos. funciones de contabilidad (accounting). protección y seguridad. Llamadas al Sistema (System Calls) Son intefaces entre los procesos y el sistema operativo. Casi todos los lenguajes de alto nivel poseen una interfaz con UNX (standard POSIX: Portable Operating System Interface on Unix, C, Fortran, Ada, ....). Ejemplos: s: end, abort, load, execute, create process, terminate process, get process attribute, .... Manipulación de procesos: create file, delete file, open file, close file, write file, delete file... Programas del Sistema Constituyen un entorno de desarrollo y ejecución de programas que resulta cómodo al usuario. Permite facilidades de compilación, edición, accounting, configuración... que forma el interfaz gráfico (SHELL). Estructura de un SO Estructura sin niveles (MS-DOS). Estructura de niveles (UNIX): Nivel 0: HW. Nivel 1: Microkernel. Nivel 2: Solo ve las funciones del nivel 1, y asi.... ... NIvel n: programas de usuario. ¿Cómo está conformado un sistema operativo? Un sistema operativo está conformado básicamente por cuatro módulos: Núcleo o Kernel. Administrador de memoria. Sistema de entrada/salida. Administrador de archivos. A veces se considera un quinto módulo: el intérprete de comandos o intérprete de instrucciones, el cual se encarga de "traducir" las órdenes que el usuario ingresa mediante el teclado u otros dispositivos a un "lenguaje" que la máquina pueda entender. Núcleo Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas. Administrador de memoria Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es. Sistema de entrada/salida (E/S) Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool. Administrador de archivos Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma. Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo. El sistema operativo comprueba que estos privilegios no sean violados. SISTEMAS OPERATIVOS MAQUINA DESNUDA: Computadora carente de un sistema operativo. SISTEMA OPERATIVO: Un sistema operativo es un programa destinado a permitir la comunicación del usuario con un computador y gestionar sus recursos de una forma eficaz. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos. FUNCIÓNES BÁSICAS: a. Gestión de recursos de la computadora. >> Administra el hardware de manera eficiente. b. Ejecución de servicios para los programas. >> Proporcionar comodidad en el uso de un computador. c. Ejecución de los mandatos de los usuarios. >> Brindar una interfaz al usuario, ejecutando instrucciones (comandos). 1. ARRANQUE DE LA COMPUTADORA Y DEL SISTEMA OPERATIVO 1.1 ARRANQUE DE LA COMPUTADORA FASE DE ARRANQUE HARDWARE Se basa en un programa permanente grabado en una memoria ROM. En esta memoria ROM se encuentra a un programa de arranque. Cuando se arranca la computadora, se genera una señal eléctrica que carga uno. valores predefinidos en los registros. 1. Hace una comprobación del sistema, Detecta sus características: >>Cantidad de memoria principal disponible. >>Los periféricos instalados. 2. Entra en la fase de lectura y almacenamiento en memoria 3. Finalmente da control a este programa. FASE ARRANQUE DEL SISTEMA OPERATIVO. El sistema operativo se encuentra almacenado en una unidad de disco. Existe un sector de boot que carga al sistema operativo MBR Este programa está almacenado en una zona predefinida del disco >> primeros sectores de disco duro. La ROM trae a memoria principal el programa cargado del sistema operativo. Se completan las pruebas del hardware realizadas por la ROM y se comprueba que el sistema de archivos tiene un estado coherente. Se carga en memoria principal aquella parte del sistema operativo que ha de estar siempre memoria. = SISTEMA OPERATIVO RESIDENTE. Se crea un proceso de inicio o login por cada terminal definido en el sistema. El usuario se loguea e ingresa al sistema operativo. El proceso shell primero ejecuta uno o varios archivos de mandatos: «autoexec.bat» en MSDOS «.login» y «.cshrc» en UNIX. A COMPONENTES Y ESTRUCTURA DEL SISTEMA OPERATIVO 2.1 COMPONENTES DE UN SISTEMA OPERATIVO NUCLEO El núcleo del Sistema Operativo generalmente realiza las siguientes funciones: Manipulación de interrupciones. Creación y destrucción de procesos. Cambio de estados de procesos. Despacho. Suspensión y reanudación de procesos. Sincronización de procesos. Comunicación entre procesos. Manipulación de bloques de control de proceso. Soporte de las actividades de Entrada / Salida. Soporte de la asignación y desasignación de almacenamiento. Soporte del sistema de archivos. Soporte de un mecanismo de llamada / regreso al procedimiento. Soporte de ciertas funciones contables (estadísticas) del sistema. A. S.O COMO GESTOR DE RECURSOS Como gestor de recursos, el Sistema Operativo administra: La CPU (Unidad Central de Proceso). Los dispositivos de E/S La memoria. Las colas de procesos. Los recursos del sistema. A.1 ASIGNACIÓN DE RECURSOS >> Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas) >>La asignación de recursos se realiza según la disponibilidad y prioridad >>Una mala administración de recursos puede hacer que la computadora crea que ya no tiene memoria cuando en realidad si tiene. >>Los recursos manejados por el S.O son físicos y lógicos. Físicos: Procesador, Memoria principal, Periféricos Lógicos: Archivos, puertos de comunicación. A.2 PROTECCIÓN >>Garantizar la protección entre los usuarios del sistema. >>Asegurar la confidencialidad de la información. >>Impedir que unos programas puedan acceder a los recursos asignados a otros programas. >> Distinguir entre uso autorizado y no autorizado. >>Especificar los controles de seguridad a realizar. Bibliografia http://html.rincondelvago.com/sistemas-operativos_19.html http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SOF.htm http://html.rincondelvago.com/clasificacion-de-sistemas-operativos.html http://entren.dgsca.unam.mx/introduccion/so_compo.html