YouTube2Text

Sistemas Operativos, Variables de Condicion POSIX Threads (Hilos) — Transcript

by Guillermo Cherencio · 6,348 words · 975 segments · language en · Watch on YouTube

Full transcript

  1. 0:01bienvenido a la gente de sistemas
  2. 0:03operativos continuamos nuevamente
  3. 0:08trabajando con el tema 2
  4. 0:11en el vídeo anterior habíamos visto este
  5. 0:14código tenemos aquí en pantalla donde
  6. 0:16habíamos hecho una sincronización muy
  7. 0:18trivial de hilos
  8. 0:20teníamos dos hilos y luego uno y el dos
  9. 0:22y fíjense en que tenían prácticamente el
  10. 0:25mismo código y lo único que hacían era
  11. 0:26sobre la producción número que nos
  12. 0:30permitía producir un número seguro
  13. 0:32aleatorio entre 1 y 1000 en este caso
  14. 0:34con tres cifras en este caso con dos
  15. 0:37cifras o dos cifras decimales no quiero
  16. 0:42simplemente un programa principal que
  17. 0:45lancia que creaba dos hilos un
  18. 0:47observador de ustedes que la pregunta en
  19. 0:50función de creación de hilos
  20. 0:53tenemos lohan el de los silos de la
  21. 0:55referencia de los silos h1 h2 y las
  22. 0:58funciones y lo uno y lo dos simples y el
  23. 1:04ataque
  24. 1:06principal simplemente creo los hilos los
  25. 1:09lanzaban los ponía en planificación la
  26. 1:12librería de los argumentos y ejecutado
  27. 1:16ahí en definitiva el hilo 121 2 y
  28. 1:20medinas yo soy de esos dos siglos
  29. 1:23esperando la finalización primero del
  30. 1:25hilo h1 el huevo el hilo h 21 h uno
  31. 1:30asociado de entonces a la función y lo 1
  32. 1:33y 82 de la función y los dos cuando
  33. 1:36finalizaba
  34. 1:38el hilo de h1 continuaba mientras tanto
  35. 1:43queda bloqueado el menú que me queda
  36. 1:45bloqueado hasta que el hilo uno de los
  37. 1:47finalistas serie 1 finaliza bueno
  38. 1:50continúa la ejecución de mails luego
  39. 1:52hacer lo mismo para h 12 sencillamente
  40. 1:54un ejemplo muy trivial digamos
  41. 1:56simplemente una creación de dos hilos un
  42. 1:57programa principal que ejecutaba y se
  43. 2:02quedaba esperando la finalización de
  44. 2:03esos siglos porque porque habíamos
  45. 2:05explicado que si más interminables y con
  46. 2:08términos antes se nos caían los hilos
  47. 2:11que estaban en ejecución así que bueno
  48. 2:12esto era una forma habitual de trabajo
  49. 2:17la programación de bueno vamos a pasar
  50. 2:19ahora a nuestro ejemplo
  51. 2:23e
  52. 2:24la idea es hacer algo un poco menos
  53. 2:27trivial
  54. 2:28en este caso tenemos un arreglo un
  55. 2:31arreglo global de dos dimensiones donde
  56. 2:33se
  57. 2:34bueno almacenar se van a producir las
  58. 2:37ventas de tres sucursales para los 31
  59. 2:41días máximos que pueda tener el mes
  60. 2:45vamos a seguir usando la función
  61. 2:46producir el número del ejemplo en el
  62. 2:48ejemplo anterior pero vamos a usarla
  63. 2:51para producir totales de ventas pseudo
  64. 2:54aleatorios diarios es que para cada
  65. 2:56excusa
  66. 2:58si entonces la fila representa la
  67. 3:00sucursal y las columnas representan los
  68. 3:02días y su idioma tridimensional como
  69. 3:05tena y tenemos tres siglos o por saleh
  70. 3:08uno dos y tres
  71. 3:09el hilo en su posterior no va a producir
  72. 3:11los datos correspondiente la sucursal 12
  73. 3:15a la 2 y el 3 a 3
  74. 3:18y todo se va a almacenar en este arreglo
  75. 3:20de ventas
  76. 3:22también agregue una función sur que es
  77. 3:26una función totalmente genérica
  78. 3:29que a partir de un puntero de ojos de
  79. 3:33tipo de audio indicándole la cantidad de
  80. 3:36elementos a partir de así va a suavizar
  81. 3:38todos los cuerpos por ejemplo
  82. 3:42si yo tengo un arreglo de una sola
  83. 3:45dimensión y de paso la dirección de
  84. 3:48memoria del primer elemento de ese
  85. 3:51arreglo y les digo 10 lo que va a hacer
  86. 3:53es sumar y es labios en memoria contigua
  87. 3:58uno al lado del otro y me va a devolver
  88. 4:01el resultado de la sumatoria eso sí es
  89. 4:03dable que están uno del otro bono esta
  90. 4:06función la hice porque es un arreglo n
  91. 4:09dimensiones o cualquier tipo de arreglo
  92. 4:11en su memoria contigua que está en uno
  93. 4:15al lado del otro por lo tanto puedo
  94. 4:17jugar con el tema de punteros y hacer
  95. 4:20con muy poco código de una manera muy
  96. 4:22simple una función de surf ahora la
  97. 4:25vamos a hablar
  98. 4:27más que nada para que estén
  99. 4:28interiorizados con él tengo punteros son
  100. 4:306
  101. 4:31bueno incluimos alguna que otra cabecera
  102. 4:35como el string punto h porque vamos a
  103. 4:37necesitar vamos a deshabilitar
  104. 4:46salomón deshabitado vamos a traer la
  105. 4:50inicialización del arreglo de ventas con
  106. 4:53esta simple instrucción de ans el bloque
  107. 4:55hago exponer en cero
  108. 4:57un ser o binario pongo a partir de la
  109. 5:00dirección de memoria donde comienza el
  110. 5:01arreglo si la posición 00 a partir de
  111. 5:05así voy a poner un seminario en tantas
  112. 5:08tantos by como en el tamaño inundable x
  113. 5:11tres filas porque el estadio en columnas
  114. 5:13que se diga la cantidad total de dobles
  115. 5:16en forma contiguo que tiene este arreglo
  116. 5:18bidimensional es decir que para hacer
  117. 5:20son tres por 31 serían noventa y tres
  118. 5:24estables uno al lado del otro es decir
  119. 5:27un arreglo de una sola dimensión de 93
  120. 5:30elementos y un arreglo de dimensiones en
  121. 5:323.31 exactos
  122. 5:35los tenemos en forma continua con esta
  123. 5:39distribución los pusimos todo un cero
  124. 5:41para evitar hacer loops y demás y ahora
  125. 5:44como podemos ver que quiero lanzar tres
  126. 5:48hilos y necesito 3 jandro para no
  127. 5:49declarar tres variables lo que se me
  128. 5:52ocurrió fue hacer un arreglo de tres
  129. 5:54elementos para indicar así los hilos
  130. 6:01digamos la referencia cada día
  131. 6:04luego declaré de algo un arreglo de tres
  132. 6:06dimensiones de tipos voy las teorías
  133. 6:08cuando estoy guardando los punteros a
  134. 6:10las funciones por sale 1 2 y 3
  135. 6:13por lo tanto entonces puedo hacer un
  136. 6:15informe para crear los cielos de una
  137. 6:18manera mucho más simple entonces a un
  138. 6:21fort hood que va a pegar tres vueltas la
  139. 6:24variable y va a ir de 0 a 2 va a
  140. 6:26terminar por el valor 3 pero mientras
  141. 6:28que sea menor que 3 va a golpear y en el
  142. 6:34techo recibir voy a guardar la
  143. 6:36referencia a él en y lo que voy a lanzar
  144. 6:42en este caso del incidente hr sub
  145. 6:45silbido guardar la referencia libro de
  146. 6:48la sucursal 1 en helados de la 3
  147. 6:51bien con esta instrucción voy a
  148. 6:53lanzarlos y lo que podemos ver una
  149. 6:55variedad alternando puedo trabajar con
  150. 6:56las reglas tranquilamente ningún
  151. 6:58problema son simplemente referencias a
  152. 7:00los asilos por europa reloj también de
  153. 7:04esta manera se facilita selección porque
  154. 7:06son mucho las funciones de y lo que voy
  155. 7:08a utilizar con muchas instancias de una
  156. 7:11misma función me conviene trabajar con
  157. 7:14arreglos de referencias para hacer mucho
  158. 7:17más fácil los shows torneo bueno
  159. 7:20entonces vamos a lanzar los tres siglos
  160. 7:22de las soluciones para que generen los
  161. 7:23totales de venta vamos a hacer un sorbo
  162. 7:26para que mine espere la finalización de
  163. 7:28los tres y los responsables y luego lo
  164. 7:31que vamos a hacer es utilizar una
  165. 7:34función suma 1
  166. 7:36para decirle que a partir la dirección
  167. 7:38de memoria
  168. 7:41sub y que corresponde a una sucursal a
  169. 7:44partir de la dirección
  170. 7:47pero sería el primer día totales hay un
  171. 7:52total de 30 100 elementos que sume a
  172. 7:54partir de ahí no sean estaría dando el
  173. 7:56total de ventas de la sucursal
  174. 7:59y luego aquí al final me tira el total
  175. 8:03general fíjense ustedes quién me sirve
  176. 8:06en la misma función tanto para sumar por
  177. 8:08su bolsa como para sumar a todo de la
  178. 8:09red
  179. 8:10esa es una de las flexibilidades de la
  180. 8:12función suma y gracias al uso de
  181. 8:15punteros 11
  182. 8:18y díganme cómo hacen esto pascal por
  183. 8:21ejemplo
  184. 8:23dentro del tipo de lenguaje
  185. 8:26ventas sub 0 31 por 3 nos saca me va a
  186. 8:31sumar la matriz completa
  187. 8:33y vamos a mostrar el bueno las funciones
  188. 8:37los alumnos lo pueden ver ustedes lo
  189. 8:40único que solo
  190. 8:43para los 31 días y recuerden que los
  191. 8:47arreglos un simple de 2016 así que sí
  192. 8:50quiero hablar del día 1 voy a tener que
  193. 8:52sumarle una variable porque la matriz
  194. 8:57siempre vas a hacer y generamos un
  195. 9:00número
  196. 9:03mostramos de seguro generador y número
  197. 9:06almacenados en el día y en la sucursal
  198. 9:09que correspondan en caso de sucursal 1
  199. 9:11almacenar simple la fila 0 en el caso
  200. 9:14sucursal 2 siempre vamos en el final un
  201. 9:16caso se pulsan 3 siempre va almacenar en
  202. 9:19una fila 2 es la única diferencia que
  203. 9:22tienen estas funciones por lo cual
  204. 9:24pueden ver el código es absolutamente es
  205. 9:26trivial
  206. 9:28organizado digamos porque es idéntico el
  207. 9:32código la única diferencia es las filas
  208. 9:34donde almacenan los valores por último
  209. 9:38podemos echar un vistazo de la función
  210. 9:40suma podemos así sea como dije antes por
  211. 9:43el manejo de punteros declaramos una
  212. 9:46variable total y tenemos un puntero p
  213. 9:49llegamos a un doble y tiene que indica
  214. 9:52la cantidad de
  215. 9:53cada bloque entonces a un foro e
  216. 9:57invadiendo 0 en el norte y más entonces
  217. 10:01por lo tanto va a ser un puerto a dejar
  218. 10:03las tantas vueltas como en el nuestro
  219. 10:05tenga y por cada vuelta vamos a
  220. 10:08incrementar el puntero que incrementar
  221. 10:10el puntero premio significa ser más uno
  222. 10:13en este caso tenemos manos en explicar
  223. 10:14formaciones tiene que significar apunta
  224. 10:17al siguiente de abril
  225. 10:19que ocupa 8 gbytes de memoria chicas
  226. 10:21desde el punto no estamos desplazando
  227. 10:24[Música]
  228. 10:26en la posición del amor entonces voy a
  229. 10:29decir que total más igual asterisco pt
  230. 10:32bueno entonces maravilloso de ese hilo
  231. 10:35complejo desea ningún tiempo para
  232. 10:37entender muchas veces es asterisco p en
  233. 10:39este contexto explicó que significa el
  234. 10:43valor apuntado por qué
  235. 10:45es decir el número de audio que está
  236. 10:49apuntado por ciento punto a ventas 0 0
  237. 10:54ir en columna 0 sería la venta del
  238. 10:58primer día de la primera parte
  239. 11:01entonces lo apuntado por p series se
  240. 11:04tratan de renta ese total 30 lo voy a
  241. 11:07guardar lo voy a acumular en la hora de
  242. 11:09cortar eso sí dice con más sin igual
  243. 11:12y por el total es igual a total massari
  244. 11:15copes y graciela mismo
  245. 11:17pero no me gusta trabajar
  246. 11:24un poco profesional
  247. 11:28y por último una vez que esté fuerte
  248. 11:33vamos a dar tantas vueltas para dar
  249. 11:36tantas vueltas este como en elementos
  250. 11:40allá entonces éste por supuesto que acá
  251. 11:43es responsabilidad del programador de
  252. 11:46usar correctamente la función porque no
  253. 11:48tenemos manera de saber si el arreglo es
  254. 11:52y si se es y nos pasamos de largo nos
  255. 11:55pone un n equivocado un valor del
  256. 11:58equivocado hace un desastre no porque lo
  257. 12:00atrás irse por fuera del arreglo y va a
  258. 12:02seguir arrasando con todo la memoria que
  259. 12:05encuentre este el resultado porque
  260. 12:08siempre decir eso es lo que tiene ese
  261. 12:11ese asunto el programador sabe lo que
  262. 12:13hace a diferencia de java que trata de
  263. 12:17asumir que el programador es un imbécil
  264. 12:19y tratar de
  265. 12:23te ayuda a no lo más que se pueda que no
  266. 12:25cometa errores bueno devuelve total
  267. 12:28entonces que la sumatoria digamos de ha
  268. 12:32perdido su dirección de amor
  269. 12:34bueno esto es todo lo que hace como
  270. 12:36pueden ver hay muchos códigos trinidad
  271. 12:38al acabar mucha cosa todavía que no hace
  272. 12:40demasiado lo único que avanzamos en este
  273. 12:43sentido es inicializar la de las reglas
  274. 12:46de venta error
  275. 12:50acá abajo
  276. 12:56la turba ahí estábamos deshabitado para
  277. 13:00poder volver por el código ahí con
  278. 13:02cuidados y esto se llama eran dos las
  279. 13:06que vamos a publicar en la misma
  280. 13:08dirección
  281. 13:12bien qué pasó aquí entonces se han
  282. 13:16creado los cielos sucursal y 1 2 y 3
  283. 13:20lines se queda bloqueado esperando por
  284. 13:23la finalización del hilo sopor sale una
  285. 13:25sucursal 1 en centre que en realidad
  286. 13:28arrancó antes y sucursal 2 generando
  287. 13:30todos los días le dio al 2 luego a 3 1
  288. 13:37y por último le dio cpu a li ling sus
  289. 13:41alumnos se generaron todos los totales
  290. 13:43de ventas del día 1 al día 31
  291. 13:47cuando finalizó el y los sucursal 1 se
  292. 13:50desbloqueó men y intento bloquearse
  293. 13:53esperando la finalización de libros o
  294. 13:55por saldos o moby los saldos había
  295. 13:57finalizado continuó el nuevo bloqueo de
  296. 14:01sesión y continuó hasta el siguiente
  297. 14:04para hacer el bloqueo para esperar por
  298. 14:06el hilo en la sucursal 3 que se había
  299. 14:08finalizado también por tanto tampoco
  300. 14:09bloqueo continuo aumentas y lo que hizo
  301. 14:14fue usar sumo
  302. 14:16la función sumo para sumar por filas y
  303. 14:20causamos sumo para sumar por filas
  304. 14:25sumamos la fila 0 a la 1 y la 2 y acá
  305. 14:28abajo y seguimos una sola teoría general
  306. 14:31bueno sensación buena cuenta monta la
  307. 14:33mente acá tenemos 4 5 y 5 10 12 10
  308. 14:3911 17 18 11
  309. 14:459 16 22 12 14 18 13 14 perfecto es decir
  310. 14:52que la función sólo hemos podido
  311. 14:55utilizarlas por filas y por columnas y
  312. 14:58vemos que el resultado final es
  313. 15:00totalmente
  314. 15:02biológico digamos sí correcto bueno esto
  315. 15:06es lo que hace este ere real
  316. 15:102
  317. 15:13ph cuando luchaba
  318. 15:17bueno que innovamos y nos vamos con los
  319. 15:21arreglos y no vamos innovamos
  320. 15:25[Música]
  321. 15:27con la función sumo
  322. 15:30por ahora lo una inclinación me cause
  323. 15:32cambio de nuevos n quisimos pero sigue
  324. 15:34siendo un programa trivial que los tiene
  325. 15:36mayores
  326. 15:37el mayor fundamento
  327. 15:41ahora vamos a dar una vuelta de tuerca a
  328. 15:43esto y mejoraremos para organizar un
  329. 15:46poco este código
  330. 16:01está creando tantas a lo más que podamos
  331. 16:05bien hicimos esto seguimos con la regla
  332. 16:08de ventas seguimos con producir seguimos
  333. 16:10la función sumo pero ahora
  334. 16:12como tenemos códigos repetitivo en
  335. 16:15sucursal lo único que variaba era el
  336. 16:17código de la sucursal lo que vamos a
  337. 16:19hacer ahora es un ejemplo de lanzar un
  338. 16:21hilo con parámetros
  339. 16:24ahora les vamos a usar una única función
  340. 16:27sucursal para sumar los datos de la
  341. 16:29sucursal y le vamos a pasar por eso
  342. 16:31declaramos que voy a estar y exportar le
  343. 16:33vamos a pasar el número de sucursal que
  344. 16:36pretendemos sumar deciden usar uno dos o
  345. 16:40tres recuerden que el vector es base
  346. 16:42cero nuevas y cuidado con esto en
  347. 16:44equivocarse bueno tenemos al menos como
  348. 16:48siempre los silos como siempre ahora
  349. 16:50agregamos el vector de parámetros y
  350. 16:52vamos a tener uno
  351. 16:56son
  352. 16:58digamos los parámetros que vamos a pasar
  353. 17:00a cada una de las instancias y los vamos
  354. 17:02a crear entonces en petra les quería y
  355. 17:04ahora vamos a llamar siempre a la misma
  356. 17:10función pero para crear diferentes hilos
  357. 17:12y guardar las referencias en diferentes
  358. 17:15elementos de las reglas de hr pero no
  359. 17:18vamos a pasar la dirección en la memoria
  360. 17:20del arreglo parámetros para la posición
  361. 17:240
  362. 17:25y 2 entonces vamos a crear un hilo y el
  363. 17:30primero va a recibir como argumento 1 en
  364. 17:33el segundo 200 en el tema que los
  365. 17:35argumentos la barra civil como algo el
  366. 17:37tipo voy de asterisco en realidad son
  367. 17:40direcciones de memoria de números
  368. 17:42enteros
  369. 17:43así que por lo tanto dentro de su curso
  370. 17:45vamos a tener que convertir eso voy a
  371. 17:47ser con un varón entero
  372. 17:50bien tenemos la dirección de memoria de
  373. 17:52un valor entero de los ramos aficiones
  374. 17:56pero luego hacemos los saints como
  375. 17:59siempre mostramos los totales de eventos
  376. 18:02por el resto del coro es exactamente
  377. 18:03igual de la emoción anterior
  378. 18:06vamos a ver el truco de pasarles
  379. 18:08argumentos para soportar los hilos
  380. 18:12recibimos un puntero del tipo de boyle
  381. 18:14de asterisco entonces el punto le voy a
  382. 18:16éste ni con somete shock lo voy a
  383. 18:19castigar una vez en un caso pensé voy a
  384. 18:23decir eso que desde boy asterisco en
  385. 18:26realidad es un puntero un entero pues es
  386. 18:29un puntero de tipo in de astérix
  387. 18:32entonces una vez que lo convierte en un
  388. 18:34tono digno asterisco lo pongo entre
  389. 18:36paréntesis y liz y le pongo el asterisco
  390. 18:39adelante en este contexto de lo mismo
  391. 18:42que el caso del asterisco p que son los
  392. 18:44mencionados anteriormente de sumo
  393. 18:46esto sería interpretado en c como lo
  394. 18:49apuntado por todo esto
  395. 18:52lo apuntado por todo esto es un valor
  396. 18:54ente entonces sería este asterisco todo
  397. 18:56esto se transforma en el valor entero
  398. 18:59apuntado por pesos
  399. 19:01bueno en ese valor entero dado golpes o
  400. 19:04que va a ser uno dos o tres dependiendo
  401. 19:07en la instancia de ejecución le voy a
  402. 19:09restar uno y eso lo voy a guardar en su
  403. 19:11expulsar entonces por esta simple
  404. 19:14instrucción en la variable eso me va a
  405. 19:16quedar a base cero la sucursal que tengo
  406. 19:19que suba entonces el resto del código es
  407. 19:21exactamente igual que antes producimos
  408. 19:24guardamos el veteado mandamos el mensaje
  409. 19:26y guardamos en ventas sub sub sube a la
  410. 19:32venta que hemos producido haciendo va a
  411. 19:34producir los 31 días de venta para la
  412. 19:37sucursal y suele pasar por argumentos no
  413. 19:39se ahorró el código de nosotros dos
  414. 19:40funciones o pulsar uno dos y tres ahora
  415. 19:43es solamente su pulsar
  416. 19:45quiero aclarar acá hay que tener cuidado
  417. 19:49cuando pasamos parámetros de que eso
  418. 19:52esos parámetros que le pasamos no sea
  419. 19:55una memoria volátil o una memoria que se
  420. 19:58libere o se pierda al momento en que el
  421. 20:01hilo va a hacer esta operación porque si
  422. 20:03no vamos a tener un problema es por eso
  423. 20:05asegurarme de que estos valores
  424. 20:08persistan en quedar lo que cree
  425. 20:11[Música]
  426. 20:17eso podría haber usado el valor de la
  427. 20:20variable y délfor directamente pero es
  428. 20:24mucho más seguro manejar una memoria
  429. 20:28aparte estática digamos que no vas a
  430. 20:30cambiar al momento de que los hilos se
  431. 20:34vayan a tomar los valores de sus
  432. 20:35parámetros recuerden que esto es que son
  433. 20:38concurrentes bueno
  434. 20:44digamos que el efecto final es similar
  435. 20:49lo mismo que el ejercicio anterior vamos
  436. 20:51a mostrar nuevamente
  437. 20:58para compilar este código y quiero que
  438. 21:03piense que es guión lp-3 y guión lm
  439. 21:06porque sobre la función pop y ahora
  440. 21:10vamos a ejecutar este hr de borrarla la
  441. 21:14terminal
  442. 21:15[Aplausos]
  443. 21:19como pueden ver usted es el
  444. 21:23el efecto final es exactamente el mismo
  445. 21:26si captamos viendo que realmente se
  446. 21:30planifica un hilo u otro y le da
  447. 21:33bastante tiempo ese fuego para hacer
  448. 21:35toda la sumatoria podemos ver los
  449. 21:38totales bueno los totales deberían estar
  450. 21:41normalmente bien 17 según a 10 18
  451. 21:45elecciones seguras o bien
  452. 21:49fíjense ustedes bueno la planificación
  453. 21:51es así pero si uno se pone a jugar un
  454. 21:56poquito y aquí una oración
  455. 22:0311
  456. 22:04y es que esto sirve para sincronización
  457. 22:06sino que lo que vamos a provocar sería
  458. 22:08que la ejecución tarde más este podemos
  459. 22:12ver que el ir haciendo un slip sobre los
  460. 22:15siglos puede ir cambiando la
  461. 22:17planificación de hilos y entonces de
  462. 22:19repente tenemos un intercalado entre los
  463. 22:22entre los hilos de la planificación
  464. 22:24mucho más grandes y ahora ya no es todo
  465. 22:26el hilo uno todo ligados todos y los
  466. 22:28tres que al ponerle la demora digamos
  467. 22:31eso está forzando de alguna manera que
  468. 22:33el planificador de la librería de hilos
  469. 22:35de tres que éste también cambien su
  470. 22:39elección
  471. 22:40[Música]
  472. 22:41debido al bloqueo que provoca slip
  473. 22:44pero ahora simplemente
  474. 22:49es una forma de sincronización es
  475. 22:51simplemente una demora que le pusimos en
  476. 22:53el congo para ver cómo reacciona
  477. 22:55planificador de ellos bien hemos hecho
  478. 23:00entonces ahora de esta versión lo que ha
  479. 23:03hecho es reducir este la función
  480. 23:05sucursal y pasarle argumentos fin
  481. 23:07después el resto del código sigue
  482. 23:09exactamente igual bueno vamos a dar este
  483. 23:13una vuelta de tuerca
  484. 23:16bastante más grande en estados yo y lo
  485. 23:19que pretendemos hacer acá es
  486. 23:22no es el mejor ejemplo seguramente pero
  487. 23:25habría mejores ejemplo con un sistema de
  488. 23:28gestión más grande o con un sistema de
  489. 23:32gráficos y demás para probar un poco
  490. 23:34esto pero la idea es la siguiente vamos
  491. 23:38a tener un lector de ventas con la misma
  492. 23:40información de siempre ahora vamos a
  493. 23:42tener un vector de total sucursal ventas
  494. 23:44este sector lo que va a hacer es guardar
  495. 23:46la sumatoria ya emular horizontal de la
  496. 23:49matriz es decir este tendría en los
  497. 23:52totales por sucursales y sumaríamos los
  498. 23:5431 días de cada sucursal y pondríamos en
  499. 23:57cada elemento de este vector ese total
  500. 24:00después tenemos el vector hacia la
  501. 24:04sumatoria y para guardar la sumatoria
  502. 24:05horizontal y este otro vector sería para
  503. 24:08guardar la sumatoria vertical si es que
  504. 24:10nos imaginamos las filas con las
  505. 24:13sucursales y las columnas con los
  506. 24:15directos
  507. 24:16entonces este día ventas va a ser la
  508. 24:19sumatoria digamos para las diferentes
  509. 24:22sucursales para un día determinado si
  510. 24:24los 30 días guardería vamos a explotar
  511. 24:26después seguimos con producimos ingreso
  512. 24:291 como siempre
  513. 24:31tenemos el hilo de que produce los datos
  514. 24:34por sucursal exactamente igual que
  515. 24:36siempre para con un parámetros para
  516. 24:38siguen el número de la sucursal y ahora
  517. 24:41vamos a agregar otro y lo nuevo que lo
  518. 24:43vamos a llamar total día y como pueden
  519. 24:46ver ustedes no también también recibo un
  520. 24:48argumento obviamente va a ser el día y
  521. 24:50vamos a pasar ese total día lo que va a
  522. 24:53hacer es una sumatoria por día y ahora
  523. 24:58cuál es el problema de hace una
  524. 24:59sumatoria por los días
  525. 25:02para poder hacer una sumatoria por día
  526. 25:04asume todo lo que asegurar que asegurar
  527. 25:07que se hayan producido los totales de
  528. 25:12ventas de todo ese día es decir que las
  529. 25:14sumas al 1 2 y 3 hayan puesto su totales
  530. 25:16de venta recién ahí voy a poder hacer el
  531. 25:19total del día con es acá donde entran
  532. 25:22las variables de condición esta sería un
  533. 25:24caso donde necesitamos que se dé una
  534. 25:27condición para que un niño complete su
  535. 25:29tarea
  536. 25:31reitero no es el mejor ejemplo por ahí
  537. 25:33pero bueno pueden ver ejemplos de años
  538. 25:36anteriores también pero nos sirve como
  539. 25:39para aplicar más o menos este pseudo al
  540. 25:41código que tenemos acá que está
  541. 25:42publicado en entre en la carpeta de la
  542. 25:45unidad 3 están todas las perspectivas de
  543. 25:48la unidad 3 y además este aquí también
  544. 25:51podemos ver en un pseudo códigos y
  545. 25:54terciario el programa principal no donde
  546. 25:56queramos una serie de boutiques y
  547. 25:59variables de condición cada variable de
  548. 26:01condición va asociado con un multi para
  549. 26:04comprender esto ya tenemos tener
  550. 26:06entendido el concepto de que si tenemos
  551. 26:09semáforos los ven y los donde permite
  552. 26:12entrar o no entrar el ciclo que a 1
  553. 26:15bloque por defecto el mismo texto está
  554. 26:18abierto no bloqueado entonces cuando lo
  555. 26:20pasamos nos va a permitir tomar un
  556. 26:23bloqueo y una vez que tomó lo que ordene
  557. 26:27uno ningún otro y lo pueden son
  558. 26:29mutuamente excluyendo me permite
  559. 26:33pero permite implementar el requisito de
  560. 26:36exclusión mutua si él va asociado un
  561. 26:39text con una variable condición si las
  562. 26:42amos los siglos hacemos los shows para
  563. 26:45los siglos
  564. 26:46ese es el código y pseudo código de ahí
  565. 26:49nadal
  566. 26:51dentro de un hilo yo voy a tener un
  567. 26:53proceso que realizar en una tarea que
  568. 26:56realizar pero voy a adquirir el bloque 1
  569. 27:00voy a ejecutar una sección crítica y si
  570. 27:03se da la condición voy a hacer el
  571. 27:04señalamiento bueno
  572. 27:07no sé exactamente por ejemplo a esto
  573. 27:11pero digamos que no tenemos en sí una
  574. 27:15sección vídeo con los hilos como produce
  575. 27:18el por sucursal
  576. 27:19y hay un hilo para cada sucursal no hay
  577. 27:22manera de que se superpongan y que más
  578. 27:24de un hilo
  579. 27:25al mismo tiempo pretenda producir en el
  580. 27:27mismo lugar
  581. 27:28tener algún tipo de interferencia porque
  582. 27:31el arreglo compartido pero en las celdas
  583. 27:35hay un particionado de la ciudad en el
  584. 27:39apunte de programación paralela acá lo
  585. 27:41que vemos es un partido nada de datos en
  586. 27:43realidad tenemos datos condicionados
  587. 27:45para cada músico lo cual no es mayor
  588. 27:48problema con esto pero si nos serviría
  589. 27:51para que cuando se ejecuta un hilo se
  590. 27:54podría tener la condición sería es estos
  591. 27:59días completos
  592. 28:00entonces el hilo productor podría
  593. 28:02preguntar por eso esté produciendo si no
  594. 28:05sé en qué sucursal en día no importa
  595. 28:10para el día es que está completo
  596. 28:14entonces si para este día está completo
  597. 28:16yo lo que podría hacer es señalar una
  598. 28:18variable de condición
  599. 28:20y los siglos
  600. 28:23esto sería el código similar a esto
  601. 28:26sería el código de modelos y los
  602. 28:29productores que generan los totales de
  603. 28:31ventas por sucursal
  604. 28:32ahora bien el hilo de fumador por día no
  605. 28:37si los fumadores por día
  606. 28:38nuestros 31 y los jugadores por día
  607. 28:42es decir la variable de la función total
  608. 28:45díaz la función total día debería ser
  609. 28:49algo parecido a esto si tendría que
  610. 28:51adquirir el candado correspondiente al
  611. 28:54día así que vamos a tener 31 boutiques y
  612. 28:5831 a niveles de condición una para cada
  613. 29:01día entonces voy a tener que tomar el
  614. 29:03bloqueo del día subí
  615. 29:07y pregunta está concreto ese día
  616. 29:10si no está completo ese día voy a
  617. 29:13esperar voy a hacer un condition white y
  618. 29:16voy a esperar por
  619. 29:21por la variable de condición de ese día
  620. 29:27entonces que iba a ser la variable de
  621. 29:29condición primero que la variable de
  622. 29:31condición cuando uruguay por variable
  623. 29:33condición suele indicar también sobre
  624. 29:35como text entonces que luego hace la
  625. 29:37variable condición va a tomar el mont ex
  626. 29:39y lo va a liberar para liberar el monte
  627. 29:42ex que iba a dejar este hilo bloqueado
  628. 29:45este hilo va a quedar bloqueado hasta
  629. 29:48que alguien ejecute esta instrucción que
  630. 29:50estará y señalarlo entonces cuando éste
  631. 29:54es señalado se va al desbloquear este
  632. 29:58hilo y va nuevamente inventar a adquirir
  633. 30:01el bloqueo m 1
  634. 30:04una vez que quiera adquieren lo que él
  635. 30:06me uno va a ejecutar su sección crítica
  636. 30:09en este caso de la sección técnica
  637. 30:11nuestra enseñanza la sumatoria digamos
  638. 30:14de los hasta la sumatoria de gramos del
  639. 30:16día
  640. 30:17y almacenar el valor del día digamos en
  641. 30:21un vector igual por eso dije no se
  642. 30:24adapta del todo porque en realidad este
  643. 30:27sobre ese lector tampoco vamos a tener
  644. 30:29con corrección porque hay un
  645. 30:30particionado pues alguien un hilo por
  646. 30:32cada elemento del vector del arreglo
  647. 30:36pero bueno igual nos va a servir para
  648. 30:38jugar con hilos y ver si se bloquean y
  649. 30:41se desbloquean los jugadores de hilos
  650. 30:44acorde de lo que van a hacer los
  651. 30:45productores
  652. 30:47en ese sentido si no ha sido el ejemplo
  653. 30:49contras puerto en estas variables de
  654. 30:51conducción y ver que se pueden hacer
  655. 30:54una tarea de hilos coordinadas y bien
  656. 30:59bueno el día completo simplemente es una
  657. 31:04función que recibe un día y va a
  658. 31:06analizar si tenemos datos cargados en
  659. 31:08cada una de las piezas para ese día para
  660. 31:12las diferentes sucursales llegó a
  661. 31:13devolver el verdadero falso
  662. 31:15el verdadero falso no exista en el falso
  663. 31:18es cero en cualquier cosa diferente de
  664. 31:21cero es verdad lo que sucede nancys es
  665. 31:23acá tenemos la declaración de boutiques
  666. 31:26y variables de condiciones son dos
  667. 31:28arreglos de 31 elementos
  668. 31:31inicializa moss ahora todo en 0 1 los
  669. 31:35arreglos de ventas y los vectores este
  670. 31:39creamos ahora referencias para hilos
  671. 31:41pero muchos juegos tenemos los tres
  672. 31:43hijos de productores estatales de
  673. 31:45sucursales y los 31 de las variables de
  674. 31:48condición perdonen los treinta y uno de
  675. 31:50los de los fumadores de por día los
  676. 31:54parámetros de las luces son los mismos
  677. 31:56grabamos en 30 niños para nuestra de los
  678. 31:58días
  679. 31:59vamos a lanzar vamos a inicializar los
  680. 32:03mod ex y las variables de condición los
  681. 32:05motes y las variables de conexión se
  682. 32:07tienen que inicializar esa
  683. 32:09inicialización se puede hacer de dos
  684. 32:10maneras se puede hacer en forma dinámica
  685. 32:12en maine una vez que arranca domain de
  686. 32:15esta manera llamando a petrotech sin it
  687. 32:18pasándole la dirección de memoria de
  688. 32:21como de la referencia de un texto en
  689. 32:24este caso de mi 1
  690. 32:27nules son un argumento y lo mismo con la
  691. 32:31variable condición de software con unit
  692. 32:34pasándole la dirección de memoria y
  693. 32:37número en el segundo argumento de la
  694. 32:38forma de inicialización
  695. 32:43dinámica en tiempo de ejecución pero
  696. 32:45también es muy común que vean en muchos
  697. 32:48códigos un músculo sabía mucho nosotros
  698. 32:50en internet para encontrar
  699. 32:52inicialización es estáticas acá tenemos
  700. 32:55un caso de un arreglo de tres elementos
  701. 32:57para un par de montes invariables de
  702. 33:01condición que fueron inicializa dos en
  703. 33:04forma estática el continuador nos genera
  704. 33:06la inicialización esta aplicación se
  705. 33:09hace con petro boutiques iniciales hay
  706. 33:11salud estrés condición y que al ser son
  707. 33:14las macros que nos sirven para
  708. 33:17inicializar el bocyl pero bueno como en
  709. 33:20mi caso son 31 y no me gusta trabajar
  710. 33:22tanto no pretendía acá poner sabes y
  711. 33:25escribir 31 veces esto entonces de esa
  712. 33:28manera elegir inicializar los en forma
  713. 33:30dinámica si el paso nos sirvió para ver
  714. 33:33las dos maneras de inicialización de
  715. 33:35boutiques y de variables de condición
  716. 33:38bueno luego lo que vamos a hacer el mail
  717. 33:42vamos a lanzar primero los fumadores
  718. 33:44diarios
  719. 33:45para que ustedes puedan ver que sube a
  720. 33:47lanzar los jugadores diario y lo saben
  721. 33:49ya que no pueden hacer absolutamente
  722. 33:51nada deberían quedar todos bloqueados
  723. 33:54por una cuestión que la condición día
  724. 33:57completo le va a devolver falso entonces
  725. 33:59están los días completos y está todo en
  726. 34:01cero de todos haciéndose esto sirve para
  727. 34:04ver qué qué y no la lógica no está dada
  728. 34:10por el orden de lanzamiento de los hilos
  729. 34:13sino que la lógica está dada por los
  730. 34:15motes y las variables de condición que
  731. 34:17controlan este tema de las variables de
  732. 34:20condición en donde la condición para que
  733. 34:24se produzca la suma del día es que el
  734. 34:26día esté completo no entonces por eso a
  735. 34:30propósito puse el primero del
  736. 34:31lanzamiento de los hilos fumadores
  737. 34:33luego el lanzamiento de los hilos por
  738. 34:35sucursal luego el sol en contra
  739. 34:41las sucursales y encontrar los fumadores
  740. 34:48de efectos podría haber hecho indistinto
  741. 34:50antes o después no importa el tema del
  742. 34:53crimen
  743. 34:54a
  744. 34:57el tema es que me necesita esperar por
  745. 34:59la finalización de todos esos hilos para
  746. 35:01terminar de hacer los totales generales
  747. 35:03que es responsabilidad en este caso
  748. 35:08utilizar los hubo para hacer la
  749. 35:10sumatoria de los totales de las ventas y
  750. 35:14acá lo vamos a hacer los totales de días
  751. 35:18ya lo hicieron los jugadores de de los
  752. 35:20silos de sudor por día así que vamos a
  753. 35:23usar lo sumo para sacar
  754. 35:27en total general a partir en la
  755. 35:30sumatoria de los totales de las ventas
  756. 35:32si a partir de la sumatoria de los
  757. 35:35totales que hicieron los jugadores de
  758. 35:37los filos bueno se supone entonces
  759. 35:40si suma una matriz en forma horizontal o
  760. 35:42en forma vertical
  761. 35:44los totales generales que voy a obtener
  762. 35:47deberían coincidir esto para probar
  763. 35:49digamos que todo han dado d
  764. 35:52bueno nos vamos a ver el código de
  765. 35:55sucursal 1
  766. 35:57del productor entonces pregunta si el
  767. 36:00día está completo y en tal caso a su
  768. 36:02bloqueo del el mut ex correspondiente o
  769. 36:06al día correspondiente a su signo en el
  770. 36:09día correspondiente y hace un blog es
  771. 36:11decir aplicamos más o menos esto como no
  772. 36:16tengo se ha hecho un bloqueo que no
  773. 36:17porque no lo necesito en realidad es que
  774. 36:20no tengo una verdadera excepción crítica
  775. 36:23en este caso pero no obstante nos
  776. 36:25servido para decir bueno si el día está
  777. 36:27completo entonces voy a adquirir el blog
  778. 36:29del
  779. 36:31digamos del día correspondiente y voy a
  780. 36:35señalar la variable de condición del día
  781. 36:37correspondiente y voy a soltar el log
  782. 36:39del día correspondiente es una pequeña
  783. 36:41adaptación a este pseudo el código por
  784. 36:44eso tome el bloc señal de la variable
  785. 36:47condición y hizo usted el blog una vez
  786. 36:49que el día esté completo si no no tiene
  787. 36:52sentido este
  788. 36:54no tiene sentido hasta si se hace una
  789. 36:57pequeña adaptación de este pseudo código
  790. 37:00general que tenemos publicado
  791. 37:03y vamos a ver ahora
  792. 37:06el hilo digamos por día en donde bueno
  793. 37:10que todos los para no sólo hemos
  794. 37:11explicado a un príncipe total día a día
  795. 37:15tanto antes de que quede bloqueado lo
  796. 37:18primero que hago es tomar un blog
  797. 37:20ningún texto sí sí fíjense en acá a
  798. 37:22vuestro como el blog del mont ex
  799. 37:25correspondiente al día en particular y
  800. 37:28un día que tengo pasamos como argumento
  801. 37:32y preguntó si no está el día completo o
  802. 37:36si esto le va a dar verdadero la primera
  803. 37:38vez que está todo vencer a otro se nos
  804. 37:40va a decir que no está había concretado
  805. 37:41que hubo un solo día esté en cero y al
  806. 37:45completo va a decir falso
  807. 37:49para de estar todos con valores
  808. 37:51diferentes de cero para que yo completo
  809. 37:53en los hombros como verdadero
  810. 37:56entonces si no estaría completo voy a
  811. 37:58ser un con de john wayne de la variable
  812. 38:01de condición de cedido para el monto
  813. 38:03extra
  814. 38:04es decir que basta podemos a estar acá
  815. 38:08bien luego de eso yo le agregué acá
  816. 38:13para que incluso ustedes se queden
  817. 38:16tranquilos de que está todo funcionando
  818. 38:17pero de que si hubiese algún día que
  819. 38:22está en cero
  820. 38:24si hubiese algún día que están 0 al
  821. 38:27momento de salir acá se supone que todos
  822. 38:30los días deberían estar completos sí
  823. 38:32pero si hubiese algunos que están 0 que
  824. 38:34salga
  825. 38:36este mensaje en teoría no debería
  826. 38:39aparecer nunca si la función completa no
  827. 38:42está andando correcta
  828. 38:45de seguro las pruebas que estoy haciendo
  829. 38:50tranquilo electores
  830. 38:51bueno entonces ahora lo que va a ser es
  831. 38:55la sección crítica otra sección crítica
  832. 38:58sería simplemente sumar su ver los días
  833. 39:00no sé lo que va a hacer es un for good
  834. 39:02de para variar digamos en una sucursal y
  835. 39:06no a sumar para ese día todas las
  836. 39:08sucursales quedan tres y luego acumular
  837. 39:11enteramente los eventos de tener ventas
  838. 39:14y luego va a ser el blog del
  839. 39:17del multics para ese día correspondiente
  840. 39:19y voy a mostrar un mensaje con el total
  841. 39:22del día
  842. 39:26es todo lo que va a ser el salvador de
  843. 39:28días nunca tenemos el código de día
  844. 39:31completo en inglés verificar
  845. 39:35para devolver 0 cuando el día no esté
  846. 39:38completo va a devolver 1 cuando un día
  847. 39:40este concreto sin hacer verdadero falso
  848. 39:43tercero es la mentira al 1 el cielo la
  849. 39:47mentira y cualquier cosa diferente de
  850. 39:49cero es verdad
  851. 39:51bien
  852. 39:53[Música]
  853. 40:00vamos a ampliar un poco más para ver
  854. 40:03mejor es todo el código de estos tal día
  855. 40:05no lo tenemos
  856. 40:08acá tenemos todo el código entonces
  857. 40:11shalit o de sucursal o acaso yo tengo
  858. 40:15comentado un berlín
  859. 40:16vamos a mostrar
  860. 40:20dentro del mensaje para que vea la
  861. 40:22combinación en la edición
  862. 40:24esto es
  863. 40:26el sur
  864. 40:31[Música]
  865. 40:341
  866. 40:35[Música]
  867. 40:39ustedes corre realmente muy rápido y
  868. 40:43nada vamos a ver todo el mensaje que
  869. 40:46emite el charrán 4 total del día si es
  870. 40:50el de garra el día 4 el planificador se
  871. 40:54le dio por lanzar este ese hilo de aguas
  872. 40:58de su valor de día a día 4 2 por el 1 1
  873. 41:02pero qué pasa el día 4 arranca iba a
  874. 41:06quedar bloqueado bloqueado porque me
  875. 41:08faltan ventas y así que va a pasar a
  876. 41:11todos los total días van a ir quedando
  877. 41:14bloqueados todos si éste se lanza en el
  878. 41:19hilo productor del 1
  879. 41:23se han servido el productor del 1 al 1
  880. 41:26comenzó a producir
  881. 41:33intercalando la ejecución de los hilos
  882. 41:36acá tenemos
  883. 41:38la producción de la según sanz uno tiene
  884. 41:41por acá otra vez hay otro está dando
  885. 41:44vuelta frei que va a quedar bloqueado
  886. 41:47arranca la solución 2
  887. 41:50fíjate que como arrancó la sucursal 2 y
  888. 41:55concretó el día 1 y acá somos alumnos
  889. 41:59que ha concretado el día 1 de lo único
  890. 42:00que me faltaba era que lance la sucursal
  891. 42:043 día 1 que pasó a cada sucursal 3 y
  892. 42:07algunos completo en los totales de
  893. 42:10ventas del día 1 entonces cuando llamo a
  894. 42:13la función
  895. 42:16cuando llamo la función día completo le
  896. 42:21digo que si quiero un día que estaba
  897. 42:23completo dejamos el día 1 entonces que
  898. 42:26hizo lo que hizo fue tomar el mutec
  899. 42:29lanzar la señal y desbloquear pero
  900. 42:31alcanzar esa señal lo que va a provocar
  901. 42:34es que todo el día en el día 1 que
  902. 42:38estaba bloqueado esperando a que se
  903. 42:40complete ese día este se se desbloquea y
  904. 42:45adquiere nuevamente el bloque bm uno
  905. 42:48hace su tarea imprimen total es decir
  906. 42:50que acá en este código lo que va a
  907. 42:54suceder es que a medida que se vayan
  908. 42:56completando los días según obteniendo
  909. 42:59automáticamente rápidamente los totales
  910. 43:01se se va completando así la tarea
  911. 43:05deshumanizar el día que no tiene por qué
  912. 43:09esperar indefinidamente o hacer una
  913. 43:11espera y mañana simplemente está
  914. 43:14bloqueado y se desbloquea cuando ya está
  915. 43:16listo para sumar
  916. 43:18eso es un poco la gran ventaja de las
  917. 43:20variables de condición que me traen para
  918. 43:22el tiempo ni mi tiempo excepto sino que
  919. 43:24actual en el momento en que señalado que
  920. 43:27tiene que actuar que cuando se dio la
  921. 43:29condición para que actúe es a la grande
  922. 43:32entrar por ahí podemos ver que se pudo
  923. 43:35sumar izar el día 1 acá sucede lo mismo
  924. 43:37con los días 3
  925. 43:43se aprecia sucesivamente se van lanzando
  926. 43:46los y cuando se hacen en contra de la
  927. 43:52sucursal dos y tres los encuentra cada
  928. 43:54uno de los días fumadores en el 1 hasta
  929. 43:57el 31 así que finalizaron todos los
  930. 44:00jugadores al finalizar todos los
  931. 44:02jugadores y todos los productos
  932. 44:03desplazan los portales por su cursado
  933. 44:07hago total por sucursal en base a lo que
  934. 44:11sumamos por filas y en base a lo que
  935. 44:13sumamos con los analizados y fíjense que
  936. 44:16nuestros totales nada exactamente lo
  937. 44:19mismo con lo cual podemos comprobar que
  938. 44:21la ejecución fue correcta de guardemos
  939. 44:26diferencias no salió en ningún momento
  940. 44:28el mensaje de error que les decía
  941. 44:30digamos que sí así funciona esa función
  942. 44:33que hemos hecho bien si le agregamos acá
  943. 44:37el egipto para forzar una una
  944. 44:40planificación de hilos diferente nos
  945. 44:43vamos a hacer exactamente la ejecución
  946. 44:47va a tardar mucho más y obviamente el
  947. 44:50intercalado ha pasado mucho más grandes
  948. 44:52pero fíjense ustedes cómo cambió la
  949. 44:54planificación y cómo pueden ver ustedes
  950. 44:56a medida que se van completando los días
  951. 44:58se van lanzando se van desbloqueando en
  952. 45:01los silos fumadores diarios y van
  953. 45:03tirando los portales diarios
  954. 45:06acá tenemos más gente que la gente que
  955. 45:08la lógica del código de la programación
  956. 45:11que hemos hecho sigue funcionando en
  957. 45:12forma que se demoren las tareas y esté
  958. 45:15slim nos permite probar tanto poniendo
  959. 45:18un slip como en los fumadores como bueno
  960. 45:21productor como el jugador de que es
  961. 45:23independiente que se demora más o menos
  962. 45:26una tarea es la lógica este funciona
  963. 45:30porque no hemos hecho digamos con un
  964. 45:32criterio
  965. 45:34correcto de cómo utilizar esto que son
  966. 45:38los hilos y cómo pueden ver los
  967. 45:40resultados finales es correcto
  968. 45:46no este mensaje también es típico de la
  969. 45:49consola
  970. 45:51bueno esto esto sería todo entonces
  971. 45:56acá podemos ver un ejemplo de variables
  972. 46:00de condición digamos en un contexto de
  973. 46:02ellos
  974. 46:04bueno eso ha sido todo entonces hasta la
  975. 46:06próxima muchísimo

About this transcript

This page contains the full transcript of Sistemas Operativos, Variables de Condicion POSIX Threads (Hilos) by Guillermo Cherencio, generated from the public captions YouTube serves with the video. The transcript has 6,348 words across 975 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.