SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
ESTRUCTURA Y PROCESOS SO
Mg. Richard E. Mendoza G.
Docente
AGENDA
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos 2/28
▪ Servicios del sistema operativo (system services).
▪ Llamados a sistema (system calls).
▪ Estructura del sistema. Máquinas virtuales.
SERVICIOS DEL SO
3/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• El sistema brindará un entorno de ejecución de programas dónde se
dispondrá de un conjunto de servicios que serán accesible mediante
una interfase bien definida.
• Servicios básicos que debe brindar un sistema operativo:
▪ Ejecución de programas y administración de procesos.
▪ Operaciones de Entrada/Salida.
▪ Manipulación de sistemas de archivos.
▪ Comunicación entre procesos.
▪ Detección y manipulación de errores (excepciones).
EJECUCIÓN DE PROGRAMAS Y
ADMINISTRACIÓN DE PROCESOS
4/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
El sistema debe ser capaz de cargar un programa a memoria y ejecutarlo. Es
decir, crear un proceso.
Cada proceso cuenta con un contador de programa (PC, program counter)
que determina la próxima instrucción de código a ejecutar.
El proceso necesita de ciertos recursos (CPU, memoria, archivos y dispositivos
de E/S) para realizar su tarea.
El sistema operativo es responsable de las siguientes tareas:
• Mantener que partes de la memoria están siendo utilizadas y por quién.
• Decidir cuales procesos serán cargados a memoria cuando exista espacio
de memoria disponible.
• Asignar y quitar espacio de memoria según sea necesario.
• El sistema albergará muchos procesos compitiendo por los recursos
y será el responsable de proveer de medios o servicios para que
realicen su tarea:
▪ Crear y destruir procesos.
▪ Suspensión y reanudación de procesos.
▪ Proveer mecanismos para la cooperación (sincronización) y comunicación
entre los procesos.
▪ Proveer mecanismos para prever la generación de dead-locks o lograr salir
de ellos (opcional).
• El proceso deberá poder en algún momento finalizar su ejecución, ya
sea de forma normal o anormal (indicando un error).
5/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
EJECUCIÓN DE PROGRAMAS Y
ADMINISTRACIÓN DE PROCESOS
OPERACIONES DE ENTRADA/SALIDA
6/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• Un programa en ejecución necesitará de operaciones de
Entrada/Salida para acceder a un archivo o dispositivo.
• Por eficiencia y protección los usuarios no accederán directamente al
dispositivo.
• El sistema operativo deberá encapsular y ocultar las características
específicas de los diferentes dispositivos de almacenamiento y ofrecer
mecanismos de acceso comunes para todos los medios de
almacenamiento.
• Para ello proveerá de:
▪ Un conjunto de servicios que provean la interfase con el subsistema e
implementen técnicas de cache, buffering y spooling.
▪ Una interfase cliente con el sistema operativo para los manejadores de
dispositivos o device drivers que permitirá interactuar (mediante cargas
dinámicas o no) con cualquier modelo de dispositivo.
▪ Device drivers específicos.
▪ Montaje y desmontaje (Mount/Dismount) de dispositivo.
MANIPULACIÓN DEL SISTEMA DE ARCHIVOS
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos 7/28
• Se deberá proveer acceso al sistema de archivos.
• El sistema operativo es responsable de las siguientes actividades:
▪ Administrar el espacio libre.
▪ Asignación del lugar de la información.
▪ Algoritmos de planificación de disco.
• Proporciona una
almacenamiento en los diferentes dispositivos implementando
vista uniforme de todas las formas de
el
concepto de archivo como una colección arbitraria de bytes u otras
clases o organizaciones más sofisticadas.
• Implementará los métodos de:
▪ Abrir, cerrar, extender y borrar archivos
▪ Leer, escribir archivos
▪ Crear y borrar directorios
COMUNICACIÓN ENTRE PROCESOS
8/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• Es deseable que los procesos puedan comunicarse.
• Se deberá proveer mecanismos de comunicación entre ellos ya sea
que estén en
compartida), o
el mismo computador (a través de memoria
en diferentes computadores (a través de
transferencias de paquetes de red entre los sistemas operativos
involucrados).
• También debe permitir la sincronización de procesos que trabajan en
conjunto.
• En el caso de sistemas remotos se generaliza el concepto de
dispositivo virtual implementando un manejador (driver) que
encapsula el acceso a estos dispositivos.
DETECCIÓN Y MANIPULACIÓN
DE ERRORES
9/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• El sistema deberá tomar decisiones adecuadas ante eventuales
errores que ocurran y proveer una interfaz para manejarlos.
• Ejemplos:
▪ Fallo en un dispositivo de memoria.
▪ Fallo en la fuente de energía.
▪ Fallo en un programa.
SERVICIOS DEL SO
10/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• Otros servicios de propósito general que deberá brindar el sistema
operativo son:
▪ Asignación de recursos.
▪ Contabilización.
▪ Protección, manejo de usuarios y permisos.
• Una vez que están definidos los servicios que brindará el sistema
operativo, se puede empezar a desarrollar la estructura del sistema.
ASIGNACIÓN DE RECURSOS
11/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
▪ Cuando hay varios procesos compitiendo por los recursos es
importante tener algoritmos eficientes de asignación
▪ Cada recurso tiene necesidades y por lo tanto algoritmos diferentes
CONTABILIZACIÓN
12/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
▪ Se quiere llevar un registro de que usuarios usan que recursos y en
que cantidad
▪ Permiten dimensionar y evaluar el estado del sistema
PROTECCIÓN, MANEJO DE
USUARIOS Y PERMISOS
13/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
▪ En un sistema multiusuario donde se ejecutan procesos en forma
concurrente se deben tomar medidas que garanticen la ausencia de
interferencia entre ellos.
▪ Por protección nos referimos a los mecanismos por los que se controla al
acceso de los procesos a los recursos.
▪ El mecanismo debe incorporar la posibilidad de definir reglas de acceso
y asegurar su verificación en toda ocasión que corresponda.
LLAMADOS AL SISTEMA
14/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
▪ Los llamados al sistema (system calls) son una interfaz, provista por el
núcleo, para que los procesos de usuarios accedan a los diferentes
servicios que brinda el sistema operativo.
▪ Al principio los system calls estaban desarrollados en lenguaje de la
arquitectura de la máquina.
▪ En los sistemas modernos están programados en lenguajes de
programación de alto nivel como C o C++.
▪ Los servicios son invocados por los procesos en modo usuario, cuando
ejecutan lo hacen en modo monitor, y al retornar vuelven al modo
usuario.
▪ Típicamente a los system calls se les asocia un número que los identifica
(en Linux son aproximadamente 350).
LLAMADOS AL SISTEMA
15/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• La llamada aun system call incluye las siguientes tareas:
• Cargar los parámetros en el lugar adecuado (stack o registros).
• Cargar el número de system call en algún registro específico (Ej: eax en
Intel). Invocar a la interrupción por software (trap) adecuada (system call
handler).
• El hardware cambia el bit de modo a monitor e invoca al manejador de la
interrupción que controla que el número de system call pasado en el
registro sea menor que el mayor del sistema y, finalmente, invoca al
system call correspondiente.
• El valor retornado por el system call es puesto en un registro específico
(Ej.: eax en Intel).
LLAMADOS AL SISTEMA
16/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• Existen 3 formas de pasar los parámetros al sistema operativo:
• A través de los registros: Se utilizan un conjunto de registros para pasar los
parámetros. Tiene el problema de la cantidad de parámetros es fija y que
restringe el tamaño del valor.
▪ En Intel se utilizan 5 registros: ebx, ecx, edx, esi, y edi.
▪ Un bloque de memoria apuntado a través de un registro.
▪ En el stack del proceso que realiza el llamado. El proceso guarda los
parámetros con operaciones push sobre el stack y el sistema operativo
los saca con la operación pop.
• De la misma forma se pueden recibir los datos de
respuesta
LLAMADOS AL SISTEMA
17/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
LLAMADOS AL SISTEMA
18/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
Los system calls se clasifican en distintos tipos:
Control de procesos
•Cargar, ejecutar, finalizar, abortar, obtener atributos, cargar atributos, esperar por
tiempo, esperar por un evento o señal, obtener o liberar memoria, etc.
Gestión de archivos
• Crear, borrar, abrir, cerrar, leer, escribir, obtener o cargar atributos, etc.
Gestión de dispositivos
•Requerir o liberar un dispositivo, leer o escribir, buscar o cargar atributos de un
dispositivo, etc.
Gestión de información del sistema
•Obtener o cargar la hora del sistema, datos del sistema, de procesos, etc.
Comunicaciones
• Crear o destruir conexiones, enviar o recibir mensajes, etc.
ESTRUCTURA DEL SISTEMA
19/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
La estructura interna de los sistemas operativos pueden ser muy
diferentes.
Se deben tener en cuenta:
Metas de los usuarios: ser amigable, intuitivo, confiable, seguro, rápido, etc.
Metas del sistema: fácil de diseñar, implementar y mantener, también
flexible, confiable y eficiente.
Diseño del sistema:
Sistema monolítico. Sistema en capas.
Sistema con micronúcleo (microkernel).
SISTEMA MONOLÍTICO
20/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• No se tiene una estructura definida.
• El sistema es escrito como una colección de procedimientos, que
pueden ser invocados por cualquier otro.
• No existe “ocultación de información”, ya que cualquier procedimiento
puede invocar a otro.
• Si bien todo procedimiento es público y accesible a cualquiera, es
posible tener buenos diseños y lograr, de esa forma, buena eficiencia en
el sistema.
▪
▪
Ej.: MS-DOS.
– Los componentes pueden invocar procedimientos de cualquiera.
Ej.: Linux
– Linux es un núcleo monolítico que a logrado un buen diseño orientado
a objetos (sistema modular).
SISTEMA EN CAPAS
• Se organiza el diseño en una
jerarquía de capas
construidas una encima de la
otra.
• Los servicios que brinda cada
capa son expuestos en una
interfase pública y son
consumidos solamente por los
de la capa de arriba.
• La capa 0 es el hardware y la
N es la de procesos de
usuario.
21/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
SISTEMA EN CAPAS
22/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
Ventajas:
▪ Modularidad.
▪ Depuración y verificación de cada capa por separado.
Desventajas:
▪ Alto costo de definición de cada capa en la etapa de diseño.
▪ Menos eficiente frente al sistema monolítico ya que sufre de
overhead al pasar por cada capa.
SISTEMA EN CAPAS
▪ Ej.: en capas – OS/2.
23/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
SISTEMA CON MICRONÚCLEO
(MICROKERNEL)
24/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
Se constituye de un núcleo un manejo minimo de que brinde procesos,
memoria y, además, provea de una capa de comunicación entre
procesos.
▪ La capa de comunicación es la funcionalidad principal del sistema.
▪ Los restantes servicios del sistema son construidos como procesos
separados al micronúcleo que ejecutan en modo usuario.
▪ El acceso los servicios del sistema se realiza a través de pasaje de
mensajes.
SISTEMA CON MICRONÚCLEO
Ventajas:
Aumenta la portabilidad y escalabilidad ya que encapsula las características
físicas del sistema
Para incorporar un nuevo servicio no es necesario modificar el núcleo. Es más
seguro ya que los servicios corren en modo usuario.
El diseño simple y funcional típicamente resulta en un sistema más confiable.
25/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
MÁQUINAS VIRTUALES
26/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
▪
▪
▪
Se puede ver como una extensión de los sistemas multiprogramados
pero a más bajo nivel
Los procesos no solamente trabajan sobre el sistema operativo como si
fueran el único proceso en el sistema sino que tienen una copia virtual
del hardware de la CPU
Las máquinas virtuales corren como procesos a nivel de usuario y el
administrador de MVs (hypervisor) implementa un modo usuario virtual y
un modo administrador virtual
También se implementan discos virtuales sobre los discos reales para las
máquinas virtuales
▪ Dos modos básicos
– Tipo 1: el administrador corre directamente sobre el hardware
– Tipo 2: el administrador corre como un proceso sobre un sistema operativo
normal
MÁQUINAS VIRTUALES:
BENEFICIOS
27/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
• Seguridad
▪ Los procesos en cada máquina virtual son completamente independientes
de los procesos en las otras
• Facilidad de desarrollo
▪ Se pude correr un sistema operativo de test en una máquina virtual sin
correr riesgos con el sistema real
• Flexibilidad
▪ Correr un sistema operativo de una arquitectura en una máquina diferente
• Alta disponibilidad
▪ En caso de falla de una MV se puede levantar otra rápidamente en
otro hardware
MÁQUINAS VIRTUALES:
DESVENTAJAS
28/28
Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
▪ Los tiempos de las operaciones pueden tardar más que en un
sistema real
• Tiempo adicional por traducir las operaciones
▪ Tiempo de respuesta de la máquina muy poco predecible por uso
del sistema operativo de base u otras MVs
• No apropiado para sistemas de tiempo real
PROCESOS SO
Mg. Richard E. Mendoza G.
Docente
AGENDA
30/3
Sistemas Operativos | Curso 2015 | Procesos
▪ Proceso.
• Definición de proceso.
• Contador de programa.
• Memoria de los procesos.
▪ Estados de los procesos.
• Transiciones entre los estados.
▪ Bloque descriptor de proceso (PCB).
▪ Creación de procesos.
▪ Listas y colas de procesos.
▪ Cambio de contexto (context switch). Hilos (Threads).
• Threads a nivel de usuario.
• Threads a nivel de núcleo del sistema.
• Modelos de threads.
AGENDA
DEFINICIÓN DE PROCESO
31/3
Sistemas Operativos | Curso 2015 | Procesos
▪ El principal concepto en cualquier sistema operativo es el de
proceso. Un proceso es un programa en ejecución, incluyendo el
valor del
▪ program counter, los registros y las variables.
▪ Conceptualmente, cada proceso tiene un hilo (thread) de ejecución
que es visto como un CPU virtual.
▪ El recurso procesador es alternado entre los diferentes procesos
que existan en el sistema, dando la idea de que ejecutan en paralelo
(multiprogramación)
CONTADOR DE PROGRAMA
Cada proceso tiene su program counter, y avanza cuando el proceso tiene
asignado el recurso procesador. A su vez, a cada proceso se le asigna un
número que lo identifica entre los demás: identificador de proceso (process id)
32/3
Sistemas Operativos | Curso 2015 | Procesos
MEMORIA DE LOS PROCESOS
▪ Un proceso en memoria se constituye
de varias secciones:
▪ Código (text): Instrucciones del proceso.
▪ Datos (data): Variables globales del
proceso.
▪ Memoria dinánica (heap): Memoria
dinámica que genera el proceso.
▪ Pila (stack): Utilizado para preservar el
estado en la invocación anidada de
procedimientos y funciones.
33/35
Sistemas Operativos | Curso 2015 | Procesos
ESTADOS DE LOS PROCESOS
34/35
Sistemas Operativos | Curso 2015 | Procesos
▪ El estado de un proceso es definido por la actividad corriente en que
se encuentra.
▪ Los estados de un proceso son:
• Nuevo (new): Cuando el proceso es creado.
• Ejecutando (running): El proceso tiene asignado un procesador y está
ejecutando sus instrucciones.
• Bloqueado (waiting): El proceso está esperando por un evento (que
se complete un pedido de E/S o una señal).
• Listo (ready): El proceso está listo para ejecutar, solo necesita del
recurso procesador.
• Finalizado (terminated): El proceso finalizó su ejecución.
ESTADOS DE LOS PROCESOS
• Diagrama de estados y transiciones de los procesos.
35/35
Sistemas Operativos | Curso 2015 | Procesos
TRANSICIONES ENTRE ESTADOS
36/35
Sistemas Operativos | Curso 2015 | Procesos
▪ Nuevo

– Listo
▪
Al crearse un proceso pasa inmediatamente al estado listo.
Listo 
E–jecutando
En el estado de listo, el proceso solo espera para que se le asigne un
procesador para ejecutar (tener en cuenta que puede existir más de un
procesador en el sistema). Al liberarse un procesador el planificador
(scheduler) selecciona el próximo proceso, según algún criterio
definido, a ejecutar.
TRANSICIONES ENTRE ESTADOS
37/35
Sistemas Operativos | Curso 2015 | Procesos

Ejecutando
Listo
Ante una interrupción que se genere, el proceso puede perder el recurso
procesador y pasar al estado de listo. El planificador será el encargado
de seleccionar el próximo proceso a ejecutar.
E
–
jecutando 
Bloqueado
A medida que el proceso ejecuta instrucciones realiza pedidos en distintos
componentes (ej.: genera un pedido de E/S). Teniendo en cuenta que el
pedido puede demorar y, además, si está en un sistema multiprogramado,
el proceso es puesto en una cola de espera hasta que se complete su
pedido. De esta forma, se logra utilizar en forma más eficiente el
procesador.
TRANSICIONES ENTRE ESTADOS
38/35
Sistemas Operativos | Curso 2015 | Procesos
▪ Bloqueado

– Listo
Una vez que ocurre el evento que el proceso estaba esperando en la cola
de espera, el proceso es puesto nuevamente en la cola de procesos listos.
▪ Ejecutando 
Te–rminado
Cuando el proceso ejecuta sus última instrucción pasa al estado terminado.
El sistema libera las estructuras que representan al proceso.
BLOQUE DESCRIPTOR DE PROCESO
▪ El proceso es representado, a nivel del sistema operativo, a través del
bloque descriptor de proceso (Process Control Block)
1 /35
Sistemas Operativos | Curso 2015 | Procesos
BLOQUE DESCRIPTOR DE PROCESO
40/35
Sistemas Operativos | Curso 2015 | Procesos
▪ T
odo proceso se describe mediante su estado, nombre, recursos
asignados, información contable, etc.
▪ Para ello se utiliza una estructura de datos que será el operando de las
operaciones sobre procesos, recursos y del planificador (scheduler).
▪ Los campos de esta estructura son:
▪ Estado CPU: El contenido de esta estructura estará indefinido toda vez
que el proceso está en estado ejecutando (puesto que estará almacenado
en la CPU indicada por procesador). Registro de flags.
▪ Procesador: [1..#CPU]: Contendrá el número de CPU que está ejecutando
al proceso (si está en estado ejecutando), sino su valor es indefinido.
▪ Memoria: Describe el espacio virtual y/o real de direccionamiento según la
arquitectura del sistema. Contendrá las reglas de protección de memoria
así como cual es compartida, etc..
▪ Estado del proceso: ejecutando, listo, bloqueado, etc.
BLOQUE DESCRIPTOR DE PROCESO
41/35
Sistemas Operativos | Curso 2015 | Procesos
▪ Recursos: Recursos de software (archivos, semáforos, etc.) y
hardware (dispositivos, etc.).
▪ Planificación: Tipo de planificador.
▪ Prioridad: Podrá incluir una prioridad externa de largo aliento, o en su
defecto una prioridad interna dinámica de alcance reducido.
▪ Contabilización: Información contable como ser cantidad de E/S,
fallos de páginas (page faults), consumo de procesador, memoria
utilizada, etc.
▪ Ancestro: Indica quién creó este proceso.
▪ Descendientes: Lista de punteros a PCBs de los hijos de este
proceso.
CREACIÓN DE PROCESOS
42/35
Sistemas Operativos | Curso 2015 | Procesos
▪ Los procesos de un sistema son creados a partir de otro proceso.
▪ Al creador se le denomina padre y al nuevo proceso hijo. Esto
genera una jerarquía de procesos en el sistema.
▪ En el diseño del sistema operativo se debe decidir, en el momento
de creación de un nuevo proceso, cuales recursos compartirán el
proceso padre e hijo. Las opciones son que compartan todo, algo o
nada.
▪ También se debe determinar que sucede con los hijos cuando
muere el padre. Pueden morir también o cambiar de padre.
▪ Una vez creado el nuevo proceso tendrán un hilo (program counter)
de ejecución propio. El sistema genera un nuevo PCB para el
proceso creado.
CREACIÓN DE PROCESOS
• Ej.: UNIX
• UNIX provee el system call fork para la creación de un nuevo
proceso.
• La invocación a esta función le retorna al padre el número de process
id del hijo recién creado y al hijo el valor 0. El hijo comienza su
ejecución en el retorno del fork.
• Además, se provee del system call exec que reemplaza el espacio de
memoria del proceso por uno nuevo
43/35
Sistemas Operativos | Curso 2015 | Procesos
CREACIÓN DE PROCESOS
44/35
Sistemas Operativos | Curso 2015 | Procesos
int main() {
pid_t pid;
/* crea un nuevo proceso */ pid = fork();
if (pid < 0) { /* error */
fprintf(stderr, "Fork Failed"); exit(-1);
}
if (pid == 0) /* proceso hijo */
execlp("/bin/ls", "ls", NULL);
else { /* padre */ wait(NULL);
printf("Child Complete"); exit(0);
}
}
CREACIÓN DE PROCESOS
Sistemas Operativos | Curso 2015 | Procesos 17/35
LISTAS Y COLAS DE PROCESOS
Sistemas Operativos | Curso 2015 | Procesos 18/35
Los procesos, en los distintos estados que tienen, son agrupados en
listas o colas:
▪ Lista de procesos del sistema (job queue): En esta lista están todos los
procesos del sistema. Al crearse un nuevo proceso se agrega el PCB a
esta lista. Cuando el proceso termina su ejecución es borrado.
▪ Cola de procesos listos (ready queue): Esta cola se compondrá de los
procesos QUE estén en estado listo. La estructura de esta cola
dependerá de la estrategia de planificación utilizada.
▪ Cola de espera de dispositivos (device queue): Los procesos que
esperan por un dispositivo de E/S particular son agrupados en una lista
específica al dispositivo. Cada dispositivo de E/S tendrá su cola de
espera.
LISTAS Y COLAS DE PROCESOS
Sistemas Operativos | Curso 2015 | Procesos 19/35
LISTAS Y COLAS DE PROCESOS
Diagrama de transición de un proceso entre las colas del sistema.
48/35
Sistemas Operativos | Curso 2015 | Procesos
CAMBIO DE CONTEXTO
49/35
Sistemas Operativos | Curso 2015 | Procesos
A la tarea de cambiar un proceso por otro en el procesador se le
denomina cambio de contexto (context switch).
El cambio de contextos entre procesos implica las siguientes tareas:
▪ Salvar el estado del proceso (registros, información de punteros de
memoria) que está ejecutando en su PCB.
▪ Cambiar el estado del proceso que estaba ejecutando al que
corresponda.
▪ Cargar el estado del proceso asignado a la CPU a partir de su PCB.
▪ Cambiar el estado del proceso nuevo a ejecutando.
CAMBIO DE CONTEXTO
Sistemas Operativos | Curso 2015 | Procesos 22/35
COOPERACIÓN ENTRE PROCESOS
51/35
Sistemas Operativos | Curso 2015 | Procesos
• Procesos concurrentes pueden ejecutar en un entorno aislado (se
debe asegurar la ausencia de interferencias) o, eventualmente,
podrán interactuar cooperando en pos de un objetivo común
compartiendo objetos comunes.
• Es necesario que el sistema operativo brinde unas herramientas
específicas para la comunicación y sincronización entre los
procesos (Inter Process Communication – IPC).
• IPC es una herramienta que permite a los procesos comunicarse y
sincronizarse sin compartir el espacio de direccionamiento en
memoria.
• Hay dos enfoques fundamentales:
• Memoria compartida
• Pasaje de mensajes
THREADS
52/35
Sistemas Operativos | Curso 2015 | Procesos
Hay aplicaciones donde es necesario utilizar procesos
que compartan recursos en forma concurrente.
IPC brindan una alternativa a nivel de sistema operativo.
Los sistemas operativos modernos están proporcionando
servicios para crear más de un hilo (thread) de ejecución
(control) en un proceso.
Con las nuevas tecnologías multi-core esto se hace algo
necesario para poder sacar mayor provecho al recurso de
procesamiento.
De esta forma, se tiene más de un hilo de ejecución en el
mismo espacio de direccionamiento.
THREADS
53/35
Sistemas Operativos | Curso 2015 | Procesos
• Un Thread (Hilo) es una unidad básica de utilización de
la CPU consistente en un juego de registros y un
espacio de pila. Es también conocido como proceso
ligero.
• Cada thread contendrá su propio program counter, un
conjunto de registros, un espacio para el stack y su
prioridad.
• Comparten el código, los datos y los recursos con sus
hebras (thread) pares.
• Una tarea (o proceso pesado) está formado ahora por
uno o varios threads.
• Un thread puede pertenecer a una sola tarea.
THREADS
• Todos los recursos, sección de código y datos son compartidos por
los distintos threads de un mismo proceso.
54/35
Sistemas Operativos | Curso 2015 | Procesos
VENTAJAS DEL USO DE THREADS
55/35
Sistemas Operativos | Curso 2015 | Procesos
• Compartir recursos: Los threads de un proceso comparten la
memoria y los recursos que utilizan. A diferencia de IPC, no es
necesario acceder al kernel para comunicar o sincronizar los hilos
de ejecución.
• Economía: Es más fácil un cambio de contexto entre threads ya
que no es necesario cambiar el espacio de direccionamiento. A su
vez, es más “liviano” para el sistema operativo crear un thread que
crear un proceso nuevo.
• Utilización de arquitecturas con multiprocesadores: Disponer
de una arquitectura con más de un procesador permite que los
threads de un mismo proceso ejecuten en forma paralela.
• Repuesta: Desarrollar una aplicación con varios hilos de control
(threads) permite tener un mejor tiempo de respuesta.
DESVENTAJA DEL USO DE THREADS
56/35
Sistemas Operativos | Curso 2015 | Procesos
• Dificulta la programación: Al compartir todo el espacio de
romper el
direccionamiento un thread mal programado puede
funcionamiento del resto de los threads.
THREADS
57/35
Sistemas Operativos | Curso 2015 | Procesos
▪ Los threads pueden ser implementados tanto a nivel de usuario
como a nivel de sistemas operativo:
▪ Hilos a nivel de usuario (user threads): Son implementados en alguna
librería de usuario. La librería deberá proveer soporte para crear, planificar
y administrar los threads sin soporte del sistema operativo. El sistema
operativo solo reconoce un hilo de ejecución en el proceso.
▪ Hilos a nivel del núcleo (kernel threads): El sistema es quien provee la
creación, planificación y administración de los threads. El sistema
reconoce tantos hilos de ejecución como threads se hayan creado
THREADS
58/35
Sistemas Operativos | Curso 2015 | Procesos
▪ Ventajas de user threads sobre kernel threads:
• Desarrollo de aplicaciones en sistemas sin soporte a hilo: Se
pueden aprovechar todos los beneficios de programar orientado
utilizando threads. Además se puede portar la aplicación a un
sistema operativo que carezca de la noción de varios hilos de
ejecución.
• Cambio de contexto: El cambio de contexto entre threads de
usuario es más simple ya que no consume el overhead que
tendría en el sistema operativo (system call).
• Planificación independiente: Se puede crear una nueva estrategia
de planificación diferente a la que tenga el sistema operativo.
THREADS
59/35
Sistemas Operativos | Curso 2015 | Procesos
• La mayoría de los sistemas proveen threads tanto a nivel de
usuario como de sistema operativo.
• De esta forma surgen varios modelos:
• Mx1 (Many-To-One): Varios threads de a nivel de usuario a un único thread
a nivel de sistema.
• 1x1 (One-to-One): Cada thread de usuario se corresponde con un thread
a nivel del núcleo (kernel thread).
• MxN (Many-To-Many): Varios threads a nivel de usuario se corresponde
con varios threads a nivel del núcleo.
Mx1 (Many-to-One)
Este caso se corresponde al de tener los threads implementados a nivel
de usuario.
El sistema solo reconoce un thread de control para el proceso.
Los threads de usuario ejecutarán cuando estén asignados al kernel
thread del proceso (tarea llevada a cabo por el planificador a nivel de
usuario) y, además, a este le asigne la CPU el planificador del sistema
operativo.
60/35
Sistemas Operativos | Curso 2015 | Procesos
1x1 (One-to-One)
Cada thread que es creado a nivel de usuario se genera un nuevo thread
a nivel de sistema que estará asociado mientras exista.
El sistema reconoce todos los threads a nivel de usuario y son planificados
independientemente. En este caso no hay planificador a nivel de usuario.
61/35
Sistemas Operativos | Curso 2015 | Procesos
MxN (Many-to-Many)
• Cada proceso tiene asignado un conjunto de kernel threads independiente
de los threads a nivel de usuario que el proceso haya creado.
• El planificador a nivel de usuario asigna los threads en los kernel threads.
• El planificador de sistema solo reconoce los kernel threads.
62/35
Sistemas Operativos | Curso 2015 | Procesos
Formando líderes para la construcción
de un nuevo país en paz

Más contenido relacionado

La actualidad más candente

Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosKim Sorel Rush
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Conceptos Básicos de Sistemas Operativos
Conceptos Básicos de Sistemas OperativosConceptos Básicos de Sistemas Operativos
Conceptos Básicos de Sistemas Operativosfvaldivieso
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativosDeivis Romero
 
Unidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del ProcesadorUnidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del ProcesadorUPTM
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativoschikscorpion_23
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesosCariEli
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoMarvin Romero
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativosrichardstalin
 
Estructura del sistema operativo
Estructura del sistema operativoEstructura del sistema operativo
Estructura del sistema operativoEmily_Fdez
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosGUADALUPE
 
FHS - Jerarquia de Directorios Linux
FHS - Jerarquia de Directorios LinuxFHS - Jerarquia de Directorios Linux
FHS - Jerarquia de Directorios LinuxPablo Macon
 
Estructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por CapasEstructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por CapasOmar Salazar
 

La actualidad más candente (20)

Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Conceptos Básicos de Sistemas Operativos
Conceptos Básicos de Sistemas OperativosConceptos Básicos de Sistemas Operativos
Conceptos Básicos de Sistemas Operativos
 
Grupo1
Grupo1Grupo1
Grupo1
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativos
 
Unidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del ProcesadorUnidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del Procesador
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Operaciones Sobre Procesos
Operaciones Sobre ProcesosOperaciones Sobre Procesos
Operaciones Sobre Procesos
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesos
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativo
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativos
 
Proceso Informatico
Proceso InformaticoProceso Informatico
Proceso Informatico
 
Estructura del sistema operativo
Estructura del sistema operativoEstructura del sistema operativo
Estructura del sistema operativo
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
 
FHS - Jerarquia de Directorios Linux
FHS - Jerarquia de Directorios LinuxFHS - Jerarquia de Directorios Linux
FHS - Jerarquia de Directorios Linux
 
Estructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por CapasEstructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por Capas
 

Similar a Estructura y Procesos de un SO

trabajo de los sistemas operativos - darwin chirinos
trabajo de los sistemas operativos - darwin chirinostrabajo de los sistemas operativos - darwin chirinos
trabajo de los sistemas operativos - darwin chirinosdarwinjher
 
Sistemas operativos - trabajo darwin
Sistemas operativos -  trabajo darwinSistemas operativos -  trabajo darwin
Sistemas operativos - trabajo darwindarwinjher
 
Sistema de protección s.o
Sistema de protección s.oSistema de protección s.o
Sistema de protección s.oMaury Jimenez
 
Sistema de protección s.o
Sistema de protección s.oSistema de protección s.o
Sistema de protección s.oMaury Jimenez
 
Estructura de los sistemas Operativos
 Estructura de los sistemas Operativos Estructura de los sistemas Operativos
Estructura de los sistemas OperativosMaury Jimenez
 
Estructura de los sistemas operativos
Estructura de los sistemas operativosEstructura de los sistemas operativos
Estructura de los sistemas operativosMayckolLeon1
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWAREJenni2011
 
1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdf1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdfssuser6353bc
 
sistema operativo.pdf
sistema operativo.pdfsistema operativo.pdf
sistema operativo.pdfAminah Sivira
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas OperativosMoisés Payares
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.Carlos Solano
 
TRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOSTRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOScrisstthi
 

Similar a Estructura y Procesos de un SO (20)

trabajo de los sistemas operativos - darwin chirinos
trabajo de los sistemas operativos - darwin chirinostrabajo de los sistemas operativos - darwin chirinos
trabajo de los sistemas operativos - darwin chirinos
 
Sistemas operativos - trabajo darwin
Sistemas operativos -  trabajo darwinSistemas operativos -  trabajo darwin
Sistemas operativos - trabajo darwin
 
Estructura de un sIstema operativo
Estructura de un sIstema operativoEstructura de un sIstema operativo
Estructura de un sIstema operativo
 
Sistema de protección s.o
Sistema de protección s.oSistema de protección s.o
Sistema de protección s.o
 
Sistema de protección s.o
Sistema de protección s.oSistema de protección s.o
Sistema de protección s.o
 
Estructura de los sistemas Operativos
 Estructura de los sistemas Operativos Estructura de los sistemas Operativos
Estructura de los sistemas Operativos
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 
Estructura de los sistemas operativos
Estructura de los sistemas operativosEstructura de los sistemas operativos
Estructura de los sistemas operativos
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
 
1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdf1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdf
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Presentación1
Presentación1Presentación1
Presentación1
 
sistema operativo.pdf
sistema operativo.pdfsistema operativo.pdf
sistema operativo.pdf
 
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 
Sergio
SergioSergio
Sergio
 
E:\Sergio
E:\SergioE:\Sergio
E:\Sergio
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
TRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOSTRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOS
 
que es un sistema operativo
 que es un sistema operativo que es un sistema operativo
que es un sistema operativo
 

Más de Richard Eliseo Mendoza Gafaro

PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIRichard Eliseo Mendoza Gafaro
 

Más de Richard Eliseo Mendoza Gafaro (20)

CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEICUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
 
Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1
 
MANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASEMANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASE
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
 
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UXPARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
 
Explicación cadena de valor
Explicación cadena de valorExplicación cadena de valor
Explicación cadena de valor
 
MANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEBMANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEB
 
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCHMANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
 
CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2
 
CUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3DCUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3D
 
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOSMANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
CLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUDCLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUD
 
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIOCASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
 
MATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNAMATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNA
 
PREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTASPREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTAS
 

Último

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 

Último (20)

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 

Estructura y Procesos de un SO

  • 1. ESTRUCTURA Y PROCESOS SO Mg. Richard E. Mendoza G. Docente
  • 2. AGENDA Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos 2/28 ▪ Servicios del sistema operativo (system services). ▪ Llamados a sistema (system calls). ▪ Estructura del sistema. Máquinas virtuales.
  • 3. SERVICIOS DEL SO 3/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • El sistema brindará un entorno de ejecución de programas dónde se dispondrá de un conjunto de servicios que serán accesible mediante una interfase bien definida. • Servicios básicos que debe brindar un sistema operativo: ▪ Ejecución de programas y administración de procesos. ▪ Operaciones de Entrada/Salida. ▪ Manipulación de sistemas de archivos. ▪ Comunicación entre procesos. ▪ Detección y manipulación de errores (excepciones).
  • 4. EJECUCIÓN DE PROGRAMAS Y ADMINISTRACIÓN DE PROCESOS 4/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos El sistema debe ser capaz de cargar un programa a memoria y ejecutarlo. Es decir, crear un proceso. Cada proceso cuenta con un contador de programa (PC, program counter) que determina la próxima instrucción de código a ejecutar. El proceso necesita de ciertos recursos (CPU, memoria, archivos y dispositivos de E/S) para realizar su tarea. El sistema operativo es responsable de las siguientes tareas: • Mantener que partes de la memoria están siendo utilizadas y por quién. • Decidir cuales procesos serán cargados a memoria cuando exista espacio de memoria disponible. • Asignar y quitar espacio de memoria según sea necesario.
  • 5. • El sistema albergará muchos procesos compitiendo por los recursos y será el responsable de proveer de medios o servicios para que realicen su tarea: ▪ Crear y destruir procesos. ▪ Suspensión y reanudación de procesos. ▪ Proveer mecanismos para la cooperación (sincronización) y comunicación entre los procesos. ▪ Proveer mecanismos para prever la generación de dead-locks o lograr salir de ellos (opcional). • El proceso deberá poder en algún momento finalizar su ejecución, ya sea de forma normal o anormal (indicando un error). 5/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos EJECUCIÓN DE PROGRAMAS Y ADMINISTRACIÓN DE PROCESOS
  • 6. OPERACIONES DE ENTRADA/SALIDA 6/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • Un programa en ejecución necesitará de operaciones de Entrada/Salida para acceder a un archivo o dispositivo. • Por eficiencia y protección los usuarios no accederán directamente al dispositivo. • El sistema operativo deberá encapsular y ocultar las características específicas de los diferentes dispositivos de almacenamiento y ofrecer mecanismos de acceso comunes para todos los medios de almacenamiento. • Para ello proveerá de: ▪ Un conjunto de servicios que provean la interfase con el subsistema e implementen técnicas de cache, buffering y spooling. ▪ Una interfase cliente con el sistema operativo para los manejadores de dispositivos o device drivers que permitirá interactuar (mediante cargas dinámicas o no) con cualquier modelo de dispositivo. ▪ Device drivers específicos. ▪ Montaje y desmontaje (Mount/Dismount) de dispositivo.
  • 7. MANIPULACIÓN DEL SISTEMA DE ARCHIVOS Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos 7/28 • Se deberá proveer acceso al sistema de archivos. • El sistema operativo es responsable de las siguientes actividades: ▪ Administrar el espacio libre. ▪ Asignación del lugar de la información. ▪ Algoritmos de planificación de disco. • Proporciona una almacenamiento en los diferentes dispositivos implementando vista uniforme de todas las formas de el concepto de archivo como una colección arbitraria de bytes u otras clases o organizaciones más sofisticadas. • Implementará los métodos de: ▪ Abrir, cerrar, extender y borrar archivos ▪ Leer, escribir archivos ▪ Crear y borrar directorios
  • 8. COMUNICACIÓN ENTRE PROCESOS 8/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • Es deseable que los procesos puedan comunicarse. • Se deberá proveer mecanismos de comunicación entre ellos ya sea que estén en compartida), o el mismo computador (a través de memoria en diferentes computadores (a través de transferencias de paquetes de red entre los sistemas operativos involucrados). • También debe permitir la sincronización de procesos que trabajan en conjunto. • En el caso de sistemas remotos se generaliza el concepto de dispositivo virtual implementando un manejador (driver) que encapsula el acceso a estos dispositivos.
  • 9. DETECCIÓN Y MANIPULACIÓN DE ERRORES 9/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • El sistema deberá tomar decisiones adecuadas ante eventuales errores que ocurran y proveer una interfaz para manejarlos. • Ejemplos: ▪ Fallo en un dispositivo de memoria. ▪ Fallo en la fuente de energía. ▪ Fallo en un programa.
  • 10. SERVICIOS DEL SO 10/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • Otros servicios de propósito general que deberá brindar el sistema operativo son: ▪ Asignación de recursos. ▪ Contabilización. ▪ Protección, manejo de usuarios y permisos. • Una vez que están definidos los servicios que brindará el sistema operativo, se puede empezar a desarrollar la estructura del sistema.
  • 11. ASIGNACIÓN DE RECURSOS 11/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos ▪ Cuando hay varios procesos compitiendo por los recursos es importante tener algoritmos eficientes de asignación ▪ Cada recurso tiene necesidades y por lo tanto algoritmos diferentes
  • 12. CONTABILIZACIÓN 12/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos ▪ Se quiere llevar un registro de que usuarios usan que recursos y en que cantidad ▪ Permiten dimensionar y evaluar el estado del sistema
  • 13. PROTECCIÓN, MANEJO DE USUARIOS Y PERMISOS 13/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos ▪ En un sistema multiusuario donde se ejecutan procesos en forma concurrente se deben tomar medidas que garanticen la ausencia de interferencia entre ellos. ▪ Por protección nos referimos a los mecanismos por los que se controla al acceso de los procesos a los recursos. ▪ El mecanismo debe incorporar la posibilidad de definir reglas de acceso y asegurar su verificación en toda ocasión que corresponda.
  • 14. LLAMADOS AL SISTEMA 14/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos ▪ Los llamados al sistema (system calls) son una interfaz, provista por el núcleo, para que los procesos de usuarios accedan a los diferentes servicios que brinda el sistema operativo. ▪ Al principio los system calls estaban desarrollados en lenguaje de la arquitectura de la máquina. ▪ En los sistemas modernos están programados en lenguajes de programación de alto nivel como C o C++. ▪ Los servicios son invocados por los procesos en modo usuario, cuando ejecutan lo hacen en modo monitor, y al retornar vuelven al modo usuario. ▪ Típicamente a los system calls se les asocia un número que los identifica (en Linux son aproximadamente 350).
  • 15. LLAMADOS AL SISTEMA 15/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • La llamada aun system call incluye las siguientes tareas: • Cargar los parámetros en el lugar adecuado (stack o registros). • Cargar el número de system call en algún registro específico (Ej: eax en Intel). Invocar a la interrupción por software (trap) adecuada (system call handler). • El hardware cambia el bit de modo a monitor e invoca al manejador de la interrupción que controla que el número de system call pasado en el registro sea menor que el mayor del sistema y, finalmente, invoca al system call correspondiente. • El valor retornado por el system call es puesto en un registro específico (Ej.: eax en Intel).
  • 16. LLAMADOS AL SISTEMA 16/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • Existen 3 formas de pasar los parámetros al sistema operativo: • A través de los registros: Se utilizan un conjunto de registros para pasar los parámetros. Tiene el problema de la cantidad de parámetros es fija y que restringe el tamaño del valor. ▪ En Intel se utilizan 5 registros: ebx, ecx, edx, esi, y edi. ▪ Un bloque de memoria apuntado a través de un registro. ▪ En el stack del proceso que realiza el llamado. El proceso guarda los parámetros con operaciones push sobre el stack y el sistema operativo los saca con la operación pop. • De la misma forma se pueden recibir los datos de respuesta
  • 17. LLAMADOS AL SISTEMA 17/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
  • 18. LLAMADOS AL SISTEMA 18/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos Los system calls se clasifican en distintos tipos: Control de procesos •Cargar, ejecutar, finalizar, abortar, obtener atributos, cargar atributos, esperar por tiempo, esperar por un evento o señal, obtener o liberar memoria, etc. Gestión de archivos • Crear, borrar, abrir, cerrar, leer, escribir, obtener o cargar atributos, etc. Gestión de dispositivos •Requerir o liberar un dispositivo, leer o escribir, buscar o cargar atributos de un dispositivo, etc. Gestión de información del sistema •Obtener o cargar la hora del sistema, datos del sistema, de procesos, etc. Comunicaciones • Crear o destruir conexiones, enviar o recibir mensajes, etc.
  • 19. ESTRUCTURA DEL SISTEMA 19/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos La estructura interna de los sistemas operativos pueden ser muy diferentes. Se deben tener en cuenta: Metas de los usuarios: ser amigable, intuitivo, confiable, seguro, rápido, etc. Metas del sistema: fácil de diseñar, implementar y mantener, también flexible, confiable y eficiente. Diseño del sistema: Sistema monolítico. Sistema en capas. Sistema con micronúcleo (microkernel).
  • 20. SISTEMA MONOLÍTICO 20/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • No se tiene una estructura definida. • El sistema es escrito como una colección de procedimientos, que pueden ser invocados por cualquier otro. • No existe “ocultación de información”, ya que cualquier procedimiento puede invocar a otro. • Si bien todo procedimiento es público y accesible a cualquiera, es posible tener buenos diseños y lograr, de esa forma, buena eficiencia en el sistema. ▪ ▪ Ej.: MS-DOS. – Los componentes pueden invocar procedimientos de cualquiera. Ej.: Linux – Linux es un núcleo monolítico que a logrado un buen diseño orientado a objetos (sistema modular).
  • 21. SISTEMA EN CAPAS • Se organiza el diseño en una jerarquía de capas construidas una encima de la otra. • Los servicios que brinda cada capa son expuestos en una interfase pública y son consumidos solamente por los de la capa de arriba. • La capa 0 es el hardware y la N es la de procesos de usuario. 21/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
  • 22. SISTEMA EN CAPAS 22/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos Ventajas: ▪ Modularidad. ▪ Depuración y verificación de cada capa por separado. Desventajas: ▪ Alto costo de definición de cada capa en la etapa de diseño. ▪ Menos eficiente frente al sistema monolítico ya que sufre de overhead al pasar por cada capa.
  • 23. SISTEMA EN CAPAS ▪ Ej.: en capas – OS/2. 23/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
  • 24. SISTEMA CON MICRONÚCLEO (MICROKERNEL) 24/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos Se constituye de un núcleo un manejo minimo de que brinde procesos, memoria y, además, provea de una capa de comunicación entre procesos. ▪ La capa de comunicación es la funcionalidad principal del sistema. ▪ Los restantes servicios del sistema son construidos como procesos separados al micronúcleo que ejecutan en modo usuario. ▪ El acceso los servicios del sistema se realiza a través de pasaje de mensajes.
  • 25. SISTEMA CON MICRONÚCLEO Ventajas: Aumenta la portabilidad y escalabilidad ya que encapsula las características físicas del sistema Para incorporar un nuevo servicio no es necesario modificar el núcleo. Es más seguro ya que los servicios corren en modo usuario. El diseño simple y funcional típicamente resulta en un sistema más confiable. 25/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos
  • 26. MÁQUINAS VIRTUALES 26/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos ▪ ▪ ▪ Se puede ver como una extensión de los sistemas multiprogramados pero a más bajo nivel Los procesos no solamente trabajan sobre el sistema operativo como si fueran el único proceso en el sistema sino que tienen una copia virtual del hardware de la CPU Las máquinas virtuales corren como procesos a nivel de usuario y el administrador de MVs (hypervisor) implementa un modo usuario virtual y un modo administrador virtual También se implementan discos virtuales sobre los discos reales para las máquinas virtuales ▪ Dos modos básicos – Tipo 1: el administrador corre directamente sobre el hardware – Tipo 2: el administrador corre como un proceso sobre un sistema operativo normal
  • 27. MÁQUINAS VIRTUALES: BENEFICIOS 27/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos • Seguridad ▪ Los procesos en cada máquina virtual son completamente independientes de los procesos en las otras • Facilidad de desarrollo ▪ Se pude correr un sistema operativo de test en una máquina virtual sin correr riesgos con el sistema real • Flexibilidad ▪ Correr un sistema operativo de una arquitectura en una máquina diferente • Alta disponibilidad ▪ En caso de falla de una MV se puede levantar otra rápidamente en otro hardware
  • 28. MÁQUINAS VIRTUALES: DESVENTAJAS 28/28 Sistemas Operativos | Curso 2015 | Estructura de los sistemas operativos ▪ Los tiempos de las operaciones pueden tardar más que en un sistema real • Tiempo adicional por traducir las operaciones ▪ Tiempo de respuesta de la máquina muy poco predecible por uso del sistema operativo de base u otras MVs • No apropiado para sistemas de tiempo real
  • 29. PROCESOS SO Mg. Richard E. Mendoza G. Docente
  • 30. AGENDA 30/3 Sistemas Operativos | Curso 2015 | Procesos ▪ Proceso. • Definición de proceso. • Contador de programa. • Memoria de los procesos. ▪ Estados de los procesos. • Transiciones entre los estados. ▪ Bloque descriptor de proceso (PCB). ▪ Creación de procesos. ▪ Listas y colas de procesos. ▪ Cambio de contexto (context switch). Hilos (Threads). • Threads a nivel de usuario. • Threads a nivel de núcleo del sistema. • Modelos de threads. AGENDA
  • 31. DEFINICIÓN DE PROCESO 31/3 Sistemas Operativos | Curso 2015 | Procesos ▪ El principal concepto en cualquier sistema operativo es el de proceso. Un proceso es un programa en ejecución, incluyendo el valor del ▪ program counter, los registros y las variables. ▪ Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto como un CPU virtual. ▪ El recurso procesador es alternado entre los diferentes procesos que existan en el sistema, dando la idea de que ejecutan en paralelo (multiprogramación)
  • 32. CONTADOR DE PROGRAMA Cada proceso tiene su program counter, y avanza cuando el proceso tiene asignado el recurso procesador. A su vez, a cada proceso se le asigna un número que lo identifica entre los demás: identificador de proceso (process id) 32/3 Sistemas Operativos | Curso 2015 | Procesos
  • 33. MEMORIA DE LOS PROCESOS ▪ Un proceso en memoria se constituye de varias secciones: ▪ Código (text): Instrucciones del proceso. ▪ Datos (data): Variables globales del proceso. ▪ Memoria dinánica (heap): Memoria dinámica que genera el proceso. ▪ Pila (stack): Utilizado para preservar el estado en la invocación anidada de procedimientos y funciones. 33/35 Sistemas Operativos | Curso 2015 | Procesos
  • 34. ESTADOS DE LOS PROCESOS 34/35 Sistemas Operativos | Curso 2015 | Procesos ▪ El estado de un proceso es definido por la actividad corriente en que se encuentra. ▪ Los estados de un proceso son: • Nuevo (new): Cuando el proceso es creado. • Ejecutando (running): El proceso tiene asignado un procesador y está ejecutando sus instrucciones. • Bloqueado (waiting): El proceso está esperando por un evento (que se complete un pedido de E/S o una señal). • Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso procesador. • Finalizado (terminated): El proceso finalizó su ejecución.
  • 35. ESTADOS DE LOS PROCESOS • Diagrama de estados y transiciones de los procesos. 35/35 Sistemas Operativos | Curso 2015 | Procesos
  • 36. TRANSICIONES ENTRE ESTADOS 36/35 Sistemas Operativos | Curso 2015 | Procesos ▪ Nuevo  – Listo ▪ Al crearse un proceso pasa inmediatamente al estado listo. Listo  E–jecutando En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar (tener en cuenta que puede existir más de un procesador en el sistema). Al liberarse un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio definido, a ejecutar.
  • 37. TRANSICIONES ENTRE ESTADOS 37/35 Sistemas Operativos | Curso 2015 | Procesos  Ejecutando Listo Ante una interrupción que se genere, el proceso puede perder el recurso procesador y pasar al estado de listo. El planificador será el encargado de seleccionar el próximo proceso a ejecutar. E – jecutando  Bloqueado A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes (ej.: genera un pedido de E/S). Teniendo en cuenta que el pedido puede demorar y, además, si está en un sistema multiprogramado, el proceso es puesto en una cola de espera hasta que se complete su pedido. De esta forma, se logra utilizar en forma más eficiente el procesador.
  • 38. TRANSICIONES ENTRE ESTADOS 38/35 Sistemas Operativos | Curso 2015 | Procesos ▪ Bloqueado  – Listo Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos. ▪ Ejecutando  Te–rminado Cuando el proceso ejecuta sus última instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso.
  • 39. BLOQUE DESCRIPTOR DE PROCESO ▪ El proceso es representado, a nivel del sistema operativo, a través del bloque descriptor de proceso (Process Control Block) 1 /35 Sistemas Operativos | Curso 2015 | Procesos
  • 40. BLOQUE DESCRIPTOR DE PROCESO 40/35 Sistemas Operativos | Curso 2015 | Procesos ▪ T odo proceso se describe mediante su estado, nombre, recursos asignados, información contable, etc. ▪ Para ello se utiliza una estructura de datos que será el operando de las operaciones sobre procesos, recursos y del planificador (scheduler). ▪ Los campos de esta estructura son: ▪ Estado CPU: El contenido de esta estructura estará indefinido toda vez que el proceso está en estado ejecutando (puesto que estará almacenado en la CPU indicada por procesador). Registro de flags. ▪ Procesador: [1..#CPU]: Contendrá el número de CPU que está ejecutando al proceso (si está en estado ejecutando), sino su valor es indefinido. ▪ Memoria: Describe el espacio virtual y/o real de direccionamiento según la arquitectura del sistema. Contendrá las reglas de protección de memoria así como cual es compartida, etc.. ▪ Estado del proceso: ejecutando, listo, bloqueado, etc.
  • 41. BLOQUE DESCRIPTOR DE PROCESO 41/35 Sistemas Operativos | Curso 2015 | Procesos ▪ Recursos: Recursos de software (archivos, semáforos, etc.) y hardware (dispositivos, etc.). ▪ Planificación: Tipo de planificador. ▪ Prioridad: Podrá incluir una prioridad externa de largo aliento, o en su defecto una prioridad interna dinámica de alcance reducido. ▪ Contabilización: Información contable como ser cantidad de E/S, fallos de páginas (page faults), consumo de procesador, memoria utilizada, etc. ▪ Ancestro: Indica quién creó este proceso. ▪ Descendientes: Lista de punteros a PCBs de los hijos de este proceso.
  • 42. CREACIÓN DE PROCESOS 42/35 Sistemas Operativos | Curso 2015 | Procesos ▪ Los procesos de un sistema son creados a partir de otro proceso. ▪ Al creador se le denomina padre y al nuevo proceso hijo. Esto genera una jerarquía de procesos en el sistema. ▪ En el diseño del sistema operativo se debe decidir, en el momento de creación de un nuevo proceso, cuales recursos compartirán el proceso padre e hijo. Las opciones son que compartan todo, algo o nada. ▪ También se debe determinar que sucede con los hijos cuando muere el padre. Pueden morir también o cambiar de padre. ▪ Una vez creado el nuevo proceso tendrán un hilo (program counter) de ejecución propio. El sistema genera un nuevo PCB para el proceso creado.
  • 43. CREACIÓN DE PROCESOS • Ej.: UNIX • UNIX provee el system call fork para la creación de un nuevo proceso. • La invocación a esta función le retorna al padre el número de process id del hijo recién creado y al hijo el valor 0. El hijo comienza su ejecución en el retorno del fork. • Además, se provee del system call exec que reemplaza el espacio de memoria del proceso por uno nuevo 43/35 Sistemas Operativos | Curso 2015 | Procesos
  • 44. CREACIÓN DE PROCESOS 44/35 Sistemas Operativos | Curso 2015 | Procesos int main() { pid_t pid; /* crea un nuevo proceso */ pid = fork(); if (pid < 0) { /* error */ fprintf(stderr, "Fork Failed"); exit(-1); } if (pid == 0) /* proceso hijo */ execlp("/bin/ls", "ls", NULL); else { /* padre */ wait(NULL); printf("Child Complete"); exit(0); } }
  • 45. CREACIÓN DE PROCESOS Sistemas Operativos | Curso 2015 | Procesos 17/35
  • 46. LISTAS Y COLAS DE PROCESOS Sistemas Operativos | Curso 2015 | Procesos 18/35 Los procesos, en los distintos estados que tienen, son agrupados en listas o colas: ▪ Lista de procesos del sistema (job queue): En esta lista están todos los procesos del sistema. Al crearse un nuevo proceso se agrega el PCB a esta lista. Cuando el proceso termina su ejecución es borrado. ▪ Cola de procesos listos (ready queue): Esta cola se compondrá de los procesos QUE estén en estado listo. La estructura de esta cola dependerá de la estrategia de planificación utilizada. ▪ Cola de espera de dispositivos (device queue): Los procesos que esperan por un dispositivo de E/S particular son agrupados en una lista específica al dispositivo. Cada dispositivo de E/S tendrá su cola de espera.
  • 47. LISTAS Y COLAS DE PROCESOS Sistemas Operativos | Curso 2015 | Procesos 19/35
  • 48. LISTAS Y COLAS DE PROCESOS Diagrama de transición de un proceso entre las colas del sistema. 48/35 Sistemas Operativos | Curso 2015 | Procesos
  • 49. CAMBIO DE CONTEXTO 49/35 Sistemas Operativos | Curso 2015 | Procesos A la tarea de cambiar un proceso por otro en el procesador se le denomina cambio de contexto (context switch). El cambio de contextos entre procesos implica las siguientes tareas: ▪ Salvar el estado del proceso (registros, información de punteros de memoria) que está ejecutando en su PCB. ▪ Cambiar el estado del proceso que estaba ejecutando al que corresponda. ▪ Cargar el estado del proceso asignado a la CPU a partir de su PCB. ▪ Cambiar el estado del proceso nuevo a ejecutando.
  • 50. CAMBIO DE CONTEXTO Sistemas Operativos | Curso 2015 | Procesos 22/35
  • 51. COOPERACIÓN ENTRE PROCESOS 51/35 Sistemas Operativos | Curso 2015 | Procesos • Procesos concurrentes pueden ejecutar en un entorno aislado (se debe asegurar la ausencia de interferencias) o, eventualmente, podrán interactuar cooperando en pos de un objetivo común compartiendo objetos comunes. • Es necesario que el sistema operativo brinde unas herramientas específicas para la comunicación y sincronización entre los procesos (Inter Process Communication – IPC). • IPC es una herramienta que permite a los procesos comunicarse y sincronizarse sin compartir el espacio de direccionamiento en memoria. • Hay dos enfoques fundamentales: • Memoria compartida • Pasaje de mensajes
  • 52. THREADS 52/35 Sistemas Operativos | Curso 2015 | Procesos Hay aplicaciones donde es necesario utilizar procesos que compartan recursos en forma concurrente. IPC brindan una alternativa a nivel de sistema operativo. Los sistemas operativos modernos están proporcionando servicios para crear más de un hilo (thread) de ejecución (control) en un proceso. Con las nuevas tecnologías multi-core esto se hace algo necesario para poder sacar mayor provecho al recurso de procesamiento. De esta forma, se tiene más de un hilo de ejecución en el mismo espacio de direccionamiento.
  • 53. THREADS 53/35 Sistemas Operativos | Curso 2015 | Procesos • Un Thread (Hilo) es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Es también conocido como proceso ligero. • Cada thread contendrá su propio program counter, un conjunto de registros, un espacio para el stack y su prioridad. • Comparten el código, los datos y los recursos con sus hebras (thread) pares. • Una tarea (o proceso pesado) está formado ahora por uno o varios threads. • Un thread puede pertenecer a una sola tarea.
  • 54. THREADS • Todos los recursos, sección de código y datos son compartidos por los distintos threads de un mismo proceso. 54/35 Sistemas Operativos | Curso 2015 | Procesos
  • 55. VENTAJAS DEL USO DE THREADS 55/35 Sistemas Operativos | Curso 2015 | Procesos • Compartir recursos: Los threads de un proceso comparten la memoria y los recursos que utilizan. A diferencia de IPC, no es necesario acceder al kernel para comunicar o sincronizar los hilos de ejecución. • Economía: Es más fácil un cambio de contexto entre threads ya que no es necesario cambiar el espacio de direccionamiento. A su vez, es más “liviano” para el sistema operativo crear un thread que crear un proceso nuevo. • Utilización de arquitecturas con multiprocesadores: Disponer de una arquitectura con más de un procesador permite que los threads de un mismo proceso ejecuten en forma paralela. • Repuesta: Desarrollar una aplicación con varios hilos de control (threads) permite tener un mejor tiempo de respuesta.
  • 56. DESVENTAJA DEL USO DE THREADS 56/35 Sistemas Operativos | Curso 2015 | Procesos • Dificulta la programación: Al compartir todo el espacio de romper el direccionamiento un thread mal programado puede funcionamiento del resto de los threads.
  • 57. THREADS 57/35 Sistemas Operativos | Curso 2015 | Procesos ▪ Los threads pueden ser implementados tanto a nivel de usuario como a nivel de sistemas operativo: ▪ Hilos a nivel de usuario (user threads): Son implementados en alguna librería de usuario. La librería deberá proveer soporte para crear, planificar y administrar los threads sin soporte del sistema operativo. El sistema operativo solo reconoce un hilo de ejecución en el proceso. ▪ Hilos a nivel del núcleo (kernel threads): El sistema es quien provee la creación, planificación y administración de los threads. El sistema reconoce tantos hilos de ejecución como threads se hayan creado
  • 58. THREADS 58/35 Sistemas Operativos | Curso 2015 | Procesos ▪ Ventajas de user threads sobre kernel threads: • Desarrollo de aplicaciones en sistemas sin soporte a hilo: Se pueden aprovechar todos los beneficios de programar orientado utilizando threads. Además se puede portar la aplicación a un sistema operativo que carezca de la noción de varios hilos de ejecución. • Cambio de contexto: El cambio de contexto entre threads de usuario es más simple ya que no consume el overhead que tendría en el sistema operativo (system call). • Planificación independiente: Se puede crear una nueva estrategia de planificación diferente a la que tenga el sistema operativo.
  • 59. THREADS 59/35 Sistemas Operativos | Curso 2015 | Procesos • La mayoría de los sistemas proveen threads tanto a nivel de usuario como de sistema operativo. • De esta forma surgen varios modelos: • Mx1 (Many-To-One): Varios threads de a nivel de usuario a un único thread a nivel de sistema. • 1x1 (One-to-One): Cada thread de usuario se corresponde con un thread a nivel del núcleo (kernel thread). • MxN (Many-To-Many): Varios threads a nivel de usuario se corresponde con varios threads a nivel del núcleo.
  • 60. Mx1 (Many-to-One) Este caso se corresponde al de tener los threads implementados a nivel de usuario. El sistema solo reconoce un thread de control para el proceso. Los threads de usuario ejecutarán cuando estén asignados al kernel thread del proceso (tarea llevada a cabo por el planificador a nivel de usuario) y, además, a este le asigne la CPU el planificador del sistema operativo. 60/35 Sistemas Operativos | Curso 2015 | Procesos
  • 61. 1x1 (One-to-One) Cada thread que es creado a nivel de usuario se genera un nuevo thread a nivel de sistema que estará asociado mientras exista. El sistema reconoce todos los threads a nivel de usuario y son planificados independientemente. En este caso no hay planificador a nivel de usuario. 61/35 Sistemas Operativos | Curso 2015 | Procesos
  • 62. MxN (Many-to-Many) • Cada proceso tiene asignado un conjunto de kernel threads independiente de los threads a nivel de usuario que el proceso haya creado. • El planificador a nivel de usuario asigna los threads en los kernel threads. • El planificador de sistema solo reconoce los kernel threads. 62/35 Sistemas Operativos | Curso 2015 | Procesos
  • 63. Formando líderes para la construcción de un nuevo país en paz