Sei sulla pagina 1di 9

UNIDAD 1 Introduccin a los sistemas operativos. Definicin y concepto. 1.1 Sistema Operativo.

- Coleccin de mecanismos de software destinados a servir de interface entre un sistema informtico y sus usuarios, el cual ofrece herramientas y facilidades para simplificar las tareas de diseo, codificacin, depuracin, actualizacin, etc. Administra los recursos hardware y software que constituyen el sistema informtico a explotar. Naci con la necesidad de llevar el control de quin utiliza los recursos software (usuario(s)). Componentes principales: manejo de procesos, entrada/salida, manejo de memoria y del sistema de archivos. Un sistema de computacin consta de hardware, programas del sistema y programas de aplicacin. 1.2 Funciones y caractersticas. Las funciones bsicas de un so son: soporte para la ejecucin de sw(software) de aplicacin elemento de diagnstico de hw(hardware) elemento de una red de computadoras elemento que optimiza el aprovechamiento de los recursos lgicos y fsicos de un sistema de cmputo 1.3 Evolucin histrica. Los primeros sistemas. En un principio slo exista el hardware de la computadora. Las primeras computadoras eran (fsicamente) grandes mquinas que se operaban desde una consola. Una sola persona programaba y operaba el equipo. Accesos por operador En 1955 se separaron las funciones informticas: Programacin, operacin y mantenimiento. El operador se encarga del manejo de la mquina (cargar programas, obtener resultados, hacer respaldos, etc.) y el programador dej de tener acceso a la computadora. Los programadores daban al operador los trabajos, ste los reuna y los ejecutaba uno tras otro y recoga los resultados entregndolos a los programadores. Otra solucin: El operador agrupaba los trabajos similares en requerimientos y los ejecutaba como si fueran un bloque (todos los de cobol, todos los de fortran), as se cargaba slo una vez el compilador. Secuencia automtica de trabajos El trabajo del operador era muy rutinario y poda automatizarse. Se dise un programa que transfera automticamente el control de un trabajo a otro, el monitor residente (1er sistema operativo). Al encender el equipo el control se daba al programa monitor, este lo pasaba al 1er trabajo, el cual al terminar regresaba el control al monitor, y as sucesivamente. El monitor constaba de: Secuenciador de trabajos, intrprete de tarjetas de control ($) y drivers de entrada/salida Mejora del rendimiento Aun quedaba mucho tiempo del cpu ocioso debido a la diferencia de velocidad entre este y los dispositivos entrada/salida que eran mecnicos. Off-Line Aparecieron las cintas magnticas, ms rpidas que las tarjetas perforadas, pero secuenciales. Entonces se perforaban los programas en tarjetas y de ah se pasaban a una cinta, esta cinta en bloque se pasaba a drivers secuenciador Intrprete de tarjetas de control Programa de usuario Memoria ejecucin y los resultados en una nueva cinta y de ah a la impresora. Las operaciones se hacan en dispositivos distintos lo que aumentaba la velocidad On line Lector de tarjetas->CPU>Impresora Off Line Lector de tarjetas->Unidad de Cinta->CPU->unidad de cinta->Impresora Se podan tener varias lectoras de tarjetas y unidades de cinta y mantener ocupado al CPU, la desventaja era que el usuario deba esperar a que se llenara la cinta para ser atendido.

Buffering Trata de mantener ocupados tanto el CPU como los dispositivos de E/S. Los datos se leen y se almacenan en un buffer (memoria intermedia), una vez que los datos se han ledo y el CPU va a iniciar la operacin, el dispositivo de entrada es instruido para iniciar inmediatamente la siguiente lectura. El CPU y el dispositivo de entrada permanecen ocupados. Cuando el CPU est libre para el siguiente grupo de datos, el dispositivo de entrada habr terminado de leerlos. El CPU podr empezar el siguiente proceso y el dispositivo de entrada iniciar la lectura de los datos siguientes. Para la salida, los resultados se descargan en otro buffer hasta que el dispositivo de salida pueda procesarlos. Todo depende del tamao del buffer y de la velocidad de procesamiento CPU y los E/S. Spooling (SPOOL Simultaneous Peripheral Operation On Line) El problema con los sistemas de cintas es que una lectora de tarjetas no poda escribir sobre un extremo de la cinta mientras el CPU lea el otro. Los sistemas de disco eliminaron esa dificultad, por su acceso directo. Las tarjetas se cargan directamente desde la lectora sobre el disco. Cuando se ejecuta un trabajo sus peticiones de entrada se satisfacen leyendo el disco. Cuando el trabajo solicita la salida, sta se escribe en el disco. Cuando la tarea se ha completado se escribe en la salida realmente. Se usa el disco como un buffer muy grande para leer por anticipado como sea posible de los dispositivos de entrada y para almacenar los archivos hasta que los dispositivos de salida sean capaces de aceptarlos. La ventaja sobre el buffering es que el spooling traslapa la E/S de un trabajo con el procesamiento de otro. Adems mantiene una estructura de datos llama job spooling, que hace que los trabajos ya cargados permanezcan en el disco y el sistema operativo puede seleccionar cual ejecutar, por lo tanto se hace posible la planificacin de trabajos mediante una cola por turno, tamao o prioridad. MULTIPROGRAMACIN Tipos de trabajo: Limitados por proceso: La mayor parte de su tiempo ocupan CPU Driver entrada/salida S.O. Planificador entrada/salida CPU Limitados por operaciones entrada/salida: La mayor parte de su tiempo ocupan e/s El segundo tipo dio origen a la Multiprogramacin.- Modo de trabajo en el que se pueden ejecutar varios programas simultneamente aprovechando la inactividad del CPU en una operacin e/s para optimizar el uso de los recursos. Surge de la imposibilidad de que con un solo trabajo se puedan tener ocupados el cpu y los entrada/salida todo el tiempo Da la impresin que todos los procesos estn siendo atendidos a la vez pero son conmutados Problemas: 1 El cpu debe tener reglas para ejecutar todos los trabajos 2 Se necesita administracin de memoria porque ser compartida por varios trabajos 3 Varios trabajos pueden necesitar el mismo recurso a la vez (concurrencia) Surge el ncleo del sistema (Kernel): rutinas para gestin de memoria, cpu y dems recursos Proceso por lotes (batch) El que no necesita la intervencin del usuario en la ejecucin de los trabajos. Generalmente son trabajos grandes que son solicitados y colocados en una cola FIFO, y el CPU va tomando un grupo y los ejecuta en paralelo w1 w2 libre w3 libre

Tiempo Compartido El proceso por lotes no permite el dilogo entre usuario y proceso, surge la multiprogramacin interactiva, Trabajos en ejecucin Programa 1 Programa 2 Programa 1 Programa 2 Mono Mult i Inactividad del CPU Espera e/s Proceso limitado por E/S Lista de trabajos junto con las terminales interactivas (teclado-pantalla), donde el usuario ya no tiene que dar todos los datos al inicio, sino darlos conforme se necesiten, e ir obteniendo respuesta inmediata. La organizacin no es por trabajos sino por sesiones. Sesin.- Conjunto de trabajos que se realizan desde que un usuario se conecta a la computadora hasta que se despide. Existe un programa llamado intrprete de comandos, que mantiene el dilogo entre usuario y sistema operativo. Caractersticas: *Interactivos *Varios usuarios * Tiempos de respuesta cortos *Gestin de archivos y memoria * Usa buffering y spooling Con estos sistemas operativos surgen utileras para facilitar el trabajo a los usuarios, como el editor de textos. Tiempo real Sistema multiprogramado con tiempos de respuesta cortos. Se usa en aplicaciones dedicadas a sistemas de control con sensores como elementos de entrada. Un sistema trabaja en tiempo real si el tiempo de respuesta permite controlar el medio sobre el que opera. Tiene su uso en el control de procesos industriales Caractersticas: *Tiempo de respuesta en ms *Informacin actualizada constantemente *El sistema est dedicado a responder a eventos de entrada Proceso distribuido Interconexin de computadoras compartiendo un mismo almacenamiento para el intercambio de informacin. Cada computadora cuenta con interfaz, memoria y cpu. Multiproceso Han surgido aplicaciones muy demandantes donde un solo cpu no es capaz de procesar la informacin en tiempo. Se hizo necesaria la descomposicin de los algoritmos en subalgoritmos ms sencillos y que puedan tratarse con cierta independencia. Al final se conjuntan los datos obteniendo el resultado final. Los subalgoritmos pueden trabajar en paralelo. Una sola computadora puede tener varios cpus, ahorrando tiempo. Su sistema operativo es complejo ya que debe administrar ms de un cpu y repartir los trabajos equilibradamente optimizando el proceso global. cpu1 cpu2 cpu4 cpu3 Comp Central Compu. central

Control Sensor Sistema Controlado Compu1 Comp3 Compu2

Comparacin entre monoprocesador y multiprocesador e/s Sistema operativo Planificador Coordinador De cpus Trabajos de Usuario Memoria Cpu 1 Cpu 2 Cpu 3 Cpu 4

1.4 Clasificacin. Sistemas Operativos por Servicios Esta clasificacin es la ms comnmente usada y conocida desde el punto de vista del usuario final. Monousuarios: un usuario a la vez, no importa el nmero de cpus, nmero de procesos que pueda ejecutar en un mismo instante de tiempo. PCs. a b c d 1 cpu mono a b

c d t1 multi aa b c d b c b c bb t2 4 cpus a b c d t3 t3<t1 t3<t2 Multiusuarios: ms de un usuario a la vez, por varias terminales conectadas a la computadora o por sesiones remotas en una red de comunicaciones. No importa el nmero de cpus ni el nmero de procesos que cada usuario puede ejecutar simultneamente. Monotareas: slo una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Multitareas: realiza varias labores al mismo tiempo. interfases grficas orientadas al uso lo cual permite un rpido intercambio entre las tareas para el usuario, Monoprocesador: solamente un CPU, de manera que si la computadora tuviese ms de uno le sera intil. MS-DOS y MacOS. Multiprocesador: ms de un cpu y es capaz de usarlos todos para distribuir su carga de trabajo. Trabajan de dos formas: simtrica o asimtricamente. Asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos. Simtrica, los procesos o partes de ellos son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema. Considerar la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoprocesador que no toman ninguna ventaja a menos que el sistema operativo o

el compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. El programador puede modificar sus algoritmos y aprovechar por s mismo esta facilidad, es costoso en horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el algoritmo inicial. 1.5 Estructura (niveles o estratos de diseo). Estructura monoltica. Primeros sistemas operativos constituidos fundamentalmente por un slo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). Caractersticas: 1 Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del encadenador (linker) 2 Buena definicin de parmetros de enlace entre las distintas rutinas existentes 3 Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora 4 Generalmente hechos a la medida, eficientes y rpidos en ejecucin y gestin 5 Poco flexibles para soportar diferentes ambientes de trabajo o aplicaciones. Estructura jerrquica. Mayores necesidades de los usuarios, mayor organizacin del software. Se dividi el sistema operativo en pequeas partes, cada una bien definida y con una clara interfase con el resto de elementos. Se constituy una estructura jerrquica, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven) Capa 5 Control de programas de usuario Capa 4 Gestin de Archivos Capa 3 Control de operaciones entrada/salida Capa 2 Control de la Consola de operacin Capa 1 Gestin de memoria Capa 0 Planificacin de CPU Capa -1 Hardware En esta estructura se basan la mayora de los sistemas operativos actuales. Otra forma es la de anillos. Cada uno tiene una apertura por donde pueden entrar las llamadas de las capas inferiores. Las zonas ms internas del sistema operativo o ncleo estarn ms protegidas de accesos indeseados desde las capas ms externas. Las internas sern ms privilegiadas que las externas. Cliente-servidor El ms reciente, puede ser ejecutado en la mayora de las computadoras, para toda clase de aplicaciones, es de propsito general. El ncleo establece la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro. 1.6 Ncleo. El Ncleo.- Componente que interacta directamente con el hardware. Contiene un conjunto de rutinas que hacen posible la ejecucin de los programas y la comunicacin entre ellos y el Hardware, es el que gestiona la entrada y salida del sistema, adaptndolas al hardware del sistema. Ncleo (Kernel) y Niveles de un Sistema Operativo Definicin. Es el software que constituye el ncleo del sistema operativo, dnde se realizan las funcionalidades bsicas como la gestin de procesos, la gestin de memoria y de entrada salida. El kernel del sistema operativo controla todas las operaciones que implican procesos y representa slo una pequea porcin del cdigo de todo el Sistema Operativo pero es de amplio uso. Niveles del Sistema Operativo Concepto de Kernel Para que una computadora pueda arrancar y funcionar, no es necesario que tenga un ncleo para poder usarse. Los programas pueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin

usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos Proceso Cliente Servidor de Archivos Servidor de Impresin Ncleo programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema operativo. El kernel presenta al usuario o los programas de aplicacin una interfaz de programacin de alto nivel, implementando la mayora de las facilidades requeridas por stos. Rene el manejo de una serie de siguientes conceptos ligados al hardware de nivel ms bajo: Procesos (tiempo compartido, espacios de direccionamiento protegidos); Seales y Semforos; Memoria Virtual ("swapping", paginado); Sistema de Archivos; Tubos ("pipes") y Conexiones de red. (Una tubera (pipe) se puede considerar como un canal de comunicacin entre dos procesos. Los mecanismos que se utilizan para manipular tuberas son los mismos que para archivos, con la nica diferencia de que la informacin de la tubera no se almacena en el disco duro, sino en la memoria principal del sistema. Este mecanismo de comunicacin consiste en la introduccin de informacin en una tubera por parte de un proceso (similar a la escritura en un archivo de disco). Posteriormente otro proceso extrae la informacin de la tubera (similar a la lectura de informacin almacenada en un archivo de disco) de forma que los primeros datos que se introdujeron en ella son los primeros en salir. Este modo de funcionamiento se conoce como FIFO (First In, First Out; el primero en entrar es el primero en salir). La comunicacin mediante tuberas es de tipo halfduplex, es decir, en un instante dado, la comunicacin solamente puede tener lugar en un sentido. Si se quiere que un proceso A pueda simultneamente enviar y recibir informacin de otro B, en general se debe recurrir a crear dos tuberas, una para enviar informacin desde A hacia B y otra para enviar desde B hacia A.) Una parte del kernel es independiente de los dispositivos presentes en el sistema, pero otra contiene los controladores necesarios para manejar partes especficas del hardware. El kernel interpreta los pedidos de los programas y los traduce en secuencias de bits que, presentadas a los registros de los controladores, operan sobre los dispositivos fsicos. Por ejemplo el cdigo de un kernel de Linux est escrito casi todo en C, salvo una pequea parte en lenguaje ensamblador para los procesos de bajo nivel. El tamao puede ir desde unos 400 KB hasta ms de 50 MB de cdigo fuente. Funcionamiento del Kernel

Tipos de Ncleos. En funcin del tamao y de las funcionalidades que posea el kernel podemos clasificarlo. Realmente, y pese a seguidores incondicionales en un modelo u otro, existe una tendencia bsica a reducir el tamao del ncleo proporcionando menos funcionalidades, que son desplazadas a mdulos que se cargan en tiempo de ejecucin. En funcin a esta idea tenemos tres tipos fundamentales de kernel: Kernel monoltico Todas las funcionalidades posibles estn integradas en el sistema. Se trata de un programa de tamao considerable que deberemos recompilar al completo cada vez que se quiera aadir una nueva posibilidad. Esta es la estructura original de Linux. Por tratarse de una tcnica clsica y desfasada el creador de Linux fue muy criticado. Ejemplos: los primeros kernels de Linux, UNIX y DOS Kernel modular Se trata de la tendencia actual de desarrollo. En el kernel se centran las funcionalidades esenciales como la administracin de memoria, la planificacin de procesos, etc. Sin embargo no tiene sentido que el ncleo de un sistema operativo englobe toda la parafernalia para comunicarse con todas las posibles de tarjetas de vdeo o de sonido. En otros sistemas operativos esto se soluciona con unos archivos proporcionados por el fabricante llamados drivers. En Linux se cre una interfaz adecuada para posibilitar el desarrollo de mdulos que cumplieran esas funcionalidades. Esos mdulos pueden ser compilados por separado y aadidos al kernel en tiempo de ejecucin. Ejemplo: Actualmente el kernel de linux. Estructura de Microkernel Esta tcnica pretende reducir a su mnima expresin el kernel, dejando a los niveles superiores el resto de las funcionalidades. Existen algunos kernels que lo utilizan, si bien el que centra nuestra atencin es Hurd. Se trata del ltimo kernel GNU llamado a sustituir a Linux como ncleo del sistema operativo. Aunque esta estrategia de diseo es tan antigua como la modular, no ha sido tenida en cuenta hasta ahora debido a las limitaciones de rendimiento que tena. Ejemplos: AIX, La familia de microncleos L4, El microncleo Mach (usado en GNU Hurd y en Mac OS X), Minix, MorphOS, QNX, RadiOS, VSTa 1.6.1 Interrupciones (FLIH). La interrupcin es el mecanismo mediante el cual otros mdulos pueden interrumpir una secuencia normal de procesamiento. Ejemplos: Programa: divisin por cero Temporizador: cuando se cumple un tiempo especfico E/S: cuando hay algo que comunicar Hardware: cuando ocurre una falla. La gestin de interrupciones la realiza el manipulador (controlador) de interrupciones (FLIH, First Level Interrupt Handler) que es la parte del sistema operativo responsable de proporcionar la respuesta adecuada a las seales procedentes tanto del exterior como del interior del sistema (interrupciones externas e internas). 1.6.2 Despachador(Scheduler). Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto debe actuar cuando se debe comprobar si es necesario cambiar el proceso que est activo. Esto involucra: cambio de contexto cambio a modo usuario salto a la direccin de memoria que corresponda al programa de usuario para continuar su ejecucin. Criterios de Despachador Utilizacin de CPU: mantener la CPU ocupada la mayor cantidad del tiempo posible Productividad (Throughput): # de procesos por unidad de tiempo Tiempo de servicio (Turnaround time): tiempo necesario para la ejecucin de un proceso particular Tiempo de espera (Waiting time): tiempo total que el proceso se encuentra en la fila ready Tiempo de respuesta (Response time): tiempo que transcurre desde el requerimiento hasta que se produce la primera respuesta (en ambientes de tiempo compartido) Criterios de Optimizacin Mxima utilizacin de CPU Mxima productividad Mnimo tiempo de servicio Mnimo tiempo de espera Mnimo tiempo de respuesta 1.6.3 Primitivas de comunicacin (IPC). Es una funcin bsica de los Sistemas operativos. Los procesos pueden comunicarse entre s a travs de compartir espacios de memoria, ya sean variables compartidas o buffers, o a travs de las herramientas provistas por las rutinas de IPC (Interprocess Communication). La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s.

Normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. La comunicacin se establece siguiendo una serie de reglas (protocolos de comunicacin) .

Por el numero de usuarios

Monousuarios Multiusuarios Monotareas Multitareas Uniproceso Multiproceso Simtrica Asimtric

Sistemas operativos por servicios

Por el numero de tareas

Por el numero de procesadores

Potrebbero piacerti anche