Added algorithm research assignment.
This commit is contained in:
		
							
								
								
									
										
											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.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user