Está en la página 1de 29

SISTEMAS OPERATIVOS

Mgs. Gabriela Montesdeoca


AUTOR DEL CONTENIDO
Unidad II: Estructuras de Sistemas Operativos
2.1 Introducción
2.2 Servicios del SO
2.3 Interfaz de usuario
2.4 Llamadas al sistema
2.5 Servicios del sistema
2.6 Linker y Loader
2.7 Aplicaciones
2.8 Estructura del sistema operativo
Objetivo

Conocer los servicios que


proporciona un sistema operativo y
las metodologías para diseñar tales
sistemas, asimismo la creación de
los sistemas operativos y el
procedimiento que la computadora
sigue cuando inicia.
Introducción

Un sistema operativo proporciona el entorno


dentro del cual se ejecutan los programas.
Internamente, los sistemas operativos varían
en su composición.
El diseño de un nuevo sistema operativo es
una tarea importante y los objetivos del
sistema deben estar bien definidos antes de
que comience el diseño. Estos objetivos
forman la base para elegir entre varios
algoritmos y estrategias que se explicarán a
continuación.
2.5 Servicios del sistema
Introducción
• Los programas del sistema
proporcionan un entorno
conveniente para el desarrollo y la
ejecución de programas.
• La vista de la mayoría de los usuarios
del sistema operativo está definida
por los programas del sistema, no
por las llamadas al sistema reales.
• Se pueden dividir en:

Gráfico - División
2.5 Servicios del sistema
Tipos de servicios
• Proporcionar un entorno conveniente para el desarrollo y la ejecución
del programa.
o Algunos de ellos son simplemente interfaces de usuario para
llamadas al sistema; otros son considerablemente más
complejos.
• Administración de archivos: cree, elimine, copie, cambie el nombre,
imprima, vuelque, enumere y, en general, manipule archivos y
directorios.
• Información de estado
o Algunos solicitan información al sistema: fecha, hora, cantidad
de memoria disponible, espacio en disco, número de usuarios.
o Otros proporcionan información detallada sobre rendimiento,
registro y depuración.
2.5 Servicios del sistema
Tipos de servicios
• Modificación de archivos
o Editores de texto para crear y modificar archivos
o Comandos especiales para buscar contenido de archivos o
realizar transformaciones del texto
• Compatibilidad con lenguajes de programación: a veces se
proporcionan compiladores, ensambladores, depuradores e
intérpretes.
• Carga y ejecución de programas: cargadores absolutos, cargadores
reubicables, editores de enlaces y cargadores superpuestos, sistemas
de depuración para lenguaje de máquina y de nivel superior.
• Comunicaciones: proporciona el mecanismo para crear conexiones
virtuales entre procesos, usuarios y sistemas informáticos.
2.5 Servicios del sistema
Tipos de servicios
o Permita que los usuarios envíen mensajes a las pantallas de
otros, exploren páginas web, envíen mensajes de correo
electrónico, inicien sesión de forma remota, transfieran archivos
de una máquina a otra.
• Servicios en segundo plano
o Lanzamiento en el momento del arranque
• Algunos para el inicio del sistema, luego terminar
• Algunos desde el arranque hasta el apagado del sistema
o Proporcione instalaciones como verificación de disco,
programación de procesos, registro de errores, impresión
o Ejecutar en el contexto del usuario, no en el contexto del kernel
o Conocidos como servicios, subsistemas, demonios
2.5 Servicios del sistema
Tipos de servicios
• Programas de aplicación
o No pertenecen al sistema
o Ejecutado por usuarios
o Normalmente no se considera parte del sistema operativo
o Lanzado por línea de comando, clic del mouse, toque con el dedo

Imagen - Programas
2.6 Linker and loader
Definición
• Código fuente compilado en archivos de objeto diseñados para
cargarse en cualquier ubicación de memoria física: archivo de objeto
reubicable.
• Linker combina estos en un solo archivo ejecutable binario.
o También trae librerías
• El programa reside en el almacenamiento secundario como
ejecutable binario.
• Debe ser traído a la memoria por el loader para ser ejecutado.
o La reubicación asigna direcciones finales a las partes del
programa y ajusta el código y los datos en el programa para que
coincidan con esas direcciones.
2.6 Linker and loader
Definición
• Los sistemas modernos de propósito
general no vinculan librerías a
ejecutables.
o Más bien, las librerías vinculadas
dinámicamente (en Windows,
DLL) se cargan según sea
necesario, compartidas por
todos los que usan la misma
versión de esa misma librería
(cargada una vez).
• Objeto, los archivos ejecutables
tienen formatos estándar, por lo que Imagen - Sistemas
el sistema operativo sabe cómo
cargarlos e iniciarlos.
2.6 Linker and loader
Ejemplo
Se describen los pasos, desde
compilar un programa hasta
colocarlo en la memoria,
donde se vuelve elegible para
ejecutarse en un núcleo de
CPU disponible.

Gráfico - Pasos
2.7 Aplicaciones
Definición
• Las aplicaciones son específicas del
sistema operativo.
• Las aplicaciones compiladas en un
sistema generalmente no son
ejecutables en otros sistemas
operativos.
• Cada sistema operativo proporciona
sus propias llamadas de sistema
únicas (formatos de archivo propios).
• Las aplicaciones pueden ser multi-
Imagen - Aplicaciones
sistema operativo.
2.7 Aplicaciones
Definición
o Escrito en lenguaje interpretado
como Python, Ruby e intérprete
disponible en múltiples sistemas
operativos.
o Aplicación escrita en lenguaje
que incluye una máquina virtual
que contiene la aplicación en
ejecución (como Java).
o Use lenguaje estándar (como C),
compile por separado en cada
sistema operativo para ejecutar Imagen - Aplicaciones

en cada
2.7 Aplicaciones
Definición
Application Binary Interface (ABI) es
una arquitectura equivalente a API,
define cómo los diferentes
componentes del código binario
pueden interactuar para un sistema
operativo determinado en una
arquitectura, CPU, otros.

Imagen - Aplicaciones
2.8 Estructura del SO
Introducción
• Un sistema tan grande y complejo
como un sistema operativo moderno
debe diseñarse con precisión para
que funcione correctamente y se
modifique fácilmente.
• Un enfoque común consiste en
dividir la tarea en pequeños
componentes, o módulos, en lugar
de que tener un solo sistema.
• Cada uno de estos módulos debe ser
una parte bien definida del sistema,
con interfaces y funciones
cuidadosamente definidas. Imagen - Sistemas
2.8 Estructura del SO
Introducción
• Puede usar un enfoque similar
cuando estructura sus programas: en
lugar de colocar todo su código en la
función main(), en su lugar, separa la
lógica en una serie de funciones,
articula claramente los parámetros y
los valores de retorno, y luego llama
a esas funciones desde main ().

Imagen - Sistemas
2.8 Estructura del SO
Definición
El sistema operativo de propósito general es un programa muy grande.
Varias formas de estructurar.
• Estructura simple – MS-DOS
• Más complejo – UNIX
• En capas: una abstracción
• Micronúcleo-Mach

Imagen - Sistemas
2.8 Estructura del SO
Estructura Monolítica – UNIX Original
• UNIX: limitado por la funcionalidad del hardware, el sistema
operativo UNIX original tenía una estructuración limitada.
• El sistema operativo UNIX consta de dos partes:
o Programas de sistemas
o El núcleo
o Consiste en todo lo que está debajo de la interfaz de llamada
al sistema y encima del hardware físico.
o Proporciona el sistema de archivos, la programación de la
CPU, la gestión de la memoria y otras funciones del sistema
operativo; un gran número de funciones para un nivel.
2.8 Estructura del SO
Estructura del sistema UNIX - Linux tradicional

Gráfico - UNIX Gráfico - Linux


2.8 Estructura del SO
Enfoque en capas
• El sistema operativo está dividido en
una serie de capas (niveles), cada
una construida sobre capas
inferiores.
• La capa inferior (capa 0), es el
hardware; la más alta (capa N) es la
interfaz de usuario.
• Con la modularidad, las capas se
seleccionan de modo que cada una
use funciones (operaciones) y
servicios de solo capas de nivel
inferior. Gráfico - Capas
2.8 Estructura del SO
Microkernels
• Mueve tanto del kernel al espacio del usuario.
• Mach ejemplo de microkernel.
o Kernel de Mac OS X (Darwin) basado en parte en Mach.
• La comunicación tiene lugar entre los módulos de usuario mediante el
paso de mensajes.
• Beneficios:
• Más fácil de extender un microkernel
• Más fácil de portar el sistema operativo a nuevas arquitecturas
• Más confiable (se ejecuta menos código en modo kernel)
• Más seguro
• Detrimentos: Sobrecarga de rendimiento del espacio del usuario para
la comunicación del espacio del kernel.
2.8 Estructura del SO
Estructura del sistema de micronúcleo

Gráfico - Estructura del sistema de micronúcleo


2.8 Estructura del SO
Sistemas Híbridos
• La mayoría de los sistemas operativos modernos en realidad no son
un modelo puro.
o Híbrido combina múltiples enfoques para abordar las
necesidades de rendimiento, seguridad y usabilidad.
o Kernels de Linux y Solaris en el espacio de direcciones del
kernel, por lo que son monolíticos y modulares para la carga
dinámica de la funcionalidad.
o Windows en su mayoría monolítico, más microkernel para
diferentes personalidades de subsistemas.
2.8 Estructura del SO
Sistemas Híbridos
• Apple Mac OS X híbrido, en capas,
Aqua UI más entorno de
programación Cocoa.
o A continuación se muestra el
kernel que consta de piezas
Mach microkernel y BSD Unix,
además de un kit de E/S y
módulos cargables
dinámicamente (llamados
extensiones del kernel
Gráfico - Aplicaciones
2.8 Estructura del SO
Sistemas Híbridos
• Windows usa una arquitectura
híbrida que proporciona subsistemas
para emular diferentes entornos de
sistemas operativos.
• Estos subsistemas de modo de
usuario se comunican con el kernel
de Windows para proporcionar
servicios reales.
• Windows 10 agrega un subsistema
de Windows para Linux (WSL), que Gráfico - User mode y Kernel mode

permite que las aplicaciones nativas


de Linux (especificadas como
binarios ELF) se ejecuten en
Windows 10.
2.8 Estructura del SO
Construyendo y Arrancando un SO
• Los SO generalmente son diseñados
para ejecutarse en una clase de
sistemas con una variedad de
periféricos.
• Comúnmente, el SO ya está instalado
en la computadora que compra.
o Pero puede construir e instalar
algunos otros sistemas
operativos.
o Si generar un SO desde cero.
Gráfico - Estructura del SO
2.8 Estructura del SO
Construyendo y Arrancando Linux
• Descargue el código fuente de Linux (http://www.kernel.org ).
• Configure el kernel a través de "make menuconfig“.
• Compile el kernel usando "make“.
o Produce vmlinuz, la imagen del kernel.
o Compilar módulos del kernel a través de “make modules“.
o Instale los módulos del kernel en vmlinuz a través de “make
modules_install”.
o Instale el nuevo kernel en el sistema a través de "make install“.
La Educación viene desde el interior;
la obtienes mediante la lucha, el
esfuerzo y el pensamiento.
FIN DE LA CLASE 4
UNIDAD 2

También podría gustarte