Gestión y Administración de Procesos en Los Sistemas Operativos Windows

June 5, 2018 | Author: Nelson Alvarez Salinas | Category: Process (Computing), Thread (Computing), Operating System, Computer Program, Central Processing Unit
Share Embed Donate


Short Description

Descripción: Gestión y Administración de Procesos en Los Sistemas Operativos Windows trabajo universitario...

Description

UPONIC  –  JUIGALPA  JUIGALPA - CHONTALES Ingeniería En Computación y Sistemas

INDICE Gestión y Administración de Procesos en los Sistemas Operativos Windows, Linux y Mac. ............. 4

OBJETIVO GENERAL  ............................................................................................................... 5 OBJETIVOS ESPECIFICOS  .................................................................................................... 6 INTRODUCCION   ......................................................................................................................... 7 FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS. ................................................ 8 ¿QUE ES UN SISTEMA OPERATIVO?  ................................................................................ 9 ¿QUE ES UN PROCESO?  ......................................................................................................... 9 Estados de los procesos  ................................................................................................. 9 Programa vs Proceso  ..................................................................................................... 10 Planificador Planificador de procesos  ............................................................................................ 10 Gestión de Memoria........................................................................................................... 10 Creación de procesos en Linux  ..................................................................................... 12 Planificación y gestión de procesos en Linux ...................................................... 13 Planificación y gestión de procesos en Windows. ............................................ 16 Gestión de memoria en Windows  ............................................................................... 20 Planificación y gestión de procesos en MAC.  ...................................................... 21 Algoritmos de planificación de procesos en los SO........................................ 24 CONCLUSIONES   ...................................................................................................................... 25 BIBLIOGRAFIA   .......................................................................................................................... 26

2 a ni

Autor: Ing. Locnem Obando P

á

g

3 a ni

Autor: Ing. Locnem Obando P

á

g

Gestión y Administración de Procesos en los Sistemas Operativos Windows, Linux y Mac.

4 a ni

Autor: Ing. Locnem Obando P

á

g

OBJETIVO GENERAL

Explicar y Mostrar de qué manera los Sistemas Operativos; Windows, Linux y Mac. Administran y gestionan los procesos de programas en los mismos sistemas operativos.

5 a ni

Autor: Ing. Locnem Obando P

á

g

OBJETIVOS ESPECIFICOS

1- Definir el concepto de Sistemas Operativos. 2- Explicar cómo Windows Gestiona y Administra los procesos. 3- Explicar de qué manera Linux Gestiona y autoriza la administración de los procesos. 4- Definir el concepto de proceso dentro de los sistemas operativos. 5- Explicar la diferencia entre un programa y un proceso. 6- Explicar y Detallar como el sistema operativo MAC gestiona y administra los  procesos.

6 a ni

Autor: Ing. Locnem Obando P

á

g

INTRODUCCION Sin el software, una computadora no es más que una masa metálica sin utilidad.  Con el software, una computadora puede almacenar,  procesar y recuperar  información, encontrar errores de ortografía en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades para ganar el sustento. El software  para computadoras puede clasificarse en general en dos clases: los programas de sistema,  que controlan la operación de la computadora en si y los programas de aplicación, los cuales resuelven problemas para sus usuarios. El programa fundamental de todos los programas de sistema es el sistema operativo (SO), que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación . El siguiente documento describe las funcionalidades de los sistemas operativos para la gestión y administración de los sistemas mono y multiprocesador. Se comienza con una introducción sobre los fundamentos de los sistemas operativos y las funcionalidades de un proceso para luego caer a detalle en las diferencias entre cada sistema operativo y la manera en que cada uno de ellos administra y gestiona los procesos de usuario.

7 a ni

Autor: Ing. Locnem Obando P

á

g

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS. El programa fundamental de todos los programas de sistema es el sistema operativo, que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los  programas de aplicación.

Un sistema de cómputo consta del hardware, programas de sistema y  programas de aplicación, como se observa en la imagen.

8 a ni

Autor: Ing. Locnem Obando P

á

g

¿QUE ES UN SISTEMA OPERATIVO? Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un  administrador de los recursos de hardware del sistema.

¿QUE ES UN PROCESO? Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, por el momento dejemos esta última definición como un concepto, luego se verá en más detalle el concepto de hilo. Una vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados.

Estados de los procesos Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado. Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese momento dado.

ni

a

9

Autor: Ing. Locnem Obando P

á

g

Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.

Programa vs Proceso Programa  es una aplicación del sistema operativo listo para ser ejecutado, cuando el SO asigna unos recursos este pasa a ser un Proceso.

Planificador de procesos Dependiendo del algoritmo del SO, pueden cambiar los Estados  de los procesos según planificación de los sistemas operativos, objetivo ejecutar todos los procesos.

Gestión de Memoria Sirve para dar recursos de memoria a los programas que lo necesitan y liberar memoria que ya no es utilizada para que estén disponibles para otros  programas.

a

1

0 ni

Autor: Ing. Locnem Obando P

á

g

1 1 a ni

Autor: Ing. Locnem Obando P

á

g

Creación de procesos en Linux

Obtener entrada

Fork:

Obtener entrada libre en Tabla de

Copiar BCP del Padre

“Copia al proceso padre

Duplicar mapa del Padre

 y le da una nueva identidad al hijo”

También limpia

(Incluyendo Pilas)

 señales, evento

Estado  listo PCB en cola de listos

Devuelve PID

Devuelve 0 al

Al Padre

Hijo

2 1 a ni

Autor: Ing. Locnem Obando P

á

g

Planificación y gestión de procesos en Linux Los hilos en Linux son hilos del kernel, por lo que la planificación se basa en hilos y no en procesos.

Linux hace la diferencia entre 3 clases de hilos para fines de  planificación:

1. Planificacion “Primero en llegar, primero en ser atendido (FIFO)”, en tiempo real.

2. Planificacion circular (round-robin) en tiempo real.

3. Tiempo compartido.

Los hilos de planificación FIFO en tiempo real tienen la mayor  prioridad y no son preferentes, excepto por un hilo FIFO en tiempo real recién preparado con mayor prioridad. Ahora bien Linux es un sistema de tiempo compartido, lo que significa que el tiempo de CPU se comparte de manera más o menos equitativa entre los procesos del sistema. Para proporcionar tiempo compartido es imprescindible una política de expulsión por tiempo.

a

1

3 ni

Autor: Ing. Locnem Obando P

á

g

Además, si se utilizan prioridades estas no pueden ser estáticas, ya que esto puede llevar a la inanición de los procesos de prioridades  bajas. Hemos dicho que Linux asigna prioridades estáticas para algunos procesos, como los del tiempo real. Por supuesto, un sistema Linux que se dedique a tareas de tiempo real de forma intensiva, difícilmente podría proporcionar tiempo compartido a los procesos de usuario, porque los tiempos de respuesta de estos se resentirían notablemente. Queda claro que la convivencia entre ambos tipos de  procesos es problemática, por lo que en un sistema de propósito general como Linux se entiende que los procesos de tiempo real son excepcionales (los procesos del sistema están acotados en cuanto a número y necesidades de CPU). Un sistema de tiempo compartido alcanza su mayor expresión cuando combina la expulsión por tiempo con una política FCFS. A esta política de planificación se la denomina de turno circular o, más frecuentemente, round-robin. Obsérvese que la expulsión por tiempo elimina el efecto convoy. Además, con FCFS, dado un número de  procesos N en el sistema, para un quantum q se obtiene que el tiempo de respuesta de cualquier proceso está acotado por (N – 1)q. La política round-robin es una gran noticia tanto para el tiempo de respuesta como para el criterio de equidad. A partir de aquí podemos plantearnos la siguiente reflexión. Marquémonos el objetivo de conseguir que el usuario propietario de un proceso perciba para su proceso un tiempo de respuesta, tr, virtualmente nulo; es decir, que el sistema se comporte siempre de manera aparentemente instantánea. Podemos controlar el tiempo de respuesta modificando N y/o q. Conociendo o acotando N, podemos calcular q para la cota de tr elegida como objetivo.

a

1

4 ni

Autor: Ing. Locnem Obando P

á

g

Esto es muy interesante, porque nos hace percibir al sistema, desde el punto de vista de nuestro proceso, como que le proporciona un  procesador virtual dedicado con una velocidad 1/N de la del  procesador real, ya que 1/N es precisamente la quota de CPU que tiene garantizado el proceso. Este comportamiento se denomina procesador compartido. Ahora bien, ¿son capaces los sistemas de tiempo compartido de hoy en día de proporcionar el concepto de procesador compartido? Vamos a hacer unas cuentas.

Probablemente ningún usuario sea capaz de percibir retardos de 0,1 segundos, luego esta podría ser la cota objetivo para tr. Imaginemos que tenemos 100 procesos ejecutables. En este caso, un quantum de 1 ms sería suficiente para proporcionar procesador compartido. Pero, y ¿si tenemos 1000 procesos? Bajemos entonces el quantum a 0,1 ms. ¿Y porqué vamos a quedarnos ahí? Si seguimos reduciendo el quantum, podemos admitir más procesos o mejorar aún más el tiempo de respuesta. O ambas cosas. ¿Dónde está el límite? Como ya habrás adivinado, una expulsión no sale gratis, ya que conlleva un cambio de contexto. Si q no está significativamente por encima del tiempo de cambio de contexto, el tiempo que el procesador dedica a ejecutar cambios de contexto (recuerda que es tiempo perdido) puede llegar a ser una fracción importante del tiempo dedicado a ejecutar el código de los procesos (tiempo de trabajo útil), lo que penaliza la eficiencia.

5

En sistemas como Linux el quantum es del orden de 100 ms. Hay que tener en cuenta que la proporción de procesos ejecutables en el sistema suele ser muy pequeña, y la mayoría de los procesos no agotan

Autor: Ing. Locnem Obando P

á

g

ni

a

1

el quantum. Además Linux reduce el quantum de los procesos que lo rebasan.

Planificación y gestión de procesos en Windows. Cada proceso contiene uno o más subprocesos, y el subproceso de Windows es la unidad ejecutable básica. Los hilos se programan en función de los factores habituales: disponibilidad de recursos como CPU y memoria física, prioridad, equidad, etc. Windows siempre ha admitido sistemas multiprocesador, por lo que los hilos se pueden asignar a procesadores separados dentro de una computadora. Procesos e hilos de Windows. Cada proceso contiene uno o más subprocesos, y el subproceso de Windows es la unidad ejecutable  básica; ver el próximo capítulo para una introducción a los hilos. Los hilos se programan en función de los factores habituales: disponibilidad de recursos como CPU y memoria física, prioridad, equidad, etc. Windows siempre ha admitido sistemas multiprocesador, por lo que los hilos se pueden asignar a procesadores separados dentro de una computadora. Desde la perspectiva del  programador, cada proceso de Windows incluye recursos tales como los siguientes componentes: Uno o más hilos. Un espacio de direcciones virtuales que es distinto de los espacios de direcciones de otros procesos. Tenga en cuenta que los archivos compartidos con memoria compartida comparten memoria física, pero los procesos de intercambio probablemente usarán diferentes direcciones virtuales  para acceder al archivo asignado. Uno o más segmentos de código, incluido el código en DLL. Uno o más segmentos de datos que contienen variables globales.

6 ni

a

1

Autor: Ing. Locnem Obando P

á

g

Cadenas de entorno con información variable de entorno, como la ruta de búsqueda actual. El montón de proceso. Recursos tales como manijas abiertas y otros montones. Cada hilo en un proceso comparte código, variables globales, cadenas de entorno y recursos. Cada hilo está programado independientemente, y un hilo tiene los siguientes elementos: 







Una pila para llamadas a procedimientos, interrupciones, manejadores de excepciones y almacenamiento automático. Thread Local Storage (TLS): una colección de punteros en forma de matriz que le da a cada subproceso la capacidad de asignar almacenamiento para crear su propio entorno de datos único. Un argumento en la pila, desde el hilo de creación, que generalmente es único para cada hilo. Una estructura de contexto, mantenida por el kernel, con valores de registro de máquina.

Ver Figura; muestra varios procesos por hilos.

7 1 a ni

Autor: Ing. Locnem Obando P

á

g

Windows utiliza una planificación Multitarea Cooperativa y La Multitarea con Derecho Preferente, algoritmo que ejecuta los  procesos según la prioridad de estos. También tiene un algoritmo de paginación de demanda: Cuando se  producen falta de páginas las guarda en memoria y las que están cerca de esta y cuando vuelva a acceder a ella ya estará en memoria y accederá a ella. Un programa en Windows es controlado por eventos. Así el  programa principal espera la llegada de un evento como puede ser al  presionar una tecla, y posteriormente invoca un procedimiento para  procesar dicho evento, actualización de pantalla, del programa, etc. Windows también tiene llamadas al sistema al igual que UNIX, de hecho el número de llamadas es extremadamente grande.

Autor: Ing. Locnem Obando P

á

g

ni

a

1

8

En Windows encontramos que por cada llamada al sistema existe un procedimiento de biblioteca que los invoca. Por ello Windows ha creado un conjunto de procedimientos, llamado API Win32 [5], que se ha de utilizar para solicitar servicios al sistema operativo. La creación de procesos en Windows se genera mediante la llamada CreateProcess, que tanto crea el proceso como carga el programa en el nuevo proceso. Esta llamada tiene 10 parámetros: el programa a ejecutar, atributos de seguridad, bits de control de archivos abiertos, prioridad, especificación de la ventana a crear y un apuntador a la estructura a la que al invocador se le devuelve información del proceso recién creado. CreateProcess tiene 100 funciones más para administrar y sincronizar procesos. Al igual que en UNIX, en Windows se crea un nuevo proceso hijo a partir del padre, el cual tiene su propio espacio de direcciones como en UNIX, pero mientras en UNIX el espacio de direcciones del hijo era una copia del padre, en Windows el espacio de direcciones del hijo es completamente diferente al del padre desde el principio. La llamada en Windows relativa a la destrucción de un proceso es ExitProcess, y al igual que ocurría con UNIX cuando se especifica la llamada WaitForSingleObject junto con un parámetro que especifica un proceso, quien lo invoca espera hasta que se produce la finalización del proceso. En Windows encontramos multitud de llamadas al sistema igual que en UNIX (Figura 25), aunque hay algunas en UNIX que no se pueden utilizar en Windows, como es el manejo de enlaces, manejo de montaje de unidades, etc. Si en UNIX utilizamos la orden kill Pid para eliminar un proceso, en Windows existe la función TerminateProcess.

a

1

9 ni

Autor: Ing. Locnem Obando P

á

g

Gestión de memoria en Windows Los procesos dentro de Windows utilizan un espacio de direcciones de 32 bits que permite habilitar un espacio de direcciones de hasta 4

gigabytes de direcciones, o 8 terabytes en el caso de los sistemas de 64 bits. Cuando todos los procesos que se ejecutan en el sistema requieren de más memoria que la disponible, Windows utiliza la alternancia entre la memoria virtual (determinado por un archivo de  paginación) y la memoria física, que al igual que en UNIX recibe el nombre de swapping. Este intercambio se realiza no de bytes a bytes, sino de página a  página, que en Windows son bloques de 4 KB donde se almacenan los datos de los procesos. De ahí que toda la memoria esté paginada, tanto la física como la virtual. La física en forma de marcos de página y la virtual en forma de  páginas. Además, Windows dispone de tablas de páginas que son las que apuntan a las propias páginas, y los punteros de estas tablas se almacenan a su vez en un directorio de páginas. Cada proceso dispone sólo de un directorio. El espacio de direcciones para un proceso es el conjunto de direcciones de memoria virtual que puede utilizar. El espacio de direcciones para cada proceso es privado y no se puede acceder por otros procedimientos, a menos que se comparta. Una dirección virtual no representa la ubicación física real de un objeto en la memoria, sino que el sistema mantiene una tabla de páginas para cada proceso. El sistema traduce la dirección virtual a una dirección física mediante diferentes algoritmos, lo que hace que no se pueda acceder a las  posiciones de otros procesos porque no es posible hacer referencia a dichas posiciones.

Autor: Ing. Locnem Obando P

á

g

ni

a

2

0

A diferencia de los otros sistemas, las páginas pueden estar en tres estados; libre, donde no puede ser accedida por ningún proceso pero sí reservada o encargada; reservada, es un espacio de dirección virtual fijada para usos futuros; encargada, aquella que ha sido asignada a un espacio físico, ya sea en memoria física o virtual.

Planificación y gestión de procesos en MAC. El Mac OS es un sistema operativo multiusuario y multitarea con un a capacidad para administrar simultáneamente información de32 bits , se considera de multitarea preventivo dado que cuenta con un progr  amador (también llamado planificador) el cual, segúnlos criterios de  prioridad, asigna el tiempo de los equipos entre varios procesos que l o solicitan. La planificación del procesadorconsiste en mantener una serie de estructuras de información que permiten identificar las carac terísticas de cada trabajo, asícomo los recursos que tiene asignados. Un trabajo puede estar en varios estados (procesamiento, listo para e  jecutar y enespera). Mach 3.0 permite el uso de varios procesadores trabajando en parale lo, su trabajo es dotar al procesador y la memoria de lacapacidad de abstracción del resto de los componentes del equipo. Se encargará d e gestionar los tiempos de trabajo delprocesador, así como de facilita r la protección de memoria entre las distintas aplicaciones que se est én ejecutando en unmomento dentro del ordenador. Todo ello sin ol vidar la gestión de todos los mecanismos de entrada y salida de que dispongamospara una tarea en ejecución. Mac Os X define el concepto de hilo tal y como lo hace POSIX, siguiendo este mismo estándar para su manejo. Un hilo es, por tanto, es un punto de control de la ejecución de un proceso, que tiene acceso a todos los recursos del proceso y que se puede ejecutar en paralelo

Autor: Ing. Locnem Obando P

á

g

ni

a

2

1

(si la maquina lo soporta) con otros hilos (estén o no dentro del mismo  proceso). Un proceso (o tarea, como se le denomina en Mach) se define como un conjunto de recursos. Estos recursos, como veremosposteriormen te, pueden ser referenciados a través de los puertos, con la excepción  del espacio de direccionamiento. Una tareadebe contener uno o más  hilos. En Mach, una tarea no tiene capacidad de ejecución, sino que son los hilos que contiene los que realmente se ejecutan basándose en los recursos de la tarea. Una tarea es, por tanto, una entidad bastante  pesada, ya que contiene todos los recursos que los hilos contenidos van a necesitar. Por contra, un hilo es una entidad sumamente ligera, ya que sólo contiene cierta cantidad de información relativa al estado de la ejecución, delegando en la tarea todos los aspectos relativos a los recursos. La planificación en el kernel de Mac OS X esta basada en cuatro list as de ejecución, cada una de ellas con diferente prioridad. Unhilo pu ede migrar de un nivel de prioridad a otro en función de sus requeri mientos, dependiendo de la política en concreto que seutilice en el si stema. En general, es posible manejar estas prioridades mediante los  procedimientos definidos en el estándar dellamadas POSIX. Los pro cesos parecen efectuarse simultáneamente.

2 2 a ni

Autor: Ing. Locnem Obando P

á

g

Las cuatro listas de ejecución que maneja el planificador de Mac OS X, son:

PRIORIDAD

APLICACION

 Normal

Aplicaciones normales

Alta

cuya prioridad se ha aumentado

Modo kernel

Internos al kernel con mayor  prioridad que el nivel de usuario (ej.: E/S).

Tiempo real

Hilos con una fracción definida de ciclos de ejecución

En MAC se utiliza el algoritmo Round Robin para la planificación de procesos.

3 2 a ni

Autor: Ing. Locnem Obando P

á

g

Algoritmos de planificación de procesos en los SO.  Linux:

En Linux se usan dos algoritmos: tiempo compartido y tiempo real Tiempo compartido Prioridad basada en créditos –  el proceso con más créditos es el siguiente en tomar la CPU. Los créditos se reducen cuando ocurre una interrupción de reloj. Tiempo real. Tiempo real blando Cumple el estándar Posix.1b –  dos clases 











 Windows:

Windows utiliza el algoritmo de planificación de modo apropiativo  basado en prioridades. El planificador de Windows asegura que siempre se ejecute la hebra de prioridad más alta.  MAC

OS:

Solaris utiliza una planificación de hebras que está basada en  prioridades, definiendo cuatro tipos para planificación que son por orden de prioridad: 

Tiempo compartido Interactiva Tiempo real Sistema 





4 2 a ni

Autor: Ing. Locnem Obando P

á

g

CONCLUSION En conclusión, hemos aprendido como el sistema operativo se encuentra estructurado en una primera etapa, el desarrollo de procesos y la comprensión de los hilos de ejecución a través de los cuales, el sistema delega funciones y opera en forma multi funcional. También aprendimos la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecución de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador. Se concluye que el algoritmo de planificación FIFO es el algoritmo recomendable por su facilidad y su entendimiento para el Sistema Operativo Linux. Que el sistema Windows trabaja el algoritmo de planificación por prioridades a pesar de tener un multiprocesador. Y que el Sistema Mac trabaja con el algoritmo de ROUND ROBIN asignando tareas en tiempo real y ejecutando todas a la vez.

5 2 a ni

Autor: Ing. Locnem Obando P

á

g

BIBLIOGRAFIA

https://es.scribd.com/doc/163293809/Algoritmos-de-planificacionque-utilizan-los-sistemas-operativos-Linux https://es.scribd.com/doc/120084926/Gestion-de-procesos-enWindows-Linux-Mac https://ocw.ehu.eus/pluginfile.php/12388/mod_resource/content/13/ html/Recursos/P03/Planificacion_procesos.html http://openaccess.uoc.edu/webapps/o2/bitstream/10609/8179/1/fserr  anocaTFC0611.pdf  http://www.monografias.com/trabajos105/planificacion procesos/planificacion-procesos.shtml http://www.codemag.com/article/100113 http://ips-leopard.blogspot.com/2012/01/sistemas-de-procesos.html http://www.mediavida.com/foro/hard-soft/gestion-de-procesos-enmac-378754

6 2 a ni

Autor: Ing. Locnem Obando P

á

g

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF