Unidad 2

23
INSTITUTO TECNOLÓGICO DE SAN JUAN DEL RIO Sistemas Operativos Unidad 2: Administración de los Procesos y Procesadores. Mirna Fabiola Garduño Hernández. Alumna M.C Claudia Morales Castro Profesora Ing. Sistemas Computacionales

description

Contiene todas las actividades y practicas de la segunda unidad

Transcript of Unidad 2

Page 1: Unidad 2

INSTITUTO TECNOLÓGICO DE SAN JUAN

DEL RIO

Sistemas Operativos

Unidad 2: “Administración de los Procesos y

Procesadores”.

Mirna Fabiola Garduño Hernández.

Alumna

M.C Claudia Morales Castro

Profesora

Ing. Sistemas Computacionales

Page 2: Unidad 2

Sistemas Operativos - Unidad 2

Actividad 1 Instrucciones: Investiga en diversas fuentes y apoyándote en la explicación de la clase, contesta cuidadosamente el siguiente cuestionario, en cada pregunta incluye la referencia utilizada como apoyo para contestarla. El cuestionario deberá ser realizado a mano en hojas reciclables. PARTE 1. 1. Explica cada uno de los elementos de información que incluye el PCB de los procesos

Prioridad PBC Prioridad del proceso sí es de modo de usuario kernel

Privilegios Registro de cada uno de los proceso

2. Cuando se habla de modo kernel y/o modo usuario, a que se está haciendo referencia.

La manera en la que se ejecuta los procesos

3. Con que otro nombre (s) se le conoce al modo kernel?

Modo supervisor o modo privilegiado

4. Enlista 3 ejemplos de cada uno de los modos de la pregunta 2

El modo kernel los procesos son muy cercanos al hardware operación con él a veces no nos damos

cuenta que existe en modo usuario es más fácil utilizar esos procesos

Kernel: bus de información control de bios.

Usuario: abrir, Word, imprimir, protocolos IP.

5. Un sistema se puede representar como un Modelo de colas de procesos del sistema operativo, ilustra

este modelo, explica su función y define las diferentes colas de procesos que incluye.

Es un conjunto de procesos esperando para la utilización de un determinado recurso

generalmente se implementa mediante a lista en cadena.

Prioridad Procesos Proceso Procesos

Lista de procesos esperando un recuso

A B B

Page 3: Unidad 2

6. Ilustra y explica un ejemplo de cambio de contexto, quien es el responsable de realizar este cambio?

Ims Ins Word gord pad

Teclado CPU Ims

Block de notas Guarda PBC

Paquete por internet Guarda PBC 7. Ilustra un ejemplo de una aplicación real que haga uso de cualquier modelo de thread.

Procesos de memoria threads threads thread

Proceso Proceso Proceso

Memoria Memoria Memoria

PARTE 2. 8. Observa el video “transiciones de estado y diagrama ..” las veces que consideres necesario y posteriormente: Explica brevemente con tus propias palabras que es una transición

Una transición es un proceso mediante un estado listo para el cual se le asigne un procesador para

ejecutar

Describe cada una de las transiciones que menciona el narrador

Nuevo-listo: al crearse un proceso pasa inmediatamente ala estado listo

Listo-ejecutado: en el estado de listo el proceso solo espera para que se le asigne un procesador

para ejecutar.

Ejecutado-listo: ante una interrupción que se genere el proceso puede perder el recurso puede

perder el proceso

Ejecutando-bloqueado: a medida que el proceso instrucciones realiza pedidos en distintos

componentes

Bloqueado-listo: una vez que ocurre el evento que el proceso estaba esperando puesto

nuevamente en la cola de espera

Ejecutado-terminado: Cuando el proceso ejecuta su última instrucción pasa al estado terminado.

Page 4: Unidad 2

Práctica No. 3

Monitoreo de Procesos Paso 1: Procesos del Sistema en Windows a). Windows tiene diferentes procesos en ejecución en cada máquina. Acceda a Internet e

investigue, lea, resuma y describa (a mano) 5 procesos diferentes de Windows 7 o del sistema

operativo que utilizó para su práctica ( anexe al final como resultados).

CSRSS.exe

Significa Client Run-Time Subsystem. Es un subsistema esencial que debe estar siempre

activo. Este administra la consola de Windows, crea y destruye Threads y administra

algunas porciones del entorno 16 bits virtual DOS.

LSASS.exe

Es el servidor de autentificación local de seguridad.

Genera los procesos responsables de la autentificación de usuarios para el proceso

Winlogon. Si la autentificación tiene éxito LSASS.exe genera los tokens de acceso para

el usuario que son utilizados para lanzar el Shell inicial. Los otros procesos que el

usuario inicia heredan estas tokens.

MSTASK.exe

Es el servicio que se encarga de planificar las tareas, es responsable de la ejecución de

tareas a un instante preciso programadas por nosotros.

SPOOLSV.exe

Es el proceso responsable de la gestión de los trabajos de impresión y fax.

SERVECES.exe

Es el administrador de servicios de Windows (Service Control Manager). Este proceso

inicia, detiene e interactúa con los servicios del sistema.

Paso 2: Conteste lo siguiente (anexar en resultados con evidencias en cada punto): 1. Asegúrese de que todas las ventanas estén cerradas excepto una en la que esté leyendo y

editando algún documento. Explique paso a paso 3 maneras diferentes de ingresar a la línea

de comandos de Windows 7.

1. Presionar la tecla Windows+R aparece la ventana ejecutar.

2. Entre al menú inicio, clic en todos los programas, entrar a la carpeta

Accesorios, ejecutar y se escribe CMD y de clic en aceptar se abre la línea

de comandos.

3. Entre al menú inicio, clic en todos los programas, entrar a la carpeta

Accesorios y por ultimo en el símbolo del sistema.

Page 5: Unidad 2

2. Use el comando hostname para encontrar el nombre de la computadora en la cual está

trabajando.

HP-210-1135LA

3. Determinar lo siguiente:

a) ¿Qué versión de Windows está usando?

Versión 6.1.7601

b) ¿Cuál es el tipo y velocidad del CPU de la maquina?

Procesador Intel Core Duo 2.80 GHz

Procesador Intel (R) Core ™ Duo CPU [email protected]

c) ¿Cuánto espacio está formateado en el drive c: ?

Formateado 10.56

d) ¿Cuánto espacio está siendo usado en el drive c: ?

Usado 38.2

e) ¿Cuánta memoria física está configurada en su máquina?

Memoria Física 2 GB

f) Utilice el comando tasklist (command prompt) y explique la información que aparece

en su monitor.

Page 6: Unidad 2

Aparece el nombre de la imagen en la primera columna es el nombre del proceso enseguida

pide que es un identificador del proceso como si fuera una clave, luego el nombre de sesión

que dice si es un proceso que de este ejecutando como servicio o en la consola, después el

numero de sesio que eso para los servicios y para los de la consola y por ultimo el uso de la

memori física de cada uno de los procesos.

4. Ejectute el “Process Viewer” (previa instalación)

a) Describa a detalle esta aplicación, explicando y anexando las figures correspondientes.

El programa muestra todas las aplicaciones módulos y procesos que el sistema está

utilizando muestra su ID, el uso de la memoria RAM el nombre del usuario que lo ejecuta.

5. Inicie Task Manager y conteste lo siguiente

a) ¿Qué aplicaciones están corriendo actualmente?

Microsoft Word, Reproductor Windows Media.

b) Muestre una tabla con 5 procesos del sistema y 5 de un usuario que aparezcan, describa

la información que se muestra en cada columna. Mencione además: total de procesos,

% de uso del CPU y de memoria física.

Proceso del Sistema:

En la primera se muestra el nombre del proceso, quien lo ejecuta en este caso el

sistema, después del CPU que sea de cada aplicación y el uso de la memoria RAM por

ultimo una pequeña descripción.

Page 7: Unidad 2

Nom Imagen Nom.

Usuario CPU Memoria RAM Descripción

Csrss.exe System 00 1.460Kb Cliente

Nvusvs.exe System 00 10.28 Kb Nudia driwer nelper.

NvxDsync.exe System 00 19.16 Kb

Experience

drivar.com-ponent

Proceso del Usuario:

Muestra nombre del usuario, quien lo ejecuta usuario CPU, memoria RAM.

Nom Imagen Nom.

Usuario CPU Memoria RAM Descripción

Chrome.exe Anrym 00 7.940 Kb Google chome

Dwn.exe Anrym 00 9.204 Kb

Administrador de

ventanas de

escritorio.

Egui.exe Anrym 00 1.564 Kb EST GUI, ESET GUI

Explorer.exe Anrym 00 24.956 Kb

Explorador de

Windows

Taskhost.exe Anrym 00 1.416 Kb

Procesador de host

para tareas Windows

c) El campo "PID" es el identificador interno del proceso, identifique y enliste 5 procesos

con PID diferentes.

PID

Nombre Imagen PID

System 4

Smss.exe 284

Wininit.exe 544

Ism.exe 668

Conhost.exe 4204

d) Muestre la gráfica de rendimiento y resalte con un marca textos la información

relevante con respecto a los procesos (explique).

Lo subrayado indica el número de subprocesos que son 709. Los que se están

ejecutando de igual manera.

e) Qué información presenta el Monitor de Recursos (explique y anexe evidencias).

El monitor de recursos muestra la información de todos los procesos pero separados

para recursos que son CPU, disco Red y menoría en cada uno estas los procesos que

se utilizan en esos recursos. En el CPU muestra el nombre de la imagen por ultimo

del lado derecho muestra la grafica, los componentes que sufra cada uno de los

recursos.

Page 8: Unidad 2

Conclusiones Es necesario conocer con que versión de sistema estamos trabajando al

igual de los procesos que son ejecutados tanto por el sistema o por el usuario

así como la memoria que requiere cada proceso para tener un mejor

rendimiento al realizar nuestras tareas.

Page 9: Unidad 2

Práctica No. 4

SUBPROCESOS EN JAVA Metodología 1. Utilice la herramienta para desarrollar programas en JAVA de su preferencia.

2. Crear un archivo en JAVA y que en ejecución cree dos subprocesos usando hilos. (El código correcto en JAVA se anexa)

3. Ejecute varias veces el programa y comente los resultados.

4. Modifique el programa para que cree cuatro subprocesos.

5. Ejecute varias veces el programa y comente por escrito los resultados.

6. Coloque comentarios descriptivos, en el archivo para cada línea del código. En particular donde está el crear, arrancar y el código de ejecución del proceso.

7. Incluya las instrucciones necesarias para que se visualice su nombre y muestre evidencia de haber sido ejecutado

8. Anexe figuras donde demuestre la ejecución de los pasos previos.

9. Cree el archivo en C que se anexa. Repita los pasos del 3 al 8. Números de control impares hilo1 y números de control pares hilo2. Bibliografía utilizada (mínimo 3 y utilizar formato APA) García J. Rodríguez J., MgaI, Imaz A., Brazalez A., Larzobal A., Calleja J. y García J. (2000) Aprenda Java. San Sebastián: Navarra. Observaciones Se puede notar que la duración del proceso de inactividad siempre será mayor el del proceso o subproceso 2 que el 1. Conclusiones: Los subprocesos como formen se estén ejecutando seguirán cambiando a si mismo el momento de duración en el que estarán inactivos.

2 procesos 3. primero inicio, arranca los procesos empieza ejecutando el proceso 1 al que le asignamos un

tiempo menor después la proceso 2 de igual forma el tiempo que duro es aleatorio y puede ser

menor el tiempo del proceso 1 o viceversa cuando el proceso termina en vía un msj aquel que

tenga menos tiempo será el proceso que termine primero.

4 procesos

De igual forma los proceso se le asignan a tiempo aleatorio menor a 5000 aquel que tenga el

menor tiempo de ejecución termina primero funciona igual 2 procesos al momento de asignar es

aleatorio

Segundo programa de hilos

Page 10: Unidad 2

Al ejecutar el programa muestra una ventana en la que podemos escribir lo que queramos, no

tiene fin por que utilizamos un ciclo infinito la función de hilos se hace presente por que cuenta el

número de características que se están usando contando los espacios esto aparece arriba donde

escribimos.

3. Ejecute varias veces el programa y comente los resultados.

Al ejecutar el programa podemos observar que la duración o variable del subproceso cambia y el subproceso imprime primero al 2 y después el 1.

Lo único que cambia es la variable de estar inactivo y el proceso siempre es mayor el primero que el segundo.

Modifique el programa para que cree cuatro subprocesos.

Page 11: Unidad 2

4. Ejecute varias veces el programa y comente por escrito los resultados.

Lo único que cambia es el momento de duración de los subprocesos el cual estará inactivo y se invierten el orden de impresión y de inactividad.

6.- Coloque comentarios descriptivos, en el archivo para cada línea del código. En particular donde está el crear, arrancar y el código de ejecución del proceso.

Page 12: Unidad 2

7.- Incluya las instrucciones necesarias para que se visualice su nombre y muestre evidencia de haber sido ejecutado

8.- Anexe figuras donde demuestre la ejecución de los pasos previos.

Page 13: Unidad 2

Actividad 2

“Algoritmo Cajero”

En nuestro algoritmo de cajero los recursos son los cajeros y los

procesos son los clientes pero cuando no hay una sincronización

y que hubiera tan solo una caja para la tienda se satura mucho la

caja y estará muy tardado pero mas intercambio ya habiendo mas

cajeros es mas rápido el proceso y así es una buena relación

tanto el cajero como con el cliente.

Page 14: Unidad 2

ACTIVIDAD 3

En equipos de dos personas realicen los siguientes ejercicios explicando a

detalle el procedimiento utilizado para su solución, anexar la bibliografía

consultada.

1.- Liste tres ejemplos de deadlocks que no estén relacionados con el

ambiente de computación.

Ferrocarriles de una sola line

La fila del seguro

Paletera( proceso=clientes, recurso=nieve)

2.- Considere el deadlock de tráfico mostrado en la siguiente figura:

a)

Mutua Exclusión: Los recursos ya están asignados y los otros

procesos que los requieren deben esperar hasta que sean

liberados

Retención y Espera: Cada uno de los procesos ya tiene un

recurso asignado pero a la vez está esperando por otros recursos

adicionales los cuales están siendo ocupados por otros procesos

No remoción: Un carro no puede quitar al otro carro.

Espera circular: Es una cadena circular de 4 procesos cada uno

de los cuales espera un recurso poseído por el siguiente:

p1 espera 1 recurso que ya posee p2;

p2 espera 1 recurso que ya posee p3;

……….

b) La solución es regresar el carril completo de los coches en cada cuadra

una cuadra atrás.

3.- Considere que un sistema consiste de cuatro recursos del mismo tipo que

son compartidos por tres procesos, cada uno de los cuales necesita como

máximo dos recursos. Muestre que el sistema es libre de deadlock.

El sistema está libre de deadlock.

Page 15: Unidad 2

4.- Una computadora tiene seis impresoras, con n procesos compitiendo por

ellas. Cada proceso puede necesitar tres dispositivos. Qué valor debe tomar

n de modo que el sistema esté libre de deadlock?

n=2

Para que no se produzca deadlock

5.- Un sistema está compuesto de cuatro procesos {P1, P2, P3 y P4}, y tres

tipos de recursos reusables {R1, R2 y R3}. El número de unidades de

recursos son (3, 2,2).

Proceso P1 retiene una unidad de R1 y requiere 1 unidad de R2.

P2 retiene 2 unidades de R2 y requiere 1 unidad de R1 y R3.

P3 retiene 1 unidad de R1 y requiere 1 unidad de R2.

P4 retiene 2 unidades de R3 y requiere 1 unidad de R1.

1

3

2

2 1

Page 16: Unidad 2

El interbloqueo se produce con el p2 al solicitar un R2 al igual

que el p3 con recurso R2 y el p4 con el R1 y p4 con el R3

El interbloqueo

R1

R2 R3

p1 p2 p3 p4

R2 R1 R3

p2 p3 p4

Page 17: Unidad 2

Scheduling Algorithms

Actividad 4

1. Assume you have the following Jobs to execute with one processor with the Jobs

arriving in the order listed here:

a) Suppose a system uses FCFS Scheduling. Create a Gantt chart illustrating

the executing of these processes?

P0 P1 P2 P3 P4

0 80 100 110 130 180

b) What is the turnaround time for process p3?

TA3=Tp3+Tp2+Tp1+Tp0=20+10+20+80=130

c) What is the average wait time for the processes?

(0+80+100+110+130)/5=84

2. Using the process load in the previous problem, suppose a system uses SJF

Scheduling

a) Create a Gantt chart illustrating the execution of these processes?

P2 P1 P3 P4 P0

0 10 30 50 100 180

b) What is the turnaround time for process p4?

TA3=Tp4+Tp3+Tp2+Tp1+Tp0=50+20+10+20+80=180

c) What is the average wait time for the processes?

(0+10+30+50+100)/5=38

PROCESS BURST TIME

0 80

1 20

2 10

3 20

4 50

Page 18: Unidad 2

3. Assume you have the following jobs to execute with one processor, with the jobs

arriving in the order listed here:

PROCESS BURST TIME ARRIVAL TIME

0 80 0

1 20 10

2 10 10

3 20 80

4 50 85

Suppose a system uses RR Scheduling with a quantum of 15

a) Create a Gantt chart illustrating the execution of these processes?

P0 P1 P2 P3 P4 P0 P1 P3 P4 P0 P6 P0

0 15 30 40 55 70 85 90 95 110 125 140 155

P4 P0 P0

155 160 175 180

b) What is the turnaround time for process p3?

P3=95

c) What is the average wait time for the processes?

(0+15+30+40+55+(70-15)+(85-30)+(90-55)+(95-70)+(110-85)+(125-

110)+(140-125)+(155-140)+(160-155)

=10+15+30+40+55+55+55+35+25+25+15+15+15+5/5=77

Page 19: Unidad 2

Práctica No. 5

DEADLOCK DE PROCESOS EN JAVA

Metodología 1. Utilice la herramienta para desarrollar programas en JAVA de su preferencia.

2. Crear un archivo en JAVA siguiendo las instrucciones que se anexan.

3. Incluya figuras donde demuestre la ejecución de los pasos previos (anexe en resultados)

Bibliografía utilizada

Url: Juan M. Moreno Pascal, Juan A. Perez

Google Booka(2002),Concepto de sistemas operativos.online

Disponible:http://books.google.com/books?id=LY2P_VSVZ3cl&h

l=es&=source=gbs.similarbooks

Conclusiones

Nosotros cuando elaboramos nuestro proceso tenemos que los

deadlooks y nuestro tenemos que darle cierta continuidad del proceso.

Page 20: Unidad 2

Anexo 1: Código en Java Deadlock Deadlock describes a situation where two or more threads are blocked forever, waiting for each

other. Here's an example.

Alphonse and Gaston are friends, and great believers in courtesy. A strict rule of courtesy is

that when you bow to a friend, you must remain bowed until your friend has a chance to return

the bow. Unfortunately, this rule does not account for the possibility that two friends might bow

to each other at the same time. This example application, Deadlock, models this possibility: public class Deadlock {

static class Friend {

private final String name;

public Friend(String name) {

this.name = name;

}

public String getName() {

return this.name;

}

public synchronized void bow(Friend bower) {

System.out.format("%s: %s has bowed to me!%n",

this.name, bower.getName());

bower.bowBack(this);

}

public synchronized void bowBack(Friend bower) {

System.out.format("%s: %s has bowed back to me!%n",

this.name, bower.getName());

}

}

public static void main(String[] args) {

final Friend alphonse = new Friend("Alphonse");

final Friend gaston = new Friend("Gaston");

new Thread(new Runnable() {

public void run() { alphonse.bow(gaston); }

}).start();

new Thread(new Runnable() {

public void run() { gaston.bow(alphonse); }

}).start();

}

}

When Deadlock runs, it's extremely likely that both threads will block when they attempt to

invoke bowBack. Neither block will ever end, because each thread is waiting for the other to

exit bow. Práctica 5 Página 4

Page 21: Unidad 2

METODOLOGÍA

1. Traduzca la situación planteada

2. Ejecute varias veces el programa y comente los resultados.

3. Coloque comentarios descriptivos en este mismo documento, para cada línea del código del

programa anterior, utilice pluma roja y anexe el código

4. Modifique el programa cambiando los nombres de las personas por el suyo y de algún

compañero

5. Vuelva a ejecutar y comente por escrito los resultados, anexe figuras del resultado

6. ¿De qué manera se presenta el deadlock en el programa? Explique}

7. Elabore una simulación donde ejemplifique la situación anterior, con deadlock y sin

deadlock, utilice el software de su preferencia ( 3 personas por equipo), explicando en el mismo

paso a paso dicha situación.

NOTA: No olvide anexar figuras que muestren evidencia de haber corrido el programa,

cualquier error en el programa deberá ser corregido, los resultados deben ser presentados

siguiendo el orden de los pasos de la metodología.

1. Cuando entra Alphonse.bow (gaston); Alphonse esta ahora bloqueado debido a la

palabra clave “Synchonize”.

2. Cuando entra gaston.bow (Alphonse); Gaston está ahora bloqueado.

3. No puede ejecutarse “bower.bow Back(thie); del primer método bow que se llama,

porque gaston (bower) es bloqueado.

*Espere por que sea loberado el bloqueo.

4. No puede ejecutarse el bower.bowback(this) del segundo método llamado porque

Alphonse(bower) esta bloqueado.

*Espera porque el bloque sea liberado.

Ambos hilos esperan por cada uno para que sea liberado el Bloqueo.

Page 22: Unidad 2

Al ejecutar varias el programa no hay ningún cambio pues la salida siempre es la misma.

No hay ningún cambio en la imprecion.

Al cambiar los nombres de mi compañera y el mío imprime lo mismo con el nombre de Fabiola—

Anallely y de Anallely---Fabiola. Así que la salida sigue siendo la misma.

Instrucciones Traducidas

El Deadlock describe una situación donde 2 o más Threads esta bloqueados por siempre

esperándose mutuamente.

Page 23: Unidad 2

Alphonse y Gaston son amigos Creyentes de la cortesía. Una regla estricta es que cuando

reverencias o te inclinas a un amigo tenga oportunidad de regresar la reverencia.

Desafortunadamente, esta regla no cuenta con la posibilidad de que dos amigos se inclinen

al mismo tiempo.

public class Deadlock {//Clase principal static class Friend { //Clase del amigo private final String name; //Declaracion de la variable del nombre del amigo public Friend(String name) { //Creando en método nombre this.name = name; //asignando la variable nombre de la misma clase } public String getName() { //Creando el método de conseguir nombre return this.name;//Nos devuelve el resultado del nombre. } public synchronized void bow(Friend bower) {//Un metodo de sincronizacion "bow" es una reverencia System.out.format("%s: %s has bowed to me!%n",//La inclinacion de reverencia del amigo 1 al amigo 1. this.name, bower.getName());//Obtiene los nombres del reverenciador bower.bowBack(this);//Devuelve la reverencia } public synchronized void bowBack(Friend bower) {//La reverencia devuelta, con el amigo reverenciador System.out.format("%s: %s has bowed back to me!%n",//Mensaje de reverencia this.name, bower.getName());//Obtiene los nombres de los amigos } } public static void main(String[] args) {//Metodo del programa principal final Friend fabiola = new Friend("Fabiola");//Declaracion de los nombres funcionando en el final Friend nallely = new Friend("Anallely");//El metodo Friend new Thread(new Runnable() {//Creacion de un nuevo Thread que es ejecutable public void run() { fabiola.bow(nallely); }//Aqui corre el Thread con la reverencia de fabiola a nallely }).start();//Lo comienza new Thread(new Runnable() {//Creacion de otro Thread ejecutable public void run() { nallely.bow(fabiola); }//Corre la reverencia devuelta y pide un bowback }).start();//Comienza y el ciclo seguira y por eso ocurre un DeadLock } }