Professional Documents
Culture Documents
Presentación de unidad
La acción más pequeña es mejor que la intención más grande.
Objetivo de unidad
Identificar los conceptos básicos de un sistema operativo con la intención de ubicar sus
principales fundamentos.
Dado que un sistema operativo es un software grande y complejo, debe crearse pieza por
pieza. Cada una de estas piezas debe ser una parte perfectamente perfilada del sistema,
estando sus entradas, salidas y funciones cuidadosamente definidas. (Silberschatz, Galvin,
& Gagne, 2006,
1.2 Definición de sistema operativo
Un sistema operativo es un programa que administra el hardware de una computadora.
También proporciona las bases para los programas de aplicación y actúa como un
intermediario entre el usuario y el hardware de la computadora. Un aspecto sorprendente
de los sistemas operativos es la gran variedad de formas en que llevan a cabo estas tareas.
Los sistemas operativos para main- frame están diseñados principalmente para optimizar el
uso del hardware. Los sistemas operativos de las computadoras personales (PC) soportan
desde complejos juegos hasta aplicaciones de negocios. Los sistemas operativos para las
computadoras de mano están diseñados para proporcionar un entorno en el que el usuario
pueda interactuar fácilmente con la computadora para ejecutar programas. Por tanto,
algunos sistemas operativos se diseñan para ser prácticos, otros para ser eficientes y otros
para ser ambas cosas. (Silberschatz,Galvin, & Gagne, 2006, p.3)
• Creación de programas
Da una gran variedad de servicios, como los editores y depuradores (debuggers), para
ayudar en la creación de programas. Con frecuencia estos servicios aparecen como
programas de utilidad que no forman realmente parte del sistema, pero son accesibles
a través de él.
• Ejecución de programas
• Acceso al sistema
• Contabilidad
• Administrador de recursos
El SO es responsable de la gestión de los recursos de la máquina y mediante su
administración posee el control sobre las funciones básicas de la misma; por ello, no es nada
más que un programa, pero su diferencia clave es el propósito que tiene. El sistema
operativo dirige al procesador en el empleo de otros recursos del sistema y en el control del
tiempo de ejecución de los programas de usuario. (UNAM, 2017)
Figura 2. Recursos administrados por el S.O. (Red Martinez & Castillo Ron, 2001)
Procesos:
• Posee un arreglo de estructuras, una por cada proceso existente en ese momento.
• Es administrada por el S. O.
• Un espacio de dirección.
• Los datos pertinentes de la tabla de procesos.
- Un proceso puede crear procesos hijo y estos nuevos procesos hijo, conformando un árbol
de procesos.
Archivos:
Llamadas al sistema:
• Pone los parámetros de la llamada en un lugar específico para luego ejecutar una
instrucción tipo “trap” de llamada a procedimiento protegido para iniciar el S. O.
• Luego de “trap” el S. O. recupera el control, examina los parámetros y si son válidos
ejecuta el trabajo solicitado.
• Luego de terminar, el S. O. coloca un código de estado en un registro indicando si
tuvo éxito o fracaso y ejecuta una instrucción del tipo “return from trap” para
regresar el control al procedimiento.
Sistemas monolíticos
La estructura monolítica es la más utilizada en los SO. En general, es posible decir que dentro
de esta estructura de sistema no hay una estructura definida. En otras palabras, cuando el SO
es creado se escribe como una colección de procesos que cumplen con diversas funciones,
donde cada uno de ellos puede ser llamado por el sistema cuando sea necesario.
Para ayudar a identificar cada proceso, estos son generados con una interfaz perfectamente
determinada que recibe una serie de valores-parámetro bien definidos y entrega un resultado
o salida única. Adicionalmente, estos procesos pueden llamar a otros procesos de su
secuencia de instrucciones cuando sea necesario, lo que los vuelve complementarios.
Pese a lo anterior, los sistemas monolíticos cuentan con una estructura a nivel básico; esto se
puede observar cuando los servicios o llamadas al sistema son realizados. Al ocurrir lo
anterior, los parámetros necesarios para la ejecución del servicio son colocados en la pila y
posteriormente se ejecuta una instrucción denominada TRAP, que realiza un cambio de
modo, al pasar de modo usuario a modo núcleo y transferir el control al sistema operativo
para que efectúe la operación. Así, el sistema operativo obtiene los parámetros y determina
la llamada al sistema o servicio que debe ejecutar. Posteriormente, utiliza el número de
llamada al sistema como un valor de índice para almacenar dicha llamada en una tabla de
registro de llamadas al sistema, y como parámetro para un apuntador que lo asocia al
procedimiento que ejecuta esa llamada.
Como su nombre lo indica, consiste en la organización de las diversas funciones del sistema
en una estructura jerárquica de capas, construidas a partir de una capa base encargada de la
administración del procesador. El primer sistema operativo (SO) conocido con esta estructura
fue construido por E. W. Dijkstra y sus estudiantes, en 1968, el THE (Technische Hogescholl
Eindhoven), en los Países Bajos.
El sistema de Dijkstra era relativamente sencillo: procesaba la información por lotes para un
ordenador holandés, el Electrologica X8, con una capacidad de 32 Kb de memoria de 27 bits.
La siguiente figura describe las seis capas del sistema THE. La capa 0 era encargada de
administrar al procesador, efectuando la conmutación de procesos conforme se realizaban las
interrupciones o expiraba el tiempo asociado a cada proceso (timer). Por encima de la capa
0 se ejecutaba una serie de procesos secuenciales independientes, que podían ser
programados en cualquier momento sin importar el número de procesos que se estuvieran
operando en ese momento, lo que permitía hacer una programación múltiple de procesos en
el procesador.
Máquina virtual
El concepto de máquina virtual se utiliza mucho actualmente en un contexto diferente: la ejecución
de programas MS-DOS antiguos en un Pentium u otra CPU Intel de 32 bits. Al diseñar el Pentium y
su software, tanto Intel como Microsoft se percataron de que podría haber una gran demanda de
gente queriendo ejecutar su software antiguo sobre el hardware nuevo. Por ese motivo, Intel
incluyó un modo 8086 virtual en el Pentium. Así, la máquina actúa como un 8086 (idéntico a un 8088
desde el punto de vista del software), con el direccionamiento de 16 bits con un límite de 1 MB.
Exokernels
Los exokernels o exonúcleos son sistemas creados con fines de investigación científica en el Instituto
Tecnológico de Massachusetts, con el objetivo de crear una capa de software para sistemas
virtuales. Están situados en la capa más baja de los sistemas operativos, ejecutándose en modo de
núcleo, y su función principal es administrar y asignar recursos para los sistemas que dan soporte a
las máquinas virtuales. Éstas tienen la capacidad de ejecutar de forma independiente su propio
sistema operativo, como lo hacen los procesadores Icore de Intel y la VM/370, limitados por los
recursos asignados por el exokernel.
Modelo cliente-servidor
Al paso del tiempo, observando las ventajas de mover procesos y códigos de programación
a modelos de capas, se han generado sistemas cliente-servidor. Estos consisten en ir quitando
procesos ejecutados en modo núcleo y pasarlos a las capas superiores del sistema, dejando
un modo de ejecución (microkernel) con solamente los procesos esenciales para el
funcionamiento base del sistema. La intención de este modelo es destinar la mayor parte de
los recursos del sistema operativo en la ejecución de los procesos de usuario.
1.6 Hardware
Los principales aspectos del hardware, de importancia para los S. O., son los siguientes [7,
Deitel]:
Registro de relocalización
Interrupciones y escrutinio
Dispositivos periféricos
Temporizadores y relojes
Robo de ciclo
Significa que en la competencia entre el procesador y los canales para acceder a un
determinado banco de almacenamiento primario (memoria principal), se da prioridad a los
canales:
Almacenamiento virtual
Multiprocesamiento
Canalización
1.7 Software
Consiste en los programas de instrucciones y datos que definen para el hardware los
algoritmos necesarios para la resolución de problemas.
Los aspectos más destacados en relación con los S. O. son los siguientes [7, Deitel]:
Ensambladores y macroprocesadores
- Los “macroprocesadores”:
Compiladores
- “O. hacia el procedimiento”: son de propósito general y aptos para resolver gran variedad
de problemas:
“O. hacia el problema”: son específicos para resolver determinados tipos de problemas:
- “C. rápidos y sucios”: producen rápidamente un programa objeto que puede ser ineficiente
respecto de almacenamiento y velocidad de ejecución:
Interpretadores
- El programa en lenguaje de máquina producido por un traductor debe ser combinado con
otros programas en lenguaje de máquina para formar una unidad ejecutable.
Microporgamación
El “microcódigo vertical”:
El “microcódigo horizontal”:
Una importante cuestión de diseño es decidir qué funciones del sistema computacional se
implementarán en microcódigo.
Emulación
Es una técnica por medio de la cual se hace que una máquina aparente ser otra.
Microdiagnósticos
Los microprogramas tienen más acceso al hardware que los programas de lenguaje de
máquina:
Computadores personalizados
En algunos sistemas los usuarios pueden efectuar esta adaptación por medio del
microcódigo.
Asistencias de microcódigo
Implementan varias rutinas de manejo de interrupciones de uso más frecuente en microcódigo a
fin de lograr mejoras significativas en la ejecución.
• Manejo de interrupciones.
• Mantenimiento de varios tipos de estructuras de datos.
• Primitivas de sincronización que controlan el acceso a los datos compartidos y otros
recursos.
• Operaciones de palabras parciales que permiten que las operaciones de
manipulación de bits sean manejadas en forma eficiente.
• “Intercambio de contexto”, por ej., intercambio rápido del procesador entre los
usuarios de un sistema de usuarios múltiples.
• Secuencias de regreso y llamada al procedimiento.
Los Sistemas Operativos han evolucionado y al paso del tiempo estas evoluciones tienen una
relación directa con el hardware, que ha permitido un gran desarrollo en varios ámbitos de
nuestra vida cotidiana.
Es importante mencionar que las características actuales de los SO, permiten realizar cálculos
avanzados, hacer uso de aplicaciones complejas de diseño así como mejorar la administración
de recursos.
Fuentes de consulta
Coordinación de Universidad Abierta y a Distancia de la UNAM. (2017) Sistemas
Operativos. Recuperado de:
https://programas.cuaed.unam.mx/repositorio/moodle/pluginfile.php/898/mod_resource/co
ntent/3/contenido/index.html
Nutt, G., Vegas, J., y Llamas, C. (2004). Sistemas operativos. Madrid: Pearson, Addison-
Wesley.
Red Martinez, D., & Castillo Ron, E. (2001). Sistemas operativos. Santa Fe, Argentina: El
Cid Editor.