Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definiciones SO 1
Definiciones SO 1
Previo
Definiciones
Stallin (2007) señala que un sistema operativo (SO) es un programa (conjunto de programas) que
controla la ejecución de aplicaciones y programas que actúa como interfaz entre las aplicaciones
y el hardware del computador, sus objetivos son:
Facilidad de uso
Eficiencia
Capacidad para evolucionar
Definición de S.O
Si tres programas que se ejecutan en alguna computadora tratarán de imprimir sus salidas al
mismo tiempo en la misma impresora. Si no se ordena tal situación, representaría un problema
porque probablemente habría mezcla de líneas de los tres programas.
Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos
electrónicos sin necesidad de estar conectados a una computadora y que utilicen
microprocesadores para funcionar, debido a que gracias a estos se puede entender la máquina y
que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios y
otros).
El sistema operativo funciona como intermediario para que el usuario pueda comunicarse con el
hardware y así el sistema pueda proporcionar un ambiente en donde el usuario pueda ejecutar
programas. Esta relación hace que el sistema operativo y el hardware funcionen de manera
eficiente. Un sistema operativo forma parte de un sistema de computación y este se divide en
cuatro partes:
El hardware
El SO
Los programas de aplicación
Los usuarios
Características:
Hace más conveniente el uso de una computadora.
Permite que los recursos de la computadora se usen de manera correcta y eficiente.
Evoluciona hacia nuevas funciones.
Administra el hardware.
Se comunica con los periféricos cuando el usuario así lo requiera. Maneja
comunicaciones en red.
Facilita el manejo de dispositivos de entrada y salida.
Permite el compartimiento de la información (datos) y hardware entre los usuarios.
Funciones de los S. O.
Asignación de tiempo de CPU:
o Planificar las diversas actividades.
Control de recursos:
o Asignar recursos de forma racional. Ejemplo: División de la memoria del
computador entre los programas, controlar colas de E/S.
Control de entrada/salida:
o Gestionar los datos desde y hacia los periféricos.
Control de los errores y protección:
o Informar sobre las situaciones anómalas
Interfaz con el usuario:
o Facilita el uso.
Facilidades contables:
o Cálculo de costes de uso de CPU.
Sistema Operativo como Administrador de Recursos
Un sistema informático tiene muchos recursos que pueden ser necesarios para solucionar un
problema: Tiempo de CPU, espacio de memoria, espacio de almacenamiento de archivos,
dispositivos de E/S por nombrar algunos. Al enfrentarse a potenciales conflictivas solicitudes
de recursos, el SO debe decidir cómo asignarlos a programas y usuarios específicos, de modo
que la computadora pueda operar en forma eficiente y equitativa.
A continuación se mencionan algunos de esos recursos:
Procesador
Memoria
Lo ideal sería que fuera extremadamente rápida, con tamaño de sobra y de costo
insignificante. Actualmente esto no ocurre.
La memoria se divide en niveles de almacenamiento que van desde la Cache, RAM y
Secundaria, entre otras. Dependiendo de cuál de ellas sea, la relación capacidad de
almacenamiento y velocidad serán contrarias. Significa esto que la caché es más rápida, pero
la capacidad de almacenamiento es baja.
Ocurre lo contrario si se refiere a disco. De ellas interesa en este tema la memoria principal.
En memoria serán ubicados procesos para su próxima ejecución, Existen estrategias para
traer, colocar y reemplazar un proceso o partes de él.
Entrada y Salida
Tiene dos partes (la controladora y el dispositivo en sí). La controladora es un chip o conjunto
de chips insertos en la tarjeta madre que controla físicamente al dispositivo. Las operaciones
de E/S pueden ejecutarse de esta manera:
Un programa de usuario emite una llamada al sistema, que el kernel traduce en una llamada
de procedimiento al controlador de dispositivo apropiado.
Entonces el controlador de dispositivo inicia la E/S y entra en un ciclo corto que pregunta
continuamente al dispositivo para ver si ya terminó. Cuando termina la operación de entrada
y salida, el controlador de dispositivo coloca los datos donde se necesitan y regresa.
Conceptos claves que afectan el diseño de un sistema operativo
Interrupciones
Son un método del que disponen los dispositivos e incluso los procesos para hacer notar a la
unidad central de procesamiento o CPU la aparición de alguna circunstancia que requiera su
intervención. De este modo, los dispositivos pueden provocar que el procesador deje por el
momento la tarea que estaba realizando y atienda la interrupción. Una vez atendida, seguirá
con su labor anterior.
Buffering
Un área de memoria principal donde se almacenan datos producto de operaciones de entrada y
salida.
Reloj
Dispositivo para evitar el monopolio del CPU.
Spooling
Un dispositivo de alta velocidad se interpone entre un programa en ejecución y un dispositivo de
baja velocidad. El propósito es compartir un recurso, por ejemplo una impresora. Si la impresora
está ocupada, se almacenan los siguientes datos a imprimir en el almacenamiento rápido
mientras se desocupa la impresora.
Estado problema / Estado supervisor
Se refiere al procesador:
o Estado problema cuando el CPU ejecuta un programa del usuario.
o Estado supervisor cuando ejecuta instrucciones que forman parte del SO.
Emulación
Es una técnica bajo la cual una máquina se comporta como si fuera otra.
Relocalización
Se refiere a que las direcciones lógicas no son las mismas direcciones físicas, por lo tanto se
relocalizan las mismas, por ejemplo para la ejecución.
Reentrancia
Una sola copia de un programa puede ser simultáneamente usada por varios usuarios.
Principios en el desarrollo de sistemas operativos futuros
Existen cuatro principios dominantes que deben regir en el diseño de sistemas operativos futuros
1. Abstracción
El principio de la abstracción es que un nivel del ambiente de software no debe necesitar "saber"
los detalles sobre la implementación en otros niveles. Por ejemplo, un programador no debe
requerir saber qué clase de procesador será usado cuando se ejecute su programa, y un usuario
de correo-electrónico no debe requerir de conocimientos de los protocolos de red.
2. Robustez y gestión de errores
Los sistemas operativos futuros deben ser extremadamente robustos. Sus metas:
Ninguna acción del usuario debe hacer que el sistema comporte en una extraña o ilógica
manera
Debe ser imposible que cualquier programa interrumpa el funcionamiento de otros
programas, o de la máquina en su totalidad. Sin importar las acciones y las decisiones del
usuario y del programador, la computadora nunca debe "colapsarse”. Además, cualquier
acontecimiento inesperado se debe manejar de una manera práctica. Los problemas que
el sistema operativo no puede solucionar se deben señalar al usuario de una manera no-
secreta (tales como un "cuadro de diálogo"), y se deben explicar de una manera no técnica
(utilizar un lenguaje dependiendo del módulo de programación).
El sistema debe enumerar claramente las opciones de las cuales el usuario debe elegir.
3. Estandarización
Actualmente, hay numerosos sistemas operativos y sistemas de hardware que se comportan de
varias maneras. Por lo tanto, la comunicación entre las máquinas de diferente arquitectura es
difícil, y esta situación es confusa para cualquier usuario que procure cambiarse de una
plataforma a otra. Esta confusión da lugar a un costo significativo debido a la capacitación y al
tiempo perdido durante la transición y fase de aprendizaje.
Un sistema operativo bien diseñado debe ser estandardizado de una manera tal que se adapte y
siga siendo útil indefinidamente. Debe crecer en a la par con la tecnología de cómputo, la
visualización, y tecnologías de interacción, y preferencias del usuario. La naturaleza modular
del sistema operativo del mañana será tal que piezas del sistema serán continuamente
modificadas y puestas al día reflejar estos cambios. Para que estas características sean posibles,
el sistema requerirá:
un conjunto muy bien definido de los estándares públicos disponibles (para la
comunicación entre las capas y los objetos).
que este conjunto de estándares se desarrolle con un cierto plazo de tiempo, pero que
siga siendo claro y conciso
que los estándares no cambien tan rápidamente como para causar problemas de
compatibilidad o altos costos de cambio de hardware.
4. Diseño para facilidad de empleo y desarrollo de software
La mayoría de los sistemas operativos actuales fueron diseñados para ser fáciles de poner en
ejecución. En contraste, los sistemas operativos de mañana serán diseñados para el uso fácil y el
desarrollo fácil. El diseño será hecho con pocas disminuciones en cuanto a su facilidad de
implementación con excepción de su modularidad y estandardización inherentes. Debido a estos
buenos principios del diseño, el sistema operativo del mañana no será difícilmente de
implementar. Estas mismas cualidades facilitarán el trabajo de los programadores también, en
cuanto a la mayoría de los proyectos de desarrollo necesitarán solamente ensamblar objetos de
alto nivel. Esos módulos que deben escribir para sí mismos serán reutilizables y fácilmente
adaptables a las necesidades de cada programador.
Perspectivas de los Sistemas Operativos en las Empresas fabricantes de Hardware y Software
Desde los primeros días de las computadoras modernas, la tecnología del hardware ha
progresado lejos más rápidamente que el software que la acompaña. Por ejemplo, existen
computadoras que poseen un hardware con un funcionamiento veloz e increíble, pero el
software (Sistema Operativo) que estas máquinas poseen es tan pobre que son extremadamente
difíciles de programar. Debido al estado inmaduro de estos sistemas operativos, estas
computadoras funcionan solamente en una fracción pequeña de su velocidad máxima mientras
que trabajan bajo cargas de trabajo típicas.
Es por lo anterior que la industria del software debe ahora dedicar más tiempo y energía al
desarrollo de este. Una vez que la tecnología del software alcance el nivel de la tecnología del
hardware, los sistemas serán no sólo más de gran alcance y prácticos, sino que utilizarán sus
recursos de hardware mucho más eficientemente.
Con la llegada de los nuevos Sistemas Operativos, el hardware se aprovechará al máximo y se
reducirá esa brecha tan grande de rapidez que existe entre el hardware y el software que lo
controla. Con estos Sistemas Operativos se llegará a concretar o consolidar lo que se llama la
quinta generación de computadoras, la cual pretende multiplicar la velocidad, disponer
procesamientos paralelos, diseñar una arquitectura de hardware-software muy superior y utilizar
el lenguaje natural.
La renovación que aportarán los sistemas operativos es múltiple. Ya no viene determinada
únicamente por la introducción de cambios material o de hardware, sino por la combinación de
novedades en el material y en la programación.
El tipo de trabajo propio que realizarán el hardware y software de la quinta generación no solo
en el tratamiento de datos, sino en la adquisición de información y, a partir de los materiales y
estructuras de que dispone, en la elaboración de conocimientos, la elaboración inteligente del
saber (aprendizaje constructivo). Se anuncia el aprovechamiento de la computadora para
adquirir conocimientos artificialmente, a través de las máquinas. A partir de esto, estas ya no
solo aportarán fuerza o habilidad, sino que también proveerán al hombre de un conocimiento del
mundo.
Una buena parte de las investigaciones actuales sobre el kernel o núcleo se concentra construir
sistemas operativos extensibles, lo que significa permitir a los usuarios añadir su propio código al
kernel. Una reflexión sobre esto último es “garantizar la seguridad al permitir extensiones”.