Unidad 2 - Tarea 3 - Victor Delgado

SISTEMAS OPERATIVOS UNIDAD 2: TAREA 3 - ACTIVIDAD INTERMEDIA TRABAJO COLABORATIVO DOS. Presentado a: JAIME JOSE VALDES

Views 49 Downloads 9 File size 847KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SISTEMAS OPERATIVOS

UNIDAD 2: TAREA 3 - ACTIVIDAD INTERMEDIA TRABAJO COLABORATIVO DOS.

Presentado a: JAIME JOSE VALDES Tutor(a)

Entregado por: VICTOR MAURICIO DELGADO PEÑA Código: 1053608689

Grupo: 301402_52

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CIENCIAS BÁSICAS, INGENIERÍAS Y TECNOLOGÍAS FECHA 28 DE SEPTIEMBRE 2019

Desarrollo de la actividad

1. Definir que son procesos, sus estados y como se clasifican. (Realizar dos ejemplos que usted como ingeniero considere que son procesos de un sistema operativo).  Definición: Cada ejecución de un programa da lugar a un proceso es un conjunto de instrucciones y datos almacenados en un fichero. Cuando lo que tiene ese programa se carga en la memoria y se pone en ejecución, se convierte en un proceso.  Estados del procesador 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á pendiente de un evento externo que le ha hecho bloquear, tales como una operación de lectura/escrituro lo cual reacciona por alguna una señal, comprueba cuales son los procesos que fueron bloqueados por ese evento externo, cambiándolos al estado de preparado. Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso procesador. Finalizado (terminated): El proceso finalizó su ejecución.

 Clasificación de procesos: se clasifican según el grado en que comparten la memoria • Procesos Pesados (proceso Unix): Los procesos no comparten ninguna porción de la memoria. Cada proceso se ejecuta en su propio procesador virtual con CPU y memoria. Todos los procesos sí comparten el mismo espacio de almacenamiento permanente (el disco). • Procesos Livianos o threads: comparten toda la memoria y el espacio de almacenamiento permanente. • Procesos preemptive (con adelantamiento): Es el núcleo el que decide en qué instante se transfiere el procesador real de un proceso al otro. Es decir un proceso puede perder el control del procesador en cualquier instante. • Procesos non-preemptive (sin adelantamiento): Es el proceso el que decide en que momento se puede transferir el procesador real a otro proceso.  Ejenplos:

-Los procesos nos desglosan en secciones por: Aplicaciones, Procesos en Segundo Plano que serían como subprocesos que gestionan las aplicaciones y procesos internos del sistema. Adicionalmente podemos ver los consumos ya no sólo de CPU y Memoria, sino también a nivel de disco y de red. Ejemplo windows 10 1. wininit.exe (Aplicación de inicio de Windows.) 2. smss.exe (Administrador de sesión de Windows)

2. Los sistemas operativos necesitan cierta manera de crear procesos. En sistemas muy simples o diseñado para ejecutar una sola aplicación. •Usted como ingeniero debe definir los eventos principales que provocan la creación de un proceso y realizar un ejemplo de proceso que ejecuten solo una aplicación. 1. El arranque del sistema: al iniciar se crean muchos procesos:  

procesos primer plano (foreground) que interactúan con el usuario (ej: terminal, entorno gráfico, etc). procesos segundo plano (background): actúan por detrás y la mayor parte del tiempo están a la espera (impresión de documentos, TCP/IP, recepción de correo, etc).

2. La ejecución desde un proceso, de una llamada al sistema para creación de procesos. Ejecución de un programa en Python, el cual ejecuta un programa para enviar un mail 3. Una petición de usuario para crear un proceso: Pulsar un “click” al reproductor de multimedia 4. El inicio de un trabajo por lotes. Un programa que inicie todos los días a las 3:00 AM, el cual ejecute varios procesos (TAREA: estudie el comando crontab)

3. Realizar un mapa conceptual donde se pueda evidenciar como se realiza la comunicación y sincronización entre procesos en un sistema operativo. El mapa conceptual debe contener (Condiciones de carrera, regiones críticas, exclusión mutua con espera ocupada, dormir y despertar, semáforo, monitores, transmisión de mensajes y barreras).

Comunicación y Sincronización de Procesos

La comunicación entre procesos es necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. La Sincronización es el funcionamiento coordinado en la resolución de una tarea encomendada.

Dividido en

Condiciones de carrera

Qué es? En algunos sistemas operativos, los procesos que trabajan en conjunto puede compartir cierto espacio de almacenamiento en el que pueden leer y escribir datos,

Como lo hace?

Donde dos o más procesos están leyendo o escribiendo algunos datos compartidos y el resultado final depende de quien se ejecuta y exactamente cuándo lo hace, se conocen como condiciones de carrea

Regiones críticas

Qué es? Como evitamos las condiciones de carrera? La clave para evitar problemas aquí y en muchas otras situaciones en las que se involucran la memoria compartida, los archivos compartidos y todo lo demás compartido es buscar alguna manera de prohibir que mas de un proceso lea y escriba los datos compartidos al mismo tiempo.

Exclusión mutua con espera ocupada

Con exclusión mutua Cierta forma de asegurar que si un proceso esta utilizando una variable o archivo compartido, los demás procesos se excluirán de hacer lo mismo.

Semáforo

Monitores

Qué es?

Qué es?

Transmisión de mensajes y barreras

Qué es? Qué es?

Varias proporciones para lograr la exclusión mutua, de manera que mientras un proceso esté ocupado actualizando la memoria compartida en se región critica, ningún otro proceso puede entrar a su región crítica y ocasionar problemas.

Como lo hace? Como lo hace?

Dormir y despertar

-Deshabilitando interrupciones. -Variables de candado -Alternancia estricta. *Solución Peterson. -La instrucción TSL.

Dormir: es una llamada al sistema que hace que el proceso que llama se bloquee o desactive, que suspenda hasta que otro proceso despierte. La llamada despertar tiene. El proceso que se va a despertar o activar. De manera alternativa, tanto dormir como despertar tiene un parámetro, un dirección de memoria que se utiliza para asociar las llamadas a dormir con las llamadas a despertar,

Como lo hace? Produce los mismos tipos de condiciones de carreara que vimos antes con el directorio de spoiler. Para llevar la cuenta del número de elementos en el búfer. Necesitamos una variable (cuenta). Si el número máximo de elementos que puede contener el búfer es N, el código del productor comprueba primero si cuenta es N. Si lo es, el productor se duerme, si no lo es, el productor agrega un elemento e incrementa la cuenta.

En la propuesta E,E, Dijkstra (1965) sugirió el uso de una variable entera para contar el número de señales de despertar: introdujo un nuevo tipo de variable, al cual el llamo semáforo. Un semáforo podría tener el valor o, indicando que no se guardaron señales de despertar o algún valor positivo si estuvieran pendientes una o más señales de despertar. Propuso que se tuvieran dos operaciones, down y up (generalizaciones de sleep y wakeup, respectivamente.

Como lo hace? Los semáforos resuelven el problema de perdida de señales de despertar. Para que funcionen de manera correcta, es esencial que se implementen de una forma indivisible. Lo normal es implementar Up y Down como llamadas al sistema, en donde el sistema operativo deshabilita brevemente todas las interrupciones , mientras evalúa el semáforo, lo actualiza y pone el proceso a dormir, si es necesario.

Una colección de procedimientos, variables y estructuras de datos que se agrupan en un tipo especial de modulo o paquete.

Como lo hace?

Sincroniza los procesos con exclusión mutua, es decir, que solo puede haber un proceso activo, una forma común es utilizar un mutex o semáforo binario.

Qué es? Método de comunicación entre procesos utiliza dos primitivas (send y receive) que, al igual que los semáforos y a diferencia de los monitores, son llamadas al sistema en vez de construcciones del lenguaje.

Como lo hace? La primera llamada envía un mensaje a un destino especificado y la segunda recibe un mensaje de un origen especificado (o de cualquiera, si al receptor se puede bloquear hasta que llegue uno. De manera alternativa, puede regresar de inmediato con un código de error.

4. Como cree usted que el sistema operativo planifica la ejecución de los procesos, que herramientas utiliza y como lo realiza. -Se podría decir que la CPU los planifica en dos versiones. •Largo plazo: determina el nivel de multiprogramación, cuantos trabajos se cargan en memoria, lo ingresa a la memoria o lo saca. •Corto plazo: el trabajo se ejecuta a continuación para proporcionar un buen servicio. Ocurre frecuentemente, es minimizar sobrecarga por cambio de contexto y depende de muchas cosas -El SO contiene programas de servicios que sirven de apoyo al procesamiento de los trabajos, se clasifican en tres tipos. •Utilerías del sistema: se ejecuta bajo el SO y se utilizan para preparar recursos usados por el sistema y son de uso interno. •Utilerías para archivos: manejan información de los archivos tales como imprimir, clasificar, copiar, etc. •Utilerías independientes: realizan funciones que se relacionan con la iniciación de los dispositivos de entrada/salida, que carga el SO.