Practica 01
Practica 01
Practica 01
Objetivos
Comprender la informacin mostrada por el Administrador de tareas acerca de los procesos y aplicaciones que se encuentran en ejecucin en el sistema en un momento dado. Comprender el concepto de proceso de sistema y conocer los procesos de sistema fundamentales que se ejecutan normalmente en una plataforma Windows. Comprender la diferencia entre proceso y programa. Entender cmo la CPU se reparte entre los mltiples procesos que se encuentran en ejecucin en cada momento. Entender cmo los procesos interaccionan con el usuario a travs de ventanas. Entender la diferencia entre una ventana primaria y secundaria. Comprender el concepto de servicio. Aprender a utilizar la herramienta Servicios, para llevar a cabo la gestin bsica de los servicios del sistema.
sistema. Estos procesos reciben el nombre de procesos de sistema. Vamos a observar estos procesos con el Administrador de tareas.
Otro campo que puede visualizarse mediante el Administrador de tareas es el PID. Se trata de un nmero entero que identifica al proceso dentro del sistema. A cada proceso se le asigna un nmero diferente. PID es el acrnimo de Process Identifier.
H Qu conclusin sacas del porcentaje de CPU utilizado por este proceso? Escrbela a
continuacin.
Pregunta 2
En condiciones normales la CPU est totalmente desocupada. Esto se debe a que el tipo de programa que normalmente ejecutamos en un sistema Windows se encuentran habitualmente bloqueado esperando que ocurra algn suceso. Los programas de este tipo consumen muy poca CPU.
Puede que en tu sistema los campos que aparezcan no sean exactamente estos, ya que los campos mostrados son configurables.
Otros procesos crticos del sistema son el SMSS, el CSRSS y WINLOGON. El SMSS, conocido como Session Manager, es el que controla toda una sesin de trabajo, desde que el sistema se inicia hasta que se apaga. El cometido del CSRSS es algo ms complejo de explicar, as que no entraremos en l, pero es un proceso fundamental que est siempre en ejecucin. Finalmente, WINLOGON es el que controla las sesiones de usuario. As por ejemplo, este proceso controla la ventana en la que introducimos nuestro nombre de usuario y clave para comenzar una sesin en el sistema.
No confundir con el Internet Explorer: el Explorer y el Internet Explorer son cosas diferentes
Propiedades. En la ficha General observas en el campo Tipo de archivo que el elemento del men Bloc de notas es en realidad un acceso directo. En la ficha Acceso directo puedes ver el programa al que hace referencia dicho acceso. Se trata de notepad.exe. Es decir, este es el programa (imagen binaria) que se cargar en memoria y se ejecutar cuando pulsemos sobre la opcin Bloc de notas. Tenemos entonces una imagen binaria de un programa, denominada notepad.exe, que se encuentra almacenada en algn lugar del sistema de disco del ordenador. Ahora vamos a poner esa imagen binaria en ejecucin, convirtindola por tanto en un proceso.
H Abre el Administrador de tareas, ficha Procesos. Ahora vas a ordenar los procesos
por el nombre de su imagen binaria. Pulsa sobre Nombre de imagen. Observars que los procesos quedan ordenados por nombre. Ejecuta el Bloc de notas y observa cmo aparece el nombre de su imagen (notepad.exe) en el Administrador de tareas. En este momento el programa notepad.exe se ha convertido en un proceso porque lo hemos puesto en ejecucin en el sistema. Ahora veremos cmo a partir de un nico programa podemos generar tantos procesos como queramos, sin ms que ejecutar el programa mltiples veces.
PID = Cualquier nmero entero Vuelve a ejecutar el Bloc de notas. Observars que un nuevo proceso notepad.exe ha sido puesto en ejecucin. Anota el PID de este nuevo proceso.
Pregunta 4
PID = Cualquier nmero entero, pero diferente del PID anterior A partir de un nico programa hemos generado dos procesos diferentes. El sistema operativo los diferencia porque ha asignado un PID distinto a cada uno de ellos. Podras seguir generando tantos procesos notepad.exe como quisieses. Este ltimo experimento habr servido para dejar bien clara la diferencia entre programa y proceso. Uso de la CPU por parte de los procesos Es habitual que los procesadores actuales dispongan de ms de un ncleo (core) de procesamiento. En concreto, los procesadores de los ordenadores del Laboratorio disponen de dos ncleos. Cada ncleo representa una CPU completa y, por tanto, nuestros ordenadores cuentan con dos CPUs. El nmero de ncleos activos en un sistema puede observarse mediante el Administrador de tareas.
que modificar un fichero del sistema operativo en el que se especifican diversos aspectos relativos a la carga e inicializacin del sistema operativo. Se trata del fichero boot.ini. En nuestro sistema, este fichero se encuentra en la carpeta raz de la unidad C:. De momento no lo ves, porque es un fichero oculto del sistema.
H Para poder manipular este archivo debes configurar el explorador de Windows para
que permita ver archivos protegidos del sistema. Para ello debes abrir una ventana de exploracin de archivos y en el men Herramientas, elegir Opciones de carpeta. Posteriormente elige la ficha Ver y en ella debers configurar adecuadamente dos opciones para que se muestren los archivos ocultos del sistema.
H Una vez que observes boot.ini en la carpeta raz de la unidad C: debes eliminar
el atributo Slo lectura, para que se pueda modificar.
uso de la CPU? Indica a continuacin el porcentaje de CPU que utilizan en este momento el Proceso inactivo y prog1-1.exe.
Pregunta 5
H Retorna a la ficha Procesos. Entonces pulsando con el botn derecho del ratn sobre
el proceso prog1-1.exe, termina su ejecucin, comprobando cmo la CPU pasa de nuevo a ser ocupada por el Proceso inactivo. Ahora vamos a comprobar cmo la CPU se reparte entre los procesos en ejecucin. Para ello vamos a lanzar varias ejecuciones del programa prog1-1.exe.
H Abre el Administrador de tareas. Pulsa sobre Nombre de imagen para ordenar los
procesos por nombre. Ahora vas a poner varias imgenes del programa prog1-1.exe en ejecucin. A continuacin anotars el porcentaje de CPU que se asigna a cada proceso correspondiente a este programa cuando hay una, dos, tres y cuatro imgenes de l en ejecucin. Es posible que tras lanzar cada imagen tengas que esperar un poco de tiempo hasta que se estabilice la planificacin.
Pregunta 6
Una imagen en ejecucin. % de CPU asociado a la imagen: 99% Dos imgenes en ejecucin. % de CPU asociado a cada imagen: 50% Tres imgenes en ejecucin. % de CPU asociado a cada imagen: 33% Cuatro imgenes en ejecucin. % de CPU asociado a cada imagen: 25%
H Termina la ejecucin de todos estos procesos utilizando el botn derecho del ratn y
la opcin Terminar proceso.
El quantum de ejecucin El programa prog1-1.exe no es un programa de estructura computacional tpica, ya que no hace operaciones de E/S. Ahora vamos a continuar las pruebas con el programa prog2-2.exe, que tiene una estructura computacional ms comn, es decir, computa y hace E/S alternativamente.
introduce por teclado, almacenndolo en la variable iter. La clave est precisamente en scanf_s(). Cuando esta funcin se ejecuta, el proceso queda bloqueado esperando la entrada de datos del usuario. Mientras esto ocurre el proceso no consume CPU. Tanto los bucles for anidados como las funciones de E/S se encuentran dentro de un bucle while, que se ejecuta infinitamente, por lo que podremos repetir el proceso de E/S y computacin indefinidamente. Mientras se produce la espera en la funcin scanf_s() se puede pulsar Ctrl-C, lo que rompe la ejecucin del programa.
Porque est bloqueado en el scanf_s(), esperando por los datos que deben ser introducidos por el usuario
Se pone al 100% mientras se ejecutan los bucles anidados. Luego retorna al 0% al bloquearse de nuevo en el scanf_s()
9 segundos
17 segundos
34 segundos
H Son coherentes los resultados que has obtenido en los experimentos anteriores.
Explica por qu.
Pregunta 13
S, son coherentes. Cuando lanzamos dos ejecuciones, stas tardan el doble aproximadamente, y cuando lanzamos cuatro, tardan el cudruple. El retardo que se produce cuando hay ms de un programa prog1-3.exe en ejecucin se debe a que cada proceso correspondiente tiene que compartir la CPU con los dems procesos. Cuantos ms procesos hay intentando utilizar la CPU, menos CPU le toca a cada uno, y por tanto tardan ms en ejecutarse.
Finalmente modificaremos de nuevo el fichero boot.ini para que el sistema funcione con todos su ncleos activos, que es la situacin habitual.
El Uso de CPU mostrado por el Administrador de tareas indica la carga del procesador globalmente, es decir, teniendo en cuenta los dos ncleos. O sea, el Uso de CPU es la media de la carga de ambos ncleos. En nuestro caso, solo tenemos un proceso que quiere hacer uso de la CPU constantemente. Sin embargo, el sistema tiene dos ncleos. En cada quantum de ejecucin el proceso se da a un ncleo, quedando el otro ncleo descargado. La media de carga de ambos ncleos ser del 50% y por tanto la media de carga del procesador como recurso global ser tambin del 50%.
Interfaz de los procesos con el usuario: procesos GUI Una gran parte de los procesos que se ejecutan en un computador necesitan intercambiar informacin con los usuarios. Por ejemplo, un programa como el Bloc de notas muestra al usuario la informacin almacenada en un documento de texto y recibe comandos del usuario a travs de un conjunto de mens. As se observa que para realizar el intercambio de informacin entre procesos y usuarios se utilizan unos objetos, denominados ventanas, que se muestran sobre el escritorio del sistema. Segn su forma de interaccin con el usuario existen dos tipos de programas Windows: los programas de tipo GUI (Graphical User Interface) y los de tipo CUI (Console User Interface). Nos centraremos ahora en los programas GUI. Los programas GUI utilizan ventanas grficas para llevar a cabo su proceso de entrada/salida con el usuario. Estas ventanas usan mltiples tipos de elementos para interaccionar con el usuario, tales como mens, barras de herramientas, cuadros de dilogo, paletas de seleccin, etc. Un ejemplo de programa GUI es el WordPad, que es un editor de texto, distribuido junto con el sistema operativo, y que es bastante ms potente que el Bloc de notas. Vamos a ver algunos conceptos sobre ventanas utilizando el WordPad como ejemplo.
Documento - WordPad Las ventanas primarias tienen una propiedad muy importante: cuando un proceso abre una ventana primaria, se inserta un botn en la Barra de tareas de la interfaz de usuario para manejar dicha ventana. El botn se marca con el mismo icono y ttulo que el que aparece en la barra de ttulo de la ventana primaria.
Documento - WordPad 9
Coinciden exactamente tus repuestas a las preguntas 15 y 16? Si no es as, puede que hayas cometido algn error. Pregntale a tu profesor. La conclusin es que lo que se muestra en la ficha Aplicaciones del Administrador de tareas y los botones insertados en la Barra de tareas de la interfaz de usuario son la misma cosa: ventanas primarias abiertas por los procesos en ejecucin. Con objeto de seguir analizando la relacin entre procesos y ventanas primarias, vamos a poner otro programa en ejecucin, el Internet explorer.
Nombre del proceso que se pone en ejecucin: IEXPLORER.EXE Nombre de la ventana primaria que se muestra: Google Microsoft Internet Explorer
H Desde el punto de vista del uso de los recursos del computador, qu estrategia te
parece ms apropiada, ejecutar varias veces el mismo programa o abrir varias ventanas desde un solo proceso? Por qu?
Pregunta 19
Si ejecutamos varias veces el mismo programa ponemos tantos procesos en ejecucin como ejecuciones del programa hayamos realizado. Cada proceso en ejecucin consume una importante cantidad de memoria por lo que, desde el punto de vista de este recurso, es mucho mejor tener un solo proceso en ejecucin desde el que se abren varias ventanas.
Vamos a plantear otro ejercicio simple acerca de los procesos y las ventanas primarias manejadas por stos.
Proceso propietario de la ventana C:\: explorer.exe Proceso propietario de la ventana Mi PC: explorer.exe Proceso propietario de la ventana Resultado de la bsqueda: explorer.exe Como no poda ser de otra manera, todas estas ventanas pertenecen al proceso que gestiona la interfaz de usuario del sistema. Este proceso permite controlar mltiples aspectos del funcionamiento del sistema, utilizando mltiples ventanas primarias para intercambiar informacin con el usuario. Hasta ahora slo hemos hablado de ventanas primarias. Sin embargo, a partir de stas se pueden abrir otras ventanas que reciben el nombre de ventanas secundarias. Mediante estas ventanas el usuario puede especificar parmetros u opciones del programa correspondiente. Una diferencia fundamental entre las ventanas primarias y secundarias es que a las primarias siempre se les asigna un botn en la Barra de tareas, mientras que a las secundarias, no. Veamos a continuacin un ejemplo de uso de ventanas secundarias.
se inserta un botn en la Barra de tareas para dicha ventana. Despliega el men Formato y elige la opcin Fuente. Al ejecutar esta opcin se abre una ventana secundaria. Observa cmo no se asigna ningn botn en la Barra de tareas para esta ventana, por ser secundaria. Una vez realizadas las operaciones necesarias con la ventana secundaria, sta es cerrada por el usuario, retornndose el control a la ventana primaria. Las ventanas secundarias tienen, al igual que las primarias, un nombre en la barra de ttulo, pero no tienen icono en dicha barra. Localiza cuatro ventanas secundarias en el WordPad y escribe a continuacin sus nombres:
Pregunta 21
Nuevo, Abrir, Guardar como, Imprimir, Configurar pgina, Opciones, Prrafo, etc.
Primaria Interfaz de los procesos con el usuario: procesos CUI Los procesos de este tipo realizan la comunicacin con el usuario en una venta de tipo texto. En este tipo de ventana no hay elementos grficos. Todo el proceso de entrada/salida se lleva a cabo mediante cadenas de texto que se muestran sobre la ventana. Los programas CUI son muy apropiados para implementar comandos del sistema que llevan a cabo una determinada operacin, muestran resultados sobre la operacin realizada y terminan. As el tiempo en que se encuentran en ejecucin es mnimo. Al igual que los procesos GUI, los procesos CUI pueden ser ejecutados desde la interfaz de comandos del sistema (explorer.exe) mediante el comando ejecutar del Men de inicio. Sin embargo, debido a su forma de operar y a que se ejecutan muy rpidamente, no es conveniente ejecutarlos desde el explorer, porque la ventana de texto que crean para mostrar los resultados desaparece casi instantneamente. Vamos a probar esto usando el programa ping.exe. Se trata de un programa de tipo CUI que nos permite determinar si un equipo conectado a una intranet est vivo.
H Ahora vas a ejecutar ping.exe desde el explorer. Para ello, elige la opcin
Ejecutar del men Inicio e introduce ping.exe. Observars una especie de destello que corresponde a la apertura y cierre (casi instantneos) de la ventana primaria correspondiente al proceso. Debido a esto, para ejecutar programas CUI, se suele utilizar una interfaz de comandos especializada para dicho tipo de programas. Llamaremos a esta interfaz la Interfaz de comandos textual (ya que hace su E/S en una ventana de tipo texto.) Con seguridad ya habrs ejecutado mltiples veces esta interfaz, que se encuentra implementada mediante el programa CMD.EXE.
C:\...>ping pin.epsig.uniovi.es
Ahora el programa ping.exe realizar su proceso de E/S en la ventana de la interfaz de comandos textual, mostrndonos si la mquina responde o no.
2 Servicios
En la seccin anterior hemos trabajado con programas que interaccionan con el usuario a travs de ventanas. En todo sistema operativo existen otro tipo de procesos que llevan a cabo funciones fundamentales en el sistema, pero que no requieren ningn tipo de interaccin con el usuario. Estos programas suelen arrancarse automticamente durante la inicializacin del sistema y, en el entorno Windows, reciben el nombre de servicios. Como los procesos que implementan servicios no interaccionan con el usuario, no utilizan ventanas. Debido a ello, estos procesos pasan desapercibidos al usuario, sin embargo, se encuentran permanentemente en ejecucin: se suele decir que se ejecutan en segundo plano (background). En Windows, los servicios se implementan mediante procesos. Un proceso puede contener uno o varios servicios. Para controlar los servicios, se utiliza una herramienta de administracin que se encuentra accesible desde el men de Herramientas administrativas. Vamos a abrir entonces la herramienta de administracin de servicios.
La ventana abierta muestra en forma de tabla los servicios disponibles en el sistema. En el campo Nombre se indica el nombre del servicio; en el campo Descripcin se comenta de forma concisa el cometido del servicio; el campo Estado indica si el servicio se encuentra o no en funcionamiento; y el campo Tipo de inicio determina la forma de puesta en marcha del servicio. El campo Iniciar sesin como ser comentado en sesiones de prcticas futuras.
13
A modo de ejemplo, para ver cmo se gestionan los servicios, trabajaremos ahora con un servicio concreto, el servicio Messenger3. Primero vamos a obtener informacin general acerca de este servicio.
Fichero ejecutable: svchost.exe Tipo de inicio: Deshabilitado Estado del servicio: Detenido
No confundir con el MSN Messenger, que es una herramienta de comunicacin a travs de Internet.
14
obstante, hoy en da, los ordenadores suelen andar bastante sobrados de memoria, as que, quizs, sea mejor no complicarse la vida. Volveremos ahora sobre el servicio Messenger. Utilizaremos este servicio a modo ejemplo para comprobar cmo los servicios hacen trabajo til en el sistema. Ahora mismo el tipo de inicio de este servicio debe ser Deshabilitado. Para poder utilizar este servicio debemos cambiar su tipo de inicio.
H Pasa el servicio a Manual y pulsa Aceptar. Esto har que el servicio pueda ser
iniciado o parado por el usuario a voluntad. Entonces pulsa con el botn derecho del ratn sobre este servicio e incialo. Ahora vamos a comprobar que el servicio funciona. El objetivo del servicio Messenger es recibir mensajes provenientes de otras mquinas conectadas a la red y presentarlos en la pantalla. Este servicio es normalmente utilizado por los administradores de redes de ordenadores para enviar mensajes a los usuarios. Para enviar un mensaje desde una estacin de trabajo a otra u otras estaciones, se utiliza el comando NET SEND, que normalmente se ejecuta desde la interfaz de comandos textual. El comando va seguido, primero, del nombre de la estacin a la que se desea enviar el mensaje y, despus, del mensaje en s mismo. As para enviar el mensaje hola al equipo ATC120 se debe ejecutar el siguiente comando:
NET SEND ATC120 hola
H Arranca el otro equipo disponible en tu mesa de trabajo. Una vez arrancado, abre la
interfaz de comandos textual (cmd.exe) y enva mediante el comando NET SEND el mensaje Hola al equipo en el que estabas trabajando previamente. El mensaje es presentado en una ventana en el equipo receptor. Observa el ttulo de la ventana: Messenger Service. Dicho ttulo indica al usuario que la ventana ha sido abierta por el servicio Messenger. Cierra la ventana Messenger Service. Observa tambin que en la estacin emisora del mensaje se indica que el mensaje ha sido enviado.
3 Ejercicios adicionales
E Determina cuatro
svchost.exe. 15 servicios que sean proporcionados por el proceso
Pregunta 24
Actualizaciones automticas Administrador de conexin de acceso remoto Conexiones de red Configuracin inalmbrica Enrutamiento y acceso remoto Llamada a procedimiento remoto Etc.
svchost.exe Comprueba que este servicio se encuentra iniciado, que es su estado normal. En el caso de que estuviese detenido, incialo. Ahora vas a programar una tarea para que se ejecute a una determinada hora. Luego Comprobars que la tarea se ejecuta al alcanzarse la hora estipulada. Todo funcionar correctamente porque el servicio Programador de tareas se encuentra activo. Despus desactivaremos este servicio, reprogramaremos la tarea anterior para que se ejecute un poco ms tarde, y observaremos que la tarea no se pone en ejecucin a la hora programada. Este experimento servir para comprobar que la ejecucin de tareas temporizadas depende de que el servicio Programador de tareas se encuentre activo. Mediante la utilidad Tareas programadas se puede programar la ejecucin temporizada de cualquier programa. Elegiremos, a modo de ejemplo, el Bloc de notas. Imagnate que queremos activar un aviso en el ordenador en una determinada fecha y hora. Podemos programar el Bloc de notas para que se ejecute en ese instante y nos muestre un texto con el aviso. Lo primero que tenemos que hacer es escribir el texto del aviso y almacenarlo en una carpeta. Escribe, con el Bloc de notas, el texto que desees en un fichero denominado aviso.txt y almacnalo en la carpeta C:\Temp de tu sistema. Si esta carpeta no existe, crala previamente. Ahora debes tener claro cul es el nombre y la ruta del programa que deseas ejecutar temporizadamente. En este caso, el programa es NOTEPAD.EXE (que es el ejecutable correspondiente al Bloc de notas). Para buscar la ruta, puedes utilizar el comando Buscar del men Inicio. Anota la ruta a continuacin: 16
Pregunta 26
C:\WINDOWS\System32 Ahora ya estamos en condiciones de programar la ejecucin temporizada del Bloc de notas. Partiendo del Panel de control abre Tareas programadas. Para programar una nueva tarea, elige Archivo, Nuevo, Tarea programada. Dale un nombre cualquiera a la entrada que se genera, por ejemplo, Aviso-importante. Una vez creada la nueva tarea hay que programarla. Pulsa sobre ella: se abrir una venta que te permitir programar la tarea. Elige la ficha Tarea. En ella hay que rellenar los campos Ejecutar e Iniciar en. En el campo Ejecutar hay que escribir el nombre del programa que se desea ejecutar temporizadamente junto con su ruta. Adems, si el programa a ejecutar requiere algn parmetro, hay que indicarlo. En nuestro caso el parmetro es el fichero a abrir por el NOTEPAD.EXE, que es aviso.txt. Teniendo en cuenta estas indicaciones, rellena este campo. Para saber el cometido del campo Iniciar en, coge la interrogacin de la esquina superior derecha de la ventana y pulsa sobre dicho campo. Despus rellnalo de la forma apropiada teniendo en cuenta la ayuda obtenida. En el campo Ejecutar como se indica el usuario en cuyo mbito se ejecutar la tarea, que por defecto es el usuario que crea la tarea. Sin embargo, hay que completar este campo con la clave de acceso del usuario. Pulsa sobre el botn Establecer contrasea para introducir dicha clave. Ahora hay que establecer la planificacin temporal para la ejecucin de la tarea. Para ello elige la ficha Programacin. Vamos a hacer que la tarea se ejecute slo una vez. En el campo Programar tarea selecciona Solo una vez, y elige como hora de inicio un par de minutos ms que la hora actual del computador (que puedes ver a la derecha de la barra de tareas). Una vez introducida toda la informacin anterior, la tarea estar lista para ejecutarse. Cuando el reloj del sistema alcance la hora de inicio de la tarea, sta se ejecutar. Espera hasta que se ejecute la tarea para comprobar que has realizado correctamente la programacin de la misma. Ten en cuenta que la tarea se ejecuta porque el servicio Programador de tareas est activo. Finalmente comprobaremos que al desactivar el servicio Programar tareas, las tareas programadas no se ejecutan. Abre la ventana Servicios y detn el servicio Programador de tareas. Ahora reprograma la tarea Aviso-importante para que se ejecute dos minutos despus de la hora que tenga el reloj del sistema. Espera hasta que sea esa hora y comprueba que la tarea no se ejecuta. Finalmente, vuelve a dejar el servicio Programador de tareas en el estado Iniciado y elimina la tarea Aviso-importante de la carpeta Tareas programadas.
17