Upload
ecuatareas
View
423
Download
0
Embed Size (px)
Citation preview
Con los sistemas
antiguos solo un
programa tenia el
control absoluto del
sistema y el acceso a
los recursos.
PROCESOS
Permiten cargar varios
programas en la memoria Y
ejecutarlos de manera
concurrente
Con lo
sistemas
de hoy en
día
Esto requirió de un control
mas firme y una mayor división
de los diferentes programas.
Por esta necesidad se introdujo
el concepto de procesos
Un proceso es la unidad de
trabajo en un sistema
moderno en tiempo
compartido.
El cual es un
programa en
ejecución
PROCESOS
Aunque la ocupación
principal del sistema
operativo es la
ejecución de los
programas de usuario
También se necesita
encargarse de varias
tareas del sistema que
es preferible dejar fuera
del kernel mismo
El SO consiste en una
colección de procesos
Procesos del
sistema operativo
ejecutando
código del
sistema
Procesos de
usuario
ejecutando
códigos de
usuario
En gran
medida los
procesos
pueden
ejecutarse de
manera
concurrente,
multiplexando
el o los
procesadores
El Proceso
El cual es
conocido
como la
sección de
texto
Por lo general
un proceso
incluye la pila
del proceso y
una sección de
datos
También incluye
la actividad,
representada por
el valor del
contador del
programa y el
contenido de los
registros del
proceso
Un proceso es
mas que el
código del
programa
Un programa en si
no se considera
un proceso por lo
que es una
entidad pasiva y
un proceso lo
considera a una
entidad activa
Estado del proceso
En espera:
esperando
que ocurra
algún evento
El proceso: a
terminado
su ejecución
Listo : esta en
espera de ser
asignado a un
procesador
Cuando se
ejecuta un
proceso este
cambia de
estado y se la
define por la
actividad actual
del proceso
Nuevo: el
proceso se
esta
creando
Ejecución:
esta
ejecutando
instrucciones
i
Bloque de control de proceso PCB
APUNTADO
R
ESTADO
DEL
PROCESO
NUMERO DE PROCESO
CONTADOR DE
PROGRAMA
REGISTROS
LIMITES DE LA MEMORIA
LISTA DE ARCHIVOS
ABIERTOS .
.
.
Cada proceso se
representa en el
sistema operativo
mediante un PCB.
El cual contiene
diversas piezas
Puede ser nuevo ,
listo, ejecución,
espera y detenido
Indica la dirección
de la siguiente
intruccion a
ejecutar
Varían en numero y
tipos , como
acumuladores ,
registros de índice,
apuntadores de pila
y registro de
propósito general
Bloque de control de proceso PCB
Información de planificación de la
CPU: este incluye la prioridad del
proceso , apuntadores a colas de
planificación y cualquier otro
parámetro de planificación
Información de administración de
memoria: puede incluir datos
referentes al valor de los
registros base y limite, las tablas
de paginas, o las tablas de
segmento, dependiendo de
esquema de memoria del sistema
Información contable incluye la
cantidad de tiempo de CPU y el
tiempo real usado
Información de
estado de E/S: este
incluye la lista de
dispositivos de E/S
asignados al proceso
El PCB SIRVE
COMO UN
DEPOSITO DE
INFORMACIO
N QUE PUEDE
VARIAR DE
UN PROCESO
A OTRO
Este implica que un proceso sigue un solo hilo.
Los sistemas modernos ha extendido el concepto
de proceso para permitir que este tenga varios hilos
de ejecución. de esta forma permite que el proceso
realice mas de una tarea a la vez
HILOS
El objetivo del tiempo compartido es conmutar la
CPU entre procesos de manera tan frecuente que
los usuarios puedan interactuar con cada programa
mientras esta en ejecución.
Planificación de procesos
Colas de trabajo:
En esta están todos
los procesos en el
sistema.
Los procesos que
residen en la memoria
principal listos y en
espera de ejecutarse
se mantiene en una
listas denomina la cola
de procesos listos. Esta
cola se almacena por
lo general como una
lista enlazada.
La lista de procesos
que están esperando
por un dispositivo de
E/S particular se
conoce como cola del
dispositivo
Colas de
planificación
Planificadores
Para fines de
planificación, el
sistema operativo
debe seleccionar
en alguna forma
los procesos de
estas colas . Esta
selección la realiza
el planificador
apropiado
Planificador de largo
plazo, o planificador
de trabajos,
selecciona procesos
de la reserva y la
carga en memoria
para su ejecución
Planificador de
corto plazo, o
planificador de la
CPU, selecciona de
entre los procesos
que están listos para
la ejecución, y asigna
la CPU a uno de
ellos
Cuando ocurre una comunicación de contexto, el
kernel guarda el contexto del proceso anterior en su
PCB y carga el del nuevo proceso programado para la
ejecución.
Conmutación en contexto
Operaciones sobre procesos
Los procesos en el sistema se pueden
ejecutar de manera concurrente y
deben ser creados y eliminados de
manera dinámica. Por esto el sistema
operativo debe proporcionar un
mecanismo de creación y terminación
de procesos
Creación de procesos
Un proceso puede
crear otros proceso
donde el proceso
creador se lo
denomina padre y a
los creados hijos y a
la vez los hijos pueden
crear otros procesos
creando un árbol
Por lo general los procesos necesitan de ciertos
recursos como tiempo de la CPU, memoria,
archivos y dispositivos de entrada y salida para
realizar su tarea
Terminación de procesos
Un proceso concluye
cuando termina de
ejecutar su
declaración final y
pide al so que borre
usando la llamada exit.
En ese punto el
proceso regresa
datos(salida) a su
proceso padre( vía la
llamada wait). Cuando
ocurre esto todos los
procesos son
devueltos al SO.
Un padre puede terminar la
ejecución de un proceso hijo por
varias razones como:
El hijo excedió en el uso de
alguno de los recursos que tiene
asignados.
Ya no se requiere la tareas
asignada al hijo.
El padre esta saliendo, y el sistema
no permite que un hijo continúe
si su padre termina
Procesos cooperativos
Los procesos concurrentes
que se ejecutan en el SO
pueden ser procesos
independientes o pueden
ser procesos cooperativos
independientes:
Son los que no pueden ser
afectados por otros
procesos que se están
ejecutando en el sistema
Cooperativos:
Son los que son afectados
por otros procesos ya que
comparten datos entre
otros procesos Razones para la cooperación de
procesos
Compartir
información
Aceleración de
cálculos Modularidad Conveniencia
Comunicación entre procesos
El esquema requiere que estos
procesos mantengan una
reserva común de buffer y el
programador de la aplicación
escrita de manera explicita el
código para la implementación
del buffer
Métodos para implementar
lógicamente un enlace y las
operaciones send=recive
• Comunicación directa o
indirecta.
• Comunicación simétrica o
asimétrica
• Uso automático o explicito
de buffers.
• Envió por copia de
referencia.
• Mensajes de tamaño fijo o
variable
Sistema de paso de mensajes
La función de un sistema de
mensajes es permitir que los
procesos se comuniquen sin
necesidad de recurrir a datos
compartidos
Hay dos tipos de
tamaño de mensaje
fijo y variable
Asignación de nombres
Comunicación directa:
Cada proceso que quiere
comunicarse debe nombrar
explícitamente al receptor o
al emisor de la comunicación
Comunicación indirecta:
Un buzón puede verse, de manera abstracta
como un objeto en donde los procesos
pueden colocar y remover mensajes . Cada
buzón tiene una identificación única. En este
esquema, un proceso se puede comunicar
con otro utilizando varios buzones
diferentes
Sincronización
El paso de mensajes puede ser con
bloqueo o sin bloqueo- también
conocido como síncrono y asíncrono
Envió sin bloqueo
Envió con bloqueo
Recepción sin bloqueo
Recepción con bloqueo
Cuando ambos son con bloqueo tenemos una
cita(redezvous )entre emisor y receptor.
Uso de buffers
Los mensajes intercambiados
por los procesos comunicados
residen en una cola temporal.
básicamente existen tres
formas
Capacidad cero
Capacidad limitada
Capacidad ilimitada
La capacidad cero se la
denomina sistema sin buffers
los otro casos son con
buffers automático