martes, 16 de mayo de 2023

Practica Final

Resumen del libro "Desarrollo y Optimización de Componentes Software para Tareas Administrativas de Sistemas".  

 

El libro para empezar entra con la definicion de lo que es  un sistema operativo que  es un programa que actúa como una capa entre el usuario y el hardware. esta se encarga de gestionar y administrar todas las partes del sistema.

El sistema se puede dividir en tres partes que son:

La capa más cercana al hardware se denomina núcleo o (KERNEL). contiene la funcionalidad básica del sistema operativo y las estructuras de los datos necesarios.

 La capa de los servicios que ofrece el sistema operativo. Todas las tareas que el sistema operativo lleva a cabo son ofrecidas en forma de interfaz para el desarrollo de aplicaciones.

La capa de interfaz entre el usuario y el sistema operativo. Se encarga de proporcionar una forma de dialogo entre el usuario y el sistema operativo.

el principal objetivo de un sistema operativo es de  proporcionar un entorno para la ejecución de programas, de forma que estos programas sean capaces de usar los dispositivos de los que se compone el sistema.

El sistema operativo debe ofrecer servicios a tres niveles: al usuario, a los programas y a los dispositivos.

 Permitir la ejecución de aplicaciones

Asignar recursos del ordenador (CPU, memoria, ETC). A los programas

Dar acceso indirecto a los dispositivos del ordenador y a los periféricos.

Proporcionar un sistema organizado de almacenamiento de datos.

Comunicación interactiva con el usuario.


Todo sistema operativo necesita proporcionar a los programas un entorno de ejecución sin interferencias sobre otros programas que están ejecutándose a la misma vez. Por lo tanto, debe repartir la memoria almacenada de forma que ningún programa altere el espacio de otro programa.

En la actualidad, existen varios tipos de memorias que el sistema operativo puede utilizar y que, en función de su velocidad y tamaño, siguen la siguiente jerarquía:

᪰Registro de CPU del procesador.

᪰Cache

᪰Memoria RAM

᪰Memoria secundaria

una parte muy importante en un sistema es la segmentacion que se basa en la division logica de un programa en partes denominadas segmentos, donde cada uno de estas partes agrupa los elementos relacionados logicamente.


Gestión de almacenamiento. Sistemas de archivos

El sistema operativo necesita manejar una gran cantidad de información, para lo cual usa dispositivos de almacenamientos secundarios. Por ellos, es necesario que siga un modelo de gestión coherente y uniforme de la información.

El concepto básico de almacenamiento es el archivo. Un archivo es una unidad lógica que contiene información relacionada. 

Entre las principales funciones del módulo de gestión de almacenamiento, destacan:

Realizar la traducción del sistema de direccionamiento lógico al sistema de direccionamiento físico en los dispositivos dispositivos masivos.

Realiza transferencia e intercambio de datos entre la memoria principal y la memoria secundaria.

Realiza tareas de mantenimiento sobre los dispositivos de memoria secundaria: controlar el estado, la asignación de memoria física y el espacio disponible de cada dispositivo.

Proporcionar mecanismo para proteger, compartir, recuperar y restaurar los datos almacenados en memoria secundaria.


Cuando se habla de un dispositivo de entrada/salida, se hace referencia a cualquier elemento que no sea ni la memoria ni el procesador.

El problema de un gestor de dispositivos de entrada/salida radica en la existencia de múltiples tipos de dispositivos distintos. Las principales características que definen un dispositivo son:

Velocidad

Unidad de transferencia

Codificación de la información protocolo de comunicación

Operaciones

Errores

Gestión de red

Conjunto de herramientas que permiten configurar el subsistema queda completamente oculta bajo la interfaz que proporcionan. En la mayoría de los casos, solo hacen falta conocimientos sobre el tipo y estructura de la red, ya que el sistema operativo se encargará del resto.

El subsistema de gestión de red permite que los procesos del sistema operativo interactúen a través de un canal de comunicación con el enfoque de una red de comunicación.

Gestión de errores

Cuando se ejecuta una aplicación en el sistema operativo, puede ocurrir que el proceso realice su trabajo correctamente o bien, que se produzca algún error. En la mayoría de los casos, un error incontrolado en un sistema puede ocasionar la perdida de información e incluso la inestabilidad del sistema operativo si se esta haciendo uso de recursos del mismo.

Cuando se produce un error, el resultado es una interrupción de la ejecución normal del programa que lo causa. A continuación, el SO otorga el control de ejecución a la rutina adecuada para que trate el error. Todo el tratamiento de estos errores se conoce como gestión de excepciones y existen sistemas operativos que lo soportan y otros que no.

Las excepciones se pueden clasificar en los siguientes tipos:

Fallos: que pueden ser corregidos y que retoman la ejecución normal del programa que las genero.

Traps: que son utilizadas por los programadores para la depuración.

Aborts: son errores graves que ocurren  cuando hay un fallo de hardware.

Gestión de la seguridad

La seguridad es importante en un sistema operativo, ya que se esta hablando de un software que controla todo el sistema a nivel de hardware y de software. Sin embargo, el concepto de seguridad es muy amplio y dependiendo del ámbito puede significar una cosa u otra.

En términos informáticos, se dice que la seguridad es equivalente a garantizar una serie de propiedades. En el caso de un sistema operativo, esas propiedades se aplicarán sobre los usuarios del mismo:

Consistencia

Servicio

Protección

Control de acceso

Autenticación

El sistema operativo debe encargarse de garantizar la seguridad a todos los niveles, implementando un modelo de gestión de la seguridad centralizado, en la mayoría de los casos apoyado por un sistema de gestión de actualizaciones que las principales compañías ponen a disposición conforme encuentran agujeros de seguridad en sus sistemas.

Sistemas monolíticos

En un sistema operativo con este tipo de arquitectura, todas las funciones se encuentran codificadas en un único modulo. Esta compuesto de un conjunto de procedimientos, que se pueden invocar entre ellos según la necesidad y sin restricciones. Cada procedimiento tiene una signatura bien definida, es decir, los parámetros de entrada y el resultado de salida son conocidos.  

Hay que tener en cuenta que este tipo de modelo no es lo mismo que un modelo sin estructura. Realmente, existe una estructura, aunque sea muy primitiva. Todo sistema operativo puede ejecutar en dos modos: modo núcleo (modo kernel) o modo usuario. En un sistema monolítico, los procedimientos correspondientes a servicios del sistema operativo (llamadas al sistema) se pueden solicitar estableciendo los parámetros de entrada y realizando una llamada especial (llamada al kernel) para ejecutar el procedimiento.

La llamada especial realiza el cambio entre el modo usuario y el modo kernel y transfiere el control de la ejecución al sistema operativo.

El sistema operativo comprueba los parámetros de entrada y, en función de ellos, busca en una tabla interna la referencias al procesamiento que se debe ejecutar en función de estos parámetros. Se ejecuta y el resultado se transfiere al programa de usuario que realizo la llamada. Por lo tanto, se vuelve a pasar al modo usuario.

Entre los principales inconvenientes, se encuentran:

falta de modularidad

Dificultad para modificaciones

Dificultad en la detección y corrección de errores

Necesidad de recopilación en cada cambio

 

Máquinas virtuales

Las maquinas virtuales son un tipo de arquitectura basada en microkernel. En este modelo, el microkernel se denomina monitor de máquina virtual y se ejecuta sobre el hardware directamente, con soporte para multiprogramación. Además, proporciona una visión de múltiples maquinas virtuales a la capa superior. Cada maquina virtual es una copia exacta del hardware. Esto consigue que se puedan ejecutar varios sistemas operativos a la vez.

La idea principal es que los procesos se ejecutan limitados por los recursos y abstracciones que proporcionan cada maquina virtual.








Practica Final

Resumen del libro "Desarrollo y Optimización de Componentes Software para Tareas Administrativas de Sistemas".     El libro para e...