Full Transcript

Vicente Sancho Guijarro 6 TEMARIO OPOSICIONES COIICV | TEMA 26 Las llamadas al sistema proporcionan el medio para que un programa de usua rio pida al sistema operativo que realice tareas reservadas. Por otro l ado, el uso del temporizador asegura que el sistema operativo tenga el control sobre la CP...

Vicente Sancho Guijarro 6 TEMARIO OPOSICIONES COIICV | TEMA 26 Las llamadas al sistema proporcionan el medio para que un programa de usua rio pida al sistema operativo que realice tareas reservadas. Por otro l ado, el uso del temporizador asegura que el sistema operativo tenga el control sobre la CPU. Su duración suele ser variable y cada vez que el reloj avanza el temporizador se decrementa. Cuando alcanza el valor 0, éste lanza una interrupción. De esta manera se protege de que ning ún programa de usuario se quede en un bucle infinito o bien, nunca devuelva el control al siste ma operativo. 1.1.2.1. Gestión de procesos Un proceso es una unidad de trabajo en un sistema. Cada sistema consta de una colección de procesos, siendo algunos del sistema operativo y el resto procesos de usuario. Un programa en ejecución es un proceso. También es posible proporc ionar llamadas al sistema que permitan a los procesos crear subprocesos o hebras que se ejecuten de manera concurrente. Cada hebra tiene un contador de programa que especifica la siguiente instrucción a ejecutar. Un proceso necesita ciertos recursos como son tiempo de CPU, memoria, a rchivos y dispositivos de E/S. El sistema operativo es responsable de las siguient es actividades en lo referido a la gestión de procesos. • Crear y borrar los procesos de usuario y de sistema . • Suspender y reanudar procesos. • Proporcionar mecanismos para la sincronización de p rocesos. • Proporcionar mecanismos para la comunicación de pro cesos. • Proporcionar mecanismos para el tratamiento de los interbloqueos. 1.1.2.2. Gestión de memoria La memoria principal es un repositorio de datos ráp idamente accesibles, compartida por la CPU y los dispositivos E/S, la cual está formada por pala bras o bytes, cada una con su propia dirección. Es generalmente el único dispositivo de almacenamie nto de gran tamaño al que la CPU puede acceder directamente. Por lo tanto, para ejecutar u n programa o procesar datos de un disco, esta información debe transferirse a la memoria principa l. Si el sistema operativo es de 32 o 64 bit, tendrá u n espacio de direcciones de 2 32 o 2 64 bytes respectivamente. Este espacio de direcciones está d esacoplado de la memoria física de la computadora, pudiendo ser mayor o menor que esta. E n caso de ser mayor, se utiliza la llamada memoria virtual, que consiste en mover parte de las direcciones de memoria al disco. El sistema operativo es responsable de las siguient es actividades sobre la gestión de la memoria. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 7 • Controlar qué partes de la memoria están actualment e en uso y por parte de quién. • Decidir qué datos y partes de procesos añadir o ext raer de la memoria. • Asignar y liberar la asignación de espacio de memor ia según sea necesario. 1.1.2.3. Gestión de almacenamiento El sistema operativo abstrae las propiedades física s de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico, el arch ivo. Por lo tanto, implementa el abstracto concepto de archivo gestionando los medios de almac enamiento y los dispositivos que lo controlan. En esta gestión del almacenamiento, se i ncluyen dispositivos como los discos, así como soportes físicos (CD, DVD, cintas, disquetes). También debe gestionar el almacenamiento en caché. Esta técnica consiste en mantener una copia de forma temporal de la información que se es té utilizando en un sistema de almacenamiento más rápido. Con esto se crea una estructura jerárqu ica, de forma que lo que los mismos datos pueden aparecer en los distintos niveles de la memo ria. Así, un dato que este en uso, estará a la vez en el disco, en la memoria principal, en la cac hé y en el registro hardware. Figura 3: Migración de un dato A del disco al regis tro Esto gana complejidad en entornos multiprocesador y en sistemas distribuidos, al tener varias cachés distintas, donde un cambio debe reflejarse i nmediatamente en el resto. Algunas actividades de las cuales el sistema operat ivo es el responsable son las siguientes. • Creación y borrado de archivos. • Creación y borrado de directorios. • Soporte de primitivas para manipular archivos y dir ectorios. • Asignación de archivos a los dispositivos de almace namiento. • Gestión del espacio libre. • Asignación del espacio de almacenamiento. • Planificación del disco. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Vicente Sancho Guijarro 8 TEMARIO OPOSICIONES COIICV | TEMA 26 • Montaje y desmontaje de medios en los dispositivos. • Asignación y liberación de dispositivos. 1.1.2.4. Protección y seguridad Si un sistema operativo permite la ejecución concur rente de varios procesos, el acceso a datos debe regularse, asegurándose que sólo puedan utiliz ar los recursos aquellos procesos que hayan obtenido la autorización del sistema operativo. Est a protección engloba cualquier mecanismo que controle el acceso de procesos y usuarios a los rec ursos definidos por un sistema informático. Uno de estos mecanismos sería la administración del sis tema de archivos de manera que sólo sean accesibles por los usuarios autorizados. Por otro lado, es responsabilidad de los mecanismos de seguridad, defender el sistema frente a ataques internos y externos. Estos ataques pueden s er virus y gusanos, ataques de denegación de servicio, robos de identidad. La prevención de algu nos ataques se considera una función del sistema operativo en algunos sistemas, mientras que en otros se relega a algún software adicional. 1.1.3. Tipos de sistemas operativos según su estruc tura Los sistemas operativos, entre otras cosas, se pued en clasificar según el diseño de su estructura. Un sistema operativo no tiene por qué pertenecer in equívocamente a uno de estos grupos, también puede tener características de varios grupos. • Sistemas monolíticos. En este diseño, todo el siste ma operativo se ejecuta como un solo programa en modo kernel. Se escribe como una colecc ión de procedimientos, enlazados entre sí en un solo programa binario ejecutable ext enso. Por lo tanto, estos procedimientos se pueden llamar entre sí sin restricción y suele p roducir un sistema poco manejable y difícil de comprender. Además del núcleo que se carga al arrancar la compu tadora, suelen soportar extensiones como lo son los drivers de los dispositivos de E/S, los cuales se cargan por demanda. • Sistemas de capas. Son sistemas operativos organiza dos como una jerarquía de capas, cada una construida sobre la que tiene debajo. Así, los diseñadores pueden elegir dónde dibujar la línea entre el kernel y el usuario. Un e jemplo de esta estructura fue el sistema THE, construido por E. W. Dijkstra. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 9 Tabla I: Estructura del sistema operativo THE Capa Función 5 El operador 4 Programas de usuario 3 Administración de la entrada/salida 2 Comunicación operador-proceso 1 Administración de memoria y tambor 0 Asignación del procesador y multiprogramación • Microkernels. La idea básica es dividir el sistema operativo en módulos pequeños y bien definidos. Sólo uno de estos módulos se ejecuta en modo kernel (microkernel) y el resto se ejecuta como procesos de usuarios ordinarios. De es ta forma, un error en uno de los módulos puede hacer que falle ese módulo, pero no e l sistema entero. • Modelo cliente-servidor. Se trata de una modificaci ón de la estructura de microkernel, pero diferenciando dos tipos de procesos: los servidores , cada uno de los cuales proporciona un servicio, y los clientes, que utilizan estos servic ios. La comunicación entre ellos se realiza a través de mensajes. Este modelo se puede utilizar p ara un solo equipo o para una red de equipos. • Máquinas virtuales. Surgieron de la necesidad de mu chos usuarios del OS/360 de poder trabajar de manera interactiva en varias terminales sobre un mismo hardware. Durante varias décadas se basó únicamente en eso, pero en l os últimos años se han utilizado para cubrir nuevas necesidades. Mediante la virtualizaci ón, muchas compañías pueden ejecutar en una misma máquina los servidores de correo, web y FTP, sin que un fallo en un servidor afecte al resto. También se ha hecho muy popular en el hospedaje web compartido. Otro uso es la posibilidad de ejecutar dos o más sistema s operativos al mismo tiempo, en la misma máquina. 1.2. Evolución y tendencias La evolución de los sistemas operativos siempre ha ido ligada a los avances tecnológicos en la arquitectura del computador, los sistemas de comuni caciones y a los sistemas de almacenamiento de la información. Con el paso de los años, los sis temas operativos se han tenido que ir adaptando a estos cambios aumentando sus responsabilidades y mejorando las que ya tenía. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Vicente Sancho Guijarro 10 TEMARIO OPOSICIONES COIICV | TEMA 26 Tabla II: Nuevas funciones de los sistemas operativ os de lo largo del tiempo Década Funciones del SO Tipo de SO 1950 Secuencia automática de trabajos Procesamiento por lotes Acceso a dispositivos E/S Sistemas por lotes simples (batch processing) 1960 Planificación de trabajos y multiprogramación Gestión y protección de memoria Gestión de disco Sistemas por lotes multiprogramados 1970 Interacción usuario-máquina Multiprogramación y sincronización de procesos Gestión y protección de archivos Gestión de máquina virtual Sistemas de tiempo compartido 1980 Interfaz gráfica con ventanas y ratón (GUI) Capacidad multimedia Acceso a red Sistemas para computadores personales 1990 Multiprocesador y multinúcleo Tolerancia a fallos Comunicación entre nodos Compartición de carga y recursos Sistemas paralelos Sistemas de tiempo real Sistemas distribuidos Computación en grid 2000 Almacenamiento y computación remota Trabajo con aplicaciones web Nube Web OS El siguiente gráfico muestra los porcentajes de uti lización de los distintos sistemas operativos desde el año 2008 hasta la actualidad. Figura 4: Evolución de la cuota de mercado de los s istemas operativos Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 11 Se observa que la posición de los sistemas operativ os de Microsoft (Windows) son los claros dominantes. Sin embargo, hay una tendencia a la baj a en su cuota de mercado debido al auge de las plataformas móviles (teléfonos, tabletas) donde Microsoft no domina el mercado. Los cambios de versiones de Windows se producen len tamente, probablemente porque los usuarios suelen cambiar el sistema operativo cuando cambian de ordenador personal, cosa que cada vez ocurre menos a menudo. Atendiendo a las cifras, Windows XP -lanzado en 200 1- fue el sistema operativo más utilizado hasta mediados de 2012, cuando fue superado por Win dows 7. Hoy en día camina hacia la irrelevancia, más aún desde que el 8 de abril de 20 14, Microsoft anunció el fin del soporte. Sin embargo, su sucesor Windows Vista fue un fracas o comercial y nunca llegó a superar el 20% de mercado. Con el que tuvo mucho más éxito fue con Windows 7, superando a Windows XP a mediados de 2012 y llegando a obtener una cuota de casi el 50% tras el fin del soporte a Windows XP. Tras este llegó Windows 8 con un gran fracaso respe cto a las expectativas. Para terminar con los sistemas operativos de Micros oft, en julio de 2015 se lanzó Windows 10. Su arranque fue fulgurante, en gran parte debido a la decisión de proporcionar la actualización gratuita a todos los equipos que estén funcionando con Windo ws 7 o Windows 8. Tras esta actualización masiva, el crecimiento se ha desacelerado. El mayor crecimiento que se está produciendo hoy en día y que se prevé que seguirá en auge, es el segmento de los sistemas operativos móviles (And roid, iOS, etc.). Su uso es reciente, desde la introducción de los llamados smartphones y las tabl etas, pero está teniendo una tendencia a seguir creciendo, aunque todavía se encuentran lejos del c onjunto de sistemas operativos Windows. Respecto a los sistemas operativos Mac de escritori o, han aumentado ligeramente su cuota de mercado, pero siguen manteniéndose muy por debajo d e Windows. Y por último aparece un uso residual del 1% de sist emas operativos libres de escritorio (Linux, BSD, etc.). 1.2.1. Sistemas operativos en dispositivos móviles Con la proliferación de los llamados teléfonos inte ligentes o smartphone y de las tabletas, han emergido con fuerza los sistemas operativos destina dos a estos dispositivos. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Vicente Sancho Guijarro 12 TEMARIO OPOSICIONES COIICV | TEMA 26 Tabla III: Momento en el que los smartphones supera n a los móviles convencionales País Mes Reino Unido Mayo 2010 España Septiembre 2010 Alemania Enero 2011 Francia Febrero 2011 Italia, Canadá Junio 2011 Estados Unidos Julio 2011 A continuación, se presenta una tabla comparativa d e los principales sistemas operativos móviles con algunas de sus características. Tabla IV: Comparativa de los principales sistemas o perativos móviles Apple iOS 8 Android 6.0 Windows Phone 8 Blackberry 10 Firefox OS 2.2 Compañía Apple Open Handset Alliance Microsoft Blackberry Mozilla Foundation Núcleo del SO Mac OS X Linux Windows NT QNX Linux Licencia de software Propietaria Libre y abierto Propietaria Propietaria Libre y abierto Año de lanzamiento 2007 2008 2010 1999 2013 Motor web Webkit Webkit / Chromium Trident Webkit Webkit CPU soportada ARM ARM, MIPS, x86 ARM ARM ARM, x86 Soporte 64 bits Sí Sí No No No Lenguaje de programación Objective-C, Swift, C++ Java, C++ C#, Visual Basic, C++ C, C++, Java HTML5, Javascript Multiusuario No Sí No No No En cuanto a la cuota de mercado dentro de este subc onjunto de sistemas operativos, Android es el claro vencedor y la tendencia es que continúe siénd olo. En segundo lugar, pero muy lejos, se encuentra iOS. Este es utilizado en los dispositivo s de Apple, a diferencia de Android que se utiliza en multitud de fabricantes, lo que ayuda a su difus ión. El siguiente en discordia es Windows Phone, que se mantiene por debajo del 1%. Con el paso del tiempo, han ido convirtiéndose en irrelevantes otro s sistemas operativos como BlackBerry y Symbian OS. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 13 Figura 5: Cuota de mercado de los sistemas operativ os móviles en todo el mundo (Fuente: Gartner Group). 2. Los sistemas UNIX y LINUX. Unix y Linux tienen una historia larga e interesant e. Empezó como un proyecto del investigador Ken Thompson hasta llegar a convertirse en una indu stria que involucra a universidades, empresas multinacionales y gobiernos. 2.1. UNIX 2.1.1. Historia de Unix La primera versión de UNIX fue desarrollada en 1969 por Ken Thompson del grupo de investigación de los Bell Laboratories. Pronto se u nió a él Dennis Ritchie, quien había trabajado en el proyecto MULTICS, del cual se tomaron muchas car acterísticas. En la tercera versión se reescribió la mayor parte del sistema operativo en el lenguaje C, sustituyendo a ensamblador. Al mismo tiempo se trasladó a sistemas más potentes y con soporte hardware para la multiprogramación. Al tener más código en C era más fácilmente portable entre máquinas con distinta arquitectura. En 1974, Ritchie y Thompson publicaron un famoso ar tículo sobre UNIX, el cual estimuló a muchas universidades para que pidieran a Bell Labs. una co pia de UNIX, la cual era licenciada a estas por una modesta cuota. La PDP-11 era la computadora pre ferida de la mayoría de los departamentos de ciencias computacionales, pero sus sistemas oper ativos eran pésimos, por lo que UNIX llenó Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Vicente Sancho Guijarro 14 TEMARIO OPOSICIONES COIICV | TEMA 26 este vacío con rapidez. Además, incluía el código f uente completo, por lo que se podía hacer modificaciones sobre él. En 1978, se distribuyó la versión 7, con 18800 líne as de código en C y 2100 en ensamblador. Tras esto, el UNIX Support Group (USG) asumió el control de UNIX dentro de AT&T, la organización matriz de Bell Laboratories ya que UNIX se estaba c onvirtiendo en un producto destacado y necesitaba más atención que la que se le estaba pre stando. La primera versión de USG fue System III, en 1982, la cual incorporaba caracterís ticas de la versión 7 así como de varios sistemas UNIX desarrollados por distintos grupos. En 1983 se liberó System V. Justo después, el USG s e reestructuró como el UNIX System Development Laboratory (USDL). Dado el pequeño tama ño, la modularidad y el aseado diseño, se iniciaron muchos trabajos basados en UNIX en multit ud de organizaciones, siendo el más influyente el de la University of California at Ber keley. En 1978, produjeron 3BSD UNIX, el cual añadía memoria virtual, paginación por demanda y re emplazo de páginas entre otras cosas. En la versión 4.2BSD UNIX, apoyándose en los protoc olos de Internet de DARPA (TCP/IP), ya era posible comunicarse entre instalaciones de red dive rsas, incluidas redes de área local y de área extensa. Además, Berkeley adaptó muchas característ icas de los sistemas operativos contemporáneos para mejorar UNIX. Entre ellas una n ueva interfaz con el usuario (C Shell), un nuevo editor de textos (ex / vi) y muchos programas de sistemas nuevos. En 1986 se liberó 4.3BSD. La última versión de Berk eley, la 4.4BSD, se terminó en junio de 1993. Esta versión incluye soporte X.25 para trabajo con redes y cumplimiento del estándar POSIX. El conjunto actual de sistemas operativos UNIX no e stá limitado a los producidos por Bell Laboratories y Berkeley, sino que se han ido creand o multitud de sistemas operativos UNIX y de tipo UNIX. Por ejemplo, Microsoft reescribió UNIX p ara la familia 8088 y lo llamó XENIX, así como su sistema operativo llamado Windows NT acusa una m arcada influencia de UNIX. 2.1.2. Características de Unix UNIX se diseñó como un sistema de tiempo compartido . La interfaz estándar con el usuario es sencilla y puede ser sustituida por otra si se dese a. El sistema de archivos es un árbol con múltiples niveles que permite crear subdirectorios. Cada archivo de datos de usuario es tan solo una secuencia de bytes. Los archivos de disco y los dispositivos E/S se tratan de la manera más similar posible. Un proceso puede crear fácilmente procesos nuevos. La planificación de la CPU es un sencillo algoritmo de prioridades. 4.3BSD usa paginación por demanda como mecanismo para apoyar las decisiones de gestión de memoria y planificación de la CPU. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019