Está en la página 1de 6

INSTITUTO TECNOLOGICO DE MEXICO

CAMPUS: COMITANCILLO

UNIDAD 2: ADMINSITRACION DE PROCESOS Y PROCESADOR

Alumno: Isaac Rivera

Asignatura: Sistemas Operativos I

Ing. Didier Palomec Ordaz

San Pedro Comitancillo, Oaxaca a 16de Mayo del 2021


ACTIVIDAD 3: CUESTIONARIO UNIDAD 2

Elaborar un diagrama de transición de procesos. (3pts)

Nuevo Terminado

preparado Ejecución

Bloqueado

Elaborar un diagrama de transición de Hilos. (3pts)

Representar con ejemplos de la vida real los conceptos: Proceso, Programa y Procesador. (3pts)
Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador
de programa, los registros y las variables. Conceptualmente cada uno de estos procesos tienen su
propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto


formado por:

 Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.


 Su estado de ejecución en un momento dado, esto es, los valores de los registros de la
CPU para dicho programa.
 Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
 Otra información que permite al sistema operativo su planificación.

Como ejemplos de la vida real puedo definir de una manera muy fácil los conceptos de proceso
programa y procesador.

Un ejemplo muy claro seria cuando se talan los arboles para obtener madera para la creación de
muebles, se habla de un cierto proceso.

Los arboles son talados de los bosques, y estos son llevadas a una fábrica de madera, donde los
troncos de los árboles serán procesados, se cortan los troncos en paneles de maderas y seran
pulidas por ciertas maquinas cortadoras y pulidoras para convertirlas en madera fina para la
creación de muchos muebles.

En este caso el proceso son las etapas que pasan los troncos para convertirse en madera fina.

Y el procesador serían las maquinas Pulidoras y cortadoras de madera.

Mientras que el programa es la Fábrica de maderas.

Diferenciar estos conceptos indicando su utilidad: Algoritmo, Programa, Proceso, Tarea, Job,
Sesión, Lote. (5pts)

CONCEPTO DEFINICION Y UTILIDAD


ALGORITMO Son una serie de instrucciones para resolver un problema.
PROGRAMA Es un Conjunto de códigos e instrucciones hechos con un lenguaje de programación y
que se pueden ejecutar en un ordenador.
PROCESO Es el programa en ejecución, e incluye los valores actuales del contador de programa,
los registros y las variables.
TAREA Es la Actividad que se va a procesar en un ordenador mediante un procesador.
JOB es un lenguaje informático y sintaxis requeridas para la redacción de instrucciones de
ejecución de programas.
SESION es un intercambio de información temporal e interactivo entre dos o más dispositivos
de comunicación
LOTE Es un tipo de sistema operativo que no interactúa directamente con la computadora.
En su lugar, hay un operador que acepta trabajos similares y los agrupa en lotes. El
operador se encarga de clasificar los trabajos con necesidades similares.

Definir diferencias entre proceso, thread y multithread. (5pts).


Un proceso es una entidad relativamente independiente que dispone de su propio espacio de
direcciones, su propia información de estado y que utiliza los mecanismos de comunicación entre
procesos que le proporciona el sistema operativo para comunicarse con otros procesos.

Por otro lado, un hilo (thread o hebra) es una entidad más reducida capaz de convivir junto a otros
hilos bajo el contexto de un único proceso, permitiendo compartir la información de estado, el
área de memoria y/o los recursos asociados a ese proceso.

Dentro de un proceso puede haber uno o más hilos de control cada uno con:

 Un estado de ejecución (en ejecución, listo, bloqueado).|


 Un contexto de procesador, que se salva cuando no esté ejecutándose.
 Una pila de ejecución.
 Algún almacenamiento estático para variables locales.
 Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos
tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio
de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de
ejecución se mantiene una única copia en memoria del código, y no varias.

Investigar los mecanismos empleados para la sincronización de procesos, así como, diferenciar
los que existen para los threads y multithreads.(6pts).

La comunicación entre procesos: necesaria si se desea que varios procesos puedan colaborar para
realizar una misma tarea.

Sincronización funcionamiento coordinado en la resolución de una tarea encomendada.

El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes.


Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas
transferidas para su labor coordinada.

Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un


mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma
definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados.
Es decir, la comunicación es algo puntual.

Los servicios básicos de comunicación son:

 crear: el proceso solicita la creación del mecanismo


 enviar o escribir: el proceso emisor envía información al proceso receptor
 recibir o leer: el proceso receptor recibe información
 destruir: el proceso solicita la destrucción del mecanismo de comunicación

La comunicación puede ser síncrona y asíncrona:


 síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de
ejecutar el servicio enviar mientras el receptor ejecuta recibir.
 asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un
almacenamiento intermedio para guardar la información enviada, hasta que el receptor la
solicite.

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 éstos. Cuando un hilo
modifica un dato en la memoria, los otros hilos acceden e ese dato modificado inmediatamente a
en la siguiente figura podemos observar un ejemplo de un hilo de ejecución.

Sincronización de hilos

Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser
archivos abiertos. Cualquier modificación de un recurso desde un hilo afecta al entorno del resto
de los hilos del mismo proceso. Por lo tanto, es necesario sincronizar la actividad de los distintos
hilos para que no interfieran unos con otros o corrompan estructuras de datos.

Una ventaja de la programación multihilo es que los programas operan con mayor velocidad en
sistemas de computadores con múltiples CPUs (sistemas multiprocesador o a través de grupo de
máquinas) ya que los hilos del programa se prestan verdaderamente para la ejecución
concurrente. En tal caso el programador necesita ser cuidadoso para evitar condiciones de carrera
(problema que sucede cuando diferentes hilos o procesos alteran datos que otros también están
usando), y otros comportamientos no intuitivos. Los hilos generalmente requieren reunirse para
procesar los datos en el orden correcto. Es posible que los hilos requieran de operaciones
atómicas para impedir que los datos comunes sean cambiados o leídos mientras estén siendo
modificados, para lo que usualmente se utilizan los semáforos. El descuido de esto puede generar
interbloqueo.

Los sistemas operativos generalmente implementan hilos de dos maneras:

o Multihilo apropiativo: permite al sistema operativo determinar cuándo debe haber un


cambio de contexto. La desventaja de esto es que el sistema puede hacer un cambio de
contexto en un momento inadecuado, causando un fenómeno conocido como inversión
de prioridades y otros problemas.
o Multihilo cooperativo: depende del mismo hilo abandonar el control cuando llega a un
punto de detención, lo cual puede traer problemas cuando el hilo espera la disponibilidad
de un recurso.
Define el concepto de Interbloqueo (deadlock) y analizar su detección, prevención y
recuperación. (5pts).

El interbloqueo, llamado también bloqueo mutuo o deadlock, se define como el bloqueo


permanente de procesos que requieren los servicios de determinados recursos.

Es decir, cuando todos los procesos aseguran algunos recursos, pero quedan a la espera de otros,
los cuales han sido asignados a procesos diferentes. Estos a su vez, necesitan los recursos
asignados a los primeros procesos. De esta forma, cada proceso asegura algún recurso, pero
queda en espera de otro.

Prevención, detección y predicción del interbloqueo

Las soluciones del interbloqueo se presentan a través de tres estrategias: prevención, detección y
predicción del mismo.

Prevención: se logra a partir del diseño del sistema operativo impidiendo que exclusión mutua,
retención y espera y no apropiación puedan darse.

Detección: aquí el interbloqueo puede presentarse, sin embargo, el sistema operativo ejecuta
periódicamente un algoritmo que crea estrategias de recuperación ante la aparición del círculo
vicioso de espera. Las estrategias de recuperación pueden ser abandono, retroceso, abandono
controlado o apropiación total de recursos.

Predicción: se realiza mediante procesos dinámicos que establecen si la petición de un recurso


podrá conducir a interbloqueo. Si bien es cierto la predicción es la estrategia más eficiente ante el
problema de interbloqueo tiene restricciones en el número de procesos y recursos a gestionar, por
la sobrecarga que puede producir en el sistema.

También podría gustarte