Segmentação (memória): diferenças entre revisões
m Substituição de predefinições obsoletas |
m manut. de refs. |
||
Linha 1: | Linha 1: | ||
{{ |
{{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
- ↑ Operating Systems Concepts Essentials; Abraham Silberschatz, Peter Baen Galvin, Greg Gagne; John Wiley & Sons, 2011
- ↑ An Operating Systems Vade Mecum, Raphael Finkel, University of Kentucky, 1988