Logo Studenta

Taller_Ofimatica1_Unidad1

¡Este material tiene más páginas!

Vista previa del material en texto

Universidad Nacional del Litoral
FACULTAD DE INGENIERÍA
Y CIENCIAS HÍDRICAS 
 
 
Sistemas Operativos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
La totalidad de la información y textos aquí presentados pueden ser utilizados sin necesidad de requerimiento de permiso escrito o 
de cualquier otra índole de la cátedra siempre que se efectúe con un fin específicamente académico y sin fines de lucro. 
 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 2 de 19 
Sistemas Operativos 
Introducción 
 
 
Metodología de Trabajo 
Para este curso de Taller de Ofimática I, la técnica de trabajo propuesta será la siguiente: 
 Lea detalladamente el material de lectura propuesto para las unidades de la asignatura, los 
cuales estarán accesibles en la plataforma educativa, y plantee en el foro correspondiente a 
la misma todas sus preguntas y dudas sobre lo allí expuesto. 
 Luego de la lectura del contenido de cada unidad, se recomienda no demorar en tiempo la 
realización de la autoevaluación, si correspondiera, ya que las mismas tienen fechas límites 
de plazo máximo. 
 Se recomienda al alumno realizar su propio diccionario de términos técnicos 
computacionales en base a los que surjan del material de lectura, del uso del software o de 
la lectura de las ayudas. Es importante manejar el vocabulario o jerga informática para 
interpretar de mejor manera todo el material de información computacional o técnico. 
 
Además, a medida que se avance en la lectura de las unidades, notará una serie de trucos o 
"atajos" en el uso y el conocimiento del software. Le recomendamos aplicarlos y seguir 
profundizando sobre tópicos que no se explicitan o aclaran, por una cuestión de tiempo, en el 
desarrollo del presente tema. Se le recuerda que deberá seguir incrementando su glosario de 
términos técnicos. 
 
 
Objetivos 
� Introducirnos a la Historia de los Sistemas Operativos. 
� Definir que es un Sistema Operativo. 
� Introducir conceptos sobre los Firmwares 
� Conocer las diferentes clasificaciones de los mismos. 
� Identificar un determinado Sistema Operativo. 
� Comprender el concepto de uso. 
� Aprender a Instalar un Sistema Operativo en un Hardware. 
 
 
Introducción a los Sistemas Operativos – Un poco de Historia 
 
La informática tal y como se le conoce hoy día, surgió a raíz de la II Guerra Mundial, en la década 
de los 40. En esos años no existía siquiera el concepto de "Sistema Operativo" y los programadores 
interactuaban directamente con el hardware de las computadoras trabajando en lenguaje 
máquina (esto es, en binario, programando únicamente con 0s y 1s). El concepto de Sistema 
Operativo surge en la década de los 50. El primer Sistema Operativo de la historia fue creado en 
1956 para un ordenador IBM 704, y básicamente lo único que hacía era comenzar la ejecución de 
un programa cuando el anterior terminaba. 
En los años 60 se produce una revolución en el campo de los Sistemas Operativos. Aparecen 
conceptos como sistema multitarea, sistema multiusuario, sistema multiprocesadores y sistema en 
tiempo real. Es en esta década cuando aparece UNIX, la base de la gran mayoría de los Sistemas 
operativos que existen hoy en día. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 3 de 19 
 
En los años 70 se produce un boom en cuestión de ordenadores personales, acercando estos al 
público general de manera impensable hasta entonces. Esto hace que se multiplique el desarrollo, 
creándose el lenguaje de programación C (diseñado específicamente para reescribir por completo 
el código UNIX). 
Como consecuencia de este crecimiento exponencial de usuarios, la gran mayoría de ellos sin 
ningún conocimiento sobre lenguajes de bajo o alto nivel, hizo que en los años 80, la prioridad a la 
hora de diseñar un sistema operativo fuese la facilidad de uso, surgiendo así las primeras 
interfaces de usuario. 
 
En los 80s nacieron sistemas como MacOS, MS-DOS, Windows. 
 
 
 
 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 4 de 19 
 
 
En la década de los 90 hace su aparición Linux, publicándose la primera versión del núcleo en 
septiembre de 1991, que posteriormente se uniría al proyecto GNU, un sistema operativo 
completamente libre, similar a UNIX, al que le faltaba para funcionar un núcleo funcional. Hoy en 
día la mayoría de la gente conoce por Linux al Sistema Operativo que realmente se llama 
GNU/Linux. 
 
 
 
 
 
 
 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 5 de 19 
 
 
Conceptos sobre los Firmwares 
 
El firmware es el conjunto de programas y datos que vienen en una computadora desde su 
fabricación, en una memoria que no puede ser modificada por el usuario. 
Estos programas pueden venir implantados en el propio cableado del ordenador, denominándose 
en estos casos lógica cableada, y también pueden venir en memorias de solo lectura (Read only 
memory-ROM), conociéndose en estos casos como microcódigo o microprograma. 
Microcódigo (Microcode). Se denomina así a la representación simbólica del microprograma. 
Microprograma (Microprogram). Secuencia de instrucciones elementales en código máquina que 
corresponden a una operación completa de la computadora. 
En general, podemos decir que una máquina microprogramada interpreta instrucciones 
(microinstrucciones) no existentes directamente en el hardware, basándose en otras más 
elementales que si están directamente disponibles en la máquina. 
En la actualidad, la microprogramación se utiliza para realizar funciones de control en una 
computadora y es facultad de los diseñadores de hardware. 
 
Existen varias modalidades de firmware: 
Programas tableados (Wired-in). Son secuencias de acciones que configuran determinados 
algoritmos implantados en el tableado. El ejemplo más corriente es el de las calculadoras. 
 
 
 
 
 
Control por programa (Program control). El control se realiza por un programa o conjunto de ellos 
grabados en una memoria ROM, donde las instrucciones máquina son interpretadas como un 
juego de señales de control. 
Control rígido (Hard-wired). Consiste en una mezcla de los dos anteriores, donde la conversión de 
códigos de operación de las instrucciones del programa almacenado en señales de control se 
establece por cableado. 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 6 de 19 
 
 
Control por microprograma (Microprogramed). Se realiza el control por medio de un programa 
(microprograma) almacenado en memoria ROM, cuyas instrucciones son menos numerosas que el 
mismo programa en código máquina, donde además se puede emular una máquina virtual más 
potente que la real que configura el propio hardware. 
 
¿Qué es un Sistema Operativo? – Definición Formal 
 
En primer lugar definimos el elemento físico en el que se centra toda la actividad informática, es 
decir, la computadora. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 7 de 19 
Una computadora es una máquina de origen electrónico con una o más unidades de proceso y 
equipos periféricos controlados por programas almacenados en su memoria, que pueden realizar 
una gran variedad de trabajos. 
Todo este componente físico es denominado comúnmente Hardware. 
Ahora bien, al ser una máquina programable tiene que contar con información que le indique cómo 
utilizar todas sus unidades físicas o herramientas que la componen, conocidas como recursos, para 
llevar a cabo el trabajo. Esta información es lo que denominamos soporte lógico o Software. 
Una computadora sin Software sería una máquina inútil, mientras que con él puede almacenar, 
procesar y obtener información, editar textos, procesar video, controlar el entorno, etc. 
 
Un Sistema Operativo es un elemento constitutivo de software que en sus principios fue definido de 
la siguiente manera: 
 
• Programa fundamental del Software del Sistema que controla todos los recursos del Sistema 
Computacional y proporciona la base sobre la cuál pueden escribirse los programas de 
aplicación. 
• Colección organizada de extensiones software del hardware, consistenteen rutinas de control 
que hacen funcionar un computador y proporcionan un entorno para la ejecución de los 
programas. 
• El Sistema Operativo proporciona facilidades de apoyo a otros programas de manera que éstos 
puedan tener acceso a los recursos del Sistema Computacional (ej, archivos, dispositivos de E/S, 
etc.). 
• Un Sistema Operativo actúa como gestor de los recursos del Sistema Computacional, tales 
como el procesador, la memoria, los archivos y los dispositivos de E/S. En esta función, el 
Sistema Operativo lleva la cuenta del estado de cada recurso y decide quién lo obtiene, por 
cuánto tiempo y en qué instante. En sistemas que soportan ejecución concurrente de 
programas, el Sistema Operativo resuelve las peticiones conflictivas de recursos de manera de 
preservar la integridad del sistema, de manera de optimizar el rendimiento global. 
 
En la actualidad, no resulta sencilla su definición, de forma que pueden darse varias desde distintos 
puntos de vista: 
 
Punto de vista del Usuario 
Un Sistema Operativo es un conjunto de programas y funciones que ocultan los detalles del 
hardware, ofreciendo al usuario una vía sencilla y flexible de acceso al mismo. 
La ocultación de los detalles del hardware a usuarios y parte del personal informático tiene dos 
objetivos: 
Abstracción. La tendencia actual del software en toda su extensión es la de dar una visión global y 
abstracta de la computadora haciendo fácil su uso ocultando por completo la gestión interna. 
Seguridad. Existen instrucciones en la máquina que pueden parar la computadora, interferir 
procesos, etc. Por ello, es necesario restringir determinadas operaciones a los usuarios creando 
varios niveles de privilegio, de tal forma que cada usuario tenga protegida su información y sus 
procesos. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 8 de 19 
 
 
 
 
Punto de vista de GESTOR DE RECURSOS 
Un Sistema Operativo es el administrador de recursos 
ofrecidos por el hardware para alcanzar un eficaz 
rendimiento de los mismos. 
Estos recursos son: 
� El microprocesador. 
� La memoria. 
� Los dispositivos de Entrada/Salida. 
� La información. 
� Los programas. 
� La seguridad. 
� Etc. 
 
 
 
Los sistemas operativos construyen recursos de alto nivel, que denominaremos VIRTUALES, a base 
de encubrir los realmente existentes de bajo nivel, que denominaremos FISICOS. 
 
Por tanto, desde el punto de vista del usuario o de 
un proceso, la máquina física es convertida por el 
Sistema Operativo en una máquina virtual, también 
conocida como máquina extendida, que, a 
diferencia de la física, ofrece muchas más funciones 
y más cómodas de utilizar. 
El sistema operativo proporciona, además, servicios 
de los que no dispone el hardware, como pueden 
ser, por ejemplo, la utilización de la computadora 
por varios usuarios simultáneamente, interacción 
entre usuario y programa en ejecución al mismo tiempo, etc. 
Para concluir, vamos a dar una definición más académica que las anteriores, basándonos en la 
definición previa de los términos SISTEMA y OPERATIVO. 
Sistema. Conjunto de personas, máquinas y cosas que, ordenadamente relacionadas entre sí, 
contribuyen a lograr un determinado objetivo. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 9 de 19 
Operativo. Personas, máquinas y cosas que trabajan conjuntamente y consiguen el objetivo 
deseado. 
De las definiciones anteriores podemos obtener la de sistema operativo de la siguiente forma: 
 
SISTEMA OPERATIVO: Un sistema operativo (SO) es un programa o conjunto de programas que, en 
un sistema informático, gestiona los recursos de hardware y provee servicios a los programas de 
aplicación, ejecutándose en modo privilegiado respecto de los restantes. 
 
Como resumen, podemos decir que los sistemas operativos cubren dos objetivos fundamentales: 
facilitar el trabajo al usuario y gestionar de forma eficiente los recursos. 
 
Ahora bien, no todo el software que se ejecuta sobre el hardware se considera como sistema 
operativo. Existen dos tipos de programas que conviene distinguir: 
• Programas del sistema: son los que manejan el hardware, controlan los procesos, hacen más 
cómodo el entorno de trabajo, etc. 
• Programas de aplicación: son los que resuelven un problema concreto de los usuarios y que no 
son suministrados con el sistema operativo. Son programas diseñados y codificados por analistas y 
programadores de aplicaciones conjuntamente con los usuarios. 
 
 
 
Tipos de Sistemas Operativos 
 
En una primera caracterización, podemos diferenciar 5 tipos de Sistemas operativos: 
 
Los Sistemas Monolíticos (Sistemas de Estructuras Simples) 
Según la Real Academia Española Monolítico es algo de una pieza, sin fisuras o rígido, inflexible. 
Los sistemas Monolíticos son la estructura más simple para un Sistema Operativo. 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 (ej. manejo de drivers -controladores-, 
sistemas de archivos, gestión de memoria, etc.), se encuentran agrupados en un solo programa 
(que es el propio Sistema Operativo). 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 las falencias en este tipo 
de estructura que radica principalmente en la poca confiabilidad 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 mala capacidad de mantenimiento. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 10 de 19 
 
 
Ejemplos de Sistemas Monolíticos 
Los ejemplos típicos de este sistema son Unix, MS-DOS y Mac OS hasta Mac OS 8.6. Otros ejemplos 
son: Linux, Syllable Núcleos tipo DOS, DR-DOS, Familia Microsoft Windows 9x (95, 98, 98SE, Me). 
 
Los sistemas de Micronúcleo o Microkernel 
 
El Micronúcleo surge como una nueva forma de organización para un Sistema Operativo. Es un 
término algo tedioso de entender ya que puede no ser relativo a su tamaño, pero si a su diseño. 
 
En este sistema las funciones centrales son manejadas por el núcleo (kernel) y la interfaz de 
usuario es manejada por el entorno (shell). El Microkernel se encarga de todo el código de un 
sistema, y de planificar los hilos (threads) con la finalidad de tener multitareas. 
 
Algunas ventajas que podemos destacar de los Micronúcleos son los siguientes: 
• Uniformidad de interfaces: disponen de una interfaz única para las solicitudes de los procesos y el 
paso de mensajes. 
• Portabilidad: reduciendo el núcleo e implementando casi todo en servidores, para implementarlo 
en arquitecturas diferentes, sólo habría que modificar el núcleo haciendo más simple su 
portabilidad. 
• Fiabilidad: es más fácil corregir fallas en un sistema pequeño ya que se pueden realizar pruebas 
más rigurosas que en un sistema mucho más grande. 
 
Ejemplos de Sistemas Micronúcleo 
AIX, BeOS, Mach, MorphOS, QNX, Minix, Hurd, L4, RadiOS, Symbian, VSTa 
 
A continuaciónexaminaremos cuáles son las principales características de un sistema Monolítico y 
un Micronúcleo, además se podrá notar por qué el Sistema Micronúcleo supera algunas 
problemáticas relativas al diseño de un sistema Monolítico: 
Sistemas Operativos – Unidad 1 – Introducción 
Página 11 de 19 
 
 
 
Sistema Cliente-Servidor 
Dentro de esta estructura de Sistemas MicroKernel también podríamos incluir el Sistema Cliente-
Servidor ya que presenta una ligera variación en la idea del “Microkernel” la cual es que este 
sistema hace la diferencia entre dos clases de procesos: los servidores, cada uno de los cuales 
proporciona cierto servicio, y los clientes, que utilizan estos servicios. A menudo la capa inferior es 
un Microkernel, pero eso no es requerido. La esencia es la presencia de procesos cliente y procesos 
servidor. 
 
En los sistemas operativos modernos, los sistemas cliente-servidor nacen con la finalidad de 
minimizar el núcleo (kernel), trasladando el código de todos sus servicios a las capas superiores; y 
el núcleo sólo deberá controlar la comunicación, que se realiza mediante mensajes, entre clientes y 
servidores o servidores y hardware. 
 
El objetivo es desarrollar la mayoría de las funciones del sistema operativos como procesos de 
usuario. Un proceso de usuario, llamado en este caso proceso cliente, envía una solicitud a un 
proceso servidor, que realiza el trabajo y devuelve la respuesta. 
 
El sistema operativo se divide en partes donde cada una controla una faceta del sistema, entre 
ellos servicios a archivos, servicios a procesos, servicios a terminales, o servicios a la memoria, 
donde cada una es pequeña y controlable, así al ejecutar los procesos en modo usuario y no en 
modo núcleo si hay algún error en algún servidor, este afectará sólo a dicha parte y no a toda la 
máquina, ya que no se tiene acceso al hardware. 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 12 de 19 
Un caso sencillo de cliente, en este caso, es un programa de aplicación que llama al servidor para 
acceder a un archivo, otro ejemplo es cuando el programa de aplicación realiza una operación de 
entrada o salida a un dispositivo concreto. En cada uno de estos casos el cliente a su vez puede ser 
servidor de otros servicios. Esta idea se refleja a continuación: 
 
 
Sistemas por Capas o Jerárquica (Estructura por niveles) 
 
En esta estructura, el Sistema Operativo queda definido modularmente por divisiones 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 (Ver imagen de arriba), donde la capa inferior es la más privilegiada. El encargado de que 
solamente haya comunicación entre capas adyacentes es el procesador. 
 
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 primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool 
Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes. 
El sistema original consta de 6 capas: 
Capa 5: Se encuentra la interfaz de usuario. 
Capa 4: Aloja los programas de usuario. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 13 de 19 
Capa 3: Se controlan los dispositivos E/S (entrada y salida). 
Capa 2: Se administra la comunicación inter-proceso 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 modularizada, 
otorga facilidad en construcción y depuración del sistema. La facilidad de construcción se respalda 
porque 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 o falla en una de las capas, no se compromete a todo el sistema, 
sólo a la capa relacionada con la falla. 
 
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, cada capa implica un gasto y tiempo extra. 
 
 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 14 de 19 
Ejemplos de Sistemas por Capas 
THE (Technische Hogeschool Eindhoven), Venus, MULTICS (Multiplexed Information and Computing 
Service) 
 
Sistemas 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 por 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, por ejemplo, si el módulo de software que se encarga de controlar el proceso de Telnet en 
una unidad se bloquea o es atacado, sólo este proceso se verá afectado. El resto de las operaciones 
siguen sus funciones habituales. 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. Este enfoque modular 
utiliza la programación orientada a objetos. 
 
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. Es similar a la estructura de 
microkernel, pues el kernel también tiene las funciones esenciales, pero este es más eficiente ya 
que no necesitan un mecanismo de paso de mensajes para comunicarse, sólo interfaces conocidas. 
 
 
 
Ejemplos de Sistemas por Módulos 
SO Unix modernos, Solaris, etc 
 
Continuando con el análisis de los diferentes tipos de sistemas operativos, también los podemos 
caracterizar según los siguientes aspectos: 
 
Monousuarios 
Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin 
importar el número de procesadores que tenga la computadora o el número de procesos o tareas 
que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales 
típicamente se han clasificado en este renglón. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 15 de 19 
 
Multiusuarios 
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya 
sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas 
en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número 
de procesos que cada usuario puede ejecutar simultáneamente. 
 
Monotareas 
Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede 
darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al 
mismo tiempo pero cada uno de ellos puede estar haciendosolo una tarea a la vez. 
 
Multitareas 
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores 
al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su 
depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un 
proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de 
menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, 
mejorando su productividad. 
 
Uniproceso 
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la 
computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más 
típico de este tipo de sistemas es el DOS y MacOS. 
 
Multiproceso 
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más 
de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos 
sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera 
asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de 
procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que 
reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de 
ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, 
teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este 
esquema. 
Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede 
consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros 
valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear 
aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para 
correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo 
o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo 
tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos 
y aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veces es costosa 
en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la 
paralelización que a elaborar el algoritmo inicial. 
 
Sistemas Operativos – Unidad 1 – Introducción 
Página 16 de 19 
Sistemas Operativos por la Forma de Ofrecer sus Servicios 
Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del 
usuario, el cómo accesa los servicios. Bajo esta clasificación se pueden detectar dos tipos 
principales: sistemas operativos de red y sistemas operativos distribuidos. 
 
� Sistemas Operativos de Red 
Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con 
sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de 
intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras 
actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un 
conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la 
ubicación de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo 
necesita el archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora 
morelos bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los 
comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas . hidalgo% En 
este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora 
morelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es 
hacer ver que el usuario puede accesar y compartir muchos recursos. 
 
� Sistemas Operativos Distribuidos 
Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos 
(impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola 
máquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no 
necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa 
como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco 
teórico de lo que se desearía tener como sistema operativo distribuido, pero en la realidad no se ha 
conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias 
unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y 
paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la protección y 
seguridad entre los diferentes componentes del sistema y los usuarios. Los avances tecnológicos en 
las redes de área local y la creación de microprocesadores de 32 y 64 bits lograron que 
computadoras mas o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar 
en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la 
oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas 
en los varios microprocesadores para luego reunir los sub-resultados, creando así una máquina 
virtual en la red que exceda en poder a un mainframe. El sistema integrador de los 
microprocesadores que hacer ver a las varias memorias, procesadores, y todos los demás recursos 
como una sola entidad en forma transparente se le llama sistema operativo distribuido. Las 
razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por 
necesidad (debido a que los problemas a resolver son inherentemente distribuidos) o porque se 
desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por 
ejemplo, el control de los cajeros automáticos en diferentes estados de la república. Ahí no es 
posible ni eficiente mantener un control centralizado, es más, no existe capacidad de cómputo y de 
entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, 
supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita 
almacenar grandes cantidades de información en disco duro con una alta confiabilidad y 
disponibilidad. La solución puede ser que para cada grupo de trabajo se asigne una partición de 
disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el 
Sistemas Operativos – Unidad 1 – Introducción 
Página 17 de 19 
servicio a todos, sino sólo a unos cuantos y, más aún, se podría tener un sistema con discos en 
espejo (mirror) a través de la red, de manera que si un servidor se cae, el servidor en espejo 
continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos 
en forma transparente. 
 
Ventajas de los Sistemas Distribuidos 
En general, los sistemas distribuidos (no solamente los sistemas operativos) exhiben algunas 
ventajas sobre los sistemas centralizados que se describen enseguida. 
• Economía: El cociente precio/desempeño de la suma del poder de los procesadores 
separados contra el poder de uno solo centralizado es mejor cuando están distribuidos. 
• Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. 
• Confiabilidad: Si una sola máquina falla, el sistema total sigue funcionando. 
• Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños 
sistemas, lo cual es mucho más difícil en un sistema centralizado y caro. 
• Distribución: Algunas aplicaciones requieren de por sí una distribución física. 
Por otro lado, los sistemas distribuidos también exhiben algunasventajas sobre sistemas aislados. 
Estas ventajas son: 
• Compartir datos: Un sistema distribuido permite compartir datos más fácilmente que los 
sistemas aislados, que tendrían que duplicarlos en cada nodo para lograrlo. 
• Compartir dispositivos: Un sistema distribuido permite accesar dispositivos desde cualquier 
nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema 
distribuido logra un efecto sinergético. 
• Comunicaciones: La comunicación persona a persona es factible en los sistemas 
distribuidos, en los sistemas aislados no. 
• Flexibilidad: La distribución de las cargas de trabajo es factible en el sistema distribuido, se 
puede incrementar el poder de cómputo. 
 
Desventajas de los Sistemas Distribuidos 
Así como los sistemas distribuidos exhiben grandes ventajas, también se pueden identificar algunas 
desventajas, algunas de ellas tan serias que han frenado la producción comercial de sistemas 
operativos en la actualidad. El problema más importante en la creación de sistemas distribuidos es 
el software: los problemas de compartir datos y recursos es tan complejo que los mecanismos de 
solución generan mucha sobrecarga al sistema haciéndolo ineficiente. El chequear, por ejemplo, 
quiénes tienen acceso a algunos recursos y quiénes no, el aplicar los mecanismos de protección y 
registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos 
problemas están aún en pañales. 
Otros problemas de los sistemas operativos distribuidos surgen debido a la concurrencia y al 
paralelismo. Tradicionalmente las aplicaciones son creadas para computadoras que ejecutan 
secuencialmente, de manera que el identificar secciones de código `paralelizable' es un trabajo 
arduo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes 
unidades de procesamiento para lograr la distribución. Con la concurrencia se deben implantar 
mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar 
un recurso y estar esperando otro, las condiciones de espera circulares y , finalmente, los "abrazos 
mortales" (deadlocks). Estos problemas de por sí se presentan en los sistemas operativos 
multiusuarios o multitareas, y su tratamiento en los sistemas distribuidos es aún más complejo, y 
por lo tanto, necesitará de algoritmos más complejos con la inherente sobrecarga esperada. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 18 de 19 
Por otro lado, en el tema de sistemas distribuidos existen varios conceptos importantes referentes 
al hardware que no se ven en este trabajo: multicomputadoras, multiprocesadores, sistemas 
acoplados débil y fuertemente, etc. 
 
 
 
Servicios de los Sistemas Operativos 
 
El intérprete de comandos y los programas del sistema son los que fijan el entorno y la forma de 
ver el sistema operativo por los usuarios. En cambio, el programador del sistema tiene una visión 
totalmente diferente; para él todo son recursos físicos y dispositivos que deben ser convertidos en 
entidades lógicas para ofrecérselas a los usuarios. 
Se puede decir que un sistema operativo es un programa activado por eventos; es decir, si no hay 
programas en ejecución, ni operaciones de entrada/salida pendientes, etc., el sistema estará 
inactivo hasta que se produzca alguna nueva petición. Normalmente cada evento producirá una 
interrupción de la ejecución del sistema operativo. 
 
Llamadas al sistema operativo 
En esta ocasión las llamadas al sistema operativo se agrupan por el tipo de llamada y no por la 
acción que realizan. Pueden ser: 
• Terminación normal: Se realiza la devolución del control al usuario cuyo proceso ha 
terminado, a través del intérprete de comandos. 
• Terminación anormal: Cuando aparece un error en la ejecución de un programa, éste se da 
por terminado, devolviendo el control al intérprete de comandos, que indicará tal situación 
de error al usuario. 
• Peticiones de estado: Se procesa la petición solicitada y se devuelve el control al programa 
que la solicitó. 
• Peticiones de recursos: Los programas solicitarán recursos durante su ejecución que serán 
atendidos de inmediato o se entrará en un estado de espera hasta que puedan ser 
atendidos. 
• Peticiones de entrada/salida: De igual forma, los programas las solicitarán y serán 
atendidas de inmediato o tras un pequeño período de espera. 
 
Interrupciones de los dispositivos de E/S 
Una vez que un programa en ejecución realiza una petición de entrada/salida, se pueden tomar 
dos tipos de acción por parte del sistema operativo: 
• El proceso queda en espera hasta que se termina la operación de entrada/salida: En este 
caso el dispositivo externo, cuando termine la operación, producirá una interrupción que 
dará control al sistema operativo, el cual activará el proceso que estaba en espera. 
• El proceso seguirá realizando otras operaciones: En este caso el dispositivo externo también 
produce una interrupción en el sistema operativo, el cual no activará el proceso puesto que 
no estaba en espera, pero sí le indicará que la operación solicitada ha terminado. 
 
Gestión de excepciones 
Cuando un programa en ejecución comete un error, se producirá una interrupción; por ejemplo, 
una división por 0, intento de violación de un archivo protegido, intento de ejecución de una 
instrucción no permitida o privilegiada, etc. El tratamiento de estos errores se conoce como manejo 
de excepciones. 
Sistemas Operativos – Unidad 1 – Introducción 
Página 19 de 19 
Los sistemas operativos suelen asociar alguna función para el tratamiento de estos errores. El 
núcleo da control a esta función en el momento de aparición de un error de este tipo. 
 
Protecciones 
Los programas de aplicación de los usuarios no están exentos de errores, así como los sistemas 
tampoco están libres de usuarios con malas intenciones. Por ello, el sistema operativo debe incluir 
ciertas funciones de protección con objeto de evitar problemas entre procesos y entre éstos y el 
propio sistema operativo. 
 
Protección de la entrada/salida 
Todos los dispositivos externos cuentan, por parte del sistema operativo, con rutinas para el 
control de las operaciones de entrada/salida. Estas rutinas se denominan controladores o drivers 
de dispositivos y entre otras funciones protegen los accesos incorrectos, devolviendo el control al 
núcleo del sistema operativo, indicándole la situación errónea que se ha producido. 
 
Protección de la memoria 
En general, cada proceso tiene una zona de 
memoria asignada para el tratamiento de sus 
datos denominada espacio de direccionamiento y 
no puede acceder a zonas asignadas al sistema 
operativo o a otros procesos. Para evitarlo existen 
unos registros frontera que indican el límite de 
memoria asignado a cada proceso. 
Si un proceso intentase acceder a direcciones que 
están fuera de la zona de memoria de su espacio 
de direccionamiento, se producirá una 
interrupción que dará control al sistema operativo dando cuenta del error que se ha producido. 
 
Protección del procesador 
Otro tipo de problemas que pueden presentarse es la presencia de bucles infinitos o accesos al 
procesador que no lo liberan nunca. En estos casos la única solución es la de apagar y volver a 
encender (reset) para volver a comenzar desde el principio. 
Para evitarlo, el hardware incluye un temporizador que marca periodos de tiempo, de manera que 
al terminar un período de tiempo se produzca una interrupción y tome el control el sistema 
operativo.

Continuar navegando