YouTube2Text

Sistemas Operativos, Manejo de la memoria 8 Segmentación — Transcript

by Mtro. José Luis Elvira · 1,438 words · 277 segments · language en · Watch on YouTube

Full transcript

  1. 0:01Hola, ¿qué tal? ¿Cómo estás? Seas
  2. 0:03bienvenido al curso Fundamentos de
  3. 0:05Sistemas Operativos. Estamos viendo el
  4. 0:07tema de manejo de la memoria. Hago
  5. 0:10referencia al capítulo ocho del libro de
  6. 0:12texto de Silberschatz y Galvin.
  7. 0:15A continuación vamos a ver otra técnica
  8. 0:18diferente a la paginación, que ahora es
  9. 0:20la segmentación.
  10. 0:22¿Y qué es la segmentación? Pues la
  11. 0:24segmentación es un esquema de manejo de
  12. 0:27la memoria que es visible para el
  13. 0:28programador.
  14. 0:30La paginación, a lo mejor no te lo
  15. 0:32mencioné, pero la paginación es
  16. 0:34invisible para el programador.
  17. 0:36¿Por qué es invisible para el
  18. 0:37programador?
  19. 0:39Porque de una dirección de memoria el
  20. 0:41programador no tiene por qué saber
  21. 0:43cuántos bits son para la página y
  22. 0:45cuántos bits para el desplazamiento.
  23. 0:48Es decir, el programador puede estar
  24. 0:50manipulando direcciones y estar pasando
  25. 0:53por diferentes páginas sin darse cuenta.
  26. 0:56En cambio, la segmentación sí es visible
  27. 1:00para el programador y ahora el
  28. 1:02programador va a tener que estar atento
  29. 1:05en no salirse de un segmento. Vamos a
  30. 1:07ver esto.
  31. 1:09Ahora pues un programa es una colección
  32. 1:12de segmentos.
  33. 1:14Y un segmento pues es una unidad lógica
  34. 1:16como
  35. 1:18código,
  36. 1:19donde está el programa principal, las
  37. 1:21funciones, todo lo que es el código del
  38. 1:24programa.
  39. 1:26Stack. En el stack ¿qué se almacena?
  40. 1:29Pues por ejemplo, cuando nosotros
  41. 1:31hacemos una llamada a una función, ahí
  42. 1:33se almacena la dirección de retorno.
  43. 1:36También, por ejemplo, ahí se pasan
  44. 1:38parámetros a las funciones que son
  45. 1:41parámetros utilizados localmente
  46. 1:44y todas las variables locales en las
  47. 1:47funciones
  48. 1:48se guardan en el stack.
  49. 1:50Y bueno, pues ustedes saben cómo es un
  50. 1:52stack.
  51. 1:53La lógica en un stack es
  52. 1:56primero en entrar, último en salir.
  53. 1:59Y porque un stack y las variables
  54. 2:02globales se guardan en un stack,
  55. 2:04nosotros podemos hacer programas
  56. 2:06recursivos,
  57. 2:07que en algún momento dado ya lo debieron
  58. 2:10de haber visto.
  59. 2:12Y bueno, pues los datos.
  60. 2:15¿Qué hay en el segmento de datos? Pues
  61. 2:18están las variables globales.
  62. 2:20Entonces podríamos decir que cuando un
  63. 2:23proceso está cargado en memoria, pues va
  64. 2:25a haber un segmento de código,
  65. 2:27un segmento de stack y un segmento de
  66. 2:29datos.
  67. 2:32Ahora pues si vemos una visión lógica de
  68. 2:35la segmentación, pues en el espacio de
  69. 2:37usuario tendríamos, por ejemplo, los
  70. 2:39segmentos del programa. Como podemos ver
  71. 2:42los segmentos son de diferente tamaño,
  72. 2:45es decir, ahora tenemos segmentos
  73. 2:48y estos segmentos son de longitud
  74. 2:50variable y en el espacio de direcciones
  75. 2:53físico estos segmentos pues están en
  76. 2:56diferentes direcciones físicas.
  77. 3:02Ahora vamos a ver cómo se haría la
  78. 3:04traducción de direcciones lógicas a
  79. 3:07direcciones físicas con segmentación,
  80. 3:11¿de acuerdo?
  81. 3:12Vamos a suponer que tenemos tres
  82. 3:14segmentos.
  83. 3:16Este segmento empieza en la dirección
  84. 3:1910,000 hexadecimal, es decir, la
  85. 3:21dirección física donde inicia este
  86. 3:22segmento es la dirección 10,000
  87. 3:25hexadecimal.
  88. 3:26Este segmento mide 4,096
  89. 3:29bytes que en hexadecimal es 1,000.
  90. 3:33El segundo segmento
  91. 3:35empieza en la dirección física 12,000
  92. 3:39hexadecimal.
  93. 3:41Este segmento mide
  94. 3:4416,384
  95. 3:47bytes que en hexadecimal es 4,000.
  96. 3:51Y el tercer segmento empieza en la
  97. 3:53dirección física 18,000
  98. 3:57hexadecimal
  99. 3:58y mide
  100. 4:0010,240
  101. 4:02bytes que en hexadecimal
  102. 4:04es 2,800.
  103. 4:07Bueno, para esto entonces vamos a tener
  104. 4:09ahora una tabla de segmentos donde el
  105. 4:13índice de la tabla de segmentos va a ser
  106. 4:15el número de segmento
  107. 4:17y en esta tabla va a estar contenida la
  108. 4:19base
  109. 4:20que es donde inicia el segmento, por
  110. 4:23ejemplo, 10,000 para el segmento 0,
  111. 4:2612,000 para el segmento 1,
  112. 4:2918,000 para el segmento 2. Y el tamaño
  113. 4:33aquí está en hexadecimal,
  114. 4:351,000 que es 4,096 para el segmento 0,
  115. 4:394,000 hexadecimal que es 16,384
  116. 4:42para el segmento 1
  117. 4:44y 2,800 hexadecimal que es 10,240 para
  118. 4:49el segmento 2.
  119. 4:52Ahora pues una dirección lógica se va a
  120. 4:54conformar de segmento y desplazamiento.
  121. 4:59El número de segmento pues lo vamos a
  122. 5:01utilizar como índice en la tabla de
  123. 5:04segmentos,
  124. 5:05vamos a obtener esta base y a esta base
  125. 5:09le vamos a sumar el desplazamiento, ¿de
  126. 5:12acuerdo?
  127. 5:14Algo que va a ser importante es que aquí
  128. 5:16tenemos que comparar si este
  129. 5:18desplazamiento no excede el tamaño del
  130. 5:21segmento.
  131. 5:22En este caso no fue así,
  132. 5:24por lo tanto pues fue
  133. 5:2612,000 que fue la base más 2F00
  134. 5:31que es el desplazamiento,
  135. 5:33esto me dio
  136. 5:3514F00
  137. 5:38que es la dirección física que
  138. 5:40corresponde a esta dirección lógica.
  139. 5:45Ahora vamos a ver
  140. 5:47un ejemplo donde tengo
  141. 5:49una dirección lógica que es segmento 1
  142. 5:53offset
  143. 5:544,100.
  144. 5:57¿Qué va a pasar aquí? Pues resulta que
  145. 5:59este 4,100
  146. 6:01excede el tamaño del segmento.
  147. 6:04¿Qué es lo que va a pasar?
  148. 6:06Pues esta va a ser una dirección física
  149. 6:09inválida, ¿de acuerdo?
  150. 6:12¿Por qué razón? Porque aquí sí, en la
  151. 6:14segmentación tenemos que estar atento
  152. 6:17de que el desplazamiento no exceda el
  153. 6:20tamaño del segmento.
  154. 6:24Bueno, pues así es como se hace la
  155. 6:26traducción de direcciones lógicas en un
  156. 6:29sistema de segmentación a direcciones
  157. 6:31físicas.
  158. 6:33Yo tengo una dirección virtual que es
  159. 6:34segmento, desplazamiento.
  160. 6:37A este segmento
  161. 6:40se le suma un apuntador a la tabla de
  162. 6:42segmentos, ¿para qué?
  163. 6:44Para saber en dónde está la entrada,
  164. 6:47donde está el tamaño y la base.
  165. 6:50A esta base le vamos a sumar el
  166. 6:53desplazamiento, si es que el
  167. 6:54desplazamiento no excede el tamaño, ¿de
  168. 6:56acuerdo?
  169. 6:58Y esto nos va a dar una dirección
  170. 7:01física.
  171. 7:04Es decir, en resumen,
  172. 7:06una dirección lógica consiste de un par
  173. 7:08que es segmento desplazamiento
  174. 7:11y tenemos una tabla de segmentos que
  175. 7:14mapea de forma bidimensional
  176. 7:16direcciones
  177. 7:18físicas.
  178. 7:20Cada entrada de la tabla contiene la
  179. 7:22base que es la dirección,
  180. 7:25donde inicia ese segmento y el límite
  181. 7:28que indica el tamaño de ese segmento.
  182. 7:33Vamos a ver que ahora vamos a tener en
  183. 7:36el procesador un registro que va a ser
  184. 7:38el
  185. 7:42¿Qué va a ser ese registro? Pues va a
  186. 7:44ser un registro que apunta a la
  187. 7:46dirección de la tabla de segmentos en
  188. 7:48memoria, es decir,
  189. 7:50donde inicia la tabla de segmentos, en
  190. 7:52qué parte de la memoria está.
  191. 7:55Y también voy a tener otro registro que
  192. 7:58va a ser el
  193. 8:01Este registro indica el número de
  194. 8:03segmentos que va a tener el programa,
  195. 8:06¿de acuerdo?
  196. 8:07Por lo tanto, pues una dirección va a
  197. 8:10ser válida si el número de segmento del
  198. 8:13cual quiero traducir la dirección
  199. 8:16va a ser menor que STLR,
  200. 8:19es decir, no se va a salir
  201. 8:21de la tabla de segmentos.
  202. 8:25Recolocación.
  203. 8:26¿Okay? En la segmentación la
  204. 8:28recolocación es dinámica.
  205. 8:31Puede ser también por tabla de segmentos
  206. 8:35y la compartición
  207. 8:37también puedo tener segmentos
  208. 8:39compartidos.
  209. 8:41Es decir, el mismo número de segmento
  210. 8:46y la asignación
  211. 8:48pues la asignación, por ejemplo, puede
  212. 8:49ser el primer ajuste
  213. 8:51o el mejor ajuste.
  214. 8:54En la segmentación voy a tener
  215. 8:56fragmentación externa, esto pues es el
  216. 8:59mismo problema que estuvimos viendo con
  217. 9:01particiones de tamaño variable, ¿se
  218. 9:03acuerdan?
  219. 9:06Y en la segmentación pues voy a tener
  220. 9:09bits de protección asociados a los
  221. 9:11segmentos,
  222. 9:12es decir,
  223. 9:13todo lo que es la compartición de
  224. 9:15memoria ocurre a nivel de segmentación.
  225. 9:20Y bueno, en la segmentación lo que vamos
  226. 9:22a utilizar también o una de las ventajas
  227. 9:24que tiene la segmentación es que a nivel
  228. 9:27segmentación es donde se pueden manejar
  229. 9:29los permisos de cada segmento.
  230. 9:32Por ejemplo,
  231. 9:33con estos bits de protección
  232. 9:36yo puedo indicar que un segmento va a
  233. 9:37tener permisos de solo ejecución
  234. 9:40y, por lo tanto, pues un programa no va
  235. 9:42a poder escribir
  236. 9:44en un segmento que tenga permisos de
  237. 9:46solo ejecución.
  238. 9:47Por ejemplo, esos permisos se
  239. 9:49utilizarían para lo que es el segmento
  240. 9:51de código.
  241. 9:52Sin embargo, por ejemplo, el segmento de
  242. 9:54datos pues va a tener permisos de
  243. 9:57lectura y escritura,
  244. 9:58pero no va a tener permisos de
  245. 10:00ejecución. Por lo tanto, no puedo tener
  246. 10:03código cargado en el segmento de datos.
  247. 10:07Y bueno, pues ya que los segmentos
  248. 10:09varían en longitud,
  249. 10:11la asignación de memoria pues es un
  250. 10:13problema de asignación dinámica.
  251. 10:16Aquí vemos un ejemplo de la
  252. 10:18compartición, por ejemplo, es el ejemplo
  253. 10:20del editor.
  254. 10:22Los editores de texto, pues bueno,
  255. 10:24el editor tiene segmentos de código,
  256. 10:26esos segmentos pues van a estar
  257. 10:28compartidos, ¿de acuerdo? Es decir, si
  258. 10:30vemos la tabla de segmentos de los dos
  259. 10:33procesos,
  260. 10:34pues
  261. 10:35en ambos procesos el segmento de código
  262. 10:37tiene la misma dirección base y tiene el
  263. 10:40mismo tamaño, ¿de acuerdo?
  264. 10:43Y pues los segmentos de datos, pues los
  265. 10:45segmentos de datos van a ser, por
  266. 10:46ejemplo, en donde los editores de texto
  267. 10:49pues van a tener los archivos que van a
  268. 10:51estar editando
  269. 10:52y estos pues obviamente van a ser
  270. 10:54diferentes, van a ser diferentes para
  271. 10:56cada editor
  272. 10:57porque de esta manera pues cada editor
  273. 10:59puede estar editando
  274. 11:00diferentes archivos.
  275. 11:04Muchas gracias por tu atención, espero
  276. 11:06haya quedado claro y si no, pues las
  277. 11:08dudas las preguntamos.

About this transcript

This page contains the full transcript of Sistemas Operativos, Manejo de la memoria 8 Segmentación by Mtro. José Luis Elvira, generated from the public captions YouTube serves with the video. The transcript has 1,438 words across 277 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 choose a caption track available on the video.

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, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.