해결된 질문
작성
·
368
·
수정됨
0
안녕하세요. 매번 기초적인 질문을 남겨드려 죄송하고 감사합니다.
PCB에 들어 있는 정보를 설명하실 때,
첫번째, PID 라고 하셨고,
두번째, 메모리에 관한 정보를 말씀하시면서 가상메모리 이야기를 하셨는데 Stack, Heap, Code, static 이야기를 하셨습니다.
그럼 PCB의 메모리에 관한 정보는 저 위에 것들 다 있다고 보면 될까요?
아니면 실행중인 기계어 명령이 저장된 메모리의 주소만 담고 있는 건가요?? (왜 실행중인 이라는 이야기가 들어가 있는지도 잘 모르겠습니다 ㅠㅠ)
프로그램이 메모리에 올라와 프로세스가 되는 과정 그림에서 왼쪽에 있는 사각형을 메모리라고 표현했는데 저기서의 메모리는 Virtual memory라고 해야 하나요??
Process 단위로 virtual memory가 주어진다고 알고있는데 프로세스들이 같이 있어서 헷갈리네요 ㅠㅠㅠ
답변 1
0
가상 메모리의 절반은 응용 프로그램이 아닌 OS가 사용하는 영역 입니다. PCB같은 정보는 모두 거기에 저장됩니다. 모든 프로세스가 개별적인 VMS(Virtual Memory Space)를 갖습니다만 운영체제 영역은 모든 프로세스에게 동일합니다. 논리적으로 존재하고 있으나 임의로 접근할 수 없습니다.
그리고 무엇보다 가상 메모리는 말 그대로 가상화된 공간입니다. 실제 메모리 영역의 일부를 선형적 접근이 가능하도록 추상화 해준 것일 뿐입니다. 실제로는 물리 메모리의 공간을 나눠서 사용하게 됩니다. 그 모든 처리는 OS의 메모리 관리자가 알아서 해주는 것이지요. 그리고 이 관리 체계에 적용된 기법이 가상메모리 시스템이고요. 일단 가상메모리에 대해 공부를 한 후 프로세스와 스레드에 대해 다시 살피는 것이 좋겠습니다. 참고하시기 바랍니다.