departamento de ingenieria

Download departamento de ingenieria

If you can't read please download the document

Upload: mileidi2

Post on 19-Jun-2015

65 views

Category:

Education


0 download

TRANSCRIPT

  • 1. Sistemas Operativos I I N T R O D U C C I N Unidad 1

2. Sistema Operativo Definicin: Un sistema operativo (SO, frecuentemente OS, del ingls Operative System) es un programa o conjunto de programas que en un sistema informtico gestiona los recursos de hardware y provee servicios a los programas de aplicacin, ejecutndose en modo privilegiado. 3. Sistemas Operativos El sistema operativo es el primero embalado en la PC. Sin ellos, un equipo es insuficiente. Su objetivo es organizar y administrar aplicaciones y componentes para que acte de una manera verstil pero prevista. Ms recientemente, han comenzado a desarrollar sistemas operativos para dispositivos mviles tambin. 4. El sistema operativo lleva a cabo una gran cantidad de funciones. Por lo tanto, es el nivel ms bajo del software y administra todas las operaciones bsicas del ordenador: Controla los componentes de hardware Gestiona el almacenamiento secundario Asigna el tiempo a las tareas Administra la memoria Administra los recursos del CPU Proporciona la Interfaz Grfica de Usuario La eleccin del sistema operativo realmente depende de qu sistema sea de la preferencia del usuario y de los requerimientos del negocio. 5. Funciones y Caractersticas Conveniencia. Un SO hace mas conveniente el uso de una computadora. Eficiencia. Un SO permite que los recursos de la computadora se usen de la manera mas eficientemente posible. Habilidad para evolucionar. Un SO deber construirse de manera que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio. 6. Caractersticas y funciones 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 travs del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo requiera. 7. F u n c i o n e s 8. Organizar datos para acceso rpido y seguro Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de computadoras. 9. Procesamiento por bytes de flujo a travs del bus de datos Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora. 10. Tcnica de recuperacin de errores Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informndoles si esa aplicacin esta siendo ocupada por otro usuario. 11. Evolucin histrica 12. Los 40's A finales de esa dcada, surgi la primera generacin de computadoras. Por aquel entonces no existan los SO, y los programadores deban interactuar con el hardware de la computadora sin ayuda externa. Esto haca que el tiempo de preparacin para realizar una tarea fuera considerable. Adems para poder utilizar la computadora deba hacerse por turnos. Para ello, se rellenaba un formulario de reserva en el que se indicaba el tiempo que el programador necesitaba para realizar su trabajo. Todo se haca en lenguaje de mquina. 13. Los 50's Con el objeto de facilitar la interaccin entre persona y computadora, los sistemas operativos hacen una aparicin discreta y bastante simple, con conceptos tales como: Monitor residente Se limitaba a cargar los programas a memoria, leyndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente. 14. Procesamiento por lotes Como solucin para optimizar, en una misma cinta o conjunto de tarjetas, se cargaban varios programas, de forma que se ejecutaran uno a continuacin de otro sin perder tiempo en la transicin. Almacenamiento temporal Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultnea la carga del programa o la salida de datos con la ejecucin de la siguiente tarea. Para ello se utilizaban dos tcnicas, el buffering y el spooling. 15. Los 60's Multiprogramacin. Es una tcnica por la que dos o ms procesos pueden alojarse en la memoria principal y ser ejecutados concurrentemente por el procesador. Causa la impresin de realizarse simultneamente debido a la velocidad. Aunque slo es simulado, dado que el CPU slo puede trabajar con un proceso a la vez. 16. Anteriormente cuando un proceso en ejecucin requera hacer uso de un dispositivo de E/S, el procesador quedaba ocioso mientras el proceso permaneciese en espera y no retomara su ejecucin. En cambio, en un sistema multiprogramado, cuando un proceso concluye o se bloquea (en espera de una operacin de E/S), el ncleo del sistema operativo toma el control del CPU para efectuar lo que se denomina un cambio de contexto, a fin de dar turno a otro proceso para que se ejecute. Cuando el primer proceso recupere su turno, reanudar su ejecucin justo en el punto exacto en que se interrumpi. 17. Tiempo compartido. se refiere a compartir de forma concurrente un recurso computacional (tiempo de ejecucin, uso de la memoria, etc.) entre muchos usuarios por medio de las tecnologas de multiprogramacin y la inclusin de interrupciones de reloj por parte del sistema operativo, permitiendo a este ltimo acotar el tiempo de respuesta del computador y limitar el uso del CPU por parte de un proceso dado. Su introduccin en los aos 1960 representa un cambio importante en la historia de la computacin. Al permitir que un gran nmero de usuarios interactuara y ejecutara diversos programas de forma simultanea en una sola computadora, el coste del servicio de computacin baj drsticamente. 18. Multiprocesador. Es una computadora que cuenta con dos o ms microprocesadores (CPUs). Gracias a esto, el multiprocesador puede ejecutar simultneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes. Los ordenadores multiprocesador presentan problemas de diseo que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultneamente y, potencialmente, pueden interferirse entre s. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. 19. Los 70's En el campo de la programacin lgica se dio a luz la primera implementacin de Prolog, y en la revolucionaria orientacin a objetos. Surgieron los nuevos sistemas operativos como: 20. Multics (Multiplexed Information and Computing Service): Originalmente era un proyecto cooperativo liderado por Fernando Corbat del MIT, con General Electric y los laboratorios Bell, que comenz en los 60, pero los laboratorios Bell lo abandonaron en 1969 para comenzar a crear el sistema UNIX. BDOS: (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la BIOS. 21. CPM: (Control Program for Microcomputers) fue un SO desarrollado por Gary Kildall para el microprocesador Intel 8080. Se trataba del SO ms popular entre las PC en los aos 70. Aunque fue modificado para ejecutarse en un IBM PC. El hecho que IBM eligiera MS-DOS, al fracasar las negociaciones con Digital Research, hizo que el uso de CP/M disminuyera hasta hacerlo desaparecer. CP/M se convirti en un estndar de industria para los primeros micro-ordenadores. 22. Los 80's Empez el auge de los ordenadores personales. En stos se dej un poco de lado el rendimiento y se busc ms que el sistema operativo fuera amigable, surgiendo mens, e Interfaces grficas. Esto reduca la rapidez de las aplicaciones, pero se volvan ms prcticos y simples para los usuarios. En esta poca, siguieron utilizndose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos, de los cuales se podran destacar: C++ e Eiffel dentro del paradigma de la orientacin a objetos, y Haskell y Miranda en el campo de la Programacin declarativa. 23. Un avance importante que se estableci a mediados de la dcada de 1980 fue el desarrollo de redes de computadoras personales que corran sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS escrito por Microsoft para IBM y otras computadoras que utilizaban el procesador Intel 8088, y UNIX. Surgieron adems tres Sistemas Operativos muy importantes: 24. MS-DOS. En 1981 Microsoft compr un sistema operativo llamado QDOS que, tras realizar unas pocas modificaciones, se convirti en la primera versin de MS-DOS (Micro Soft Disk Operating System). WINDOWS. A mediados de los aos 80 se crea este sistema operativo, pero no es hasta la salida de Windows 95 que se le puede considerar un sistema operativo, solo era una interfaz grfica del MS-DOS en el cual se dispona de unos diskettes para correr los programas. 25. Mac OS. El lanzamiento oficial del ordenador Macintosh en enero de 1984, al precio de US $1,995 (despus cambiado a $2,495 dlares). Inclua su sistema operativo Mac OS cuya caractersticas novedosas era una GUI (Graphic User Interface), Multitareas y Mouse. Provoc diferentes reacciones entre los usuarios acostumbrados a la lnea de comando y algunos tachando el uso del Mouse como juguete. 26. Los 90's GNU/Linux. Este sistema al parecer es una versin mejorada de Unix, basado en el estndar POSIX, un sistema que en principio trabajaba en modo comandos. Hoy en da dispone de Ventanas, gracias a un servidor grfico y a gestores de ventanas como KDE, GNOME entre muchos. Tambin surgi otro Sistemas Operativo de cdigo abierto llamado ReactOS cuyo propsito era lograr la compatibilidad binaria con aplicaciones de software y controladores de dispositivos hechos para Microsoft Windows NT versiones 5.x en adelante (Windows XP y sus sucesores). 27. T A R E A Investigar la evolucin de las versiones de los sistemas operativos Windows, MAC OS y Linux (en sus diferentes distribuciones y versiones). Desde su aparicin hasta la actualidad 28. Clasificacin de los Sistemas Operativos 29. Sistemas Operativos Monotareas Los sistemas operativos monotareas son ms primitivos. Solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora est imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin. El sistema operativo que soporta el monotareas es DOS. 30. Sistemas Operativos Multitareas Con este sistema operativo es que la computadora procesa diferentes tareas al mismo tiempo. Existen varios tipos de multitareas. Estos sistemas Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como resultado que el CPU siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin. Los sistemas operativos que soportan estas multitareas son: UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2. 31. Sistemas Operativos Monousuario Son aquellos que nada ms pueden atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se este ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se est utilizando, es decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Los sistemas operativos que soportan el monousuario son DOS e incluso en el Windows XP y sus predecesores. 32. Sistemas Operativos Multiusuario Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten los mismos recursos. Este tipo de sistemas se emplean especialmente en redes. Los sistemas operativos que soportan el multiusuario son el Linux, Windows 2003 y sus predecesores. 33. Sistemas Operativos Por Lotes Con este SO se procesan una gran cantidad de trabajos con poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos sistemas, pueden tener un tiempo de ejecucin muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos. Los sistemas operativos que soportan por lotes son el SCOPE, del DC6600, y el EXEC II para el UNIVAC 1107. 34. Sistemas Operativos De Tiempo Real Los sistemas operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos. Los sistemas operativos que soportan el tiempo real son VxWorks, Solaris, Lyns OS y Spectra. 35. Sistemas Operativos de Tiempo Compartido Estos sistemas permiten la simulacin de que el sistema y sus recursos son todos para cada usuario. El usuario hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Los sistemas operativos que soportan el tiempo compartido son Multics, OS/360 y DEC-10. 36. Sistemas Operativos Distribuidos Este sistema operativo permite distribuir trabajos, tareas o procesos entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. 37. Sistemas Operativos de Red Son aquellos que mantienen a dos o ms computadoras unidas a travs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los sistemas operativos ms utilizados que soportan la red son Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic. 38. Sistemas Operativos Paralelos En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo. As, en lugar de esperar a que el proceso termine de ejecutarse, regresa a atender al usuario inmediatamente. Los sistemas operativos que soportan a los paralelos son Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM. 39. Niveles de Diseo de un SO Un sistema operativo est conformado bsicamente por cuatro mdulos: Ncleo o Kernel. Administrador de memoria. Sistema de entrada/salida. Administrador de archivos. 40. Ncleo o kernel Es el mdulo de ms bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de la computadora. Entre las tareas que desempea se incluyen el manejo de las interrupciones, la asignacin de trabajo al procesador y el proporcionar una va de comunicacin entre los distintos programas. En general, el ncleo se encarga de controlar el resto de los mdulos y sincronizar su ejecucin. El ncleo contiene un submdulo denominado "planificador", el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta poltica de planificacin que vara de un sistema operativo a otro. 41. Normalmente se utiliza una jerarqua de prioridades que determinan cmo se asignar el tiempo del CPU a cada programa. Una poltica de planificacin muy comn en los sistemas de multiprogramacin y multiproceso son las tcnicas de "time slicing" (fraccin 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 42. Administrador de memoria Este mdulo se encarga de asignar ciertas porciones de la memoria 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 ms comn de administracin de la memoria es 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. 43. Sistema de Entrada / Salida Para los usuarios, todos los dispositivos hardware tienen las mismas caractersticas y son tratados de la misma forma, siendo que el SO es el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operacin). Una tcnica muy comn, 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 perifrico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el perifrico no est disponible. El SO dispone de llamadas para aadir y eliminar archivos del spool. 44. 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 tambin supervisa la creacin, actualizacin y eliminacin de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el mdulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. 45. 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 propsitos. Algunos contienen informacin que puede ser compartida. Otros son de carcter privado, e incluso secreto. Por tanto, cada archivo est dotado de un conjunto de privilegios de acceso, que indican la extensin con la que se puede compartir la informacin contenida en el archivo. El sistema operativo comprueba que estos privilegios no sean violados. 46. E L N C L E O Un ncleo o kernel (de la raz germnica Kern, ncleo, hueso) es un software que constituye una parte fundamental del SO. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador. 47. Sistemas monolticos Los sistemas Monolticos son la estructura ms simple para un Sistema Operativo. Tambin llamados de Estructura Modular, fue escrito para proporcionar una mxima funcionalidad dentro del menor espacio posible. Este sistema est descrito como un conjunto de procedimientos o rutinas entrelazadas de tal forma que cada una tiene la posibilidad de llamar a las otras rutinas cada vez que as lo requiera. cuando falla un programa se produce un error en todo el sistema. 48. Si se modifica el hardware por lo general es necesario recompilar el kernel para poder disponer de las funcionalidades. Esto consume tiempo y recursos porque la compilacin de un nuevo kernel puede durar varias horas y necesita de una gran cantidad de memoria. Cada vez que alguien aade una nueva caracterstica o corrige un error, significa que se necesitar hacer una recompilacin del kernel entero. 49. Microncleo o Microkernel El Microncleo surge como una nueva forma de organizacin para un Sistema Operativo. 50. En este sistema las funciones centrales son manejadas por el ncleo(kernel) y la interfaz de usuario es manejada por el entorno(shell). El Microkernel se encarga de todo el cdigo de un sistema, y de planificar los hilos(threads) con la finalidad de tener multitareas. Es ms fcil corregir fallas en un sistema pequeo ya que se pueden realizar pruebas ms rigurosas que en un sistema mucho ms grande. 51. Sistemas por MDULOS La mayora de los sistemas operativos modernos implementan este enfoque. El kernel se compone por mdulos, y cada uno de estos mdulos se encuentra separado de forma independiente, tal que, si alguno falla no afecta a los otros, ni al ncleo. Ejemplo: Si falla el mdulo que controla el servicio de red se detiene slo este mdulo y el resto del sistema sigue su curso normal Los mdulos se pueden cargar dinmicamente en el ncleo cuando se necesiten, ya sea, en tiempo de ejecucin o durante el arranque del sistema. 52. Ejemplos de sistemas por mdulos UNIX modernos Solaris Linux Mac OSX 53. Linux (por ser cdigo abierto) permite acceder al kernel y modificarlo como queramos. Ejemplo de comandos Linux para administrar mdulos en el kernel lsmod: Muestra todos los mdulos cargados en el kernel linux modprobe: Se utiliza para agregar, ver y eliminar mdulos rmmod: Utilizado para descargar mdulos del kernel, con la restriccin de que no estn siendo utilizados y que no sean llamados por otros mdulos 54. Prctica Creacin de una Unidad de Memoria Extrable multi- booteable Memoria USB (4GB mnimo) ISOs de SO (Windows 7 32 bits, Linux Ubuntu 12.04 32 bits) Aplicacin YUMI