Nothing Special   »   [go: up one dir, main page]

Https:/firebasestorage Googleapis Com/v0/b/oymaslmsfiles Appspot Com/o

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 36

Sistema Operativo

Historia y evolución
Los Sistemas Operativos han estado relacionados históricamente con la
arquitectura de las computadoras en las cuales se ejecutan, razón por la cual su
historia. Los Sistemas Operativos, al igual que el Hardware de los computadores,
han sufrido una serie de cambios revolucionarios llamados generaciones.

En el caso del hardware, las generaciones han sido marcadas por grandes
avances en los componentes utilizados, pasando de válvulas (primera
generación) a transistores (segunda generación), a circuitos integrados (tercera
generación), a circuitos integrados de gran y muy gran escala (cuarta
generación).

Cada generación Sucesiva de hardware ha ido acompañada de reducciones


substanciales en los costos, tamaño, emisión de calor y consumo de energía, y
por incrementos notables en velocidad y capacidad. En la actualidad existe gran
variedad de Sistemas Operativos como pueden ser Windows 98, Windows
NT, Linux, etc.

Primera generación (Finales de la década de los 50's)


En esta década aparecen los sistemas de procesamiento por lotes, donde los
trabajos se reunían por grupos o lotes. Cuando se ejecutaba alguna tarea, ésta
tenía control total de la máquina. Al terminar cada tarea, el control era devuelto
al sistema operativo, el cual limpiaba, leía e iniciaba la siguiente tarea. Aparece
el concepto de nombres de archivo del sistema para lograr independencia de
información. Los laboratorios de investigación de General Motors poseen el
crédito de haber sido los primeros en poner en operación un sistema operativo
para su INM 707.

Segunda generación (Mitad de la década de los 60's)


En esta generación se desarrollan los sistemas compartidos
con multiprogramación, en los cuales se utilizan varios procesadores en un solo
sistema, con la finalidad de incrementar el poder de procesamiento de la
máquina. El programa especificaba tan sólo que un archivo iba a ser escrito en
una unidad de cinta con cierto número de pistas y cierta densidad. El sistema
operativo localizaba entonces una unidad de cinta disponible con las
características deseadas, y le indicaba al operador que montara una cinta en esa
unidad.

Tercera generación
En esta época surge la familia de computadores IBM/360 diseñados como
sistemas para uso general, por lo que requerían manejar grandes volúmenes de
información de distinto tipo, lo cual provocó una nueva evolución de los
sistemas operativos: los sistemas de modos múltiples, que soportan
simultáneamente procesos por lotes, tiempo compartido, procesamiento en
tiempo real y |multiprocesamiento.

Cuarta generación (Mitad de la década de los 70's hasta nuestros días)


Los sistemas operativos conocidos en la época actual son los considerados
sistemas de cuarta generación. Con la ampliación del uso de redes de
computadoras y del procesamiento en línea es posible obtener acceso a
computadoras alejadas geográficamente a través de varios tipos de terminales.
Con estos sistemas operativos aparece el concepto de máquinas virtuales, en el
cual el usuario no se involucra con el hardware de la computadora con la que se
quiere conectar y en su lugar el usuario observa una interfaz gráfica creada por
el sistema operativo.

Sistema operativo
Un sistema operativo es un conjunto de programas o software, destinado a
permitir la comunicación entre el usuario y la máquina de forma cómoda y
eficiente; se encarga de gestionar los recursos del ordenador, esto incluye la
gestión del hardware desde los niveles más básicos.

Un sistema operativo es un programa que controla la ejecución de aplicaciones


y programas y que actúa como interfaz entre las aplicaciones y el hardware del
computador. Se puede considerar que un sistema operativo tiene los
siguientes tres objetivos:

Facilidad de uso.

Un sistema operativo facilita el uso de un computador.

Eficiencia.
Un sistema operativo permite que los recursos de un sistema de computación
se puedan utilizar de una manera eficiente.

Capacidad para evolucionar.


Un sistema operativo se debe construir de tal forma que se puedan desarrollar,
probar e introducir nuevas funciones en el sistema sin interferir con su servicio.
EL SISTEMA OPERATIVO COMO UNA INTERFAZ USUARIO/COMPUTADOR

El hardware y software utilizados para proporcionar aplicaciones a los usuarios


se pueden ver de forma jerárquica o en capas. El usuario de dichas
aplicaciones, es decir, el usuario final, normalmente no se preocupa por los
detalles del hardware del computador. Por tanto, el usuario final ve un sistema
de computación en términos de un conjunto de aplicaciones. Una aplicación se
puede expresar en un lenguaje de programación y normalmente es
desarrollada por un programador de aplicaciones. Si un programador tuviera
que desarrollar una aplicación como un con- junto de instrucciones en código
máquina que se encargaran de controlar completamente el hardware del
computador, se enfrentaría a una labor extremadamente compleja. Para
facilitar esta tarea, se proporcionan un conjunto de programas de sistema.
Algunos de estos programas se conocen como utilidades. Estos programas
utilizan frecuentemente funciones que asisten al programador en las fases de
creación de programas, gestión de ficheros y control de los dispositivos de E/S.
Un programador hará uso de estas utilidades cuando desarrolle una aplicación,
y las aplicaciones, invocarán a las utilidades durante su ejecución para llevar a
cabo ciertas funciones. El programa de sistema más importante es el sistema
operativo. El sistema operativo oculta los detalles del hardware al programador
y le proporciona una interfaz apropiada para utilizar el sistema. Actúa como
mediador, haciendo más fácil al programador y a la aplicación el acceso y uso
de dichas utilidades y servicios.
De forma resumida, el sistema operativo proporciona normalmente servicios
en las siguientes áreas:

Desarrollo de programas.
El sistema operativo proporciona una variedad de utilidades y servicios, tales
como editores y depuradores, para asistir al programador en la creación de
los programas. Normalmente, estos servicios se ofrecen en la forma de
utilidades que, aunque no forman parte del núcleo del sistema operativo, se
ofrecen con dicho sistema y se conocen como herramientas de desarrollo de
programas de aplicación.
Ejecución de programas.
Se necesita realizar una serie de pasos para ejecutar un programa. Las
instrucciones y los datos se deben cargar en memoria principal. Los dispositivos
de E/S y los ficheros se deben inicializar, y otros recursos deben prepararse. Los
sistemas operativos realizan estas labores de planificación en nombre del
usuario.

Acceso a dispositivos de E/S.


Cada dispositivo de E/S requiere su propio conjunto peculiar de instrucciones o
señales de control para cada operación. El sistema operativo proporciona una
interfaz uniforme que esconde esos detalles de forma que los programadores
puedan acceder a dichos dispositivos utilizando lecturas y escrituras sencillas.

Acceso controlado a los ficheros.


Para el acceso a los ficheros, el sistema operativo debe reflejar una
comprensión detallada no sólo de la naturaleza del dispositivo de E/S (disco,
cinta), sino también de la estructura de los datos contenidos en los ficheros del
sistema de almacenamiento. Adicionalmente, en el caso de un sistema con
múltiples usuarios, el sistema operativo puede proporcionar mecanismos de
protección para controlar el acceso a los ficheros.

Acceso al sistema.
El sistema operativo controla el acceso al sistema completo y a recursos del
sistema específicos. La función de acceso debe proporcionar protección a los
recursos y a los datos, evitando el uso no autorizado de los usuarios y
resolviendo conflictos en el caso de conflicto de recursos.
Detección y respuesta a errores.
Se pueden dar gran variedad de errores durante la ejecución de un sistema de
computación. Éstos incluyen errores de hardware internos y externos, tales
como un error de memoria, o un fallo en un dispositivo; y diferentes errores
software, tales como la división por cero, el intento de acceder a una posición
de memoria prohibida o la in- capacidad del sistema operativo para conceder
la solicitud de una aplicación. En cada caso, el sistema operativo debe
proporcionar una respuesta que elimine la condición de error, suponiendo el
menor impacto en las aplicaciones que están en ejecución.

Contabilidad.
Un buen sistema operativo recogerá estadísticas de uso de los diferentes
recursos y monitorizará parámetros de rendimiento tales como el tiempo de
respuesta. En cualquier sistema, esta información es útil para anticipar las
necesidades de mejoras futuras y para optimizar el sistema a fin de mejorar su
rendimiento. En un sistema multiusuario, esta información se puede utilizar
para facturar a los diferentes usuarios.

EL SISTEMA OPERATIVO COMO GESTOR DE RECURSOS

Un computador es un conjunto de recursos que se utilizan para el transporte,


almacenamiento y procesamiento de los datos, así como para llevar a cabo el
control de estas funciones. El sistema operativo se encarga de gestionar estos
recursos.
¿Se puede decir que es el sistema operativo quien controla el transporte,
almacenamiento y procesamiento de los datos? Desde un punto de vista, la
respuesta es afirmativa: gestionando los recursos del computador, el sistema
operativo tiene el control de las funciones básicas del mismo. Pero este control
se realiza de una forma curiosa. Normalmente, se habla de un mecanismo de
control como algo externo al dispositivo controlado, o al menos como algo que
constituye una parte separada o distinta de dicho dispositivo. (Por ejemplo, un
sistema de calefacción de una residencia se controla a través de un termostato,
que está separado de los aparatos de generación y distribución de calor.) Este
no es el caso del sistema operativo, que es un mecanismo de control inusual en
dos aspectos:
Las funciones del sistema operativo actúan de la misma forma que el resto del
software; es decir, se trata de un programa o conjunto de programas
ejecutados por el procesador.
El sistema operativo frecuentemente cede el control y depende del procesador
para volver a retomarlo.

FACILIDAD DE EVOLUCIÓN DE UN SISTEMA OPERATIVO

Un sistema operativo importante debe evolucionar en el tiempo por las


siguientes razones:

Actualizaciones de hardware más nuevos tipos de hardware.


Por ejemplo, las primeras versiones de los sistemas operativos UNIX e IBM
OS/2 se ejecutaban en máquinas sin hardware de paginación. Versiones más
recientes de estos sistemas operativos han cambiado esta faceta. Además, el
uso de terminales gráficos y en modo página en lugar de terminales de línea
también afecta al diseño de los sistemas operativos. Por ejemplo, un ter- minal
gráfico normalmente permite al usuario ver varias aplicaciones al mismo
tiempo a través del uso de «ventanas» en la pantalla. Esto requiere una gestión
más sofisticada por parte del sistema operativo.

Nuevos servicios.
En respuesta a la demanda del usuario o en respuesta a las necesidades de los
gestores de sistema, el sistema operativo debe ofrecer nuevos servicios. Por
ejemplo, si es difícil mantener un buen rendimiento con las herramientas
existentes, se pueden añadir al sistema operativo nuevas herramientas de
medida y control. Como segundo ejemplo, la mayoría de las aplicaciones
requieren el uso de ventanas en la pantalla. Esta característica requiere
actualizaciones importantes en el sistema operativo si éste no soporta
ventanas.
Resolución de fallos.
Cualquier sistema operativo tiene fallos. Estos fallos se descubren con el
transcurso del tiempo y se resuelven. Por supuesto, esto implica la introducción
de nuevos fallos.
La necesidad de cambiar regularmente un sistema operativo introduce ciertos
requisitos en su diseño. Un hecho obvio es que el sistema debe tener un diseño
modular, con interfaces entre los módulos claramente definidas, y que debe
estar bien documentado.

PRINCIPALES LOGROS
Los sistemas operativos se encuentran entre las piezas de software más
complejas jamás desarrolla- das. Esto refleja el reto de intentar resolver la
dificultad de alcanzar determinados objetivos, algunas veces conflictivos, de
conveniencia, eficiencia y capacidad de evolución. [DENN80a] propone cinco
principales avances teóricos en el desarrollo de los sistemas operativos:
• Procesos.
• Gestión de memoria.
• Protección y seguridad de la información.
• Planificación y gestión de los recursos.

PROCESOS

El concepto de proceso es fundamental en la estructura de los sistemas


operativos. Este término fue utilizado por primera vez por los diseñadores del
sistema Multics en los años 60. Es un término un poco más general que el de
trabajo. Se han dado muchas definiciones del término proceso, incluyendo:

• Un programa en ejecución.
• Una instancia de un programa ejecutándose en un computador.
• La entidad que se puede asignar o ejecutar en un procesador.
• Una unidad de actividad caracterizada por un solo hilo secuencial de
ejecución, un estado actual, y un conjunto de recursos del sistema
asociados.

También se puede pensar en un proceso como en una entidad que consiste en


un número de elementos. Los dos elementos esenciales serían el código de
programa (que puede compartirse con otros procesos que estén ejecutando el
mismo programa) y un conjunto de datos asociados a dicho código.
Supongamos que el procesador comienza a ejecutar este código de programa,
y que nos referiremos a esta entidad en ejecución como un proceso. En
cualquier instante puntual del tiempo, mientras el proceso está en ejecución,
este proceso se puede caracterizar por una serie de elementos, incluyendo los
siguientes:

Identificador.
Un identificador único asociado a este proceso, para distinguirlo del resto de
procesos.
Estado.

Si el proceso está actualmente corriendo, está en el estado en ejecución.

Prioridad.

Nivel de prioridad relativo al resto de procesos.

Contador de programa.
La dirección de la siguiente instrucción del programa que se ejecutará.

Punteros a memoria.
Incluye los punteros al código de programa y los datos asociados a dicho
proceso, además de cualquier bloque de memoria compartido con otros
procesos.
Datos de contexto.
Estos son datos que están presenten en los registros del procesador cuando el
proceso está corriendo.

Información de estado de E/S.


Incluye las peticiones de E/S pendientes, dispositivos de E/S (por ejemplo, una
unidad de cinta) asignados a dicho proceso, una lista de los ficheros en uso por
el mismo, etc.

Información de auditoría.
Puede incluir la cantidad de tiempo de procesador y de tiempo de reloj
utilizados, así como los límites de tiempo, registros contables, etc.

DESCRIPCIÓN DE PROCESOS

Un proceso UNIX es un conjunto de estructuras de datos, más bien complejas,


que proporcionan al sistema operativo toda la información necesaria para
manejar y activar los procesos.

El concepto fundamental dentro de los sistemas operativos modernos es el


concepto de proceso. La función principal de un sistema operativo es crear,
gestionar y finalizar los procesos. Cuando un proceso está activo, el sistema
operativo debe ver cómo reservar tiempo para su ejecución por parte del
procesador, coordinar sus actividades, gestionar las demandas que planteen
conflictos, y reservar recursos del sistema para estos procesos.
Para realizar estas funciones de gestión de procesos, el sistema operativo
mantiene una descripción de cada proceso o imagen de proceso, que incluye el
espacio de direcciones dentro del cual el proceso está ejecutando, y el bloque
de control de proceso. Este último contiene toda la información que el sistema
operativo necesita para gestionar el proceso, incluyendo el estado actual, la
reserva de recursos, la prioridad y otros datos de relevancia.
Durante su tiempo de vida, un proceso se mueve a lo largo de diferentes
estados. Los más importantes de estos estados son Listo, Ejecutando, y
Bloqueado. Un proceso Listo es un proceso que no está actualmente en
ejecución pero que está listo para ser ejecutado tan pronto el sistema
operativo lo active. Un proceso que está Ejecutando es aquel que está
actualmente en ejecución por el procesador. En los sistemas
multiprocesador, podrá haber varios procesos en este estado. Un proceso
Bloqueado está esperando a que se complete un determinado evento, como
una operación de E/S.
Un proceso en ejecución se interrumpe bien por una interrupción, que es un
evento que ocurre fuera de proceso y que es recogido por el procesador, o
por la ejecución de una llamada al sistema. En cualquier caso, el procesador
realiza un cambio de modo, que es la transferencia de control a unas rutinas
del sistema operativo. El sistema operativo, después de haber realiza- do el
trabajo necesario, puede continuar con el proceso interrumpido o puede
cambiar a otros procesos.

GESTIÓN DE MEMORIA

Un entorno de computación que permita programación modular y el uso


flexible de los datos puede ayudar a resolver mejor las necesidades de los
usuarios. Los gestores de sistema necesitan un control eficiente y ordenado de
la asignación de los recursos. Para satisfacer estos requisitos, el sistema
operativo tiene cinco responsabilidades principales de gestión de
almacenamiento:

Aislamiento de procesos.
El sistema operativo debe evitar que los procesos independientes interfieran
en la memoria de otro proceso, tanto datos como instrucciones.

Asignación y gestión automática.


Los programas deben tener una asignación dinámica de memoria por
demanda, en cualquier nivel de la jerarquía de memoria. La asignación debe ser
transparente al programador. Por tanto, el programador no debe preocuparse
de aspectos relacionados con limitaciones de memoria, y el sistema operativo
puede lograr incrementar la eficiencia, asignando memoria a los trabajos sólo
cuando se necesiten.

Soporte a la programación modular.


Los programadores deben ser capaces de definir módulos de programación y
crear, destruir, y alterar el tamaño de los módulos dinámicamente.
Protección y control de acceso.
La compartición de memoria, en cualquier nivel de la jerarquía de memoria,
permite que un programa direccione un espacio de memoria de otro proceso.
Esto es deseable cuando se necesita la compartición por parte de
determinadas aplicaciones. Otras veces, esta característica amenaza la
integridad de los programas e incluso del propio sistema operativo. El sistema
operativo debe permitir que varios usuarios puedan acceder de distintas
formas a porciones de memoria.
Almacenamiento a largo plazo.
Muchas aplicaciones requieren formas de almacenar la información durante
largos periodos de tiempo, después de que el computador se haya apagado.

PROTECCIÓN Y SEGURIDAD DE INFORMACIÓN

El crecimiento del uso de los sistemas de tiempo compartido y, más


recientemente, las redes de computadores han originado un incremento de la
preocupación por la protección de la información. La naturaleza de las
amenazas que conciernen a una organización variarán enormemente
dependiendo de las circunstancias. Sin embargo, hay algunas herramientas de
propósito general que se pueden utilizar en los computadores y sistemas
operativos para soportar una gran variedad de mecanismos de protección y
seguridad. En general, el principal problema es el control del acceso a los
sistemas de computación y a la información almacenada en ellos.

La mayoría del trabajo en seguridad y protección relacionado con los sistemas


operativos se pue- de agrupar de forma genérica en cuatro categorías:
• Disponibilidad. Relacionado con la protección del sistema frente a las
interrupciones.
• Confidencialidad. Asegura que los usuarios no puedan leer los datos sobre
los cuales no tienen autorización de acceso.
• Integridad de los datos. Protección de los datos frente a modificaciones no
autorizadas.
• Autenticidad. Relacionado con la verificación apropiada de la identidad de los
usuarios y la validez de los mensajes o los datos.
TIPOS DE PELIGROS

Los tipos de ataques contra la seguridad del sistema o de la red se clasifican


mejor considerando las funciones de un sistema informático como si se tratase
de un proveedor de información. En general, existe un flujo de información
desde una fuente, pudiéndose tratar de un fichero o una región de memoria, a
un destino, que puede ser otro fichero o puede ser el mismo usuario. Ese flujo
virtual se muestra en la Figura 16.2a. El resto de elementos de la figura
muestran las siguientes cuatro categorías generales de ataques:

Interrupción.
Se destruye un componente del sistema o se encuentra no disponible o
utilizable. Es un ataque centrado en la disponibilidad. Ejemplos de este tipo
incluyen la destrucción de una pieza del hardware, como un disco duro, la
interrupción del canal de comunicación o la eliminación del sistema gestor
ficheros.

Intercepción.
Una parte no autorizada consiga acceso a un componente. Esto es un ataque
dirigido hacia la confidencialidad. La parte no autorizada puede ser una
persona, un programa o un ordenador. Ejemplos de este estilo son la escucha
en un canal de comunicación para capturar datos y la copia ilícita de ficheros o
programas.
Modificación.
Un elemento no autorizado no sólo tiene acceso a un componente, sino que
también es capaz de modificarlo. Éste es un ataque que va dirigido hacia la
integridad. Los ejemplos incluyen cambiar valores de un fichero de datos, alterar
un programa para que exhiba un comportamiento diferente, y modificar el
contenido de los mensajes que se transmiten por la red.

Fabricación.
Un elemento no autorizado inserta objetos extraños en el sistema. Estos son
ataques contra la autenticación. Ejemplos de este tipo son la inserción de
mensajes externos en una red o la inclusión de un registró en un fichero.

Para finalizar, la integridad de datos es un aspecto clave en muchas


instalaciones. La modificación de los ficheros de datos puede llevar a una serie
de consecuencias que van desde problemas menores hasta desastrosos.

Líneas de comunicaciones y redes.

Un mecanismo útil para la clasificación de los ataques de seguridad a las redes


es en base a los términos de ataques pasivos y ataques activos. Un ataque
pasivo intenta aprender o hacer uso de la información del sistema, pero no
afecta a los recursos del mismo. Un ataque activo intenta alterar los recursos
del sistema o afectar a su operativa.
Los ataques pasivos son el espionaje o la monitorización de las transmisiones.
El objetivo del oponente es obtener información de qué se está transmitiendo.
Los dos tipos de ataques pasivos son la lectura de los contenidos de los
mensajes y el análisis de tráfico.
La lectura de los contenidos de los mensajes es fácil de comprender (Figura
16.3a). Una conversación telefónica, un mensaje de correo electrónico o la
transferencia de un fichero pueden contener información sensible y
confidencial. Sería deseable evitar que cualquier oponente tenga acceso a los
contenidos de estas transmisiones.
DESCRIPCIÓN GLOBAL DE MICROSOFT WINDOWS
HISTORIA

La historia de Windows comienza con un sistema operativo muy diferente,


desarrollado por Microsoft para el primer computador personal IBM y
conocido como MS-DOS o PC-DOS. La versión inicial, DOS 1.0 apareció en 1981.
Estaba compuesto por 4000 líneas de código fuente en ensamblador y
ejecutaba en 8 Kbytes de memoria, utilizando el microprocesador Intel 8086.
Cuando IBM desarrolló un computador personal basado en disco duro, el PC
XT, Microsoft desarrolló DOS 2.0, que salió al mercado en 1983. Este sistema
daba soporte al disco duro y proporcionaba jerarquía de directorios. Hasta ese
momento, un disco podía contener sólo un directorio con ficheros, soportando
un máximo de 64 ficheros. Mientras que esto era adecuado en la era de los
disquetes, era demasiado limitado para los discos duros, y la restricción de un
solo directorio era demasiado burda. Esta nueva versión permitía que los
directorios contuvieran tantos subdirectorios como ficheros. La nueva versión
también contenía un conjunto de mandatos más rico dentro del sistema
operativo, que proporcionaban funciones que eran realizadas como programas
externos con la versión 1. Entre las capacidades añadidas se encontraban
algunas características de los sistemas UNIX, como la redirección de E/S, que
consiste en la capacidad para modificar la entrada o salida de una determinada
aplicación, y la impresión en segundo plano. La porción de memoria residente
creció a 24 Kbytes.
Cuando IBM anunció el PC AT en 1984, Microsoft introdujo DOS 3.0. El sistema
AT contenía el procesador Intel 80286, que proporcionaba características de
direccionamiento extendido y protección de memoria. Estas no eran utilizadas
por DOS. Para que fuera compatible con versiones anteriores, el sistema
operativo simplemente utilizaba el 80286 como un «8086 rápido». El sistema
operativo sí daba soporte a un nuevo teclado y periféricos de disco duro. Incluso
así, los requisitos de memoria se incrementaron a 36 Kbytes. Hubo varias
actualizaciones notables de la versión 3.0. DOS 3.1, que apareció en 1984, daba
soporte a la conexión a través de la red para PC. El tamaño de la porción
residente no cambió; esto se logró incrementando la cantidad de sistema
operativo que podía ser intercambiado (swapped). DOS 3.3, que apareció en
1987, daba soporte a la nueva línea de máquinas IBM, las PS/2. De nuevo, esta
versión no se beneficiaba de las capacidades del procesador del PS/2,
proporcionadas por el 80286 y los chips de 32 bits 80386. En este punto, la
porción residente había alcanzado un mínimo de 46 Kbytes, incrementándose
esta cantidad si se seleccionaban ciertas extensiones opcionales.

En este momento, DOS estaba utilizando el entorno muy por debajo de sus
posibilidades. La introducción del 80486 y el chip Intel Pentium proporcionaban
características que simplemente no podía explotar un sencillo sistema DOS.
Mientras tanto, al comienzo de los años 80, Microsoft comenzó a desarrollar
una interfaz gráfica de usuario (GUI: Graphical User Interface) que sería
interpuesta entre el usuario y el sistema operativo DOS. El objetivo de
Microsoft era competir con Macintosh, cuyo sistema operativo era insuperable
por facilidad de uso. En 1990, Microsoft tenía una versión de la GUI, conocida
como Windows 3.0, que incorporaba algunas de las características más
amigables de Macintosh. Sin embargo, estaba todavía limitada por la necesidad
de ejecutar encima de DOS.

Microsoft intentó el desarrollo de un sistema operativo de nueva generación


con IBM para explotar la potencia de los nuevos microprocesadores, el cual
incorporaría las características de facilidad de uso de Windows, pero este
proyecto fue finalmente abortado. Después de este intento fallido, Microsoft
desarrolló un nuevo y propio sistema operativo desde cero, que denominó
Windows NT. Windows NT explota las capacidades de los microprocesadores
contemporáneos y proporciona multitarea en un entorno mono o multiusuario.
La primera versión de Windows NT (3.1) apareció en 1993, con la misma
interfaz gráfica que Windows 3.1, otro sistema operativo de Microsoft (el
sucesor de Windows 3.0). Sin embargo, NT 3.1 era un nuevo sistema operativo
de 32 bits con la capacidad de dar soporte a las aplicaciones Windows, a las
antiguas aplicaciones de DOS y a OS/2.
Después de varias versiones de NT 3.x, Microsoft produjo NT 4.0. NT 4.0 tiene
esencialmente la misma arquitectura interna que 3.x. El cambio externo más
notable es que NT 4.0 proporciona la misma interfaz de usuario que Windows
95. El cambio arquitectónico más importante es que varios componentes
gráficos que ejecutaban en modo usuario como parte del subsistema Win32 en
3.x se mueven al sistema ejecutivo de Windows NT, que ejecuta en modo
núcleo. El beneficio de este cambio consiste en la aceleración de estas
funciones importantes. La desventaja potencial es que estas funciones gráficas
ahora tienen acceso a servicios de bajo nivel del sistema, que pueden impactar
en la fiabilidad del sistema operativo.
En 2000, Microsoft introdujo la siguiente principal actualización, que se
materializó en el sistema Windows 2000. De nuevo, el sistema ejecutivo
subyacente y la arquitectura del núcleo son fundamentalmente los mismos que
NT 4.0, pero se han añadido nuevas características. El énfasis en Windows 2000
es la adición de servicios y funciones que dan soporte al procesamiento
distribuido. El elemento central de las nuevas características de Windows 2000
es Active Directory, que es un servicio de directorios distribuido capaz de
realizar una proyección entre nombres de objetos arbitrarios y cualquier
información sobre dichos objetos.
Un punto final general sobre Windows 2000 es la distinción entre Windows
2000 Server y el escritorio de Windows 2000. En esencia, el núcleo, la
arquitectura ejecutiva y los servicios son los mismos, pero Windows 2000 Server
incluye algunos servicios requeridos para su uso como servidor de red.

MULTITAREA MONOUSUARIO

Windows (desde Windows 2000 en adelante) es un ejemplo significativo de lo


que significa la nueva ola en los sistemas operativos de microcomputadores
(otros ejemplos son OS/2 y MacOS). El desarrollo de Windows fue dirigido por
la necesidad de explotar las capacidades de los microprocesadores actuales de
32 bits, que rivalizan con los mainframes y minicomputadores de hace unos
pocos años en velocidad, sofisticaciones de hardware y capacidad de memoria.
Una de las características más significativas de estos nuevos sistemas
operativos es que, aunque están todavía pensados para dar soporte a un único
usuario interactivo, se trata de sistemas operativos multitarea. Dos principales
desarrollos han disparado la necesidad de multitarea en computadores
personales, estaciones de trabajo y servidores. En primer lugar, con el
incremento de la velocidad y la capacidad de memoria de los
microprocesadores, junto al soporte para memoria virtual, las aplicaciones se
han vuelto más complejas e interrelacionadas. Por ejemplo, un usuario podría
desear utilizar un procesador de texto, un programa de dibujo, y una hoja de
cálculo simultáneamente para producir un documento. Sin multitarea, si un
usuario desea crear un dibujo y copiarlo en un documento, se re- quieren los
siguientes pasos:
1. Abrir el programa de dibujo.
2. Crear el dibujo y guardarlo en un fichero o en el portapapeles.
3. Cerrar el programa de dibujo.
4. Abrir el procesador de texto.
5. Insertar el dibujo en el sitio adecuado.

Si se desea cualquier cambio, el usuario debe cerrar el procesador de texto,


abrir el programa de dibujo, editar la imagen gráfica, guardarlo, cerrar el
programa de dibujo, abrir el procesador de texto e insertar la imagen
actualizada. Este proceso se vuelve tedioso muy rápidamente. A medida que
los servicios y capacidades disponibles para los usuarios se vuelven más
potentes y variados, el entorno monotarea se vuelve más burdo y menos
amigable. En un entorno multitarea, el usuario abre cada aplicación cuando la
necesita, y la deja abierta.

La información se puede mover entre las aplicaciones fácilmente. Cada


aplicación tiene una o más ventanas abiertas, y una interfaz gráfica con un
dispositivo puntero tal como un ratón permite al usuario navegar fácilmente en
este entorno.
Una segunda motivación para la multitarea es el aumento de la computación
cliente/servidor. En este paradigma, un computador personal o estación de
trabajo (cliente) y un sistema host (servidor) se utilizan de forma conjunta para
llevar a cabo una aplicación particular. Los dos están enlazados, y a cada uno se
le asigna aquella parte del trabajo que se adapta a sus capacidades. El
paradigma cliente/servidor se puede llevar a cabo en una red de área local
formada por computadores personales y servidores o por medio de un enlace
entre un sistema usuario y un gran host, como por ejemplo un mainframe. Una
aplicación puede implicar a uno o más computadores personales y uno o más
dispositivos de servidor. Para proporcionar la respuesta requerida, el sistema
operativo necesita dar soporte al hardware de comunicación en tiempo real,
los protocolos de comunicación asociados y las arquitecturas de transferencia
de datos, y a la vez dar soporte a la interacción de los usuarios.
ORGANIZACIÓN DEL SISTEMA OPERATIVO

Windows no tiene una arquitectura micronúcleo pura, sino lo que Microsoft


denomina arquitectura micronúcleo modificada. Como en el caso de las
arquitecturas micronúcleo puras, Windows es muy modular. Cada función del
sistema se gestiona mediante un único componente del sistema operativo. El
resto del sistema operativo y todas las aplicaciones acceden a dicha función a
través del componen- te responsable y utilizando una interfaz estándar. Sólo se
puede acceder a los datos del sistema claves mediante la función apropiada. En
principio, se puede borrar, actualizar o reemplazar cualquier módulo sin
reescribir el sistema completo o su interfaz de programa de aplicación (API). Sin
embargo, a diferencia de un sistema micronúcleo puro, Windows se configura
de forma que muchas de las funciones del sistema externas al micronúcleo
ejecutan en modo núcleo. La razón reside en el rendimiento. Los
desarrolladores de Windows descubrieron que utilizando la técnica
micronúcleo pura, muchas funciones fuera del micronúcleo requerían varios
intercambios entre procesos o hilos, cambios de modo y el uso de buffers de
memoria extra. Los componentes en modo núcleo son los siguientes:

Sistema ejecutivo.
Contiene los servicios básicos del sistema operativo, como la gestión de
memoria, la gestión de procesos e hilos, seguridad, E/S y comunicación entre
procesos.

Núcleo.
Está formado por los componentes más fundamentales del sistema operativo.
El núcleo gestiona la planificación de hilos, el intercambio de procesos, las
excepciones, el manejo de interrupciones y la sincronización de
multiprocesadores. A diferencia del resto del sistema ejecutivo y el nivel de
usuario, el código del núcleo no se ejecuta en hilos. Por tanto, es la única parte
del sistema operativo que no es expulsable o paginable.
Capa de abstracción de hardware (HAL: Hardware Abstraction Layer).
Realiza una proyección entre mandatos y respuestas hardware genéricos y
aquéllos que son propios de una plataforma específica. Aísla el sistema
operativo de las diferencias de hardware específicas de la plataforma. El HAL
hace que el bus de sistema, el controlador de acceso a memoria directa (DMA),
el controlador de interrupciones, los temporizadores de sistema y los módulos
de memoria de cada máquina parezcan los mismos al núcleo. También entrega
el soporte necesario para multiprocesamiento simétrico (SMP), explicado
anteriormente.
Controladores de dispositivo.
Incluye tanto sistemas de ficheros como controladores de dispositivos
hardware que traducen funciones de E/S de usuario en peticiones específicas a
dispositivos hardware de E/S.
Gestión de ventanas y sistemas gráficos.
Implementa las funciones de la interfaz gráfica de usuario (GUI), tales como la
gestión de ventanas, los controles de la interfaz de usuario y el dibujo.
El sistema ejecutivo de Windows incluye módulos para funciones del sistema
específicas y proporciona un API para software en modo usuario. A
continuación, se describen cada uno de estos módulos del sistema ejecutivo:

Gestor de E/S.
Proporciona un entorno a través del cual las aplicaciones pueden acceder a los
dispositivos de E/S. El gestor de E/S es responsable de enviar la petición al
controlador del dispositivo apropiado para un procesamiento posterior. El
gestor de E/S implementa todas las API de E/S de Windows y provee seguridad
y nombrado para dispositivos y sistemas de fiche- ros (utilizando el gestor de
objetos).

Gestor de cache.
Mejora el rendimiento de la E/S basada en ficheros, provocando que los datos
de disco referenciados recientemente residan en memoria principal para un
acceso rápido, y retardando las escrituras en disco a través del mantenimiento
de las actualizaciones en memoria durante un periodo corto de tiempo antes
de enviarlas a disco.
Gestor de objetos.
Crea, gestiona y borra los objetos del sistema ejecutivo de Windows y los tipos
de datos abstractos utilizados para representar recursos como procesos, hilos y
objetos de sincronización. Provee reglas uniformes para mantener el control, el
nombrado y la configuración de seguridad de los objetos. El gestor de objetos
también crea los manejadores de objetos, que están formados por información
de control de acceso y un puntero al objeto. Los objetos de Windows se
discuten posteriormente en esta sección.

Gestor de plug and play.


Determina qué controladores se necesitan para un determinado dispositivo y
carga dichos controladores.

Gestor de potencia.
Coordina la gestión de potencia entre varios dispositivos y se puede configurar
para reducir el consumo de potencia hibernando el procesador.

Monitor de referencia de seguridad.


Asegura la validación de acceso y las reglas de generación de auditoría. El modelo
orientado a objetos de Windows proporciona una visión de seguridad consistente
y uniforme, especificando las entidades fundamentales que constituyen el
sistema ejecutivo. Por tanto, Windows utiliza las mismas rutinas de validación de
acceso y las comprobaciones de auditoria para todos los objetos protegidos,
incluyendo ficheros, procesos, espacios de direcciones y dispositivos de E/S. La
seguridad de Windows se discute en el Capítulo 15.

Gestor de memoria virtual.


Proyecta direcciones virtuales del espacio de direcciones del proceso a las
páginas físicas de la memoria del computador.
Crea y borra los objetos y traza el comportamiento de los objetos proceso e
hilo.

Gestor de configuración.
Es responsable de implementar y gestionar el registro del sistema, que es el
repositorio para la configuración de varios parámetros a nivel de sistema global y
por usuario.
Las características que se describen a continuación se refieren a la versión
Profesional de Windows. La versión Server (Servidor) es también multitarea,
pero debe permitir el uso de múltiples usuarios. Da soporte a múltiples
conexiones locales de servidor y proporciona servicios compartidos que utilizan
múltiples usuarios en la red. Como un servidor Internet, Windows puede
permitir miles de conexiones web simultáneas.
En 2001, apareció la última versión de escritorio de Windows, conocida como
Windows XP. Se ofrecieron versiones de XP tanto de PC de hogar como de
estación de trabajo de negocio. También en 2001, apareció una versión de XP
de 64 bits. En el año 2003, Microsoft presentó una nueva versión de servidor,
conocido como Windows Server 2003. Existen versiones disponibles de 32 y 64
bits. Las versiones de 64 bits de XP y Server 2003 están diseñadas
específicamente para el hardware del Intel Itanium de 64 bits.

OBJETOS DE WINDOWS

Windows se apoya enormemente en los conceptos del diseño orientado a


objetos. Este enfoque facilita la compartición de recursos y datos entre los
procesos y la protección de recursos frente al acceso no autorizado. Entre los
conceptos clave del diseño orientado a objetos utilizados por Windows se
encuentran los siguientes:

Encapsulación.
Un objeto está compuesto por uno o más elementos de información,
denominados atributos y uno o más procedimientos que se podrían llevar a
cabo sobre esos datos, de- nominados servicios. La única forma de acceder a
los datos en un objeto es invocando uno de los servicios del objeto. Por tanto,
los datos de un objeto se pueden proteger fácilmente del uso no autorizado o
incorrecto (por ejemplo, intentando ejecutar una pieza de datos no
ejecutable).

Clases e instancias de objetos.


Una clase de objeto es una plantilla que lista los atributos y los servicios de un
objeto y define ciertas características de los objetos. El sistema operativo
puede crear instancias específicas de una clase de objetos cuando lo necesite.
Por ejemplo, hay una única clase de objeto de proceso y un objeto de proceso
por cada proceso actualmente activo. Este enfoque simplifica la creación y
gestión de los objetos.

Herencia.
Esta característica no es soportada a nivel de usuario sino por alguna extensión
dentro del sistema ejecutivo. Por ejemplo, los objetos directorio son ejemplos
de objeto contenedor. Una propiedad de un objeto contenedor es que los
objetos que contiene pueden heredar propiedades del contenedor mismo.
Como un ejemplo, supongamos que hay un directorio en el sistema de ficheros
que está comprimido. Entonces, cualquier fichero que se cree dentro del
contenedor directorio también estará comprimido.

Polimorfismo.
Internamente, Windows utiliza un conjunto común de funciones para
manipular objetos de cualquier tipo; ésta es una característica de
polimorfismo, tal y como se define en el Apéndice B. Sin embargo, Windows no
es completamente polimórfico, porque hay mu- chas API que son específicas
para tipos de objetos específicos.

Windows XP y Windows 2003.


Son sistemas operativos multitarea para computadores personales, estaciones
de trabajo y servidores. Al tratarse de un nuevo sistema operativo, incorpora
de una manera nítida muchos de los últimos desarrollos en la tecnología de
sistemas operativos. Además, Windows es uno de los primeros sistemas
operativos comerciales importantes que está estrechamente basado en
principios de diseño orientado a objetos. Este libro se ocupa de la tecnología
utilizada en las versiones más recientes de Windows, XP para estaciones de
trabajo y computadores personales, y 2003 para servidores.

SISTEMAS OPERATIVO UNIX


Es un sistema operativo multiusuario, originalmente destinado a
minicomputadores, pero implementado en un amplio rango de máquinas
desde poderosos microcomputadores a supercomputadores. Se incluyen dos
versiones de UNIX. UNIX SVR4 es un sistema muy usado que incorpora muchas
características avanzadas. Solaris es la versión comercial más utilizada de UNIX.
Incluye procesamiento multihilo y otras características que no se encuentran en
SVR4 ni en la mayoría de las otras versiones de UNIX.

HISTORIA
La historia de UNIX es un relato narrado con frecuencia y no se repetirá con
muchos detalles aquí. Por el contrario, aquí se realizará un breve resumen.

UNIX se desarrolló inicialmente en los laboratorios Bell y se hizo operacional


en un PDP-7 en 1970. Algunas de las personas relacionadas con los
laboratorios Bell también habían participa- do en el trabajo de tiempo
compartido desarrollado en el proyecto MAC del MIT. Este proyecto se
encargó primero del desarrollo de CTSS y después de Multics. Aunque es
habitual decir que el UNIX original fue una versión recortada de Multics, los
desarrolladores de UNIX realmente dije- ron estar más influenciados por CTSS
[RITC78]. No obstante, UNIX incorporó muchas ideas de Multics.

El trabajo de UNIX en los laboratorios Bell, y después en otras instituciones,


produjo un con- junto de versiones de UNIX. El primer hito más notable fue
portar el sistema UNIX de PDP-7 al PDP-11. Ésta fue la primera pista de que
UNIX sería un sistema operativo para todos los computa- dores. El siguiente
hito importante fue la reescritura de UNIX en el lenguaje de programación C.
Ésta era una estrategia sin precedentes en ese tiempo. Se pensaba que algo tan
complejo como un sistema operativo, que debe tratar eventos críticos en el
tiempo, debía escribirse exclusivamente en lenguaje ensamblador. La
implementación C demostró las ventajas de utilizar un lenguaje de alto nivel
para la mayoría o todo el código del sistema. Hoy, prácticamente todas las
implementaciones UNIX están escritas en C.
Estas primeras versiones de UNIX fueron populares dentro de los laboratorios
Bell. En 1974, el sistema UNIX se describió en una revista técnica por primera
vez [RITC74]. Esto despertó un gran interés por el sistema. Se proporcionaron
licencias de UNIX tanto a instituciones comerciales como a universidades. La
primera versión completamente disponible fuera de los laboratorios Bell fue la
Versión 6, en 1976. La siguiente versión, la Versión 7, aparecida en 1978, es la
antecesora de los sistemas UNIX más modernos. El sistema más importante no
vinculado con AT&T se desarrolló en la Universidad de California en Berkeley, y
se llamó UNIX BSD (Berkeley Software Distribution), ejecutándose primero en
PDP y después en máquinas VAX. AT&T continuó desarrollando y refinando el
sistema. En 1982, los laboratorios Bell combinaron diversas variantes AT&T de
UNIX en un único sistema, denominado comercialmente como UNIX System III.
Un gran número de características se añadieron posteriormente al sistema
operativo para producir UNIX System V.

SISTEMAS UNIX MODERNOS


Cuando UNIX evolucionó, un gran número de diferentes implementaciones
proliferó, cada una de las cuales proporcionó algunas características útiles. Fue
necesaria la producción de una nueva implementación que unificara muchas
de las importantes innovaciones, añadiera otras características de di- seño de
los sistemas operativos modernos, y produjera una arquitectura más modular.
La arquitectura mostrada en la Figura 2.16 muestra los aspectos típicos de un
núcleo UNIX moderno. Existe un pequeño núcleo de utilidades, escritas de
forma modular, que proporciona funciones y servicios necesarios para
procesos del sistema operativo. Cada uno de los círculos externos representa
funciones y una interfaz que podría implementarse de diferentes formas.
SOLARIS 9

Solaris es una versión UNIX de Sun basada en SVR4. La última versión es la 9, y


proporciona todas las características de SVR4 más un conjunto de
características avanzadas, como un núcleo multihilo, completamente expulsivo,
con soporte completo para SMP, y una interfaz orientada a objetos para los
sistemas de ficheros. Solaris es la implementación UNIX más utilizada y
comercialmente más exitosa.
Linux.
Es una versión de UNIX cuyo código fuente está disponible libremente, que es
muy utilizada actualmente.

HISTORIA

Linux comenzó como una variante UNIX para la arquitectura del PC IBM (Intel
80386). Linus Torvalds, un estudiante finlandés de informática, escribió la
versión inicial. Torvalds distribuyó por Internet una primera versión de Linux en
1991. Desde entonces, algunas personas, colaborando en Internet, han
contribuido al desarrollo de Linux, todo bajo el control de Torvalds. Debido a
que Linux es libre y el código fuente está disponible, se convirtió pronto en una
alternativa para otras estaciones de trabajo UNIX, tal como las ofrecidas por
Sun Microsystems e IBM. Hoy en día, Linux es un sistema UNIX completo que
ejecuta en todas esas plataformas y algunas más, incluyendo Intel Pentium e
Itanium, y el PowerPC de Motorota/IBM.

La clave del éxito de Linux ha sido la disponibilidad de los paquetes de software


libre bajo los auspicios de la Fundación de Software Libre (Free Software
Foundation, FSF). Esta fundación se centra en un software estable,
independiente de plataforma, con alta calidad, y soportado por la comunidad
de usuarios. El proyecto de GNU proporciona herramientas para
desarrolladores de software y la licencia pública GNU (GPL: GNU Public License)
es el sello de aprobación de FSF. Torvald utilizó herramientas GNU para el
desarrollo del núcleo, que fue posteriormente distribuido bajo la licencia GPL.
Por tanto, las distribuciones Linux que aparecen hoy en día son los productos
del proyecto GNU de FSF, los esfuerzos individuales de Torvalds y muchos
colaboradores a lo largo del mundo.
Además de su uso por muchos programadores individuales, Linux ha hecho
ahora una penetración significativa en el mundo corporativo. Esto no es sólo
debido al software libre, sino también a la calidad del núcleo de Linux. Muchos
programadores con talento han contribuido a la versión actual, dando lugar a
un producto técnicamente impresionante. Más aún, Linux es muy modular y
fácilmente configurable. Resulta óptimo para incrementar el rendimiento de
una variedad de plataformas hardware. Además, con el código fuente
disponible, los distribuidores pueden adaptar las aplicaciones y facilidades para
cumplir unos requisitos específicos. A lo largo de este libro, se proporcionarán
detalles internos del núcleo de Linux.

Procesador.
Controla el funcionamiento del computador y realiza sus funciones de procesa-
miento de datos. Cuando sólo hay un procesador, se denomina usualmente
unidad central de proceso.

Memoria principal.
Almacena datos y programas. Esta memoria es habitualmente volátil; es decir,
cuando se apaga el computador, se pierde su contenido. En contraste, el
contenido de la memoria del disco se mantiene incluso cuando se apaga el
computador. A la memoria principal se le denomina también memoria real o
memoria primaria.

Módulos de E/S.
Transfieren los datos entre el computador y su entorno externo. El entorno
externo está formado por diversos dispositivos, incluyendo dispositivos de
memoria secundaria (por ejemplo, discos), equipos de comunicaciones y
terminales.

Bus del sistema.


Proporciona comunicación entre los procesadores, la memoria principal y los
módulos de E/S.
Un procesador incluye un conjunto de registros que proporcionan un tipo de
memoria que es más rá- pida y de menor capacidad que la memoria principal.
Los registros del procesador sirven para dos funciones:

Registros visibles para el usuario.


Permiten al programador en lenguaje máquina o en ensamblador minimizar las
referencias a memoria principal optimizando el uso de registros. Para lenguajes
de alto nivel, un compilador que realice optimización intentará tomar
decisiones inteligentes sobre qué variables se asignan a registros y cuáles a
posiciones de memoria principal. Algunos lenguajes de alto nivel, tales como C,
permiten al programador sugerir al compilador qué variables deberían
almacenarse en registros.

Registros de control y estado.


Usados por el procesador para controlar su operación y por rutinas
privilegiadas del sistema operativo para controlar la ejecución de programas.

Componentes del sistema operativo

El sistema operativo está compuesto por un


conjunto de paquetes de software que pueden
utilizarse para gestionar las interacciones con
el hardware. Estos elementos se incluyen por lo
general en este conjunto de software:

 El núcleo, que representa las funciones básicas del sistema operativo, como,
por ejemplo, la gestión de la memoria, de los procesos, de los archivos, de
las entradas/salidas principales y de las funciones de comunicación.
 El intérprete de comandos, que posibilita la comunicación con el sistema
operativo a través de un lenguaje de control, permitiendo al usuario
controlar los periféricos sin conocer las características del hardware
utilizado, la gestión de las direcciones físicas, etcétera.
 El sistema de archivos, que permite que los archivos se registren en una
estructura arbórea.

Funciones de los Sistemas Operativos


 Administración del procesador: el sistema operativo administra la
distribución del procesador entre los distintos programas por medio de
un algoritmo de programación. El tipo de programador depende
completamente del sistema operativo, según el objetivo deseado.
 Gestión de la memoria de acceso aleatorio: el sistema operativo se encarga
de gestionar el espacio de memoria asignado para cada aplicación y para
cada usuario, si resulta pertinente. Cuando la memoria física es insuficiente,
el sistema operativo puede crear una zona de memoria en el disco duro,
denominada "memoria virtual". La memoria virtual permite ejecutar
aplicaciones que requieren una memoria superior a la Memoria
RAM disponible en el sistema. Sin embargo, esta memoria es mucho más
lenta.
 Gestión de entradas/salidas: el sistema operativo permite unificar y controlar
el acceso de los programas a los recursos materiales a través de
los drivers (también conocidos como administradores periféricos o de
entrada/salida).
 Gestión de ejecución de aplicaciones: el sistema operativo se encarga de que
las aplicaciones se ejecuten sin problemas asignándoles los recursos que
éstas necesitan para funcionar. Esto significa que si una aplicación no
responde correctamente puede "sucumbir".
 Administración de autorizaciones: el sistema operativo se encarga de la
seguridad en relación con la ejecución de programas garantizando que los
recursos sean utilizados sólo por programas y usuarios que posean las
autorizaciones correspondientes.

 Gestión de archivos: el sistema operativo gestiona la lectura y escritura en


el sistema de archivos, y las autorizaciones de acceso a archivos de
aplicaciones y usuarios. Los archivos son colecciones de información
relacionada, definidas por sus creadores. Estos almacenan programas (en
código fuente y objeto) y datos tales como imágenes, textos, información
de bases de datos, etc.

El SO es responsable de:

1. Construir, eliminar archivos y directorios.


2. Ofrecer funciones para manipular archivos y directorios.
3. Establecer la correspondencia entre archivos y unidades de
almacenamiento.
4. Realizar copias de seguridad de archivos.
 Gestión de la información: el sistema operativo proporciona cierta cantidad
de indicadores que pueden utilizarse para diagnosticar el funcionamiento
correcto del equipo.
 Gestión de procesos Un proceso es simplemente, un programa en ejecución
que necesita recursos para realizar su tarea: tiempo de CPU, memoria,
archivos y dispositivos de E/S. El SO es el responsable de lo siguiente:

1. Crear y destruir procesos.


2. Parar y reanudar procesos.
3. Ofrecer mecanismos para que los procesos puedan comunicarse y se
sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener


una lista de tareas a realizar y a estas fijarles prioridades: alta, media, baja, por
ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y
cuando se terminen seguir con las de prioridad media y después las de baja. Una
vez realizada la tarea se tacha.

Esto puede traer un problema que las tareas de baja prioridad pueden que
nunca lleguen a ejecutarse y permanezcan en la lista para siempre. Para
solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.

Características de los Sistemas Operativos


 Conveniencia. Un Sistema Operativo hace más conveniente el uso de una
computadora.
 Eficiencia. Un Sistema Operativo permite que los recursos de la computadora
se usen de la manera más eficiente posible.
 Habilidad para evolucionar. Un Sistema Operativo deberá construirse de
manera que permita el desarrollo, prueba o introducción efectiva de nuevas
funciones del sistema sin interferir con el servicio.
 Encargado de administrar el hardware. El Sistema Operativo se encarga de
manejar de una mejor manera los recursos de la computadora en cuanto a
hardware se refiere, esto es, asignar a cada proceso una parte del
procesador para poder compartir los recursos.
 Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo
se debe encargar de comunicar a los dispositivos periféricos, cuando el
usuario así lo requiera.
 Organizar datos para acceso rápido y seguro.
 Manejar las comunicaciones en red. El Sistema Operativo permite al usuario
manejar con alta facilidad todo lo referente a la instalación y uso de las redes
de computadoras.
 Procesamiento por bytes de flujo a través del bus de datos.
 Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al
usuario el acceso y manejo de los dispositivos de Entrada/Salida de la
computadora.
 Técnicas de recuperación de errores.
 Evita que otros usuarios interfieran. El Sistema Operativo evita que los
usuarios se bloqueen entre ellos, informándoles si esa aplicación está siendo
ocupada por otro usuario.
 Generación de estadísticas.
 Permite que se puedan compartir el hardware y los datos entre los usuarios.
Clasificación de los Sistemas Operativos

Por el modo de administración de tareas.

Monotarea
Este funciona para la realización y ejecución de una sola tarea a la vez, de modo
tal que, si un programa o bien aplicación está en ejecución, no puede ser abierto
otro, ya que se interrumpiría los procesos. Solamente permite ejecutar un
proceso (aparte de los procesos del propio SO) en un momento dado. Una vez
que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización
y/o interrupción.

Multitarea
Es aquel que se produce cuando se puede ejecutar una o más aplicaciones, y
llevar a cabo varios programas, sin que el proceso de uno interfiera con el otro.
Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO
normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de
forma alternada a los procesos que los solicitan, de manera que el usuario
percibe que todos funcionan a la vez, de forma concurrente.

Modo de administración de usuarios.


Monousuario
Como su nombre bien lo indica son aquellos que permiten el uso del ordenador
de parte de un solo usuario, facilitando solo el desarrollo de las actividades que
este tiene a bien ejecutar. Sólo permite ejecutar los programas de un usuario al
mismo tiempo.
Multiusuario:
Son aquellos que permiten el desarrollo de varias actividades por parte de
diversos usuarios, es decir, se facilita el desarrollo de distintas aplicaciones por
parte de dos o más usuarios. Permite que varios usuarios ejecuten
simultáneamente sus programas, accediendo a la vez a los recursos de la
computadora. Normalmente estos sistemas operativos utilizan métodos de
protección de datos, de manera que un programa no pueda usar o cambiar los
datos de otro usuario.

Forma de manejo de recursos.

Centralizado.

Es aquel sistema operativo que facilita el desarrollo de las actividades en un solo


ordenador, siendo esto solamente factible en ordenadores simples y con un solo
sistema de aplicación de modo tal que este puede solo desarrollar programas en
un equipo determinado.

Descentralizado.

Es aquello sistema operativo que se realiza en diversos equipos o bien


ordenadores, estos por lo general se revisten en centrales operadoras, es decir,
un solo equipo mantiene el programa, pero por medio de extensiones este
puede ser manejado en otros dispositivos.
Sistemas operativos por lotes
Los sistemas operativos por lotes requieren que la información esté reunida en
bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son
procesados en el orden de admisión, según el modelo de "primero en llegar
primero en ser atendido". En estos sistemas la memoria se divide en dos zonas.
Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar
programas transitorios para su ejecución. Cuando termina la ejecución de un
programa se carga un nuevo programa en la misma zona de memoria.

Sistemas operativos multiprogramación


Los sistemas de multiprogramación son capaces de soportar dos o más procesos
concurrentes múltiples, permiten que residan al mismo tiempo en la memoria
primaria las instrucciones y los datos procedentes de dos o más procesos. Estos
sistemas implican la operación de multiproceso, para el manejo de la
información. Se caracterizan principalmente por un gran número de programas
activos simultáneamente que compiten por los recursos del sistema, como el
procesador, la memoria, y los "dispositivos de E/S". Estos sistemas monitorean
el estado de todos los programas activos y recursos del sistema.

Sistemas operativos multiusuario


Los sistemas operativos multiusuario permiten acceder simultáneamente a un
sistema de computadoras a través de dos o más terminales. Este tipo de sistema
operativo es fundamental en el manejo de redes de computadoras actualmente.
Sistemas operativos de tiempo compartido
Los sistemas operativos de tiempo compartido tratan de proporcionar un
reparto equitativo de los recursos comunes para dar la impresión a los usuarios
de que poseen una computadora independiente. En estos sistemas el
administrador de memoria proporciona aislamiento y protección de los
programas, ya que generalmente no tienen necesidad de comunicarse entre
ellos. El control de E/S se encarga de proporcionar o retirar la asignación a los
dispositivos de forma que se preserve la integridad del sistema y se proporcione
servicio a todos los usuarios. El administrador de archivos proporciona
protección y control en el acceso de la información, dada la posibilidad de
concurrencia y conflictos al tratar de acceder a los archivos.

Sistemas operativos de tiempo real


Estos sistemas tienen como objetivo proporcionar tiempos más rápidos de
respuesta, procesar la información sin tiempos muertos. En estos sistemas el
administrador de memoria es relativamente menos solicitado debido a que
muchos procesos residen permanentemente en memoria. El administrador de
archivos se encuentra normalmente en grandes sistemas de tiempo real y su
objetivo principal es manejar la velocidad de acceso, más que la utilización eficaz
del almacenamiento secundario.

También podría gustarte