Está en la página 1de 31

Universidad Santa María

Núcleo Oriente
Facultad de Ingeniería
Sistemas de Operación

Trabajo especial #2

Profesor: Alumnos:

Francisco Fuentes. Mario Guastapaglia 26.676.671.


Mauricio Antabi 27.874.443.
Simón Ortega 28.095.272
Valentina Martínez 27.072.322
Índice
1. Introducción
2. Concepto de Planificador
3. Concepto de Algoritmos de Planificación
4. Planificación apropiativa y no apropiativa
5. Explicación de los Algoritmos de Planificación
5.1. En sistemas Batch
5.1.1. Primero en entrar primero en ser servido
5.1.2. Primero el trabajo más corto
5.2. En sistemas interactivos
5.2.1. Round Robin
5.2.2. Por prioridades
5.2.3. Dos niveles
5.2.4. Múltiples colas
5.2.5. Proceso más corto a continuación
5.2.6. Lotería
Índice
5.2.7. Conducida por política
5.2.8. Garantizada
6.3. En sistemas de tiempo real
6.4. Otros
6.4.1. Plazo fijo
7. Semáforo
7.1. Definición
7.2. Ejemplo de uso
8. Threads
8.1. Modelo
8.2. Utilización
8.3. Planificación
9. Monitores
10. Transmisión de mensajes
11. Llamada a procedimientos remotos
Índice
12. Uso de monitores para implementar semáforos y
mensajes
13. Conclusiones
14. Recomendaciones
15. Bibliografía
16. Anexos
Introducción

En este trabajo especial nos adentraremos en lo que es


un planificador. Toda empresa diseña planes
estratégicos para el logro de sus objetivos y metas
planteadas, estos planes pueden ser a corto, mediano y
largo plazo, según la apmomutyd y magnitud de la
empresa. Es decir, su tamaño, ya que esto implica qué
cantidad de planes y actividades debe ejecutar cada
unidad operativa, ya sea de niveles superiores o niveles
inferiores.
Planificador
El planificador de procesos (process scheduler, en
ingles) es la parte del sistema operativo que se encarga
de seleccionar a qué proceso se asigna el recurso
procesador y durante cuánto tiempo.

El planificador de procesos es software, por tanto,


requiere emplear el recurso procesador para ejecutar
su código.
Planificador
El planificador es un componente funcional muy
importante en los sistemas operativos multitarea y
multiproceso, y es esencial en los sistemas operativos
de tiempo real.

Su función consiste en repartir el tiempo disponible de


un microprocesador entre todos los procesos que están
disponibles para su ejecución.
Algoritmos de planificación
Un algoritmo de planificación se utiliza para calcular
los recursos que consume otro algoritmo o conjunto
de algoritmos (programa) al realizar una determinada
tarea.

Como por ejemplo:


• Tiempo de finalización
• Porcentaje de utilización de la CPU
Etc…
Planificación apropiativa y no
apropiativa
Una disciplina de planificación, es no apropiativa si
una vez que la CPU ha sido asignada al proceso, ha ño
de le puede arrebatar. Y por el contrario, es apropiativa
si se le puede quitar la CPU, esta misma es útil en los
sistemas en los cuales los procesos de alta prioridad
requieren una atención rápida.

La apropiación tiene un precio. El cambio de proceso


implica gasto extra.
Sistema Batch
El procesamiento batch comenzó con el uso de
tarjetas perforadas que se tabularon para decirle a
los ordenadores qué hacer. A menudo, las cubiertas
o lotes de tarjetas se procesaban al mismo tiempo.

El procesamiento batch de hoy utiliza alertas de


administración basadas en excepciones para
notificar a las personas correctas si hay problemas.
Esto permite a los administradores trabajar sin
tener que controlar regularmente el progreso de los
lotes. La idea es que los gerentes no necesitan
registrarse en absoluto a menos que reciban una
alerta sobre una excepción crítica.
Primero el trabajo mas corto

El algoritmo asocia a los procesos el largo de su próximo


CPU-burst.
Cuando el procesador queda disponible se le asigna al
proceso que tenga
el menor CPU-burst.
Si dos procesos tiene el mismo CPU-burst se desempata
de alguna forma.
Su funcionamiento depende de conocer los tiempos de
ejecución lo cual en
la mayoría de los casos no sucede.
Es adecuado para sistemas por lotes (batch).
Por prioridad
A cada proceso se le asigna un número entero que
representa su prioridad.
Al planificador asigna el procesador al proceso con la
más alta prioridad.
Se utiliza en general un esquema expropiativo ya que si
un proceso con
mayor prioridad que el que esta ejecutando arriba a la
lista de procesos
listos (ready queue), será asignado al procesador.
SJF se puede ver como un algoritmo de prioridad
donde la prioridad esta
dada por el próximo CPU-burst.
Es adecuado para sistemas interactivos
Round Robin

A cada proceso se le brinda un intervalo de tiempo


para el uso del
procesador (time quantum).
Al finalizar el tiempo, el procesador le es expropiado y
vuelve al estado
pronto (ready) al final de la cola.
Es fácil de implementar ya que solamente es
necesario una cola de
procesos listos. Cuando un proceso consume su
quantum es puesto al final
de la cola.
Dos Niveles
Si los procesos se pueden clasificar según sus cualidades,
es posible
dividir la lista de procesos listos (ready queue) en varias
colas (una para
cada clasificación).
Los procesos son asignados permanentemente a una de
las colas.
Cada cola tendrá su propio algoritmo de planificación
propio.
Además, se debe tener una estrategia de planificación entre
las diferentes
colas. Por ejemplo, una cola tendrá prioridad sobre otra.
Múltiples colas
Se diferencia con el anterior en que procesos pueden
cambiar de cola
(nivel).
Se basa en categorizar los procesos según el uso de
CPU (CPU-burst) que
tengan.
La cola de mayor prioridad será la de los procesos I/O-
bound y la de menor
la de procesos con alto CPU-bound.
De esta forma, se garantiza que los procesos con poco
uso de procesador
tengan mayor prioridad, y los que consumen mucho
procesador tendrán
baja prioridad.
Sistemas de Tiempo Real
Los sistemas de tiempo real son aquellos en los que
no tiene importancia el usuario, sino los procesos. Por
lo general, están subutilizados sus recursos con la
finalidad de prestar atención a los procesos en el
momento que lo requieran, se utilizan en entornos
donde son procesados un gran número de sucesos o
eventos. Muchos Sistemas Operativos de tiempo real
son construidos para aplicaciones muy específicas
como control de tráfico aéreo, bolsas de valores,
control de refinerías, etc.
Plazo fijo
En la planificación de plazo fijo se programan ciertos
trabajos para terminarse en un tiempo específico o plazo
fijo. Estas tareas pueden tener un gran valor si se
entregan a tiempo, y carecer de él si se entregan después
del plazo. Esta planificación es compleja por varios
motivos:
El usuario debe informar por adelantado de las
necesidades precisas de recursos del proceso. Semejante
información rara vez está disponible.
El sistema debe ejecutar el proceso en un plazo fijo sin
degradar demasiado el servicio a los otros usuarios y
debe planificar cuidadosamente sus necesidades de
recursos dentro del plazo.
Planificación Linux
Para que Linux pueda gestionar los procesos en el
sistema, cada proceso se representa por una estructura
de datos task_struct (las tareas (task) y los procesos
son términos intercambiables en Linux). El vector task
es una lista de punteros a estructuras task_struct en el
sistema. Esto quiere decir que el máximo número de
procesos en el sistema está limitado por el tamaño del
vector task; por defecto tiene 512 entradas. A medida
que se crean procesos, se crean nuevas estructuras
task_struct a partir de la memoria del sistema y se
añaden al vector task.
Para encontrar fácilmente el proceso en ejecución, hay
un puntero (current) que apunta a este proceso. Linux
soporta procesos de tiempo real así como procesos
normales. Estos procesos tienen que reaccionar muy
rápidamente a sucesos externos (de ahí el término
“tiempo real”') y reciben un trato diferente del
planificador
Semáforo
Definición:

Los semáforos permiten al programador asistir al


planificador del sistema operativo en su toma de
decisiones de manera que permiten sincronizar la
ejecución de dos o más procesos.

Ejemplo de uso:

Suponga el siguiente
ejemplo en el que se
quiere sincronizar
dos hilos de un
proceso.
Threads
Un hilo es una secuencia de tareas encadenadas muy
pequeña que puede ser ejecutada por un S.O.

Modelo: el modelo de procesos se basa en dos


conceptos independientes:

El agrupamiento de los recursos

Ejecución secuencial de un programa

Utilización: La razón principal para tener threads es


que son numerosas las aplicaciones en las que hay
varias actividades que están en marcha
simultáneamente.
Monitores
Un monitor es una estructura del lenguaje cuyas
principales características son:

Los datos son privados.

Ofrecen una serie de métodos públicos para acceder


a dichos datos.

En cada momento solo puede haber un proceso


activo en algún método del monitor, es decir,
ejecutando código de esos métodos públicos del
monitor
Transmisión de Mensajes
Este es un paradigma de programación ampliamente
usado en el software moderno. Sus aplicaciones cubren un
amplio campo, y puede usarse desde para garantizar que
los diferentes objetos que constituyen un programa
informático puedan trabajar de forma coherente entre ellos
hasta para permitir que una tarea pueda ejecutarse de
forma sincronizada entre varios ordenadores.
Llamada a Procedimientos Remotos

La RPC o Remote Procedure Call (en español, llamada a


procedimiento remoto) es una herramienta básica para
establecer estructuras colaborativas y operativas en
redes y arquitecturas cliente-servidor.
Uso de monitores para implementar
semáforos y mensajes
En el estudio y uso de los semáforos se puede ver que
las llamadas a las funciones necesarias para utilizarlos
quedan repartidas en el código del programa, haciendo
difícil corregir errores y asegurar el buen funcionamiento
de los algoritmos. Para evitar estos inconvenientes se
usan los monitores.
Conclusiones

 Conversando acerca de este trabajo el Grupo 3 llego


a la conclusión de que es muy importante saber toda
esta información ya que nos permite comprender
mejor la tecnología con la que trabajamos y
estudiamos al día a día, y ver el funcionamiento de
cada proceso por el que atraviesan nuestras
computadoras y la manera en la que se organiza el
sistema para realizar todas las tareas que se le
asignan de manera eficaz y harmoniosa
Recomendaciones

 A los estudiantes de ingeniería de sistemas les es


muy importante nutrirse de esta información, ya que
comprender y entender como funcionan los
dispositivos con los que trabajamos nos facilitara a
nosotros la hora de desarrollar sistemas y
herramientas nuevas.
Bibliografía
 Wiki pedía: https://es.wikipedia.org/
 Universidad Atlántica Internacional:
https://www.aiu.edu/spanish/publications/student/spanish/180-
207/SISTEMAS-OPERATIVOS-PROCESOS-CONCURRENTES-
Unidad-III.htm
 Slide to Doc: https://slidetodoc.com/sistemas-operativos-tema-6-
control-de-la-concurrencia/
 Universidad de Granma:
https://www.udg.co.cu/cmap/sistemas_operativos/planificacion_cpu/pri
oridad/prioridad.html#:~:text=En%20este%20algoritmo%20a%20cada,
de%20cada%20uno%20de%20ellos.
 Slide Player:
https://slideplayer.es/slide/12954157/79/images/15/Planificaci%
C3%B3n+de+colas+m%C3%BAltiples.jpg
Anexos
- Cuadro Sobre la Planificación en Programación
Anexos
- Como funciona los threads en un único Hilo
Anexos
- Ejemplo de la Planificación por Prioridad

También podría gustarte