0% encontró este documento útil (0 votos)
23 vistas

Apuntes 4

Este documento describe diferentes arquitecturas de sistemas operativos, incluyendo sistemas por niveles o capas, microkernel, y kernel por módulos. Explica las ventajas y desventajas de cada arquitectura.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas

Apuntes 4

Este documento describe diferentes arquitecturas de sistemas operativos, incluyendo sistemas por niveles o capas, microkernel, y kernel por módulos. Explica las ventajas y desventajas de cada arquitectura.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 54

Sistemas operativos

Grupo: 2
M.I. Edgar Tista García
[email protected]
2024-2
Objetivos del curso

Objetivo General
• El alumno identificará al sistema operativo como un elemento clave
en la administración de recursos de un equipo de cómputo para
mejorar el desempeño de cualquier recurso del sistema
Objetivos del curso

Objetivos de la clase
• El alumno conocerá los conceptos fundamentales que conforman la
construcción de los sistemas operativos
• El alumno aplicará los conceptos adquiridos de estructuras de datos,
programación y algoritmos, en la construcción de sistemas operativos.
Plan de Estudios
Antecedentes fundamentales

• Desarrollo de algoritmos
• Dominio de estructuras de datos
✓ Pila, Colas, Listas ligadas, Árboles
• Nivel avanzado en lenguaje C
• Programación orientada a objetos
Horario de la clase

Hora L M M J V
13:00-15:00 x x
Dinámica de la clase

•Clases teóricas
✓ Desarrollo de temas con diapositivas
✓ Tomar notas para completar los temas
✓ Participación de los alumnos
✓ Se realizarán ejercicios de clase de los diferentes temas/subtema
Plataformas de apoyo y formas de comunicación

• Correo electrónico ([email protected])


• Educafi Unica (https://educafi02.ingenieria.unam.edu/EducafiUNICA)
• Zoom
• Youtube
Temario del Curso

1.- Conceptos básicos de sistemas operativos


2.- Procesos
3.- Memoria
4.- Bloques complementarios
5.- Introducción a los Sistemas distribuidos
6.- Seguridad aplicada a los sistemas operativos
Evaluación

•Exámenes Parciales 25%


•Prácticas 35%
•Ejercicios en clase 20%
•Tareas de investigación 20%
Exámenes Parciales

1.- Conceptos básicos de sistemas operativos 1° Parcial


2.- Procesos 2° Parcial

3.- Memoria
4.- Bloques complementarios 3° Parcial
Archivos
Dispositivos E/S
4° Parcial
5.- Introducción a los Sistemas distribuidos

5° Parcial
Tareas de investigación

• Todas las tareas se realizan a mano


• Se entregan una semana después de la fecha que se dejan.
• Todas la tareas deben llevar bibliografía.
• No se permite el uso de bibliografía de dudosa procedencia:
wikipedia.com
rincondelvago.com
buenasTareas.com
videos de Youtube
Tareas de investigación

• En cada tarea habrá un cuadro de evaluación con los rubros


correspondientes para establecer la evaluación
Ejercicios de clase

• Se realizarán durante las sesiones de clase. El objetivo es poner en


práctica y reafirmar los conceptos vistos en la sesión del día.
• Los ejercicios se deberán realizar a mano.
• La entrega se realiza únicamente en el horario de clase.
• En caso de faltar a clase (falta justificada) el alumno deberá entregar
el ejercicio al inicio de la siguiente clase, de lo contrario la calificación
será 0
Formato Entrega Digital

• La entrega de las tareas y prácticas se realizará de manera digital via EDUCAFI


• Deberá ser un formato claramente legible, de lo contrario se anulará.
* Se deberá usar AdobeScan, CamScanner o alguna app similar
• Todas las tareas y prácticas se deben entregar en un solo archivo (.pdf o .zip)
con el siguiente formato
(apellido paterno) (apellido materno) (nombre) (actividad). pdf
Perez Mendoza Sergio Tarea1.pdf
Balcázar Hernandez Javier Práctica7.zip
Entregas extemporaneas

• Solo se aceptarán Tareas, Prácticas y Ejercicios extemporáneos en caso de que


el profesor lo autorice de acuerdo con la siguiente regla de evaluación

Entrega Extemporanea Calificación Máxima

1 seg – 1 día despues 9

2 días 8

3 días 7

4 días 6
Examen Final (Ordinario)

• Para tener derecho a presentar examen final se requiere:


❑ Porcentaje de asistencia 80%
❑ No causar baja por alguna situación reglamentaria de la clase
• No se podrá aprobar el curso si no se aprueba el examen final
• En caso de tener promedio final aprobatorio y aprobar al menos 3 parciales,
no es necesario presentar examen final, de lo contrario, será obligatorio.
Consideraciones sobre la evaluación
• Después de calcular el promedio total del semestre, la calificación en
actas se asentará de la siguiente manera

Promedio Global Calif. final en actas


0 - 5.99 5
6.0 - 6.9 6
7.0 - 7.59 7
7.6 - 8.499 8
8.5 - 9.399 9
9.4 - inf 10
Consideraciones sobre la evaluación
• No se podrá acreditar el curso:
❑ Si no se cumple con el porcentaje de asistencia
❑ Si no se aprueba el examen ordinario (final)
• Ningún alumno que presente al menos una actividad del curso (examen
parcial, ejercicio de clase, o práctica de laboratorio) podrá tener “NP”
como calificación en actas.
Causales de baja de la asignatura

• Cometer un acto de fraude en tareas, ejercicios o exámenes.


• Grabar la clase o tomar fotos sin autorización
• Difundir contenido de la clase por algún medio electrónico sin
autorización previa.
• Acumular 5 faltas en el semestre
Niveles o capas >
-

Proteger

Sistemas por niveles o cap as La principal dificultad de este esquema es definir los alcances de cada Capa Onive) ; Porta haber una instruccion que tarde mas tiempo en ejecutarse por la existencia de basos intermedios

Micro Kernel La fundamental es eliminar esenciales Kernel , este


idea los componentes no del a implementarlos como programas del Sistema
y
nivel de . En caso
usuario de que haya un error externo no causa la

aetencin completa del Sistema Ventajas : facilidad de Ampliar el 50/La Desventaja del Kernel ; el procesamiento tiene funciones del Sistema
. es la
sobrecarga que se por las .

Kernel por Modulos . POO para crear un kernel modular ; hay una
mayor cantidad de funcionalidades, como sistemas de archivos
, controlador de dispositivos y otros servicios que normalmente estarian afuera

. Aprovecha
del microkernel las ventajas de otros modelos
, es posible eficientar el procesamiento ya que Los mulos se cargan solo cuando se utilizan
.

maquina Virtual .
su idea fundamental es la de abstraer s W (<u
, memoria
, etc) formando entornos de comunicacin aislados, creando la ilusin que ca uno de ellos est operando su propia compu privada

Los procesos se cutan y se comunican con el so a su ves este se comunica con el W para obtener recursos. La implementacion de maquina virtual es nuevo nivel que aparece entre el
y un

HW el 50 permitiendo la coexistencia de diferentes entornos de ejecucin ; Proporciona seguridad en un entorno controlado ; La comunicacin, se puede realizar con discos virtuales o entornos
y
. El SW debe
virtuales proporcionar un auplicado del procesador donde se ejecuta

Modo usuario

Moo Kernel

.4
1 componentes servicios a e diseno
consideraciones
,
y

componentes de un so Los componentes de un 50 cambiarn segun la estructura y proposito que este . Los
tenga bloques fundamentales no cambian , do que puede variar es la forma en la que se implementa (en

nivel de defalle o especializacin) y la forma en que se comunican con otros

En terminos principales componentes de los 50


generales los son :

Mulo para gestion


dl procesos

Memoria

sporte para interrupciones, control HW y dispos


E/S

Modulo de gestion de archivos

Interfa al usuario
componentes de 50 Diagrama de bloques de la arquitectura UNIX

Gestion de procesos crear borrar los procesos de Sistema


y de usuario
y
suspenser y reanuaar procs

Proporcionar mecanismos para la sincronicacion , comunicacion de procesos y tratamiento de bloqueos.

Memoria Principal Memoria secundaria

localidades en uso Gestion de Espacio libre

Datos y procesos
aadir o extraer as la memoria Asignacion del espacio de almacenamiento

Asignar o Liberar espacio Planificacin de disco

archivos
Sistema de creacion
y borrado de
y directorios
Archivos primitivas para manipular archivos
y directorios
↑ soporte de

Gestion de Entrada gra para contro ladores de dispo

dispos de E/S Un modulo encargado al relacionar Los disp d entrada


y salida con la memoria

controladores para
Antecedentes L
y Generalidades
↳ vonn Neuman

CPU obtener las instrucciones

memoria
de la
y ejecutarlas
· caa procesador tiene un

conjunto especifico de instruccio


-

res que puede jecuitar


usuario ->
-

Todas las instrucciones

-
Kernel
-

depuracin
-

Virtualizacin .

· Evolucin del CPU

↳ Sistemas

Sistemas
de un solo

multiprocesador
procesador

!
(SMP)
3
Simetrico

Asimtrico (ASMP)

Sistemas al procesamiento

compartido

↳ Sistemas en

Sistemas Distribuidos
cluster

·
Memoria

·
El Sistema operativo tiene differentes

funciones en los niveles de


jerarqua
de memoria
.
instrucciones
generacas por el

CPU
-
>
Copia (as
>
- SO y
Localidades de
programas as
usuario

Memoria mas frequentes


L
Archivos persistentes
terciario
"
NUBE "Almacenamiento .
1.5 Procesos. Concepto y estructura
1.5.1 Definición de proceso
Un proceso se puede definir:
Como un programa que se encuentra en ejecución
Cualquier secuencia de operaciones que están ejecutándose en memoria principal que realiza
una o varias acciones sobre ciertos datos
Un proceso es la unidad fundamental de trabajo en un sistema operativo
1.5.1 Definición de proceso

En un sistema operativo se pueden identificar procesos del sistema operativo, que


ejecutan código del sistema continuamente y los procesos de usuario, que ejecutan las
aplicaciones y las instrucciones que el usuario ingresa.
El sistema operativo debe dar soporte a sus propias actividades internas programadas
como los mecanismos de gestión de memoria manejo de interrupciones entre otros.
1.5.1 Gestión de procesos

El concepto de proceso es muy importante en los sistemas operativos por qué un proceso
es la unidad de trabajo de un sistema .
El objetivo principal es que todos ellos puedan coexistir y ejecutarse de forma concurrente
1.5.2 Estructura de un proceso

La estructura de un proceso se establece con los elementos siguientes:


❑ Sección de texto
❑ Sección de datos
❑ Pila
❑ Heap

Puede haber dos procesos asociados con el mismo programa pero son secuencias de
ejecución separadas las secciones de texto serán equivalentes y las secciones
de datos, heap y pila cambiar a un proceso a otro
1.5.3 Estados de un proceso
El estado de un proceso depende de la actividad que esté realizando
❑ Nuevo: El proceso está siendo creado
❑ En ejecución: El cpu ejecuta las instrucciones
❑ Espera: Se encuentra en un estado que depende de un suceso externo
❑ Preparado: Listo para que se le asigne un procesador
❑ Terminado: Ha concluido la ejecución
1.5.3 Estados de un proceso
El estado de un proceso depende de la actividad que esté realizando

Solo puede haber un proceso ejecutándose en cualquier procesador en un instante de


tiempo pero puede haber muchos procesos preparados y en espera
1.5.4 Cambio de Contexto

Cuando se produce una interrupción se tiene que guardar el contexto actual del
proceso que se está ejecutando de modo que se pueda restaurar cuando la interrupción
concluya.

El cambio de contexto es el procedimiento de


guardar el estado del proceso que se
encontraba en ejecución y cargar los valores
del nuevo proceso
1.5.4 Cambio de Contexto

La conmutación entre procesos requiere guardar y restaurar constantemente el valor


del estado

El tiempo que se utiliza en este procedimiento puede afectar el rendimiento del sistema
si no se establecen los mecanismos adecuados
1.5.5 Bloque de control de un proceso

Es la forma en la que cada proceso se va a


representar ante el sistema operativo.

También es la forma en la que se va a almacenar la


información de los procesos cuando son
suspendidos a causa de una interrupción o por otro
proceso.
1.5.5 Bloque de control de un proceso

*Conmutación de
un proceso a otro
1.5.6 Operaciones básicas de un proceso
Creación de Procesos

Los sistemas operativos identifican los procesos mediante una clave única.
Eventos del sistema que implican la creación de procesos
❑ Arranque de la computadora
❑ Ejecución del procesador para una llamada al sistema
❑ Petición de usuario para crear un proceso
❑ Inicio de un procesamiento por lotes
1.5.5 Operaciones básicas de un proceso

Creación de Procesos

El sistema operativo establece su


ejecución considerando como
estructura general, un “árbol de
procesos”
1.5.5 Operaciones básicas de un proceso

Creación de Procesos

Un proceso puede crear a otros nuevos mientras


se ejecuta
❑ fork()
❑ exec()
❑ exit()
❑ wait()
1.5.5 Operaciones básicas de un proceso
Creación de Procesos

Cuando inicia un nuevo proceso puede obtener sus recursos directamente el sistema
operativo o puede estar restringido a una parte de los recursos del proceso padre
El proceso padre puede tener que repartir sus recursos entre los procesos que se crean
través de el
1.5.5 Operaciones básicas de un proceso

En Términos de ejecución, existen dos posibilidades:


❑ El proceso padre continúe ejecutándose concurrentemente con el subproceso que
acaba de crear
❑ El proceso padre espera a que alguno o todos los procesos han terminado de
ejecutarse
En cuanto al espacio de direcciones
❑ El proceso hijo puede ser un duplicado del proceso padre
❑ Se puede cargar como un nuevo programa con localidades de memoria
independientes
1.5.5 Operaciones básicas de un proceso

Terminación de Procesos

Un proceso concluye cuando ha finalizado de ejecutar sus instrucciones y solicita al


sistema operativo que lo elimine.
❑ exit()
❑ TerminateProcess()
Regularmente devuelve un valor de estado a su proceso padre.
El sistema operativo libera la asignación de todos los recursos utilizados
1.5.5 Operaciones básicas de un proceso

Terminación de Procesos

Otra forma de terminación de un proceso es que otro proceso lo elimine.


❑ El proceso ha excedido los recursos asignados.
❑ La tarea asignada ya no es necesaria
❑ El padre termina su ejecución
1.6 Hilos. Concepto y estructura
1.6.1 Definición de Hilo
Un hilo es una secuencia de instrucciones atómicas en ejecución.
Un proceso puede estar conformado por uno o varios hilos
Cada hilo tiene su propio “estado” ante el sistema operativo
1.6.1 Definición de Hilo

Un proceso tradicional tiene una sola hebra de control (un solo hilo)
Si un proceso tiene múltiples hilos, entonces puede realizar más de una tarea a la vez
En la actualidad prácticamente cualquier aplicación de SW robusta, funciona mediante
la implementación de múltiples hebras de control.
ejemplo
-
un
es pensar
en los
hilos
& como un hilo
por cada pestaa
abierta
1.6.1 Definición de Hilo

hilo tiene su
· cada propio
su propio
valor de pila y valor

de
registros
1.6.1 Definición de Hilo

En los procesos tradicionales, cada uno tiene su espacio de direcciones mientras que en
uno con varios hilos, todos ellos comparten el espacio de direcciones
Ejecucin
-
1.6.2 Estados de un hilo > Preparado
-

>
- Bloqueado

Los principales estados de un hilo son: ejecución, preparado y bloqueado; y hay cuatro
-

operaciones básicas relacionadas con el cambio de estado de los hilos:


❑ Ejecución: Cuando un proceso está en ejecución al menos uno de sus hilos ejecuta
instrucciones. Cada hilo puede crear otros para repartir tareas.
❑ Bloqueado: Cuando un hilo debe esperar por algún evento, se bloquea guardando
sus registros. Es posible que el bloqueo de un hilo afecte solo a sí mismo o al
proceso por completo
1.6.2 Estados de un hilo

❑ Desbloqueo: Un hilo puede desbloquearse solo a si mismo o al proceso completo a


través de algún evento
❑ Terminación: Cuando un hilo finaliza, se liberan los datos almacenados en las pila y
los registros de ejecución
1.6.2 Estados de un hilo – EJEMPLO

Estados de un hilo en java


1.6.3 Modelos Multihilo
La implementación de hilos a nivel
sistema operativo se puede realizar
de diferentes formas
De la misma forma que hay
procesos de usuario y procesos
del sistema (de kernel) también
sucede lo mismo con los hilos
1.6.3 Modelos Multihilo
Modelo muchos a uno
Asigna múltiples hilos de nivel usuario a una sola
hebra del kernel
Dado que solo un hilo puede acceder al kernel cada
vez, no es posible ejecutar varios hilos en paralelo
sobre múltiples procesadores
1.6.3 Modelos Multihilo
Modelo uno a uno
Asigna cada hilo de usuario a un hilo de kernel.

Proporciona una mayor concurrencia, ya que si un hilo bloquea el sistema,


los otros pueden continuar su ejecución. Se vanalternando

Se puede generar sobrecarga al


crear muchos hilos de kernel, por
lo que los sistemas operativos
limitan el máximo número de hilos
que se pueden crear
1.6.3 Modelos Multihilo
Modelo muchos a muchos
Consiste en multiplexar varios hilos de usuario
sobre un número menor o igual de hilos de kérnel
El número de hilos de kérnel puede ser específico
por aplicación o general por procesador
No hay un límite en el número de hilos de usuario
que se puedan crear
1.6.4 Implementación de hilos
Existen diferentes implementaciones de hilos a nivel sistema operativo/aplicación de
software
❑ Hilos en POSIX
❑ Hilos en Win32
❑ Hilos en Java

También podría gustarte