Download SISTEMAS OPERATIVOS

Document related concepts

Llamada al sistema wikipedia , lookup

Sistema operativo wikipedia , lookup

Planificador wikipedia , lookup

Proceso (informática) wikipedia , lookup

Cambio de contexto wikipedia , lookup

Transcript
SISTEMAS OPERATIVOS
Generalidades. Introducción a
los procesos
Temas
1.
2.
3.
4.
5.
6.
Conceptos fundamentales.
Procesos.
Administración de memoria.
Entrada salida.
Abrazo fatal.
Sistemas de archivos.
Bibliografía básica:
Tanenbaum, A. S. Sistemas Operativos Modernos. Ed.
Prentice-Hall Hispanoamericana, 1996.
Peterson, J.L. y Silberchats, Sistemas Operativos.
Conceptos Fundamentales, Ed. Addison-Wesley, 1994.
Evaluaciones importantes
• Pruebas Parciales (2)
• Evaluaciones en Clases Prácticas
Derecho a examen:
• 1 PP aprobada.
• 50% + 1 de las evaluaciones
frecuentes.
Contenido
• Introducción
• Funciones principales de los sistemas
operativos
• La multiprogramación
• Procesos. Tabla de procesos.
• Modelo de procesos. Estados de los procesos.
• Programación concurrente. Grafos de
precedencia.
• Condiciones de concurrencia. Especificaciones.
Bibliografía:
Tanenbaum, A. S. Sistemas Operativos Modernos. Ed.
Prentice-Hall Hispanoamericana, 1996, pp. 1-37.
Descripción interna del Sistema
Operativo
Una definición de Sistema
Operativo
Conjunto de programas implementados, tanto en
software como en firmware, que hacen disponible el
hardware de la manera más adecuada al usuario y
aumentan su rendimiento total y su disponibilidad.
Firmware: bloque de instrucciones de programa para propósitos
específicos, grabado en una memoria no volátil que establece la lógica de
más bajo nivel.
Sistema de cómputo

Se divide en dos partes:



Hardware (Hw): Aseguramiento técnico
Software (Sw): Aseguramiento de programas.
El software hace útil al hardware.
Software
Prog. Sistema
Sist Operación
Sw de Aplicación
Comp, Edit, etc
Capa del SO en el Sistema de cómputo
Word Juegos
SIGENU
...
Int. de
…
CompiladoresEditores
comandos
Sistema Operativo
Programas de
aplicación
Programas de
sistema
Lenguaje de máquina
Microprogramación
Dispositivos físicos
Hardware
Funciones Principales de un SO

Máquina ampliada o virtual:
Dar facilidades a los usuarios (programadores),
aislándolo de la complejidad del hardware.

Administración de recursos:
Asignar, en forma ordenada y controlada, los
distintos recursos de que dispone el sistema de
cómputo entre varios programas que compiten
por ellos.
El SO como Máquina Extendida
Usuario
programas del
sistema
Aplicación
llamadas al
sistema
Sistema Operativo
Hardware
Técnica de multiprogramación (3ra
generación de SO)
Intento de aumentar la utilización del CPU por la vía
de mantener varios trabajos en memoria a la vez y
cuando el que está activo va a provocar una espera se
le quita el CPU y se le asigna a otro que está listo
para ejecutar.
Trabajo 2
Trabajo 1
SO
particiones
de memoria
Proceso
Es un programa en ejecución que incluye el código
ejecutable, sus datos, su pila, el contador de programa,
los valores almacenados en los registros y todo lo que
refleja su estado en un instante.
Permite continuar su procesamiento si en algún
momento se le retira el control de la CPU
Tabla de Procesos: información relativa a
un proceso
Tabla de
procesos
Apuntador
Estado
PID
PCB (Proceso 1)
Contador del programa
PCB (Proceso 2)
PCB (Proceso 3)
Registros
...
PCB (Proceso n)
Límites de memoria
Lista de archivos
abiertos
...
Cambios de estados e/ procesos
Sistema
Operativo
Proceso P0
En ejecución
Proceso P1
Int. o llamada al sistema
Guardar estado en PCB0
...
Inactivo
Cargar estado de PCB1
Inactivo
Int. o llamada al sistema
En ejecución
Guardar estado en PCB1
...
Cargar estado de PCB0
En ejecución
Int. o llamada al sistema
Inactivo
Estados del proceso



En ejecución: El proceso está en
posesión del CPU en ese instante.
Bloqueado: El proceso está esperando
hasta que ocurra un evento externo (por
ejemplo, una E/S).
Listo: El proceso está en condiciones de
ejecutar, pero está detenido
temporalmente para permitir a otro
proceso la ejecución.
Transición entre estados de un
proceso
terminado
nuevo
2
salida
admitido
listo
3
terminación
de un evento
en
ejecución
1 en espera de
4
un evento
bloqueado
(en espera)
Concurrencia
Ejecución paralela de instrucciones o procesos.
Ejemplo:
S1: a = x + y;
S2: b = z + 1;
S3: c = a - b;
S4: w = c + 1;
Se pueden ejecutar concurrentemente
No se pueden ejecutar concurrentemente
Grafo de precedencia
Grafo orientado y sin ciclos donde:
a)los nodos corresponden a instrucciones
b) un arco desde un nodo Si a un nodo Sj significa que
la instrucción Sj sólo puede ejecutarse después que
se realice la Si.
S1: a = x + y;
S1
S2
S2: b = z + 1;
S3: c = a - b;
S3
S4: w = c + 1;
S4
Condiciones de concurrencia
Dadas las siguientes definiciones:
•Conjunto de lectura para Si: R(Si) = {a1, a2, …, an}
Donde a1, a2, …, an son variables cuyos valores se referencian
en la instrucción Si
•Conjunto de escritura para Si: W(Si) = {b1, b2, …, bm}
Donde b1, b2, …, bm son variables que cambian de valor al
ejecutar la instrucción Si
Para que dos instrucciones sucesivas Sa y Sb puedan
ser ejecutadas concurrentemente:
R(Sa) Ո W(Sb) = {}
R(Sb) Ո W(Sa) = {}
W(Sa) Ո W(Sb) = {}
Ejemplo
S1: a = x + y;
S2: b = z + 1;
S3: c = a - b;
S4: w = c + 1;
R(S1) Ո W(S2)={ }
R(S2) Ո W(S1)={ }
W(S1) Ո W(S2) = { }
R(S3) Ո W(S2)={b}
R(S4) Ո W(S3)={c}
No se
cumplen las
condiciones
de
concurrencia
Instrucciones para especificar en un
programa la ejecución concurrente de
instrucciones
• Una construcción estructurada para especificar
concurrencia es la PARBEGIN / PAREND
• Su forma es: PARBEGIN S1; … Sn; PAREND;
• Todas la instrucciones encerradas entre PARBEGIN
y PAREND se ejecutarán concurrentemente
EJEMPLO
S1
S2
S3
S4
S5
S1;
parbegin
S2;
S3;
parend;
S4;
S5;
La ejecución, por defecto, es secuencial.
S1
S1
parbegin
{
S3
S2
parbegin
S2;
S3;
parend
S5;
S4
}
{
S5
S6
S8
S4;
parbegin
S6;
S7;
parend
S7
}
parend
S8;
Hay 2 hilos de ejecución. Hilo: subproceso o proceso ligero y puede ejecutarse en
paralelo con otro.
Estudio independiente
• Estudio de otros aspectos del tema 1:
generaciones de los sistemas operativos,
servicios del sistema operativo, estructura
de los sistemas operativos, jerarquía entre
procesos, problema del productorconsumidor.
• Páginas indicadas del libro.
• Preparación de ejercicios de las 2
actividades siguientes.