YouTube2Text

sincronización BACA — Transcript

by juancarlosjromer · 4,415 words · 813 segments · language en · Watch on YouTube

Full transcript

  1. 0:02bueno muy buenos días ustedes se
  2. 0:04preguntarán que la sincronización vaca
  3. 0:06bueno ahora se van a enterar de qué se
  4. 0:10trata y de qué vamos a hablar en esta
  5. 0:14sincronización vaca muchas gracias
  6. 0:18bien que es la sincronización vaca la
  7. 0:22sincronización vaca en la ejecución
  8. 0:25sincronizada en el orden proceso de
  9. 0:28proceso a proceso se procesó a y así
  10. 0:32continúan indefinidamente
  11. 0:36estos son puntos suspensivos que quiere
  12. 0:39decir que se repite la ejecución en ese
  13. 0:43orden
  14. 0:44este por supuesto que ese orden es el
  15. 0:48orden en el cual el proceso de ejecuta
  16. 0:51su sección crítica después el proceso a
  17. 0:53ejecuta su sección crítica después
  18. 0:56después el proceso se ejecuta su sección
  19. 0:59crítica después el proceso ejecuta su
  20. 1:02sección crítica y así se repiten
  21. 1:04indefinidamente o hasta que ustedes
  22. 1:07pongan una condición de terminación para
  23. 1:09cada uno de los procesos teniendo
  24. 1:12digamos teniendo en cuenta que cuando un
  25. 1:15proceso termina lo que no tiene que
  26. 1:18suceder es el bloqueo indefinido de los
  27. 1:20otros procesos pero bueno eso después lo
  28. 1:22podemos hablar un poquito más en detalle
  29. 1:24en el código o ustedes se pongan digamos
  30. 1:27más
  31. 1:28entiendan un poquito en lápiz y papel
  32. 1:31cómo vamos a resolver esta
  33. 1:34sincronización de ejecución de la
  34. 1:35sección crítica
  35. 1:38en lápiz y papel bien
  36. 1:43lo vamos a hacer esto lo vamos a
  37. 1:45resolver con semáforos con procesos
  38. 1:49independientes en un entorno operativo
  39. 1:51linux pero primero pensando cuántos
  40. 1:54semáforos vamos a necesitar para
  41. 1:56resolver esta sincronización para
  42. 1:58resolver esta sincronización vamos a
  43. 2:00necesitar cuatro semáforos el semáforo a
  44. 2:04el semáforo ve
  45. 2:08el semáforo
  46. 2:11y el semáforo x
  47. 2:14ustedes lo pueden llamar como quieran el
  48. 2:16lápiz y papel es el lápiz y papel y cada
  49. 2:20uno puede ponerle el nombre que quiera
  50. 2:22otra cosa que tenemos que pensar en la
  51. 2:25inicialización de estos semáforos la
  52. 2:30inicialización va a ser el semáforo a
  53. 2:33inicial izado en 0 el semáforo be
  54. 2:37inicial izado en 1 el semáforo se
  55. 2:40inicial izado en 0 y el semáforo x
  56. 2:43inicial izado en 1
  57. 2:47esta va a ser nuestra inicialización
  58. 2:50y después vamos a poner en la sección
  59. 2:53crítica perdón en cada proceso vamos a
  60. 2:56poner la sección de entrada la sección
  61. 3:00crítica y la sección
  62. 3:04de salida si considerando que eso va a
  63. 3:08estar
  64. 3:09en cada proceso en un ciclo infinito que
  65. 3:15se repite indefinidamente o hasta que
  66. 3:18ustedes le pongan alguna condición de
  67. 3:20finalización entonces vamos a tener la
  68. 3:23sección crítica de cada proceso
  69. 3:26la sección crítica del proceso de la
  70. 3:28sección crítica del proceso a la sección
  71. 3:31crítica del proceso
  72. 3:34esta sección crítica no es semáforo si
  73. 3:38no es semáforo no no es este
  74. 3:42signal no eso quiere decir sección
  75. 3:45crítica vamos a poner una raya acá ahí
  76. 3:47arriba vamos a poner la sección de
  77. 3:49entrada aquí abajo vamos a poner la
  78. 3:51sección de salida la sección de entrada
  79. 3:54va a estar allá arriba la sección de
  80. 3:56salida matraca abajo y acá también
  81. 4:02bueno la sección de me va a quedar un
  82. 4:07poco desprolijo voy a voy a aprender a
  83. 4:10usar este
  84. 4:18para que no me quede tan desprolijo
  85. 4:21porque este usar el mago para escribir
  86. 4:25creo que es bastante complicado no es
  87. 4:28para mí
  88. 4:30voy a ahorrar plata y no voy a comprar
  89. 4:32una tableta digitalizadora
  90. 4:37bueno
  91. 4:39ahí estamos entonces
  92. 4:42cuál es la sección de entrada del
  93. 4:44proceso de la sección de entrada el
  94. 4:46profesor está formada por el testeo de
  95. 4:51los semáforos entonces vamos a hacer un
  96. 4:53wave del semáforo
  97. 4:57esto quiere decir semáforo ve aunque no
  98. 5:00parezca no
  99. 5:02y vamos a hacer un wave del semáforo
  100. 5:10y ahí está
  101. 5:12esa es la sección de entrada como
  102. 5:15ustedes verán el semáforo ve está
  103. 5:18abierto el semáforo x está abierto
  104. 5:20quiere decir que ve puede entrar en su
  105. 5:24sección crítica cual es la sección de
  106. 5:27salida del proceso ve bueno la sección
  107. 5:30de salida del proceso ve es signal
  108. 5:34del semáforo a
  109. 5:41y
  110. 5:42signal
  111. 5:45del semáforo
  112. 5:48o sea que cuando
  113. 5:50el proceso ve salga de su sección
  114. 5:53crítica va a poner en uno va a abrir el
  115. 5:56semáforo de a y va a abrir un semáforo
  116. 6:00para sé bien cuál es la sección de
  117. 6:03entrada del proceso a un wave
  118. 6:07del semáforo a fíjense que cuando
  119. 6:11el proceso estévez sale de su sección
  120. 6:15crítica entonces el proceso a va a
  121. 6:19encontrar es el semáforo ha abierto y va
  122. 6:23a poder pasar de su selección crítica
  123. 6:25con esto nos aseguramos que el primero
  124. 6:27que va a entrar es b y después va a
  125. 6:30poder entrar a su sección crítica el
  126. 6:32proceso bueno ahora viene la sección de
  127. 6:35entrada del proceso se la sección de
  128. 6:37white del semáforo
  129. 6:41el semáforo sé
  130. 6:43que está en cero por lo menos antes de
  131. 6:47que el proceso de algún signal del
  132. 6:50semáforo se y un white del semáforo x
  133. 6:55way del semáforo x que está en cero
  134. 6:59porque ve fíjense que no haya un signal
  135. 7:03sobre el semáforo x
  136. 7:05bien cuál es la salida la sección de
  137. 7:08salida del proceso ce es un signo del
  138. 7:13semáforo
  139. 7:19y es un final del semáforo
  140. 7:24ve
  141. 7:26estoy esperando que hagan brazos
  142. 7:28robóticos para cambiarme el mío porque
  143. 7:31fíjense que desprolijidad
  144. 7:34bueno entonces esto quiere decir que son
  145. 7:37muy perfectos por lo menos yo
  146. 7:39bien me queda por definir la sección de
  147. 7:43salida del proceso a la sesión de salida
  148. 7:46el proceso es un signal
  149. 7:49del semáforo x bueno ahora ustedes le
  150. 7:53estarán dando un poco más de sentido a
  151. 7:56la inicialización de los semáforos
  152. 8:02es empresario mejor esa raya va bien
  153. 8:05bueno ustedes estarán dando un poco más
  154. 8:08de sentido a la inicialización de los
  155. 8:10semáforos porque fíjense qué pasa si se
  156. 8:14manda a ejecutar el proceso a primero
  157. 8:16hace un testeo del semáforo a el
  158. 8:18semáforo a está en cero entonces el
  159. 8:22proceso queda bloqueado esperando
  160. 8:26digamos esperando la señalización del
  161. 8:29semáforo a bien qué pasa si se manda
  162. 8:33ejecutar primero el proceso se moja no
  163. 8:35hay un testeo del semáforo sé que está
  164. 8:38en cero entonces va a quedar bloqueado
  165. 8:41esperando la señalización del semáforo
  166. 8:44se bueno todo se va a destrabar cuando
  167. 8:48alguien mande ejecutar algún usuario
  168. 8:50mande ejecutar el proceso b o un usuario
  169. 8:53que está ejecutando todo este sistema de
  170. 8:55sincronización vasca entonces fíjense
  171. 8:59que cuando se manda a ejecutar el
  172. 9:02proceso ve hace un testeo del semáforo
  173. 9:05ve
  174. 9:06que está en uno entonces automáticamente
  175. 9:10pasa y el semáforo ve queda en cero
  176. 9:14después hace un güey de semáforo x lo
  177. 9:17encuentra también lo encuentra abierto
  178. 9:19entonces
  179. 9:22y deja el semáforo x en 0 entonces el
  180. 9:27único que está dentro de la sección
  181. 9:29crítica es el proceso b
  182. 9:32bien ahora
  183. 9:35ay se están bloqueados que pasa cuando
  184. 9:37ves sale de su sección crítica ve sale
  185. 9:40de su sección crítica y vuelve a entrar
  186. 9:43a la sección de entrada pero cuando
  187. 9:45entré a la sección de entrada entonces
  188. 9:47encuentra el semáforo veía el semáforo x
  189. 9:50en 0 no puede pasar pero bueno este
  190. 9:52cuando sale de su sección crítica
  191. 9:55señaliza
  192. 9:57si eso quiere decir que el semáforo a
  193. 9:59toma el valor 1 y señalizar eso quiere
  194. 10:03decir que el semáforo se toma el valor 1
  195. 10:05o sea estados abiertos
  196. 10:08ahora quien puede pasar bueno el proceso
  197. 10:11evidentemente que estaba bloqueado en el
  198. 10:14semáforo a lo encuentra ahora lo
  199. 10:16encuentra en uno y pasa sí y el semáforo
  200. 10:19se perdona el proceso se encuentra ahora
  201. 10:23el semáforo se en uno y pasa al
  202. 10:28siguiente a la siguiente el siguiente
  203. 10:30igual de la sección de entrada no que lo
  204. 10:32detiene o sea el proceso se queda tenido
  205. 10:35aquí
  206. 10:36bueno voy a repetir esta última parte ve
  207. 10:39entonces y habilita el semáforo va y
  208. 10:43habilita el semáforo se ha entonces que
  209. 10:45hace un buen el semáforo va entonces
  210. 10:49pasa y deja el semáforo
  211. 10:53y en cero o sea que ahora tenemos esta
  212. 10:56es la sección crítica que pasó con c con
  213. 11:00el proceso c se encontró su semáforo se
  214. 11:05el en 1 entonces
  215. 11:08lo dejé el 0 y pasa pero queda bloqueado
  216. 11:12aquí esperando la señalización del
  217. 11:14semáforo x que todavía no ha ocurrido
  218. 11:15muy bien entonces lo único proceso que
  219. 11:18está en la sección crítica ahora esa
  220. 11:21cuando sale de su división crítica
  221. 11:23habilita el semáforo x
  222. 11:29quién está bloqueado en el semáforo xv
  223. 11:31no porque está bloqueado en el semáforo
  224. 11:33ve quién es entonces el proceso se es el
  225. 11:36que está bloqueado en el llamado foro x
  226. 11:39que ahora va a dejar el semáforo x el 0
  227. 11:44y va a permitir el ingreso
  228. 11:47a la sección crítica del proceso se
  229. 11:50viene entonces ahora quien está en la
  230. 11:52sección crítica del proceso se ve dónde
  231. 11:56está está esperando la señalización del
  232. 11:58semáforo ve a dónde está esperando la
  233. 12:01señalización del semáforo va fíjense que
  234. 12:04ve está el 0 ya ya dónde está acá está
  235. 12:07en 0 bien
  236. 12:10y está todo el 0 a bs y x porque porque
  237. 12:14tengo un proceso en la sección crítica y
  238. 12:17aunque aunque el proceso aunque el
  239. 12:22semáforo ve y el semáforo este y el
  240. 12:26semáforo se podría llegar a estar en 1
  241. 12:30sí sin ningún problema por qué y por qué
  242. 12:33están detenidos por el semáforo x bien
  243. 12:35qué pasa cuando qué pasa cuando el
  244. 12:41proceso se sale de sección crítica
  245. 12:43entonces el proceso se sale de esencia
  246. 12:46crítica y habilita al semáforo a dónde
  247. 12:48está acá lo pone en 1 y habilita al
  248. 12:53semáforo ve acá está lo pone en 1
  249. 12:59bien entonces qué pasa si queda
  250. 13:03bloqueado
  251. 13:05en el way de sc porque el semáforo se
  252. 13:09está en 0 y puede pasar
  253. 13:12entonces ahora tenemos a en su sección
  254. 13:15crítica y con el semáforo en 0 b queda
  255. 13:20bloqueado en el semáforo
  256. 13:23x queda bloqueado en el semáforo x
  257. 13:26porque tiene el semáforo b en uno queda
  258. 13:29el 0 y se bloquea en el semáforo x hice
  259. 13:32el proceso se queda bloqueado en la
  260. 13:35primer parte de su decisión de entrada
  261. 13:37entonces tenemos a eso sección crítica
  262. 13:40de bloqueado en voy de sx y se bloqueado
  263. 13:44muy de sc
  264. 13:46el único que puede terminar su sección
  265. 13:49crítica esa que está adentro entonces
  266. 13:51habilita x habilita x quien está
  267. 13:55esperando x el proceso es
  268. 13:58bueno
  269. 14:01creo que ahí todo continúa
  270. 14:04bueno un poco desprolijo espero que esto
  271. 14:08digamos este borrador citó les haya
  272. 14:12servido para entender lo que vamos a
  273. 14:15hacer ahora en linux que vamos a hacer
  274. 14:17en linux ahora bueno voy a hacer un
  275. 14:20clear vamos a
  276. 14:23crear los semáforos
  277. 14:30los semáforos le voy a poner sem
  278. 14:33al crear los semáforos
  279. 14:37inicializar los semáforos
  280. 14:50no es un acento inicializar eso no es
  281. 14:54una equis inicializar los semáforos
  282. 15:00me lo compro una tablet me voy a
  283. 15:03arreglar la tableta para mi cumpleaños
  284. 15:04bien crear los semáforos inicializar los
  285. 15:07semáforos
  286. 15:09crear los procesos
  287. 15:15y crear procesos
  288. 15:22d
  289. 15:24hice
  290. 15:26y ejecutar y ver cómo funciona
  291. 15:32es que está practicando estoy
  292. 15:34practicando estoy trabajando con la
  293. 15:36movilidad de la muñeca
  294. 15:37muy bien vamos a crear los semáforos se
  295. 15:39anuncian los semáforos crear los
  296. 15:41procesos veáis y ejecutarlos y ver
  297. 15:46bien ya estamos en nuestro linux y lo
  298. 15:49primero que vamos a hacer es ejecutar el
  299. 15:51comando y pss
  300. 15:55bien como ustedes están viendo el
  301. 15:58comando y pss nos muestra los recursos
  302. 16:01de comunicación y sincronización que nos
  303. 16:05brinda este sistema operativo entonces
  304. 16:08tenemos los segmentos de memoria
  305. 16:09compartida aca
  306. 16:12tenemos las matrices de semáforo y
  307. 16:16tenemos las colas de mensajes y nosotros
  308. 16:19que tenemos que hacer tenemos que crear
  309. 16:23una matriz de semáforos con cuatro
  310. 16:25semáforos se acuerdan el semáforo a que
  311. 16:28el semáforo ve que el semáforo se y el
  312. 16:32semáforo x para ello necesitamos
  313. 16:35escribir un pequeño programita así que
  314. 16:38vamos a escribir nuestro pequeño
  315. 16:40programita
  316. 16:42muy bien vamos a hacerlo en el head it y
  317. 16:46lo vamos a llamar crea y lee cm puntos
  318. 16:56bien acá estamos en el jardín y vamos a
  319. 16:59empezar por aquí en la función principal
  320. 17:04y ahí estamos
  321. 17:14bien lo primero que vamos a hacer es
  322. 17:17declarar una variable entera que le
  323. 17:20vamos a llamar tema de identificador de
  324. 17:23la red de semáforos y ahí vamos a
  325. 17:26guardar lo que nos devuelve senguer
  326. 17:29vamos a hacer bien este código bien
  327. 17:32romer izado así que lo primero que vamos
  328. 17:34a poner vamos a poner un número extra
  329. 17:36decimal que identifica el array de
  330. 17:40semáforos a nivel de programador después
  331. 17:44vamos a decirle cuántos semáforos
  332. 17:45queremos crear en el array y le vamos a
  333. 17:48dar el flag de inicialización de ipc
  334. 17:53create
  335. 17:552
  336. 17:57ips exclusivo
  337. 18:01es exclusivo y vamos a darle los
  338. 18:07permisos de lectura y escritura de estos
  339. 18:13semáforos después si nos da error de
  340. 18:15compilación lo vamos a arreglar porque
  341. 18:18no recuerdo en este momento bien la
  342. 18:20sintaxis del sheng eta así que lo
  343. 18:21arreglamos
  344. 18:23pero por de pronto vamos a darle esa
  345. 18:26inicialización bien
  346. 18:29eso sería digamos la creación del
  347. 18:32recurso siempre y cuando siempre y
  348. 18:35cuando se min
  349. 18:39sea distinto de -1 y se mide es igual a
  350. 18:43menos 1 entonces imposible crear
  351. 18:47recursos
  352. 18:51el jinete
  353. 18:57error de creación
  354. 19:03bueno no vamos a poder hacer los
  355. 19:08recursos
  356. 19:13bien
  357. 19:14bueno ahora bien si creamos dos
  358. 19:17semáforos y
  359. 19:21se mide distinto menos uno quiere decir
  360. 19:24que nos creó los cuatro semáforos
  361. 19:26entonces ahora lo que podemos hacer es
  362. 19:27inicializar los los inicializa mos con
  363. 19:3167 el control sobre el semáforo lo
  364. 19:35primero que ponemos es el aire de la
  365. 19:38raíz de semáforos después ponemos el
  366. 19:41número del semáforo este sería el
  367. 19:43semáforo vamos a ponerlo por acá este
  368. 19:46sería el semáforo que nosotros llamamos
  369. 19:48semáforo a si semáforo igual a 1
  370. 19:54este semáforo lo vamos a inicializar
  371. 19:56entonces perdón ya me equivoqué semáforo
  372. 20:01a igual a cero si habíamos dicho
  373. 20:04entonces ahí está en teoría en teoría
  374. 20:10cuando se ejecuta esa línea se va a
  375. 20:12inicializar el semáforo
  376. 20:15a ese bien control
  377. 20:22vamos a inicializar el semáforo b
  378. 20:27este es el semáforo ve en uno
  379. 20:32semáforo b
  380. 20:34en 1
  381. 20:36ante colectivos silencio lo comentamos
  382. 20:38muy bien
  383. 20:4067 l se mira es desde el semáforo c
  384. 20:49lo vamos inicializar en 0 recuerden el
  385. 20:52papel y lápiz o el garabato que hice
  386. 20:56con el mouse
  387. 20:59semáforos igual a cero y cmc de l
  388. 21:07se me coma este sería el semáforo x
  389. 21:16y esto sería también en uno
  390. 21:23el semáforo x es igual a 1 bien bueno
  391. 21:28con eso creo que a perdón de olvido los
  392. 21:31incluidos
  393. 21:32vamos a poner el incluir de ese medio
  394. 21:37punto h estándar imputado pues vamos a
  395. 21:41poner el tomamos apropiado
  396. 21:43al mejor estilo copy-paste
  397. 21:47sis
  398. 21:49russell
  399. 21:57ibarra ipc
  400. 22:00y por las dudas
  401. 22:03por las dudas romer es persona
  402. 22:06descodificación romero
  403. 22:13un poquito depende mucho de las
  404. 22:14distribuciones de lino que se te ve en
  405. 22:19las cabeceras que tenemos que incluir
  406. 22:21bien
  407. 22:23bueno en teoría en teoría
  408. 22:28este pequeño código lo que haría es
  409. 22:34crear el recurso crear recursos
  410. 22:39semáforos
  411. 22:42i
  412. 22:44y
  413. 22:47inicializa
  414. 22:54para nuestra
  415. 22:56el curso de un aforo para nuestra
  416. 23:02sincronización
  417. 23:06bien
  418. 23:09hasta ahí estamos bien vamos a guardar
  419. 23:18cerrar volvemos al gel y vamos a
  420. 23:22compilar
  421. 23:24a ver si tenemos errores aquí
  422. 23:30y le ponemos bueno perfecto entonces
  423. 23:38hemos creado el ejecutable crane y lo
  424. 23:46vamos a ejecutar
  425. 23:48y vamos a ejecutar el comando y pss y
  426. 23:52vemos qué
  427. 23:54aquí
  428. 23:57aquí
  429. 23:59en esta parte
  430. 24:02vemos que nos creó una raíz de cuatro
  431. 24:07semáforos
  432. 24:09están los cuatro semáforos
  433. 24:12los permisos el usuario creador del
  434. 24:17recurso él
  435. 24:21identificar del recurso y la clave de
  436. 24:25usuario 0 x a
  437. 24:28ahí tenemos el recurso creado
  438. 24:31e inicial izado podríamos ser un
  439. 24:34programita para ver lo qué
  440. 24:38para ver la inicialización a ver si es
  441. 24:42correcta así que bueno podemos hacerlo
  442. 24:45porque no
  443. 24:48ay
  444. 24:50vamos a hacer un copy de cree
  445. 24:55y michelle
  446. 24:57ver
  447. 24:59[Música]
  448. 25:0112 vamos a editarlo bellinis en punto c
  449. 25:08vamos a modificar este código
  450. 25:13pero acá
  451. 25:18pero acá entonces esto recupera recupera
  452. 25:25él
  453. 25:28en el recurso semáforo cuya
  454. 25:35de usuario es 0 x a
  455. 25:41bien si lo que me devuelve distinto
  456. 25:45menos uno entonces
  457. 25:48vemos la inicialización anterior
  458. 25:59ah
  459. 26:01entonces esto vamos a
  460. 26:08efe
  461. 26:11sea igual
  462. 26:14por ciento de
  463. 26:17sí
  464. 26:1967 l
  465. 26:22'get back'
  466. 26:40i
  467. 26:43ahora vamos a ver el mal a ver si no nos
  468. 26:46estamos equivocando en la llamada en la
  469. 26:50función sin control
  470. 26:54vamos a
  471. 26:58quizás nos equivocamos en algo el manual
  472. 27:01es una gran ayuda para la falta de
  473. 27:04memoria
  474. 27:08i
  475. 27:10semáforo de semáforos y semáforo x
  476. 27:16esto es el semáforo b
  477. 27:19el semáforo
  478. 27:22tx
  479. 27:27paréntesis
  480. 27:33error d
  481. 27:43bueno a vuelo de pájaro guardamos
  482. 27:49[Música]
  483. 27:51vamos a ver el man del ctl
  484. 27:58bien si está ahí tendríamos que agregar
  485. 28:01vamos a ver
  486. 28:05dice
  487. 28:07se mide en un comando bueno hemos
  488. 28:12respetado eso hemos hemos puesto en el
  489. 28:15primer argumento
  490. 28:17en el primer argumento hemos puesto el
  491. 28:20jemad y en el segundo argumento hemos
  492. 28:22puesto el número del semáforo y en el
  493. 28:25tercer argumento hemos puesto el comando
  494. 28:27o sea los comandos son que hemos usado
  495. 28:30son para acá volvemos corto con el mouse
  496. 28:34sepval
  497. 28:37y el otro comando es get vale
  498. 28:40cerval para inicializar y gradual para
  499. 28:43ver la inicialización bueno
  500. 28:46hasta ahí creo que andamos bien no
  501. 28:52salir
  502. 28:56y vamos a ahora compilar
  503. 29:02el verde
  504. 29:07le vamos a poner verín
  505. 29:13bueno acá aparece algo en la línea 15
  506. 29:16una equis vamos a ver
  507. 29:18tenía 15
  508. 29:23dije semáforo xy lehman una equis
  509. 29:26dislexia mental
  510. 29:28ahí está guardar
  511. 29:31la pantalla
  512. 29:34y ahora compilamos de nuevo bueno ahora
  513. 29:36sí o sea que vamos a ejecutar ver
  514. 29:43perfecto esa es la inicialización hasta
  515. 29:46y vamos bien bueno
  516. 29:48ahora vamos a escribir el código del
  517. 29:51proceso
  518. 29:53y vamos a escribir el código el proceso
  519. 29:57b
  520. 30:01edit
  521. 30:03bebé le vamos a poner 12 puntos
  522. 30:12vamos a hacerlo bien romanizado
  523. 30:15lo primero que vamos a hacer es
  524. 30:18si nosotros en papel y lápiz hablamos
  525. 30:22del way del signal y bueno
  526. 30:25no es tan fácil escribirlo en el código
  527. 30:28así que para eso vamos a usar dos
  528. 30:31funciones
  529. 30:32vamos a usar una función que se llame
  530. 30:38p
  531. 30:40si esta va a ser la función del
  532. 30:43prototipo de la función weight
  533. 30:47si esto va a ser un wave cm
  534. 30:51sí
  535. 30:53a esta función le vamos a pasar un
  536. 30:58entero y otro
  537. 31:03este es el prototipo
  538. 31:06de la misma manera
  539. 31:09vamos a usar un prototipo para
  540. 31:12el signo
  541. 31:17esto será signal
  542. 31:23sí
  543. 31:25y la guayaba en honor a dykstra
  544. 31:30quiero holandés proveer en ibero gen
  545. 31:32bien
  546. 31:36y vamos a hacer el mail
  547. 31:43del proceso de que va a ser el proceso
  548. 31:48de bueno va a declarar una variable
  549. 31:53entera donde va a poner recuperar
  550. 31:59el di
  551. 32:02d
  552. 32:04en la ddi de la raíz de semáforos para
  553. 32:06poder utilizar los que va a ser ahora
  554. 32:09bueno ahora va a entrar en el ciclo jaja
  555. 32:13permítanme permítanme acá una macana más
  556. 32:21define romero
  557. 32:261
  558. 32:30entonces
  559. 32:32guay
  560. 32:46bien entonces ahora mientras jota romper
  561. 32:51vamos a escribir la sección de entrada
  562. 32:56de la sección crítica del proceso en la
  563. 32:59sección crítica la base de esto esto
  564. 33:03simplemente que no debería ser una
  565. 33:04sección crítica pero la sección crítica
  566. 33:08proceso ve
  567. 33:11y ustedes ya saben que vamos a son slip
  568. 33:15para que se vea el efecto de la
  569. 33:17sincronización en la pantalla
  570. 33:20el efecto las ignición de la pantalla
  571. 33:22vamos a hacer el segundo
  572. 33:24esa es la sección crítica así
  573. 33:29ahora aquí viene a la sección de entrada
  574. 33:31la sección de entrada que era un wide el
  575. 33:33semáforo ve y un wii del semáforo x
  576. 33:36entonces esto sería dijimos que paraguay
  577. 33:39que les vamos a pasar el array
  578. 33:44el identificador de la red de semáforos
  579. 33:45y le vamos a pasar el número de semáforo
  580. 33:48b era el 1
  581. 33:50de la misma manera
  582. 33:5619 x era él
  583. 34:00si bien y a quien le hacía signal y si
  584. 34:06asigna el proceso de de asia signal al
  585. 34:10semáforo 0 que era el semáforo y de asia
  586. 34:14asignar
  587. 34:15al semáforo dos semáforos y entonces
  588. 34:23vigencia que tenemos esto que sería
  589. 34:26junto al del semáforo
  590. 34:34esto qué sería
  591. 34:41huele
  592. 34:43del semáforo x
  593. 34:49una tableta
  594. 34:59más
  595. 35:01semáforo
  596. 35:05esta consigna de semáforo a
  597. 35:11y esto es un signo
  598. 35:16semáforo
  599. 35:19bien
  600. 35:21bueno
  601. 35:23y acá aunque nunca se va a ejecutar
  602. 35:31porque todo debería quedar en el ciclo
  603. 35:33infinito
  604. 35:36bueno faltarían acá entonces nos
  605. 35:39faltarían los incluye
  606. 35:44[Música]
  607. 35:48es el tedio punto h
  608. 36:04si vargas
  609. 36:05[Música]
  610. 36:11s
  611. 36:17bien bueno que nos faltaría nos faltaría
  612. 36:22y la definición de estas dos funciones
  613. 36:26y casualmente son bastante importantes
  614. 36:35bien en la definición sitio que poner la
  615. 36:39variable del tipo de dato seguir
  616. 36:43y tns
  617. 36:46esto es identificador de la raíz del
  618. 36:49semáforo y esto es número del semáforo
  619. 36:52tengo que ser una estructura zenbook
  620. 36:57y su instancia va a ser wood tengo que
  621. 37:00configurar esta estructura con el número
  622. 37:03de semáforo
  623. 37:06si en s
  624. 37:09después voy a revisar a ver si este se
  625. 37:12llama realmente en ese y aquí voy a
  626. 37:16poner el número del semáforo o sea en
  627. 37:19ese en realidad es un equívoco
  628. 37:28voy a chequear
  629. 37:30voy a chicago
  630. 37:33en metro esa duda
  631. 37:37más
  632. 37:57dónde está
  633. 38:04cómo
  634. 38:08acá los tengo 1s mod
  635. 38:11el otro debería hacerse núm
  636. 38:17señor
  637. 38:19se inflan acá están acá las encontré son
  638. 38:24esa estructura se move tiene estos tres
  639. 38:29atributos el atributo ser un número del
  640. 38:33semáforo el atributo sem of operación
  641. 38:37sobre el semáforo white o signal is en
  642. 38:39flag banderas o indicadores para la
  643. 38:42operación cómo va a funcionar esa
  644. 38:45operación este el menos macro cheque
  645. 38:48porque si no después mi verdad me iba de
  646. 38:49error
  647. 38:50así que cerremos esto
  648. 38:54limpiamos la pantalla bien entremos al
  649. 38:58código de nuevo
  650. 39:01y aquí
  651. 39:03entonces
  652. 39:05esto es el no dijimos bien
  653. 39:09que nosotros le pasamos como argumento
  654. 39:13en ese a la función p bueno esto un
  655. 39:17punto se move la operación para que se
  656. 39:22comporte como wave como la operación wei
  657. 39:26sobre semáforo tengo que poner este un
  658. 39:29-1 ahí y él
  659. 39:32efe lg cm
  660. 39:35efe lg en flag es igual a 0 para que se
  661. 39:40comporte como lo estudiamos en la teoría
  662. 39:44en la bibliografía bien ahí hemos
  663. 39:48configurado una estructura hemos llenado
  664. 39:50una estructura con datos
  665. 39:52ahora vamos a llamar a wave away
  666. 39:56se me ve
  667. 40:00cómo
  668. 40:02esto es lo que realmente hace esto es el
  669. 40:05bueno está ahí se ejecuta el white allí
  670. 40:09la llamó al sistema o en la aplicación
  671. 40:11llama al sistema para que el sistema
  672. 40:13operativo ejecute
  673. 40:16bien de la misma manera
  674. 40:19vamos a escribir el código de el signal
  675. 40:34el único que cambiará para que él se
  676. 40:37move se comporte como un signo es poner
  677. 40:40en operación uno
  678. 40:43uno es lo que se le va a sumar al
  679. 40:45semáforo y acá en el wave
  680. 40:471 es lo que se le va a restar cuando
  681. 40:49haga wake bien acá tengo que poner las
  682. 40:52variables
  683. 40:55s
  684. 40:57bueno este sería el proceso de los
  685. 41:02incluye
  686. 41:04el ciclo infinito digamos el de fai para
  687. 41:07el ciclo infinito los prototipos para
  688. 41:10configurar para configurar el buey
  689. 41:13insignia
  690. 41:14el mail que solamente tiene la
  691. 41:17recuperación de ese mail y el ciclo
  692. 41:20infinito
  693. 41:22y dentro del ciclo infinito la sección
  694. 41:26de entrada tal cual lo vimos en el lápiz
  695. 41:28y papel
  696. 41:29la sección crítica y la sección de
  697. 41:32salida y acá la configuración del wake
  698. 41:36la configuración de
  699. 41:39este signal entonces fíjense que cuando
  700. 41:43llamo la función ps 1001 tal que recibe
  701. 41:47el identificador de la rai recibe el
  702. 41:49semáforo 1 entonces acá hace un way
  703. 41:53sobre el semáforo 1 de la misma manera
  704. 41:55cuando un signo del semáforo 0 llama la
  705. 41:59función b le pasa el cema
  706. 42:04identificador de la raíz de semáforos le
  707. 42:06pasa el 0 que es el semáforo y lo
  708. 42:10incrementa en 1 y es aquí donde se
  709. 42:13ejecuta donde se ejecuta el signal para
  710. 42:16el semáforo 0 o el semáforo
  711. 42:20bueno vamos a guardar
  712. 42:26compilar para ver si tenemos algún error
  713. 42:29por ahí esto vamos llevar el proceso p
  714. 42:36bueno tenemos 137 vamos a ver la línea
  715. 42:4137
  716. 42:45i
  717. 42:477 sí
  718. 42:48[Música]
  719. 42:49pero esto muy bien
  720. 42:59en teoría tenemos el proceso de famosa
  721. 43:04al proceso se basa en el proceso en el
  722. 43:09proceso
  723. 43:12vamos a editar el proceso
  724. 43:16el proceso
  725. 43:23i
  726. 43:30bien el proceso se entonces
  727. 43:34que tenemos que modificar tenemos que
  728. 43:36modificar
  729. 43:38el way del semáforo
  730. 43:42el signal del semáforo
  731. 43:46ve
  732. 43:48y la sección crítica del proceso son lo
  733. 43:52demás todo igual o sea que hace un güey
  734. 43:54del semáforo hacia un buey del semáforo
  735. 43:57se hace un güey del semáforo x a su
  736. 44:01insignia del semáforo
  737. 44:04y hace un signo del semáforo
  738. 44:07bien ya tenemos el proceso ce
  739. 44:15vamos a compilar
  740. 44:21procesos
  741. 44:25bien y ahora vamos a
  742. 44:30el proceso
  743. 44:35ah
  744. 44:43proceso
  745. 44:47bien
  746. 44:51el proceso a tenía solamente un white
  747. 44:55sobre el semáforo ah
  748. 45:01y solamente tenía un signal
  749. 45:05sobre el semáforo
  750. 45:11después todo igual este es el proceso
  751. 45:16los guardamos
  752. 45:19lo compilamos
  753. 45:22proceso a proceso
  754. 45:26bien bueno
  755. 45:31tenemos los semáforos inicializa 2 y ahí
  756. 45:36está
  757. 45:37tenemos los procesos tenemos los
  758. 45:41recursos así que lo único que nos falta
  759. 45:45es ejecutar
  760. 45:46qué pasa si ejecutó primero el proceso
  761. 45:52por ejemplo se bloquea
  762. 45:57se bloquea esperando esperando
  763. 46:03la señalización de
  764. 46:06vamos a poner en el medio tal cual lo
  765. 46:09hicimos en él
  766. 46:11tal cual lo hicimos en
  767. 46:15en el papel y lápiz vamos a abrir esta
  768. 46:18terminal
  769. 46:23qué pasa si ejecutó el proceso
  770. 46:35se bloquea así esperando
  771. 46:41esperando la señalización del semáforo
  772. 46:44sé
  773. 46:46vamos a abrir el terminal
  774. 46:57qué pasa si ejecutamos el proceso ahora
  775. 46:59el proceso
  776. 47:02se lo habíamos puesto acá y el proceso
  777. 47:04lo ponemos al proceso de proceso a
  778. 47:07procesos
  779. 47:09qué pasa
  780. 47:13si ejecutamos el proceso
  781. 47:16de bueno se tendría que destrabar y
  782. 47:21y enter proceso de a
  783. 47:25d
  784. 47:27ah sí
  785. 47:29a ver
  786. 47:32bueno y esto va a quedar así
  787. 47:33indefinidamente al estilo al mejor
  788. 47:35estilo cota romer
  789. 47:37por supuesto que si yo esté
  790. 47:40lo vamos a dejar para un próximo vídeo
  791. 47:43si yo por ejemplo cancelo algún proceso
  792. 47:47control ce
  793. 47:50control c hay que hacer el proceso
  794. 47:54c qué pasa con los otros procesos y
  795. 47:57bueno se bloquean porque no les llega la
  796. 48:00inicialización
  797. 48:02entonces la próxima versión de nuestro
  798. 48:04la próxima versión cual que cuando
  799. 48:07canceló por ejemplo un proceso todos los
  800. 48:10demás procesos también terminen sí pero
  801. 48:13hoy lo podemos dejar así que domingo son
  802. 48:16las tres de la tarde así que nos vamos a
  803. 48:20hacer un videíto próximamente para
  804. 48:24mejorar esta primer versión de nuestra
  805. 48:28sincronización vaca agregándole también
  806. 48:31el uso de memoria compartida
  807. 48:34bueno espero haber esté aclarado algunas
  808. 48:36dudas y incentivar para que surjan
  809. 48:40nuevas dudas así podemos seguir esté
  810. 48:42haciendo vídeos bueno este es el fin de
  811. 48:45la civilización para cada versión pero
  812. 48:48pronto haremos la versión 1 muchas
  813. 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.