Documente Academic
Documente Profesional
Documente Cultură
3. Monotareas: Permite una tarea a la vez por usuario. Aunque hallar más de
un usuario a la misma vez solo permitirá una tarea por usuario.
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial Universidad
de Medellín.
Si bien el sistema brinda la ilusión de que muchos procesos se están ejecutando al mismo tiem
parte de ellos típicamente está esperando para continuar su ejecución —en un momento deter
puede estar ejecutando sus instrucciones un número de procesos igual o menor al número de p
que tenga el sistema.
Estados de un proceso
Un proceso, a lo largo de su vida, alterna entre diferentes estados de ejecución. Éstos son:
Listo Está listo para iniciar o continuar su ejecución pero el sistema no le ha asignado un procesa
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial Universidad
de Medellín.
En ejecución. El proceso está siendo ejecutado en este momento. Sus instrucciones están siendo
en algún procesador.
Bloqueado. En espera de algún evento para poder continuar su ejecución (aun si hubiera un
disponible, no podría avanzar).
Zombie. El proceso ha finalizado su ejecución, pero el sistema operativo debe realizar ciertas ope
limpieza para poder eliminarlo de la lista.
Terminado. El proceso terminó de ejecutarse; sus estructuras están a la espera de ser limpiadas p
operativo.
1.3. Virtualización
Introducción
La virtualización no es un concepto nuevo. Sin embargo, tras largos años de estar
relegado a un segundo plano, en la actualidad se torna fundamental en referencia
a los sistemas operativos, particularmente en papel de servidores. Este tema se
abordará de momento desde un punto de vista más bien descriptivo, y
posteriormente se profundizará en algunos de sus asepectos.
En primer término, es importante aclarar que el concepto de virtualización no se
refiere a una única tecnología o metodología, es un término que agrupa a muy
distintas tecnologías que hay –de diversas formas– desde hace décadas. Cada
una de ellas tiene su lugar, con diferentes usos y propósitos, algunos de los cuales
se usan de forma transparente para el usuario promedio.
Del mismo modo, aunque se abordarán diversas tecnologías que pueden
clasificarse como virtualización, la línea divisoria entre cada una de ellas no
siempre es clara. Una implementación específica puede caer en más de una
categoría, o puede ir migrando naturalmente de un tipo hacia otro.
En escala general, virtualizar consiste en proveer algo que no está ahí, aunque
parezca estarlo. Más específicamente, presentar a un sistema elementos que se
comporten de la misma forma que un componente físico (hardware), sin que exista
en realidad —un acto de ilusionismo o de magia, en el cual se busca presentar el
elemento de forma tan convincente que la ilusión se mantenga tanto como sea
posible.
La naturaleza de dichos elementos, y el cómo se implementan, dependen del tipo
de virtualización.
Para casi todos los casos que se presentan, se emplearán los siguientes términos:
Emulación
La técnica de virtualización más sencilla, y que hace más tiempo tienen las
computadoras personales, es la emulación. Emular consiste en implementar en
software algo que se presente como el hardware de un sistema de cómputo
completo, típicamente de una arquitectura hardware distinta a la del anfitrión (la
arquitectura nativa).2 El emulador puede ser visto (de una forma tremendamente
simplificada) como una lista de equivalencias, de cada una de las instrucciones
en la arquitectura huésped a la arquitectura del sistema anfitrión.
Vale la pena recalcar que una emulación no se limita con traducir del lenguaje y
la estructura de un procesador a otro para que una computadora pueda ser
utilizada, requiere de una serie de chips de apoyo, desde los controladores de
cada uno de los buses hasta los periféricos básicos (teclado, video). Casi todas
las emulaciones incluirán un paso más allá: los periféricos mismos (discos,
interfaces de red, puertos). Todo esto tiene que ser implementado por el emulador.
Ahora bien, ¿qué pasa cuando hay dos arquitecturas de cómputo que emplean el
mismo procesador? Este caso fue relativamente común en la década de los
ochenta y noventa; si bien en general las computadoras de 8 bits no tenían el
poder de cómputo necesario para implementar la emulación de arquitecturas
similares, al aparecer tres líneas de computadoras basadas en el CPU Motorola
68000 (Apple Macintosh, Atari ST y Commodore Amiga), diferenciadas
principalmente por sus chipsets, aparecieron emuladores que permitían ejecutar
programas de una línea en la otra, prácticamente a la misma velocidad que en el
sistema nativo.
Hoy en día, la emulación se emplea para hacer desarrollos cruzados, más que
para emplear software ya escrito y compilado. La mayor parte de la emulación
tradicional se emplea para el desarrollo de software. Hoy en día, la mayor parte
de las computadoras vendidas son sistemas embebidos o dispositivos móviles,
que hacen imposible (o, por lo menos, muy difícil) desarrollar software
directamente en ellos. Los programadores desarrollan en equipos de escritorio,
ejecutan entornos de prueba en emuladores del equipo destino. A pesar del costo
computacional de realizar la emulación, la diferencia de velocidad entre los equipo
de escritorio de gama alta y los embebidos permiten que frecuentemente la
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial Universidad
de Medellín.
velocidad del emulador sea muy similar –incluso superior– a la del hardware
emulado.
Uno de los modelos de esta familia fue la S-360-67, con la característica distintiva
de ser la única de la serie 360 en ofrecer una unidad de manejo de memoria
(MMU), con lo cual permitía la reubicación de programas en memoria. Esto, sin
embargo, creaba un problema: el software desarrollado para los equipos más
pequeños de la familia estaba creado bajo un paradigma de usuario único, y si
bien podría ser ejecutado en este modelo, eso llevaría a un desperdicio de
recursos (dado que el modelo 67 tenía todo lo necesario para operar en modo
multitarea).
Aún después de la vida útil de la serie 360 original, IBM mantuvo compatibilidad
con este modelo hacia la serie 370, e incluso hoy, 50 años más tarde, se
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial Universidad
de Medellín.
encuentra aún como z/VM z/VM en la línea de Sistemas z. Vale la pena mencionar
que tanto CP como CMS fueron distribuidos desde el principio de forma
consistente con lo que en la actualidad se conoce como software libre: IBM los
distribuía en fuentes, con permiso de modificación y redistribución, y sus
diferentes usuarios fueron enviando las mejoras que realizaban de vuelta a IBM,
de modo que hoy incorpora el trabajo de 50 años de desarrolladores.
Para virtualización
Vale la pena reiterar en este punto: los sistemas operativos huésped bajo un
entorno para virtualizado saben que no están ejecutando sobre hardware real, por
lo que en vez de enviar las instrucciones que controlen al hardware, envían
llamadas al sistema a su hipervisor. Hasta cierto punto, el proceso de adecuación
de un sistema para que permita ser para virtualizado puede ser equivalente a
adecuar al sistema operativo para que ejecute en una arquitectura nueva muy
parecida a la del hardware real, sí, pero con diferencias fundamentales en
aspectos profundos.
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial Universidad
de Medellín.
Paravirtualización de dispositivos
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial Universidad
de Medellín.
Ortiz, H.J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Sello Editorial
Universidad de Medellín; 22/Noviembre/016 (Consultado el 38/Agosto/2018); Disponible
en; https://sites.google.com/site/isctecvilla/home