Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD
II
Hardware y
Procesos
PROCESO
Proceso
01 imagen en memoria de un programa, junto con
la información relacionada con el estado de su
ejecución.
Si bien el sistema brinda la ilusión de
que muchos procesos se están Programa
ejecutando al mismo tiempo, la entidad pasiva, una lista de instrucciones; un
proceso es una entidad activa, que –empleando
mayor parte de ellos típicamente está
esperando para continuar su
02 al programa– define la actuación que tendrá el
ejecución —en un momento sistema.
determinado sólo puede estar Tarea
ejecutando sus instrucciones un requiere mucha menos estructura, típicamente
número de procesos igual o menor al basta con guardar la información relacionada con
número de procesadores que tenga 03 la contabilidad de los recursos empleados. Una
el sistema. tarea no es interrumpida en el transcurso de su
ejecución.
ESTADOS DE UN PROCESO
Se solicitó al sistema operativo la Está listo para iniciar o continuar su El proceso está siendo ejecutado en este
creación de un proceso, y sus recursos ejecución pero el sistema no le ha momento. Sus instrucciones
y estructuras están siendo creadas. asignado un procesador. están siendo procesadas en algún
procesador.
En espera de algún evento para poder El proceso ha finalizado su ejecución, El proceso terminó de ejecutarse; sus
continuar su ejecución (aun pero el sistema operativo debe estructuras están a la espera
si hubiera un procesador disponible, no realizar ciertas operaciones de limpieza de ser limpiadas por el sistema operativo.
podría avanzar) para poder eliminarlo de la lista.
ESTADOS DE UN PROCESO
Diagrama de
transición entre los
estados de un
proceso.
PROCESO
Estado del El estado actual del proceso. Listado de dispositivos y archivos
proceso asignados que el proceso tiene
abiertos en un momento dado.
Registros del
CPU
La información específica del estado Estado de E/S
del CPU mientras el proceso está en
ejecución (debe ser respaldada y
restaurada cuando se registra un
cambio de estado)..
PCB -Process
Información de la utilización de
Control Block recursos que ha tenido este proceso
puede incluir el tiempo total empleado
La prioridad del proceso, la cola y otros (de usuario, cuando el
Información de en que está agendado, y demás procesador va avanzando sobre las
información que puede ayudar al instrucciones del programa
planificación sistema operativo a planificar los propiamente, de sistema cuando el
(scheduling) procesos. sistema operativo está atendiendo las
solicitudes del proceso), uso
acumulado de memoria y dispositivos,
La información de mapeo de etcétera.
memoria (páginas o segmentos,
dependiendo del sistema Información
Información de operativo), incluyendo la pila
de
(stack) de llamadas.
administración de contabilidad
memoria
HILOS
En sistemas operativo un hilo o hebra (del ingles thread), proceso
ligero o subproceso es una secuencia de tareas encadenadas muy pequeña que
puede ser ejecutada por un sistema operativo.
Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo que otra
tarea.
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos,
son en conjunto conocidos como un proceso.
El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos
hace que cualquiera de estos hilos pueda modificar estos recursos. Cuando un hilo
modifica un dato en la memoria, los otros hilos acceden a ese dato modificado
inmediatamente.
HILOS
FUNCIONALIDAD DE
HILOS
Bloqueo
Cuando un hilo necesita esperar Terminación
por un suceso, se bloquea Cuando un hilo finaliza se liberan
(salvando sus registros de usuario, tanto su contexto como sus
contador de programa y punteros columnas.
de pila). Ahora el procesador podrá
pasar a ejecutar otro hilo que esté
al principio de los Listos mientras el
anterior permanece bloqueado.
Ventajas de los hilos
contra procesos
Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un
proceso. Algunas investigaciones llevan al resultado que esto es así en un factor de 10.
Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se
debe eliminar el BCP1del mismo, mientras que un hilo se elimina su contexto y pila.
Ventajas de los hilos
contra procesos
Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.
Varias aplicaciones: para este caso se invento la multiprogramación, esto para permitir que el
tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o
aplicaciones activas (lo que acabamos de explicar arriba). Es decir, dentro de nuestro
computador podemos tener abiertas varias aplicaciones, cada aplicación es un hilo diferente, es
decir una tarea que se ejecuta independientemente de otra, por decirlo de algún modo, no
necesito tener abierto Word para poder escuchar música ¿O si?, cada programa en este caso es
independiente del otro.
CONCURRENCIA
La concurrencia puede presentarse en tres contextos diferentes:
Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los
programadores de sistemas y se ha comprobado que algunos sistemas operativos están
implementados como un conjunto de procesos.
En otras palabras lo mismo que acabamos de explicar con los navegadores se puede aplicar
aquí, un Sistema Operativo es básicamente un conjunto de programas que se ejecutan
concurrentemente para ofrecerte la mejor experiencia de trabajo. Si ponemos un ejemplo
practico podríamos mencionar todos los servicios de Windows, desde el servicio de cola de
impresión hasta el servicio de actualización de Windows update, cada uno de estos son
procesos que se ejecutan en segundo plano, si cerramos por error podemos causar un mal
funcionamiento de Windows o inclusive dañarlo.
CONCURRENCIA
Multicomputadora: Es una maquina de memoria distribuida, que está formada por una serie de
computadoras. En este tipo de arquitecturas también es posible la ejecución simultánea de los
procesos sobre los diferentes procesadores
CONCURRENCIA
Procesos son cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en
alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos.
En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de
interacciones entre ellos y pueden ser de dos tipos:
- Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos
físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o
para modificar una base de datos.
- Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un
objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan
conjuntamente para obtener un solo archivo de salida.
BLOQUEOS MUTUOS
CONDICIONES
Condición de no expropiación: los recursos no pueden ser expropiados por los procesos, es
decir, los recursos sólo podrán ser liberados voluntariamente por sus propietarios.
Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de las condiciones necesarias vistas
anteriormente.
Eliminando la exclusión mutua: ningún proceso puede tener acceso exclusivo a un recurso. Esto es imposible para
procesos que no pueden ser encolados (puestos en un spool), e incluso con colas también pueden ocurrir
interbloqueos.
La condición de posesión y espera puede ser eliminada haciendo que los procesos pidan todos los recursos que van a
necesitar antes de empezar. Este conocimiento por adelantado muchas veces es imposible nuevamente. Otra forma es
requerir a los procesos liberar todos sus recursos antes de pedir todos los recursos que necesitan. Esto también es
poco práctico en general.
La condición de no expropiación puede ser también imposible de eliminar dado que un proceso debe poder tener un
recurso por un cierto tiempo o el procesamiento puede quedar inconsistente.
La condición de espera circular es la más fácil de atacar. Se le permite a un proceso poseer sólo un recurso en un
determinado momento, o una jerarquía puede ser impuesta de modo tal que los ciclos de espera no sean posibles.
ALGORITMOS DE
PLANIFICACIÓN
Cuando un proceso es ejecutable, el sistema operativo debe decidir cuál de ellos, debe ejecutarse en
primer término. Esa parte del sistema operativo que debe llevar a cabo esa decisión se llama el
planificador y el algoritmo que utiliza se llama algoritmo de planificación.
Existen varios criterios para los algoritmos de planificación específicos, para que sea un buen
algoritmo de planificación.
Tiempo de espera (E) = tiempo que una ráfaga ha permanecido en estado listo.
En la planificación de plazo fijo se programan ciertos trabajos para terminarse en un tiempo específico o plazo
fijo. Estas tareas pueden tener un gran valor si se entregan a tiempo, y carecer de él si se entregan después del
plazo. Esta planificación es compleja por varios motivos:
El usuario debe informar por adelantado de las necesidades precisas de recursos del proceso. Semejante
información rara vez está disponible.
El sistema debe ejecutar el proceso en un plazo fijo sin degradar demasiado el servicio a los otros usuarios y
debe planificar cuidadosamente sus necesidades de recursos dentro del plazo. Esto puede ser difícil por la
llegada de nuevos procesos que impongan demandas imprevistas al sistema.
Si hay muchas tareas a plazo fijo activas al mismo tiempo, la planificación puede ser tan compleja que se
necesiten métodos de optimización avanzados para cumplir los plazos.
La administración intensiva de recursos requerida por la planificación de plazo fijo puede producir un gasto extra
substancial.
TIPOS ALGORITMOS DE
PLANIFICACIÓN
Planificación Primero en Entrar-Primero en Salir (FIFO, First In First Out)
Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo.
El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.
La ventaja de este algoritmo es su fácil implementación, sin embargo, no es válido para entornos
interactivos ya que un proceso de mucho cálculo de CPU hace aumentar el tiempo de espera de los
demás procesos . Para implementar el algoritmo (ver figura 2) sólo se necesita mantener una cola
con los procesos listos ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a
listo se sitúa el último de la cola.
La determinación del tamaño del cuanto es vital para la operación efectiva de un sistema de cómputo.
¿Debe el cuanto ser pequeño o grande?, ¿fijo o variable?, ¿el mismo para todos los usuarios o debe
determinarse por separado para cada uno?
Si el cuanto de tiempo es muy grande, cada proceso tendrá el tiempo necesario para terminar, de
manera que el esquema de planificación por turno rotatorio degenera en uno de primero-en-entrar-
primero-en-salir. Si el cuanto es muy pequeño, el gasto extra por cambio de proceso se convierte en
el factor dominante y el rendimiento del sistema se degradará hasta el punto en que la mayor parte
del tiempo se invierte en la conmutación del procesador, con muy poco o ningún tiempo para ejecutar
los programas de los usuarios.
Un cuantum pequeño disminuye el rendimiento de la CPU, mientras que un cuantum muy largo
empobrece los tiempos de respuesta y degenera en el algoritmo FIFO. La solución es adoptar un
término medio
TIPOS ALGORITMOS DE
PLANIFICACIÓN
Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto,
sólo es útil para entornos batch.
Su característica es que cuando se activa el planificador, éste elige la ráfaga de
menor duración. Es decir, introduce una noción de prioridad entre ráfagas.
Hay que recordar que en los entornos batch se pueden hacer estimaciones del
tiempo de ejecución de los procesos.
TIPOS ALGORITMOS DE
PLANIFICACIÓN
Con este tipo de planificación se pretende garantizar al usuario cierta prestación del
sistema y tratar de cumplirla. Si en un sistema tenemos 'n' usuarios lo normal será
garantizar a cada uno de ellos al menos 1/n de la potencia del procesador. Para ello
necesitamos del tiempo consumido por el procesador y el tiempo que lleva el
proceso en el sistema.
La cantidad de procesador que tiene derecho a consumir el proceso será el cociente
entre el tiempo que lleva en el sistema entre el número de procesos que hay en el
sistema. A esa cantidad se le puede asociar una prioridad que vendrá dada como el
cociente entre tiempo de procesador que ha consumido y el tiempo que se le
prometió (el tiempo que tiene derecho a consumir).