Вы находитесь на странице: 1из 26

UPONIC – JUIGALPA - CHONTALES

Ingeniería En Computación y Sistemas

2018
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 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

Página 2

Autor: Ing. Locnem Obando


Página 3

Autor: Ing. Locnem Obando


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

Página 4

Autor: Ing. Locnem Obando


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.

Página 5

Autor: Ing. Locnem Obando


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.

Página 6

Autor: Ing. Locnem Obando


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. Página 7

Autor: Ing. Locnem Obando


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.

Página 8

Autor: Ing. Locnem Obando


¿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
Página 9

momento dado.

Autor: Ing. Locnem Obando


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
Página 10

programas.

Autor: Ing. Locnem Obando


Página 11

Autor: Ing. Locnem Obando


Creación de procesos en Linux

Obtener entrada
Fork: Obtener entrada libre en Tabla de
Procesos
a libre en Tabla
Copiar de Procesos
BCP del Padre

“Copia al proceso padre Duplicar mapa del Padre También limpiar


y le da una nueva (Incluyendo Pilas)
señales, eventos
identidad al hijo”

Estado  listo

PCB en cola de listos

Devuelve PID Devuelve 0 al


Al Padre Hijo Página 12

Autor: Ing. Locnem Obando


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
Página 13

compartido es imprescindible una política de expulsión por tiempo.

Autor: Ing. Locnem Obando


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
Página 14

calcular q para la cota de tr elegida como objetivo.

Autor: Ing. Locnem Obando


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.
Página 15

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


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.
Página 16

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.

Autor: Ing. Locnem Obando


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.

Página 17

Autor: Ing. Locnem Obando


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.
Página 18

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


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,
Página 19

en Windows existe la función TerminateProcess.

Autor: Ing. Locnem Obando


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
Página 20

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


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,
Página 21

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


(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.

Página 22

Autor: Ing. Locnem Obando


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.

Página 23

Autor: Ing. Locnem Obando


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
Página 24

Autor: Ing. Locnem Obando


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.
Página 25

Autor: Ing. Locnem Obando


BIBLIOGRAFIA

https://es.scribd.com/doc/163293809/Algoritmos-de-planificacion-
que-utilizan-los-sistemas-operativos-Linux
https://es.scribd.com/doc/120084926/Gestion-de-procesos-en-
Windows-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-en-
mac-378754

Página 26

Autor: Ing. Locnem Obando

Вам также может понравиться