305 306 Unidade de Controle Unidade Aritmética e Lógica Memória 0 CPU Memória Sistema I/O 1 2 3 4 5 ... N Registradores especiais 307 309 Representação esquemática 308 310 311 312 313 314 Registrador de endereço de memória Seletor Registrador intermediário (buffer) Memória principal 1 2 3 ... ... 32 33 ... N 315 Visão esquemática da memória principal de um computador 316 operador operando1 operando2 317 318 319 320 321 322 operando3 323 324 325 326 327 328 0 código dados n 0 proc a 13 k 0 pilha proc b 10 k tradução de endereço memória física tradução de endereço 0 kernel 19 k Drivers in ROM Sistema Operacional Programa do Usuário Programa do Usuário Programa do Usuário Sistema Operacional Sistema Operacional Formas de organizar a memória com o sistema operacional e um programa de usuário 329 330 limite 0 limite inferior monitor usuário 1 limite inferior usuário 2 usuário 3 usuário 4 128 k limite superior CPU end limite superior sim > sim < não mem. CPU end < base sim + mem. não não trap para o sistema operacional trap para o sistema operacional 331 332 10M 04M 06M 12M - monitor residente - processos pequenos - processos médios - processos grandes uma fila de processos 333 334 5M 2M 3M 7M 7M ......... ...... 2M 1M 2M f2 ............... 3M 4M f6 ....... 7M 11M 8M f 12 335 336 337 338 339 340 monitor 2M 6M 12M 341 342 343 344 Disco Memória monitor limite swap out área do usuário “Swapping” swap in Usuário 1 Usuário 2 “swapping” 345 346 347 348 349 350 351 352 endereço lógico CPU p d endereço físico f d memória física f 353 354 Exemplo: memória virtual= 32 palavras P: 4 palavras Exemplo: memória ísica= 32 palavras F: 4 palavras Total de páginas : 8 Total de frames: 8 u: endereço lógico P: tamanho da página p: número da página d: deslocamento u: endereço lógico P: tamanho do frame p: número do frame d: deslocamento p = u div P d = u mod P p = u div F d = u mod F 4 palavras 355 endereço lógico 0 1 4 15 4 palavras 356 página/deslocamento p d p d p d p d = = = = = = = = 0 div 4 = 0 0 mod 4 = 0 1 div 4 = 0 1 mod 4 = 1 4 div 4 = 1 4 mod 4 = 0 15 div 4 = 3 15 mod 4 = 3 (página) (deslocamento) (página) (deslocamento) (página) (deslocamento) (página) (deslocamento) 357 358 Frame Página Memória lógica 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a b c d e f g h i j l m n o p q 0 0 Página Frame 0 1 2 0 1 2 3 5 6 1 2 Tabela de páginas Memória física 3 4 ijkl 8 mnop 1 2 12 3 16 4 20 abcd 24 efgh 28 Qual o endereço físico do endereço lógico 3? 5 6 7 359 360 361 362 363 364 R: (5 (número do frame da página 0) x 4 (tamanho página)) + 3 (deslocamento) = 23 ED1 ED2 ED3 D1 P1 3 4 6 1 ED1 ED2 ED3 D3 P3 3 4 6 8 ED1 ED2 ED3 D2 P2 3 4 6 7 0 1 2 3 4 5 6 7 8 9 10 D1 D3 ED1 ED2 ED3 D2 Compartilhamento de código 365 366 Tabela de Segmentos s limite base CPU (s d) d yes < memória + trap; addressing error 367 368 15 0 13 12 d s número segmento 369 desloc. 3 bits => 8 seg. 13 bits => 8K desloc. muitos segmentos?? 370 deslocamento segmento 371 373 372