Capítulo 16 Alocação de memória

Tamanho: px
Começar a partir da página:

Download "Capítulo 16 Alocação de memória"

Transcrição

1 Sistemas Operacionais: Conceitos e Mecanismos c Carlos Maziero, 2019 Capítulo 16 Alocação de memória As aplicações, utilitários e o próprio sistema operacional precisam de memória para executar. Como ocorre com os demais recursos de hardware, a memória disponível no sistema deve ser gerenciada pelo SO, para evitar conflitos entre aplicações e garantir justiça no seu uso. Fazendo uso dos mecanismos de hardware de memória apresentados no capítulo 15, o sistema operacional aloca e libera áreas de memória para os processos (ou para o próprio núcleo), conforme a necessidade. Este capítulo apresenta os principais conceitos relacionados à alocação de memória Alocadores de memória Alocar memória significa reservar áreas de memória RAM que podem ser usadas por um processo, por um descritor de socket ou de arquivo no núcleo, por um cache de blocos de disco, etc. Ao final de seu uso, cada área de memória alocada é liberada pela entidade que a solicitou e colocada à disposição do sistema para novas alocações. O mecanismo responsável pela alocação e liberação de áreas de memória é chamado um alocador de memória. Em linhas gerais, o alocador reserva ou libera partes da memória RAM, de acordo com o fluxo de solicitações que recebe (de processos ou do núcleo do sistema operacional). Para tal, o alocador deve manter um registro contínuo de quais áreas estão sendo usadas e quais estão livres. Para ser eficiente, ele deve realizar a alocações rapidamente e minimizar o desperdício de memória [Wilson et al., 1995]. Alocadores de memória podem existir em diversos contextos: Alocador de memória física : organiza a memória física do computador, alocando e liberando grandes áreas de memória para carregar processos ou para atender requisições do núcleo. Alocador de espaço de núcleo: o núcleo do SO continuamente cria e destrói muitas estruturas de dados relativamente pequenas, como descritores de arquivos abertos, de processos, sockets de rede, pipes, etc. O alocador de núcleo obtém áreas de memória do alocador físico e as utiliza para alocar essas estruturas para o núcleo. Alocador de espaço de usuário: um processo pode solicitar blocos de memória para armazenar estruturas de dados dinâmicas, através de operações como malloc e free. O alocador de memória do processo geralmente é implementado por bibliotecas providas pelo sistema operacional, como a LibC. Essas bibliotecas

2 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 194 interagem com o núcleo para solicitar o redimensionamento da seção HEAP do processo quando necessário (Seção 14.2). A Figura 16.1 apresenta uma visão geral dos mecanismos de alocação de memória em um sistema operacional típico. Na figura pode-se observar os três alocadores: de memória física, de núcleo e do espaço de usuário. O esquema apresentado nessa figura é genérico, pois as implementações variam muito entre sistemas operacionais distintos. TEXT malloc free userspace allocator process DATA HEAP STACK userspace kernel process creation drivers data buffers kernel allocator kernel data structures memory areas physical memory allocator page frames Figura 16.1: Mecanismos de alocação de memória Alocação básica O problema básico de alocação consiste em manter uma grande área de memória RAM e atender um fluxo de requisições de alocação e liberação de partes dessa área para o sistema operacional ou as aplicações. Essas requisições ocorrem o tempo todo, em função das atividades em execução no sistema, e devem ser atendidas rapidamente. Vejamos um exemplo simples: considere um sistema hipotético com 1 GB de memória RAM livre em uma área única 1. O alocador de memória recebe a seguinte sequência de requisições: aloca 200 MB (a 1 ), aloca 100 MB (a 2 ), aloca 100 MB (a 3 ), libera a 1, aloca 300 MB (a 4 ) e libera a 3. O alocador atende essas requisições em sequência, 1 Sistemas reais, como os computadores PC, podem ter várias áreas de memória livre distintas e não-contíguas.

3 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 195 reservando e liberando áreas de memória conforme necessário. A Figura 16.2 apresenta uma evolução possível das áreas de memória com as ações do alocador. 0 1 GB início: 1 GB livres aloca 200 MB (a 1 ) aloca 100 MB (a 2 ) aloca 100 MB (a 3 ) libera a 1 aloca 300 MB (a 4 ) libera a 3 t Figura 16.2: Sequência de alocações e liberações de memória. Na Figura 16.2 pode-se observar que, como efeito das alocações e liberações, a área de memória inicialmente vazia se transforma em uma sequência de áreas ocupadas (alocadas) e áreas livres, que evolui a cada nova requisição. Essas informações são geralmente mantidas em uma ou mais listas duplamente encadeadas (ou árvores) de áreas de memória Fragmentação Ao longo da vida de um sistema, áreas de memória são alocadas e liberadas continuamente. Com isso, podem surgir áreas livres ( buracos na memória) entre as áreas alocadas. Por exemplo, na Figura 16.2 pode-se observar que o sistema ainda tem 600 MB de memória livre após a sequência de operações, mas somente requisições de alocação de até 300 MB pode ser aceitas, pois esse é o tamanho da maior área livre contínua disponível. Esse fenômeno se chama fragmentação externa, pois fragmenta a memória livre, fora das áreas alocadas. A fragmentação externa é muito prejudicial, porque limita a capacidade de alocação de memória do sistema. Além disso, quanto mais fragmentada estiver a memória livre, maior o esforço necessário para gerenciá-la, pois mais longas serão as listas encadeadas de área de memória livres. Pode-se enfrentar o problema da fragmentação externa de duas formas: minimizando sua ocorrência, através de estratégias de alocação, desfragmentando periodicamente a memória do sistema, ou permitindo a fragmentação interna Estratégias de alocação Para minimizar a ocorrência de fragmentação externa, cada pedido de alocação pode ser analisado para encontrar a área de memória livre que melhor o atenda. Essa análise pode ser feita usando um dos seguintes critérios:

4 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 196 First-fit (primeiro encaixe): consiste em escolher a primeira área livre que satisfaça o pedido de alocação; tem como vantagem a rapidez, sobretudo se a lista de áreas livres for muito longa. É a estratégia adotada na Figura Best-fit (melhor encaixe): consiste em escolher a menor área possível que possa receber a alocação, minimizando o desperdício de memória. Contudo, algumas áreas livres podem ficar pequenas demais e portanto inúteis. Worst-fit (pior encaixe): consiste em escolher sempre a maior área livre possível, de forma que a sobra seja grande o suficiente para ser usada em outras alocações. Next-fit (próximo encaixe): variante da estratégia first-fit que consiste em percorrer a lista de áreas a partir da última área alocada ou liberada, para que o uso das áreas livres seja distribuído de forma mais homogênea no espaço de memória. Diversas pesquisas [Johnstone and Wilson, 1999] demonstraram que as abordagens mais eficientes são a best-fit e a first-fit, sendo esta última bem mais rápida. A Figura 16.3 ilustra essas estratégias na alocação de um bloco de 80 MB dentro da área de 1 GB. 0 1 GB inicial first-fit best-fit worst-fit Figura 16.3: Estratégias para minimizar a fragmentação externa Desfragmentação Outra forma de tratar a fragmentação externa consiste em desfragmentar a memória periodicamente. Para tal, as áreas de memória usadas pelos processos devem ser movidas na memória de forma a concatenar as áreas livres e assim diminuir a fragmentação. Ao mover um processo na memória, suas informações de endereçamento virtual (registrador base/limite, tabela de segmentos ou de páginas) devem ser devidamente ajustadas para refletir a nova posição do processo na memória RAM. Por essa razão, a desfragmentação só pode ser aplicada a áreas de memória físicas, pois as mudanças de endereço das áreas de memória serão ocultadas pelo hardware. Ela não pode ser aplicada, por exemplo, para a gestão da seção heap de um processo. Como as áreas de memória não podem ser acessadas durante a desfragmentação, é importante que esse procedimento seja executado rapidamente e com pouca frequência, para não interferir nas atividades normais do sistema. As possibilidades de movimentação de áreas podem ser muitas, portanto a desfragmentação deve ser

5 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 197 tratada como um problema de otimização combinatória. A Figura 16.4 ilustra três possibilidades de desfragmentação de uma determinada situação de memória; as três alternativas produzem o mesmo resultado (uma área livre contínua com 450 MB), mas têm custos distintos. Situação inicial 150M 200M 100M 150M 200M 100M Solução 1: move 300M Solução 2: move 200M Solução 3: move 100M Figura 16.4: Possibilidades de desfragmentação Fragmentação interna Uma alternativa para minimizar o impacto da fragmentação externa consiste em arredondar algumas requisições de alocação, para evitar sobras muito pequenas. Por exemplo, na alocação com best-fit da Figura 16.3, a área alocada poderia ser arredondada de 80 MB para 100 MB, evitando a sobra da área de 20 MB (Figura 16.5). Dessa forma, evita-se a geração de um fragmento de memória livre, mas a memória adicional alocada provavelmente não será usada por quem a requisitou. Esse desperdício de memória dentro da área alocada é denominado fragmentação interna (ao contrário da fragmentação externa, que ocorre nas áreas livres). alocar 80 MB (frag. externa) 0 1 GB alocar 100 MB (frag. interna) Figura 16.5: Fragmentação interna. A fragmentação interna afeta todas as formas de organização de memória; as partições e segmentos sofrem menos com esse problema, pois o nível de arredondamento das áreas de memória pode ser decidido caso a caso. No caso da memória paginada, essa decisão não é possível, pois as alocações são sempre feitas em múltiplos inteiros de páginas. Assim, em um sistema com páginas de 4 KBytes (4.096 bytes), um processo que solicite bytes (134,284 páginas) receberá bytes (135 páginas), ou seja, bytes a mais que o solicitado.

6 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 198 Em média, para cada processo haverá uma perda de 1/2 página de memória por fragmentação interna. Uma forma de minimizar a perda por fragmentação interna seria usar páginas de menor tamanho (2K, 1K, 512 bytes ou ainda menos). Todavia, essa abordagem implica em ter mais páginas por processo, o que geraria tabelas de páginas maiores e com maior custo de gerência O alocador Buddy Existem estratégias de alocação mais sofisticadas e eficientes que as apresentadas na seção Um algoritmo de alocação muito conhecido é o chamado Buddy Allocator, ou alocador por pares [Wilson et al., 1995], explicado a seguir. Em sua versão mais simples, a estratégia Buddy sempre aloca blocos de memória de tamanho 2 n, com n inteiro e ajustável. Por exemplo, para uma requisição de 85 KBytes será alocado um bloco de memória com 128 KBytes (2 7 KBytes ou 2 17 bytes), e assim por diante. O uso de blocos de tamanho 2 n reduz a fragmentação externa, mas pode gerar muita fragmentação interna. O valor de n pode variar entre os limites n min e n max, ou seja, n min < n < n max. n min define o menor bloco que pode ser alocado, para evitar custo computacional e desperdício de espaço com a alocação de blocos muito pequenos. Valores entre 1 KByte e 64 KBytes são usuais. Por sua vez, n max define o tamanho do maior bloco alocável, sendo limitado pela quantidade de memória RAM disponível. Em um sistema com MBytes de memória RAM livre, o maior bloco alocável teria MBytes (ou 2 20 Bytes). Os 976 MBytes restantes também podem ser alocados, mas em blocos menores. O funcionamento do alocador Buddy binário (blocos de 2 n bytes) é simples: Ao receber uma requisição de alocação de memória de tamanho 40 KBytes (por exemplo), o alocador procura um bloco livre com 64 KBytes (pois 64 KBytes é o menor bloco com tamanho 2 n que pode conter 40 KBytes). Caso não encontre um bloco com 64 KBytes, procura um bloco livre com 128 KBytes, o divide em dois blocos de 64 KBytes (os buddies) e usa um deles para a alocação. Caso não encontre um bloco livre com 128 KBytes, procura um bloco com 256 KBytes para dividir em dois, e assim sucessivamente. Ao liberar uma área de memória alocada, o alocador verifica se o par (buddy) do bloco liberado também está livre; se estiver, funde os dois em um bloco maior, analisa o novo bloco em relação ao seu par e continua as fusões de blocos, até encontrar um par ocupado ou chegar ao tamanho máximo de bloco permitido. A fusão entre dois blocos vizinhos também é chamada de coalescência. A Figura 16.6 apresenta um exemplo de funcionamento do alocador Buddy. Nesse exemplo didático, o tamanho da memória é de 1 MBytes (1.024 KBytes) e o menor bloco alocável é de 64 KBytes. O alocador de memória recebe a seguinte sequência de requisições: aloca 200 KB (a 1 ), aloca 100 KB (a 2 ), aloca 150 KB (a 3 ), libera a 1 e libera a 2. Além da estratégia binária apresentada aqui, existem variantes de alocador Buddy que usam outras formas de dividir blocos, como a estratégia Buddy com Fibonacci, na qual os tamanhos dos blocos seguem a sequência de Fibonacci 2 e a estratégia Buddy 2 Na sequência de Fibonacci, cada termo corresponde à soma dos dois termos anteriores: 0, 1, 1, 2, 3, 5, 8, 13, 21, etc. Em termos matemáticos, F 0 = 0, F 1 = 1, F n>1 = F n 1 + F n 2.

7 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg início: 1 MB livres 1.024K aloca 200 KB (a 1 ) 512K 512K 512K aloca 100 KB (a 2 ) 128K 512K aloca 150 KB (a 3 ) 128K libera a 1 128K libera a 2 128K 128K 512K t Figura 16.6: O alocador Buddy binário. com pesos, na qual os blocos têm tamanhos 2 n mas são divididos em sub-blocos de tamanho distintos (por exemplo, um bloco de 64 KB seria dividido em dois blocos, de 48 KB e 16KB). O alocador Buddy é usado em vários sistemas. Por exemplo, no núcleo Linux ele é usado para a alocação de memória física (page frames), entregando áreas de memória RAM para a criação de processos, para o alocador de objetos do núcleo e para outros subsistemas. O arquivo /proc/buddyinfo permite consultar informações das alocações existentes O alocador Slab O alocador Slab foi inicialmente proposto para o núcleo do sistema operacional SunOS 5.4 [Bonwick, 1994]. Ele é especializado na alocação de objetos de núcleo, ou seja, as pequenas estruturas de dados que são usadas para representar descritores de processos, de arquivos abertos, sockets de rede, pipes, etc. Esses objetos de núcleo são continuamente criados e destruídos durante a operação do sistema, são pequenos (dezenas ou centenas de bytes) e têm tamanhos relativamente padronizados. Alocar e liberar memória para objetos de núcleo usando um alocador básico ou Buddy implicaria em um custo computacional elevado, além de desperdício de memória em fragmentação. Por isso é necessário um alocador especializado, capaz de fornecer memória para esses objetos rapidamente e com baixo custo. Outra questão importante é a inicialização dos objetos de núcleo: pode-se economizar custos de inicialização se os objetos liberados forem mantidos na memória e reutilizados, ao invés daquela área de memória ser liberada. O alocador Slab usa uma estratégia baseada no caching de objetos. É definido um cache para cada tipo de objeto usado pelo núcleo: descritor de processo, de arquivo, de socket, etc 3. Cada cache é então dividido em slabs (lajes ou placas) que contêm objetos daquele tipo, portanto todos com o mesmo tamanho. Um slab pode estar cheio, quando 3 No kernel Linux 4.1 há mais de 140 caches de objetos; eles estão listados no arquivo /proc/slabinfo.

8 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 200 todos os seus objetos estão em uso, vazio, quando todos os seus objetos estão livres, ou parcial. A Figura 16.7 ilustra a estrutura dos caches de objetos. object cache allocated objects free objects full slabs partial slabs empty slabs Figura 16.7: Estrutura de caches, slabs e objetos do alocador Slab. A estratégia de alocação é a seguinte: quando um novo objeto de núcleo é requisitado, o alocador analisa o cache daquele tipo de objeto e entrega um objeto livre de um slab parcial; caso não hajam slabs parciais, entrega um objeto livre de um slab vazio (o que altera o status desse slab para parcial). Caso não existam slabs vazios, o alocador pede mais páginas de RAM ao alocador de memória física para criar um novo slab, inicializar seus objetos e marcá-los como livres. Quando um objeto é liberado, ele é marcado como livre; caso todos os objetos de um slab fiquem livres, este é marcado como vazio. Caso o sistema precise liberar memória para outros usos, o alocador pode descartar os slabs vazios, liberando suas áreas junto ao alocador de memória física. O alocador Slab é usado para a gestão de objetos de núcleo em muitos sistemas operacionais, como Linux, Solaris, FreeBSD e Horizon (usado no console Nintendo Switch) Alocação no espaço de usuário Da mesma forma que o núcleo, aplicações no espaço de usuário podem ter necessidade de alocar memória durante a execução para armazenar estruturas de dados dinâmicas (conforme discutido na Seção 14.3). Ao ser criado, cada processo recebe uma área para alocação dinâmica de variáveis, chamada HEAP. O tamanho dessa seção pode ser ajustado através de chamadas de sistema que modifiquem o ponteiro Program Break (vide Seção 14.2). A gerência da seção HEAP pode ser bastante complexa, caso a aplicação use variáveis dinâmicas para construir listas, pilhas, árvores ou outras estruturas de dados mais sofisticadas. Por isso, ela usualmente fica a cargo de bibliotecas de sistema, como a biblioteca C padrão (LibC), que oferecem funções básicas de alocação de memória como malloc e free. A biblioteca então fica encarregada de alocar/liberar blocos de memória na seção HEAP, gerenciar quais blocos estão livres ou ocupados, e solicitar ao núcleo do SO o aumento ou redução dessa seção, conforme necessário. Existem várias implementações de alocadores de uso geral para o espaço de usuário. As implementações mais simples seguem o esquema apresentado na seção 16.2, com estratégia best-fit. Implementações mais sofisticadas, como a DLmalloc (Doug

9 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 201 Lea s Malloc), usada nos sistemas GNU/Linux, usam diversas técnicas para evitar a fragmentação e agilizar a alocação de blocos de memória. Além dos alocadores de uso geral, podem ser desenvolvidos alocadores customizados para aplicações específicas. Uma técnica muito usada em sistemas de tempo real, por exemplo, é o memory pool (reserva de memória). Nessa técnica, um conjunto de blocos de mesmo tamanho é pré-alocado, constituindo um pool. A aplicação pode então obter e liberar blocos de memória desse pool com rapidez, pois o alocador só precisa registrar quais blocos estão livres ou ocupados. Exercícios 1. Explique o que é fragmentação externa. Quais formas de alocação de memória estão livres desse problema? 2. Explique o que é fragmentação interna. Quais formas de alocação de memória estão livres desse problema? 3. Em que consistem as estratégias de alocação first-fit, best-fit, worst-fit e next-fit? 4. Considere um sistema com processos alocados de forma contígua na memória. Em um dado instante, a memória RAM possui os seguintes buracos, em sequência e isolados entre si: 5K, 4K, 20K, 18K, 7K, 9K, 12K e 15K. Indique a situação final de cada buraco de memória após a seguinte sequência de alocações: 12K 10K 5K 8K 10K. Considere as estratégias de alocação first-fit, best-fit, worst-fit e next-fit. 5. Considere um banco de memória com os seguintes buracos não-contíguos: B1 B2 B3 B4 B5 B6 10MB 4MB 7MB 30MB 12MB 20MB Nesse banco de memória devem ser alocadas áreas de 5MB, 10MB e 2MB, nesta ordem, usando os algoritmos de alocação First-fit, Best-fit ou Worst-fit. Indique a alternativa correta: (a) Se usarmos Best-fit, o tamanho final do buraco B4 será de 6 Mbytes. (b) Se usarmos Worst-fit, o tamanho final do buraco B4 será de 15 Mbytes. (c) Se usarmos First-fit, o tamanho final do buraco B4 será de 24 Mbytes. (d) Se usarmos Best-fit, o tamanho final do buraco B5 será de 7 Mbytes. (e) Se usarmos Worst-fit, o tamanho final do buraco B4 será de 9 Mbytes. 6. Considere um alocador de memória do tipo Buddy binário. Dada uma área contínua de memória RAM com 1 GByte (1.024 MBytes), apresente a evolução da situação da memória para a sequência de alocações e liberações de memória indicadas a seguir. (a) Aloca A MB

10 Sistemas Operacionais: Conceitos e Mecanismos cap. 16 pg. 202 (b) Aloca A MB (c) Aloca A 3 (d) Libera A 2 (e) Libera A 1 (f) Aloca A MB (g) Aloca A 5 40 MB (h) Aloca A MB Atividades 1. Construa um simulador de algoritmos básicos de alocação de memória. O simulador deve produzir aleatoriamente uma sequência de blocos de memória de tamanhos diferentes, simular sua alocação e gerar como saída o número de fragmentos livres de memória, os tamanhos do menor e do maior fragmentos e o tamanho médio dos fragmentos. Devem ser comparadas as estratégias de alocação first-fit, next-fit, best-fit e worst-fit. Referências J. Bonwick. The slab allocator: An object-caching kernel memory allocator. In USENIX Summer Conference, volume 16. Boston, MA, USA, M. S. Johnstone and P. R. Wilson. The memory fragmentation problem: solved? ACM SIGPLAN Notices, 34(3):26 36, P. R. Wilson, M. S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. In Memory Management, pages Springer, 1995.

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gestão de memória - Alocação de memória Prof. Carlos Maziero DInf UFPR, Curitiba PR Abril de 2019 1/22 Conteúdo 1 Alocação de memória 2 Fragmentação Estratégias de alocação Desfragmentação

Leia mais

FRAGMENTAÇÃO/COMPARTILHAMENTO DE MEMÓRIA AULA 12 Sistemas Operacionais Gil Eduardo de Andrade

FRAGMENTAÇÃO/COMPARTILHAMENTO DE MEMÓRIA AULA 12 Sistemas Operacionais Gil Eduardo de Andrade FRAGMENTAÇÃO/COMPARTILHAMENTO DE MEMÓRIA AULA 12 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero

Leia mais

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física Aulas anteriores Gerência de Memória Introdução e Particionamento Marcelo Johann Ciclo de Compilação, ligação e carga INF - Sistemas Operacionais I N - Marcelo Johann - 9/ Aula : Slide INF - Sistemas Operacionais

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Gestão de memória : registos e alocação Programação de Sistemas Registos e Alocação : 1/11 Introdução (1) A gestão de memória aborda as melhores estratégias para atribuir ( allocate

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Gerência de memória Considerações adicionais Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

MEMÓRIA LÓGICA E FÍSICA (1)

MEMÓRIA LÓGICA E FÍSICA (1) GERÊNCIA DE MEMÓRIA memória = vetor de palavras (ou bytes), cada uma com endereço próprio a memória é usada para armazenar os diversos programas em execução, bem como os dados sobre a execução dos programas

Leia mais

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Gerência de Memória Alexandre Amory Edson Moreno Índice 1. Introdução e histórico de Gerência de Memória 2. Endereçamento da Memória Principal Introdução Sistema

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de

Leia mais

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA Prof. Hélio Esperidião DEFINIÇÕES DE ARQUIVOS Um arquivo é basicamente um conjunto de dados armazenados em um dispositivo físico não-volátil, com

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo A. Moraes Lima 1 int a; p1 ( ) { int b; int *c; a = b +1; c = malloc (sizeof(int));... } int main ( ) {... } Pilha O que é memória? Pilha Dados Texto Endereço Max

Leia mais

Sistemas Opera r cionais Gerência de Memória

Sistemas Opera r cionais Gerência de Memória Sistemas Operacionais Gerência de Memória Gerência de Memória Idealmente, o que todo programador deseja é dispor de uma memória que seja grande rápida não volátil Hierarquia de memórias pequena quantidade

Leia mais

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes. Sistemas Operacionais Sistema de Arquivos Edeyson Andrade Gomes www.edeyson.com.br Sistema de Arquivos Mecanismo que provê armazenamento e acesso a dados e programas do Sistema Operacional e do usuário;

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 13ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ INTRODUÇÃO À TECNOLOGIA DA OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ INTRODUÇÃO O Sistema de Arquivos é o modo como as informações são armazenadas nos dispositivos físicos de armazenamento, exemplo

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo Ap. Moraes Lima Paginação Espaço de endereço de um processo pode ser não contíguo; ao processo é alocado memória física sempre que disponível. Divide memória física

Leia mais

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition Capítulo 8: Memória Principal Silberschatz, Galvin and Gagne 2009 Objetivos Fornecer uma descrição detalhada das várias formas de organizar a memória do computador Discutir várias técnicas de gerenciamento

Leia mais

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2 SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes (soufes@gmail.com) 2ª. Lista de Exercícios Parte

Leia mais

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos Infra Estruturas Computacionais Professor: André Ferreira andre.ferreira@ifba.edu.br Material baseado: Prof.ª Renata Vilas e outros Estados dos processos novo admissão condição satisfeita pronto carga

Leia mais

Sistemas de Arquivos. (Aula 23)

Sistemas de Arquivos. (Aula 23) Sistemas de Arquivos (Aula 23) Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais 2008/1 Necessidade de Armazenamento

Leia mais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução Introdução Gerência de Memória (Aula 18) Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será

Leia mais

INTRODUÇÃO AOS SISTEMAS DE ARQUIVO. Prof. Hélio Esperidião

INTRODUÇÃO AOS SISTEMAS DE ARQUIVO. Prof. Hélio Esperidião INTRODUÇÃO AOS SISTEMAS DE ARQUIVO Prof. Hélio Esperidião Definições de Arquivos Um arquivo é basicamente um conjunto de dados armazenados em um dispositivo físico não-volátil, com um nome ou outra referência

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 7: Implementação de Processos e Threads Diego Passos Revisão Programação Concorrente e Multiprogramação SOs modernos permitem diversos processos em memória. Cada

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar Conceitos

Leia mais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Estrutura de Dados. Aula 07 Alocação Dinâmica Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Primária 29/04/204 Prof. Valeria M. Bastos ORGANIZAÇÃO DA UNIDADE Processador - Escalonamento Memória Primária Fundamentos Formas de Particionamento

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Gerência de Memória (cont) Andreza leite andreza.leite@univasf.edu.br O Grande Problema Alocação Contínua: Fragmentação 3 Fragmentação de Memória A gestão de memória mediante partições

Leia mais

slide Pearson Prentice Hall. Todos os direitos reservados.

slide Pearson Prentice Hall. Todos os direitos reservados. slide 1 Sistema de Arquivos slide 2 Sistemas de arquivos Condições essenciais para armazenamento de informações por um longo prazo: Deve ser possível armazenar uma grande quantidade de informação A informação

Leia mais

slide Pearson Prentice Hall. Todos os direitos reservados.

slide Pearson Prentice Hall. Todos os direitos reservados. Sistema de Arquivos slide 1 Sistemas de arquivos Condições essenciais para armazenamento de informações por um longo prazo: Deve ser possível armazenar uma grande quantidade de informação A informação

Leia mais

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 16. Memória Virtual: Linux

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 16. Memória Virtual: Linux Aula 16 Memória Virtual: Linux Gerência de Memória Física Como o usuário aloca memória? - Através do sistema de memória virtual Como o núcleo aloca memória? - Por exemplo, para uso interno, ou como o sistema

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Gerenciamento de Memória Idealmente, o que todo programador deseja é dispor de

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras

Leia mais

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3) Endereçamento Virtual (1) Gerência de Memória Paginação Espaço de endereçamento dos processos não linearmente relacionado com a física Cada vez que são usados, os endereços virtuais são convertidos pela

Leia mais

Implementação de Diretórios (1)

Implementação de Diretórios (1) Implementação de Diretórios (1) Ao abrir um arquivo, o SO usa o caminho para localizar a entrada no diretório. A entrada no diretório fornece informações para localizar os blocos de disco. Endereço de

Leia mais

Memória virtual. Sistemas de Computação

Memória virtual. Sistemas de Computação Memória virtual Fundamentos Memória virtual separação da memória lógica do usuário da memória física somente uma parte do programa precisa estar na memória para execução espaço de endereçamento lógico

Leia mais

Introdução. Considerações:

Introdução. Considerações: Gerência de Memória Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45 Gerência de Memória Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 45 Sumário 1 Introdução 2 Espaços de endereçamento 3 Realocação estática e

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011 Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto

Leia mais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 9. GERÊNCIA DE MEMÓRIA: 9.1 Introdução; 9.2 Funções Básicas; 9.3 Alocação Contígua Simples;

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:

Leia mais

Gerência de Memória Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 19: Memória Virtual: Introdução Diego Passos Última Aula Paginação Método de gerenciamento de memória mais usado hoje. Espaço de endereçamento de um processo é

Leia mais

Algoritmos de Gestão de Memória

Algoritmos de Gestão de Memória Gestão de Memória Parte II - algoritmos Sistemas Operativos 2015 / 2016 Algoritmos de Gestão de Memória Os algoritmos de gestão de memória são utilizados para decidir: Onde se deve colocar um bloco (segmento

Leia mais

Introdução à Informática. Alexandre Meslin

Introdução à Informática. Alexandre Meslin Introdução à Informática Alexandre Meslin (meslin@nce.ufrj.br) Objetivos Dispositivos de armazenamento Sistemas de arquivos Memória ROM Memória de apenas leitura Utilizada para armazenar programas e dados

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto programa estiver executando

Leia mais

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Notas da Aula 7 - Fundamentos de Sistemas Operacionais Notas da Aula 7 - Fundamentos de Sistemas Operacionais 1. Organização de um Processo em Memória Quando um processo é criado, o SO aloca uma porção da memória física da máquina para a criação do espaço

Leia mais

Gerência da Memória. Adão de Melo Neto

Gerência da Memória. Adão de Melo Neto Gerência da Memória Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Atualmente

Leia mais

Sistemas de Computação. Gerenciamento de memória

Sistemas de Computação. Gerenciamento de memória Gerenciamento de memória Localização de processos Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado Os processos podem

Leia mais

Sistemas Operacionais. - Gerência de Memória -

Sistemas Operacionais. - Gerência de Memória - Sistemas Operacionais - Gerência de Memória - Gerenciamento de Memória A organização e a gerência de memória são fatores importantes no projeto de sistemas operacionais Um dos objetivos é desenvolver um

Leia mais

AULA 14 - Memória Virtual

AULA 14 - Memória Virtual AULA 14 - Memória Virtual A idéia básica da memória virtual é permitir que programas muito maiores que a memória disponível possam ser executados. Para isso, em 1961 Fotheringham criou o método conhecido

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) Espaço de endereçamento dos processos não linearmente relacionado com a memória física Cada vez que são usados, os endereços virtuais são convertidos

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright

Leia mais

INE5412 Sistemas Operacionais I

INE5412 Sistemas Operacionais I INE5412 Sistemas Operacionais I L. F. Friedrich Capítulo 3 Memoria Virtual Projeto/Implementação Sistemas operacionais modernos Terceira edição ANDREW S. TANENBAUM L. F. Friedrich Capítulo 3 Gerenciamento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento da Memória Programas precisam ser trazidos para a memória para serem

Leia mais

Gerência da Memória Memória Virtual. Adão de Melo Neto

Gerência da Memória Memória Virtual. Adão de Melo Neto Gerência da Memória Memória Virtual Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal

Leia mais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização de arquivos Operações de E/S Estrutura de diretórios Gerência de espaço livre Gerência de alocação de espaços

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais GERÊNCIA DE MEMÓRIA SUMÁRIO 5. GERÊNCIA DE MEMÓRIA: 5.1 Introdução; 5.2 Funções Básicas; 5.3 Alocação Contígua Simples; 5.4 Técnica de Overlay; ; 5.6 Swapping.

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Introdução a gerência de memória Aula 9 Programa para executar tem que estar na memória Programa em execução é um processo Multiprogramação

Leia mais

Capítulo 11 Sistemas de Arquivos

Capítulo 11 Sistemas de Arquivos Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo Sistemas de s Introdução O armazenamento e a recuperação de informações

Leia mais

Gerência de memória III

Gerência de memória III Gerência de memória III Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 45 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Nível do Sistema Operacional (Parte

Leia mais

Gestão de Memória. Algoritmos de Gestão de Memória

Gestão de Memória. Algoritmos de Gestão de Memória Gestão de Memória Parte II Algoritmos Algoritmos de Gestão de Memória Tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: Transferência: quando transferir um bloco de

Leia mais

Gerência de memória II

Gerência de memória II Gerência de memória II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 48 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares

Leia mais

Gerenciamento de memória

Gerenciamento de memória Gerenciamento de memória Pedro Cruz EEL770 Sistemas Operacionais Lembretes Trabalho Dia 22 de setembro de 2017 Calendário Gregoriano James Kurose Amanhã, CT2, 15h 2 Relembrando: processo na memória Pilha

Leia mais

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 9 Gerência de Memória Cap. 5 Gerência de Memória 1 Sumário Introdução Funções básicas Alocação contígua simples Técnica

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Gerência de Dispositivos Dispositivos de E/S Device Drivers Controladores Subsistema de E/S 2 Gerência de Dispositivos A gerência de

Leia mais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Gerência de Memória Virtual Conteúdo retirado do livro Arquitetura de Sistemas Operacionais Francis Berenger Machado

Leia mais

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco GSI018 Sistemas Operacionais 31/10/2016 Implementação de Sistemas de Arquivos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... Memória

Leia mais

Paginação e Segmentação. Memória Principal

Paginação e Segmentação. Memória Principal Paginação e Segmentação Memória Principal Paginação Memória Principal Paginação A paginação é um recurso gerenciado por Hardware; Ela divide a memória física em várias partes de tamanho igual, chamados

Leia mais

Segmentação de Memória

Segmentação de Memória Segmentação de Memória Pedro Cruz EEL770 Sistemas Operacionais Memória volátil Algoritmos de substituição Substituição de páginas não usadas recentemente Substituição de páginas primeiro a entrar, primeiro

Leia mais

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos Sistemas Operacionais II Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos Threads Suporte a threads no núcleo; Foi definida uma nova chamada ao sistema não presente no Unix:

Leia mais

Sistemas Operativos: Gestão de Memória

Sistemas Operativos: Gestão de Memória Sistemas Operativos: Gestão de Memória Pedro F. Souto (pfs@fe.up.pt) April 28, 2012 Sumário Conceitos e Técnicas Básicas Swapping Gestão da Memória Física Sumário Conceitos e Técnicas Básicas Swapping

Leia mais

Sistemas Operacionais: Memória Virtual

Sistemas Operacionais: Memória Virtual Sistemas Operacionais: Memória Virtual Memória virtual Memória virtual: separação entre a visão lógica do usuário e a memória física Somente uma parte do programa necessita estar na memória para executar

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Implementação de arquivos Gerenciamento de espaço em disco Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3. Brasil Creative Commons. Para visualizar uma

Leia mais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização dos arquivos Estrutura de diretório Gerência de espaço livre Gerência de alocação de arquivos em disco Proteção

Leia mais

Gerenciamento de Memória. Aleardo Manacero Jr.

Gerenciamento de Memória. Aleardo Manacero Jr. Gerenciamento de Memória Aleardo Manacero Jr. Introdução Até agora examinamos estruturas considerando apenas sua organização Com isso estudamos os algoritmos para a manipulação básica dos elementos dentro

Leia mais

GERENCIAMENTO DE MEMÓRIA

GERENCIAMENTO DE MEMÓRIA GERENCIAMENTO DE MEMÓRIA Sistemas Operacionais Gerenciamento de memória O que vem em sua cabeça quando pensa em memória? Cache RAM Velocidade Custo Memória Secundária Capacidade 2 Hierarquias de Memórias

Leia mais

UNIX Gerência de Memória

UNIX Gerência de Memória UNIX Gerência de Memória Introdução Unix implementado sobre muitos computadores diferen tes baseada, segmentada, paginada, segmentada/paginada A gerência de memória garante: Proteção do espaço de endereçamento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Sistemas Operacionais. Gerenciamento de Memória

Sistemas Operacionais. Gerenciamento de Memória Sistemas Operacionais Gerenciamento de Memória Prof. Arliones Hoeller arliones.hoeller@ifsc.edu.br Abril de baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto 6 de março de Prof. Arliones

Leia mais

Gerência da Memória. Adão de Melo Neto

Gerência da Memória. Adão de Melo Neto Gerência da Memória Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Atualmente

Leia mais

Memória virtual. Sistemas Segmentados

Memória virtual. Sistemas Segmentados Memória virtual Sistema de memória virtual - aquele onde os endereços usados pelos programas podem ser distintos dos endereços físicos da memória central Os endereços que os programas usam são endereços

Leia mais

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition Capítulo 11: Implementação de Sistemas de Arquivos Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação

Leia mais

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior - Capítulo 5 Afirmações Entrada/Saída Introdução Processos se comunicam com o mundo externo através de dispositivos de E/S. Processos não querem ou não precisam entender como funciona o hardware. Função

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Capítulo 6 Nível do Sistema Operacional

Capítulo 6 Nível do Sistema Operacional Capítulo 6 Nível do Sistema Operacional - Sistema Operacional: Programa que, do ponto de vista do programador, adiciona uma grande quantidade de instruções e funcionalidades bem além das disponibilizadas

Leia mais

Gestão de Memória. Algoritmos de Gestão de Memória

Gestão de Memória. Algoritmos de Gestão de Memória Gestão de Memória Parte II Algoritmos Algoritmos de Gestão de Memória Tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: Reserva: onde colocar um bloco de informação?

Leia mais

Ambiente de tempo de Execução Cap. 7

Ambiente de tempo de Execução Cap. 7 Ambiente de tempo de Execução Cap. 7 Introdução Subdivisão da memória usada pelo programa em tempo de execução Segmento de Código Segmento Estático (segmento de dados) Pilha Área de memória livre Heap

Leia mais

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes (soufes@gmail.com) 3ª. Lista de Exercícios Data

Leia mais

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo

Leia mais

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior Sistemas Operacionais II Unix: Memória e E/S Geraldo Braz Junior Gerenciamento de Memória Gerenciamento de Memória Espaço de Endereçamento 1. Segmento de código Instruções de máquina que formam o código

Leia mais

Sistemas de arquivos

Sistemas de arquivos Todos os programas precisam armazenar e recuperar dados. Os processos não podem armazenar grande quantidade de dados no seu espaço de endereçamento. Quando o processo chega ao final os dados no seu espaço

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Implementação de arquivos Gerenciamento de espaço em disco Aula 19 Arquivo é a unidade de armazenamento de informações Para implementar

Leia mais