Added algorithm research assignment.
This commit is contained in:
parent
44667579a6
commit
a00ca3206a
BIN
1/ISO/assignments/algorithms/algorithms.pdf
Normal file
BIN
1/ISO/assignments/algorithms/algorithms.pdf
Normal file
Binary file not shown.
42
1/ISO/assignments/algorithms/algorithms.tex
Normal file
42
1/ISO/assignments/algorithms/algorithms.tex
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
\usepackage[spanish]{babel}
|
||||||
|
|
||||||
|
\title{Algoritmos De Prioridad De Procesos}
|
||||||
|
\author{Nicolás A. Ortega Froysa}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\section{Apropiación}
|
||||||
|
La planificación de procesos puede ser de dos tipos distintos:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Apropiativa:} el planificador (proceso a cargo de planificar
|
||||||
|
los procesos) puede interrumpir un proceso durante su ejecución, y
|
||||||
|
forzarlo al estado de espera.
|
||||||
|
\item \textbf{No Apropiativa:} el planificador \textbf{no} puede interrumpir
|
||||||
|
un proceso durante su ejecución, y tiene que esperar a que el proceso
|
||||||
|
devuelva el control al planificador. Esto puede ser por causa de bloqueo
|
||||||
|
necesario o voluntario.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Los sistemas no apropiativos eran más comunes cuando se valía de sistemas
|
||||||
|
operativos monousuario y monoprogramadas. Mas hoy en día apenas se usan ya que
|
||||||
|
un proceso podría monopolizar de la CPU, que empeoraría la experiencia del
|
||||||
|
usuario y el tiempo de respuesta.
|
||||||
|
|
||||||
|
\section{Round-Robin}
|
||||||
|
Este algoritmo es, por definición, \textit{apropiativa}. El planificador asigna
|
||||||
|
a cada proceso un cuanto de tiempo \texttt{q} de igual tamaño y en orden
|
||||||
|
circular. Gestiona todos los procesos sin prioridad. El planificador concede la
|
||||||
|
CPU al proceso durante \texttt{q}; si el proceso no devuelve control de la CPU
|
||||||
|
al planificador dentro de su cuanto de tiempo, el planificador se apropia de la
|
||||||
|
CPU, interrumpiendo al proceso, y asigna la CPU al siguiente proceso.
|
||||||
|
|
||||||
|
\section{Colas Multi-nivel}
|
||||||
|
Se distribuyen las tareas en una cola de varios niveles de prioridad,
|
||||||
|
dependiendo de diferentes factores (e.g.\ tiempo de CPU, acceso E/S, tamaño de
|
||||||
|
memoria, etc.). Un proceso sólo puede apropiarse de la CPU si todas las colas de
|
||||||
|
mayor prioridad están vacías.
|
||||||
|
|
||||||
|
\end{document}
|
@ -81,3 +81,20 @@ Un proceso puede tener los siguientes estados:
|
|||||||
- Transición
|
- Transición
|
||||||
- Ejecución/Activo
|
- Ejecución/Activo
|
||||||
- Bloqueado
|
- Bloqueado
|
||||||
|
|
||||||
|
## Gestión de Memoria
|
||||||
|
Cuando un sistema es monoprograma, entonces el único proceso tiene acceso pleno
|
||||||
|
a toda la memoria de la máquina. Mas cuando hay varios programas, tiene que
|
||||||
|
haber un sistema para asignar la memoria a los diferentes procesos.
|
||||||
|
|
||||||
|
El sistema operativo también se tiene que ocupar de no dejar que un proceso
|
||||||
|
acceda a la memoria de otro - y por supuesto no del sistema operativo. Esto se
|
||||||
|
soluciona sobre todo con la memoria virtual, tal que el proceso cree que tiene
|
||||||
|
toda la memoria (incluso más grande que el tamaño físico de la memoria), y la
|
||||||
|
CPU se ocupa de traducir las direcciones. Cuando se intenta usar más memoria de
|
||||||
|
lo que hay en memoria física, se hace uso de un almacenamiento secundario que se
|
||||||
|
llama __swap__.
|
||||||
|
|
||||||
|
Para gestionar la memoria se suele usar una estructura lógica de __páginas__. Si
|
||||||
|
es demasiado pequeña entonces sobrecarga el sistema al tener que gestionar
|
||||||
|
tantas. Mas si es demasiado grande se desaprovecha espacio.
|
||||||
|
Loading…
Reference in New Issue
Block a user