procesos

Andres Segreda www.youtube.com

Resumen Breve

Este video explica los procesos en sistemas operativos, abordando cómo se gestionan múltiples procesos simultáneamente y los problemas que surgen, como la calendarización y los deadlocks. Se define el sistema operativo como el administrador de recursos, facilitando la interacción entre software y hardware.

  • Se discuten los componentes de un proceso: código, datos y contexto, y cómo el sistema operativo aísla y protege los procesos.
  • Se exploran los estados básicos de un proceso (nuevo, listo, corriendo, bloqueado, terminado) y se introduce el concepto de suspensión para optimizar el uso de la memoria RAM.

Introducción a los Procesos en Sistemas Operativos

El video introduce el tema de los procesos en los sistemas operativos, destacando su importancia y relevancia dentro del curso. Se plantea la pregunta de qué sucede cuando múltiples procesos se ejecutan simultáneamente en un computador, mencionando posibles problemas como la calendarización y los deadlocks. Se enfatiza la necesidad de prestar atención al tema, considerándolo uno de los más importantes del curso.

El Sistema Operativo como Administrador de Recursos

Se define el sistema operativo como el administrador de los recursos del computador, permitiendo que las aplicaciones utilicen el hardware de manera eficiente. El sistema operativo actúa como intermediario entre el software (aplicaciones) y el hardware (dispositivos físicos), exponiendo una capa uniforme que simplifica el desarrollo de aplicaciones. Esto permite que los desarrolladores se enfoquen en un sistema operativo específico, garantizando la compatibilidad con una amplia gama de hardware. Además, el sistema operativo permite la ejecución concurrente de varias aplicaciones, dando la ilusión de paralelismo mediante la calendarización de tareas.

Componentes de un Proceso: Código, Datos y Contexto

Se describen los tres componentes principales de un proceso: el código (instrucciones), los datos (información generada durante la ejecución) y el contexto (metadatos que el sistema operativo utiliza para identificar y gestionar el proceso). El código es compartido entre múltiples instancias del mismo programa, mientras que los datos y el contexto son únicos para cada proceso. El sistema operativo aísla los procesos, asignando memoria virtual y protegiendo contra accesos no autorizados.

Aislamiento y Segmentación de la Memoria

Se explica cómo el sistema operativo aísla los procesos, asignando segmentos de memoria independientes para cada uno. Esto evita que un proceso interfiera con otro, garantizando la estabilidad del sistema. Se menciona el concepto de memoria virtual, que permite a los procesos acceder a más memoria de la que está físicamente disponible. El contexto de un proceso incluye un identificador único (PID) y otra información relevante para su gestión.

El Process Control Block (PCB)

Se introduce el Process Control Block (PCB), una estructura de datos que contiene toda la información necesaria para gestionar un proceso. El PCB permite al sistema operativo rastrear la ubicación de la memoria, el estado y los recursos asignados a cada proceso. Esto es fundamental para la multitarea y la calendarización de procesos.

Estados Básicos de un Proceso

Se describen los estados básicos en los que puede encontrarse un proceso: nuevo, listo, corriendo, bloqueado y terminado. Un proceso pasa por diferentes estados a medida que se ejecuta, esperando recursos, utilizando el procesador o finalizando su tarea. Se explica cómo el sistema operativo gestiona las transiciones entre estos estados.

Diagrama de Dos Estados: Corriendo vs. No Corriendo

Se presenta un modelo simplificado de dos estados para un proceso: corriendo (en ejecución) y no corriendo (en espera). Este modelo ilustra cómo un proceso pasa de un estado a otro, dependiendo de si está utilizando el procesador o esperando su turno.

Creación y Terminación de Procesos

Se explican las razones por las que se crean procesos, incluyendo el inicio de sesión del usuario, las solicitudes del sistema operativo y el "engendramiento" (spawning) de procesos hijos por parte de procesos padres. También se describen las formas en que un proceso puede terminar, ya sea de manera exitosa (normal) o debido a errores (abnormal).

Diagrama de Tres Estados: Introducción al Estado Bloqueado

Se introduce el estado "bloqueado" como una extensión del modelo anterior. Un proceso se bloquea cuando está esperando un evento externo, como la finalización de una operación de E/S. Esto permite que el procesador se dedique a otros procesos mientras el proceso bloqueado espera.

Diagrama de Cinco Estados: Nuevo, Listo, Corriendo, Bloqueado y Terminado

Se presenta un diagrama más completo con cinco estados: nuevo, listo, corriendo, bloqueado y terminado. Se explica cómo un proceso transita entre estos estados, desde su creación hasta su finalización.

Suspensión de Procesos: Optimización del Uso de la Memoria RAM

Se introduce el concepto de suspensión como una forma de optimizar el uso de la memoria RAM. Cuando la memoria escasea, el sistema operativo puede suspender procesos bloqueados, moviéndolos a la memoria secundaria (disco duro) para liberar espacio en la memoria principal.

Diagrama de Seis Estados: Introducción al Estado Suspendido

Se añade el estado "suspendido" al diagrama, creando un modelo de seis estados. Un proceso suspendido no está en la memoria RAM y debe ser reactivado antes de poder continuar su ejecución.

Diagrama de Siete Estados: Combinación de Bloqueo y Suspensión

Se presenta el diagrama final con siete estados, que combina los conceptos de bloqueo y suspensión. Un proceso puede estar bloqueado y suspendido al mismo tiempo, esperando un evento y sin estar presente en la memoria RAM.

Resumen de los Siete Estados de un Proceso

Se ofrece un resumen de los siete estados de un proceso, repasando las transiciones entre ellos y los factores que influyen en cada estado. Se destacan los conceptos clave de calendarización, bloqueo, suspensión y swapping.

Summarize any YouTube video in seconds

Get summaries like this one for any video, in your language, with the free Summ app.

Download on the App Store
Get it on Google Play

Transcript

YouTube Transcript Generator

0:00 buenas estudiantes el día de hoy hablaremos sobre una de las partes más importantes en los sistemas operativos como hemos visto en los videos anteriores este video Tratará sobre los procesos y sobre todo Qué pasa cuando un proceso corre en un computador Que ejecuta varios procesos al mismo tiempo habíamos dicho que un proceso era un programa en ejecución Y entonces aquí las preguntas es qué pasa cuando yo tengo esos varios procesos ejecutándose de manera simultánea tendré problemas de cómo los calendariza cuál va primero que otro Qué pasa si un proceso depende de que otro proceso termine y a la vez este de que él termine generando lo que llamamos un deadlock Y esto es en lo que estaremos hablando el día de hoy por cierto en el tema de la semana es uno de

0:47 los temas más importantes de todo el curso por lo que les pido por favor poner la debida atención y realmente tratar de sacarle el provecho de esta forma si recordamos cuál era la definición de un sistema operativo que era quién administra los recursos del computador para que las aplicaciones puedan utilizarlo vemos que tenemos tres elementos importantes en lo que es el mundo computacional por una parte lo que llamamos el software o la parte de aplicaciones Por otra parte el Hardware o ya los dispositivos físicos y en el medio el sistema operativo que es quien va a permitir que el software todo lo que son los programas las tareas los procesos que van a ejecutarse las secuencia de instrucciones puedan ser

1:33 administradas para que usen de manera correcta calendarizado y puedan compartir el recurso con otros softwares o aplicaciones con los recursos de Hardware así el sistema operativo nos está permitiendo hacerle creer a las aplicaciones que están ejecutando en un espacio diferente o aislado y que entonces no importa si mi computadora es una amd o una Intel Eso sí con la misma arquitectura Pero no importa si es una amd un Intel si yo me compré una tarjeta de video de nvidia o si me tengo la tarjeta de nvidia que trae el procesador por defecto o si tengo una tarjeta de video de otra cuestión o si me compré un teclado me compré aquel teclado da igual para la aplicación porque la aplicación habla en una capa uniforme con con

2:20 llamada al sistema operativo que nos expone el sistema operativo que era Esto del Win appi en el caso de Windows o el Api y eh los abis Y entonces el sistema operativo nada más le dice a las aplicaciones Ey eh usted qué ocupa Ah guardar archivos Ah sí lo guardo archivos no importa cómo es la parte compleja de cómo guardo un archivo de cómo sueno los audífonos de cómo juego con mi joystick o con el Mouse o el teclado da Exactamente igual porque para las aplicaciones Ellos hablan con un lenguaje uniforme y estándar que elimina toda esa complejidad y de esta manera Entonces el sistema operativo hace su primera parte excelente que es que yo como desarrollador solo me preocupo en desarrollar para un sistema operativo y automáticamente soy compatible con un

3:05 gran número de Hardware de hecho hoy en día pues eh prácticamente los sistemas operativos ya traen incorporado lo que son los drivers que es el Software que me permitía manipular eh los dispositivos de Hardware Mouse y demás Cuando yo era niño Incluso el mouse había que ir instalar un Driver Claro ese Driver era compatible con Linux era compatible con Mac y había una versión compatible con Windows que no tenía que instalar o ya gracias a que los dispositivos de almacenamiento son bastante grandes pues la mayoría vienen en una biblioteca eh que Windows expone en el caso digamos de Windows igual para Linux y para Mac adicionalmente también esto nos permite que entonces varias aplicaciones puedan estarse ejecutando de una forma que parece ser

3:52 paralela esto lo hacen Gracias a que pueden estar haciendo switching de ejecútese un ratico ejecuta aplicación en un ratico ejecute esta aplicación un ratico ahora usted y esto nos permite dar a pensar que tenemos varios procesadores o que podemos ejecutar en forma paralela varios programas al mismo tiempo sin embargo no es paralelo es concurrente porque lo que hacemos Es que en vez de Paralelo que sería durante todo el tiempo se está ejecutando esta línea y durante todo el otro tiempo se ejecuta esta línea lo que hacemos Es concurrente ejecuto un poquito del a un poquito del B un poquito del a un poquito del B y así podría ser del a b c d a b c d a b c d por poner un ejemplo de muchas técnicas de calendarización

4:37 que vamos a ver pero nos dan una ilusión de que entonces el procesador está ejecutando Muchas tareas aún así yo solo tenga un hilo de procesamiento si recuerdan del curso de oac habíamos mencionado que yo solo puedo ejecutar una cosa por cada hilo y que Intel había metido el hyper trading que nos permite tener dos hilos en un cpu aquí ya no importa gracias al sistema operativo que administra la calendarización de los recursos puede hacer par ener que yo tengo una cantidad exagerada de procesadores y lo que está haciendo Es que le estando como pedacitos de tiempo en el que se pueda ejecutar esto nos prevé un montón de complicaciones Que estaremos analizando pero también nos trae unos beneficios que es que entonces yo puedo compartir

5:22 los recursos varias aplicaciones pueden estar haciendo uso del teclado simultáneamente obviamente solo en una scb sale Pero varias aplicaciones podrían estar leyendo de un archivo por supuesto vamos a ver problemas de Qué pasa si hay greit after right O sea si yo escribo después de haber leído o si yo re after gr O sea si yo leí después de haber escrito o si yo escribo después de haber escrito cuál escritura tuvo que haber pasado primero Son problemas que iremos explorando a lo largo del curso entonces hablemos un poco más a detalle de Qué es un proceso el proceso tiene tres grandes componentes o elementos realmente que podemos identificar fácilmente el primero es el código que ahorita es de lo que trata este diapositiva el segundo es eh la

6:10 Data asociada al código recordemos la edición de B Newman o de Harvard eh que hemos visto en el curso de oac verdad las instrucciones que viene siendo el código y los datos es eh lo que se va generando se va computando yo digo quiero sumar a + b y el dato sería 4 + 5 = a nueve memoria de datos 4 + 5 ahora nu9 la instrucción a + b que viene en el código Pero hay un tercer elemento que no se ve tanto sigue siendo dato pero ya no es datos de la ejecución sino más bien es dato del contexto y para qué es este contexto justamente para que el sistema operativo sepa de quién está hablando qué ocupamos nosotros para identificar una persona bueno fácilmente usamos un nombre verdad Pero a nivel de gobierno qué se utiliza un número de

6:56 cédula eh el número de identificación el momento c ya que tienen bueno de la tarjeta identificación de menores el proceso también tiene como un numerito de cédula llamado el process ID y tiene otra información como decir si la programa ya terminó si es el que está corriendo Quién es el usuario que lo abrió y otro tipo de esta información Como de metadata que le llamamos el contexto ahora enfocándonos en Qué es el programa Y por qué Cuáles son los beneficios sabemos que cuando estamos hablando del programa yo pudiera tener varias instancias por poner un ejemplo de Powerpoint abiertas de hecho es el en este momento que estoy grando todos estos videos Tengo varias instancias de Powerpoint abiertas es donde voy grabando eh cada uno de los videos de las presentaciones que voy haciendo y

7:42 eh es el mismo código el programa es exactamente el mismo lo que está cambiando es el componente de datos Y el de contextos pero el problema es exactamente el mismo entonces me permite compartir el código y que varios procesos puedan utilizar exactamente el mismo código y yo tener varios powerpoints abiertos en el caso de ustedes pudieran anotarlo si abren varios powerpoints o varios words o varios bloc de notas de una manera sencilla pudieran escribir en un lado y decir mira lo que yo escribí aquí no se ve en el otro y esto aplica justamente por esos componentes pero recordemos que la definición de un proceso es un programa en ejecución Por ende el programa es lo más importante del proceso pero cuando se ejecuta él genera

8:28 la Data propia del que el sistema operativo me permite en esta aislamiento decir Bueno A partir de este punto empieza el proceso y aquí yo voy a guardar toda la información y este que está aquí lo tengo aquí y este que está aquí lo tengo acá es el mismo proceso recuérdenlo de la memoria virtual que medio hablamos en los videos introductorios Entonces el PR di la memoria 5 sí cuál memoria 5 la mía no la c de toda la memoria que aquí sino la mía que yo estoy en este puntito Y entonces es esta memoria que viene acá Esto entonces cuando yo ejecuto este proceso lo primero que pasa es que cargamos esta memoria y un programa se carga en ejecución y buscamos ese espacio de memoria y decimos a partir de ahora yo voy a cargar de todo este cuaderno que son las páginas verdad

9:15 Bueno a usted lo va a poner en la página 25 Entonces te va ahora en esta página y cada vez que yo quiera volver a preguntar el proceso que voy Ah me Busco la página 25 Aquí está la página 25 listo y tengo la información el primer renglón segundo renglón tercer renglón No importa que yo Ha otro programa Exactamente igual tendré una página nueva Entonces el sistema operativo se encarga de cómo ubicar esta memoria en la memoria principal para que pueda ser ejecutada con los segmentos que hay además también nos tiene que dar los mecanismos para proteger que el programa de Word que yo tengo abierto el Powerpoint que yo tengo abierto no aparezca en otro powerp o no caso peor ustedes están aquí escribiendo su tesis ch llevan un mes dos meses y pueden oír

10:03 Spotify y la canción de Spotify Que obviamente van a hac símbolos raros empiezan a aparecer en el proceso que ustedes están corriendo de su tesis esto nos lleva a pensar y podemos deducir de esto que es superimportante que el sistema operativo diga no yo usted le di esta hoja y si se quedó sin esta hoja se quedó sin su memoria le puedo dar otra hoja pero si esta hoja ya la estaba usando el proceso 14 ya no lo puede usar nadie más porque en el momento en que yo utilice esa memoria pues quién va a escribir ahí el 14 O usted y bueno con la memoria virtual veremos que se puede hacer este overlaying Pero porque el sistema operativo sabe en la memoria principal que físicamente os Dos procesos podrían usar usando la memoria principal pero solo uno estaría en la memoria principal el otro estaría Ah yo

10:49 estoy en la memoria secundaria y cuando tengo que ir a la memoria principal ya está ocupada bueno tengo que hacer un reemplazo Y esa es una forma en que eh el sistema operativo me va ayudando a generar este proceso y que yo pueda ejecutar entonces un código eh varias veces y Por ende Este programa o este código Eh puede generarme varios procesos completamente independientes para Esto justamente hablábamos de lo que viene siendo el aislamiento donde entonces cada proceso está de manera separada o individualizadas con sus páginas Y entonces cada proceso va a tener su propio set de datos si yo escribí Hola Me llamo Andrés en un blog de notas y en otro pongo Eh mi número de teléfono es

11:36 tal ambos tienen su propia memoria y estas memorias están completamente separadas Entonces los segmentos de memoria hablemos de las de la misma stack que habíamos visto el x86 de las variables de memoria eh de la pila que lleva cada proceso viene funcionando de manera islada y segmentada de manera aparte a a ver ustedes en el curso de entro y taller alguna vez corrieron un programa de recursión y veían que si no ponían la condición de parada les daba stock overflow Pero qué pasaba se caía la computadora no Por qué Porque el sistema operativo estaba asignando los segmentos de memoria se acuerdan el segmento el C segment el Data segment el extra segment y el stack por poner un

12:24 ejemplo los estaban almacenando a nivel de cada proceso independiente de manera islada Entonces lo único que se caía era el programa que se estaba corriendo y era el único que les iba a dar el error de stack overflow así viene el contexto y como les comentaba el contexto es super importante para poder saber o describir Qué está pasando con el proceso y el contexto Entonces qué está pasando con el proceso cuál proceso Ah ocupo un identificador cuál identificador bueno el Pit el process identifi que es un identificador único que se le va a dar a un proceso durante por lo menos La corrida que este Obviamente si yo pago la compo pues ya se me podría reasignar otra vez aunque hay técnicas para hacer

13:11 que nunca se reasignan Pero la realidad como el uuidv4 es es un número que nunca se va a repetir Incluso si solo corre entre computadoras y demás Pero la realidad es que esto normalmente es un incremental e por facilidad y nada más que obviamente usted paga la compo y pues se reinician ciertos procesos que que se están ejecutando si yo quiero matar el proceso Kill este Pit si yo quiero eh ver qué está pasando con proceso pues puedo pedirme toda la metadata de ese proceso entonces toda esta Data nos genera una entidad que es el proceso en ejecución y es como yo lo describo Ah bueno este proceso está triste o está feliz que tiene un estado Yo puedo describirlos a ustedes Ah sí eh es blanco es hombre está feliz está

13:58 en primero sego segundo tercer año de ati etcétera estos datos pueden ir cambiando Ed puede crecer un poco más puede subir de peso un poco más pero eso no deja de ser su mente o sea el que usted haya subido más los datos suyos permanecen igual y su código genético permanece igual excepto que haya por ahí algún virus que cambie el código genético lo cual puede pasar también en este tipo de cosas por lo general los virus informáticos eh Nosotros somos seguimos siendo nosotros en nuestro código sigue siendo nosotros y la Data nuestro recuerdos y la Data viene siendo la Data nueva que podemos generar por ejemplo esta clase que ustedes están adquiriendo y ojalá les esté quedando grabada en su mente Entonces pero la Met de ustedes sigue siendo igual ustedes tienen un nombre tienen una identificación tienen una

14:44 nacionalidad son datos que simplemente los describen más no son ni su código genético que sería su código ni su eh memoria que vendría siendo la memoria de y para entonces yo poder encontrar en En dónde están los procesos así como en Costa Rica utilizaríamos digamos el tribunal supremo de elecciones verdad el Registro Nacional para que me emita la cédula y demás en los sistemas operativos se ha creado algo llamado el process control block o el bloque de control de procesos aquí básicamente está toda la información de estos procesos yo sé en dónde cuál es la página en que está es proceso entonces usted me dice Ah dónde está el proceso 25 en el control blog me fijo y sea el proceso 2025 está en tal página en tal dirección de memoria el esto es esencial

15:30 porque entonces me permite que yo pueda llegar y decir Bueno voy a matar ese proceso porque se pegó o voy a hacer eso que les decía voy a permitirle con el dispatcher que hablaremos más tarde que se ejecute ese pedacito de tiempo y ya deténgase pausa pausa ya no corra más y ahora corra el proceso 2025 y me lo traigo lo paso a que sea lo que va a estar eh De cara al procesador se corre esto lo pauso y luego lo vuelvo a eh a volver a poner a que continue entonces puedo estar haciendo y con varios prod entonces puedo estar ejecuta un poquito de este ahora ejecuta un poquito de este ahora ejecuta un poquito de este ahora un poquito de este ahora un poquito de este ahora un poquito de este ahora un poquito de este un poquito de este uno de este y uno de este y así sucesivamente el sistema

16:16 operativo sabe en dónde están los procesos gracias al bloque de proceso al control de procesos o al process control block al pcv y con esto Entonces yo nada más digo Bueno le toca a usted le toca a usted le toca usted le toca a usted le toca a usted le toca a usted le toca a usted le toca a usted porque sé dónde encontrarlos porque tengo la información de esta metadata Y eso es una característica fundamental para que yo pueda tener un sistema multioperador 15 y Qué es el proceso 15 Y dónde está el proceso 15 Oh No no tengo idea qu es el proceso 15 no y no lo puedo detener Pero si yo tengo el proceso 15 dice Ah el proceso 15 es este deténgase y ahora c el 25 y cuál es el 25 Ah no nos va es este con esto yo ya puedo entonces eh

17:05 poder controlar Qué proceso corre Qué proceso tiene Qué recurso y administrarlo de una manera correcta Así que esto es una de las partes claves de cualquier sistema que sea multitasking o multitarea de esta forma podemos decir que tenemos unos estados básicos en los que se puede encontrar un proceso y aquí quiero explicar algo un estado es que Okay yo tengo 100 procesos pero un proceso puede ser que el proceso está nuevo o que ya es un proceso que ya está terminando o es un proceso que es el proceso que está corriendo en el libro del procesador el estado como les decía si usted está feliz o está triste el estado es En qué posición en una maquinita de Estados eh Me encuentro como proceso en el curso de bas habíamos visto máquinas

17:51 de Estados sobre todo para el tema de paridad que decía si yo era eh rebón uno yo cambiaba de para impar para a no paridad Y si un cero me quedaba en el mismo lado Estos son estos estados y cuando los vayamos viendo tenemos que entender que en algunos estados Tendremos una cola ya ustedes lo tuvieron que haber visto en el curso de estructuras de datos eh Tendremos una cola donde eh los procesos están esperando y algunos solo serán un estado eh del que se esté ejecutando por poner un ejemplo aquí tenemos cinco básicos eh estados lo primero es que siempre vamos a recibir un nuevo proceso el proceso tiene que llevar un estado de Okay yo ya me están pidiendo que me solicite voy a crearme un proceso por qué Porque

18:37 alguien hizo login en la compo le dio doble clic al proceso esto se e tiene que ser admitido para ver tengo suficiente memoria RAM para que cargue HM tendré tod la memoria virtual puede entrar al proceso tengo los recursos que necesito Entonces el proceso entró en estado de nuevo que es esa solicitud y una vez que se admite ya entra a todo el flujo a donde de a ir cambiando de Estados hasta que él termine una vez que está aquí decimos Man Sí usted puede entrar tengo todo lo que ocupo para usted okay Yo estoy listo Entonces está como op Esponja estoy listo estoy listo estoy listo pero eso simplemente está listo en su contexto en la memoria RAM tenemos la dat Y tenemos el código cargado más no tengo suficiente procesador para él ahorita alguien lo está usando entonces él se mete en una

19:24 filita verdad Y dice ya es mi turno Y pasa el proceso de frente ya es mi turno No todavía no me quedan cuatro personas o cuatro procesos al frente y cuando pasa tercero pasa el segundo pasa el que está de primero y ya le toca a él ahora sí Entonces él dice ya yo estoy listo sí es su turno está listo sí estoy listo pasa Y a dónde pasa a running running es el proceso que está haciendo uso del procesador O sea es el que se está ejecutando en ese momento qué quiero decir con esto que si yo solo tengo un hilo de ejecución solo puedo tener un proceso en running si yo tengo un multi trining y tengo solo un Single Core pues tendría dos en el caso de Intel en el caso de las demás es uno a uno entonces si tengo ocho cores Pues podría tener ocho en estado runing todos los demás procesos que estén listos estarían en

20:09 listos oa todos los demás procesos que tengan todo lo que yo ocupe estarían en listos vamos a hablar de un estado que lo vamos a ir aumentando ese estado Waiting De hecho no lo vamos a ver en el primer diagrama que es la diapositiva que sigue porque sí sucede y lo vamos a ver en varias tipografías que son bloqueados suspendidos suspendidos y ready etcétera Pero decimos que un proceso está en espera que está esperando que algo ocurra que puede ser que ocurra y que el usuario le dé enter para continuar o puede ser que hoy estemos esperando que espacio para él Entonces digamos que es como un estado ahí de estoy en espera de que algo suceda y luego tenemos un estado en donde el proceso Ya termina como vemos de este lado tenemos nuevo y terminado y aquí como los que son de la vida entonces va a estar entre ready y está

20:55 está listo Sí sí sí okay corra tiene 10 segundos para correr corre 10 10 segundos se le acabó el tiempo Vuelvo a estar ready sigo corriendo corra pa no ocupa esperar a que alguien venga Okay pase a Waiting para que no pase a hacer fila en los que van a entrar a runing ahorita lo vamos a ver a nivel de los estados que es lo que voy a pasar explicando que es la parte más importante de la clase de hoy entender estos estados y para esto entonces hay una secuencia en la que vamos a ir cambiando estos estados como les decía en el paso número uno pues tiene que ser la parte de crear el proceso esto puede verse varias cosas por ejemplo una llamada del sistema el usuario hizo login el usuario hizo click en algún lado En este estado los recursos tienen que verse si dentro del process control block si hay

21:40 suficientes recursos o si van a existir y si se puede inicializar más adelante en algún otro de los videos en algún otro de los temas veremos Incluso un algoritmo del banquero y técnicas para evitar prevenir y en algunas de esas técnicas el proceso puede arrancar si no tiene los recursos o del todo no arranca si no tiene los recursos de después de esto se crea una política de calendariza o de calendarización esa política puede ser en corto mediano largo plazo también lo veremos en otro video más a detalle pero básicamente en corto plazo son las que están ya listas y simplemente están haciendo fila para ejecutar en mediano plazo es un tema bloqueo que lo hablaremos más tarde y en largo plazo son los que están nuevos o terminados porque más bien están muy largos del tiempo de ser ejecutados pero una vez

22:26 que ya lo calendariza entonces ejecutamos lo que llamamos o lo metemos en el proceso en que ya se puede ejecutar y se puede bloquear se bloquea porque yo estoy esperando que algo ocurra como e empecé a abrir un archivo y acuérdense en el dma que pasaba la memoria de lado a lado entonces esperando que el dma termine Entonces el procesador puede seguir haciendo algo más y el procesador y el sistema oper Pero si él está esperando a que se copie todo el archivo para continuar porque lo sacó de la fila para no estar gastando tiempos en alguien que no va a hacer nada porque está bloqueado Cuando usted esté listo lo paso otra vez a la fila de ready pero mientras tanto lo dejo en la fila de bloqueado lo vamos a ver un poquito más a detalle y luego está ya cuando se completa que es cuando ya terminó y no sé si recuerdan en

23:12 ensamblador que tenemos que poner la interrupción 4 ch porque si no el programa no terminaba y se quedaba pegado verdad Entonces esto es básicamente eh la secuencia de ejecución de un programa vamos a verlo con estados que se van a complicar un poquito más hasta llegar a los siete estados y lo importante es que entendamos cada uno de esos estados y vayamos interiorizando la importancia eh que tiene para el sistema operativo esos procesos de ejecución y el primer diagrama que vamos a ver es el de dos estados esto es muy básico o está corriendo o no está corriendo recordemos que el que está corriendo es el único que está siendo ejecutado por el procesador si no está siendo ejecutado por el procesador está en el estado de no corriendo y aquí podemos ver el diagrama de flujo de cómo es esa

23:57 transición de Estados entra y aquí asumimos que se admitió estamos haciéndolo muy muy pequeño que se admitió y si me toca mi correr Entonces el sistema perd me dice e es su turno Yo estoy en la fila le toca a usted pasa corre y aquí tenemos en fila verdad Y entonces el sistema operativo le dice solo Ed está corriendo y entonces solo usted está corriendo se le acabó el tiempo ahora corre se le acabó el tiempo entonces ahora correse se le acabó el tiempo entonces solo correse entonces este estado está desde la vista de un único proceso si es este proceso que está ocurriendo pasa a ha serer fila ya no está corriendo por qué Porque el sistema operativo pidió pausa pasan todos los demás él está acá y ya está primero en

24:45 la fila y le vuelve a decir ya es su turno es el primero en la fila ya el sistema operativo le dice que ya n más otra ve es de él se hace el dispach y vean que este Entonces es de un solo proceso en este caso de mi dedo y es de un solo proceso todos los procesos tienen este est este diagrama de Estados o está corriendo o no está corriendo por supuesto eso es una versión muy simplificada para que me logren entender qué es lo que realmente está pasando en niveles de Estados y entonces los procesos se ponen en una fila y cuando están en esa fila quedan en el estado de no running o sea Ellos tienen todos los que están no cor el procesador están en un estado de not

25:31 running y el procesador es el que dice lo despacha le toca a usted ahora sí es su turno y le dice ya suficiente como cuando uno jugaba piñate y uno le daan darle un par de golpes y alguien le decía uno ya que pase otro para que pueda disfrutar y estn todos haciendo fila pues justamente esa analogía la piñata es lo que está haciendo aquí el proceso cuando la piñata sería el procesador Por qué razones se crean las hemos comentado anteriormente Pero por qué razones se crean procesos bueno tenemos porque simplemente eh eh el usuario se logó que es el que les he dicho y dando se hace login pues empiezan a ejecutarse un montón de programas que tenemos en la computadora hecho muchas veces Esto es lo que la vuelve lenta en un inicio le tenemos que

26:17 abra Skype que abra teams que abra zoom que abra no sé qué el Spotify que abra el steams que abra Entonces todos es procesos abre la compo y empiezan a ejecutarse También tenemos procesos propios porque el sistema operativo los necesita eh Para poder seguir ejecutándose o seguir funcionando porque el usuario hace clic en ellos y además tenemos un tema que se llama engendr miento o spawning de procesos que básicamente es que un proceso Puede crear otro proceso de hecho la mayoría de las aplicaciones después lo veremos los procesos a su vez eh se los programas ya no solo son un proceso sino que son son varios procesos Por ende la definición de Qué es un proceso podría cambiar ligeramente a que

27:04 un proceso es un código en ejecución donde el código puede ser una parte de un programa eh Y aquí vemos los mecanismos cuando un proceso eh papá le llamamos el parent process decide a pedir al sistema operativo que se crea un nuevo proceso alguna técnica que se llama jacketing que la veremos más adelante o básicamente porque yo abrí una ventana nueva es verdad le doy la ventanita de en el Word donde me salen las imágenes eso es un proceso nuevo Entonces en ese proceso nuevo o en la línea de comandos ejecuta abrir algo este nuevo proceso es engendrado spawning Entonces ese proceso

27:50 que está engendrando es un proceso hijo acá es muy importante entonces entender que spawning quiere decir o engendr miento quiere decir que un proceso padre va a crear un proceso hijo Y entonces A eso le llamamos spawning que es de un proceso papá Yo tengo un proceso hijo y eh normalmente esto lo que hace es que en cierta forma hereda o tiene relación con los atributos y los recursos que están asociados al padre del proceso hijo pero siempre tienen su propio ID y su propio ejecución y la relación que vamos a tener entre ellos le llamamos un árbol de procesos acá les dejo una tarea

28:36 que tienen que presentar de manera individual que es instalar el process Explorer el Windows process Explorer verlo en formato de tri y poner el screenshot un proceso puede terminar por una de dos formas o porque completó todo de manera exitosa o porque ocurrió un error cuando termina de manera exitosa o una salida que es esperada normal eh se puede dar de tres maneras la más básica para nosotros es que nosotros mismos lo cerramos o sea el usuario dijo eh Ya no quiero voy a cerrar esta ventanita cierra el proceso la termina entonces pues y el proceso no corre más terminó de manera normal porque terminó según lo esperado la segunda forma es más bien cuando yo tenía procesos en batch

29:23 Recuerden que dejábamos que todo se ejecutara y yo nada más me podía ir y todo cuando él terminaba una instrucción que era el halt esta instrucción le dice e Ya ya terminé al sistema operativo Y entonces el sistema operativo sabe que el trabajo está terminado y que ya pudiera seguir con otro proceso y también hay una tercera que es una indicación de que está completo esto lo que hacemos Es indicarle al sistema operativo el proceso indica yo ya no tengo nada más que hacer Ya terminé de correr ya no es en el batch donde siempre así sio en uno normal Incluso en la computadora de nosotros y de manera normal el proceso dice ya no tengo nada más que hacer ahora qué hago dentro Lio al sistema operativo y sistema operativo yo no terminé no tengo nada más que hacer tome los recursos que yo tenía asignados las memorias que yo tenía

30:09 asignado y administr los para alguien más porque yo ya terminé de hecho eh muchos procesos background que nosotros corremos y que no están permanente es ahí pues no sé un respaldo el respaldo se eleva se hace solo sin interacción del ser humano y cuando termina pues entonces ya devuelve los recur usar el sistema operativo Para que otro proceso pueda usarlo en su lugar y estas serían las razones por las que un proceso puede terminar de una manera más bien abnormal eh la primera porque se queda sin recursos recursos De qué tipo ocupo más memoria del que ya hay o por ejemplo yo le dije mira el proceso yo proceso voy a durar como 5 segundos y resulta que llevo 50 segundos y el sistema operativo

30:54 dice suave suave suave suave Me dijo 5 segundos está durando 50 ust me está monopolizando todos los recursos que yo le asign usted me hizo una petición que yo accedí de 5 segundos y lleva 50 y no sé si lo han notado que uno le sale Este programa no responde y le dan a uno como desa esperar más tiempo verdad ahora antes lo hacían automático ahora uno le preguntan el tal programa no responde desea esperar más tiempo y no verdad se pegó o a veces pues es un proceso que tal vez es muy largo y entonces supera ese tiempo que se le ha dado y el sistema dice Ma ya duró mucho y aquí no ha salido por eso no se hace la pregunta normalmente eso es uno de los más típicos que ocurren También tenemos cuando es una intervención de eh el externo cuando vemos las políticas eh de cómo tratar con los deadlocks que

31:41 Recuerden que era esto como que el carro a bueno el eso a depende de un recurso que tiene b y b depende de un recurso que tiene a entonces a no puede terminar y b no puede terminar porque Ocupan que el otro termine para poder continuar lo veremos más en la clase de delux con todavía más profundidad pero cuando esto ocurre un una de las formas de lidiar con el deadlock es ya detectándose le digo termine y con esa terminación que viene de afuera pues ya no tiene que esperar a que B termine porque B terminó a la fuerza pero terminó eh otra forma de hacerlo Eso lo veremos más adelante Qué pasa cuando esos procesos terminan eh o también cuando el proceso padre yo engendre un proceso hijo y este proceso

32:27 padre dice mira pero ya eh yo no lo necesito más podemos terminarlo Entonces lo plap y lo mata entonces esos son dos tipos eh digamos de por intervención externa eh pueden haber otras pero esas son como las dos más clásicas y la forma que nos pasa cuando somos malos desarrolladores son por errores de ejecución alguien puso una división entre cero y no puso el try and Catch o por cualquier cosa que no tenga un try and Catch traté de acceder a un archivo que no existía eh No sé cualquier errores aritméticos eh cualquier error que nosotros no metamos dentro de entran Cacho y que pueda fallar esto nos va a generar un error en ejecución o por ejemplo en el de recurso límites el mismo del stack overflow y este pasa muy poco que es cuando yo trato de violentar Más bien una memoria o trato de violentar los

33:14 espacios que yo no puedo Entonces el sistema operativo para proteger su integridad y no dañar otros eh No dañar otros procesos al que le voy a caer encima como les Pon el caso del Word que yo escribiendo mi tesis y el Spotify entraba el sistema que hay algo raro este más Está tratando de violar lo voy a terminar ese ya en los sistemas modernos cuesta mucho que ocurra Ahora sí les contaba que los dos estados era una extracción muy muy simple una simplificación exagerada de los estados que realmente tiene un sistema operativo Bueno aquí tengo una intermedia esa todavía no es toda pero nos va a integrar un nuevo concepto que es un proceso bloqueado recuerdan que teníamos este mismo diagram y decíamos que tenemos un weing y yo les decía que ese weing pu vamos tener diferentes

33:59 definiciones aquí ya vamos a empezar a darle una nueva definición y básicamente es bloqueado Qué es bloqueado el sistema está esperando que algo ocurra perón el proceso para poder continuar Entonces ya medio les había explicado pero por ejemplo Qué pasa si yo tengo que esperar a que se descargue un archivo de internet o que se descargue la consulta que yo hago internet eh Para poder ejecutar que se voy a traerme las notas de todos mis alumnos del Quiz pasado y mientras y esas notas voy a sacar este promedio y la estadística el dashboard que les pasé yo extraigo estas notas extraigo eh esta información y eso Tiene tiene tiempo milisegundos o segundos pero durante esos milisegundos por qué yo voy a tener al proceso haciendo fila

34:44 estoy listo tengo todo lo que necesite entra el procesador y el procesador dice ejecuta Ah no es que no estaba listo sabes que no quedémonos hablando paja porque no hay nada que ejecutar el procesador y el sistema operativo dice no hagamos algo inteligente lo voy a pasar a una lista de bloqueo y puede ser una lista de multiblock queo entonces usted está bloqueado porque está esperando este archivo todo lo que est esperando red o est en esta en esta fila o en una cola a nivel eh de Estructura de datos eh todo lo que está esperando que alguien le de la tecla continuar un enter para continuar lo pasa a otra cola así cualquier evento que un proceso está esperando pasa a una cola especial por cada tipo de evento y entonces en vez de est gastando tiempo del recurso él no va a salir de

35:30 esa cola Hasta que el evento ocurra cuando ya pasa y ocurre en el evento el programa dice eh el primero que estaba porque tal vez tres estamos esperando que eran tres enters entonces el primero que estaba en hilo pues pasa y va al ready y va a la fila del Red de esta manera no gastamos tiempo en procesos que no van a avanzar durante ese momento Y que cuando les toque a ellos lo que van a hacer es desperdiciar tiempo porque no están listos no están ready que era el que teníamos arriba y aquí veríamos el diagrama ya de cinco estados como pueden ver hemos agregado tres estados antes partíamos desde nuevo ahora tenemos admitido antes terminamos en end ahora tenemos el exit o hal Verdad que es h en inglés y el estado de bloqueado que es

36:16 realmente el que nos está aportando aquí algo nuevo cuando un proceso está en estado nuevo es que pues por algunas estas razones de creación se y tiene que ser admitido hay suficientes recursos y hay memoria RAM para que pueda ser ejecutado una vez que esto es admitido pasa a ser fila en los procesos que están listos en la cola que está listo Cuando ya él es el primero que está en la fila el dispatcher le dice le toca a usted Y entonces pasa a correr y si en alguna de estas instrucciones el proceso eh tiene una espera cuando está corriendo y dice ah la instrucción que sigue corriendo en el código eh dice que está esperando que se

37:02 baje algo de internet en ese momento en particular el sistema dice gey Está bien Ed está esperando que pase un un evento pase a una cola de bloqueo de su evento entonces pasa a esperar esto y se pasa a tener entonces un estado de cómo está el estado del proceso 2025 Ah más está bloqueado Si el evento ocurre vuelve a estar listo al final de la cola hace la espera y cuando lo vuelve a pasar cor y el profesor dice Bueno pero como estamos haciendo esto de un poquito de uno un poquito de otro un poquito de uno un poquito de otro ya se le acabó el tiempo y vuelve la cola de ready y otra le toca y vuelve la cola de ready y otra le es el dispach que es el que se primero le toca está corriendo el procesador y vuelve la cola de ready así hasta que el programa dice y ya terminé

37:47 entonces él le dice al sistema operativo ahí cuando quiera puede liberar los recursos entonces pasa a un estado determinado para que el sistema operativo venga y haga los temas de liberar los cursos actualizar las tablas todas esas designaciones el proceso control block y demás cosas que vamos a ver lo libera y ahí termina este proceso de cinco estados es muy importante mencionar que ese todavía no es el complejo pero que ya es una buena aproximación porque hemos metido algo que nos permite bueno primero el nuevo y la salida y cómo se administran dentro de un sistema operativo verad que no solo nos enfocamos en running no en running Pero además estamos integrando un concepto importantísimo ya además manera formal que es proceso bloqueado otra vez un proceso bloqueado es cuando

38:32 yo estoy esperando a que cualquier evento ocurra que si tengo la instrucción de internet y necesito usarla para calcular unos datos ahí está mientras que no es carga dur un segundo segundo y esty bloqueado que si tengo que abrir un archivo y ir al archivo es ir a una memoria secundaria y eso toma unos milisegundos Bueno entonces Mientras tanto por qué yo voy a estar si yo opo en el orden de los nanosegundos o o de los de los microsegundos porque voy a esperar miles de tiempos a que usted vaya por el archivo mejor lo desplazo otros que estén en ready e que si tengo una tecla que está esperando si usted está esperando que alguien haga el evento de teclear para qué me vas a estar gastando tiempo en fila y quitándole ese cuón de tiempo que va a tener a otros procesos y esto como ven

39:19 ya nos empieza a funcionar en lo que viene siendo el paralelismo o más que el paralelismo porque es concurrencia en poder manejar múltiples programas de manera concurrente aunque sea solo una ahora imaginemos un escenario donde todo los procesos que están corriendo todos y ya tengo mi memoria RAM llena todos esos procesos con su contexto con sus datos Y con el código que están corriendo están bloqueados todos están esperando que que alguien impresione enter o que el disco duro haga algo o que me traiga un archivo internet o lo que sea qué sucede que como yo estoy esperando eso la memoria RAM que es la memoria principal de nada me sirve y tengo un montón de procesos en la línea de bloqueos y tengo algunos que están esperando ser admitidos y entonces lo más lógico sería

40:06 di pero si es está bloqueado pero que esté bloqueado Sigue estando en la memoria principal lo único que es diferente Es que el bloqueo no me va a utilizar el procesador pero está la memoria RAM pero me está gastando memoria RAM y está bloqueado Sí claro el proceso es hacer ese swapping entre pasar de la memoria virtual a la memoria secundaria toma tiempo di yo no se lo quiero hacer a todos Entonces qué pasa que me estoy quedando sin espacio m entonces hacemos justamente esto swapping cuando un proceso está bloqueado yo ya no tengo espacio en la memoria principal y tengo proceso bloqueados libero memoria pasando un proceso bloqueado a la memoria secundaria Por qué Porque pu está bloqueado y entonces de esta manera

40:53 gracias a la memoria virtual Pues el proceso sigue existiendo en la memoria principal pero virtual verdad está la memoria secundaria no está la memoria principal pero gracias a la memoria virtual sigue pareciendo que está ahí para el programa que dice por si yo estoy esperando que suceda un evento ent Mientras que el evento no sucede Qué importa Dónde está la memoria mientras que esté respaldada Pero qué importa que sea qué importa que sea un poquito más lento no importa y a eso le llamamos suspensión entonces a diferencia de bloqueo el bloqueo está en la memoria principal y está esperando a que ocurra un evento pero decimos que está suspendido cuando ni siquiera está en la memoria principal eso está muy lejos de ser ejecutado porque ni siquiera está en la memoria principal necesito cargarlo a la memoria principal desde la memoria secundaria para que

41:39 pase a estar en red y pueda ejecutarse pero como por si yo estoy esperando algo mejor le doy chance a alguien que si esté listo que no esté bloqueado prefiero darle más oportunidades a alguien más y a esto le llamamos entonces suspensión cuando un proceso no está en la memoria principal y para para suspender a un a un proceso hay varios criterios que podemos eh usar eh pero lo más importante que vamos a ver es que lo o le hacemos esta esta suspensión primero porque el usuario A veces lo lo así lo indica verdad un usuario puede decir que quiere suspender un programa cuándo cuando estamos haciendo de bugin ustedes se meten al process Explorer que les estaba comentando y en ese process

42:25 Explorer pueden llegar pausar el programa Y si lo están pausando automáticamente se suspe eh Y es una de las formas digamos que nosotros podemos controlar sobre todo usuarios avanzados verdad no es que usted va ahí en el administrador de en La Barrita tare administrador si podría ahorita tareas sce suspender no pero ya no se mete el administrador de tareas y podría suspenderlo porque uno dice más es algo que ahorita no quiero que me consuma recursos pero no quiero cerrarlo Entonces no quiere cerrarlo pero no quiere que le consuma recursos porque se está quedando sin recursos y va a jugar una partida de LOL y en esa partida de LOL o lo que jueguen eh ocupan varios recursos y tienen el proyecto que no quieren cerrarlo lo pueden suspender es una buena táctica y les libera memoria

43:10 pasa la memoria virtual puede ser porque el proceso padre lo pida o puede ser meramente por la necesidad de hacer swapping que tenga el sistema operativo para liberar memoria para que siga funcionando que era la que les explicaba en la diapositiva anterior y acá tenemos ya una versión casi completa Todavía no pero ya estamos muy muy cerca de El de seis estados 1 2 3 4 5 y 6 y lo que ven es que metimos un estado extra al de cinco que se llama suspendido entonces cuando no está cuando lo suspendemos le decimos que está inactivo Por ende la acción de activar es acá entonces viene siendo lo mismo si es nuevo se puede admitir Bueno

43:56 si se admite pasa a estar listo Cuando se y se ASUME que está listo porque recuerden que no se va a admitir si no está listo Entonces ya está listo se admite si se admite ya está la memoria RAM ojo que ready blocket y runing están en la memoria RAM exit in New ya no y suspender no Entonces se admite ya está la memoria RAM ya está en teoría todo lo que necesita empieza a correr le di el dispater Bueno ya corrió suficiente tiempo lechance otro más Time out viene acá hace fila le vuelve a tocar cuando le vuelve a tocar Deja estar en runing y ya ya no es ready ahora es corriendo ahora es el que está corriendo termina le dice otra vez Time out Y entonces Sigue estando todavía en ready é está listo para seguir corriendo Solo que no ha terminado y empieza a correr otra vez

44:42 y casualidad ocurre un evento espero a que sean las 3 de la tarde y entonces el estado queda bloqueado y apenas son la 1 de la tarde digamos faltan dos horas para eso eso y en eso vienen más procesos y más procesos y me quedó sin memoria RAM y entonces el sistema operativo dice Y ahora qué hago bueno de ahí tengo este proceso que tiene rato estar aquí bloqueado todavía sigo esperando lo voy a suspender no vas a perder por donde ibas voy a poder recuperar en un futuro Pero va a quedar como un proceso inactivo se pasa la memoria secundaria y toda la información de contexto de Data y de código que yo tenía de este proceso ya no ocupa espacio en la memoria RAM y Por ende eh Ya ahora

45:28 el proceso Eh puede admitir uno nuevo entonces se puede admitir otro proceso Obviamente que seguiría todo su fila hasta podría terminar y en algún momento este proceso que yo suspendí dice má ya son las 3 de la tarde y entonces dice se suspende y pasa ready se suspende y pasa ready Y entonces ya sigue el normal hasta que termine y sale acá hay un tema que podemos ver Y es que Qué pasa si yo tenía dos dependencias por poner ejemplo o ya hay memoria RAM y de repente Aunque yo me bloquee quién me dice a mí que todavía haya memoria RAM porque a ver y estoy suspendido y habrá suficiente memoria RAM para mí ya entonces si estoy suspendido y no hay suficiente memoria RAM Pues paso bloqueado otra vez eh es

46:15 un poco más complejo entonces agregamos un estado más que realmente lo vamos a llamar en dos estados digo un estado más porque tenemos dos estados de suspensión nos dan siete 1 2s 3 4 5 6 y 7 pero en estos siete que nos están dando podemos ver algo interesante aquí en el en este New puede ver dos cosas que pueden pasar el sistema se puede admitir hay suficiente memoria RAM no pero ya está nuevo pero no es suficiente memoria RAM Okay pasas a estar listo él no está esperando nada más él tiene todo lo que necesita pero no hay memoria RAM para usted Entonces pasas a estar suspendido sí está todo listo listo pasame mem Ram pasan listo y hay memoria RAM lo mismo va al runing en el runing dice

47:02 eh corre y se encuentra algo que dice que pasa es bloquearse y a donde se bloquea lo mismo Nos quedamos sin espacio y entonces decido suspenderlo Entonces ahora está bloqueado y suspendido y aquí pueden pasar dos cosas podemos llegar y decir Ah bueno ya hay memoria RAM Entonces ya hay memoria RAM vuelvo al bloqueado ah Bueno todavía no hay memoria RAM pero ya ocurrió el evento que me esta bloqueando ya son las 3 de la tarde okay Sigue estando en ready O sea ya no estás esperando a que ocurra las 3 de la tarde pero todavía no hay memoria para voz Entonces está suspendido Y entonces él puede pasar vea que di activo pasa de ready acá verdad Entonces él está ready y cuando ya haya memoria RAM se activa y

47:50 pasa para acá Aquí estaba bloqueado y si ya hay memoria se activa pero pasa a bloquearse lo de demás es Exactamente igual esta Line secita que viene aquí pasa muy rara vez por eso tiene otro color y es que un proceso está en runing y por alguna razón decía el sistema operativo sobre todo porque tal vez la persona en la ejecución decía pues ponerse en pausa sobre todo cuando es el depurador verdad que uno le pone el debug eh cuando está en debug pues queda como en pausa literal si han usado el debug de cualquier programa Y entonces estaba corriendo le dio una instrucción que hacía debug y lo pasó a ready suspendido de una vez como resumen del tema de la semana que la segunda parte vendrá la siguiente semana del mismo tema pero llegamos a un

48:35 buen Puerto en este momento y vamos a hacer un pequeño resumen vimos que un proceso tiene siete estados el primer estado es cuando es completamente nuevo en este momento por diferentes razones que también vimos que se puede crear porque se iniciaba el el computador los de program inos porque el usuario quería porque un proceso hijo podía pedirlo un proceso padre podía pedirlo de esas diferentes razones o una vez que el proceso se crea tiene que creá seele un contexto y un espacio en memoria donde va a caber el el código la Data y su contexto de esto donde tenemos estos elementos ya ubicados en la memoria el sistema operativo le prevé una

49:20 calendarización y pasa entonces al Estado de ready que quiere decir que él tiene todo listo para ejecutar de aquí Él va a ejecutarse por un chc Sito de tiempo y va a volver otra vez al Estado de ready al final de la fila donde van a estar todos los demás procesos que quieren ejecutar van saliendo de uno en uno y el que se está ejecutando pasa a tener el estado de ready los demás tienen estado de running pero que como a veces ocupamos cuestiones que son asincrónicas que no dependen del procesador Como abrir un archivo como esperar la tecla bajar de internet algo cualquier cosa que genere un evento eh dado Esto entonces el procesador decide bloquear esos procesos para sacarlos de El red y que no me estén gastando el

50:06 tiempo de cuánto de tiempo que yo le estoy dando para usar el procesador pero estando bloqueados siguen estando en la memoria RAM y puede pasar que eh yo me quede sin memoria RAM y di ahí si él está bloqueado por qué lo voy a tener en la memoria RAM mejor me traigo uno que esté ya listo o en estado ready entonces quedamos un estado de suspendido que a diferencia de bloqueo que es que está esperando a que ocurra un evento el suspendido es que no hay memoria RAM para que él esté en la memoria principal Entonces lo tenemos en la memoria secundaria vimos en los siete estados que de aquí podían pasar dos cosas o se activaba y seguía esperando el evento o sea se activaba de suspendido y bloqueo a bloqueo o vimos que de suspendido y bloqueo pasaba a ready y suspendido O sea ya no estoy esperando el evento pero

50:52 ahora estoy esperando que me den campo para mi memoria RAM también vimos que era engendrar un proceso lo que es spawning de un proceso que es que un proceso padre cree un proceso hijo y a esto se le conoce como spawning o engeni y también en resumen vimos eh que era el swapping que es entonces justamente cuando pasamos un proceso que está en la memoria principal a la memoria secundaria Estos son elementos muy claves Y probablemente de los conceptos más importantes el top tres de conceptos más importantes de todo el curso con esto Me despido por esta semana Espero que les haya gustado el video y muchísimas gracias

Share

YouTube Video Summaries