LA ARQUITECTURA DE UN SISTEMA OPERATIVO

Page 1

1

LA ARQUITECTURA DE UN SISTEMA OPERATIVO Resumen –Los Sistemas Operativos, a partir de este momento, abreviado( SO) tienen sus origenes a mediados de los años 50, pero con el paso del tiempo se ha generado una evolución casi exponencial en la industria tecnológica, que directa o inderactamente han afectado de manera sircunstancial el avance de los SO, dichos progresos, que van desde el tamaño de los dispostivos hasta la capacidad de procesamiento, son los comprobantes del trabajo constante que se ha dado en dichos sistemas. Muchos de estos cambios se deben a la globalizacion y las tendencias tecnologícas, tales como, el intertnet y con ello el IOT1, las computadoras personales, las redes sociales entre otros. Los SO modernos son diseñados con el objetivo de responder a los nuevos desarrollos de hardware y software, sin embargo, entra una pregunta que se desea resolver: ¿Cómo se diseña y cuál es la arquitectura de un SO? en el trasncurso del documento se responder a esta pregunta. Los SO son esa herramienta clave en la evolución de la tecnología y comunicación con el usuario, este referente en la ayuda de la interfaz mucho mas adaptable para la comodidad y uso por partes de cualquier tipo de usuario, los sistemas operativos dentro de su estructura podemos resumir su funcionalidad en la creación de puentes de comunicación entre software y hardware y también tal vez el mas relevante la comunicación entre el lenguaje maquina y el lenguaje usuario (o mejor conocido como humano). Estos SO son mecanismos evolutivos y cada una de sus funcionalidades o partes hacen parte de un sistema de encajes modificables, bien acoplados con el fin de mejorar la calidad de servicio prestado al usuario final.

I. INTRODUCCIÓN

L

os SO son software que estan implicados en casi todos los

aspectos de la computación. Considere el siguiente escenario sencillo de un usuario: Un usuario desea escribir una pequeña nota, para ello necesita un dispositivo como una computadora o smartphone para así iniciar su programa de planificación (o quizá un programa editor o de procesamiento de texto), escribe su recordatorio, guarda el documento y sale de la aplicación. El usuario pudo haber usado un sistema basado en Windows, MacOS o Linux con un editor de texto basado en GUI2 o simplemente un comando de shell basado en texto como el que se utiliza en UNIX. Supongamos que está usando un editor de texto basado

en una GUI para escribir una nota por separado y que la guarda como un archivo. Sin importar el tipo de SO que use, este escenario provoca que el sistema cree, gestione y finalice componentes de software para realizar el trabajo. Cuando el usuario invocó al editor o algún otro programa creó un proceso (tambien denominado tarea o trabajo), Un proceso es básicamente un programa en ejecución que puede estar en espera de ser ejecutado, en ejecución o a la espera que ocurra algo o por último finalizando la tarea del proceso. Algunos de los eventos que puede estar esperando un proceso pueden ser: incluir la pulsación de una tecla de parte del usuario, la lectura de algunos datos desde una unidad de disco, o bien, que otro programa suministre datos. Antes de poder iniciar un proceso, el archivo del programa ejecutable (el cual es un archivo binario) que será ejecutado debe estar en la memoria principal (RAM3). Para lograr lo anterior se requiere llevar a cabo varias actividades fundamentales del SO. (Va en proceso). Primero, se requiere una porción de la memoria principal para tener el código ejecutable del programa, así como una memoria adicional para los datos, las variables y el almacenamiento temporal del programa. En nuestro ejemplo, los datos podrían ser la entrada que el usuario está creando, es decir, la nota o archivo que se menciona a inicio de la introducción. Esta actividad es denominada la gestión de la memoria que debe realizar el SO. A menudo varios programas pueden estar en la memoria al mismo tiempo. El módulo de gestión de la memoria del SO controla los procesos que se ubicarán en la memoria, el lugar donde estarán ubicados y la cantidad de memoria que se le asignada a cada uno. La gestión del proceso la decisión de cuál proceso ejecutar, durante cuánto tiempo y tal vez con qué prioridad (o nivel de importancia) constituye otra actividad crucial de gestión del SO, por lo regular manipulada parcialmente por el planificador de la CPU del SO. Una vez que el proceso de edición se encuentra ejecutando, requiere aceptar algunas entradas (pulsaciones de teclado, pantalla táctil o comando de voz) y exhibir en la salida de la pantalla del dispositivo lo que se ha escrito. Recibir las entradas por diferentes métodos y en este caso específico por el teclado (ver figura 1) mostrará estos datos en la pantalla la cual se realiza mediante una serie de pasos

2 1

Internet de las cosas.

3

Interfaz grafica de usuario. Memoria de acceso aleatorio (Rndom Acess Memory).


2

realizados por los componentes de gestión de E/S diferentes dispositivos que integran un SO.

4

y de

ratón y las envia al SO, el ícono de seguimiento del ratón ( por ejemplo, la flecha) debe moverse y mostrarse en la pantalla del monitor como otra salida a la pantalla. Cuando se hace clic en el botón del ratón (ver figura 2) , el controlador envía la información al SO, con las coordenadas en donde ocurrió el clic al sistema de ventanas que gestiona la interfaz de usuario.

Figura 1: ejemplo de entrada por teclado.5 Cuando el usuario oprime una tecla, e introduce un carácter que el sistema debe leer, el dispositivo utiliza en este caso el teclado para introducir la información y conocer la acción que ocurrió con el elemento periférico (teclado). Esta información se relaciona con el renglón y la columna de la posición de la tecla en el teclado, y si fue oprimida o soltada, esta información posteriormente es almacenada en un búfer temporal. En los dispositivos actuales como las tabletas digitales o los smartphones contienen un chip especial cuya función es controlar la información de la acción proporcionada por las pantallas digitales, dicha información luego es enviada a una interrupción al procesador, luego el SO inicia una rutina de interrupción de servicio como parte de la manipulación de la interrupción y del control del dispositivo en el SO. Este proceso se repite por cada carácter tecleado, el carácter debe enviarse al proceso de edición y mostrarse en la pantalla. otra acción que realiza el SO en este caso se efectúa una operación de salida hacia el monitor, una vez que el usuario finaliza de escribir su nota, la guarda como un archivo, esto puede implicar el movimiento de un dispositivo apuntador, como un ratón para apuntar el menú archivo en la pantalla.

Figura 2: puntero del mouse6. Prosiguiendo con nuestro escenario, el usuario puede escoger ahora un directorio denominado “notas personales”, en el que se desea guardar su archivo. Esto introduce la participación del componente gestión de archivos del SO. Cuando el usuario selecciona el directorio (por ejemplo, al hacer doble clic en el ícono de una carpeta), esto ocasiona que el gestor de archivos del SO emprenda varias acciones. Primero, debe abrir el directorio mendiante la recuperación de información que hay en él, a partir de las tablas internas del SO. La información del directorio incluye los nombres de archivos (y posiblemente otros directorios) almacenados bajo este directorio, así como la ubicación del directorio en el disco. Luego, el usuario debe escribir el nombre del archivo como “recordatorio” y el sistema de archivos (ver figura 3) comprobará lo necesario a fin de asegurarse de que ninguno de los archivos que hay en ese directorio tenga el mismo nombre.

El movimiento del ratón y los clics en éste son manipulados por un controlador de dispositivo, que sigue las coordenadas del 4

Periféricos de entrada y salida.

5 https://www.google.com/search?q=persona+escribiendo+en+computador&tbm=isch&ved=2ah UKEwj-qK2Clf_nAhU9TjABHYuBBbEQ2cCegQIABAA&oq=persona+escribiendo+&gs_l=img.1.2.0l10.11070.18061..19179...1.0..0.195. 3465.0j24......0....1..gws-wiz-img.....10..35i39j0i131j0i67j35i362i39j0i131i67.TPIaLM76Vs&ei=usBeXv7jFL2cwbkPi4OWiAs&bih=821&biw=1440&rlz=1C5CHFA_enCO 802CO802#imgrc=2Ax4CpaLc5FEHM

6 https://www.google.com/search?q=el+puntero+del+mouse+en+la+pantalla&tbm=isch&ved=2a hUKEwj_4OT0nv_nAhUxVzABHXEYB1AQ2cCegQIABAA&oq=el+puntero+del+mouse+en+la+pantalla&gs_l=img.12...123442.131152..13 7975...5.0..0.149.4351.0j34......0....1..gws-wizimg.....10..35i362i39j35i39j0j0i67j0i131j0i131i67j0i8i30j0i24j0i30.PPXdSxOG740&ei=GsteX v_rDrGuwbkP8bCcgAU&bih=821&biw=1440&rlz=1C5CHFA_enCO802CO802#imgrc=oGcV IkBPQxW3HM


3

para la programación de la CPU se denomina cola lista, la cual contiene todos los procesos que están listas para su ejecución. Si los procesos tienen prioridades distintas, para cada nivel de prioridad puede haber una cola lista por separado, a cada proceso se le asigna, por lo regular, control de la CPU durante un tiempo determinado, denominado cuanto temporal. Si el cuanto temporal expira antes de que el proceso termine la ejecución, un interruptor de tiempo puede iniciar un proceso del SO denominado conmutación de contexto, que puede cambiar el control de la CPU a otro proceso. Figura 3: Sitema de archivos7 A continuación, puede invocar el módulo de asignacion de espacio el disco para encontrar una zona de espacio libre en el disco para almacenar el archivo en cuestión, finalmente, el administrador de archivos del SO crea una entrada de archivo en el directorio para guardar la información concerniente al nuevo archivo, como su nombre, tipo de archivo y ubicación en el disco. II. RECURSOS GESTIONDOS POR EL SO Y MÓDULOS MÁS IMPORTANTES DEL SO. Un papel fundamental del SO es la gestión de los recursos del sistema, por lo que esta sección cubre los tipos principales de recursos que gestiona, tales cómo, la CPU, Memoria principal y cachés, almacenamiento secundario, dispositivos de E/S, sistemas de archivos, interfaces del usuario, acceso a redes y suministro de protección y seguridad. 1.

2.

Memoria principal y cachés.

El SO necesita asignar espacio de memoria a un proceso antes de ejecutarlo. El código ejecutale de un programa suele almacenarse en memorias secundarias como los discos duros. Cuando un usuario o un programa desea ejecutar un programa que se encuentra en un disco, el SO debe localizar el archivo del código del programa en el disco y asignar suficiente espacio de memoria para mantener una parte inicial del programa. Debido a que muchos programas son bastantes grandes, el SO debe cargar sólo parte del programa desde el disco, una de las funcioens de gestión de la memoria principal consite en la asignación de un disco a medida que el proceso las necesita, si todo el espacio de la memoria está lleno, el módulo de gestión de la memoria del SO debe intercambiar a un medio externo algo de la información residente en la memoria, a fin de poder cargar las porciones adicionales necesarias por el proceso (ver figura 4).

CPU.

El SO necesita planear cuál proceso ejecutar en cada CPU en cualquier instante, este va cambiando si son sistemas monotareas o multitareas. En sistemas de procesos único esta cuestion es muy simple, porque sólo un proceso reside en la memoria, de modo que el SO es el principal responsable de iniciar el proceso residente en la memoria al proporcionarle el control de la CPU. Sin embargo, aun en este sistema tan simple, el SO debe efectuar otras tareas, como establecer cualquier registro de protección de memoria y cambiar al modo de ejecución del usuario antes de otorgar al proceso el control de la CPU.

Figura 4: Gestión de memoria principal.8 3.

Almacenamiento secundario.

En sistema multitareas, la gestión del recurso CPU es muy complicada porque en la memoria hay múltiples procesos. El SO mantiene varias listas de procesos, la cola más relevante

Otro recurso importante gestionado por el SO es el almacenamiento secundario, que suele ser el disco duro. La mayoría de los archivos de código del programa y los archivos de datos están alcamenados en el disco duro hasta que hay una

7

8

https://www.google.com/search?q=sistema+de+archivos&tbm=isch&ved=2ahUKEwiU0rK3n__ nAhXFsDEKHSVwAL4Q2cCegQIABAA&oq=sistema+de+archivos&gs_l=img.3..35i39j0l9.1044711.1047411..1047799... 0.0..0.167.2724.0j19......0....1..gws-wizimg.......0i131j0i67j0i131i67.e2AnuCpQXVU&ei=pcteXtTrOMXhxgGl4IHwCw&bih=821&bi w=1440&rlz=1C5CHFA_enCO802CO802#imgrc=XuhnQVn7Zr0H7M

https://www.google.com/search?q=gestion+de+la+memoria+principal&rlz=1C5CHFA_enCO80 2CO802&sxsrf=ALeKk02Tqa7nbvMD7dICu4IBWoU7dkRCw:1583280678013&source=lnms&tbm=isch&sa=X&ved=2ahUKE wjV4pGTxP_nAhVEd6wKHZU1DH0Q_AUoAXoECBAQAw&biw=1440&bih=821#imgrc=o VrsWeUy-BtRKM


4

petición para cargar algunas partes de éstos en la memoria principal. Siempre que un proceso requiere datos o códigos que no estan en la memoria, se envía una peticion al módulo de planificación del disco del SO, el SO típicamente suspende el proceso de la petición hasta que los datos requeridos se leen en la memoria, En un sistema multitarea el SO suele mantener una o más colas para las solicitudes de lectura y escritura en el disco. 4.

Muchsos SO modernos incluyen otro componente de alto nivel para manipular la interacción con el usuario, esto incluye la funcionalidad para crear y gestionar ventanas en la pantalla de una computadora a fin de permitir que los usuarios interactúen con el sistema (ver Figura 6).

Dispositivos de E/S.

El SO tambiém debe controlar y gestionar varios dispositivos de entrada y salida conectados a un sitema de cómputo, el SO incluye módulos denominados controlaores de dispositivos que vigilan el acceso a estos dispositivos (ver figura 5).

Figura 6: Interfaz gráfica de usuario.10 7.

Figura 5: Dispositivos de entrada y salida.9 Un controlador de dispositivo manipula la interacción a bajo nivel con los controladores de dispositivos de hardware, presnetan una vista de nivel superior de los dispositivos de E/S al resto del SO. 5.

Acceso a redes.

Otro de los recursos administrados por el SO es el acceso a redes para permitir que los usuarios y los programas en una computadora accedan a otros servicios y dispositivos en una red de computadoras (ver figura 7).

Sistemas de archivos.

El SO gestiona recursos de nivel superior que se crean por medio del software, uno de los recursos más importantes es el sistema de archivos. Este sistema es un módulo del SO que proporciona una interfaz de nivel superior que permite a los usuarios y los programas creen, borren, modifiquen, abran, cierre y apliquen otras operaciones a varios tipos de archivos. El sistema de archivos permite a los usuarios poner nombres a los archivos, organizar los archivos en directorios, proteger archivos y acceder a éstos usando diversas operaciones de archivos. 6.

Interfaces del usuario.

9 https://www.google.com/search?q=perifericos+de+entrada+y+salida&tbm=isch&ved=2ahUKE wiEkPDox__nAhVWAlMKHYSxBRsQ2cCegQIABAA&oq=perif&gs_l=img.1.1.0i67j0i131i67l2j0i67l2j0i131j0l4.6269.6769..9206...0. 0..0.299.1376.2-5......0....1..gws-wizimg.......35i39.gBkpfX7Rvio&ei=__VeXsSUB9aEzAKE45bYAQ&bih=821&biw=1440&rlz=1 C5CHFA_enCO802CO802#imgrc=xtuvsBw0uz3PYM 10 https://www.google.com/search?q=interfaz+grafica+de+usuario&tbm=isch&ved=2ahUKEwiig_ 7tx__nAhWREVMKHXR_AL4Q2cCegQIABAA&oq=interfaz+grafica+de+usu&gs_l=img.1.0.0l6j0i5i30l4.8771435.8778563..87

Figura 7: Internet.11 80498...0.0..0.192.3384.0j22......0....1..gws-wizimg.......0i67j35i39j0i131j0i8i30.aijpZU2e1pY&ei=CfZeXuLaMpGjzAL0_oHwCw&bih=821& biw=1440&rlz=1C5CHFA_enCO802CO802#imgrc=bBRMpemFMZP5pM 11 https://www.google.com/search?q=acceso+a+redes&tbm=isch&ved=2ahUKEwjstcXJ6P_nAhX EWDABHSZqBqAQ2cCegQIABAA&oq=acceso+a+redes&gs_l=img.3..0l3j0i24l3.234093.236692..236829...0.0..0.1 89.2113.0j13......0....1..gws-wiz-img.......35i39j0i67j0i131.kaiY5AgfrU&ei=VxhfXqyuL8SxwbkPptSZgAo&bih=821&biw=1440&rlz=1C5CHFA_enCO8 02CO802#imgrc=GNhaORLypfD04M


5

8.

Suministro de protección y seguridad.

El SO también cuenta con mecanismos para proteger los diversos recursos de algún acceso no autorizado, así como técnicas de seguridad para permitir que los administradores del sistema refuercen sus políticas de seguridad. III. MÓDULOS MÁS IMPORTANTES DE UN SO.

Los primeros SO se escribieron como un programa único. Este enfoque para construir el SO se denomina enfoque del núcleo o del núcleo monolítico (ver Figura 9). Estos poseian una memoría principal limitada y costosa, el size overhead(el porcentaje de memoria principal ocupada por el SO) se consideraba demasiado grande, esto causaba los programas grandes provocasen errores y que el SO fuera menos eficiente. Otra caaracteristica principal de este tipo de enfoque era que el costo de mantenibilidad era elevado, es decir, si se deseaba agregar o corregir errores. Esto condujo a los diseñadores de SO a desarrollar SO basados en un diseño más modular, por capas

Figura 8: Los módulos más importantes de un SO. Figura obtenida del libro Sistemas operativos un enfoque en espiral.

La figura 8 es una ilustración de algunos módulos más importantes de un SO a un nivel abstracto, muchos de estos módulos corresponden bastante a los recursos que se están gestionandos. Otros módulos proporcionan funciones de soporte comunes que usan muchos otros módulos, estos proporcionan funciones a las que acceden usuarios y programas del sistema, así como los otros módulos del SO.

Figura 9: Representación simple del softwaredel SO en relacíon con el hardware: Figura obtenida del libro Sistemas operativos un enfoque en espiral.

En la figura 8 no se muestra la forma en que los módulos del SO interactúan entre sí, esto se debe a que los tipos de interacción dependen de la arquitectura particular usada para implementar el SO, por ejemplo, en una arquitectura por capas los módulos estarían separados en capas, en general los módulos de un nivel deben llamar a las funciones proporcionadas por los módulos que están en el mismo nivel o en niveles inferiores. Por otra parte, en una arquitectura orientada a objetos cada módulo está implementado como uno o más objetos con servicios, y cualquier objeto puede invocar los servicios proporcionados por otros. En una arquitectura monolítica todos los módulos están implementados como un programa gigante. En la siguiente sección se analiza las arquitectura más comunes de un SO.

IV. ENFOQUES ARQUITECTÓNICOS PARA CONSTRUIR UN SO 1.

Enfoque del SO con núcleo unico y monolitico.

2.

Enfoque por capas del SO.

El SO debía dividirse en módulos que estuvieran limitados a una función específica, como planificación del procesador o gestión de la memoria. Los módulos estaban agrupados en capas de abstracción creciente cada capa proporciona una vista más abstracta del sistema y dependen de los servicios de la capa que está abajo. Este enfoque por capas oculta las peculiaridades y los detalles que surgen al manipular dispositivos de hardware, y proporciona una vista común al resto del SO (ver figura 10). Los SO más modernos están construidos con base en una arquitectura por capas.


6

Figura 11: Modelo de micronúcleo de un SO. Figura obtenida del libro Sistemas operativos un enfoque en espiral. Figura 10: Modelo por capas de un sistema operativo Figura obtenida del libro Sistemas operativos un enfoque en espiral.

3.

Enfoque del micronúcleo en un SO

El enfoque del micronúcleo se ilustra en la figura 11, aquí, en el micronúcleo sólo se incluye funcionalidad básica (en general las interfaces a los varios tipos de controladores de dispositivos). Específicamente, el único código en estos módulos debe ejecutarse en modo de supervisor, porque en realidad usa recursos privilegiados, como instrucciones protegidas, o accede a la memoria que no está en el espacio del núcleo. Por otra parte, la implementación de este tipo de enfoque facilita la inspección de defectos y es más fácil transportar. Un micronúcleo pequeño a una nueva plataforma que un núcleo grande.

V. EL MICROKERNEL Este está planteado como el núcleo de la estructura, tiene un tamaño muy reducido, pero a resaltar tiene los componentes más esenciales para el funcionamiento del sistema operativo. Se ejecuta en modo privilegiado, este provee recursos esenciales tales como: • • • •

Abstracción de procesos. Hilos. Intercomunicación de procesos. Primitivas de administración de memoria.

Este núcleo soporta un número reducido de mecanismos, pero soporta los necesarios para su funcionamiento, los recursos mencionados anteriormente son ejecutado en modo usuario, esto dado por la división que presenta su estructura está el modo usuario por encima del modo Microkernel. En el modo usuario los servicios del sistema se ejecutan con los mismos privilegios y contienen la misma dirección de memoria y están protegidos los unos de los otros el Microkernel se encuentra protegido de los servicios como de las aplicaciones de usuario. Las aplicaciones y los servicios no se comunican directamente, sino que intercambian información por medio del Microkernel. Ventajas: • Facilita el incremento del SO • Mayor seguridad y fiabilidad • Simplicidad • Uniformidad de interfaces Desventajas


7

• •

Bajo rendimiento Complejidad den la sincronización de los módulos.

Anon (2021). Retrieved 19 August 2021, from https://erick16ok.wixsite.com/sistemasoperativos/arquitectura-de-lossistemas-operativos

VI. ARQUITECTURA MONOLITICA Ingrese una referencia. Es un modelo en el cual el sistema operativo y todos los servicios fundamentales residen en un monitor monolítico que se accede a través de un mecanismo de llamada al núcleo. Características • Los procesos de usuario se ejecutan en espacios de direccionamiento diferentes al del sistema operativo. • Las implementaciones de UNIX responden tradicionalmente este diseño. • Se aíslan del sistema de los errores de los procesos de usuario, pero nuevos dispositivos aparecen en el mercado continuamente y es preciso escribir manejadores para soportarlos. De nuevo el sistema crece y la probabilidad del fallo aumenta. • Sólo en modo administrador se permite al procesador ejecutar instrucciones privilegiadas. Accesos a las posiciones de memoria asignadas a los adaptadores de dispositivo. • Copia de datos entre espacios de direccionamiento diferentes.

Ingrese un nuevo tema

VII. REFERENCIAS.

Ramez Elmasri, A.Gil Carrick y David Levine. (2010). Sistemas operativos un enfoque en espiral. México : McGraw-Hill .

https://www.youtube.com/watch?v=xPMNpjrV8r0 Microkernel. La importancia del microkernel en HarmonyOS. (2019). Retrieved 19 August 2021, from https://www.azulweb.net/la-importancia-delmicrokernel-de-harmonyos/

Conclusión Ingrese una conclusión


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.