Introducción a los Sistemas Operativos

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 funcion

0 downloads 66 Views 386KB Size

Story Transcript

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.

Tabla de contenidos

Tabla de contenido 1 Introducción........................................................................................................................................ 1 1.1 Evolución histórica de los sistemas operativos...................................................................................2 1.1.1 Primera generación (1945)...................................................................................................................... 2 1.1.2 Segunda generación (1955 aprox.)........................................................................................................ 3 1.1.3 Tercera generación (1965 aprox.).......................................................................................................... 3 1.1.4 Cuarta generación (1980 aprox.)............................................................................................................ 3 1.1.5 Quinta generación (1990)........................................................................................................................ 4 1.1.6 Sexta generación (en la actualidad)....................................................................................................... 4

2 Clasificación de los sistemas operativos.......................................................................................4 2.1 Tiempo de respuesta..................................................................................................................................4 2.2 Número de usuarios...................................................................................................................................5 2.3 Número de procesos..................................................................................................................................5 2.4 Número de procesadores.........................................................................................................................5

3 Estructura de un Sistema Operativo..............................................................................................5 3.1 Sistema monolítico......................................................................................................................................6 3.2 Sistemas micronúcleo (microkernel)......................................................................................................7 3.3 Sistema por capas.......................................................................................................................................8 3.4 Sistema por módulos..................................................................................................................................9

4 Funciones de un sistema operativo...............................................................................................9 4.1 Administrador de procesos....................................................................................................................10 4.2 Administrador de la memoria principal...............................................................................................10 4.3 Administrador del almacenamiento secundario...............................................................................10 4.4 Gestión de ficheros y directorios..........................................................................................................11 4.5 Administrador de la E/S...........................................................................................................................11 4.6 Protección...................................................................................................................................................12

5 Interfaces de usuario en un SO....................................................................................................12 5.1 Intérprete de comandos..........................................................................................................................12 5.2 GUI................................................................................................................................................................14

6 Sistemas operativos actuales........................................................................................................15 6.1 SO para PC..................................................................................................................................................15 6.1.1 Windows..................................................................................................................................................... 15 6.1.2 Mac OSX..................................................................................................................................................... 16 6.1.3 GNU/Linux................................................................................................................................................. 16 6.2 SO para dispositivos móviles..................................................................................................................16 6.2.1 Android....................................................................................................................................................... 17 6.2.2 iOS............................................................................................................................................................... 17 6.2.3 Windows Phone....................................................................................................................................... 17

7 Bibliografía......................................................................................................................................... 19

Índice I

Rafael Lozano

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos

1 Introducción En capítulos anteriores vimos que un sistema informático lo forma el hardware, el software y los usuarios. El hardware por si solo no tiene capacidad para funcionar. Necesita del software para hacerlo y el sistema operativo es el software que toma el control del ordenador cuando se enciende y que permite al usuario su uso. Un Sistema Operativo (SO) es el conjunto de programas que controlan, coordinan y dirigen el uso de los recursos hardware de un sistema informático. El SO es el encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. Los sistemas operativos realizan dos funciones diferentes: ✔

Proveer un entorno amigable en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware.



Administrar eficientemente los recursos del sistema informático.

El objetivo principal de un SO es, entonces, lograr que el sistema informático se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. Hoy día es habitual que en un ordenador se ejecuten múltiples aplicaciones de usuario: procesadores de texto, navegadores de Internet, reproducción de vídeo, etc. Estas aplicaciones necesitan el uso de los recursos hardware, como espacio en memoria, ciclos de ejecución en la CPU, acceso a datos en los dispositivos de almacenamiento. Es decir, diferentes aplicaciones compiten por el acceso a los recursos hardware del sistema y el SO se encarga de ofrecer una distribución Página 1

Rafael Lozano

Introducción a los sistemas operativos

ordenada y controlada a estos recursos hardware entre las diversos aplicaciones que compiten por ellos. De lo anterior se deduce que las aplicaciones de usuario no interactúan directamente con el hardware, sino que deben hacerlo a través del sistema operativo. Por tanto, las aplicaciones han de estar programadas específicamente para el sistema operativo que se ejecuta en el ordenador. Un SO tiene los siguientes objetivos: ✔

Comodidad.- El SO hace que el ordenador sea más cómodo de utilizar por los usuarios.



Eficiencia.- Un SO permite que los recursos de un sistema informático se aprovechen de una manera más eficiente.



Capacidad de evolución.- Un SO debe construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y, a la vez, no interferir en los servicios que brinda.

1.1 Evolución histórica de los sistemas operativos En el inicio del desarrollo de los ordenadores, estos no tenían un sistema operativo. Estos primeros ordenadores se diseñaban específicamente para realizar un tipo de tarea muy concreto y las aplicaciones que ejecutaban era codificadas por los usuarios en lenguaje máquina e introducirlas dentro del ordenador. Todo este trabajo estaba encuadrado en proyectos científicos y militares que tenían un control absoluto sobre todo el trabajo. Sin embargo, años después, la evolución de la informática permitió a algunas empresas producir ordenadores de propósito general para su venta a otras empresas. Fue aquí donde surgió la necesidad de dotar al ordenador de un software básico que permitiera su uso. Este primer software básico supuso el primer sistema operativo. A lo largo de la historia los SO han evolucionado para adaptarse a los cambios tecnológicos que se iban produciendo en los ordenadores y así poder aprovechar estos avances tecnológicos.

1.1.1 Primera generación (1945) Los sistemas operativos de los años cincuenta fueron diseñados para hacer más fluida la transición entre trabajos. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenía control total de la maquina. Al terminar cada trabajo, el control era devuelto al SO, el cual leía e iniciaba el trabajo siguiente. Además el laboratorio de investigación General Motors implementó el primer SO para la IBM 701. Los sistemas de los 50s generalmente ejecutaban una sola tarea, y la transición entre tareas se suavizaba para lograr la máxima utilización del sistema. Esto se conoce como sistemas de procesamiento por lotes de un sólo flujo, ya que los programas y los datos eran sometidos en grupos o lotes.

Página 2

Rafael Lozano

Introducción a los Sistemas Operativos

1.1.2 Segunda generación (1955 aprox.) La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina. Posteriormente se consiguió la independencia de dispositivos de almacenamiento. Un usuario que desea escribir datos en una cinta en sistemas de la primera generación tenía que hacer referencia específica a una unidad de cinta particular. En la segunda, generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad. Se desarrolló el concepto de sistemas compartidos, en la que los usuarios podían conectarse directamente al ordenador a través de terminales. Surgieron sistemas de tiempo real, en que los ordenadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta dentro de un periodo de tiempo establecido.

1.1.3 Tercera generación (1965 aprox.) Se inicia con la introducción de la familia de ordenadores Sistema/360 de IBM. Los ordenadores de esta generación fueron diseñados como sistemas de propósito general, es decir, podían ejecutar diversos tipos de aplicaciones. En 1969 Ken Thompson, Dennis Ritchie y Douglas MCIlroy crean el sistema operativo UNIX en los Laboratorios Bell. También aparece un ordenador personal, el Xerox Alto que tenía su propio sistema operativo.

1.1.4 Cuarta generación (1980 aprox.) En 1979 Tim Paterson crea su sistema operativo 86-DOS, que posteriormente pasó a llamarse QDOS (Quick and Dirty Operative System). Dos años después Bill Gates compra QDOS y lo rebautiza dos veces: en primer lugar como PC-DOS, el cual vende como sistema operativo a IBM para su IBM-PC, y un año más tarde como MS-DOS, el cual, siendo una copia casi idéntica a PC-DOS. Como consecuencia de la aparición del PC con su sistema operativo el porcentaje de la población que tiene acceso a un ordenador es mucho mayor que nunca y aumenta rápidamente. En 1983 Apple crea el Apple Lisa System 1 y un año después el Mac OS. En 1985 aparece la primera versión de Windows, aunque por aquél entonces no era un sistema operativo sino un entorno gráfico que se ejecutaba bajo MS-DOS. En 1987: Andrew S. Tanenbaum crea MINIX, un sistema operativo basado en Unix y escrito en lenguaje C, cuyo principal objetivo era aprender como funciona un sistema operativo por dentro. Este sistema inspiró a Linus Torvalds para la creación del Núcleo Linux. Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de los ochenta ha sido el crecimiento de las redes de ordenadores, con sistemas operativos de red y sistemas operativos distribuidos. En los sistemas operativos de red, los usuarios conectan sus PCs con otros remotos y copiar archivos de una maquina a otra. Cada maquina ejecuta su propio sistema Página 3

Rafael Lozano

Introducción 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 como un 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 su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automática y eficaz por el sistema operativo.

1.1.5 Quinta generación (1990) En esta generación aparecen los sistemas operativos con interfaces gráficas de usuarios (GUI). En 1990 aparece Windows v3 y en 1995 Windows 95 de Microsoft. Ambos siguen siendo entornos gráficos para ser ejecutados bajo el sistema operativo MS-DOS en su última versión, la 6. En 1998 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 crearía un año después el núcleo Linux. En 1992, el sistema GNU y el Núcleo Linux se unen formalmente para crear GNU/Linux.

1.1.6 Sexta generación (en la actualidad) Los sistemas operativos evolucionan con nuevas interfaces de usuario, como la pantalla táctil, para nuevos dispositivos: PC's, portátiles, tablets, smartphones. Aparecen los sistemas operativos en la nube o sistemas operativos en la web (WebOS). Consisten en un escritorio virtual con aplicaciones integradas que permiten al usuario administrar sus datos sin necesidad de instalar aplicaciones. Todo ello mediante una conexión a Internet.

2 Clasificación de los sistemas operativos Los sistemas operativos pueden clasificarse en función de diferentes criterios. Los más 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 el proceso hasta que obtiene los resultados. Según esto, el sistema operativo puede ser: ✔

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



Interactivo.- Existen interacción con el usuario. El SO ejecuta un trabajo y cuando necesita un dato interrumpe su ejecución para solicitarlo al usuario. Este se lo suministra por un dispositivo de E/S y el SO continúa con su ejecución hasta que necesite otro dato o finaliza. Para optimizar el uso de recursos el SO utiliza el tiempo compartido, de forma que puede repartir su tiempo entre varios trabajos.



Tiempo real.- El SO debe ofrecer un tiempo de respuesta dentro de un plazo definido de antemano que generalmente suele ser bajo. Este tipo de SO se suele utilizar donde el tiempo de respuesta es crítico, como en procesos industriales o tráfico aéreo. Página 4

Rafael Lozano

Introducción a los Sistemas Operativos

2.2 Número de usuarios Dependiendo del número de usuarios que pueden utilizar simultáneamente el sistema informático, los sistemas operativos pueden ser: ✔

Monousuario.- En este SO solamente un usuario puede utilizar el sistema informático para el que están disponibles todos los procesos.



Multiusuario.- Un SO multiusuario provee servicio a múltiples usuarios simultáneamente. Actualmente este tipo de sistemas se emplean especialmente en redes, pero los primeros sistemas multiusuario fueron sistemas centralizados que se compartían a través del uso de múltiples terminales.

2.3 Número de procesos Este criterio indica el número de proceso simultáneos que puede gestionar un SO. En función de esto los sistemas operativos pueden ser: ✔

Monotarea.- Un SO es monotarea cuando solamente ejecuta un programa a la vez. La CPU ejecuta un programa y hasta que no acaba o ejecuta otro. Estos sistemas operativos están en desuso, como por ejemplo el MS-DOS.



Multitarea.- Se pueden ejecutar varios procesos a la vez. Si el sistema informático solamente tiene una CPU, el SO dividirá su tiempo entre todos los procesos intentando maximizar el uso de la CPU. Los procesos en ejecución deberán permanecer en memoria principal mientras se ejecuten.

2.4 Número de procesadores Indica el número de CPU que tenga el sistema informático. En función de este criterio existen los siguientes tipos de sistemas operativos: ✔

Monoproceso.- Un SO monoproceso solamente puede trabajar con un sistema informático que tenga una única CPU.



Multiproceso.- Un SO multiproceso puede trabajar con varias CPUs con lo que podrá ejecutar varios procesos de manera simultánea.

3 Estructura de un Sistema Operativo La siguiente tabla muestra una clasificación de los programas que forman un SO Nombre

Descripción

Núcleo o kernel

Se encarga de interactuar con el hardware. Es la única parte del SO que tiene acceso directo al hardware.

Llamadas al sistema o primitivas

Funciones que invocan las aplicaciones de usuario para solicitar algún servicio al SO. Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es la interfaz del SO frente a las aplicaciones. Constituyen

Página 5

Rafael Lozano

Introducción a los sistemas operativos

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

Programa que utiliza el kernel para suministrar algún servicio a las aplicaciones de usuario. Los servidores se emplean en estructuras microkernel que se verá a continuación.

Interrupciones y excepciones

El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al SO, pudiendo deberse estas llamadas a dos condiciones: •

Algún dispositivo de E/S necesita atención.



Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación).

En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa. Según los dos casos anteriores tenemos las interrupciones y la excepciones:

Utilidades



Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.



Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.

Todos los SO incluyen un conjunto de programas para resolver pequeñas tareas de los usuarios, como el navegador de Internet, el explorador de archivos, accesorios, y también un conjunto de programas de ayuda a la programación, como editores, compiladores, enlazadores, etc.

El objetivo de la estructuración de un SO es buscar una organización interna que facilite la comprensión, incremente la portabilidad, extensión y favorecer su mantenimiento. A continuación se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener. Éstas no son de ninguna manera las únicas posibles, pero nos darán una idea de algunos diseños que se han llevado a la práctica.

3.1 Sistema monolítico Los sistemas monolíticos son la estructura más simple para un SO. También llamados de estructura modular, fue escrito para proporcionar una máxima funcionalidad dentro del menor espacio posible. Se caracteriza porque no tienen una estructura totalmente clara, con esto nos referimos a que sus rutinas y funcionalidades (manejo de drivers, sistemas de archivos, gestión de memoria, etc.), se encuentran agrupados en un solo programa.

Página 6

Rafael Lozano

Introducción a los Sistemas Operativos

Figura 1.- Sistema monolítico

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. Sin embargo, cabe destacar los defectos en este tipo de estructura que radica principalmente en la poca fiabilidad otorgada, ya que todo el sistema, al no tener una estructura definida, se ejecuta todo en el mismo nivel del núcleo (kernel) lo que lo hace altamente vulnerable, por esta razón cuando falla un programa se produce un error en todo el sistema. Además, otro problema inherente al sistema monolítico es que 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 compilación de un nuevo kernel puede durar varias horas y necesita de una gran cantidad de memoria. Cada vez que alguien añade una nueva característica o corrige un error, significa que se necesitará hacer una recompilación del kernel entero, un ejemplo de esto podemos verlo en Linux. También el hecho de que en el espacio del kernel están incluidos todos los servicios básicos, tiene tres grandes inconvenientes: el tamaño del núcleo, la falta de extensibilidad y la 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 micronúcleo (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 sistema operativo deben permanecer en el microkernel. Los servicios y las aplicaciones menos esenciales se construyen sobre el microkernel y se ejecutan en modo usuario. Este microkernel tiene un conjunto de primitivas y llamadas al sistema para implementar unos servicios mínimos del SO como comunicación entre procesos, gestión de memoria y planificación de la CPU. Los demás servicios que solían ser suministrados por el kernel, como por ejemplo el servicio de red, se implementan como programas de usuario conocidos como servidores. En teoría este enfoque añade más estabilidad al sistema por que un fallo de un servidor Página 7

Rafael Lozano

Introducción a los sistemas operativos

solamente pararía un programa simple, en lugar de provocar la parada del SO completo. La siguiente figura muestra las diferencias entre un enfoque monolítico y el microkernel.

Figura 2.- Comparativa kernel monolítico y microkernel

En la figura anterior se aprecia que el kernel de un sistema monolítico es mayor. Todos los servicios que ofrece el SO a las aplicaciones de usuario se ejecutan dentro del núcleo. Sin embargo el kernel de un sistema micronúcleo solamente incluye funciones básicas de intercomunicación de procesos, asignación de memoria y planificación de procesos. El resto de servicios se implementan con 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 capas o niveles, cuya organización está dada como una jerarquía de capas donde cada una de ellas ofrece una interfaz clara y bien definida, la capa superior solamente utiliza los servicios y funciones que ofrece la capa inferior, es decir, la capa n sólo se comunica para obtener lo requerido con la capa n-1, donde la capa inferior es la más privilegiada. El encargado de que solamente haya comunicación entre capas adyacentes es el procesador.

Figura 3.- Estructura por capas

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

Capa 5: Se encuentra la interfaz de usuario. Página 8

Rafael Lozano

Introducción 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 comunicación entre procesos y la consola del operador.



Capa 1: Administración de memoria y discos.



Capa 0: Correspondiente al hardware, realizando asignación del procesador, también alterna entre procesos cuando ocurren interrupciones o se han expirado y proporciona multiprogramación básica de la CPU.

Como ventajas de este sistema podemos mencionar que al tener una organización por módulos, otorga facilidad en construcción y depuración del sistema. La facilidad de construcción se consigue al existir esta división en módulos (capas) se produce una abstracción del problema, simplificándose solamente a la función que realiza el módulo correspondiente a una capa N. También al lograr esta abstracción, no es necesario saber detalles de implementación de las capas inferiores, sólo se utilizan. La facilidad de depuración, quiere decir, que sea más simple la tarea de encontrar errores en el código 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, sólo a la capa relacionada con el error. Con respecto a las desventajas de esta organización, al realizar la construcción de las capas, la problemática es la forma de realizar la división y definición de las funcionalidades, ya que se tiene considerar que las capas superiores solamente pueden utilizar los servicios de la capa que se encuentra inferior, por lo tanto, se debe tener mucho cuidado en la planificación del sistema para que exista un óptimo funcionamiento. Otra desventaja que podemos mencionar es el gasto de tiempo que se genera en ir de una capa a otra.

3.4 Sistema por módulos La mayoría de los sistemas operativos modernos implementan este enfoque. Lo que caracteriza este tipo de estructura es que el kernel se compone de módulos, y cada uno de estos módulos se encuentra separado de forma independiente, tal que, si alguno falla no afecta a los otros, ni al núcleo. Los módulos se pueden cargar dinámicamente en el núcleo cuando se necesiten, ya sea, en tiempo de ejecución o durante el arranque del sistema. El kernel dispone de los componentes fundamentales y se conectan directamente con servicios adicionales. Además otros componentes pueden cargarse dinámicamente al núcleo. En general, esta estructura se parece bastante a la de capas, pero es mucho más flexible debido a que cualquier módulo 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 operativo Un SO multiusuario proporciona un entorno dentro del cual se ejecutan las aplicaciones. Para construir este entorno se divide lógicamente al SO en pequeños módulos y se crea una interfaz bien definida entre estos módulos y las aplicaciones que se ejecutan. Cada uno de estos módulos se encarga de realizar una función específica. Entre estas están: Página 9

Rafael Lozano

Introducción a los sistemas operativos

4.1 Administrador de procesos La CPU ejecuta un gran número de aplicaciones, y aunque su preocupación principal es la ejecución de aplicaciones de usuario, hay otras aplicaciones que se denominan procesos cuya ejecución también es necesaria para otras actividades del sistema. Un proceso es un programa en ejecución con su entorno asociado. Suponemos que el proceso se ejecuta secuencialmente en tiempo 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 el proceso, o se le asignan mientras se ejecuta. Potencialmente, todos estos procesos pueden ejecutarse en forma concurrente, multiplexando la CPU entre ellos. El SO es responsable de las actividades relacionadas con la administración de procesos: ✔

Crear y eliminar procesos.



Suspender y reanudar la ejecución de procesos.



Sincronización de procesos.



Comunicación entre procesos.



Análisis de interbloqueos.

4.2 Administrador de la memoria principal La memoria es el dispositivo de almacenamiento principal en un sistema informático. Está formada por un conjunto de palabras o bytes cada uno con su propia dirección, siendo por tanto un sistema de almacenamiento de datos de acceso rápido que es compartido por la CPU y la E/S. El procesador lee las instrucciones y lee o escribe datos de la memoria principal. Por otra parte, la E/S necesita acceso a memoria para lectura y escritura de datos. Para mejorar la utilización de la CPU y la velocidad de respuesta del ordenador a los usuarios, se debe conservar varios programas en memoria. Existen diferentes esquemas para la administración de memoria, y la eficacia de los distintos algoritmos depende de la situación particular. Las actividades relacionadas con la administración 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 pequeña para almacenar todos los programas y los datos, el sistema informático debe ofrecer almacenamiento secundario que la respalde, es lo que llamamos memoria secundaria. Este almacenamiento se hace en general mediante disco donde se sitúan habitualmente muchas aplicaciones que no se usan frecuentemente por el sistema y que se cargan en memoria principal solo cuando los usuarios lo demanden. Respecto a la memoria secundaria las funciones van a ser:

Página 10

Rafael Lozano

Introducción a los Sistemas Operativos



Administración del espacio libre en dispositivos de almacenamiento.



Asignación del almacenamiento.



Planificación de las operaciones sobre el disco.

Una de las operaciones principales del sistema será resolver las operaciones de carga y descarga de información desde el almacenamiento secundario a la memoria principal.

4.4 Gestión de ficheros y directorios Es una de las partes más visibles del SO por parte del usuario. Los ordenadores pueden almacenar información en varios dispositivos físicos, siendo los más comunes el disco duro, el disco óptico y las memorias flash. Cada uno de estos dispositivos tiene sus propias características y organización física. Para usar cómodamente un sistema informático, el SO ofrece una perspectiva lógica uniforme del almacenamiento de información. El SO se vale de las propiedades físicas de sus dispositivos de almacenamiento para definir una unidad de almacenamiento lógico, el archivo o fichero. Por medio del SO, los archivos se relacionan con el dispositivo físico. Un archivo es un conjunto de información relacionada y que se almacena y manipula por el sistema operativo como una entidad única. Comúnmente los archivos representan programas y datos. A bajo nivel, un archivo es una secuencia de bits, bytes, líneas o registros, cuyo significado ha sido definido por la aplicación que lo crea . Los archivos se organizan en directorios para facilitar su uso. Como varios usuarios tienen acceso a ellos, es deseable controlar quién tiene acceso a los archivos y cómo puede hacerlo. El SO es responsable de las siguientes actividades relacionadas con la administración de archivos: ✔

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 informático tiene una diversidad de dispositivos periféricos conectados. Uno de los objetivos del SO es ocultar al usuario las particularidades que estos dispositivos hardware y por tanto sus funciones básicas son: ✔

Un sistema de memoria caché mediante buffer.



Una interfaz general con los controladores de dispositivo y unos controladores para dispositivos hardware específicos. Sólo el controlador de dispositivo conoce las particularidades del dispositivo al cual está Página 11

Rafael Lozano

Introducción a los sistemas operativos

asignado.

4.6 Protección La protección se refiere al control del acceso de los programas, procesos o usuarios a los recursos de un sistema informático. El SO tiene la responsabilidad de proteger un proceso de los otros. Por tanto debe asegurar que los ficheros, segmentos de memoria, CPU y otros recursos de E/S puedan ser únicamente usados por aquellos procesos que hayan recibido la correspondiente autorización del sistema. Por ejemplo, el direccionamiento de memoria asegura que un proceso sólo puede trabajar dentro del espacio de direcciones asignado a ese proceso. Hay que asegurar que ningún 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í la integridad de los dispositivos periféricos.

5 Interfaces de usuario en un SO Actualmente, hay dos paradigmas fundamentales en el uso del SO: modo comando o intérprete de la línea de comando y modo gráfico o la interfaz gráfica de usuario (GUI), aunque la tendencia actual es combinar ambos paradigmas. Esto quiere decir que los sistemas operativos para usuario ofrecen una interfaz gráfica para que el usuario profano en informática pueda interactuar con el SO y además la posibilidad de utilizar una interfaz solo texto para introducir comandos ejecutables. Veamos con más detalle ambos paradigmas.

5.1 Intérprete de comandos Antes de la aparición de las interfaces gráficas, los usuarios se comunicaban con el SO a través de comandos. Un comando (traducción literal del inglés command, «orden, instrucción») es una instrucción u orden que el usuario proporciona al SO, desde la línea de comandos (shell) o desde una llamada de programación. Estos comandos pueden ser: ✔

Iinterno.- El código del comando está contenido en el propio intérprete



Externo.- Cuando el código del comando está en en un archivo ejecutable.

Suele admitir parámetros (argumentos) de entrada, lo que permite modificar su comportamiento predeterminado. Suelen indicarse tras una barra "/" (en sistemas operativos Windows) o un guión simple "-" o doble "--" (en sistemas operativos Unix/Linux).

Página 12

Rafael Lozano

Introducción a los Sistemas Operativos

Figura 4.- Intérprete de comandos en Windows 7

Esta interacción la lleva a cabo un programa que se suele llamar intérprete de comandos. El intérprete de comandos o consola permite al usuario escribir comandos del sistema operativo, de tal modo que, después de pulsar la tecla Intro en el teclado, se ejecuten procesos internos al propio intérprete 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 y 2008 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 intérprete de comandos contiene en sí el código para ejecutar el comando que se desea ejecutar. Por ejemplo, un comando para borrar un fichero puede hacer que el intérprete salte a una sección de su código que establece los parámetros necesarios y realiza la operación. En este caso, el número de comandos que pueden darse determina el tamaño del intérprete de comandos, puesto que cada comando requiere su propio código de implementación. Un enfoque alternativo implementa todos los comandos mediante programas de sistema especiales y se almacenan cada uno en un archivo. En este caso, el intérprete de comandos no Página 13

Rafael Lozano

Introducción a los sistemas operativos

“comprende” el comando; simplemente utiliza el comando para identificar un fichero a cargar en memoria y ejecutar. Por ejemplo, un comando delete G buscaría un fichero llamado delete, el cual contiene el código para borrar al fichero G, lo cargaría en memoria y le pasaría el parámetro G. La función asociada con el comando delete estaría completamente definida por el código del fichero delete. De esta manera pueden añadirse fácilmente nuevos comandos al sistema, creando nuevos ficheros con el nombre adecuado. El programa intérprete de comandos, que en este caso puede ser bastante pequeño, no necesita ser modificado para añadir comandos nuevos.

5.2 GUI La interfaz gráfica de usuario, conocida también como GUI (Graphical User Interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador.

Figura 6.- GUI del Mac OSX

Habitualmente las acciones se realizan mediante manipulación directa, para facilitar la interacción del usuario con el ordenador. Surge como evolución de las interfaces de línea de comandos que se usaban para operar los primeros sistemas operativos y es pieza fundamental en un entorno gráfico. Como ejemplos de interfaz gráfica de usuario, cabe citar los entornos de escritorio Windows, el X-Window de GNU/Linux o el de Mac OS X. Es el tipo de visualización que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales como los iconos y las listas de elementos del menú. Página 14

Rafael Lozano

Introducción a los Sistemas Operativos

Para los autores de aplicaciones, las interfaces gráficas de usuario ofrecen un entorno que se encarga de la comunicación con el ordenador. Esto hace que el programador pueda concentrarse en la funcionalidad, ya que no esta sujeto a los detalles de la visualización ni a la entrada a través del ratón o el teclado. También permite a los programadores crear programas que realicen de la misma forma las tareas más frecuentes, como guardar un archivo, porque la interfaz proporciona mecanismos estándar de control como ventanas y cuadros de diálogo. Otra ventaja es que las aplicaciones escritas para una interfaz gráfica de usuario son independientes de los dispositivos: a medida que la interfaz cambia para permitir el uso de nuevos dispositivos de entrada y salida, como un monitor de pantalla grande o un dispositivo óptico de almacenamiento, las aplicaciones pueden utilizarlos sin necesidad de cambios.

6 Sistemas operativos actuales Los sistemas operativos han sido el software que más ha evolucionado en los últimos años. Esta evolución ha ido pareja a los avances tecnológicos que se han ido produciendo en el hardware y su mayor transformación ha venido de la mano de las nuevas interfaces gráficas de usuario que han aparecido recientemente en dispositivos como tablets y smartphones.

6.1 SO para PC El siguiente gráfico muestra el ranking de los sistemas operativos más utilizados en ordenadores personales en al año 2014.

Figura 7.- Ranking de los SOs más usados

Como se puede apreciar, Windows de Microsoft domina el mercado con aproximadamente el 90% 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 que supuso un éxito de ventas. Sin embargo, la arquitectura abierta del PC trajo que muchos fabricantes construyeran sus propios PCs. Posteriormente, se desarrolló entorno gráfico, el Windows v1.0 que se ejecutaba bajo MS-DOS y Página 15

Rafael Lozano

Introducción a los sistemas operativos

no sería hasta la versión Windows 98 que se consideró un sistema operativo. Sin embargo, Microsoft ya trabajaba en un nuevo diseño de sistema operativo, el Windows NT, que dio lugar a su versión para PC de escritorio en Windows 2000 y más tarde en Windows XP. Después llegaron Windows 7, Vista (bastante defenestrado) y finalmente Windows 8, el cual está pensado para ordenadores con pantalla táctil. Windows siempre ha sido muy criticado por ser lento y pesado, pero la política comercial de Microsoft lo ha llevado a la cima muy por delante de sus competidores, aunque también le han supuesto 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 en ordenadores con un hardware distinto al de Apple, ya que la filosofía de Apple es vender ordenadores, en lugar de sistemas operativos. El mítico Steve Jobs fundó Apple para fabricar PCs. El primero de ellos fue el Apple I en 1977 y posteriormente Jobs introdujo las GUI en el sistema operativo Mac OS para su modelo Macintosh en 1984 lo que supuso un hito en la evolución de los ordenadores personales. Hasta ese momento el usuario solo podía interactuar con el sistema operativo mediante comandos. Jobs pretendía que los usuarios sin conocimientos en informática pudieran usar un ordenador. El Mac OS llegó hasta la versión 9 en 1999. A partir de la versión 10 se denominó Max OSX y actualmente va por la versión 10.8 Mountain Lion.

6.1.3 GNU/Linux GNU/Linux es el nombre de un proyecto impulsado por Richard Stallman de un sistema operativo de código abierto que pueda ser liberado junto con el código fuente para su estudio y modificación sin las trabas impuestas por el software propietario y los derechos de autor. Durante la década de los 70 había muchas universidades que utilizaban el sistema operativo Unix. Los estudiantes no podían permitirse el lujo de comprar una licencia para Unix por lo que el profesor Andrew Tanenbaum construyó MINIX con fines educativos. Consistía en una versión Unix muy sencilla. Sin embargo, los estudiantes pretendían aumentar las funcionalidades de MINIX, a lo que Tanenbaum siempre se negaba. Uno de ellos, Linus Torvalds creó un nuevo kernel, Linux, que ampliaba la funcionalidad de MINIX. Por aquél entonces existía el proyecto GNU que agrupaba un conjunto de aplicaciones de libre distribución que podían ejecutarse sobre Unix. Sin embargo carecían de kernel, es decir, de un sistema operativo sobre el que ejecutarse. Ahí fue donde apareció Linux para combinarse con GNU y formar GNU/Linux. De este proyecto han surgido muchas distribuciones. Una distribución GNU/Linux consiste en un núcleo Linux (que es común a todas las distribuciones) y un conjunto de programas que incluyen un gestor de escritorio. Así tenemos distribuciones como Ubuntu, Debian, Fedora, Open SuSe, Mandriva, etc.

6.2 SO para dispositivos móviles El siguiente gráfico muestra los sistemas operativos para smartphones más usados Página 16

Rafael Lozano

Introducción a los Sistemas Operativos

Figura 8.- Ranking de SOs para smartphones

Los siguientes operativos para dispositivos móviles son los más relevantes son:

6.2.1 Android Android es el sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas. Google es el encargado de desarrollar Android y lo ha liberado bajo licencia libre y de código abierto. En pocos años se ha situado en los primeros lugares de los sistemas operativos para móviles más utilizado. El consorcio OHA (Open Handset Alliance) está formado por fabricantes de hardware, desarrolladores de software y operadores de telefonía móvil cuyo objetivo es desarrollar estándares abiertos para dispositivos móviles. Este consorcio colabora en el desarrollo de Android.

6.2.2 iOS IOS es un sistema operativo móvil de Apple que deriva de Max OS X y originalmente desarrollado para el iPhone, siendo después usado en dispositivos como el iPod Touch y el iPad. Al igual que ocurre con Mac OSX, el iOS solamente se encuentra instalado en los teléfonos móviles iPhone. Este fue el primer móvil con interfaz de usuario táctil, lo que supuso una revolución en la telefonía móvil ya que permitía a estos dispositivos ampliar su funcionalidad más allá de las llamadas telefónicas.

6.2.3 Windows Phone Windows Phone es un sistema operativo móvil desarrollado por Microsoft como sucesor de Windows Mobile. A diferencia de su predecesor está enfocado en el mercado de consumo en lugar de en el mercado empresarial. Con Windows Phone Microsoft ofrece una nueva interfaz de usuario que integra varios de sus servicios propios como OneDrive, Skype y Xbox Live en el sistema operativo. Su cuota 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 compone de mosaicos dinámicos que son enlaces a aplicaciones o objetos individuales (como contactos,

Página 17

Rafael Lozano

Introducción a los sistemas operativos

páginas web o archivos multimedia). Estos mosaicos actualizan frecuentemente manteniendo informado de cualquier cambio al usuario. La información que se muestra en los mosaicos dinámicos puede ser desde llamadas, mensajes recibidos, correos electrónicos pendientes, citas previstas, juegos o enlaces rápidos a aplicaciones.

Página 18

Rafael Lozano

Introducción a los Sistemas Operativos

7 Bibliografía WIKIPEDIA, 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ª Edición. 2009 Autor - Editor ISBN 9786074420463

Página 19

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.