sincronización BACA — Transcript
Full transcript
- 0:02bueno muy buenos días ustedes se
- 0:04preguntarán que la sincronización vaca
- 0:06bueno ahora se van a enterar de qué se
- 0:10trata y de qué vamos a hablar en esta
- 0:14sincronización vaca muchas gracias
- 0:18bien que es la sincronización vaca la
- 0:22sincronización vaca en la ejecución
- 0:25sincronizada en el orden proceso de
- 0:28proceso a proceso se procesó a y así
- 0:32continúan indefinidamente
- 0:36estos son puntos suspensivos que quiere
- 0:39decir que se repite la ejecución en ese
- 0:43orden
- 0:44este por supuesto que ese orden es el
- 0:48orden en el cual el proceso de ejecuta
- 0:51su sección crítica después el proceso a
- 0:53ejecuta su sección crítica después
- 0:56después el proceso se ejecuta su sección
- 0:59crítica después el proceso ejecuta su
- 1:02sección crítica y así se repiten
- 1:04indefinidamente o hasta que ustedes
- 1:07pongan una condición de terminación para
- 1:09cada uno de los procesos teniendo
- 1:12digamos teniendo en cuenta que cuando un
- 1:15proceso termina lo que no tiene que
- 1:18suceder es el bloqueo indefinido de los
- 1:20otros procesos pero bueno eso después lo
- 1:22podemos hablar un poquito más en detalle
- 1:24en el código o ustedes se pongan digamos
- 1:27más
- 1:28entiendan un poquito en lápiz y papel
- 1:31cómo vamos a resolver esta
- 1:34sincronización de ejecución de la
- 1:35sección crítica
- 1:38en lápiz y papel bien
- 1:43lo vamos a hacer esto lo vamos a
- 1:45resolver con semáforos con procesos
- 1:49independientes en un entorno operativo
- 1:51linux pero primero pensando cuántos
- 1:54semáforos vamos a necesitar para
- 1:56resolver esta sincronización para
- 1:58resolver esta sincronización vamos a
- 2:00necesitar cuatro semáforos el semáforo a
- 2:04el semáforo ve
- 2:08el semáforo
- 2:11y el semáforo x
- 2:14ustedes lo pueden llamar como quieran el
- 2:16lápiz y papel es el lápiz y papel y cada
- 2:20uno puede ponerle el nombre que quiera
- 2:22otra cosa que tenemos que pensar en la
- 2:25inicialización de estos semáforos la
- 2:30inicialización va a ser el semáforo a
- 2:33inicial izado en 0 el semáforo be
- 2:37inicial izado en 1 el semáforo se
- 2:40inicial izado en 0 y el semáforo x
- 2:43inicial izado en 1
- 2:47esta va a ser nuestra inicialización
- 2:50y después vamos a poner en la sección
- 2:53crítica perdón en cada proceso vamos a
- 2:56poner la sección de entrada la sección
- 3:00crítica y la sección
- 3:04de salida si considerando que eso va a
- 3:08estar
- 3:09en cada proceso en un ciclo infinito que
- 3:15se repite indefinidamente o hasta que
- 3:18ustedes le pongan alguna condición de
- 3:20finalización entonces vamos a tener la
- 3:23sección crítica de cada proceso
- 3:26la sección crítica del proceso de la
- 3:28sección crítica del proceso a la sección
- 3:31crítica del proceso
- 3:34esta sección crítica no es semáforo si
- 3:38no es semáforo no no es este
- 3:42signal no eso quiere decir sección
- 3:45crítica vamos a poner una raya acá ahí
- 3:47arriba vamos a poner la sección de
- 3:49entrada aquí abajo vamos a poner la
- 3:51sección de salida la sección de entrada
- 3:54va a estar allá arriba la sección de
- 3:56salida matraca abajo y acá también
- 4:02bueno la sección de me va a quedar un
- 4:07poco desprolijo voy a voy a aprender a
- 4:10usar este
- 4:18para que no me quede tan desprolijo
- 4:21porque este usar el mago para escribir
- 4:25creo que es bastante complicado no es
- 4:28para mí
- 4:30voy a ahorrar plata y no voy a comprar
- 4:32una tableta digitalizadora
- 4:37bueno
- 4:39ahí estamos entonces
- 4:42cuál es la sección de entrada del
- 4:44proceso de la sección de entrada el
- 4:46profesor está formada por el testeo de
- 4:51los semáforos entonces vamos a hacer un
- 4:53wave del semáforo
- 4:57esto quiere decir semáforo ve aunque no
- 5:00parezca no
- 5:02y vamos a hacer un wave del semáforo
- 5:10y ahí está
- 5:12esa es la sección de entrada como
- 5:15ustedes verán el semáforo ve está
- 5:18abierto el semáforo x está abierto
- 5:20quiere decir que ve puede entrar en su
- 5:24sección crítica cual es la sección de
- 5:27salida del proceso ve bueno la sección
- 5:30de salida del proceso ve es signal
- 5:34del semáforo a
- 5:41y
- 5:42signal
- 5:45del semáforo
- 5:48o sea que cuando
- 5:50el proceso ve salga de su sección
- 5:53crítica va a poner en uno va a abrir el
- 5:56semáforo de a y va a abrir un semáforo
- 6:00para sé bien cuál es la sección de
- 6:03entrada del proceso a un wave
- 6:07del semáforo a fíjense que cuando
- 6:11el proceso estévez sale de su sección
- 6:15crítica entonces el proceso a va a
- 6:19encontrar es el semáforo ha abierto y va
- 6:23a poder pasar de su selección crítica
- 6:25con esto nos aseguramos que el primero
- 6:27que va a entrar es b y después va a
- 6:30poder entrar a su sección crítica el
- 6:32proceso bueno ahora viene la sección de
- 6:35entrada del proceso se la sección de
- 6:37white del semáforo
- 6:41el semáforo sé
- 6:43que está en cero por lo menos antes de
- 6:47que el proceso de algún signal del
- 6:50semáforo se y un white del semáforo x
- 6:55way del semáforo x que está en cero
- 6:59porque ve fíjense que no haya un signal
- 7:03sobre el semáforo x
- 7:05bien cuál es la salida la sección de
- 7:08salida del proceso ce es un signo del
- 7:13semáforo
- 7:19y es un final del semáforo
- 7:24ve
- 7:26estoy esperando que hagan brazos
- 7:28robóticos para cambiarme el mío porque
- 7:31fíjense que desprolijidad
- 7:34bueno entonces esto quiere decir que son
- 7:37muy perfectos por lo menos yo
- 7:39bien me queda por definir la sección de
- 7:43salida del proceso a la sesión de salida
- 7:46el proceso es un signal
- 7:49del semáforo x bueno ahora ustedes le
- 7:53estarán dando un poco más de sentido a
- 7:56la inicialización de los semáforos
- 8:02es empresario mejor esa raya va bien
- 8:05bueno ustedes estarán dando un poco más
- 8:08de sentido a la inicialización de los
- 8:10semáforos porque fíjense qué pasa si se
- 8:14manda a ejecutar el proceso a primero
- 8:16hace un testeo del semáforo a el
- 8:18semáforo a está en cero entonces el
- 8:22proceso queda bloqueado esperando
- 8:26digamos esperando la señalización del
- 8:29semáforo a bien qué pasa si se manda
- 8:33ejecutar primero el proceso se moja no
- 8:35hay un testeo del semáforo sé que está
- 8:38en cero entonces va a quedar bloqueado
- 8:41esperando la señalización del semáforo
- 8:44se bueno todo se va a destrabar cuando
- 8:48alguien mande ejecutar algún usuario
- 8:50mande ejecutar el proceso b o un usuario
- 8:53que está ejecutando todo este sistema de
- 8:55sincronización vasca entonces fíjense
- 8:59que cuando se manda a ejecutar el
- 9:02proceso ve hace un testeo del semáforo
- 9:05ve
- 9:06que está en uno entonces automáticamente
- 9:10pasa y el semáforo ve queda en cero
- 9:14después hace un güey de semáforo x lo
- 9:17encuentra también lo encuentra abierto
- 9:19entonces
- 9:22y deja el semáforo x en 0 entonces el
- 9:27único que está dentro de la sección
- 9:29crítica es el proceso b
- 9:32bien ahora
- 9:35ay se están bloqueados que pasa cuando
- 9:37ves sale de su sección crítica ve sale
- 9:40de su sección crítica y vuelve a entrar
- 9:43a la sección de entrada pero cuando
- 9:45entré a la sección de entrada entonces
- 9:47encuentra el semáforo veía el semáforo x
- 9:50en 0 no puede pasar pero bueno este
- 9:52cuando sale de su sección crítica
- 9:55señaliza
- 9:57si eso quiere decir que el semáforo a
- 9:59toma el valor 1 y señalizar eso quiere
- 10:03decir que el semáforo se toma el valor 1
- 10:05o sea estados abiertos
- 10:08ahora quien puede pasar bueno el proceso
- 10:11evidentemente que estaba bloqueado en el
- 10:14semáforo a lo encuentra ahora lo
- 10:16encuentra en uno y pasa sí y el semáforo
- 10:19se perdona el proceso se encuentra ahora
- 10:23el semáforo se en uno y pasa al
- 10:28siguiente a la siguiente el siguiente
- 10:30igual de la sección de entrada no que lo
- 10:32detiene o sea el proceso se queda tenido
- 10:35aquí
- 10:36bueno voy a repetir esta última parte ve
- 10:39entonces y habilita el semáforo va y
- 10:43habilita el semáforo se ha entonces que
- 10:45hace un buen el semáforo va entonces
- 10:49pasa y deja el semáforo
- 10:53y en cero o sea que ahora tenemos esta
- 10:56es la sección crítica que pasó con c con
- 11:00el proceso c se encontró su semáforo se
- 11:05el en 1 entonces
- 11:08lo dejé el 0 y pasa pero queda bloqueado
- 11:12aquí esperando la señalización del
- 11:14semáforo x que todavía no ha ocurrido
- 11:15muy bien entonces lo único proceso que
- 11:18está en la sección crítica ahora esa
- 11:21cuando sale de su división crítica
- 11:23habilita el semáforo x
- 11:29quién está bloqueado en el semáforo xv
- 11:31no porque está bloqueado en el semáforo
- 11:33ve quién es entonces el proceso se es el
- 11:36que está bloqueado en el llamado foro x
- 11:39que ahora va a dejar el semáforo x el 0
- 11:44y va a permitir el ingreso
- 11:47a la sección crítica del proceso se
- 11:50viene entonces ahora quien está en la
- 11:52sección crítica del proceso se ve dónde
- 11:56está está esperando la señalización del
- 11:58semáforo ve a dónde está esperando la
- 12:01señalización del semáforo va fíjense que
- 12:04ve está el 0 ya ya dónde está acá está
- 12:07en 0 bien
- 12:10y está todo el 0 a bs y x porque porque
- 12:14tengo un proceso en la sección crítica y
- 12:17aunque aunque el proceso aunque el
- 12:22semáforo ve y el semáforo este y el
- 12:26semáforo se podría llegar a estar en 1
- 12:30sí sin ningún problema por qué y por qué
- 12:33están detenidos por el semáforo x bien
- 12:35qué pasa cuando qué pasa cuando el
- 12:41proceso se sale de sección crítica
- 12:43entonces el proceso se sale de esencia
- 12:46crítica y habilita al semáforo a dónde
- 12:48está acá lo pone en 1 y habilita al
- 12:53semáforo ve acá está lo pone en 1
- 12:59bien entonces qué pasa si queda
- 13:03bloqueado
- 13:05en el way de sc porque el semáforo se
- 13:09está en 0 y puede pasar
- 13:12entonces ahora tenemos a en su sección
- 13:15crítica y con el semáforo en 0 b queda
- 13:20bloqueado en el semáforo
- 13:23x queda bloqueado en el semáforo x
- 13:26porque tiene el semáforo b en uno queda
- 13:29el 0 y se bloquea en el semáforo x hice
- 13:32el proceso se queda bloqueado en la
- 13:35primer parte de su decisión de entrada
- 13:37entonces tenemos a eso sección crítica
- 13:40de bloqueado en voy de sx y se bloqueado
- 13:44muy de sc
- 13:46el único que puede terminar su sección
- 13:49crítica esa que está adentro entonces
- 13:51habilita x habilita x quien está
- 13:55esperando x el proceso es
- 13:58bueno
- 14:01creo que ahí todo continúa
- 14:04bueno un poco desprolijo espero que esto
- 14:08digamos este borrador citó les haya
- 14:12servido para entender lo que vamos a
- 14:15hacer ahora en linux que vamos a hacer
- 14:17en linux ahora bueno voy a hacer un
- 14:20clear vamos a
- 14:23crear los semáforos
- 14:30los semáforos le voy a poner sem
- 14:33al crear los semáforos
- 14:37inicializar los semáforos
- 14:50no es un acento inicializar eso no es
- 14:54una equis inicializar los semáforos
- 15:00me lo compro una tablet me voy a
- 15:03arreglar la tableta para mi cumpleaños
- 15:04bien crear los semáforos inicializar los
- 15:07semáforos
- 15:09crear los procesos
- 15:15y crear procesos
- 15:22d
- 15:24hice
- 15:26y ejecutar y ver cómo funciona
- 15:32es que está practicando estoy
- 15:34practicando estoy trabajando con la
- 15:36movilidad de la muñeca
- 15:37muy bien vamos a crear los semáforos se
- 15:39anuncian los semáforos crear los
- 15:41procesos veáis y ejecutarlos y ver
- 15:46bien ya estamos en nuestro linux y lo
- 15:49primero que vamos a hacer es ejecutar el
- 15:51comando y pss
- 15:55bien como ustedes están viendo el
- 15:58comando y pss nos muestra los recursos
- 16:01de comunicación y sincronización que nos
- 16:05brinda este sistema operativo entonces
- 16:08tenemos los segmentos de memoria
- 16:09compartida aca
- 16:12tenemos las matrices de semáforo y
- 16:16tenemos las colas de mensajes y nosotros
- 16:19que tenemos que hacer tenemos que crear
- 16:23una matriz de semáforos con cuatro
- 16:25semáforos se acuerdan el semáforo a que
- 16:28el semáforo ve que el semáforo se y el
- 16:32semáforo x para ello necesitamos
- 16:35escribir un pequeño programita así que
- 16:38vamos a escribir nuestro pequeño
- 16:40programita
- 16:42muy bien vamos a hacerlo en el head it y
- 16:46lo vamos a llamar crea y lee cm puntos
- 16:56bien acá estamos en el jardín y vamos a
- 16:59empezar por aquí en la función principal
- 17:04y ahí estamos
- 17:14bien lo primero que vamos a hacer es
- 17:17declarar una variable entera que le
- 17:20vamos a llamar tema de identificador de
- 17:23la red de semáforos y ahí vamos a
- 17:26guardar lo que nos devuelve senguer
- 17:29vamos a hacer bien este código bien
- 17:32romer izado así que lo primero que vamos
- 17:34a poner vamos a poner un número extra
- 17:36decimal que identifica el array de
- 17:40semáforos a nivel de programador después
- 17:44vamos a decirle cuántos semáforos
- 17:45queremos crear en el array y le vamos a
- 17:48dar el flag de inicialización de ipc
- 17:53create
- 17:552
- 17:57ips exclusivo
- 18:01es exclusivo y vamos a darle los
- 18:07permisos de lectura y escritura de estos
- 18:13semáforos después si nos da error de
- 18:15compilación lo vamos a arreglar porque
- 18:18no recuerdo en este momento bien la
- 18:20sintaxis del sheng eta así que lo
- 18:21arreglamos
- 18:23pero por de pronto vamos a darle esa
- 18:26inicialización bien
- 18:29eso sería digamos la creación del
- 18:32recurso siempre y cuando siempre y
- 18:35cuando se min
- 18:39sea distinto de -1 y se mide es igual a
- 18:43menos 1 entonces imposible crear
- 18:47recursos
- 18:51el jinete
- 18:57error de creación
- 19:03bueno no vamos a poder hacer los
- 19:08recursos
- 19:13bien
- 19:14bueno ahora bien si creamos dos
- 19:17semáforos y
- 19:21se mide distinto menos uno quiere decir
- 19:24que nos creó los cuatro semáforos
- 19:26entonces ahora lo que podemos hacer es
- 19:27inicializar los los inicializa mos con
- 19:3167 el control sobre el semáforo lo
- 19:35primero que ponemos es el aire de la
- 19:38raíz de semáforos después ponemos el
- 19:41número del semáforo este sería el
- 19:43semáforo vamos a ponerlo por acá este
- 19:46sería el semáforo que nosotros llamamos
- 19:48semáforo a si semáforo igual a 1
- 19:54este semáforo lo vamos a inicializar
- 19:56entonces perdón ya me equivoqué semáforo
- 20:01a igual a cero si habíamos dicho
- 20:04entonces ahí está en teoría en teoría
- 20:10cuando se ejecuta esa línea se va a
- 20:12inicializar el semáforo
- 20:15a ese bien control
- 20:22vamos a inicializar el semáforo b
- 20:27este es el semáforo ve en uno
- 20:32semáforo b
- 20:34en 1
- 20:36ante colectivos silencio lo comentamos
- 20:38muy bien
- 20:4067 l se mira es desde el semáforo c
- 20:49lo vamos inicializar en 0 recuerden el
- 20:52papel y lápiz o el garabato que hice
- 20:56con el mouse
- 20:59semáforos igual a cero y cmc de l
- 21:07se me coma este sería el semáforo x
- 21:16y esto sería también en uno
- 21:23el semáforo x es igual a 1 bien bueno
- 21:28con eso creo que a perdón de olvido los
- 21:31incluidos
- 21:32vamos a poner el incluir de ese medio
- 21:37punto h estándar imputado pues vamos a
- 21:41poner el tomamos apropiado
- 21:43al mejor estilo copy-paste
- 21:47sis
- 21:49russell
- 21:57ibarra ipc
- 22:00y por las dudas
- 22:03por las dudas romer es persona
- 22:06descodificación romero
- 22:13un poquito depende mucho de las
- 22:14distribuciones de lino que se te ve en
- 22:19las cabeceras que tenemos que incluir
- 22:21bien
- 22:23bueno en teoría en teoría
- 22:28este pequeño código lo que haría es
- 22:34crear el recurso crear recursos
- 22:39semáforos
- 22:42i
- 22:44y
- 22:47inicializa
- 22:54para nuestra
- 22:56el curso de un aforo para nuestra
- 23:02sincronización
- 23:06bien
- 23:09hasta ahí estamos bien vamos a guardar
- 23:18cerrar volvemos al gel y vamos a
- 23:22compilar
- 23:24a ver si tenemos errores aquí
- 23:30y le ponemos bueno perfecto entonces
- 23:38hemos creado el ejecutable crane y lo
- 23:46vamos a ejecutar
- 23:48y vamos a ejecutar el comando y pss y
- 23:52vemos qué
- 23:54aquí
- 23:57aquí
- 23:59en esta parte
- 24:02vemos que nos creó una raíz de cuatro
- 24:07semáforos
- 24:09están los cuatro semáforos
- 24:12los permisos el usuario creador del
- 24:17recurso él
- 24:21identificar del recurso y la clave de
- 24:25usuario 0 x a
- 24:28ahí tenemos el recurso creado
- 24:31e inicial izado podríamos ser un
- 24:34programita para ver lo qué
- 24:38para ver la inicialización a ver si es
- 24:42correcta así que bueno podemos hacerlo
- 24:45porque no
- 24:48ay
- 24:50vamos a hacer un copy de cree
- 24:55y michelle
- 24:57ver
- 24:59[Música]
- 25:0112 vamos a editarlo bellinis en punto c
- 25:08vamos a modificar este código
- 25:13pero acá
- 25:18pero acá entonces esto recupera recupera
- 25:25él
- 25:28en el recurso semáforo cuya
- 25:35de usuario es 0 x a
- 25:41bien si lo que me devuelve distinto
- 25:45menos uno entonces
- 25:48vemos la inicialización anterior
- 25:59ah
- 26:01entonces esto vamos a
- 26:08efe
- 26:11sea igual
- 26:14por ciento de
- 26:17sí
- 26:1967 l
- 26:22'get back'
- 26:40i
- 26:43ahora vamos a ver el mal a ver si no nos
- 26:46estamos equivocando en la llamada en la
- 26:50función sin control
- 26:54vamos a
- 26:58quizás nos equivocamos en algo el manual
- 27:01es una gran ayuda para la falta de
- 27:04memoria
- 27:08i
- 27:10semáforo de semáforos y semáforo x
- 27:16esto es el semáforo b
- 27:19el semáforo
- 27:22tx
- 27:27paréntesis
- 27:33error d
- 27:43bueno a vuelo de pájaro guardamos
- 27:49[Música]
- 27:51vamos a ver el man del ctl
- 27:58bien si está ahí tendríamos que agregar
- 28:01vamos a ver
- 28:05dice
- 28:07se mide en un comando bueno hemos
- 28:12respetado eso hemos hemos puesto en el
- 28:15primer argumento
- 28:17en el primer argumento hemos puesto el
- 28:20jemad y en el segundo argumento hemos
- 28:22puesto el número del semáforo y en el
- 28:25tercer argumento hemos puesto el comando
- 28:27o sea los comandos son que hemos usado
- 28:30son para acá volvemos corto con el mouse
- 28:34sepval
- 28:37y el otro comando es get vale
- 28:40cerval para inicializar y gradual para
- 28:43ver la inicialización bueno
- 28:46hasta ahí creo que andamos bien no
- 28:52salir
- 28:56y vamos a ahora compilar
- 29:02el verde
- 29:07le vamos a poner verín
- 29:13bueno acá aparece algo en la línea 15
- 29:16una equis vamos a ver
- 29:18tenía 15
- 29:23dije semáforo xy lehman una equis
- 29:26dislexia mental
- 29:28ahí está guardar
- 29:31la pantalla
- 29:34y ahora compilamos de nuevo bueno ahora
- 29:36sí o sea que vamos a ejecutar ver
- 29:43perfecto esa es la inicialización hasta
- 29:46y vamos bien bueno
- 29:48ahora vamos a escribir el código del
- 29:51proceso
- 29:53y vamos a escribir el código el proceso
- 29:57b
- 30:01edit
- 30:03bebé le vamos a poner 12 puntos
- 30:12vamos a hacerlo bien romanizado
- 30:15lo primero que vamos a hacer es
- 30:18si nosotros en papel y lápiz hablamos
- 30:22del way del signal y bueno
- 30:25no es tan fácil escribirlo en el código
- 30:28así que para eso vamos a usar dos
- 30:31funciones
- 30:32vamos a usar una función que se llame
- 30:38p
- 30:40si esta va a ser la función del
- 30:43prototipo de la función weight
- 30:47si esto va a ser un wave cm
- 30:51sí
- 30:53a esta función le vamos a pasar un
- 30:58entero y otro
- 31:03este es el prototipo
- 31:06de la misma manera
- 31:09vamos a usar un prototipo para
- 31:12el signo
- 31:17esto será signal
- 31:23sí
- 31:25y la guayaba en honor a dykstra
- 31:30quiero holandés proveer en ibero gen
- 31:32bien
- 31:36y vamos a hacer el mail
- 31:43del proceso de que va a ser el proceso
- 31:48de bueno va a declarar una variable
- 31:53entera donde va a poner recuperar
- 31:59el di
- 32:02d
- 32:04en la ddi de la raíz de semáforos para
- 32:06poder utilizar los que va a ser ahora
- 32:09bueno ahora va a entrar en el ciclo jaja
- 32:13permítanme permítanme acá una macana más
- 32:21define romero
- 32:261
- 32:30entonces
- 32:32guay
- 32:46bien entonces ahora mientras jota romper
- 32:51vamos a escribir la sección de entrada
- 32:56de la sección crítica del proceso en la
- 32:59sección crítica la base de esto esto
- 33:03simplemente que no debería ser una
- 33:04sección crítica pero la sección crítica
- 33:08proceso ve
- 33:11y ustedes ya saben que vamos a son slip
- 33:15para que se vea el efecto de la
- 33:17sincronización en la pantalla
- 33:20el efecto las ignición de la pantalla
- 33:22vamos a hacer el segundo
- 33:24esa es la sección crítica así
- 33:29ahora aquí viene a la sección de entrada
- 33:31la sección de entrada que era un wide el
- 33:33semáforo ve y un wii del semáforo x
- 33:36entonces esto sería dijimos que paraguay
- 33:39que les vamos a pasar el array
- 33:44el identificador de la red de semáforos
- 33:45y le vamos a pasar el número de semáforo
- 33:48b era el 1
- 33:50de la misma manera
- 33:5619 x era él
- 34:00si bien y a quien le hacía signal y si
- 34:06asigna el proceso de de asia signal al
- 34:10semáforo 0 que era el semáforo y de asia
- 34:14asignar
- 34:15al semáforo dos semáforos y entonces
- 34:23vigencia que tenemos esto que sería
- 34:26junto al del semáforo
- 34:34esto qué sería
- 34:41huele
- 34:43del semáforo x
- 34:49una tableta
- 34:59más
- 35:01semáforo
- 35:05esta consigna de semáforo a
- 35:11y esto es un signo
- 35:16semáforo
- 35:19bien
- 35:21bueno
- 35:23y acá aunque nunca se va a ejecutar
- 35:31porque todo debería quedar en el ciclo
- 35:33infinito
- 35:36bueno faltarían acá entonces nos
- 35:39faltarían los incluye
- 35:44[Música]
- 35:48es el tedio punto h
- 36:04si vargas
- 36:05[Música]
- 36:11s
- 36:17bien bueno que nos faltaría nos faltaría
- 36:22y la definición de estas dos funciones
- 36:26y casualmente son bastante importantes
- 36:35bien en la definición sitio que poner la
- 36:39variable del tipo de dato seguir
- 36:43y tns
- 36:46esto es identificador de la raíz del
- 36:49semáforo y esto es número del semáforo
- 36:52tengo que ser una estructura zenbook
- 36:57y su instancia va a ser wood tengo que
- 37:00configurar esta estructura con el número
- 37:03de semáforo
- 37:06si en s
- 37:09después voy a revisar a ver si este se
- 37:12llama realmente en ese y aquí voy a
- 37:16poner el número del semáforo o sea en
- 37:19ese en realidad es un equívoco
- 37:28voy a chequear
- 37:30voy a chicago
- 37:33en metro esa duda
- 37:37más
- 37:57dónde está
- 38:04cómo
- 38:08acá los tengo 1s mod
- 38:11el otro debería hacerse núm
- 38:17señor
- 38:19se inflan acá están acá las encontré son
- 38:24esa estructura se move tiene estos tres
- 38:29atributos el atributo ser un número del
- 38:33semáforo el atributo sem of operación
- 38:37sobre el semáforo white o signal is en
- 38:39flag banderas o indicadores para la
- 38:42operación cómo va a funcionar esa
- 38:45operación este el menos macro cheque
- 38:48porque si no después mi verdad me iba de
- 38:49error
- 38:50así que cerremos esto
- 38:54limpiamos la pantalla bien entremos al
- 38:58código de nuevo
- 39:01y aquí
- 39:03entonces
- 39:05esto es el no dijimos bien
- 39:09que nosotros le pasamos como argumento
- 39:13en ese a la función p bueno esto un
- 39:17punto se move la operación para que se
- 39:22comporte como wave como la operación wei
- 39:26sobre semáforo tengo que poner este un
- 39:29-1 ahí y él
- 39:32efe lg cm
- 39:35efe lg en flag es igual a 0 para que se
- 39:40comporte como lo estudiamos en la teoría
- 39:44en la bibliografía bien ahí hemos
- 39:48configurado una estructura hemos llenado
- 39:50una estructura con datos
- 39:52ahora vamos a llamar a wave away
- 39:56se me ve
- 40:00cómo
- 40:02esto es lo que realmente hace esto es el
- 40:05bueno está ahí se ejecuta el white allí
- 40:09la llamó al sistema o en la aplicación
- 40:11llama al sistema para que el sistema
- 40:13operativo ejecute
- 40:16bien de la misma manera
- 40:19vamos a escribir el código de el signal
- 40:34el único que cambiará para que él se
- 40:37move se comporte como un signo es poner
- 40:40en operación uno
- 40:43uno es lo que se le va a sumar al
- 40:45semáforo y acá en el wave
- 40:471 es lo que se le va a restar cuando
- 40:49haga wake bien acá tengo que poner las
- 40:52variables
- 40:55s
- 40:57bueno este sería el proceso de los
- 41:02incluye
- 41:04el ciclo infinito digamos el de fai para
- 41:07el ciclo infinito los prototipos para
- 41:10configurar para configurar el buey
- 41:13insignia
- 41:14el mail que solamente tiene la
- 41:17recuperación de ese mail y el ciclo
- 41:20infinito
- 41:22y dentro del ciclo infinito la sección
- 41:26de entrada tal cual lo vimos en el lápiz
- 41:28y papel
- 41:29la sección crítica y la sección de
- 41:32salida y acá la configuración del wake
- 41:36la configuración de
- 41:39este signal entonces fíjense que cuando
- 41:43llamo la función ps 1001 tal que recibe
- 41:47el identificador de la rai recibe el
- 41:49semáforo 1 entonces acá hace un way
- 41:53sobre el semáforo 1 de la misma manera
- 41:55cuando un signo del semáforo 0 llama la
- 41:59función b le pasa el cema
- 42:04identificador de la raíz de semáforos le
- 42:06pasa el 0 que es el semáforo y lo
- 42:10incrementa en 1 y es aquí donde se
- 42:13ejecuta donde se ejecuta el signal para
- 42:16el semáforo 0 o el semáforo
- 42:20bueno vamos a guardar
- 42:26compilar para ver si tenemos algún error
- 42:29por ahí esto vamos llevar el proceso p
- 42:36bueno tenemos 137 vamos a ver la línea
- 42:4137
- 42:45i
- 42:477 sí
- 42:48[Música]
- 42:49pero esto muy bien
- 42:59en teoría tenemos el proceso de famosa
- 43:04al proceso se basa en el proceso en el
- 43:09proceso
- 43:12vamos a editar el proceso
- 43:16el proceso
- 43:23i
- 43:30bien el proceso se entonces
- 43:34que tenemos que modificar tenemos que
- 43:36modificar
- 43:38el way del semáforo
- 43:42el signal del semáforo
- 43:46ve
- 43:48y la sección crítica del proceso son lo
- 43:52demás todo igual o sea que hace un güey
- 43:54del semáforo hacia un buey del semáforo
- 43:57se hace un güey del semáforo x a su
- 44:01insignia del semáforo
- 44:04y hace un signo del semáforo
- 44:07bien ya tenemos el proceso ce
- 44:15vamos a compilar
- 44:21procesos
- 44:25bien y ahora vamos a
- 44:30el proceso
- 44:35ah
- 44:43proceso
- 44:47bien
- 44:51el proceso a tenía solamente un white
- 44:55sobre el semáforo ah
- 45:01y solamente tenía un signal
- 45:05sobre el semáforo
- 45:11después todo igual este es el proceso
- 45:16los guardamos
- 45:19lo compilamos
- 45:22proceso a proceso
- 45:26bien bueno
- 45:31tenemos los semáforos inicializa 2 y ahí
- 45:36está
- 45:37tenemos los procesos tenemos los
- 45:41recursos así que lo único que nos falta
- 45:45es ejecutar
- 45:46qué pasa si ejecutó primero el proceso
- 45:52por ejemplo se bloquea
- 45:57se bloquea esperando esperando
- 46:03la señalización de
- 46:06vamos a poner en el medio tal cual lo
- 46:09hicimos en él
- 46:11tal cual lo hicimos en
- 46:15en el papel y lápiz vamos a abrir esta
- 46:18terminal
- 46:23qué pasa si ejecutó el proceso
- 46:35se bloquea así esperando
- 46:41esperando la señalización del semáforo
- 46:44sé
- 46:46vamos a abrir el terminal
- 46:57qué pasa si ejecutamos el proceso ahora
- 46:59el proceso
- 47:02se lo habíamos puesto acá y el proceso
- 47:04lo ponemos al proceso de proceso a
- 47:07procesos
- 47:09qué pasa
- 47:13si ejecutamos el proceso
- 47:16de bueno se tendría que destrabar y
- 47:21y enter proceso de a
- 47:25d
- 47:27ah sí
- 47:29a ver
- 47:32bueno y esto va a quedar así
- 47:33indefinidamente al estilo al mejor
- 47:35estilo cota romer
- 47:37por supuesto que si yo esté
- 47:40lo vamos a dejar para un próximo vídeo
- 47:43si yo por ejemplo cancelo algún proceso
- 47:47control ce
- 47:50control c hay que hacer el proceso
- 47:54c qué pasa con los otros procesos y
- 47:57bueno se bloquean porque no les llega la
- 48:00inicialización
- 48:02entonces la próxima versión de nuestro
- 48:04la próxima versión cual que cuando
- 48:07canceló por ejemplo un proceso todos los
- 48:10demás procesos también terminen sí pero
- 48:13hoy lo podemos dejar así que domingo son
- 48:16las tres de la tarde así que nos vamos a
- 48:20hacer un videíto próximamente para
- 48:24mejorar esta primer versión de nuestra
- 48:28sincronización vaca agregándole también
- 48:31el uso de memoria compartida
- 48:34bueno espero haber esté aclarado algunas
- 48:36dudas y incentivar para que surjan
- 48:40nuevas dudas así podemos seguir esté
- 48:42haciendo vídeos bueno este es el fin de
- 48:45la civilización para cada versión pero
- 48:48pronto haremos la versión 1 muchas
- 48:52gracias nos vemos pronto si dios quiere
About this transcript
This page contains the full transcript of sincronización BACA by juancarlosjromer, generated from the public captions YouTube serves with the video. The transcript has 4,415 words across 813 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.