Sistemas Operativos: Damian Canovas 21-Mar-22

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 41

Sistemas Operativos

Damian Canovas
21-Mar-22
LA EVOLUCIÓN DE LOS SISTEMAS
OPERATIVOS
PROCESAMIENTO SERIE
No había SOP, tenían luces, interruptores, algún dispositivo de entrada y una impresora (un lector de tarjetas).

SISTEMAS EN LOTES SENCILLOS


$$$$. Años 50. General Motors uso de una IBM 701.

SISTEMAS EN LOTES MULTIPROGRAMADOS


El procesador se encuentra muy ocioso, Dispositivos de E/S son lentos comparados con el procesador.

SISTEMAS DE TIEMPO COMPARTIDO


Con el uso de la multiprogramación, el procesamiento en lotes puede ser bastante eficiente. Ofrece al usuario
interacción con el sistema.
Ejemplo de tarjeta perforada
SISTEMAS OPERATIVOS MODERNOS
Máquinas multiprocesador.
Alta velocidad a la red.
Tamaño creciente y variedad de dispositivos de almacenamiento de
memoria.
Aplicaciones multimedia, Internet y el acceso a la Web.
Modelo C/S ha influido en el diseño.
Seguridad, amenaza IoT.
SISTEMAS OPERATIVOS MODERNOS
cont.
Mejoras:

• Arquitectura micronúcleo o microkernel. (vs. núcleo monolítico)


• Multihilo. (Multithreading) hilos o threads que pueden ejecutar
concurrentemente
• Multiprocesamiento simétrico.
• Sistemas operativos distribuidos.
• Diseño orientado a objetos.
Conceptos
• Thread o hilo. Unidad de trabajo. Incluye el contexto del procesador
(que contiene el contador del programa y el puntero de pila) y su propia
área de datos para una pila (para posibilitar el salto a subrutinas). Un
hilo se ejecuta secuencialmente y se puede interrumpir de forma que el
procesador pueda dar paso a otro hilo.
Conceptos
• Proceso. Es una colección de uno o más hilos y sus recursos de
sistema asociados (como la memoria, conteniendo tanto código, como
datos, ficheros abiertos y dispositivos). Esto corresponde al concepto
de programa en ejecución. Dividiendo una sola aplicación en múltiples
hilos, el programador tiene gran control sobre la modularidad de las
aplicaciones y la temporización de los eventos relacionados con la
aplicación.
SMP: Symmetric Multi-Processing
Para lograr mayor eficiencia y fiabilidad.

1. Tiene múltiples procesadores.


2. Estos procesadores comparten las mismas utilidades de
memoria principal y de E/S, interconectadas por un bus.
3. Todos los procesadores pueden realizar las mismas
funciones (simétrico).
SMP planifica procesos o hilos a través de
todos los procesadores
• Rendimiento. Si el trabajo se puede organizar de tal forma que alguna
porción del trabajo se pueda realizar en paralelo, entonces un sistema
con múltiples procesadores alcanzar mayor rendimiento que uno con
un solo procesador del mismo tipo. Con la multiprogramación, sólo un
proceso puede ejecutar a la vez; mientras tanto, el resto de los
procesos esperan por el procesador. Con multiproceso, más de un
proceso puede ejecutarse simultáneamente, cada uno de ellos en un
procesador diferente.
SMP planifica procesos o hilos a través de
todos los procesadores
• Disponibilidad. En un multiprocesador simétrico, debido a que todos
los procesadores pueden llevar a cabo las mismas funciones, el fallo de
un solo procesador no para la máquina. Por el contrario, el sistema
puede continuar funcionando con un rendimiento reducido.
SMP planifica procesos o hilos a través de
todos los procesadores
• Crecimiento incremental. Un usuario puede mejorar el rendimiento
de un sistema añadiendo un procesador adicional.
• Escalado. Los fabricantes
pueden ofrecer un rango de
productos con diferente precio
y características basadas en el
número de procesadores
configurado en el sistema.

SMP planifica procesos o hilos a


través de todos los procesadores
Mejoras
Un sistema operativo distribuido (cluster).
Mejoras cont.
El diseño orientado a objetos añade extensiones modulares a un
pequeño núcleo. A nivel del sistema operativo, una estructura basada
en objetos permite a los programadores personalizar un sistema
operativo sin eliminar la integridad del sistema. La orientación a
objetos también facilita el desarrollo de herramientas distribuidas y
sistemas operativos distribuidos.
HISTORIA

Empieza con IBM como MS-DOS o PC-DOS. La versión inicial, DOS 1.0
apareció en 1981. Luego PC XT, MS desarrolló DOS 2.0, que salió al
mercado en 1983. Disco y solo un directorio con archivos. Cuando IBM
anunció el PC AT en 1984, MS introdujo DOS 3.0. sistema AT contenía el
procesador Intel 80286, que proporcionaba características de
direccionamiento extendido y protección de memoria. Luego los chips
de 32 bits 80386, luego 486 y Pentium.
En 1990, MS tenía una versión de la GUI,
conocida como Win 3.0, luego desarrolló un
nuevo y propio sistema operativo desde cero,
que denominó Win NT, este explota las
capacidades de los microprocesadores
contemporáneos y proporciona multitarea en un
entorno mono o multiusuario.
HISTORIA Luego NT 4.0 proporciona la misma GUI que Win
95. Luego Win 2000 elemento central es Active
cont. Directory, que es un servicio de directorios
distribuido capaz de realizar una proyección
entre nombres de objetos arbitrarios y cualquier
información sobre dichos objetos.
Windows:
XP (2001), Vista, 7, 8 y 10. Server, etc.
Active Directory (MS)
Windows

El SW que ejecuta en modo núcleo


tiene acceso a los datos del sistema y al
HW.
El que ejecuta en modo usuario, tiene
un acceso limitado a los datos del
sistema.
Windows 1.0 (1985)
Windows 3.0 (1990)
Windows XP (2001)
Windows 7 (2009)
Windows 10 (2014)
Windows hoy
ORGANIZACIÓN DEL WINDOWS
Arquitectura micronúcleo modificada. Como en el caso de las
arquitecturas micronúcleo puras, Windows es muy modular. Cada
función se gestiona mediante un único componente. Todas las
aplicaciones acceden a dicha función a través del componente
responsable y utilizando una interfaz estándar.
ORGANIZACIÓN DEL WINDOWS cont.
Se puede borrar, actualizar o reemplazar cualquier módulo sin
reescribir el sistema completo o su interfaz de programa de aplicación
(API). A diferencia de un sistema micronúcleo puro se configura de
forma que muchas de las funciones del sistema externas al micronúcleo
se ejecutan en modo núcleo. La razón reside en el rendimiento. Los
desarrolladores de Windows descubrieron que utilizando la técnica
micronúcleo pura, muchas funciones fuera del micronúcleo requerían
varios intercambios entre procesos o hilos, cambios de modo y el uso
de buffers de memoria extra.
Componentes modo núcleo
• Sistema ejecutivo. Contiene los servicios básicos: la gestión de memoria, la gestión de procesos e hilos,
seguridad, E/S y comunicación entre procesos.
• Núcleo. gestiona la planificación de hilos, el intercambio de procesos, las excepciones, el manejo de
interrupciones y la sincronización de multiprocesadores. A diferencia del resto del sistema ejecutivo y el nivel
de usuario, el código del núcleo no se ejecuta en hilos. Por tanto, es la única parte del sistema operativo que
no es expulsable o paginable.
• Capa de abstracción de hardware (HAL: Hardware Abstraction Layer). Realiza una proyección entre
comandos y respuestas hardware genéricos y aquellos que son propios de una plataforma específica. Aisla el
sistema operativo de las diferencias de hardware específicas de la plataforma. El HAL hace que el bus de
sistema, el controlador de acceso a memoria directa (DMA), el controlador de interrupciones, los
temporizadores de sistema y los módulos de memoria de cada máquina parezcan los mismos al núcleo. Da
soporte al multiprocesamiento simétrico (SMP).
• Controladores de dispositivo. Incluye tanto sistemas de archivos como controladores de dispositivos
hardware que traducen funciones de E/S de usuario en peticiones específicas a dispositivos hardware de E/S.
• Gestión de ventanas y sistemas gráficos.
Módulos del sistema ejecutivo
• Gestor de E/S. Responsable de enviar la petición al controlador del dispositivo apropiado para un procesamiento posterior. El gestor de E/S
implementa todas las API de E/S de Windows y provee seguridad y nombrado para dispositivos y sistemas de archivos (utilizando el gestor de objetos).
• Gestor de cache. Mejora el rendimiento de la E/S basada en ficheros.
• Gestor de objetos. Crea, gestiona y borra los objetos del sistema ejecutivo de Windows y los tipos de datos abstractos utilizados para representar
recursos como procesos, hilos y objetos de sincronización. Provee reglas uniformes para mantener el control, el nombrado y la configuración de
seguridad de los objetos. Crea los manejadores de objetos: información de control de acceso y un puntero al objeto.
• Gestor de plug and play. Determina que controladores se necesitan para un determinado dispositivo y carga dichos controladores.
• Gestor de potencia. Coordina la gestión de potencia entre varios dispositivos, se puede configurar para reducir el consumo (hibernación).
• Monitor de referencia de seguridad. Asegura la validación de acceso y las reglas de generación de auditor a. El modelo OO proporciona una visión de
seguridad consistente y uniforme, especificando las entidades que constituyen el sistema ejecutivo. Usa las mismas rutinas de validación de acceso y
las comprobaciones de auditoria para todos los objetos protegidos, incluyendo ficheros, procesos, espacios de direcciones y dispositivos de E/S.
• Gestor de memoria virtual. Proyecta direcciones virtuales del espacio de direcciones del proceso a las páginas físicas de la memoria del computador.
• Gestor de procesos e hilos. Crea y borra los objetos y traza el comportamiento de los objetos proceso e hilo.
• Gestor de configuración. Es responsable de implementar y gestionar el registro del sistema.
• Utilidad de llamada a procedimiento local (LPC: Local Procedure Call). Fuerza una relación C/S entre las apps y los subsistemas ejecutivos dentro de
un sistema, en un modo similar a una utilidad de llamada a procedimiento remoto (RPC: Remote Procedure Call) utilizada para procesamiento
distribuido.
MODELO CLIENTE/SERVIDOR
El sistema ejecutivo, los subsistemas protegidos y las aplicaciones son modelo
C/S.
Cada subsistema de entorno y subsistema del servicio ejecutivo se implementa
como uno o más procesos. Cada proceso espera la solicitud de un cliente por
uno de sus servicios (por ejemplo, servicios de memoria, servicios de creación
de procesos o servicios de planificación de procesadores). Un cliente, que puede
ser un programa que solicita un servicio a través del envío de un mensaje. El
mensaje se encamina a través del sistema ejecutivo al servidor apropiado.
El servidor lleva a cabo la operación requerida y devuelve los resultados o la
información de estado por medio de otro mensaje, que se encamina de vuelta al
cliente mediante el servicio ejecutivo.
Ventajas de la arquitectura C/S
• Simplifica el sistema ejecutivo. Es posible construir diversos API sin conflictos o duplicaciones en el sistema ejecutivo. Se
pueden a adir fácilmente nuevas interfaces.
• Mejora la fiabilidad. Cada módulo de los servicios ejecutivos se ejecuta como un proceso separado, con su propia
partición de memoria, protegida de otros módulos. Además, los clientes no pueden acceder directamente al HW o
modificar la zona de memoria en la cual se almacena el sistema ejecutivo. Un único servidor puede fallar sin provocar el
fallo o corromper el SOP.
• Proporciona a las aplicaciones maneras uniformes de comunicarse con el sistema ejecutivo a través de los LPC sin
restringir la flexibilidad. Las aplicaciones cliente esconden el proceso de paso de mensajes a través de resguardos de
funciones, que son contenedores no ejecutables almacenados en bibliotecas de enlace dinámicas (Dynamic Link Libraries,
DLL). Cuando una aplicación realiza una llamada a la interfaz del subsistema de entorno, el resguardo de la aplicación
cliente empaqueta los par metros de la llamada y los envía como un mensaje a un subsistema servidor que implementa la
llamada.
• Proporciona una base adecuada para la computación distribuida. Normalmente, la computación distribuida utiliza el
modelo C/S, con llamadas a procedimientos remotos implementadas utilizando módulos distribuidos cliente y servidor y el
intercambio de mensajes entre clientes y servidores. Con Windows, un servidor local puede pasar un mensaje al servidor
remoto para realizar su procesamiento en nombre de las aplicaciones locales cliente. Los clientes no necesitan saber si una
petición es atendida local o remotamente. De hecho, si una petición se atiende de forma local o remota, puede cambiar
dinámicamente, de acuerdo a las condiciones de carga actuales y a los cambios din micos de configuración.
LINUX - HISTORIA
Variante UNIX para la arquitectura del PC IBM (Intel 80386). Linus
Torvalds, un estudiante finlandés de informática, escribió la versión
inicial, la distribuyó por Internet en 1991. Desde entonces han
contribuido al desarrollo de Linux, bajo el control de Torvalds. Debido a
que Linux es libre y el código fuente está disponible, se convirtió pronto
en una alternativa para otras estaciones de trabajo UNIX, tal como las
ofrecidas por Sun Microsystems e IBM. Hoy en día, Linux es un sistema
UNIX completo que ejecuta en todas las plataformas.
Linux
La clave del éxito la Fundación de Software Libre (Free Software Foundation,
FSF). Esta fundación se centra en un SW estable, independiente de
plataforma, con alta calidad, y soportado por la comunidad de usuarios.
GNU proporciona herramientas para DEV y la licencia pública GNU (GPL:
GNU Public License) es el sello de aprobación de FSF. Torvald utilizó
herramientas GNU para el desarrollo del núcleo, que fue distribuido GPL.
Por tanto, las distribuciones son los productos del proyecto GNU de FSF.
Linux en las empresas por la calidad del núcleo de Linux. Muchos
programadores con talento han contribuido a la versión actual, dando lugar
a un producto técnicamente impresionante. Resulta óptimo para
incrementar el rendimiento de una variedad de plataformas.
ESTRUCTURA MODULAR
La mayoría de los núcleos Linux son monolíticos que incluyen prácticamente toda la funcionalidad del
SOP en un gran bloque de código que ejecuta como un único proceso con un único espacio de
direccionamiento.
Todos los componentes funcionales del núcleo tienen acceso a todas las estructuras internas de datos y
rutinas. Si los cambios se hacen sobre cualquier porción de un sistema operativo monolítico, todos los
módulos y rutinas deben volverse a enlazar y reinstalar, y el sistema debe ser reiniciado para que los
cambios tengan efecto.
Aunque Linux no utiliza una técnica de micronúcleo, logra muchas de las ventajas potenciales de esta
técnica por medio de su arquitectura modular, tiene una colección de módulos, algunos de los cuales
pueden cargarse y descargarse automáticamente bajo demanda.
Estos bloques relativamente independientes, módulos cargables. Esencialmente, un módulo es un
archivo cuyo código puede enlazarse y desenlazarse con el núcleo en tiempo real. Normalmente, un
módulo implementa algunas funciones específicas, como un sistema de archivos, un controlador de
dispositivo o algunas características de la capa superior del núcleo. Un módulo se ejecuta en modo
núcleo en nombre del proceso actual.
Características de los módulos cargables
• Enlace dinámico puede cargarse y enlazarse al núcleo
mientras el núcleo está en memoria y ejecutándose. Un
módulo también puede desenlazarse y eliminarse de la
memoria en cualquier momento.
• Módulos apilables se gestionan como una jerarquía. Los
módulos individuales sirven como bibliotecas cuando los
módulos cliente los referencian desde la parte superior de la
jerarquía, y actúan como clientes cuando referencian a
módulos de la parte inferior de la jerarquía.
Módulos
En Linux, se puede cargar y descargar explícitamente módulos del
núcleo utilizando los comandos insmod y rmmod.
Se pueden definir dependencias entre los módulos. Ventajas:
1. El código común para un conjunto de módulos similares (por
ejemplo, controladores para HW similar) se puede mover a un único
módulo, reduciendo la replicación.
2. El núcleo puede asegurar que los módulos necesarios están
presentes, impidiendo descargar un módulo del cual otros módulos que
ejecutan dependen y cargando algunos módulos adicionalmente
requeridos cuando se carga un nuevo módulo.
Componentes del Núcleo
• Señales. Para llamar a un proceso. Por ejemplo, notificar ciertos fallos a un proceso, división
por 0.
• Llamadas al sistema. Cuando un proceso requiere un servicio de núcleo específico. Pueden
agruparse en 6 categorías: sistema de ficheros, proceso, planificación, comunicación entre
procesos, socket (red) y misceláneos.
En Linux, puede existir un único proceso compuesto por múltiples hilos.
• Procesos y planificador. Crea, gestiona y planifica procesos.
• Memoria virtual. La asigna y la gestiona.
• Sistemas de archivos. Proporciona un espacio de nombres global y jerárquico para los archivos,
directorios y otros objetos relacionados con los ficheros.
• Protocolos de red. Da soporte a la interfaz Socket (manejador) para los usuarios, utilizando la
pila de protocolos TCP/IP. Socket una interfaz local para una ruta de red. E/S de un flujo de datos
se puede direccionar a un socket.
Componentes del Núcleo (cont.)
• Controladores de dispositivo tipo carácter. Para enviar o recibir datos un byte
cada vez, como los terminales, los módems y las impresoras.
• Controladores de dispositivo tipo bloque. Para los que leen y escriben datos en
bloques, memoria secundaria (discos, DVD, USB, etc.).
• Controladores de dispositivo de red. Gestiona placas de red y los puertos de
comunicación permiten las conexiones, tal como los puentes y los routers.
• Traps y fallos. Gestiona los traps (excepción) y fallos generados por la CPU, como
los fallos de memoria.
• Memoria física. Gestiona marcos de páginas de memoria real y asigna las páginas
de memoria virtual.
• Interrupciones. Gestiona las interrupciones de los dispositivos periféricos.
A saber
1. ¿Qué es un SOP?
2. ¿Qué objetivos tiene?
3. ¿Qué utilidades tiene?
4. ¿Qué es Windows?
5. ¿Qué es Linux?
6. ¿Qué es un módulo cargable?
7. ¿Qué es SMP procesamiento simétrico?
8. ¿Qué es el Sistema Ejecutivo?
9. ¿Cuales son los componentes del núcleo?
10. ¿A que se refiere el modelo C/S de Windows?
39
?
40
MUCHAS
GRACIAS!
41

También podría gustarte