introducción a los sistemas operativos

21
Introducción a los Sistemas Operativos Este documento ofrece una aproximación a los sistemas operativos en lo que se refiere a su estructura y funcionamiento interno. Se dará un enfoque general a las funciones que realizan los sistemas operativos dentro de un sistema informático y finalmente se verán un resumen con las características generales de los sistemas operativos más utilizados. Introducción a los Sistemas Operativos by Rafael Lozano is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España License .

Upload: carlos-mario-pastrana-almanza

Post on 04-Oct-2015

7 views

Category:

Documents


2 download

DESCRIPTION

todo sobre sistemas operativos

TRANSCRIPT

  • Introduccin a losSistemas Operativos

    Este documento ofrece una aproximacin a los sistemas operativosen lo que se refiere a su estructura y funcionamiento interno. Sedar un enfoque general a las funciones que realizan los sistemasoperativos dentro de un sistema informtico y finalmente se vernun resumen con las caractersticas generales de los sistemasoperativos ms utilizados.

    Introduccin a los Sistemas Operativos by Rafael Lozano is licensed under a Creative CommonsReconocimiento-NoComercial-CompartirIgual 3.0 Espaa License.

    http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.es_EShttp://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.es_ES

  • Tabla de contenidos

    Tabla de contenido

    1 Introduccin........................................................................................................................................11.1 Evolucin histrica de los sistemas operativos...................................................................................2

    1.1.1 Primera generacin (1945)...................................................................................................................... 21.1.2 Segunda generacin (1955 aprox.)........................................................................................................ 31.1.3 Tercera generacin (1965 aprox.).......................................................................................................... 31.1.4 Cuarta generacin (1980 aprox.)............................................................................................................31.1.5 Quinta generacin (1990)........................................................................................................................ 41.1.6 Sexta generacin (en la actualidad).......................................................................................................4

    2 Clasificacin de los sistemas operativos.......................................................................................42.1 Tiempo de respuesta..................................................................................................................................42.2 Nmero de usuarios...................................................................................................................................52.3 Nmero de procesos..................................................................................................................................52.4 Nmero de procesadores.........................................................................................................................5

    3 Estructura de un Sistema Operativo..............................................................................................53.1 Sistema monoltico......................................................................................................................................63.2 Sistemas microncleo (microkernel)......................................................................................................73.3 Sistema por capas.......................................................................................................................................83.4 Sistema por mdulos..................................................................................................................................9

    4 Funciones de un sistema operativo...............................................................................................94.1 Administrador de procesos....................................................................................................................104.2 Administrador de la memoria principal...............................................................................................104.3 Administrador del almacenamiento secundario...............................................................................104.4 Gestin de ficheros y directorios..........................................................................................................114.5 Administrador de la E/S...........................................................................................................................114.6 Proteccin...................................................................................................................................................12

    5 Interfaces de usuario en un SO....................................................................................................125.1 Intrprete de comandos..........................................................................................................................125.2 GUI................................................................................................................................................................14

    6 Sistemas operativos actuales........................................................................................................156.1 SO para PC..................................................................................................................................................15

    6.1.1 Windows..................................................................................................................................................... 156.1.2 Mac OSX..................................................................................................................................................... 166.1.3 GNU/Linux................................................................................................................................................. 16

    6.2 SO para dispositivos mviles..................................................................................................................166.2.1 Android....................................................................................................................................................... 176.2.2 iOS............................................................................................................................................................... 176.2.3 Windows Phone....................................................................................................................................... 17

    7 Bibliografa.........................................................................................................................................19

    ndice I

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Introduccin a losSistemas Operativos

    1 IntroduccinEn captulos anteriores vimos que un sistema informtico lo forma el hardware, el software y los

    usuarios. El hardware por si solo no tiene capacidad para funcionar. Necesita del software parahacerlo y el sistema operativo es el software que toma el control del ordenador cuando se enciende yque permite al usuario su uso.

    Un Sistema Operativo (SO) es el conjunto de programas que controlan, coordinan ydirigen el uso de los recursos hardware de un sistema informtico.

    El SO es el encargado de ejercer el control y coordinar el uso del hardware entre diferentesprogramas de aplicacin y los diferentes usuarios. Es un administrador de los recursos de hardwaredel sistema.

    Los sistemas operativos realizan dos funciones diferentes:

    Proveer un entorno amigable en el cual el usuario pueda ejecutar programas de maneraconveniente, protegindolo de los detalles y complejidades del hardware.

    Administrar eficientemente los recursos del sistema informtico.

    El objetivo principal de un SO es, entonces, lograr que el sistema informtico se use de maneracmoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.

    Hoy da es habitual que en un ordenador se ejecuten mltiples aplicaciones de usuario:procesadores de texto, navegadores de Internet, reproduccin de vdeo, etc. Estas aplicacionesnecesitan el uso de los recursos hardware, como espacio en memoria, ciclos de ejecucin en la CPU,acceso a datos en los dispositivos de almacenamiento. Es decir, diferentes aplicaciones compiten porel acceso a los recursos hardware del sistema y el SO se encarga de ofrecer una distribucin

    Pgina 1

  • Rafael Lozano Introduccin a los sistemas operativos

    ordenada y controlada a estos recursos hardware entre las diversos aplicaciones que compiten porellos.

    De lo anterior se deduce que las aplicaciones de usuario no interactan directamente con elhardware, sino que deben hacerlo a travs del sistema operativo. Por tanto, las aplicaciones han deestar programadas especficamente para el sistema operativo que se ejecuta en el ordenador.

    Un SO tiene los siguientes objetivos:

    Comodidad.- El SO hace que el ordenador sea ms cmodo de utilizar por los usuarios.

    Eficiencia.- Un SO permite que los recursos de un sistema informtico se aprovechen de unamanera ms eficiente.

    Capacidad de evolucin.- Un SO debe construirse de modo que permita el desarrollo efectivo,la verificacin y la introduccin de nuevas funciones en el sistema y, a la vez, no interferir enlos servicios que brinda.

    1.1 Evolucin histrica de los sistemas operativos

    En el inicio del desarrollo de los ordenadores, estos no tenan un sistema operativo. Estosprimeros ordenadores se diseaban especficamente para realizar un tipo de tarea muy concreto y lasaplicaciones que ejecutaban era codificadas por los usuarios en lenguaje mquina e introducirlasdentro del ordenador. Todo este trabajo estaba encuadrado en proyectos cientficos y militares quetenan un control absoluto sobre todo el trabajo.

    Sin embargo, aos despus, la evolucin de la informtica permiti a algunas empresasproducir ordenadores de propsito general para su venta a otras empresas. Fue aqu donde surgi lanecesidad de dotar al ordenador de un software bsico que permitiera su uso. Este primer softwarebsico supuso el primer sistema operativo.

    A lo largo de la historia los SO han evolucionado para adaptarse a los cambios tecnolgicos quese iban produciendo en los ordenadores y as poder aprovechar estos avances tecnolgicos.

    1.1.1 Primera generacin (1945)

    Los sistemas operativos de los aos cincuenta fueron diseados para hacer ms fluida latransicin entre trabajos. Antes de que los sistemas fueran diseados, se perda un tiempoconsiderable entre la terminacin de un trabajo y el inicio del siguiente. Este fue el comienzo de lossistemas de procesamiento por lotes, donde los trabajos se reunan por grupos o lotes. Cuando eltrabajo estaba en ejecucin, este tena control total de la maquina. Al terminar cada trabajo, el controlera devuelto al SO, el cual lea e iniciaba el trabajo siguiente.

    Adems el laboratorio de investigacin General Motors implement el primer SO para la IBM701. Los sistemas de los 50s generalmente ejecutaban una sola tarea, y la transicin entre tareas sesuavizaba para lograr la mxima utilizacin del sistema. Esto se conoce como sistemas deprocesamiento por lotes de un slo flujo, ya que los programas y los datos eran sometidos en gruposo lotes.

    Pgina 2

  • Rafael Lozano Introduccin a los Sistemas Operativos

    1.1.2 Segunda generacin (1955 aprox.)

    La caracterstica de los sistemas operativos fue el desarrollo de los sistemas compartidos conmultiprogramacin, y los principios del multiprocesamiento. En los sistemas de multiprogramacin,varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y elprocesador se cambia rpidamente de un trabajo a otro. En los sistemas de multiprocesamiento seutilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar elpoder de procesamiento de la maquina.

    Posteriormente se consigui la independencia de dispositivos de almacenamiento. Un usuarioque desea escribir datos en una cinta en sistemas de la primera generacin tena que hacerreferencia especfica a una unidad de cinta particular. En la segunda, generacin, el programa delusuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con ciertonmero de pistas y cierta densidad.

    Se desarroll el concepto de sistemas compartidos, en la que los usuarios podan conectarsedirectamente al ordenador a travs de terminales. Surgieron sistemas de tiempo real, en que losordenadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real secaracterizan por proveer una respuesta dentro de un periodo de tiempo establecido.

    1.1.3 Tercera generacin (1965 aprox.)

    Se inicia con la introduccin de la familia de ordenadores Sistema/360 de IBM. Los ordenadoresde esta generacin fueron diseados como sistemas de propsito general, es decir, podan ejecutardiversos tipos de aplicaciones.

    En 1969 Ken Thompson, Dennis Ritchie y Douglas MCIlroy crean el sistema operativo UNIX enlos Laboratorios Bell. Tambin aparece un ordenador personal, el Xerox Alto que tena su propiosistema operativo.

    1.1.4 Cuarta generacin (1980 aprox.)

    En 1979 Tim Paterson crea su sistema operativo 86-DOS, que posteriormente pas a llamarseQDOS (Quick and Dirty Operative System). Dos aos despus Bill Gates compra QDOS y lo rebautiza dosveces: en primer lugar como PC-DOS, el cual vende como sistema operativo a IBM para su IBM-PC, yun ao ms tarde como MS-DOS, el cual, siendo una copia casi idntica a PC-DOS. Comoconsecuencia de la aparicin del PC con su sistema operativo el porcentaje de la poblacin que tieneacceso a un ordenador es mucho mayor que nunca y aumenta rpidamente.

    En 1983 Apple crea el Apple Lisa System 1 y un ao despus el Mac OS. En 1985 aparece laprimera versin de Windows, aunque por aqul entonces no era un sistema operativo sino unentorno grfico que se ejecutaba bajo MS-DOS.

    En 1987: Andrew S. Tanenbaum crea MINIX, un sistema operativo basado en Unix y escrito enlenguaje C, cuyo principal objetivo era aprender como funciona un sistema operativo por dentro. Estesistema inspir a Linus Torvalds para la creacin del Ncleo Linux.

    Un interesante desarrollo que comenz a llevarse a cabo a mediados de la dcada de losochenta ha sido el crecimiento de las redes de ordenadores, con sistemas operativos de red ysistemas operativos distribuidos. En los sistemas operativos de red, los usuarios conectan sus PCs conotros remotos y copiar archivos de una maquina a otra. Cada maquina ejecuta su propio sistema

    Pgina 3

  • Rafael Lozano Introduccin a los sistemas operativos

    operativo local y tiene su propio usuario.

    Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios comoun sistema tradicional de un solo procesador, aun cuando esta compuesto por varios procesadores.En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde suprograma se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en formaautomtica y eficaz por el sistema operativo.

    1.1.5 Quinta generacin (1990)

    En esta generacin aparecen los sistemas operativos con interfaces grficas de usuarios (GUI).

    En 1990 aparece Windows v3 y en 1995 Windows 95 de Microsoft. Ambos siguen siendoentornos grficos para ser ejecutados bajo el sistema operativo MS-DOS en su ltima versin, la 6. En1998 aparece Windows 98 como sistema operativo con GUI para PC.

    En 1990 Richard Stallman crea el sistema GNU de software libre y el Linus Torvalds creara unao despus el ncleo Linux. En 1992, el sistema GNU y el Ncleo Linux se unen formalmente paracrear GNU/Linux.

    1.1.6 Sexta generacin (en la actualidad)

    Los sistemas operativos evolucionan con nuevas interfaces de usuario, como la pantalla tctil,para nuevos dispositivos: PC's, porttiles, tablets, smartphones. Aparecen los sistemas operativos enla nube o sistemas operativos en la web (WebOS). Consisten en un escritorio virtual con aplicacionesintegradas que permiten al usuario administrar sus datos sin necesidad de instalar aplicaciones. Todoello mediante una conexin a Internet.

    2 Clasificacin de los sistemas operativosLos sistemas operativos pueden clasificarse en funcin de diferentes criterios. Los ms

    relevantes son los siguientes:

    2.1 Tiempo de respuesta

    El tiempo de respuesta es la cantidad de tiempo que transcurre desde que el usuario lanza elproceso hasta que obtiene los resultados. Segn esto, el sistema operativo puede ser:

    Proceso por lotes.-El sistema operativo ejecuta un conjunto de trabajos, denominado lote, unodetrs de otro. El resultado se presenta al usuario cuando termina todos los trabajos. Elusuario no interviene ya que los datos para realizar los trabajos estn en el propio trabajo.

    Interactivo.- Existen interaccin con el usuario. El SO ejecuta un trabajo y cuando necesita undato interrumpe su ejecucin para solicitarlo al usuario. Este se lo suministra por undispositivo de E/S y el SO contina con su ejecucin hasta que necesite otro dato o finaliza.Para optimizar el uso de recursos el SO utiliza el tiempo compartido, de forma que puederepartir su tiempo entre varios trabajos.

    Tiempo real.- El SO debe ofrecer un tiempo de respuesta dentro de un plazo definido deantemano que generalmente suele ser bajo. Este tipo de SO se suele utilizar donde el tiempode respuesta es crtico, como en procesos industriales o trfico areo.

    Pgina 4

  • Rafael Lozano Introduccin a los Sistemas Operativos

    2.2 Nmero de usuarios

    Dependiendo del nmero de usuarios que pueden utilizar simultneamente el sistemainformtico, los sistemas operativos pueden ser:

    Monousuario.- En este SO solamente un usuario puede utilizar el sistema informtico para elque estn disponibles todos los procesos.

    Multiusuario.- Un SO multiusuario provee servicio a mltiples usuarios simultneamente.Actualmente este tipo de sistemas se emplean especialmente en redes, pero los primerossistemas multiusuario fueron sistemas centralizados que se compartan a travs del uso demltiples terminales.

    2.3 Nmero de procesos

    Este criterio indica el nmero de proceso simultneos que puede gestionar un SO. En funcinde esto los sistemas operativos pueden ser:

    Monotarea.- Un SO es monotarea cuando solamente ejecuta un programa a la vez. La CPUejecuta un programa y hasta que no acaba o ejecuta otro. Estos sistemas operativos estn endesuso, como por ejemplo el MS-DOS.

    Multitarea.- Se pueden ejecutar varios procesos a la vez. Si el sistema informtico solamentetiene una CPU, el SO dividir su tiempo entre todos los procesos intentando maximizar el usode la CPU. Los procesos en ejecucin debern permanecer en memoria principal mientras seejecuten.

    2.4 Nmero de procesadores

    Indica el nmero de CPU que tenga el sistema informtico. En funcin de este criterio existenlos siguientes tipos de sistemas operativos:

    Monoproceso.- Un SO monoproceso solamente puede trabajar con un sistema informticoque tenga una nica CPU.

    Multiproceso.- Un SO multiproceso puede trabajar con varias CPUs con lo que podr ejecutarvarios procesos de manera simultnea.

    3 Estructura de un Sistema OperativoLa siguiente tabla muestra una clasificacin de los programas que forman un SO

    Nombre Descripcin

    Ncleo o kernel Se encarga de interactuar con el hardware. Es la nica parte del SO que tieneacceso directo al hardware.

    Llamadas al sistema o primitivas

    Funciones que invocan las aplicaciones de usuario para solicitar algn servicio alSO. Cada SO implementa un conjunto propio de llamadas al sistema. Eseconjunto de llamadas es la interfaz del SO frente a las aplicaciones. Constituyen

    Pgina 5

  • Rafael Lozano Introduccin a los sistemas operativos

    el lenguaje que deben usar las aplicaciones para comunicarse con el SO.

    Servidor Programa que utiliza el kernel para suministrar algn servicio a las aplicacionesde usuario. Los servidores se emplean en estructuras microkernel que se ver acontinuacin.

    Interrupciones y excepciones

    El SO ocupa una posicin intermedia entre los programas de aplicacin y elhardware. No se limita a utilizar el hardware a peticin de las aplicaciones ya quehay situaciones en las que es el hardware el que necesita que se ejecute cdigodel SO. En tales situaciones el hardware debe poder llamar al SO, pudiendodeberse estas llamadas a dos condiciones:

    Algn dispositivo de E/S necesita atencin.

    Se ha producido una situacin de error al intentar ejecutar una instruccindel programa (normalmente de la aplicacin).

    En ambos casos, la accin realizada no est ordenada por el programa deaplicacin, es decir, no figura en el programa. Segn los dos casos anteriorestenemos las interrupciones y la excepciones:

    Interrupcin: seal que enva un dispositivo de E/S a la CPU para indicar quela operacin de la que se estaba ocupando, ya ha terminado.

    Excepcin: una situacin de error detectada por la CPU mientras ejecutabauna instruccin, que requiere tratamiento por parte del SO.

    Utilidades Todos los SO incluyen un conjunto de programas para resolver pequeas tareasde los usuarios, como el navegador de Internet, el explorador de archivos,accesorios, y tambin un conjunto de programas de ayuda a la programacin,como editores, compiladores, enlazadores, etc.

    El objetivo de la estructuracin de un SO es buscar una organizacin interna que facilite lacomprensin, incremente la portabilidad, extensin y favorecer su mantenimiento.

    A continuacin se describen las distintas estructuras que presentan los actuales sistemasoperativos para satisfacer las necesidades que de ellos se quieren obtener. stas no son de ningunamanera las nicas posibles, pero nos darn una idea de algunos diseos que se han llevado a laprctica.

    3.1 Sistema monoltico

    Los sistemas monolticos son la estructura ms simple para un SO. Tambin llamados deestructura modular, fue escrito para proporcionar una mxima funcionalidad dentro del menorespacio posible.

    Se caracteriza porque no tienen una estructura totalmente clara, con esto nos referimos a quesus rutinas y funcionalidades (manejo de drivers, sistemas de archivos, gestin de memoria, etc.), seencuentran agrupados en un solo programa.

    Pgina 6

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Este sistema est descrito como un conjunto de procedimientos o rutinas entrelazadas de talforma que cada una tiene la posibilidad de llamar a las otras rutinas cada vez que as lo requiera. Sinembargo, cabe destacar los defectos en este tipo de estructura que radica principalmente en la pocafiabilidad otorgada, ya que todo el sistema, al no tener una estructura definida, se ejecuta todo en elmismo nivel del ncleo (kernel) lo que lo hace altamente vulnerable, por esta razn cuando falla unprograma se produce un error en todo el sistema.

    Adems, otro problema inherente al sistema monoltico es que si se modifica el hardware por logeneral es necesario recompilar el kernel para poder disponer de las funcionalidades. Esto consumetiempo y recursos porque la compilacin de un nuevo kernel puede durar varias horas y necesita deuna gran cantidad de memoria. Cada vez que alguien aade una nueva caracterstica o corrige unerror, significa que se necesitar hacer una recompilacin del kernel entero, un ejemplo de estopodemos verlo en Linux. Tambin el hecho de que en el espacio del kernel estn incluidos todos losservicios bsicos, tiene tres grandes inconvenientes: el tamao del ncleo, la falta de extensibilidad yla dificultad de mantenimiento.

    Ejemplos de este tipo de estructura son Unix, MS-DOS, Mac OS (hasta v8.6), Linux, Windows 95,98, 98SE, Me.

    3.2 Sistemas microncleo (microkernel)

    El microkernel es un enfoque que define un kernel muy simple que trabaja sobre el hardware.La esencia consiste en que solo las funciones absolutamente esenciales del kernel del sistemaoperativo deben permanecer en el microkernel. Los servicios y las aplicaciones menos esenciales seconstruyen sobre el microkernel y se ejecutan en modo usuario.

    Este microkernel tiene un conjunto de primitivas y llamadas al sistema para implementar unosservicios mnimos del SO como comunicacin entre procesos, gestin de memoria y planificacin dela CPU. Los dems servicios que solan ser suministrados por el kernel, como por ejemplo el serviciode red, se implementan como programas de usuario conocidos como servidores.

    En teora este enfoque aade ms estabilidad al sistema por que un fallo de un servidor

    Pgina 7

    Figura 1.- Sistema monoltico

  • Rafael Lozano Introduccin a los sistemas operativos

    solamente parara un programa simple, en lugar de provocar la parada del SO completo. La siguientefigura muestra las diferencias entre un enfoque monoltico y el microkernel.

    En la figura anterior se aprecia que el kernel de un sistema monoltico es mayor. Todos losservicios que ofrece el SO a las aplicaciones de usuario se ejecutan dentro del ncleo. Sin embargo elkernel de un sistema microncleo solamente incluye funciones bsicas de intercomunicacin deprocesos, asignacin de memoria y planificacin de procesos. El resto de servicios se implementancon programas servidores.

    Un ejemplo de sistema operativo con esta estructura es Minix, desarrollado por Andrew S.Tanembaum.

    3.3 Sistema por capas

    En esta estructura el SO se divide en capaso niveles, cuya organizacin est dada como unajerarqua de capas donde cada una de ellasofrece una interfaz clara y bien definida, la capasuperior solamente utiliza los servicios yfunciones que ofrece la capa inferior, es decir, lacapa n slo se comunica para obtener lorequerido con la capa n-1, donde la capa inferiores la ms privilegiada. El encargado de quesolamente haya comunicacin entre capasadyacentes es el procesador.

    La capa ms interna o inferior (capa 0) corresponde al hardware, mientras que la ms alta oexterna corresponde a la interfaz de usuario. El sistema original consta de 6 capas:

    Capa 5: Se encuentra la interfaz de usuario.

    Pgina 8

    Figura 3.- Estructura por capas

    Figura 2.- Comparativa kernel monoltico y microkernel

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Capa 4: Aloja los programas de usuario.

    Capa 3: Se controlan los dispositivos E/S (entrada y salida).

    Capa 2: Se administra la comunicacin entre procesos y la consola del operador.

    Capa 1: Administracin de memoria y discos.

    Capa 0: Correspondiente al hardware, realizando asignacin del procesador, tambin alternaentre procesos cuando ocurren interrupciones o se han expirado y proporcionamultiprogramacin bsica de la CPU.

    Como ventajas de este sistema podemos mencionar que al tener una organizacin pormdulos, otorga facilidad en construccin y depuracin del sistema. La facilidad de construccin seconsigue al existir esta divisin en mdulos (capas) se produce una abstraccin del problema,simplificndose solamente a la funcin que realiza el mdulo correspondiente a una capa N. Tambinal lograr esta abstraccin, no es necesario saber detalles de implementacin de las capas inferiores,slo se utilizan. La facilidad de depuracin, quiere decir, que sea ms simple la tarea de encontrarerrores en el cdigo y corregirlos. Otro aspecto positivo relacionado con la modularidad existente,cuando ocurre un error en una de las capas, no se compromete a todo el sistema, slo a la caparelacionada con el error.

    Con respecto a las desventajas de esta organizacin, al realizar la construccin de las capas, laproblemtica es la forma de realizar la divisin y definicin de las funcionalidades, ya que se tieneconsiderar que las capas superiores solamente pueden utilizar los servicios de la capa que seencuentra inferior, por lo tanto, se debe tener mucho cuidado en la planificacin del sistema para queexista un ptimo funcionamiento. Otra desventaja que podemos mencionar es el gasto de tiempo quese genera en ir de una capa a otra.

    3.4 Sistema por mdulos

    La mayora de los sistemas operativos modernos implementan este enfoque. Lo que caracterizaeste tipo de estructura es que el kernel se compone de mdulos, y cada uno de estos mdulos seencuentra separado de forma independiente, tal que, si alguno falla no afecta a los otros, ni al ncleo.Los mdulos se pueden cargar dinmicamente en el ncleo cuando se necesiten, ya sea, en tiempode ejecucin o durante el arranque del sistema. El kernel dispone de los componentes fundamentalesy se conectan directamente con servicios adicionales. Adems otros componentes pueden cargarsedinmicamente al ncleo.

    En general, esta estructura se parece bastante a la de capas, pero es mucho ms flexible debidoa que cualquier mdulo de esta estructura puede llamar a otro.

    Ejemplos de este tipo de estructura son Unix modernos, Solaris, Linux, Mac OSX.

    4 Funciones de un sistema operativoUn SO multiusuario proporciona un entorno dentro del cual se ejecutan las aplicaciones. Para

    construir este entorno se divide lgicamente al SO en pequeos mdulos y se crea una interfaz biendefinida entre estos mdulos y las aplicaciones que se ejecutan. Cada uno de estos mdulos seencarga de realizar una funcin especfica. Entre estas estn:

    Pgina 9

  • Rafael Lozano Introduccin a los sistemas operativos

    4.1 Administrador de procesos

    La CPU ejecuta un gran nmero de aplicaciones, y aunque su preocupacin principal es laejecucin de aplicaciones de usuario, hay otras aplicaciones que se denominan procesos cuyaejecucin tambin es necesaria para otras actividades del sistema. Un proceso es un programa enejecucin con su entorno asociado. Suponemos que el proceso se ejecuta secuencialmente entiempo compartido y un programa puede generar varios procesos activos.

    En general, un proceso necesita determinados recursos, incluyendo tiempo de la CPU, memoria,archivos y dispositivos de E/S, para cumplir con su tarea. Estos recursos se proporcionan al crear elproceso, o se le asignan mientras se ejecuta. Potencialmente, todos estos procesos puedenejecutarse en forma concurrente, multiplexando la CPU entre ellos. El SO es responsable de lasactividades relacionadas con la administracin de procesos:

    Crear y eliminar procesos.

    Suspender y reanudar la ejecucin de procesos.

    Sincronizacin de procesos.

    Comunicacin entre procesos.

    Anlisis de interbloqueos.

    4.2 Administrador de la memoria principal

    La memoria es el dispositivo de almacenamiento principal en un sistema informtico. Estformada por un conjunto de palabras o bytes cada uno con su propia direccin, siendo por tanto unsistema de almacenamiento de datos de acceso rpido que es compartido por la CPU y la E/S. Elprocesador lee las instrucciones y lee o escribe datos de la memoria principal. Por otra parte, la E/Snecesita acceso a memoria para lectura y escritura de datos.

    Para mejorar la utilizacin de la CPU y la velocidad de respuesta del ordenador a los usuarios, sedebe conservar varios programas en memoria. Existen diferentes esquemas para la administracin dememoria, y la eficacia de los distintos algoritmos depende de la situacin particular. Las actividadesrelacionadas con la administracin de memoria son las siguientes:

    Llevar el control de las zonas de memoria usadas y quien las usa.

    Decidir que procesos se cargan en memoria habiendo espacio libre.

    Asignar y recuperar espacio de memoria.

    4.3 Administrador del almacenamiento secundario

    Cuando la memoria principal sea pequea para almacenar todos los programas y los datos, elsistema informtico debe ofrecer almacenamiento secundario que la respalde, es lo que llamamosmemoria secundaria. Este almacenamiento se hace en general mediante disco donde se sitanhabitualmente muchas aplicaciones que no se usan frecuentemente por el sistema y que se carganen memoria principal solo cuando los usuarios lo demanden. Respecto a la memoria secundaria lasfunciones van a ser:

    Pgina 10

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Administracin del espacio libre en dispositivos de almacenamiento.

    Asignacin del almacenamiento.

    Planificacin de las operaciones sobre el disco.

    Una de las operaciones principales del sistema ser resolver las operaciones de carga ydescarga de informacin desde el almacenamiento secundario a la memoria principal.

    4.4 Gestin de ficheros y directorios

    Es una de las partes ms visibles del SO por parte del usuario. Los ordenadores puedenalmacenar informacin en varios dispositivos fsicos, siendo los ms comunes el disco duro, el discoptico y las memorias flash. Cada uno de estos dispositivos tiene sus propias caractersticas yorganizacin fsica.

    Para usar cmodamente un sistema informtico, el SO ofrece una perspectiva lgica uniformedel almacenamiento de informacin. El SO se vale de las propiedades fsicas de sus dispositivos dealmacenamiento para definir una unidad de almacenamiento lgico, el archivo o fichero. Por mediodel SO, los archivos se relacionan con el dispositivo fsico.

    Un archivo es un conjunto de informacin relacionada y que se almacena y manipula por elsistema operativo como una entidad nica. Comnmente los archivos representan programas ydatos. A bajo nivel, un archivo es una secuencia de bits, bytes, lneas o registros, cuyo significado hasido definido por la aplicacin que lo crea . Los archivos se organizan en directorios para facilitar suuso. Como varios usuarios tienen acceso a ellos, es deseable controlar quin tiene acceso a losarchivos y cmo puede hacerlo.

    El SO es responsable de las siguientes actividades relacionadas con la administracin dearchivos:

    Crear y eliminar archivos.

    Crear y eliminar directorios.

    Control de operaciones para manipular archivos y directorios.

    Correspondencia entre archivos y almacenamiento secundario.

    Copia de seguridad de archivos en medios de almacenamiento estables.

    4.5 Administrador de la E/S

    Un sistema informtico tiene una diversidad de dispositivos perifricos conectados. Uno de losobjetivos del SO es ocultar al usuario las particularidades que estos dispositivos hardware y por tantosus funciones bsicas son:

    Un sistema de memoria cach mediante buffer.

    Una interfaz general con los controladores de dispositivo y unos controladores paradispositivos hardware especficos.

    Slo el controlador de dispositivo conoce las particularidades del dispositivo al cual est

    Pgina 11

  • Rafael Lozano Introduccin a los sistemas operativos

    asignado.

    4.6 Proteccin

    La proteccin se refiere al control del acceso de los programas, procesos o usuarios a losrecursos de un sistema informtico. El SO tiene la responsabilidad de proteger un proceso de losotros. Por tanto debe asegurar que los ficheros, segmentos de memoria, CPU y otros recursos de E/Spuedan ser nicamente usados por aquellos procesos que hayan recibido la correspondienteautorizacin del sistema. Por ejemplo, el direccionamiento de memoria asegura que un proceso slopuede trabajar dentro del espacio de direcciones asignado a ese proceso. Hay que asegurar queningn proceso pueda obtener el control de la CPU sin que lo acapare indefinidamente. Por ltimo,no se permite que los usuarios realicen por su cuenta sus operaciones de E/S, para proteger as laintegridad de los dispositivos perifricos.

    5 Interfaces de usuario en un SOActualmente, hay dos paradigmas fundamentales en el uso del SO: modo comando o intrprete

    de la lnea de comando y modo grfico o la interfaz grfica de usuario (GUI), aunque la tendenciaactual es combinar ambos paradigmas. Esto quiere decir que los sistemas operativos para usuarioofrecen una interfaz grfica para que el usuario profano en informtica pueda interactuar con el SO yadems la posibilidad de utilizar una interfaz solo texto para introducir comandos ejecutables.Veamos con ms detalle ambos paradigmas.

    5.1 Intrprete de comandos

    Antes de la aparicin de las interfaces grficas, los usuarios se comunicaban con el SO a travsde comandos. Un comando (traduccin literal del ingls command, orden, instruccin) es unainstruccin u orden que el usuario proporciona al SO, desde la lnea de comandos (shell) o desde unallamada de programacin. Estos comandos pueden ser:

    Iinterno.- El cdigo del comando est contenido en el propio intrprete

    Externo.- Cuando el cdigo del comando est en en un archivo ejecutable.

    Suele admitir parmetros (argumentos) de entrada, lo que permite modificar sucomportamiento predeterminado. Suelen indicarse tras una barra "/" (en sistemas operativosWindows) o un guin simple "-" o doble "--" (en sistemas operativos Unix/Linux).

    Pgina 12

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Figura 4.- Intrprete de comandos en Windows 7

    Esta interaccin la lleva a cabo un programa que se suele llamar intrprete de comandos. Elintrprete de comandos o consola permite al usuario escribir comandos del sistema operativo, de talmodo que, despus de pulsar la tecla Intro en el teclado, se ejecuten procesos internos al propiointrprete de rdenes o se lancen programas externos al mismo. Algunas de estas consolas son:

    command.com para los sistemas basados en DOS (MS-DOS, PC-DOS, DR-DOS, FreeDOS, etc.).

    cmd.exe para los sistemas basados en Windows (Windows NT, 2000, XP, 2003 Server, Vista, 7 y2008 Server).

    PowerShell para Windows 8 y Server 2012.

    bash, sh, csh, ksh, etc. para los sistemas basados en Unix (GNU/Linux, *BSD, Solaris, etc.).

    Figura 5.- Terminal de Linux

    Este programa tiene dos formas de implementarse. En primer lugar, el intrprete de comandoscontiene en s el cdigo para ejecutar el comando que se desea ejecutar. Por ejemplo, un comandopara borrar un fichero puede hacer que el intrprete salte a una seccin de su cdigo que establecelos parmetros necesarios y realiza la operacin. En este caso, el nmero de comandos que puedendarse determina el tamao del intrprete de comandos, puesto que cada comando requiere supropio cdigo de implementacin.

    Un enfoque alternativo implementa todos los comandos mediante programas de sistemaespeciales y se almacenan cada uno en un archivo. En este caso, el intrprete de comandos no

    Pgina 13

  • Rafael Lozano Introduccin a los sistemas operativos

    comprende el comando; simplemente utiliza el comando para identificar un fichero a cargar enmemoria y ejecutar. Por ejemplo, un comando delete G buscara un fichero llamado delete, el cualcontiene el cdigo para borrar al fichero G, lo cargara en memoria y le pasara el parmetro G. Lafuncin asociada con el comando delete estara completamente definida por el cdigo del ficherodelete. De esta manera pueden aadirse fcilmente nuevos comandos al sistema, creando nuevosficheros con el nombre adecuado. El programa intrprete de comandos, que en este caso puede serbastante pequeo, no necesita ser modificado para aadir comandos nuevos.

    5.2 GUI

    La interfaz grfica de usuario, conocida tambin como GUI (Graphical User Interface) es unprograma informtico que acta de interfaz de usuario, utilizando un conjunto de imgenes y objetosgrficos para representar la informacin y acciones disponibles en la interfaz. Su principal uso,consiste en proporcionar un entorno visual sencillo para permitir la comunicacin con el sistemaoperativo de una mquina o computador.

    Habitualmente las acciones se realizan mediante manipulacin directa, para facilitar lainteraccin del usuario con el ordenador. Surge como evolucin de las interfaces de lnea decomandos que se usaban para operar los primeros sistemas operativos y es pieza fundamental en unentorno grfico. Como ejemplos de interfaz grfica de usuario, cabe citar los entornos de escritorioWindows, el X-Window de GNU/Linux o el de Mac OS X.

    Es el tipo de visualizacin que permite al usuario elegir comandos, iniciar programas y ver listasde archivos y otras opciones utilizando las representaciones visuales como los iconos y las listas deelementos del men.

    Pgina 14

    Figura 6.- GUI del Mac OSX

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Para los autores de aplicaciones, las interfaces grficas de usuario ofrecen un entorno que seencarga de la comunicacin con el ordenador. Esto hace que el programador pueda concentrarse enla funcionalidad, ya que no esta sujeto a los detalles de la visualizacin ni a la entrada a travs delratn o el teclado. Tambin permite a los programadores crear programas que realicen de la mismaforma las tareas ms frecuentes, como guardar un archivo, porque la interfaz proporcionamecanismos estndar de control como ventanas y cuadros de dilogo. Otra ventaja es que lasaplicaciones escritas para una interfaz grfica de usuario son independientes de los dispositivos: amedida que la interfaz cambia para permitir el uso de nuevos dispositivos de entrada y salida, comoun monitor de pantalla grande o un dispositivo ptico de almacenamiento, las aplicaciones puedenutilizarlos sin necesidad de cambios.

    6 Sistemas operativos actualesLos sistemas operativos han sido el software que ms ha evolucionado en los ltimos aos. Esta

    evolucin ha ido pareja a los avances tecnolgicos que se han ido produciendo en el hardware y sumayor transformacin ha venido de la mano de las nuevas interfaces grficas de usuario que hanaparecido recientemente en dispositivos como tablets y smartphones.

    6.1 SO para PC

    El siguiente grfico muestra el ranking de los sistemas operativos ms utilizados enordenadores personales en al ao 2014.

    Como se puede apreciar, Windows de Microsoft domina el mercado con aproximadamente el90% de los SOs instalados en un PC.

    6.1.1 Windows

    Microsoft comenz en el mundo de los sistemas operativos con MS-DOS para el IBM PC lo quesupuso un xito de ventas. Sin embargo, la arquitectura abierta del PC trajo que muchos fabricantesconstruyeran sus propios PCs.

    Posteriormente, se desarroll entorno grfico, el Windows v1.0 que se ejecutaba bajo MS-DOS y

    Pgina 15

    Figura 7.- Ranking de los SOs ms usados

  • Rafael Lozano Introduccin a los sistemas operativos

    no sera hasta la versin Windows 98 que se consider un sistema operativo. Sin embargo, Microsoftya trabajaba en un nuevo diseo de sistema operativo, el Windows NT, que dio lugar a su versin paraPC de escritorio en Windows 2000 y ms tarde en Windows XP. Despus llegaron Windows 7, Vista(bastante defenestrado) y finalmente Windows 8, el cual est pensado para ordenadores con pantallatctil.

    Windows siempre ha sido muy criticado por ser lento y pesado, pero la poltica comercial deMicrosoft lo ha llevado a la cima muy por delante de sus competidores, aunque tambin le hansupuesto problemas por violar las leyes de la competencia.

    6.1.2 Mac OSX

    Mac OSX es el SO de los ordenadores Apple. Este sistema operativo no es compatible enordenadores con un hardware distinto al de Apple, ya que la filosofa de Apple es venderordenadores, en lugar de sistemas operativos.

    El mtico Steve Jobs fund Apple para fabricar PCs. El primero de ellos fue el Apple I en 1977 yposteriormente Jobs introdujo las GUI en el sistema operativo Mac OS para su modelo Macintosh en1984 lo que supuso un hito en la evolucin de los ordenadores personales. Hasta ese momento elusuario solo poda interactuar con el sistema operativo mediante comandos. Jobs pretenda que losusuarios sin conocimientos en informtica pudieran usar un ordenador.

    El Mac OS lleg hasta la versin 9 en 1999. A partir de la versin 10 se denomin Max OSX yactualmente va por la versin 10.8 Mountain Lion.

    6.1.3 GNU/Linux

    GNU/Linux es el nombre de un proyecto impulsado por Richard Stallman de un sistemaoperativo de cdigo abierto que pueda ser liberado junto con el cdigo fuente para su estudio ymodificacin sin las trabas impuestas por el software propietario y los derechos de autor.

    Durante la dcada de los 70 haba muchas universidades que utilizaban el sistema operativoUnix. Los estudiantes no podan permitirse el lujo de comprar una licencia para Unix por lo que elprofesor Andrew Tanenbaum construy MINIX con fines educativos. Consista en una versin Unixmuy sencilla. Sin embargo, los estudiantes pretendan aumentar las funcionalidades de MINIX, a loque Tanenbaum siempre se negaba. Uno de ellos, Linus Torvalds cre un nuevo kernel, Linux, queampliaba la funcionalidad de MINIX.

    Por aqul entonces exista el proyecto GNU que agrupaba un conjunto de aplicaciones de libredistribucin que podan ejecutarse sobre Unix. Sin embargo carecan de kernel, es decir, de unsistema operativo sobre el que ejecutarse. Ah fue donde apareci Linux para combinarse con GNU yformar GNU/Linux.

    De este proyecto han surgido muchas distribuciones. Una distribucin GNU/Linux consiste enun ncleo Linux (que es comn a todas las distribuciones) y un conjunto de programas que incluyenun gestor de escritorio. As tenemos distribuciones como Ubuntu, Debian, Fedora, Open SuSe,Mandriva, etc.

    6.2 SO para dispositivos mviles

    El siguiente grfico muestra los sistemas operativos para smartphones ms usados

    Pgina 16

  • Rafael Lozano Introduccin a los Sistemas Operativos

    Los siguientes operativos para dispositivos mviles son los ms relevantes son:

    6.2.1 Android

    Android es el sistema operativo basado en el kernel de Linux diseado principalmente paradispositivos mviles con pantalla tctil, como telfonos inteligentes o tabletas. Google es el encargadode desarrollar Android y lo ha liberado bajo licencia libre y de cdigo abierto. En pocos aos se hasituado en los primeros lugares de los sistemas operativos para mviles ms utilizado.

    El consorcio OHA (Open Handset Alliance) est formado por fabricantes de hardware,desarrolladores de software y operadores de telefona mvil cuyo objetivo es desarrollar estndaresabiertos para dispositivos mviles. Este consorcio colabora en el desarrollo de Android.

    6.2.2 iOS

    IOS es un sistema operativo mvil de Apple que deriva de Max OS X y originalmentedesarrollado para el iPhone, siendo despus usado en dispositivos como el iPod Touch y el iPad. Aligual que ocurre con Mac OSX, el iOS solamente se encuentra instalado en los telfonos mvilesiPhone.

    Este fue el primer mvil con interfaz de usuario tctil, lo que supuso una revolucin en latelefona mvil ya que permita a estos dispositivos ampliar su funcionalidad ms all de las llamadastelefnicas.

    6.2.3 Windows Phone

    Windows Phone es un sistema operativo mvil desarrollado por Microsoft como sucesor deWindows Mobile. A diferencia de su predecesor est enfocado en el mercado de consumo en lugar deen el mercado empresarial. Con Windows Phone Microsoft ofrece una nueva interfaz de usuario queintegra varios de sus servicios propios como OneDrive, Skype y Xbox Live en el sistema operativo. Sucuota de mercado es muy baja ya que sufre la competencia directa de Android e iOS.

    Windows Phone cuenta con nueva interfaz de usuario. En ella, la pantalla de inicio se componede mosaicos dinmicos que son enlaces a aplicaciones o objetos individuales (como contactos,

    Pgina 17

    Figura 8.- Ranking de SOs para smartphones

  • Rafael Lozano Introduccin a los sistemas operativos

    pginas web o archivos multimedia). Estos mosaicos actualizan frecuentemente manteniendoinformado de cualquier cambio al usuario. La informacin que se muestra en los mosaicos dinmicospuede ser desde llamadas, mensajes recibidos, correos electrnicos pendientes, citas previstas,juegos o enlaces rpidos a aplicaciones.

    Pgina 18

  • Rafael Lozano Introduccin a los Sistemas Operativos

    7 BibliografaWIKIPEDIA, Historia de los sistemas operativos [acceso septiembre 2014]. Disponible en

    WIKIPEDIA, Estructura de los sistemas operativos [acceso septiembre 2014]. Disponible en

    WIKIPEDIA, Sistema Operativo [acceso septiembre 2014]. Disponible en

    WIKIBOOKS, Operating System Design/Kernel Architecture/Microkernel [acceso septiembre 2014]. Disponible en

    TANENBAUM, A. Sistemas operativos modernos 3 Edicin. 2009 Autor - Editor ISBN 9786074420463

    Pgina 19

    http://en.wikibooks.org/wiki/Operating_System_Design/Kernel_Architecture/Microkernelhttp://es.wikipedia.org/wiki/Sistema_operativohttp://wiki.inf.utfsm.cl/index.php?title=Estructura_de_un_sistema_operativohttp://es.wikipedia.org/wiki/Historia_de_los_sistemas_operativos

    1 Introduccin1.1 Evolucin histrica de los sistemas operativos1.1.1 Primera generacin (1945)1.1.2 Segunda generacin (1955 aprox.)1.1.3 Tercera generacin (1965 aprox.)1.1.4 Cuarta generacin (1980 aprox.)1.1.5 Quinta generacin (1990)1.1.6 Sexta generacin (en la actualidad)

    2 Clasificacin de los sistemas operativos2.1 Tiempo de respuesta2.2 Nmero de usuarios2.3 Nmero de procesos2.4 Nmero de procesadores

    3 Estructura de un Sistema Operativo3.1 Sistema monoltico3.2 Sistemas microncleo (microkernel)3.3 Sistema por capas3.4 Sistema por mdulos

    4 Funciones de un sistema operativo4.1 Administrador de procesos4.2 Administrador de la memoria principal4.3 Administrador del almacenamiento secundario4.4 Gestin de ficheros y directorios4.5 Administrador de la E/S4.6 Proteccin

    5 Interfaces de usuario en un SO5.1 Intrprete de comandos5.2 GUI

    6 Sistemas operativos actuales6.1 SO para PC6.1.1 Windows6.1.2 Mac OSX6.1.3 GNU/Linux

    6.2 SO para dispositivos mviles6.2.1 Android6.2.2 iOS6.2.3 Windows Phone

    7 Bibliografa