Está en la página 1de 8

TECNOLÓGICO NACIONAL DE MÉXICO

CAMPUS TUXTLA GUTIERREZ

ALUMNO: PABLO JESÚS GÓMEZ PÉREZ

GRADO Y GRUPO: 3 SEMESTRE GRUPO “A”


INGENIERÍA EN SISTEMAS
COMPUTACIONALES

ASIGNATURA: TALLER DE SISTEMAS


OPERATIVOS
CATEDRÁTICO:
MADAÍN PEREZ PATRICIO
TEMA:
TÓPICOS GENERALES DE SISTEMAS
OPERATIVOS
¿Qué es un sistema operativo?

El sistema operativo se encarga de crear el vínculo entre los recursos materiales, el


usuario y las aplicaciones (procesador de texto, videojuegos, etcétera). Cuando un
programa desea acceder a un recurso material, no necesita enviar información
específica a los dispositivos periféricos; simplemente envía la información al sistema
operativo, el cual la transmite a los periféricos correspondientes a través de su driver
(controlador). Si no existe ningún driver, cada programa debe reconocer y tener
presente la comunicación con cada tipo de periférico.

Uno de los propósitos del sistema operativo que


gestiona el núcleo intermediario consiste en gestionar
los recursos de localización y protección de acceso del
hardware, hecho que alivia a los programadores de
aplicaciones de tener que tratar con estos detalles. La
mayoría de aparatos electrónicos que utilizan
microprocesadores para funcionar, llevan incorporado
un sistema operativo (teléfonos móviles, reproductores
de DVD, computadoras, enrutadores, etc.).

El sistema operativo de escritorio dominante es Microsoft Windows con una cuota


de mercado de alrededor del 82,74%. macOS de Apple Inc. ocupa el segundo lugar
(13,23%), y las variedades de GNU/Linux están colectivamente en tercer lugar
(1,57%). En el sector móvil (incluidos teléfonos inteligentes y tabletas), la
participación de Android es de hasta un 70% en el año 2017.3 Las distribuciones
Linux son dominantes en los sectores de servidores y supercomputación. Existen
otras clases especializadas de sistemas operativos, como los sistemas integrados
y en tiempo real, para muchas aplicaciones.

Funciones del Sistema operativo

• Administración del procesador: el sistema operativo administra la


distribución del procesador entre los distintos programas por medio de
un algoritmo de programación. El tipo de programador depende
completamente del sistema operativo, según el objetivo deseado.
• Gestión de la memoria de acceso aleatorio: el sistema operativo se
encarga de gestionar el espacio de memoria asignado para cada aplicación
y para cada usuario, si resulta pertinente. Cuando la memoria física es
insuficiente, el sistema operativo puede crear una zona de memoria en
el disco duro, denominada memoria virtual. La memoria virtual permite
ejecutar aplicaciones que requieren una memoria superior a la memoria RAM
disponible en el sistema. Sin embargo, esta memoria es mucho más lenta.
• Gestión de entradas/salidas: el sistema operativo permite unificar y
controlar el acceso de los programas a los recursos materiales a través de
los drivers (también conocidos como administradores periféricos o de
entrada/salida).
• Gestión de ejecución de aplicaciones: el sistema operativo se encarga de
que las aplicaciones se ejecuten sin problemas asignándoles los recursos
que éstas necesitan para funcionar. Esto significa que si una aplicación no
responde correctamente puede "sucumbir".
• Administración de autorizaciones: el sistema operativo se encarga de la
seguridad en relación con la ejecución de programas garantizando que los
recursos sean utilizados sólo por programas y usuarios que posean las
autorizaciones correspondientes.
• Gestión de archivos: el sistema operativo gestiona la lectura y escritura en
el sistema de archivos, y las autorizaciones de acceso a archivos de
aplicaciones y usuarios.
• Gestión de la información: el sistema operativo proporciona cierta cantidad
de indicadores que pueden utilizarse para diagnosticar el funcionamiento
correcto del equipo.

1.1 clasificación y estructuras genéricas de los


sistemas operativos vigentes

Clasificación de los sistemas operativos vigentes.

Los sistemas operativos se pueden clasificar atendiendo a:

• Administración de tareas:
o Monotarea: los que permiten solo ejecutar un programa a la vez
o Multitarea: los que permiten ejecutar varias tareas o programas al
mismo tiempo

• Administración de usuarios
o Monousuario: aquellos que solo permiten trabajar a un usuario, como
es el caso de los ordenadores personales
o Multiusuario: Los que permiten que varios usuarios ejecuten sus
programas a la vez

• Organización interna o estructura


o Monolítico
o Jerárquico
o Cliente – servidor

• Manejo de recursos o acceso a servicios


o Centralizados: si permite utilizar los recursos de un solo ordenador
o Distribuidos: si permite utilizar los recursos (CPU, memoria,
periféricos…) de mas de un ordenador al mismo tiempo
Estructura de los sistemas operativos

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron


los sistemas, se hizo necesaria una mayor organización del software del sistema
operativo, donde una parte del sistema contenía subpartes y esto organizado en
forma de niveles.

Definir una arquitectura para el Sistema Operativo; esta estará influida en alguna
medida por el hardware que manejará. Sin embargo, es posible identificar algunos
componentes comunes como el núcleo y las llamadas al sistema. El núcleo
contiene, básicamente, todo el código e información necesaria para la gestión de
procesos y memoria y en la mayoría de los sistemas operativos también se incluye
buena parte de la gestión de entrada/salida. Según la arquitectura que tengamos
así es como el usuario se comunica con el sistema operativo y el sistema operativo
o el núcleo con los componentes del hardware, por tanto, cada sistema operativo
tiene una arquitectura específica en dependencia de las necesidades de este.

Sistemas monolíticos

En los sistemas monolíticos, todos los componentes de gestión y programas del


sistema están escritos en un solo código o espacio lógico. Pueden decirse que el
núcleo es el Sistema Operativo. La división más evidente que puede hacerse es
entre procesos de aplicación o usuario y procesos del sistema. La desventaja es
que como todo el sistema se ejecuta en el mismo nivel de privilegio que el núcleo
(el Sistema Operativo es el núcleo) es muy probable que haya problemas (el sistema
se apague, se bloquee o se cuelguen procesos, por ejemplo) si ocurre algún fallo
del hardware o existe algún error sin depurara en el código del sistema. GNU/Linux
es monolítico. A pesar de ser monolítico, es modular, lo que significa que es posible
quitar o añadir componentes al núcleo incluso en caliente (o sea, en pleno
funcionamiento). Así, si un módulo tiene problemas se puede reemplazar, arreglar
o eliminar sin afectar al resto de funcionalidades. Una gran ventaja de los sistemas
operativos monolíticos es su velocidad. Ya que todos los componentes del sistema
operativo comparten los mismo privilegios y direcciones y la separación funcional
solo se hace entre procesos del sistema y los de aplicación, la demora para ejecutar
llamadas al sistema es mínima.

Sistemas por capas o niveles de privilegio (Jerárquico)

El objetivo de la arquitectura por capas o niveles de privilegio, es separar la acción


del código de los procesos del sistema, del núcleo y de los procesos de usuario.
Idealmente se separa en el nivel de máximo privilegios o protección, al código base
del núcleo.

En el siguiente nivel de privilegios se ubica a los procesos del sistema para la


gestión de procesos y memoria; en otro nivel a los procesos de gestión de entrada
salida incluyendo los drivers y en el nivel de menos privilegio, se ejecutan el resto
de los procesos de aplicación.
Lo relevante en esta arquitectura es que se necesitan realizar restricciones en
cuanto a las llamadas al sistema que puedan ejecutar los procesos de determinados
niveles. Por ejemplo, se ha de evitar que un proceso pueda efectuar una llamada al
sistema que requiera la atención de un componente de menor privilegio o tal vez
evitar que los programas de aplicación hagan llamadas directamente sobre el
núcleo. Así puede obligarse a utilizar como mediadores a otros niveles.

Sistemas de Micronúcleo

La idea fundamental es obtener un núcleo lo más pequeño y rápido posible y tratar


el resto de las funciones y componentes como procesos de aplicación. En esta
nueva concepción, es usual que el núcleo solo contenga lo necesario para la gestión
de memoria y procesos.

El resto se ejecutan como aplicaciones de usuario; es decir, con el nivel mínimo de


privilegios. En la práctica es un poco difícil conseguir esto sin una pérdida apreciable
de rendimiento. En alguna medida deben incluirse en el núcleo otras funciones
como el manejo de hardware y algunos drivers.

Sistemas cliente-servidor

La arquitectura dónde cada proceso se ejecuta de manera independiente, es una


de las más difíciles de lograr. Esta independencia implica que los procesos podrían
ser ejecutados en sistemas (no solo CPU, sino todo el hardware) diferentes y
distantes geográficamente. En cada sistema independiente solo estarían presentes
el núcleo y los componentes mínimos para la ejecución de uno o algunos procesos.
En esta arquitectura, se manifiesta con mayor peso la necesidad de establecer
llamadas al sistema robustas, para la comunicación entre procesos. Se escoge el
modelo cliente - -servidor para esta comunicación, porque se establece que cada
proceso (independiente o no) actúa como servidor del resto. En esta arquitectura,
el objetivo fundamental del núcleo es garantizar la comunicación entre procesos.
Esta filosofía propició la creación de los Sistemas Operativos distribuidos que son,
básicamente, implementaciones basadas en el modelo cliente servidor. La
tendencia actual es desarrollar aplicaciones distribuidas en vez de Sistemas
Operativos distribuidos, aprovechando las redes de computadoras.

1.2 Procesos y multiprogramación

Las computadoras actuales son capaces de realizar varias actividades a la vez.


Mientras se ejecuta una tarea de un usuario, el sistema puede estar leyendo una
unidad de disco o escribiendo en una impresora, gracias a las posibilidades que
ofrecen los circuitos de acceso directo a memoria (DMA) y las interrupciones
generadas por los órganos de L/E (Lectura/Escritura). Además, siempre que existan
esas interrupciones, se pueden ejecutar varios procesos de usuario de forma
alternada, solapándose con las operaciones de L/E. Así, en el método de
multiprogramación conocido como Foreground/Background, un proceso delantero o
prioritario, el proceso Foreground (FG), se ejecuta con preferencia sobre los demás.
Cuando este proceso solicita una operación de L/E, y mientras ésta se realiza el
sistema operativo puede aprovechar el tiempo del procesador haciendo que se
ejecute el primer proceso trasero o Background (BG 1); si éste a su vez llega a una
detención por L/E, se pasa a ejecutar el siguiente (BG 2), y así sucesivamente.
Cuando termina la operación de L/E de un proceso más delantero que el que se
está ejecutando, el sistema operativo en cuestión congela la ejecución de éste, y
reanuda la de aquel. De este modo, en la multiprogramación FG/BG los procesos
traseros utilizan el procesador mientras están inactivos los delanteros, mejorando
así el aprovechamiento del procesador.

Igualmente, si el ordenador tiene un reloj que genere interrupciones periódicas, se


puede usar para forzar el cambio de un proceso a otro; con esta actuación, el tiempo
del procesador se distribuye más equitativamente entre los procesos, llegando así
al tiempo compartido.

En los antiguos sistemas monoprogramados, cuando un proceso en ejecución


requería hacer uso de un dispositivo de E/S, el procesador quedaba ocioso mientras
el proceso permaneciese en espera y no retomara su ejecución. En cambio, en un
sistema multiprogramado, cuando un proceso Px concluye o se bloquea (en espera
de una operación de E/S), el núcleo del sistema operativo toma el control de la CPU
para efectuar lo que se denomina un «cambio de contexto», a fin de dar turno a otro
proceso Py para que se ejecute. Nótese que cuando el proceso Px recupere su
turno, reanudará su ejecución justo en el punto exacto en que se interrumpió. Este
mecanismo supone un mejor reparto de la carga de trabajo y un mayor
aprovechamiento de la CPU, lo que redunda en un mayor rendimiento del sistema.

Ventajas:

• Varios procesos en ejecución


• Permite el servicio interactivo simultáneo a varios usuarios de manera
eficiente
• Aprovecha los tiempos que los procesos pasan esperando a que se
completen sus operaciones de E/S y por ende aumenta la eficiencia en el uso
del CPU
• Las direcciones de los procesos son relativas, el programador no se
preocupa por saber en dónde estará el proceso dado que el sistema
operativo es el que se encarga de convertir la dirección lógica en física

1.3 Virtualización

La virtualización es una tecnología que permite crear múltiples entornos simulados


o recursos dedicados desde un solo sistema de hardware físico. El software llamado
hipervisor se conecta directamente al hardware y permite dividir un sistema en
entornos separados, distintos y seguros, conocidos como máquinas virtuales (VM).
Estas VM dependen de la capacidad del hipervisor de separar los recursos de la
máquina del hardware y distribuirlos adecuadamente. La virtualización le permite
aprovechar al máximo sus inversiones anteriores.

La máquina física original en que está instalado el hipervisor se llama "host", y las
VM que utilizan estos recursos se llaman "guests". Los guests utilizan los recursos
informáticos, como la CPU, la memoria y el almacenamiento, como un conjunto de
medios que pueden redistribuirse fácilmente. Por su parte, los operadores controlan
las instancias virtuales de estos y otros recursos para que los guests tengan a
disposición todos los que necesiten en cualquier momento.

Cuando el entorno virtual se está ejecutando, y un usuario o programa emite una


instrucción que requiere recursos adicionales del entorno físico, el hipervisor
transmite la solicitud al sistema físico y almacena los cambios en la caché. Todo
esto sucede prácticamente a la misma velocidad que habría si este proceso se
realizara dentro de la máquina física (en especial, si la solicitud se envía a través de
un hipervisor open source diseñado a partir de la máquina virtual basada en el kernel
[KVM]).

Tipos de virtualización

Virtualización de los datos

La virtualización de los datos posibilita que las empresas los traten como si fueran
un suministro dinámico, ya que proporciona funciones de procesamiento que
permiten reunir datos de varias fuentes, incorporar fuentes nuevas fácilmente y
transformar los datos según las necesidades de los usuarios. Las herramientas que
forman parte de este proceso interactúan con varias fuentes de datos y permiten
tratarlas como si fueran solo una. Gracias a ello, cualquier aplicación o usuario
puede obtener los datos que necesita, de la manera que los requiere en el momento
justo.

Virtualización de escritorio

Posibilita que un administrador central o una herramienta de administración


automatizada implementen entornos simulados de escritorio en cientos de
máquinas físicas al mismo tiempo. A diferencia de los entornos de escritorio
tradicionales que se instalan, configuran y actualizan físicamente en cada máquina,
la virtualización de escritorios permite que los administradores realicen múltiples
configuraciones, actualizaciones y controles de seguridad en todos los escritorios
virtuales.

Virtualización de los servidores

Los servidores son computadoras diseñadas para procesar un gran volumen de


tareas específicas de forma muy efectiva para que otras computadoras (portátiles o
de escritorio) puedan ejecutar otros procesos. La virtualización de un servidor, que
implica dividirlo para que sus elementos puedan utilizarse para realizar varias
tareas, permite ejecutar más funciones específicas.

Virtualización de sistemas operativos

Los sistemas operativos se virtualizan en el kernel, es decir, en sus administradores


centrales de tareas. Es una forma útil de ejecutar los entornos de Linux y Windows
de manera paralela. Las empresas también pueden insertar sistemas operativos
virtuales en las computadoras, lo cual:

▪ Reduce los grandes gastos en sistemas de hardware, ya que las


computadoras no requieren funciones tan inmediatas.
▪ Aumenta la seguridad porque todas las instancias virtuales se pueden
supervisar y aislar.
▪ Limita el tiempo que se destina a los servicios de TI, como las actualizaciones
de software.

Servidor Privado Virtual (VPS)

Un servidor privado virtual consiste en un entorno aislado, creado en un servidor


físico mediante tecnología de virtualización. Esta solución ofrece todas las ventajas
de un servidor estándar, con recursos asignados y una administración completa.
Asimismo, le permite elegir el sistema operativo y las aplicaciones que desea utilizar,
sin restricciones en su configuración.

Los VPS, a caballo entre un alojamiento compartido y un servidor físico, son


escalables, ofrecen buenas prestaciones y disponen de un entorno dedicado a un
precio muy asequible.

En el marco del alojamiento web, una máquina física muy potente suele albergar
varios servidores virtuales, cada uno de los cuales dispone de un sistema operativo
propio y proporciona a los usuarios pleno acceso raíz a través de Internet. De esta
forma, cada administrador trabaja de forma independiente respecto a otros usuarios
sobre el mismo fundamento de hardware. Este hardware es gestionado por el
denominado hipervisor, un componente de software que define el entorno virtual y
pone a disposición de cada VPS una porción de la totalidad de los recursos físicos
disponibles en el servidor físico como CPU, RAM o disco duro. Los derechos de raíz
permiten a los usuarios de un VPS instalar todas las aplicaciones soportadas por el
sistema operativo escogido, que pueden consistir en un software de servidor web,
un servidor de correo o aquellas más especiales como sistemas para eCommerce
o de blogging.

También podría gustarte