Tarea - 3 Actividad intermedia trabajo colaborativo 2
1. SISTEMAS OPERATIVOS
CÓDIGO: 301402
Tarea 3 - Actividad intermedia trabajo colaborativo dos
Presentado al tutor (a):
JAIME JOSE VALDES
Entregado por el (la) estudiante:
HÉCTOR FABIÁN PINTO OSPINA
Código: 1112764441
Grupo: 301402_16
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MARZO 2021
UDR - CALI
2. 1. Definir los siguientes ítems.
Que son procesos.
Un proceso es una instancia de ejecución de un programa, caracterizado por su contador de
programa, su palabra de estado, sus registros del procesador, su segmento de texto, pila y
datos, etc.
Los elementos de un proceso son los siguientes:
➢ Una identificación única para el proceso, a menudo numérica.
➢ El comportamiento definido por el programa.
➢ El estado, que consiste en la memoria asignada y en los valores de los registros del
procesador.
Definir los 4 eventos que provocan la creación de procesos.
Existen cuatro sucesos principales para la creación de un proceso:
➢ Inicialización del sistema: Cuando se arranca un SO se crean varios sucesos.
➢ Ejecución de una llamada al sistema para crear procesos por parte de un proceso en
ejecución.
➢ Solicitud de un usuario para crear un proceso por medio de comandos o una interfaz
gráfica.
➢ Inicio de un trabajo por lotes automáticamente.
3. Por cuantos estados está conformado un proceso.
Transiciones de estado de los procesos
➢ Nuevo: El proceso se acaba de crear, pero aún no ha sido admitido en el grupo de
procesos ejecutables por el sistema operativo.
➢ Listo: El proceso está esperando ser asignado al procesador para su ejecución
ejecución.
➢ En ejecución: El proceso tiene la CPU y ésta ejecuta sus instrucciones.
➢ En espera: El proceso está esperando a que ocurra algún suceso, como por ejemplo la
terminación de una operación de E/S.
➢ Terminado: El proceso ha sido sacado del grupo de procesos ejecutables por el
sistema operativo. Después de que un proceso es marcado como terminado se
liberarán los recursos utilizados por ese proceso, por ejemplo, la memoria.
Definir las 4 condiciones para la terminación de un proceso.
Las condiciones usuales por la que un proceso debe terminar son:
➢ Salida Normal: Ocurre cuando un propio algoritmo del programa considera que debe
concluirse la ejecución.
4. ➢ Por un error critico: Sucede cuando el programa detecta una situación que le impide
seguir con su operación normal y debe proceder a ejecutar la funcionalidad que le
permita recuperar todos los recursos posibles y terminar su ejecución con el menor
impacto negativo posible del sistema.
➢ Por una condición de excepción: Ocurre cuando, ante diversas situaciones
inesperadas por el algoritmo, el proceso procede a terminar, incluso se existe un
procedimiento de recuperación.
➢ Recibir una señal de otro proceso: Ocurre cuando algunos procesos tienen autoridad
para enviar señales a otros procesos; el comportamiento básico al recibir una de estas
señales es ejecutar una función asignada a ese tipo de señal y luego terminar el
proceso.
Realizar un cuadro comparativo entre los sistemas operativos Unix, Linux y
Windows donde la finalidad sea definir las jerarquías de procesos.
COMPARACION (JERARQUIA DE PROCESOS DE LOS SISTEMA OPERATIVOS)
Unix Linux Windows
En la familia Unix se distingue entre crear
procesos y ejecutar nuevos programas.
En Linux cada proceso tiene un proceso
padre.
Todos los procesos son controlados por un
bloque de control EPROCESS
La llamada al sistema para crear un nuevo
proceso se denomina fork ().
Crea un nuevo proceso (Hijo) fork. Son varias estructuras relacionadas:
EPROCESS System Space.
(KPROCESS, W32PROCESS, PEB Process
Environment Block User Space)
Esta llamada crea una copia casi idéntica del
proceso padre.
Añade proceso al PBC de proceso del
sistema hijo a la tabla de procesos
En la creación prepara el bloque EPROCESS
y prepara el espacio inicial de direcciones.
Ambos procesos, padre e hijo, continúan
ejecutándose en paralelo.
Almacena la dirección de retorno del
padre en el PBC del padre
Crear el bloque KPROCESS
5. El padre obtiene como resultado de la
Llamada a fork () el pid del hijo y el hijo
obtiene 0.
Envía el código 0 al proceso hijo Mapea los recursos del executive al espacio
de direcciones (Ntdll.dll, Nat. Language, etc).
Algunos recursos no se heredan (p.ej. señales
pendientes).
Devuelve el ID del proceso hijo al padre Prepara el PEB y encadena el EPROCESS
(aunque todavía no puede ejecutar).
El proceso hijo puede invocar la llamada al
sistema exec*().
Devuelve control al proceso padre Crear el Thread Inicial e incrementa la thread
count del proceso.
Sustituye su imagen en memoria por la de un
programa diferente.
Cambia la imagen de M de un proceso
usando como “recipiente” uno previo”
Prepara un Executive Thread Block
(ETHREAD) y le asigna un id.
El padre puede dedicarse a crear más hijos, o
esperar a que termine el hijo.
Libera imagen M del proceso y lee el
ejecutable
Prepara un Thread Environment Block (TEB)
Wait () lo saca de la cola de “listos” hasta que
el hijo termina.
Crea una imagen M en PBC y carga
secciones. texto y. datos
Mapea la dirección de comienzo.
Los hijos del proceso terminado pasan a
depender del proceso init.
Crea una pila inicial U- Crea una pila S:
dir. Principio programa
Inicializa prioridades y características que
dependen del sistema (afinidad, seguridad)
El proceso finalizado pasa a estado Zombie
hasta que el proceso padre recoge su código
de finalización.
Inicio PBC: regs.; PC en dir SO: Reti Notificar al Subsistema y crea las estructuras
para que CRSS lo maneje.
Cuando el padre obtiene la información
del hijo, se procede a eliminar las
estructuras de datos
Prepara el bloque W32PROCESS.
Llamada al sistema wait () Muestra el cursor de “starting” por 7
segundos.
Bloquea al proceso hasta que termina
el/un hijo y Devuelve el pid del hijo
finalizado y
Si el proceso no crea una ventana, vuelve al
cursor original.
Inicializa el Heap y demás estructuras de
runtime.
Carga las DLLs necesarias:
6. 2. Realizar los siguientes ejemplos y evidenciar con imágenes el paso a paso:
Ejecute 5 procesos en su computador, luego en una tabla describa la siguiente
información:
1. PROCESO –Visual Studio 2019
Búsqueda del programa
y las inicializa llamando a su entry-point
DLL_PROCESS_ATTACH. – si es .net
interpreta los XML asociados a las DLL (o
assemblies).
Prepara un Asynchronous Process Call (APC)
para comenzar la ejecución.
Función Win32 en Kernel32.dll .
Crea el stack e inicializa el contexto.
Inicializa ETHREAD y deja al thread en
ready.
Al resumir la ejecución:
Ejecuta los “Pasos Finales” de la creación de
un proceso.
11. Ejecucion del programa
Resumen de procesos
Tabla de procesos del computador
PROCESOS % CPU % MEMORIA % DISCO % RED % GPU
VISUAL STUDIO 2019 7,8 353,4 MB 0 MB/s 0,1 Mbps 4,7
MICROSOFT SQL
SERVER 18
0 84,4 MB 0 MB/s 0 Mbps 0
PSEINT 0 7,2 MB 0 MB/s 0 Mbps 0
BLEND FOR VISUAL
STUDIO
6,9 348,3 MB 0 MB/s 0 Mbps 4,7
PYTHON 3.7 0 9,6 MB 0 MB/s 0 Mbps 0
12. Realizar el siguiente ejemplo: Desactivar las animaciones que trae por defecto
Windows y que consume recurso del ordenador.
DESACTIVAR ANIMACIONES
Paso 1 – Buscar configuración de accesibilidad en el menú de búsqueda de la barra de tareas
Paso 2 – Desactivar las animaciones de Windows
13. Paso 3 – Abrimos el panel de control
Paso 4 – Entrar a sistema y seguridad
Paso 5 – Clic en Sistema
14. Paso 6 – Dar clic en configuracion avanzada del sistema
Paso 7 – Clic en configuración
Paso 8 – Desactivar animaciones, dar clic en aplicar y aceptar
15. 3. Realizar un mapa conceptual donde se pueda evidenciar como se realiza la
comunicación y sincronización entre procesos en un sistema operativo. El mapa
conceptual debe contener:
(Condiciones de carrera, regiones críticas, exclusión mutua con espera ocupada,
dormir y despertar, semáforo, monitores, transmisión de mensajes y barreras).
16. 4. mapa metal donde de los procesos de planificación.
Actividad colaborativa
1. Realizar un cuadro comparativo entre los siguientes algoritmos de planificación
y luego defina cuál es el mejor.
Algoritmo de planificación de procesos
Algoritmo de la peluquería (Primero en llegar primero en ser servido)
Algoritmo el más corto primero
Algoritmo Colas multinivel
17. Comparativos algoritmos de planificación
Algoritmo de planificación
de procesos
Algoritmo de la peluquería
Primero llegado, primero
servido
Algoritmo el más corto
primero
Algoritmo Colas multinivel
Cuando tenemos más de un
proceso en condiciones de
ejecutar, debemos escoger uno
de entre ellos.
Es un mecanismo cooperativo,
con la mínima lógica posible.
Al igual que en el algoritmo
FIFO las ráfagas se ejecutan sin
interrupción
Se emplea en prácticamente
todos los planificadores en
uso hoy en día
Para escogerlo empleamos un
algoritmo de planificación.
Cada proceso se ejecuta en el
orden en que fue llegando y
hasta que suelta el control.
sólo es útil para entornos
batch. En los entornos batch se
pueden hacer estimaciones del
tiempo de ejecución de los
procesos.
Un proceso nuevo entra en la
red de colas al final de la
primera cola.
Estos algoritmos pueden usar
prioridades.
El despachador es muy simple,
básicamente una cola FIFO.
Cuando se activa el
planificador, éste elige la ráfaga
de menor duración. Es decir,
introduce una noción de
prioridad entre ráfagas.
Se desplaza en esa cola
mediante Round Robin hasta
que obtiene la CPU.
En este caso a cada
proceso se le asigna una
prioridad y los procesos de
mayor prioridad tendrán
preferencia sobre los de menos.
Reduce al mínimo la
sobrecarga administrativa.
Minimiza el tiempo de
finalización promedio
Si el trabajo termina o cede la
CPU para esperar la
terminación de una operación
de E/S o de algún evento, el
trabajo abandona la red de
colas.
La prioridad de un proceso se
puede modificar a lo largo de
su vida, para evitar que un
proceso de baja prioridad nunca
llegue a ejecutarse debido a que
Incluye tanto al tiempo
requerido por el planificador
para seleccionar al siguiente
proceso como el tiempo
Este algoritmo sólo es óptimo
cuando se tienen
simultáneamente todas las
ráfagas.
Si el cuanto expira antes de que
el proceso ceda
voluntariamente la CPU, el
proceso se colocará al final de
la cola del siguiente nivel.
18. los de alta prioridad
monopolizan el procesador.
requerido para el cambio de
contexto.
Otra característica de un
algoritmo de planificación es la
expropiación.
El rendimiento percibido por
los últimos procesos en llegar
resulta inaceptable.
Favorece a los procesos cortos.
Sin embargo, un proceso
largo puede esperar mucho
tiempo antes de ser atendido
El proceso será atendido otra
vez cuando llegue a la cabeza
de esa cola si está vacía la
primera.
Podemos definir
un algoritmo de planificación
como expropiativo si podemos
retirar un proceso que se está
ejecutando para introducir otro
nuevo.
Este algoritmo dará servicio y
salida a todos los procesos
siempre que 𝜌 ≤ 1.
Cuando un proceso se bloquea
esperando una operación de
E/S, sigue en ejecución, y la
información de contabilidad del
mismo sigue alimentándose.
Mientras el proceso utilice todo
el cuanto, proporcionado en
cada nivel, continuará
desplazándose al final de la
siguiente cola inferior.
Un algoritmo de planificación
se suele estudiar algunos
parámetros
En caso de que se sostenga
𝜌 > 1, la demora para iniciar
la atención de un proceso
crecerá cada
vez más, cayendo en una cada
vez mayor inanición.
Asocia a cada proceso el
tiempo de ráfaga de CPU
Por lo general, existe una cola
en el nivel más bajo en la cual
el proceso circula por turno
rotatorio hasta que termina.
Tiempo de espera: Tiempo
que el proceso está parado o en
espera desde que se lanza hasta
que finaliza su ejecución.
Tiene características
claramente inadecuadas para
trabajo interactivo.
Selecciona el proceso con
menor ráfaga de CPU
El cuanto asignado a un
proceso cuando pasa a una cola
de nivel inferior alcanza un
valor mayor.
Tiempo de retorno: Tiempo
que transcurre desde que el
proceso se lanza hasta que
finaliza su ejecución. Se puede
ver como la suma del tiempo de
espera más el tiempo
de ejecución.
Al no requerir de hardware de
apoyo (como un temporizador)
sigue siendo ampliamente
empleado.
En caso de empate aplica FIFO Cuanto más tiempo se
encuentre un proceso en la
red de colas más grande será el
cuanto asignado cada vez que
obtenga la CPU
19. Productividad: Número de
trabajos realizados por unidad
de tiempo.
la CPU se asigna a los procesos
en el orden en el que la
solicitan.
Algoritmo no expulsivo Los procesos de las colas de
nivel superior tienen mayor
prioridad
Uso de la CPU: Porcentaje de
tiempo que el procesador pasa
ejecutando procesos.
En esencia hay una sola cola de
procesos listos.
Algoritmo no apropiativo que
supone que los tiempos de
ejecución se conocen de
antemano.
Un proceso situado en una cola
no puede ejecutarse a menos
que estén vacías las colas de
nivel superior.
Cada proceso tiene asignada
una prioridad.
Cuando el primer trabajo entra
al sistema desde el exterior en
la mañana, se inicia de
inmediato y se le permite
ejecutarse todo el tiempo que
desee.
Cuando hay varios trabajos de
igual importancia esperando a
ser iniciados en la cola de
entrada, el planificador
selecciona el trabajo más corto
primero.
Un proceso en ejecución será
desposeído por un proceso que
llegue a una cola superior.
En la selección : proceso en
cola de listos que tengan mayor
prioridad.
No se interrumpe debido a que
se ha ejecutado demasiado
tiempo.
Multitarea cooperativa El mecanismo debe favorecer a
los procesos limitados por la
E/S para lograr un buen
aprovechamiento de los
dispositivos y una respuesta
buena para los usuarios
interactivos.
Existe versión no expulsiva y
expulsiva. Si proceso pasa a
listo o actual baja su prioridad
(3, 4 y 5)
A medida que van entrando
otros trabajos, se colocan al
final de la cola.
Sabemos cuánto tiempo va a
requerir cada proceso
los procesos limitados por la
E/S entrarán en la red con
prioridad alta y se les asignará
rápidamente la CPU.
Las prioridades pueden ser
estáticas o dinámicas.
Si el proceso en ejecución se
bloquea, el primer proceso en
la cola se ejecuta a
continuación.
Puede mantener la contabilidad
de los procesos incluso tras
entregarlos de vuelta al
agendador.
El tamaño del cuanto de la
primera cola se elegirá lo
suficientemente grande para
que la gran mayoría de los
trabajos limitados por la E/S
generen una petición de E/S
20. antes de que expire el primer
cuánto.
Prioridad puede venir dada por
factores externos o internos.
Cuando un proceso bloqueado
pasa al estado listo, al igual que
un trabajo recién llegado, se
coloca al final de la cola.
Punto fuerte: Minimizar tiempo
de espera.
Cuando el proceso solicita
E/S, abandona la red y ha
obtenido un tratamiento
favorable, tal como se deseaba.
Puede producir inanición:
“Envejecimiento”: Prioridad
aumenta con el tiempo.
La gran fuerza de este
algoritmo es que es fácil de
comprender e igualmente
sencillo de programar.
¿Cómo se conoce a priori la
duración de la próxima ráfaga?
• Estimaciones a partir de las
anteriores.
Son ideales para separar
procesos en categorías basadas
en su necesidad de la CPU.
Punto fuerte: Proporcionar
grados de urgencia.
Con este algoritmo, una sola
lista ligada lleva la cuenta de
todos los procesos listos.
En un sistema de tiempo
compartido, cada vez que un
proceso abandona la red de
colas puede “marcarse” con la
identidad de la última cola en
donde estuvo.
Para elegir un proceso a
ejecutar sólo se requiere
eliminar uno de la parte frontal
de la cola.
cuando el proceso entra de
nuevo en la red de colas, puede
enviarse directamente a la cola
en la cual terminó su operación
por última vez.
Para agregar un nuevo trabajo o
desbloquear un proceso sólo
hay que adjuntarlo a la parte
final de la cola.
Responde a los cambios en el
comportamiento del sistema
que controla.
21. Definición del mejor algoritmo de definición
Algoritmo de la peluquería Primero llegado, primero servido, la estructura FIFO ayuda a su
fácil implementación, para ejecutar este algoritmo solo se necesita mantener una cola con los
procesos listos, ordenados por tiempo de llegada, es utilizada usualmente en sistemas de
gestión de inventarios ( Sistemas WMS) en compañías que manejan gran cantidad inventarios
y que requieren ser controlados en su jerarquía de proceso FIFO.
3. Mapa mental de la administración de la memoria y los diferentes esquemas de
administración de memoria que existen.
22. Bibliografía
Castellanos L. (2014). Sistemas Operativos. Febrero 02, 2021, de Dr. Luis Castellanos Sitio
web: https://luiscastellanos.files.wordpress.com/2014/01/sistemas-operativos-luis-
castellanos.pdf
Muñoz López, F. J. (2013). Sistemas operativos monopuesto. McGraw-Hill España.
https://elibro-net.bibliotecavirtual.unad.edu.co/es/lc/unad/titulos/50229
Piozzi F. (2019). Sistemas Operativos II. Marzo 29, 2021, de
https://www.profesores.frc.utn.edu.ar Sitio web:
https://www.profesores.frc.utn.edu.ar/sistemas/ingsanchez/SOP/Archivos/SOPII.pdf
Universidad de Oviedo. (2021). Procesos. Marzo 28,2021, de ATC Sitio web:
http://www.atc.uniovi.es/telematica/2ac/Apuntes-y-Ejercicios/T08-Procesos.pdf
Sol Llaven, D. (2016). Sistemas operativos: panorama para la ingeniería en computación e
informática. Grupo Editorial Patria.
https://elibronet.bibliotecavirtual.unad.edu.co/es/lc/unad/titulos/40429