Segmentação (memória): diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
m Substituição de predefinições obsoletas
Dbastro (discussão | contribs)
m manut. de refs.
Linha 1: Linha 1:
{{Sem-fontes|data=novembro de 2010| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}
{{Mais fontes|data=novembro de 2010| arte=| Brasil=| ciência=sim| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}
Em [[sistema operacional|sistemas operacionais]], '''segmentação''' é uma das maneiras mais comuns para a [[proteção de memória]], sendo a [[memória paginada]] outro método bastante utilizado. Significa que parte da memória é removida do [[processo (informática)|processo]] sendo executado atualmente, através do uso de [[registrador]]es. Se o dado prestes a ser lido ou escrito está fora do espaço de endereços do processo, uma [[falha de segmentação]] é lançada.<ref name="os-concepts-essentials">Operating Systems Concepts Essentials; Abraham Silberschatz, Peter Baen Galvin, Greg Gagne; John Wiley & Sons, 2011</ref>

Em [[sistema operacional|sistemas operacionais]], '''segmentação''' é uma das maneiras mais comuns para a [[proteção de memória]], sendo a [[memória paginada]] outro método bastante utilizado. Significa que parte da memória é removida do [[processo (informática)|processo]] sendo executado atualmente, através do uso de [[registrador]]es. Se o dado prestes a ser lido ou escrito está fora do espaço de endereços do processo, uma [[falha de segmentação]] é lançada.


Qualquer [[programa de computador]] está dividido em secções, como as declarações de [[Variável (programação)|variáveis]] e declarações de [[Sub-rotina|subrotinas]], sobretudo se ele foi escrito numa [[Linguagem de programação de alto nível|linguagem de alto nível]]. Em termos de [[tempo de execução|execução]], cada uma dessas secções vai ocupar um segmento da memória.
Qualquer [[programa de computador]] está dividido em secções, como as declarações de [[Variável (programação)|variáveis]] e declarações de [[Sub-rotina|subrotinas]], sobretudo se ele foi escrito numa [[Linguagem de programação de alto nível|linguagem de alto nível]]. Em termos de [[tempo de execução|execução]], cada uma dessas secções vai ocupar um segmento da memória.


O [[sistema operativo]] que suporta este sistema possuirá uma [[tabela]] com os tamanhos e [[endereço de memória|endereços de memória]] dos vários segmentos de um programa para saber onde estão. Cada segmento possui um conjunto de permissões (leitura, escrita ou execução) e um tamanho associado. Se o processo é autorizado pelas permissões a referenciar a memória da maneira como deseja e se o endereço está no trecho do segmento, a referência do endereço da memória é permitida. Senão, a falha de segmentação é lançada. Outra associação além de permissão e tamanho é a informação de onde o segmento está localizado na memória.
O [[sistema operativo]] que suporta este sistema possuirá uma [[tabela]] com os tamanhos e [[endereço de memória|endereços de memória]] dos vários segmentos de um programa para saber onde estão. Cada segmento possui um conjunto de permissões (leitura, escrita ou execução) e um tamanho associado. Se o processo é autorizado pelas permissões a referenciar a memória da maneira como deseja e se o endereço está no trecho do segmento, a referência do endereço da memória é permitida. Senão, a falha de segmentação é lançada. Outra associação além de permissão e tamanho é a informação de onde o segmento está localizado na memória.<ref name="vade-mecum">[http://www.freeprogrammingebooks.net/free_programming_ebook_others/operating_systems_vademecum.php An Operating Systems Vade Mecum], Raphael Finkel, University of Kentucky, 1988</ref>


Uma [[MMU]] é responsável pela tradução de um segmento e um endereço relativo no segmento em um [[endereço de memória]], e também pela verificação da permissão da referência e valor do endereço relativo.
Uma [[MMU]] é responsável pela tradução de um segmento e um endereço relativo no segmento em um [[endereço de memória]], e também pela verificação da permissão da referência e valor do endereço relativo.
Linha 11: Linha 10:
Seu uso não deve ser confundido com a segmentação de memória utilizada pelas antigas [[arquitetura de computador|arquiteturas de computador]] [[x86]], como o [[Intel 8086]] e o [[Intel 8088]], que não forneciam proteção; a segmentação a partir do [[Intel 80286]] passou a fornecer proteção.
Seu uso não deve ser confundido com a segmentação de memória utilizada pelas antigas [[arquitetura de computador|arquiteturas de computador]] [[x86]], como o [[Intel 8086]] e o [[Intel 8088]], que não forneciam proteção; a segmentação a partir do [[Intel 80286]] passou a fornecer proteção.


==Ver também==
== Ver também ==
* [[Memória paginada]]
* [[Memória paginada]]
* [[Memória virtual]]
* [[Memória virtual]]
* [[Segmento de dados]]
* [[Segmento de dados]]



{{Referências}}
{{esboço-informática}}
{{esboço-informática}}



Revisão das 13h30min de 5 de outubro de 2020

Em sistemas operacionais, segmentação é uma das maneiras mais comuns para a proteção de memória, sendo a memória paginada outro método bastante utilizado. Significa que parte da memória é removida do processo sendo executado atualmente, através do uso de registradores. Se o dado prestes a ser lido ou escrito está fora do espaço de endereços do processo, uma falha de segmentação é lançada.[1]

Qualquer programa de computador está dividido em secções, como as declarações de variáveis e declarações de subrotinas, sobretudo se ele foi escrito numa linguagem de alto nível. Em termos de execução, cada uma dessas secções vai ocupar um segmento da memória.

O sistema operativo que suporta este sistema possuirá uma tabela com os tamanhos e endereços de memória dos vários segmentos de um programa para saber onde estão. Cada segmento possui um conjunto de permissões (leitura, escrita ou execução) e um tamanho associado. Se o processo é autorizado pelas permissões a referenciar a memória da maneira como deseja e se o endereço está no trecho do segmento, a referência do endereço da memória é permitida. Senão, a falha de segmentação é lançada. Outra associação além de permissão e tamanho é a informação de onde o segmento está localizado na memória.[2]

Uma MMU é responsável pela tradução de um segmento e um endereço relativo no segmento em um endereço de memória, e também pela verificação da permissão da referência e valor do endereço relativo.

Seu uso não deve ser confundido com a segmentação de memória utilizada pelas antigas arquiteturas de computador x86, como o Intel 8086 e o Intel 8088, que não forneciam proteção; a segmentação a partir do Intel 80286 passou a fornecer proteção.

Ver também


Referências

  1. Operating Systems Concepts Essentials; Abraham Silberschatz, Peter Baen Galvin, Greg Gagne; John Wiley & Sons, 2011
  2. An Operating Systems Vade Mecum, Raphael Finkel, University of Kentucky, 1988
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.