Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana 2
Semana 2
Estados de un proceso
Descripción de procesos
o Para administrar los procesos se usa una tabla de procesos. Cada entrada de la tabla es un PCB (Process
Control Block)
Process state
Process state
1.- Introducción a los algoritmos de planificación
Proceso en Sistema Operativo GNU/LINUX
Un proceso es una instancia de un programa en ejecución. Todos los procesos conforman una estructura en forma
De árbol, de modo que tenemos procesos padre e hijo.
El proceso está definido por el programa, los semáforos, el espacio de memoria que ocupa y los procesos hijos que mande a
llamar. Los hijos de un proceso comienzan siendo copias exactas del proceso padre, para así llamar al programa o tarea
correspondiente. De esta manera el proceso principal (proceso padre), comparte con sus hijos los recursos del sistema que
este consumiendo, sus atributos de seguridad (tales como su propietario y permisos de archivos así como roles y
semaforización.
o A grandes rasgos, todos ellos parten de init o systemd, que es el primer proceso que se ejecuta en el arranque del
Sistema y del que nacen todos los demás
o Todos los procesos, como verán en los ejemplos se identifican por un PID o Process ID, que suele ser un número que
Va cambiando cada vez que un proceso se finaliza y vuelve a iniciarse.
o El código de la BIOS realiza algunas tareas, entre las que se incluyen la comprobación del hardware, Bios
su configuración y la búsqueda del sector de arranque (boot).
o Cuando la computadora arranca el sistema operativo, se ejecuta el fichero ejecutable kernel cuya
misión es cargar el núcleo del sistema operativo en memoria.
o Cuando el kernel toma el control, realiza las tareas como iniciar dispositivos montar la partición de la
raíz, y por último cargar y ejecutar el programa inicial de sus sistema, que por defecto es /sbin/init.
o /sbin/init leerá un fichero llamado /etc/inittab para determinar qué otros programas deben de
ejecutarse,
Gestor Gráfico
o El núcleo es el primer proceso del sistema, y es padre de si mismo, puesto que su PID=PPID=0. La
XDM/GDM
misión del núcleo es controlar los recursos de la computadora, por lo que delega el nacimiento de Systemd
nuevos procesos en uno de sus hijos: init.
Bash
Interprete de comandos
1.- Introducción a los algoritmos de planificación
Proceso en Sistema Operativo GNU/LINUX
Comando ps
El comando ps devuelve el estado de los procesos. Su framework es el directorio /proc; lo que significa que lee directamente
la información de archivos que se encuentran en este directorio.
Observe que mientras se procesa ps, las cosas pueden cambiar. Ya que el comando ps le ofrece sólo una foto de lo
que está ocurriendo, es la situación un segundo después de escribir el comando. La información puede no estar en
concordancia con el momento en que la ve.
(ps –l) se mostrarán distintas informaciones acerca de los procesos actualmente en marcha, incluyendo el estado de cada proceso
O - El proceso está ejecutándose en un procesador.
S - Durmiendo: el proceso espera a que ocurra un acontecimiento o suceso.
R - Ejecutable: el proceso está en la cola de ejecución.
I - Ocioso: el proceso está siendo creado.
Z - Autómata: el proceso ha terminado y no hay proceso maestro esperando.
T - Rastreado: proceso detenido por una señal porque el proceso maestro lo está rastreando.
X - SXBRK: el proceso está esperando más memoria primaria.
El planificador asigna el recurso CPU al proceso respectivo, realiza cambio de contexto, cambio a modo usuario, reinicia un proceso.
Las metas que busca el planificador es: Equidad, eficacia, tiempo de respuesta tiempo de espera, tiempo de retorno, rendimiento o
productividad.
PLANIFICADOR
Pn P(n-1) P1 EXPULSIÓN
COLA DE
COLA DE PROCESOS PROCESO
TRABAJOS PROCESOS CPU
ESPERANDO EJECUCIÓN PREPARADOS TERMINADO
RECURSO
COLA DE
PROCESOS
BLOQUEADOS
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación (First Come First Served – FCFS)
Ejemplo1: Se tiene tres procesos P1, P2 y P3 que llegan al mismo tiempo y su orden de llegada se muestra en la tabla 1. Realizar el diagrama de
Gantt, calcular los tiempos de espera (Waiting Time –WT) y de retorno (Total Complete Time-TCT) de cada proceso,
y también los tiempos promedios de Espera (Average Waiting Time – AWT) y de retorno (Average Complete Time - ACT).
Tabla 1.
P1 (9-0)=9
P2 4
P2 (13-0)=13
9 P3 (15-0)=15
P1
0 9 13 15 Tiempo
Average Complete Time (ACT) =(9+13+15) / 3 = 12.33 unidades de tiempo
P1
P2 ❖ Ráfagas de CPU (BT: Burst Time)
P3
❖ Tiempo de llegada (AT: Arrive Time)
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación (First Come First Served – FCFS)
Ejemplo 2: Se tiene cinco procesos P0, P1, P2, P3 y P4 que su tiempo de llegada se muestra en la tabla 2. Realizar el diagrama de Gantt y
calcular el tiempo de espera y de retorno (empleado) de cada proceso y los tiempos promedio de espera y empleado.
Tabla 2
P4 (1200-4)=1196
Espera=947
Tiempo promedio espera=(0+349+473+947+1196) / 5 = 593 unidades de tiempo
P3
Procesos
P0 (350-0)=350
Espera=349 P1 (475-1)=474
P1
P2 (950-2)=948
Espera=0 P3 (1200-3)=1197
P0
P4 (1275-4)=1271
0 1 2 3 4
350 475 950 1200 1275
Tiempo promedio empleado=(350+474+948+1197+1271) / 5 =848 unidades de tiempo
P0 P1 P2 P3 P4
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación (First Come First Served – FCFS)
Ejercicio1 :
El sistema operativo mediante el planificador inicializa los procesos (A, B, C y D) con el algoritmo FCFS. Dichos procesos se encuentran alojados en la cola de
procesos preparados y pasan al estado de ejecución con un tiempo de ocupación de la CPU de acuerdo a la tabla 1.
Tabla 1.
Procesos T.cpu T. Llegada
A 8 2
B 2 3
C 2 4
D 4 5
Tabla 2.
Procesos BT (Burst time) T.Llegada
Tiempo de CPU (Arrive time-AT)
P1 5 0
P2 10 3
P3 8 6
P4 10 8
P5 3 10
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación Primero el trabajo más corto (Shortest Job First)
Este algoritmo tiene el criterio de priorización de atender primero al proceso cuyo tiempo de ejecución por CPU, tarde menos.
o Si en el caso hubiera dos o varios procesos cuyo tiempo de ejecución por CPU es el mismo, se aplicaría el algoritmo FIFO, es decir,
se daría prioridad al proceso que llegó primero.
o Pre-Emptive (Apropiativo):
❖ Puede ser interrumpida la ejecución del CPU
❖ Escoge el trabajo más corto
❖ Mucha más prioridad a los trabajos más cortos
Características:
❑ Asociar a cada proceso el tiempo de ráfaga de CPU.
❑ El algoritmo escoge el proceso con menor ráfaga de CPU.
❑ En caso de empate se aplica algoritmo FIFO
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación Primero el trabajo más corto (Shortest Job First)
Ejemplo 1: Se inicia cuatro procesos (Word, Excel, Paint y Cal) mostrados en la tabla 1. El tiempo requerido para ejecutarse (ráfaga de
CPU) para cada proceso son: 8, 6, 4 y 2. Además, estos procesos llegan en los tiempos 0, 2, 4 y 6. El esquema de trabajo del
Algoritmo es Non-Preemptive
Solución 1
Para empezar a evaluar la ejecución de cada proceso en el tiempo, es necesario saber, cuáles son los procesos que están en espera
de acuerdo a la tabla 3, observándose que en el tiempo 0 no hay ninguno, entonces el primer proceso en ejecutarse es el proceso
Word.
Tabla 3
Ejemplo 2: Se inicia cuatro procesos (Word, Excel, Paint y Cal) mostrados en la tabla 4. El tiempo requerido para ejecutarse (ráfaga de
CPU) para cada proceso son: 8, 4, 4 y 2. Además, estos procesos llegan en los tiempos 0, 4, 2 y 6. Graficar los procesos y calcular
Tiempo de retorno y tiempo de espera de cada proceso y el tiempo promedio de espera. El esquema de trabajo del
algoritmo es Non-Preemptive
Ejercicio 1: Se inicia cinco procesos (P1, P2, P3, P4 y P5) mostrados en la tabla 5. Evaluar cual de los esquemas de trabajo del algoritmo
SJF es más eficiente en relación al tiempo de espera promedio. Para ello se debe de calcular los tiempos de espera promedio de ambos
Esquemas de trabajo.
Tabla 5
Ráfagas de CPU
Procesos
(Tiempos Tiempos de
ejecución) llegada
P1 10 0
P2 2 2
P3 6 4
P4 4 5
P5 6 7
1.- Introducción a los algoritmos de planificación
Algoritmo de 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.
Características:
❑ Ráfagas de CPU: son las unidades de tiempo que requiere el proceso para ejecutarse completamente.
❑ Tiempo de llegada: es el tiempo cuando el proceso va entrando al sistema.
1.- Introducción a los algoritmos de planificación
Algoritmo de Planificación por prioridad
Ejercicio 1: Se inicia cuatro procesos (A, B, C y D) mostrados en la tabla 6 y los parámetros respectivos para su funcionamiento. El esquema de
trabajo del algoritmo es no apropiativo. Calcular el tiempo de sistema (tiempo de retorno) de cada proceso, el tiempo de espera de cada proceso y
el tiempo promedio de espera.
Tabla 6
Procesos T.CPU T.Llegada Prioridad
A 4 1 3
B 10 3 3
C 9 5 1
D 6 9 2
1.- Introducción a los algoritmos de planificación
Algoritmo de Planificación por prioridad
Ejercicio 2: Se inician cuatro procesos de acuerdo a la tabla 7, el tiempo de llegada de cada proceso (figura 1) está en progresión aritmética,
donde la razón es 3 y el primer término es 0
Tabla7 Figura 1
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación Turno circular o Round Robin
Este algoritmo de planificación, conocido por Round robin, está diseñado especialmente para sistemas de tiempo compartido.
Se define un intervalo de tiempo denominado "Quantum", cuya duración varía según el sistema.
Características:
❑ Todos los procesos llegan en tiempo cero.
❑ La cola de procesos tiene una estructura de cola circular.
❑ La expulsión se produce por tiempo.
❑ El Quantum de tiempo o cantidad máxima de tiempo de CPU que se permite a un proceso consumir ininterrumpidamente.
❑ El planificador recorre la cola de procesos asignando un Quantum (q) de tiempo a cada proceso.
❑ Cuando un proceso recibe la CPU puede ocurrir 2 cosas:
❑ Que el proceso tenga una ráfaga de CPU menor que el Quantum: En este caso, el proceso termina antes del Quantum y planifica un
Nuevo proceso.
❑ Que el proceso tenga una ráfaga de CPU mayor que el Quantum: En este caso el Quantum para este proceso se agota, a continuación
Es expulsado de la CPU dando paso a otro proceso y el proceso expulsado se colocará al final de la cola de procesos listos.
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación Turno circular o Round Robin
Ejemplo 1: Se inicia cinco procesos (Nexus, CodeBlocks , Calculadora, Dev C++ y Reason) de acuerdo a la tabla 1, el Quantum q =5, ó 5
unidades de tiempo. El tiempo de llegada de todos los procesos por defecto es cero. La ejecución de cada proceso es de acuerdo al orden
de llegada y cada una se ejecuta en una cantidad determinada de ráfagas de CPU.
Tiempo de
llegada
19+10 = 29
5+4 = 9
24+8 = 32
14 +5 = 19
27+12 = 39
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación Turno circular o Round Robin
Ejercicio 1: Se inicia cuatro procesos (P1, P2 , P3 y P4) de acuerdo a la tabla 2, el Quantum q =20, su diagrama de Gantt se muestra en la
Figura1. Calcular los tiempos de espera y respuestas de los procesos.
Tabla 2 Figura 1
1.- Introducción a los algoritmos de planificación
Algoritmo de planificación Turno circular o Round Robin
Ejercicio 1:
El planificador del sistema operativo Raspberry Pi OS basado en Debian deberá calcular los tiempos de 4 procesos con los algoritmos
FCFS y Round Robin (q=2), de acuerdo a la tabla 4.
Procesos T. cpu T. Llegada
A 4 0
B 5 0
C 6 0
D 4 0
P1 10 0
P2 4 5
P3 1 8
2.- Introducción a la programación de Bash y Scripts
o pi@raspberrypi:~$
o pi es el usuario
o raspberrypi es el host
o :~ directorio actual
o $ es el cursor
2.- Introducción a la programación de Bash y Scripts
Bash (Bourne Again Shell)
o Es un intérprete de órdenes o comandos que generalmente se ejecuta en una
ventana de texto donde el usuario escribe órdenes en modo texto. o pi@raspberrypi:~$ nano bienvenida.sh
Script
o Es un código de programación, que contiene comandos u ordenes que se van
ejecutando de manera secuencial y comúnmente se utilizan para controlar el
comportamiento de un programa en especifico o para interactuar con el
sistema operativo.
o comando/script ; echo $?
2.- Introducción a la programación de bash y scripts
Reglas para escribir un script en Linux
o pi@raspberrypi:~$ nano ejemplo1.sh
o # : Sirve para iniciar comentario
o $ : Consulta valor de la variable.
o ; : Une comandos escritos en una línea
o = : Asigna valor a variables.
o ${ } : Contiene el índice del elemento de la variable (arreglos)
o ‘‘ : Indica caracteres literales. La variable dentro de
ella no es procesada como variable.
o “ “ : Agrupa cadena de caracteres. La variable dentro
de ella si es ejecutada
o Sintaxis
o function “nombre” () { …instrucciones }
|| Or lógico Se usa para condiciones compuestas while [ $opcion -ne 4] || [$opcion -ne 0 ]
2.- Introducción a la programación de bash y scripts
Operadores aritméticos
Sentencia if-else
if [ condición ]
then
…comando
…comando
else
…comando
…comando
fi
Sentencia if-elif-else
if [ condición1 ]
then
…comando
elif condición2; then
…comando
else o pi@raspberrypi:~$ bash ejemplo6.sh
o Ingrese un valor numérico: 4
…comando o Valor es menor que 10
…comando o Ingrese su nota: 17
fi o Bueno
o pi@raspberrypi:~$
2.- Introducción a la programación de bash y scripts
o pi@raspberrypi:~$ nano ejemplo7.sh
Sentencias de bifurcación
Sentencia case
case expresión in
Caso1) …comandos;;
Caso2) …comandos;;
*) …comandos;;
esac
Sentencia while
while [ condición ]
do
…comando
done
Sentencia until
Este tipo de bucle se usa cuando queramos que haga el bucle mientras las
condición no se cumpla
o pi@raspberrypi:~$ bash ejemplo8.sh o 1
until [ condición ] o 1 o 2
o 2 o 3
do o 3 o 6
…comando o 1 o 5
o 2 o 4
done o 3 o pi@raspberrypi:~$
2.- Introducción a la programación de bash y scripts
o pi@raspberrypi:~$ nano ejemplo9.sh
Ejemplo 9:
Programar un ciclo de 5 elementos pero al tercer
elemento romper el bucle usando la sentencia break.
o pi@raspberrypi:~$ bash
ejemplo8.sh
o Cuentas es:1
o Cuentas es:2
o Se terminó la cuenta
o pi@raspberrypi:~$
2.- Introducción a la programación de bash y scripts
o pi@raspberrypi:~$ nano ejemplo10.sh
Ejemplo 10:
Ejemplo 12:
Instalar aplicaciones:
Ejemplo 13:
El procesador del SoC Broadcom de cuatro núcleos basados en ARM es manejado por el planificador del sistema operativo
usando el algoritmo FCFS modo no apropiativo para tres procesos (P1, P2 y P3) que se encuentran alojados en la cola de
procesos preparados y pasan al estado de ejecución con un tiempo de ocupación de la CPU de acuerdo a la tabla 1. Realizar
lo siguiente:
Tabla 1
P2 4 5
P3 1 8
Ejercicio propuesto 2
Se inicia cinco procesos (P1, P2, P3 y P4) mostrados en la tabla 2. Evaluar cual de los esquemas Apropiativo y No apropiativo del
algoritmo SJF es más eficiente en relación al tiempo ACT
Tabla 2
P2 4 5
P3 2 7
P4 1 9
Ejercicio propuesto 3
Se inicia cinco procesos (P1, P2, P3 y P4) mostrados en la tabla 3. Evaluar cual de los esquemas Apropiativo y No apropiativo del
algoritmo SJF es más eficiente en relación al tiempo ACT
Tabla 3
P2 2 5
P3 2 6
P4 1 9
Preguntas ?