[컴퓨터 시스템] 16. 운영체제는 프로세스와 가상 메모리를 어떻게 관리할까
지금까지는 프로그램 내부 구조와 하드웨어 쪽 흐름을 많이 봤다면, 이제는 그 프로그램이 실제 실행 환경 안에서 어떤 관리 대상이 되는지 봐야 합니다. 운영체제는 바로 그 실행 환경을 조율하는 핵심 관리층입니다.
이번 글은 프로세스와 가상 메모리를 묶어, 운영체제가 왜 단순한 도구 모음이 아니라 실행 전체를 관리하는 시스템인지 설명합니다.
- 프로세스를 실행 단위로 보는 이유
- 운영체제가 자원과 보호를 왜 같이 관리해야 하는지
- 가상 메모리가 왜 필요한지
- 논리 주소와 실제 메모리의 관계
- 적용형 미니 문제
1. 프로세스는 파일이 아니라 실행 중인 단위다
프로그램 파일은 저장장치에 있는 정적인 결과물이고, 프로세스는 그것이 실제로 실행되며 상태와 자원을 가진 동적인 단위입니다. 그래서 운영체제는 파일 하나가 아니라 실행 중인 프로세스를 관리 대상으로 봅니다.
이 구분이 중요해야 시스템 호출, 스케줄링, 메모리 보호 같은 주제가 자연스럽게 연결됩니다.
| 대상 | 무엇인가 |
|---|---|
| 프로그램 파일 | 저장된 코드와 데이터 |
| 프로세스 | 실행 상태와 자원을 가진 살아 있는 실행 단위 |
2. 운영체제는 실행 환경과 보호를 동시에 책임진다
운영체제가 단순히 프로그램을 실행만 시켜 주는 존재였다면, 여러 프로그램이 서로 메모리를 덮어쓰거나 CPU를 독점하는 문제가 생길 수 있습니다. 그래서 운영체제는 자원 배분과 보호를 동시에 맡습니다.
이 보호 감각은 가상 메모리와 프로세스 분리로 이어집니다.
3. 가상 메모리는 각 프로세스에 자기 공간이 있는 것처럼 보이게 한다
가상 메모리는 프로그램마다 독립된 주소 공간을 가진 것처럼 보이게 해 줍니다. 덕분에 서로 다른 프로세스가 같은 주소 숫자를 써도 실제로는 서로 다른 물리 메모리를 가리킬 수 있습니다.
이 구조 덕분에 보호와 단순성이 동시에 좋아집니다. 프로그래머는 연속된 주소 공간처럼 코드를 짤 수 있고, 운영체제는 뒤에서 실제 배치를 관리합니다.
| 관점 | 보이는 것 | 실제 의미 |
|---|---|---|
| 프로세스 관점 | 자기 전용 주소 공간 | 운영체제가 매핑해 주는 논리 공간 |
| 시스템 관점 | 여러 프로세스의 독립성 | 보호와 공유를 조절하는 구조 |
4. 논리 주소와 실제 메모리는 다를 수 있다
프로그램이 쓰는 주소 값이 곧바로 물리 메모리 위치라고 생각하면 가상 메모리 개념이 잘 안 잡힙니다. 더 정확히는 프로그램은 논리 주소를 쓰고, 운영체제와 하드웨어가 그것을 실제 메모리 배치와 연결합니다.
5. 직접 해볼 문제: 왜 서로 다른 프로세스가 같은 주소를 써도 괜찮을까
이 질문에 답할 수 있으면 가상 메모리의 핵심이 꽤 잘 잡힌 것입니다.
이번 글에서 기억할 것
스스로 점검
다음 글 예고
다음 글에서는 운영체제와 사용자 프로그램 사이 경계가 시스템 호출과 IPC에서 어떻게 드러나는지 이어서 봅니다.
'학습 자료 글 > 컴퓨터시스템' 카테고리의 다른 글
| 컴퓨터시스템 기초 18. 스레드와 동기화는 왜 멀티코어에서 필수가 될까 (0) | 2026.03.31 |
|---|---|
| 컴퓨터시스템 기초 17. 시스템 호출과 IPC는 프로세스 사이를 어떻게 잇는가 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 15. 코드 최적화는 왜 측정과 locality가 먼저일까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 14. 메모리 계층은 왜 프로그램 속도를 바꿀까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 13. x86-64와 ARM64는 무엇이 같고 다를까 (0) | 2026.03.31 |