Tarea Unidad 4
Presentado a:
Docente
Carlos Armando López
TAREA UNIDAD 4
Estos algoritmos surgen debido a la necesidad de poder organizar los procesos de una manera
eficiente para el procesador.
En esta política de planificación, el procesador ejecuta cada proceso hasta que termina, por
tanto, los procesos que en cola de procesos preparados permanecerán encolados en el orden
en que lleguen hasta que les toque su ejecución. Este método se conoce también como fifo
(fist input, first output, primero en llegar primero en salir).
Se trata de una política muy simple y sencilla de llevar a la práctica, pero muy pobre en
cuanto a su comportamiento.
La cantidad de tiempo de espera de cada proceso depende del número de procesos que se
encuentren en la cola en el momento de su petición de ejecución y del tiempo que cada uno
de ellos tenga en uso al procesador, y es independiente de las necesidades del propio
proceso.
No apropiativa
Es justa, aunque los procesos largos hacen esperar mucho a los cortos
Predecible.
El tiempo medio de servicio es muy variable en función del número de procesos y su
duración.
Ejemplo:
Proceso a → tiempo ejecución → tiempo llegada → tiempo finaliza → tiempo retorno → tiempo
espera.
Creación de Lenguaje de Programación y 4
Gestión de Sistemas Operativos
Ingeniería de Sistemas
En el caso de que los procesos de mayor tiempo de duración llegasen los primeros, el tiempo
medio de espera sería mucho mayor. Podemos llegar a la conclusión de que este no es un
algoritmo eficiente.
Conclusión:
Este algoritmo está bien lo único es que los procesos largos hacen esperar mucho a los cortos.
Predecible, el tiempo medio de servicio es muy variable en función del número de procesos y
su duración.
En este algoritmo, da bastante prioridad a los procesos más cortos a la hora de ejecución y los
coloca en la cola.
Ejemplo:
Una cola de personas en Mercadona delante de la caja, la persona que menos compra lleva
esa pasa primero.
Creación de Lenguaje de Programación y 5
Gestión de Sistemas Operativos
Ingeniería de Sistemas
Conclusión
En resumen, este algoritmo selecciona al proceso con el próximo tiempo ejecución más
corto. En proceso corto saltará a la cabeza de la cola. Ejecución de un proceso consiste en
ciclos de ejecución de CP y ciclos de espera por E/S. El algoritmo selecciona aquel proceso
cuyo próximo ciclo de ejecución de CP sea menor. El problema está en conocer dichos
valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutados
Es similar al sjf, con la diferencia de que si un nuevo proceso pasa a listo se activa
el dispatcher para ver si es más corto que lo que queda por ejecutar del proceso en ejecución.
Si es así, el proceso en ejecución pasa a listo y su tiempo de estimación se decremento con el
tiempo que ha estado ejecutándose.
Conclusión:
ROUND ROBIN
Round Robin es uno de los algoritmos de planificación de procesos más complejos y difíciles,
dentro de un sistema operativo asigna a cada proceso una porción de tiempo equitativa y
ordenada, tratando a todos los procesos con la misma prioridad.
Se define un intervalo de tiempo denominado cuanto, cuya duración varía según el sistema.
La cola de procesos se estructura como una cola circular. El planificado la recorre asignando
un cuanto de tiempo a cada proceso. La organización de la cola es FIFO.
Creación de Lenguaje de Programación y 7
Gestión de Sistemas Operativos
Ingeniería de Sistemas
Conclusión:
Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuánto.
Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el
proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU.
El round robín es muy fácil de implementar. Todo lo que necesita el planificado es mantener
una lista de los procesos listos.
ALGORITMO SJF
El algoritmo SJF (Shortest-Job-First) se basa en los ciclos de vida de los procesos, los cuales
transcurren en dos etapas o periodos que son: ciclos de CPU y ciclos de entrada/salida,
también conocidos por ráfagas.
La palabra shortest (el más corto) se refiere al proceso que tenga el próximo ciclo de CPU más
corto. La idea es escoger entre todos los procesos listos el que tenga su próximo ciclo de CPU
más pequeño.
1. Con Desalojo: Si se incorpora un nuevo proceso a la cola de listos y este tiene un ciclo
de CPU menor que el ciclo de CPU del proceso que se está ejecutando, entonces dicho
proceso es desalojado y el nuevo proceso toma la CPU.
Sin desalojo: Cuando un proceso toma la CPU, ningún otro proceso podrá apropiarse de ella
hasta que el proceso que la posee termine de ejecutarse
Para el siguiente ejemplo se tienen 4 procesos (P1, P2,P3 y P4). A medida que estos se van
incorporando a la cola de listos, se les calcula su próximo ciclo de CPU.
Para calcular el próximo ciclo de CPU se pueden emplear: métodos estadísticos, cálculos
probabilísticos, entre otros.
package fifo;
/**
*
* @author MundoChocCacA
*/
import java.util.LinkedList;
Creación de Lenguaje de Programación y 10
Gestión de Sistemas Operativos
Ingeniería de Sistemas
import java.util.Queue;
import java.util.Iterator;
import java.util.*;
import java.io.*;
}
}
Memoria
Creación de Lenguaje de Programación y 11
Gestión de Sistemas Operativos
Ingeniería de Sistemas
ESTATICA
La RAM estática se basa en una forma de circuito biestable (flip-flop en inglés), un circuito
eléctrico que tiene dos condiciones estables, cada una correspondiente a una de dos posibles
señales de entrada, para contener datos en cada celda de memoria. Un circuito biestable para
una celda de memoria consiste comúnmente de entre cuatro y seis dispositivos electrónicos
de estado sólido, conocidos como transistores, que controlan el flujo de electricidad. La
característica definitoria de la RAM estática es que nunca necesita ser actualizada, por lo que
los datos permanecen en sus celdas de memoria hasta que se sobrescriben o se extrae la
fuente.
Pros y contras: La RAM estática es mucho más rápida que la RAM dinámica, con tiempos de
acceso comunes entre 10 y 30 mil millonésimas de segundo, o nanosegundos. La RAM
estática se utiliza comúnmente para los búferes de alta velocidad, cachés y registros, tales
como la memoria intermedia de trama en un adaptador de pantalla de video, donde el acceso
rápido a los datos es la principal preocupación. Sin embargo, cada celda de memoria RAM
estática tiene más partes que una celda de memoria RAM dinámica y ocupa más espacio en
un chip de memoria. Esto significa menos memoria por chip, por lo que la memoria RAM
estática es más cara que la RAM dinámica.
Dinámica
La forma más simple de una celda de memoria RAM dinámica se compone de un solo transistor
y un único dispositivo para la acumulación y posesión de carga eléctrica, conocido como un
condensador. La presencia o ausencia de una carga en el condensador determina si la celda
de memoria contiene un dígito binario 1 o un dígito 0. Las celdas de memoria RAM dinámica
descargan cada poca milésima de segundo, o milisegundos, por lo que deben ser leídas y
actualizadas varias veces si sus contenidos se van a mantener por mucho tiempo.
Pros y contras: Las celdas RAM dinámicas requieren actualización de los circuitos para
revitalizar los condensadores, pero, aun así, requieren mucho menos espacio que las celdas
de memoria RAM estática. La RAM dinámica es algo más lenta que la RAM estática, con
Creación de Lenguaje de Programación y 12
Gestión de Sistemas Operativos
Ingeniería de Sistemas
tiempos de acceso típicos por encima de 30 nanosegundos, pero es muy densa, con un solo
transistor y un condensador para cada bit. La RAM dinámica es más económica de instalar
que la RAM estática y, como resultado, es el tipo más común de memoria en una computadora.
La memoria principal de una computadora es normalmente RAM dinámica.
PAGINACIÓN
SEGMENTACIÓN
Modelos de comunicación:
Una de las tareas más complejas del Sistema operativo es la implementación y uso de la
memoria compartida, teniendo en cuenta que esto obliga a atravesar las capas del software
construyendo un puente de comunicación con una estructura de memoria no monolítica sobre
la arquitectura de red. Algunas soluciones son las variables compartidas (similar a variables
de entorno), cuyo acceso sincroniza mediante cerrojos de exclusión mutua u otras primitivas
(condicionales, banderas, semáforos) han sido estudiadas desde hace tiempo y están
perfectamente establecidas como paradigma tecnológico, para poderla transferirla se requiere
un mecanismo de paso de mensaje, (mediante colas FIFO y BUFFERS) a menudos integrados
en el sistema de archivos Como por ejemplo: mediante pipes de UNIX.
Es una arquitectura de paso del mensaje, que puede operar variables compartidas mediante
un archivo público de acceso remoto tipo GCI-BIN o MINE, su distribución de trabajo a
provecha la versatilidad de que un servidor pueda también ser cliente de otros servidores, El
acceso a los terceros se hace mediante el intermedio del servidor, quien se convierte en cliente
de otros.
El acceso a los terceros recursos se hacen mediante el intermedio del servidor, por ejemplo
un servidor web puede ser cliente de los servicios DNS, MySQL, POP3, SMTP, pero ser
anfitrión de Java, PHP, ASP, HTML, FTP, o por ejemplo un buscador web en donde hace sus
búsquedas.
Las siguientes imágenes muestra un modelo cliente-servidor de dos capas, el típico esquema
de web HOSTING con varios servidores es una sola máquina, para el servicio HTTP en
internet; los servidores forman una línea frontal en la que si una petición no puede ser atendida,
se traslada al servidor contiguo. En el caso de requerirse un servicio de más bajo nivel,
entonces se pueden agregar capas de servidores que operan detrás de la línea frontal , por
ejemplo un PHP, o SQL Server, Para esto se usa el modelo común de tres capas, por ejemplo
el servidor HTTP; PHP; SQL. Según la configuración del software se pueden mover y alterar
el balance de carga hacia los clientes o hacia los servidores
Ejemplo:
Imagen 1 -
Creación de Lenguaje de Programación y 17
Gestión de Sistemas Operativos
Ingeniería de Sistemas
Fuente: Internet
Imagen 2
Elaboración propia.
Al tener identificado cada suceso con una marca de tiempo lógica se puede indicar que estos
suceden o se procesan antes que. Debido a que en sistemas computacional distribuido
suceden N procesos se debe simular su administración en un vector que permita identificar
para ellos los tiempos donde se registre cada marca, cumpliendo 4 reglas básicas en la
actualización de los relojes.
Las peticiones se reciben y se despachan con el tiempo del servidor, y se entregan al cliente
con el tiempo que fue despacha por el servidor más la duración de envío actualizando el tiempo
en el cliente (tener presente son tiempos lógicos).
reloj = reloj + 1;
marca_temporal_mensaje = reloj;
enviar(mensaje, marca_temporal_mensaje);
1. Que la comunicación es fiable por lo que todos los mensajes se reciben intactos y una
única vez.
2. Los canales son unidireccionales con entrega de tipo FIFO, primero en entrar primero
en salir.
3. El grafo de los procesos y canales está fuertemente conectado, hay canal de
comunicación directa entre todos los estados.
4. Cualquier proceso puede tomar una instantánea global en cualquier instante.
5. Mientras tiene lugar una instantánea los procesos pueden continuar su ejecución y
comunicación.
Creación de Lenguaje de Programación y 20
Gestión de Sistemas Operativos
Ingeniería de Sistemas
reloj = max(marca_temporal_mensaje,reloj) + 1;
Sino
FinSi
Asigna marca de tiempo al registrar su propio estado, para canal de salida de C, Pi envía un
mensaje de instantánea por el canal c.
Fuente:
https://sites.google.com/site/mrtripus/home/sistemas-operativos-2/2-1-comunicacion-
comunicacion-con-cliente-servidor-comunicacion-con-llamada-a-procedimiento-remoto-
comunicacion-en-grupo-tolerancia-a-fallos
http://es.wikipedia.org/wiki/Planificaci%C3%B3n_Round-robin
http://es.scribd.com/doc/44358964/FSO-Algoritmos-de-Planificacion-Algoritmo-SJF-Shortest-Job-First
http://pachel.tripod.com/materias/material3sis.htm
http://people.ac.upc.edu/marisa/miso/memo_slides.pdf
Creación de Lenguaje de Programación y 21
Gestión de Sistemas Operativos
Ingeniería de Sistemas
https://techlandia.com/tipos-ram-estatica-dinamica-info_290309/
http://blog.rolandopalermo.com/2009/12/algoritmo-de-lamport-para-la.html
https://es.wikipedia.org/wiki/Algoritmo_de_la_panader%C3%ADa_de_Lamport
https://www.youtube.com/watch?v=3HKkLoF8gOI
http://sistemasdistribuidosaisseccion1.blogspot.com/p/sincronizacion-en-sistemas-distribuidos.html
https://www.youtube.com/watch?v=t3RBHsapexI