Sie sind auf Seite 1von 10

1.

ANTECEDENTES Y MARCO TEÓRICO

1.1. DEFINICIÓN DE UN PROCESO

Un proceso es básicamente un entorno formado por todos los recursos necesarios para ejecutar
programas. Desde el punto de vista del SO, un proceso es un objeto más que hay que gestionar y al
cual hay que dar servicio. Un proceso necesita ciertos recursos para realizar satisfactoriamente su
tarea:

Tiempo de CPU

Memoria

Archivos

Dispositivos de E/S

Podemos decir que un programa es una entidad pasiva, con un conjunto de instrucciones de código
máquina y datos almacenados en un ejecutable. Mientras que un proceso sería la ejecución de ese
programa, es decir, el programa en acción. Esto indica que los procesos son dinámicos, están en
constante cambio debido a estos recursos necesarios, ya que al intentar realizar algún tipo de acción
puede ser que tenga que permanecer a la espera de que dicho recurso esté disponible.

Al igual que las instrucciones de programa, los procesos incluyen los contadores de programa que
indican la dirección de la siguiente instrucción que se ejecutará en cada proceso y los registros de CPU.
Los procesos también contienen una sección de datos con variables globales y memoria dinámica.
Todo ello permite gestionar de una manera más eficaz los procesos en los sistemas operativos
multiprocesos, ya que cada proceso es independiente, por lo que el bloqueo de uno no debe de hacer
que otro proceso en el sistema se bloquee.

En estos sistemas operativos multiproceso se intenta maximizar la utilización del CPU, por lo que los
procesos se ejecutan simultáneamente en la CPU y sólo quedan a la espera de ejecución si requieren
de algún recurso del sistema que esté ocupado en ese momento, en cuanto obtiene dicho recurso
podrá ejecutarse de nuevo. Todo este proceso de gestión lo realiza el sistema operativo, por lo que es
el que decide si un proceso es más prioritario que otros.

Cada proceso se representa en el sistema operativo con un bloque de control de proceso (BCP). En
este BCP se guardan una serie de elementos de información de los mismos. Estos elementos son: el
identificador del proceso, el estado del proceso, registros de CPU (acumuladores, punteros de la pila,
registros índice y registros generales), información de planificación de CPU (prioridad de proceso,
punteros a colas de planificación, etc.), información de gestión de memoria, información de
contabilidad (tiempo de uso de CPU, números de procesos, etc.), información de estado de
dispositivos E/S (lista de archivos abiertos, etc.)

1.2. ESTADOS DE UN PROCESO

En un sistema multiprogramado o multitarea donde existen muchos procesos y un procesador, puede


ocurrir que en un momento dado sólo se ejecute un proceso o varios y los demás estén esperando a
ser procesado o esperen la finalización de una operación de E/S. Los pasos por los que puede pasar
un proceso se pueden representar con un diagrama de estado. Así se puede apreciar que a medida
que un proceso se ejecuta va cambiando de estado dependiendo de las preferencias que cada uno
tengan asignadas, por lo que será el procesador el que se encargue de ejecutar unos u otros.

Cada proceso puede estar en uno de los siguientes estados:


● NUEVO (NEW): hay varias razones para la creación de un proceso, una de estas es la inicialización
del sistema para la interacción con el usuario como el hacer un doble click para acceder a algún
archivo, la llamada de otros procesos. Una vez el proceso ha sido creado, queda a la espera de ser
admitido, por lo que va cambiando al siguiente estado.
● LISTO (READY): cuando el proceso se encuentra en este estado, está en la espera de la asignación
de un procesador. Para pasar al siguiente estado, puede ocurrir dos cosas, la asignación del
procesador o la interrupción de algún acontecimiento externo.
● EJECUCIÓN (RUNNING): el proceso en este estado está en la CPU ejecutando instrucciones. Puede
ocurrir tres situaciones; que el proceso ejecute todas las instrucciones hasta su última línea de
código y finaliza; pasa a estado bloqueado (wait) por que espera una acción externa como la
entrada de información por teclado; o bien el proceso pasa a estado preparado debido a que ha
agotado su tiempo de ejecución, por lo que cede su tiempo de ejecución.
● ESPERA (WAIT): el proceso está esperando a que se produzca un evento externo, como una señal
de E/S para pasar al estado de ejecución y se complete el proceso. El sistema operativo utiliza
varias colas para gestionar los estados, cada cola puede tener una política diferente. Así, podemos
encontrar una cola para los estados preparados y una cola para los estados en espera. El
planificador del procesador al examinar estas colas asigna el procesador al proceso más
conveniente.
● FIN (EXIT): finalizó su ejecución, por tanto no ejecuta más instrucciones y el SO le retirará los
recursos que consume.
● PROCESOS SUSPENDIDOS

Una de las razones para implementar el estado Bloqueado era poder hacer que los procesos
se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo,
al ser mucho más lentas estas operaciones, puede suceder en nuestro modelo de cinco
estados todos los procesos en memoria estén esperando en el estado Bloqueado y que no
haya más memoria disponible para nuevos procesos. Podría conseguirse más memoria,
aunque es probable que esto sólo permite procesos más grandes y no necesariamente nuevos
procesos. Además hay un costo asociado a la memoria y de cualquier forma es probable que
se llegaría al mismo estado con el tiempo.
Otra solución es el intercambio. El intercambio se lleva a cabo moviendo una parte de un
proceso o un proceso completo desde la memoria principal al disco, quedando en el estado
Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria
un proceso suspendido anteriormente.
El problema que se presenta ahora es que puede ser que si se decide traer a memoria un
proceso que está en el estado Suspendido, el mismo todavía se encuentre bloqueado. Sólo
convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el suceso
que estaba esperando cuando se bloqueó. Para tener esta diferenciación entre procesos
suspendidos, ya sean listos como bloqueados, se utilizan cuatro estados: Listo, Bloqueado,
Bloqueado y suspendido y Listo y suspendido.

● PROCESOS EN ESPERA
Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta
que reciban una señal para continuar.
● Se usa una variable llamada semáforo para intercambiar señales.
● Si un proceso esta esperando una señal, se suspende (WAIT) hasta que la señal se envíe (SIGNAL).
● Se mantiene una cola de procesos en ESPERA en el semáforo.
● La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO.
La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso
que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito
por el programador desde otro proceso.

Figura 1: Estados de un proceso

1.3. BLOQUE DE CONTROL DE PROCESOS

Es una estructura de datos que permite al sistema operativo controlar diferentes aspectos de la
ejecución de un proceso. Cada proceso se representa en el SO con un bloque de control de proceso
(también llamado bloque de control de tarea).

ESTRUCTURA TÍPICA DE UN PROCESO

El PCB se organiza en un conjunto de campos en los que se almacena información de diversos tipos.
Los campos típicamente mantenidos en el PCB de un proceso se muestran en la figura siguiente:
Figura 2: Bloque Central de Proceso

ELEMENTOS DEL BCP

● Identificador (identifier): Es único, usado para distinguir al proceso de otros


● Estado (State): Si el proceso está actualmente corriendo, está en el estado de ejecucióN.
● Prioridad (Priority): Nivel de prioridad relativo al resto de procesos.
● Contador de programa (Program counter): La dirección del siguiente programa que se
ejecutará.
● Puntero de memoria (Memory pointers): Incluye los punteros al código de programa y los
datos asociados a dicho proceso, además de cualquier bloque de memoria compartido con
otros procesos.
● Datos de contexto (Context data): Estos son datos que están presentes en los registros del
procesador cuando el proceso está corriendo.
● Información de estado de E/S (I/O status information): Incluye las peticiones de E/S
pendientes, dispositivos E/S asignados a dicho proceso, una lista de los ficheros en uso por el
mismo.
● Información de auditoría (Accounting information): Puede incluir la cantidad de tiempo de
procesador y de tiempo de reloj utilizados, así como los límites de tiempo, registros contables,
etc.

INFORMACIÓN TÍPICA MANTENIDA EN EL BCP

Puede clasificarse en cuatro categorías:

● Información de identificación: Esta información está integrada básicamente por el identificador


del proceso (PID), que es un número que identifica al proceso. Este número es diferente para
todos los procesos que se encuentran en ejecución y es único.
● Información de estado de la CPU: Se trata de un conjunto de campos que almacenan el estado
de los registros de la CPU cuando el proceso es suspendido.
● Información de control del proceso: Se trata de un conjunto de información que es utilizada por
el sistema operativo para controlar diversos aspectos de funcionamiento del proceso. Pertenecen
a esta categoría de información los siguientes campos:
❏ Estado del proceso: Listo, en ejecución, etc.
❏ Información de manejo de memoria: Como por ejemplo, la dirección física de memoria en la
que se ubica la tabla de páginas del proceso.
❏ Información de E/S: Lista de ficheros abiertos, ventanas utilizadas, etc.
● Información de uso de recursos: Se trata de un conjunto de información relativa a la utilización
realizada por el proceso de los recursos del sistema, como por ejemplo, el porcentaje de
utilización de la CPU, la cantidad de memoria usada o los bytes de E/S escritos y leídos por el
proceso.

1.3.1. ESTRUCTURA DE UN NUEVO PROCESO

Conjunto de políticas y mecanismos incorporados al sistema operativo, a través de un módulo


denominado planificador, que debe decidir cuál de los procesos en condiciones de ser ejecutado
conviene ser despachado primero y qué orden de ejecución debe seguirse. Esto debe realizarse
sin perder de vista su principal objetivo que consiste en el máximo aprovechamiento del sistema,
lo que implica proveer un buen servicio a los procesos existentes en un momento dado.

El sistema operativo es el encargado de decidir qué procesos entran en la CPU cuando ésta se
encuentre libre, y en qué momento sale de la CPU el proceso que está en ejecución. Todo ello se
lleva a cabo a través de una política de planificación de procesos.

Se pueden definir múltiples políticas de planificación de procesos: por orden de llegada, primero
la tarea más breve, por orden de prioridad, etc. En definitiva, lo que una política de planificación
debe conseguir es que los procesos obtengan adecuadamente sus turnos de ejecución por lo que
son tratados de la misma forma, que no se produzca sobrecarga, es decir, el planificador debe
responder rápidamente ante cargas de trabajo ligera y responder de la misma forma ante cargas
de trabajo similares. Y obtener un buen rendimiento, por lo se debe lograr finalizar el mayor
número de procesos y maximizar el tiempo de respuesta.

No existe una política de planificación óptima para todas las computadoras, sino que depende
de las características de los procesos. Así se puede ver cómo una política obtiene unos resultados
excelentes en un sistema, sin embargo en otro sistema el rendimiento es mucho menor. Ello se
debe a las características de los procesos, donde cada uno puede tener una cantidad de
operaciones de E/S enorme cómo es el caso de las bases de datos, otros usan mayormente la
CPU, otros realizan una mayor lectura de datos frente a otros, hay procesos que requieren una
prioridad máxima en los turnos de ejecución, es el caso de los procesos de tiempo real, y hay
procesos que requieren más tiempo de ejecución que otros, por lo que habrá que valorar si
terminar primero los cortos o no

Existen diferentes planificadores en el sistema. Primero nos encontramos el planificador a


largo plazo, el cual es el encargado de controlar el grado de multiprogramación en el sistema,
intentando conseguir una mezcla adecuada de trabajos en CPU y E/S. Es por tanto el encargado
de suministrar los procesos a la cola de planificación a corto plazo.

Existe también un planificador a medio plazo. Es el encargado de suspender y posteriormente


restaurar procesos de poco interés, realizando el intercambio de los mismos entre la memoria
principal y el disco o memoria secundaria. Dicho proceso es conocido como swapping, y se ejecuta
cuando hay escasez de recursos

El planificador a corto a plazo es el encargado de asignar y desasignar la CPU. Su trabajo es


coger un proceso de la cola de procesos preparados y asignarle una CPU. Hay dos tipos de
planificadores a corto plazo; no expulsivas, el proceso abandona la CPU cuando termina o a la
espera de un suceso externo; y expulsivas, el proceso que se está ejecutando puede pasar a
estado listo enviado por parte del sistema operativo

1.3.2. PLANIFICACIÓN DE UN NUEVO PROCESO

1.3.3. ALGORITMOS DE PLANIFICACIÓN DE PROCESOS

● Primero en llegar primero en ser servido


Conocido como FCFS (First Come First Served). Este algoritmo emplea una cola de procesos,
asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso llega es puesto en
su lugar en la cola después del que llegó antes que él y se pone en estado de listo. Cuando un
proceso comienza a ejecutarse no se interrumpe su ejecución hasta que termina de hacerlo.

● Prioridad al más corto


Su nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecución cambiará de
estado voluntariamente, o sea, no tendrá un tiempo de ejecución determinado para el proceso.
A cada proceso se le asigna el tiempo que usará cuando vuelva a estar en ejecución, y se irá
ejecutando el que tenga un menor tiempo asignado. Si se da el caso de que dos procesos tengan
igual valor en ese aspecto emplea el algoritmo FCFS.

● Round Robin
A cada proceso se le asigna un tiempo determinado para su ejecución, el mismo tiempo para
todos. En caso de que un proceso no pueda ser ejecutado completamente en ese tiempo se
continuará su ejecución después de que todos los procesos restantes sean ejecutados durante el
tiempo establecido. Este es un algoritmo basado en FCFS que trata la cola de procesos que se
encuentran en estado de listos como una cola circular.

● Planificación por prioridad


En este tipo de planificación a cada proceso se le asigna una prioridad siguiendo un criterio
determinado, y de acuerdo con esa prioridad será el orden en que se atienda cada proceso.

● Planificación garantizada
Para realizar esta planificación el sistema tiene en cuenta el número de usuarios que deben ser
atendidos. Para un número "n" de usuarios se asignará a cada uno un tiempo de ejecución igual
a 1/n.

● Planificación de Colas Múltiples


El nombre se deriva de MQS (Multilevel Queue Schedulling). En este algoritmo la cola de procesos
que se encuentran en estado de listos es dividida en un número determinado de colas más
pequeñas. Los procesos son clasificados mediante un criterio para determinar en qué cola será
colocado cada uno cuando quede en estado de listo. Cada cola puede manejar un algoritmo de
planificación diferente a las demás.

1.3.4. TIEMPOS
En la Planificación de procesos se tiene en cuenta diferentes tiempos que pueden ser calculados,
como son el "Tiempo de espera medio", el "Tiempo de retorno del proceso" y el "Tiempo de
retorno medio".

● Tiempo de espera medio


Es el promedio de tiempos en que los procesos están en estado de listos. En algoritmos FCFS este
tiempo suele ser bastante largo. En algoritmos SJF para los procesos largos este tiempo suele ser
muy grande, pues se estarán ejecutando constantemente los procesos más cortos y los más largos
se encontrarán constantemente en espera, por lo que pueden entrar en inanición. En
Planificación por prioridad los procesos de prioridad baja podrían no ejecutarse nunca. Para dar
solución a este problema el envejecimiento de un programa eleva su prioridad.

● Tiempo de retorno del proceso


Es el tiempo que transcurre desde la creación de un proceso hasta que termina la ejecución del
programa que le dio lugar.

Tiempo de retorno medio


Es la suma de los tiempos de retorno de cada uno de los procesos dividida entre la cantidad de
procesos.

1.4. MEMORIA

1.4.1. ESTRATEGIAS DE ASIGNACIÓN DE MEMORIA

1.4.2. PARTICIONES

1.5. GESTIÓN DE E/S

1.5.1. FUNCIONES BÁSICAS DE E/S

1.5.2. TÉCNICAS PARA REALIZAR LA E/S


2.REQUERIMIENTOS

REQUERIMIENTO DESCRIPCIÓN

1. ENTRADA DE UN NUEVO PROCESO El sistema operativo debe generar las


interrupciones , registro en tabla bitácora y el
modelo para el almacenamiento de la
información en la memoria.

1.1 TIPOS DE INTERRUPCIÓN Generar la interrupción de por software o


excepciones ( interrupciones no controladas
directamente por el programador ) producidas
por una operación no permitida.

1.2 REGISTRO EN TABLA BITÁCORA El sistema debe permitir crear un registro


donde se almacenen cambios de estado, el
tiempo de los procesos, número de procesos
listos y la cantidad interrupciones en un
determinado tiempo.

2. TIPOS DE PLANIFICACIÓN EL sistema permite 3 tipos de planificación de


administración de las colas : FIFO( First in First
Out), Prioridad y Garantizado.

3. ASIGNACIÓN DE MEMORIA El sistema operativo debe permitir la asignación


de memoria que necesitaran los procesos
nuevos antes de la gestión de procesos.

4. ASIGNACIÓN DE ESTADOS En el sistema ,se definen los estados : INCIO ,


LISTO , LISTO Y SUSPENDIDO , EJECUCIÓN ,
BLOQUEADO Y SUSPENDIDO, ESPERA , FIN

5. TIMER Determina el tiempo máximo que el procesador


le da a un proceso , se define el tiempo máximo
, y las equivalencias de la unidad de tiempo.

6. MODELO DE INTERFAZ El sistema operativo debe mostrar una pantalla


de barras , es una pantalla de seguimiento del
proceso. En donde figura la información del
proceso. Como por ejemplo: el estado, el
tamaño, la dirección inicial de la memoria
asignada, entre otros.

7. SEGURIDAD Se definen 2 módulos( Módulo Usuario -


Módulo del Sistema Operativo ) que permiten
mayor seguridad de la información ; y que no
permita la sobreescritura.

8. MEMORIA VIRTUAL Permitirá al sistema operativo mayor


optimización tanto para el software como para
las tareas que realice y disponga de más
memoria.

3.SUPOSICIONES

4.RESTRICCIONES

5.VIABILIDAD

6.OBJETIVOS

6.1. OBJETIVO GENERAL

Simular un sistema operativo (gestión de procesos, gestión de memoria, gestión de E/S) utilizando el
lenguaje de programación JAVA y el gestor de base de datos SQL Server.

6.2. OBJETIVOS ESPECÍFICOS

● Generación de un Bloque de Control de Proceso.


● Determinar los tipos de interrupciones que usaremos durante los procesos.
● Gestionar las interrupciones por requerimiento de memoria y E/S
● Determinar los algoritmos para generar de forma aleatoria los tiempos y las interrupciones.
● Determinar los algoritmos para asignar la memoria que necesitaran nuevos procesos antes
de su ejecución.
● Determinar los tipos de estados que se usarán en el sistema.
● Generación de evento de espera por recurso memoria y de I/O de dispositivos.
● Determinar el tiempo máximo que el procesador le da a un proceso.

Das könnte Ihnen auch gefallen