Sistemas Operativos. Tarea 2

Universidad abierta para adultos (UAPA).

Bienvenidos a la segunda semana de trabajo en la asignatura Sistemas Operativos, en la que se realizarán las siguientes actividades:

1-Utilizando el material de apoyo colgado en la plataforma de esta asignatura, realiza un resumen de los siguientes términos:

Definición de Hebras.

En sistemas operativos un hilo de ejecución, hebra o subproceso es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.

La creación de una nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

La creación de un nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Modelos Multihebra.

Multihilo se refiere a la capacidad de un sistema operativo de dar soporte a múltiples hilos de ejecución en un solo proceso.

• Procesos concurrentes (un solo hilo de ejecución)

• Sistemas Operativos modernos— proceso contiene más de un hilo de ejecución

• Hilo o proceso ligero, es una unidad básica de utilización de la CPU.

• Comprende un ID, CP, conjunto de registros y una pila.

• Hilo comparte con otros hilos que pertenecen al mismo proceso: código, datos y otros recursos como archivos abiertos.

Biblioteca de hebras.

La biblioteca de hebras se puede utilizar en cualquier sistema operativo, basta con disponer de la capa de software de hilos. Los hilos de sistema sólo se pueden ejecutar en sistemas que los soporten.

La biblioteca de hebras permite utilizar una planificación específica, dentro del tiempo asignado por el sistema operativo. Planificación que es distinta de la del sistema operativo. En los hilos de sistema se utiliza la planificación del sistema operativo.

2-Simula en C# el proceso de hilo en dos métodos simultaneos general el código

CLASE

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

using System.Threading.Tasks;

namespace hilos

{

    class tasks

    {

        private String name;

        private int time;

        // estos son los atributos de la clase

        //este es el metodo constructor, debe llamarse igual que la clase

        public tasks(String name, int time)

        {

            this.name = name; // el dato que este en el parametro name se lo vamos a almacenar a el atributo

            this.time = time;

            // de esta forma quedan inicializados los artibutos

        }

        //creamos un nuevo metodo

        public void tasks1()

        {

            Console.WriteLine(name +»Este hilo solo durara»+ time+»segundos»); // mensaje que saldra en consola

            Thread.Sleep(time * 1000); //aqui como dijimos en la teoria estamos calculando en base a milisegundos, asi que determinanos que tiempo tomara el hilo

            // tambien es el tiempo que se suspendera el subproceso actual hasta que se termine

            Console.WriteLine(«Hilo terminado «+ name); // mensaje para saber cuando termino el hilo

        }

        //aca solo copie y pegue para tener dos hilos

        public void tasks2()

        {

            Console.WriteLine(name + «Este hilo solo durara» + time + «segundos»); // mensaje que saldra en consola

            Thread.Sleep(time * 1000); //aqui como dijimos en la teoria estamos calculando en base a milisegundos, asi que determinanos que tiempo tomara el hilo

            // tambien es el tiempo que se suspendera el subproceso actual hasta que se termine

            Console.WriteLine(«Hilo terminado » + name); // mensaje para saber cuando termino el hilo

        }

    }

}

PROGRAMA

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

using System.Threading.Tasks;

namespace hilos

{

    class Program

    {

        static void Main(string[] args)

        {

            tasks objeto1 = new tasks(«hilo-1», 16); // a la clase tarea le estamos pasando los datos nombre y tiempo

            tasks objeto2 = new tasks(«hilo-2», 24);

            Thread hilo1 = new Thread(objeto1.tasks1);// de esta forma llamamos a los metodos que tenemos en la clase tarea

            Thread hilo2 = new Thread(objeto2.tasks2);

            //para iniciar estos dos procesos o hilos

            hilo1.Start();

            hilo2.Start();

            Console.ReadKey(); //con esto estatodo listo para ejecutar nuestros hilos de la clase tasks

        }

    }

}

Deja una respuesta