Sie sind auf Seite 1von 16

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL
POLITCNICA DE LA FUERZA ARMADA NACIONAL BOLIVARIANA
UNEFA-NUCLO BARINAS

Procesos de los Sistemas Operativos y


Gestin de Memoria

Ing.: Manuel Vsquez


VI Semestre Ing. Sistemas
Seccin: S61

Integrantes:

Bernal Paola
Mota Daniel
Marquez Roger
Ramrez Mara

Barinas/Octubre/2016

3.1.

PROCESOS DE LOS SISTEMAS OPERATIVOS

Dentro de las operaciones ms bsicas y la vez ms complejas de nuestra PC


encontramos

los

procesos. Estos

nos

permitirn

entrar

al

mundo

que

se

"DESPERTARA" en nuestra computadora, o por lo menos seria nuestra manera de


decirlo. Siempre que le pidamos a nuestra computadora que haga algo, los procesos
asumirn el trabajo y de esta manera el microprocesador dar ejecucin al plan que
realice el sistema operativo a travs de los procesos
Un proceso es un concepto manejado por el sistema operativo que consiste en el
conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el


microprocesador.

Su estado de ejecucin en un momento dado, esto es, los valores de los


registros de la CPU para dicho programa.

Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

Otra informacin que permite al sistema operativo su planificacin.

Los procesos son creados y destruidos por el sistema operativo, as como tambin
este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de
otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina
bifurcacin (fork). Los nuevos procesos son independientes y no comparten memoria
(es decir, informacin) con el proceso que los ha creado.
La definicin ms aceptada: Programa que se est ejecutando. Un proceso es la
unidad de trabajo de un sistema. Mientras que un programa es una entidad esttica, un
proceso es una entidad dinmica.
Por lo tanto un proceso es una actividad especfica que tiene un programa para
realizar tareas u objetivos; el proceso es el que realiza la funcin para cumplir la tarea

que le fue asignada a un software, esto se da cuando el sistema operativo interacta


con sus recursos y son ejecutados por el microprocesador.
Tipos de Procesos
-Procesos cooperantes: Es cuando el proceso es seleccionado para
afectar a otros procesos o que este proceso sea afectado por otros. Estos procesos
cooperantes comparten datos e informacin por conveniencia.
-Procesos independientes: Estos procesos son lo contrario a los
cooperantes ya que no afecta a los dems procesos, ni es afectado por estos en el
sistema, y no comparten ningn tipo de datos. Los procesos independientes ejecutan su
funcin, sin ayuda de otros procesos.
Implantacin: Es un estudio que se hace para la modificacin o mejoramiento,
para llevar a cabo un mejor proceso automatizado. Esto se hace instalando equipos o
software nuevos.

Asignacin de recursos: Se debe de administrar los recursos del equipo para


ejecutar servicios para los procesos.
-La disponibilidad y prioridad determinara la asignacin de recursos.
-La mala administracin de recursos puede hacer creer que la computadora no tiene
memoria cuando en realidad si tiene
-El sistema operativo como gestor de recursos para los procesos.
El CPU (unidad central de proceso), tiempo del CPU.
Dispositivos de entrada y salida.
La memoria, archivos, puentes de comunicacin.
Las colas de procesos para determinar quien se ejecutara primero.
Los recursos del sistema para ver la capacidad de espacio en donde se pueda
guardar espacio la informacin.

Estados de los procesos: El principal trabajo del procesador es ejecutar las


instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones
se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el
sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las
instrucciones del mismo.
En un entorno de multiprogramacin, el procesador intercalar la ejecucin de
instrucciones de varios programas que se encuentran en memoria. El sistema operativo
es el responsable de determinar las pautas de intercalado y asignacin de recursos a
cada proceso.
1. Listo: es cuando el proceso est preparado para cumplir su funcin, cuando sea
seleccionado.
2. Ejecucin: cuando el procesador est ejecutando los procesos en ese
momento.
3. Bloqueado: los procesos esperan la seal de otro proceso para que este cumpla
su funcin.

Hebras y procesos: El proceso es el que, ejecuta la funcin para determinar las


actividades de un programa, definiendo el espacio de direccionamiento, recursos y
conexiones entre otras cosas.
La hebra se encuentra dentro de un proceso y define un flujo de ejecucin de
sucesin ordenada dentro de el. Pueden existir muchas hebras dentro de un mismo
proceso y pueden compartir datos entre ellas.

En sistemas operativos, un hilo de ejecucin, hebra o subproceso es la unidad


de procesamiento ms pequea que puede ser planificada por un sistema operativo.
La creacin de un nuevo hilo es una caracterstica que permite a una aplicacin
realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin
comparten una serie de recursos tales como el espacio de memoria, los archivos
abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de
una aplicacin que debe llevar a cabo distintas funciones simultneamente.
Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con
otra tarea.
Los hilos de ejecucin que comparten los mismos recursos, sumados a estos
recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de
ejecucin de un mismo proceso compartan los recursos hace que cualquiera de estos
hilos pueda modificar stos. Cuando un hilo modifica un dato en la memoria, los otros
hilos acceden a ese dato modificado inmediatamente

3.2.

PLANIFICADOR DE PROCESOS.

La panificacin es cuando, el sistema operativo puede tener la planificacin de


poder detener la actividad de un proceso en cualquier momento, as como cuando el
proceso esta ejecutado el sistema operativo no puede inhabilitarlo del estado. El
objetivo de este panificador es ejecutar todos los procesos, mantener ocupada la CPU,
minimizar el tiempo que deben esperar como respuesta a los usuarios, rendir y
maximizar el nmero de tareas procesadas por hora.
El planificador de procesos (process scheduler, en ingls) es la parte del sistema
operativo que se encarga de seleccionar a qu proceso se asigna el recurso procesador
y durante cunto tiempo.

Objetivos de la planificacin

Equidad, todos los procesos deben poder ejecutarse

Eficacia, mantener ocupada la CPU un 100% del tiempo

Tiempo de respuesta, minimizar el tiempo de respuesta al usuario

Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes
para obtener sus resultados

Rendimiento, maximizar el nmero de tareas procesadas por hora.

Sincronizacin: los procesos cuando son cooperantes pueden compartir datos con
otros procesos, y puede afectar a otros procesos o puede ser afectado. De manera que
la sincronizacin ocurre entre estos procesos si son concurrentes para el
funcionamiento de una tarea que se a encomendado.
Comunicacin de procesos: Esto ocurre mediante un sistema de mensajes, los
procesos se comunican entre si para ejecutar, entre todos una misma tarea,
compartiendo espacios de memoria.
Exclusin mutua: Dos procesos no pueden tener los mismos recursos, un solo
proceso puede excluir temporalmente a los dems procesos para usar un recurso de
forma que este garantice la ejecucin que se le a asignado al proceso y mantenga la
integridad del sistema.
Es decir, dos procesos no pueden tener en el mismo instante el mismo recurso,la
exclusin mutua se realiza fcilmente utilizando semforos. La operacin de espera se
usar como procedimiento de bloqueo antes de acceder a una seccin crtica y la
operacin seal como procedimiento de desbloqueo. Se utilizarn tantos semforos
como clases de secciones crticas se establezcan.

Semforo: es el que controla los procesos de una forma ordenada y determina


que proceso se ejecutara primero, guindose por ciertas reglas que omite el sistema
operativo, omitiendo o restringiendo a cada uno de los procesos.
Dijkstra dio en 1968 una solucin al problema de la exclusin mutua con la introduccin
del concepto de semforo binario. Est tcnica permite resolver la mayora de los
problemas de sincronizacin entre procesos y forma parte del diseo de muchos
sistemas operativos y de lenguajes de programacin concurrentes.
Un semforo binario es un indicador (S) de condicin que registra si un recurso
est disponible o no. Un semforo binario slo puede tomar dos valores: 0 y 1. Si, para
un semforo binario, S = 1 entonces el recurso est disponible y la tarea lo puede
utilizar; si S = 0 el recurso no est disponible y el proceso debe esperar. Los semforos
se implementan con una cola de tareas o de condicin a la cual se aaden los procesos
que estn en espera del recurso.
Slo se permiten tres operaciones sobre un semforo.
- Inicializar
- Espera (wait)
- Seal (signal)
Monitor: es el que monitorea permitiendo controlar la ejecucin de un proceso.
No slo permite controlar la ejecucin de un proceso, sino que tambin nos ofrece la
posibilidad de acceder a informacin, esta informacin es la misma que podemos
obtener del Administrador de tareas de Windows.
Mensajes: La comunicacin mediante mensajes necesita siempre de un proceso
emisor y de uno receptor as como de informacin que intercambiarse. Por ello, las
operaciones bsicas para comunicacin mediante mensajes que proporciona todo
sistema operativo son:

Enviar (mensaje) y recibir (mensaje). Las acciones de transmisin de informacin


y de sincronizacin se ven como actividades inseparables.
La comunicacin por mensajes requiere que se establezca un enlace entre el
receptor y el emisor, la forma del cual puede variar grandemente de sistema a sistema.
Aspectos importantes a tener en cuenta en los enlaces son: como y cuantos enlaces se
pueden establecer entre los procesos, la capacidad de mensajes del enlace y tipo de
los mensajes.
Su implementacin vara dependiendo de tres aspectos:
1. El modo de nombrar los procesos.
2. El modelo de sincronizacin.
3. Almacenamiento y estructura del mensaje.
Los mensajes proporcionan una solucin al problema de la concurrencia de
procesos que integra la sincronizacin y la comunicacin entre ellos y resulta adecuado
tanto para sistemas centralizados como distribuidos. Esto hace que se incluyan en
prcticamente todos los sistemas operativos modernos y que en muchos de ellos se
utilicen como base para todas las comunicaciones del sistema, tanto dentro del
computador como en la comunicacin entre computadores.
Interbloqueo: Es el bloqueo permanente de uno o ms procesos, estos esperan un
evento o una ejecucin del sistema operativo, ya sea cancelar la ejecucin de uno o
ms procesos o hacer que estos retrasen su ejecucin. En el interbloqueo hay dos
recursos, el reutilizable que puede ser usado con seguridad por un proceso y no se
agota con el uso; y el consumible es el que se destruye al ser adquirido por un proceso.
-Condiciones para el interbloqueo.

Dos procesos no pueden tener el mismo recurso en este instante, solo puede

tener recursos un proceso, esto es exclusin mutua.


Un proceso cuando tiene un recurso asignado puede esperar a otro recurso.
El proceso no puede expropiar o quitar un recurso a otro proceso que esta
signado.

4.1. GESTIN DE MEMORIA


La memoria fsica de un sistema se divide en dos categoras:

memoria de acceso aleatorio: comprende circuitos integrados y es, en


consecuencia, muy veloz.

memoria de almacenamiento masivo: comprende dispositivos magnticos (disco


duro, cintas magnticas, etctera) y es mucho ms lenta.

La memoria fsica consiste en un rea de almacenamiento temporal para los


programas y los datos que se usan. A grandes rasgos, mientras ms grande sea el
espacio de memoria, ms aplicaciones se podrn ejecutar al mismo tiempo. Adems,
mientras ms rpida sea la memoria, ms rpida ser la reaccin del sistema. Por eso,
el sistema operativo debe estar organizado de manera lo suficientemente eficiente
como para obtener el mejor rendimiento posible.
Y para ello existe lo que se conoce como la gestin de memoria, la cual representa
un vnculo delicado entre el rendimiento (tiempo de acceso) y la cantidad (espacio
disponible). Siempre se busca obtener el mayor espacio disponible en la memoria, pero
pocas veces existe la predisposicin para comprometer el rendimiento. En otras
palabras la gestin de memoria, es la administracin de memoria que se refiere a los
distintos mtodos y operaciones que se encargan de obtener la mxima utilidad de la
memoria, organizando los procesos y programas que se ejecutan de manera tal que se
aproveche de la mejor manera posible el espacio disponible.

La gestin de memoria tambin debe realizar las siguientes funciones:

permitir que la memoria se comparta (en sistemas de multiprocesos).

asignar bloques de espacio de memoria a distintas tareas;

proteger los espacios de memoria utilizados (por ejemplo, evitar que un usuario
modifique una tarea realizada por otro usuario).

optimizar la cantidad de memoria disponible, especficamente a travs de


sistemas de expansin de memoria.

En la gestin de memoria hay un elemento importante como el recolector de basura


el cual es la asignacin y liberacin automtica de los recursos de memoria para un
programa. La implementacin suele ser a nivel del lenguaje de programacin en
contraposicin a la gestin manual de memoria, que asigna y libera los recursos de
memoria de una computadora de forma explcita.
Las tcnicas que existen para la carga de programas en la memoria son:
-Particin fija, que es la divisin de la memoria libre en varias partes (de igual o distinto
tamao)
-Particin dinmica, que son las particiones de la memoria en tamaos que pueden ser
variables, segn la cantidad de memoria que necesita cada proceso.

Gestin de memoria con particiones fijas y variables.

Multiprogramacin con particiones fijas.

Consiste en que la memoria se divide en diversas partes como celdas, cada una de
ellas de diferentes tamaos dependiendo de la cantidad de asignacin que tenga cada
proceso. Esta implementacin de asignar cada uno de los procesos a ella es mediante
una cola los va ubicando es espacios disponibles de la memoria cada vez que se van

desocupando. La segunda forma es que se elija el proceso de tamao mayor y que se


ajuste al espacio disponible pero esto ignora los procesos ms pequeos. Estas
particiones fijas puede hacer que un proceso pequeo pueda pedirle prestado
asignaciones a un proceso con mayor que el, as que la asignacin prestada se una
en la misma celda del proceso que le falta dicha asignacin.

Multiprogramacin con particiones variables.

Los procesos necesitan ser almacenados en la memoria para poder ejecutarse. En


esta memoria hay espacios disponibles y espacios ocupados por otros procesos;
cuando estos procesos llegan a la memoria se busca un espacio o hueco lo
suficientemente grande para asignar a este proceso que solicita un espacio en la
memoria y este puede competir con los otros procesos para ser ejecutado por el
sistema operativo.
Los mecanismos de distribucin de memoria
La memoria central se puede distribuir de las siguientes maneras:

Segmentacin: los programas se dividen en paquetes de longitudes variadas


conocidos como "segmentos".

Paginacin: consiste en dividir la memoria en bloques y los programas en


pginas de longitud fija.

una combinacin de segmentacin y paginacin: algunas partes de la memoria


se segmentan y otras se paginan.

Memoria virtual que consiste en utilizar el disco duro como memoria principal y
almacenar solamente las instrucciones y los datos utilizados por el procesador
en la memoria

a. Paginacin:

Los espacios de memoria se divide en varias partes fsicas del mismo tamao, estos
se llaman marcos de pgina y son compartidos entre varios procesos que haya en el
sistema. Esto es que un proceso tendr varias pginas que reside en su memoria
principal y el resto en la memoria secundaria y determinar la pgina ala que hace de
acuerdo a un programa, los bits que tienen mayor peso se interpreta como el nmero
de pgina y los bits que tienen menor peso como el nmero de palabras dentro de esta
pgina. Esta paginacin tiene dos funciones: transforma de una direccin virtual a fsica
y transferir pginas de la memoria secundaria a la memoria principal, y de la principal a
la secundaria cuando ya no sea necesario.
Ventaja: La principal ventaja de paginacin sobre la segmentacin de memoria
es que permite al espacio de direccin fsica de un proceso ser no contiguo. Antes de la
paginacin, los sistemas deban poner programas en almacenamiento de forma
contigua, lo que causaba varios problemas de almacenamiento y fragmentacin.
Implementacin: El mtodo bsico para implementar paginacin consiste en
dividir la memoria fsica en bloques de tamao fijo llamados frames (marcos) y dividir la
memoria lgica en bloques de mismo tamao llamados pages (pginas). Cuando un
proceso se va a ejecutar, sus pginas son cargadas en cualquier marco de la memoria
de almacenamiento secundario. Este est dividido en bloques de tamao fijo del mismo
tamao de los marcos en memoria.

b. Segmentacin:
Permite ver la memoria que cuenta de varios espacios de direcciones. Estos
segmentos son de distintos tamaos y de forma dinmica. Las relaciones de la
memoria tienen una direccin como numero de segmento y desplazamiento. En esto
cada proceso posee de una tabla de segmento y cuando estos segmentos estn en la
memoria principal, dicha tabla de segmentos, de estos procesos se crea y se carga en
la memoria.
Ventajas:

-Simplifica la gestin de estructuras de datos crecientes. La estructura de datos se le


puede asignar a su propio segmento y el S.O expandir o reducir el segmento cuando
se necesite.
- Permite modificar y recopilar los programas independientemente.
- Se presta a la comparticin entre procesos.
Implementacin: es un esquema de manejo de memoria mediante el cual la
estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin
lgica de la informacin en bloques de tamao variable denominados segmentos. Cada
uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego,
cada espacio de direcciones de programa consiste de una coleccin de segmentos, que
generalmente reflejan la divisin lgica del programa. La segmentacin es diferente a la
paginacin: el tamao de pagina es fijo mientras el de los segmentos no. Despus del
cierto tiempo de ejecucin del sistema, la memoria estar divida en trozos, unos con
segmentos y otros con agujeros. Este fenmeno se llama cuadriculacin o
fragmentacin externa, desperdicia memoria en los agujeros.
-Segmentacin con paginacin: MULTICS; Cada programa MULTICS
tiene una tabla de segmentos, con un descriptor por segmento. Un descriptor de
segmento contiene una indicacin de si el segmento est en la memoria principal o no.
Una direccin en MULTICS consta de dos partes: el segmento y la direccin dentro
del segmento. La direccin dentro del segmento se subdivide en un numero de pagina y
una palabra dentro de la pagina.
-Segmentacin con paginacin: El Pentium de Intel ; El corazn de la
memoria virtual Pentium consiste en dos tablas, la LDT (tabla de descriptor local) y la
GDT (tabla de descriptor global). Cada programa tiene su propia LDT, pero solo hay una
GDT para todos los programas de la computadora.
La segmentacin permite alcanzar los siguientes objetivos:

1. Modularidad de programas: cada rutina del programa puede ser un bloque


sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene
su propio tamao y este puede variar.
3. Proteccin: se puede proteger los mdulos del segmento contra accesos no
autorizados.
4. Comparicin: dos o ms procesos pueden ser un mismo segmento, bajo reglas
de proteccin; aunque no sean propietarios de los mismos.
5. Enlace dinmico entre segmentos: puede evitarse realizar todo el proceso de
enlace antes de comenzar a ejecu

c. Memoria Virtual:
La memoria virtual es una tcnica que aumenta la capacidad de memoria usando
espacio en el disco duro, es decir, se combina la memoria principal con un espacio en el
disco asignado especialmente para este fin, dando la ilusin de que fuera una
memoria ms grande, la cual es utilizada de forma normal tanto por el SO como por los
procesos de usuario. Con la memoria virtual es posible abstraer la memoria lgica de la
memoria fsica, pudiendo disponer as de una memoria lgica mucho ms grande que la
memoria fsica.
La memoria virtual combina la Ram con el espacio asignado de disco duro o hdd
La idea principal consiste en tener parte de los procesos que no se necesita que
estn cargados en la memoria principal, guardada en un espacio del disco designado
(nombrado) normalmente como archivo de paginacin. De esta forma, slo se cargan
en la memoria fsica algunas partes del proceso sin desperdiciar espacio con, como
por ejemplo, rutinas que se necesiten muy rara vez o datos o tipos de datos que
necesitan mucho espacio y que no se usaran por completo en el corto plazo.

En trminos tcnicos, la memoria virtual permite a un software correr en un


espacio de memoria que no necesariamente pertenece a la memoria fsica de una
computadora. Para esto se debe emular un CPU que trate a toda la memoria (virtual y
principal) como un bloque igual, y determinar cundo se requiere de una memoria u
otra.
Implementacin: Hay ms de un mtodo para implementar la memoria virtual, el
ms utilizado o el ms comn es el de paginacin por demanda. Tambin est el
mtodo de segmentacin por demanda y hay un tercero que se puede considerar como
un hibrido entre paginacin y segmentacin.

Paginacin por demanda: Bsicamente consiste en dividir los procesos en


pginas del mismo tamao y dividir la memoria fsica en frames de igual tamao
que las pginas. Luego se cargan las pginas del proceso que sean necesarias en
el momento. A medida que se necesiten ms pginas, estas se iran cargando en la
memoria fsica mientras exista espacio, de lo contrario, se necesitara escoger un
frame "victima" para desalojarlo y dejar espacio para la pgina que se neceista, el
algoritmo para escoger el frame vara en cada sistema operativo.

Segmentacin por demanda: En este mtodo los procesos se dividen en


segmentos. El tamao de los segmentos es determinado por el sistema operativo,
luego de definidos los segmentos, se debe determinar qu segmentos se cargarn
a memoria principal y cundo. Con este mecanismo hay menor fragmentacin si
existen procesos compartidos.

Paginacin/segmentacin: Este mtodo busca aprovechar las ventajas de los


anteriores. Consiste en dividir la memoria en frames de pgina del mismo tamao,
y los procesos, dividirlos en segmentos cuyos tamaos sean mltiplos del tamao
de un frame de pgina. Con este mtodo se necesita implementar una estrategia
de colocacin (de carga de segmentos en memoria), pero suelen ser ms simples
que las del mtodo de segmentacin por demanda. No se evita la fragmentacin

(interna y externa) y se utilizan algoritmos de reemplazo similares a los usados en


los mtodos anteriores.

Das könnte Ihnen auch gefallen