inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

넓고 얕게 외워서 컴공 전공자 되기

국가와 국민으로 이해하는 컴퓨터 세상

OS는 프로세스를 남의 프로세스 메모리로 접근하는 것을 못하게 하는데 포인터는 어떻게 이해하면 될까요?

해결된 질문

382

ㅇㄴㄹ(ㅇㅀ)

작성한 질문수 15

0

포인터는 유일하게 메모리 접근을 하는 텍스트 코드로 알고 있습니다. 포인터도 프로세스 중에 검찰같은 역할로 보면 되는 것인가요? 프로그램 안에 코드가 있고 그 코드(텍스트)에서 포인터라는 (함수?) 것이 외부의 함수(스택)이나 heap에 접근이 가능하니까 궁금해졌습니다.

 

조금 더 추측하자면 포인터는 디버거를 사용할 때 디버거가 여러 지역변수나 값들을 보여줄 수 있고 메모리 안에 실행 중인 값들을 보여줄 수 있는데 이러한 디버거 프로그램은 포인터 구성 된 코드로 이루어졌다고 볼 수 있을까요?

 

지금 계층이 여러 군데로 산발적으로 학습돼서 맞는지 궁금합니다.

운영체제

답변 1

0

널널한 개발자

포인터는 단순이 메모리의 주소를 저장 할 목적의 변수에 불과 합니다. 코드는 아닙니다. 그리고 여기서 언급하는 메모리 주소는 모두 가상메모리 시스템 상 주소입니다. 물리 메모리에 대한 주소는 아닙니다. 그리고 타 프로세스의 메모리 공간을 보는 행위 자체는 운영체제가 차단하고 있습니다. 다만 디버깅 목적으로 디버거에게만 허용하고 있습니다.

질문 내용 중 몇몇 것들은 걱정하는 것처럼 조금 엉킨 것으로 보입니다. 포인터는 단순 메모리 주소를 저장하는 변수에 불과하다는 점을 상기하고 자신의 이론을 다시 점검해보는 것이 좋겠습니다. 그리고 디버거 프로그램은 포인터로 구성된 코드라는 생각은 모순이 있습니다. 디버거와 포인터를 연결할 필요는 없겠습니다.

우선 가상메모리 시스템에 대해서 공부해보시기를 강력히 권합니다. 참고하시기 바랍니다. :)

1

ㅇㄴㄹ(ㅇㅀ)

포인터와 디버거는 별개의 것으로 구분하겠습니다. code로 작성하는 메모리는 논리적인 메모리(virtural memory) 로 이해하겠습니다. OS상에서 허락한 메모리 공간을 보는 것은 디버거임을 이해했습니다. 감사합니다!

선생님 질문이있습니다.

0

70

2

"한글 한 글자를 저장하는 데 2바이트가 필요하다" 에서 궁금한 점이 있습니다

0

167

2

원자성과 동기화에 대한 사소한? 질문 있습니다.

0

65

1

전가산기에 대한 질문이 있습니다!

0

93

2

format 시 0-0트랙 섹터에 관해

0

90

2

앞으로의 공부 질문

0

113

1

정규표현식 학습에 대한 조언 부탁드립니다.

0

200

2

메모리 용량에 관하여

0

139

1

인터페이스로 File을 사용한다는 것

0

176

1

파일 시스템 관련 질문입니다.

0

157

2

자료 구조

0

259

2

강의의 대한 추가질문

0

213

2

컴퓨터가 글자를 다루는 방법 -> 코드체계 질문

0

207

2

진법변환 개념정리

0

599

2

컴퓨터가 사진을 다루는 법에 대해 질문입니다.

1

200

2

컴퓨터가 곱셈 하는 방법

0

339

2

1비트 1바이트 1킬로바이트

0

406

1

캐시 메모리

0

203

1

[외워야 할 단위 체계와 숫자] 비트 체계와 용량 관련 질문 있습니다.

0

417

2

[컴퓨터가 글자를 다루는 방법] 숫자와 캐릭터 바이너리가 같다면...

0

377

2

CPU 연산체계에 대해서 궁금한 점이 있습니다.

0

321

2

shell에 관련하여 질문드립니다.

0

282

2

가상메모리 관련 질문있습니다.

0

310

2

선생님 안녕하세요

0

319

1