c언어 메모리주소 질문
이뻐
C언어 코딩중 자료형 예를들어 int a=2
a의 주소에 2가 들어가있잔아요.
근데 가상주소가 아닌 실제 컴퓨터의 해당주소에 2가 들어가있는게 맞나요?
그게 맞다면 다른 코딩 프로그램으로 a의 주소에 3이란 값을 넣어주면 a는 3으로 바뀌고 기존 코딩창에서 출력 하면 3이 되나요?
집이 아니어서 테스트를 못해서요.
-
푸른들
제일 명쾌한 답인거 같아요..
다들 가상주소는 말하는데 왜 쓰는지를 아무도 말씀을..
꿈이 시스템보안 전공이어서요 감사합니다 -
솔잎
음 간단히 말하면 여러개의 프로그램이 실행될때 각 프로그램이 다른 프로그램의 물리 주소 공간을 침범하지 못하도록 가상 주소를 사용한다고 생각하시면 될 것 같습니다.
-
가림
이것만으로도 이해가 좀 됩니다.!
감사합니다 신경이 쓰엿거든요! -
지후
프로세스가 동시에 여러개 실행될 때 각 프로세스 별로 자신만의 가상주소를 가지며 이 가상주소는 물리 주소로 변환 되게 됩니다. 이걸 os가 도와주게 되며, 그러면 각 프로세스는 자신만의 가상주소를 알고 있으면 됩니다. 변환된 물리주소는 프로세스별로 겹치지 않게 하드웨어적으로, 그리고 os 레벨에서 잘 변환해 줍니다. 설명이 좀 부족한거 같은데... 구체적으로 어떻게 이루어지는지는 따로 공부해 보세요
-
큰모음
여러개의 프로세스가 동시에 실행된다면 질문자께서 물어보신 다른 프로세스에 의한 주소공간 침범이 생길 수 있는데 이것을 막아주는 것을 os가 해주게 됩니다. 이중에는 물리주소를 가상주소로 변환하는 것이 있는데 이를 통해 각 프로세스가 서로의 물리 주소 공간을 침범하지 않도록 합니다.
-
텃골
네 어떤 호기심이든, 전문공부 해보면 이유는 찾는데요.
실제주소가 있음에도 불구하고 가상주소를 사용해서 주소가 두개인 이유만좀 설명 해주시면 안될까요
프로그래밍도 잘 못하겟는데 운영체제랑 병행할 시간이 없어서요.
고3이라 학업공부도 해야하고 프로그래밍은 시간날때마다 하는거라서요.. 궁금해서 여쭙는겁니다 -
캐릭터
운영체제를 공부해보시면 그 이유를 알 수 있습니다
-
초코맛사탕
갑자기 궁금 해서요.
실제 주소가 있음에도 불구하고 가상주소를 사용해서 주소가 두개인 이유는 뭔가요? -
흰추위
실제 주소에도 들어가고 가상주소에도 들어가죠. 실제 주소는 프로그램 실행시킬때마다 프로그램이 할당 받는 주소가 변하기 때문에 변하구요 가상주소는 프로그램이 할당 받은 시작부터 따진 주소기 때문에 실행시킬때마다 같아요. 예를 들여 8000 번 실제 메모리에 저 변수a 가 할당 됬으면 가상주소로는 1000 번 일수가 있는데 어쨌든 둘다 같은 곳을 가르켜요. 그런데 프로그램 껐다 켜면 저 변수 a가 실제 주소 9000 에 저장 될수도 있다는거죠 그런데
-
던컨
일단 컴퓨터의 해당 주소에 들어가는걸로 알고있습니다.
두번째질문은 정확히 말하기가 좀.. 그렇네요. 이유는 다른 코딩 프로그램 이라는것은.. 너무 방대하기때문입니다.