물리메모리와 논리메모리에 관한 질문입니다.
글쓴이: code483 / 작성시간: 월, 2010/04/05 - 2:05오후
안녕하세요.
최근에 물리메모리와 논리메모리에 대해 배웠던 것을 생각해볼 기회가 있었는데 헷갈리는 것이 있어서 질문 드립니다^^;;
통상 물리메모리 주소는 실제 RAM의 주소이고 논리메모리 주소는 일반 유저프로그램이 이용하는 주소라고 알고 있는데요. 이 경우 일반 유저프로그램은 물리메모리, 즉 RAM의 특정 번지수에 어떤 데이터가 들어있는지 절대 알 수 없다고 공부했거든요. 제가 궁금한 것은 OS의 경우에도 RAM의 특정 번지수에 어떤 데이터가 들어있는지 알수 없는가 하는 것입니다. 비슷한 내용의 질문이 예전에도 올라왔던것 같긴 한데요(http://kldp.org/node/21657) 읽어봐도 제가 확실히 이해가 안되서 질문 올립니다^^
Forums:
운영체제(커널)의
운영체제(커널)의 경우 메모리 관리를 해야하므로 당연히 어떤 물리메모리영역이 어떤 프로세스에 할당되어있는지 알고있어야 합니다. 실제 각각의 프로세스는 자신이 사용하는 논리 메모리에 대해 물리메모리와 연결되는 테이블을 갓고있습니다.
운영체제는 컴퓨터에
운영체제는 컴퓨터에 꽂혀있는 모든 메모리를 접근 할수 있습니다. 일반 유저 프로그램이 물리메모리에 접근 못하게 막는것 또한 운영체제의 역할입니다. 따라서 운영체제는 메모리 뿐만 아니라 컴퓨터에 존재하는 모든 장치에 직접 접근 할 수 있습니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
알죠.
당연히 알아야 관리가 되기 때문에 위치를 압니다. 다만 그 위치를 아는 시점에 따라 3가지정도로 나뉘는데요
1. load될때나 excution될 때 변경되는경우. 즉 바인딩되는 경우. 프로세스가 메모리 내에 들어갈 위치를 컴파일시간 또는 적재시간에 알 수 있습니다. 애초부터 안건 아니구요.
2. 컴파일시간 바인딩.
프로그램 컴파일될때 메모리에 들어갈 위치를 미리 알고 절대위치를 생성합니다~ 그럼 미리알겠죠.
어쨋거나 아는 시간만 다르지. 결국엔 알아야.. 엑세스가 가능합니다..
수정이 안되네요
잘못썼습니다.
1. 적재시간(load time)바인딩, excution(실행) 바인딩이 후에 알게되고
2. 컴파일은 썼던대로~ 컴파일할때 절대코드를 입력합니다.
댓글 달기