Comunidade OSDevBrasil.net
Fevereiro 09, 2012, 06:03:10 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias: Anuncie a nossa comunidade a amigos, fóruns...
 
   Home   Ajuda Pesquisa Login Registrar  
Páginas: [1]
  Imprimir  
Autor Tópico: Segmentos  (Lida 1174 vezes)
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 430


mrjostz@hotmail.com
Ver Perfil WWW Email
« : Setembro 29, 2007, 09:35:37 »

Olá!

Vou aqui falar um pouco sobre o funcionamento da memória do processador da Intel 80x86!

A memória do processador pode funcionar de dois meios: segmentos e paginada. Esses dois tipos de memória vou explicar nas próximos tópicos e qualquer duvida que tiverem usem essa seção para perguntas e respostas...

Memória Segmentada

Podemos definir a memória segmentada como a divisão da memória em regiões, cada região definindo o que está contido naquela área. Por exemplo, temos a área de código, onde fica concentrada o código do programa em execução; área de dados, onde estão concentrados os dados do programa; área de pilha, onde se encontra os dados da pilha do usuário.

Essas regiões podem crescer conforme feito o uso da memória, se a pilha crescer para o seu limite, então será gerado um erro para o núcleo que poderá aumentar o tamanho da área.

Os registradores da CPU que controlam o local dessas áreas são CS, DS, ES, SS, FS, GS e temos também os registradores bases IP, BP, SP, DX, DI, SI. Podendo formar pares como CS:IP, DS:DX, etc. Isso nos processadores 8086, no X86 são os registradores estendidos EIP, EBP, ...

A GDT (Global Descriptor Table) é onde o processador X86 localiza as informações dos segmentos, podendo haver até 8192 segmentos e cada LDT (Local Descriptor Table) possui 8 bytes. A LDT é um dos descritores da tabela, o primeiro descritor deve ser sempre 0 (senão o computador reinicia). Se CS for igual a 8 então quer dizer que ela aponta para a entrada 1 da GDT e assim por diante...

Memória Página

A memória páginada é muito comumente usada para se fazer swap dos programas e a virtualização da memória, com a capacidade de dar a cada programa 4GB (virtuais) aos programas. E é nessa virtualização da memória que entra o swap, o swap é a ação de mover um pedaço da memória (4KB no x86) para o disco e do disco a memória. Para fazer essa troca existem vários algoritmos que podem ser usados pelo núcleo (poderemos escolher um ou mais de um deles).

O processador controla essa memória através de uma estrutura de dados formada por um diretório (4Bytes por entrada)  e podendo ter 1024 entradas. Cada entrada mapeia um tabela com 1024 entradas (4Bytes cada). Cada tabela pode mapear até 4MB da memoria, então 1024 * 4MB = 4GB sendo este o total que o processador pode suportar de memória.

Memória paginada e virtual

Podemos combinar as 2 técnicas, fornecendo ao programa paginação de segmentos.

Eu resumi um pouco neste tópico como funciona a memória, mas provavelmente eu irei melhora-lo mais, como eu não sou bom em textos ainda, e irei provavelmente por-lo na Wiki do site!

Comentem!
« Última modificação: Outubro 02, 2007, 09:45:08 por btox » Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #1 : Outubro 01, 2007, 07:43:31 »

Quais seguimentos devem ser declarados basicamente para multitarefa com TSS ?

CODE32
DATA32
TSS0 (ring0)
TSS3(usuário)

com esses ja daria um chá ?
Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #2 : Outubro 01, 2007, 07:48:23 »

CODE32 (user mode)
DATA32 (user mode)

e um seguimento de pilha... xD
Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #3 : Outubro 01, 2007, 07:50:20 »

tipo... pelo fato de ser autodidata deixo passar coisas basicas como essas, ficando duvidas, espero tirá-las aqui ^^

não adianta nada eu saber fazer um driver VGA, floppy ou etc ou etc se ainda tenho duvidas "bestas" como essa, por isso q to expondo aqui agora, espero ser ajudado! vlw galera!
Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 430


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #4 : Outubro 01, 2007, 09:14:48 »

Eu sei que o escrevi é bem um resumo e nem foi revisado... Mas foi mais por querer tirar duvidas que eu o criei...

Quanto ao segmentos inicialmente pode ser somente os segmentos de códigos, dados e TSS para o núcleo e para o usuario somente código e dados! A questão da multitarefa ficaria com o núcleo que salva e carrega os dados! Mas qualquer coisa voi pesquisar aqui e responder assim que possível.

T+
« Última modificação: Outubro 02, 2007, 09:43:57 por btox » Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #5 : Outubro 02, 2007, 06:04:46 »

Peguei o livro "Guia de programação 80386" se alguem interessar escaneio uns capítulos que achei interessante para ser abordado, seguem:

Cap. 3 -> Programação em linguagem Assembly
Cap. 5 -> Gerenciamento de memória no 80386
Cap. 6 -> Gerênciamento de tarefa no 80386

 Legal

Dei preferência a esse pelo fato de ser português mas tem uns mais detalhados em inglês, porém esse aborda uma linguagem mais clara e objetiva.
« Última modificação: Outubro 02, 2007, 09:41:07 por btox » Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

btox
Moderador Global
OS Jr. Member
*****

Karma: 2
Mensagens: 67



Ver Perfil Email
« Responder #6 : Outubro 02, 2007, 09:49:53 »

Gnomo seria muito bom para a comunidade.
Registrado

"Poderia viver recluso numa casca de noz,e me considerar rei do espaço infinito"

System:Slackware 11
kernel version:2.4
Hardware:P4 2.4;512 mb ram;
====================
Btox simple geek life style!!
gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #7 : Outubro 03, 2007, 07:33:03 »

vou ver se "arrumo" onde escanear, n tenho escaner! :S
Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 430


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #8 : Outubro 03, 2007, 09:43:03 »

Não seria mais facil ver se tem um ebook e disponibilizar um link aqui?
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #9 : Outubro 04, 2007, 05:26:37 »

Se alguem encontrar o E-BOOK perfeito, pois eu to com pouca disponibilidade de internet atualmente...  Chorar

No entanto esse FDS vejo se escaneio(se ninguem achar o E-book), andei lendo e to gostando, é bem explicativo, da uma boa base!
Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

TaSK_ZoMBiE
OS Newbie
*

Karma: 0
Mensagens: 17


Ver Perfil Email
« Responder #10 : Novembro 05, 2008, 12:21:51 »

Esse livro eu o encontrei na faculdade. É muito bom, e destinado a users que já estão calejados pela linguagem...Esse é um dos livros que tem mais de 20 anos e pode ser escaniado sem maiores complicações.
Registrado
Páginas: [1]
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.14 | SMF © 2006-2009, Simple Machines LLC XHTML 1.0 Válido! CSS Válido!