Https:/firebasestorage Googleapis Com/v0/b/oymaslmsfiles Appspot Com/o
Https:/firebasestorage Googleapis Com/v0/b/oymaslmsfiles Appspot Com/o
Https:/firebasestorage Googleapis Com/v0/b/oymaslmsfiles Appspot Com/o
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).
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.
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.
Facilidad de uso.
Eficiencia.
Un sistema operativo permite que los recursos de un sistema de computación
se puedan utilizar de una manera eficiente.
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 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.
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
• 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.
Identificador.
Un identificador único asociado a este proceso, para distinguirlo del resto de
procesos.
Estado.
Prioridad.
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 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
GESTIÓN DE MEMORIA
Aislamiento de procesos.
El sistema operativo debe evitar que los procesos independientes interfieran
en la memoria de otro proceso, tanto datos como instrucciones.
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.
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.
MULTITAREA MONOUSUARIO
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 potencia.
Coordina la gestión de potencia entre varios dispositivos y se puede configurar
para reducir el consumo de potencia hibernando el procesador.
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
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).
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.
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.
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.
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.
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.
El SO es responsable de:
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.
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.
Centralizado.
Descentralizado.