학습 자료 글/컴퓨터시스템

컴퓨터시스템 기초 16. 운영체제는 프로세스와 가상 메모리를 어떻게 관리할까

cedis 2026. 3. 31. 16:26

[컴퓨터 시스템] 16. 운영체제는 프로세스와 가상 메모리를 어떻게 관리할까

지금까지는 프로그램 내부 구조와 하드웨어 쪽 흐름을 많이 봤다면, 이제는 그 프로그램이 실제 실행 환경 안에서 어떤 관리 대상이 되는지 봐야 합니다. 운영체제는 바로 그 실행 환경을 조율하는 핵심 관리층입니다.

이번 글은 프로세스와 가상 메모리를 묶어, 운영체제가 왜 단순한 도구 모음이 아니라 실행 전체를 관리하는 시스템인지 설명합니다.

먼저 짚고 갈 용어
process: 실행 중인 프로그램 단위
virtual memory: 각 프로세스가 자기만의 연속된 주소 공간을 가진 것처럼 보이게 하는 구조
address space: 프로세스가 사용하는 메모리 주소의 논리적 범위
이번 글에서 다루는 것
  • 프로세스를 실행 단위로 보는 이유
  • 운영체제가 자원과 보호를 왜 같이 관리해야 하는지
  • 가상 메모리가 왜 필요한지
  • 논리 주소와 실제 메모리의 관계
  • 적용형 미니 문제
한눈에 보는 흐름
1
프로세스를 실행 단위로 보는 이유
2
운영체제가 자원과 보호를 왜 같이 관리해야 하는지
3
가상 메모리가 왜 필요한지
4
논리 주소와 실제 메모리의 관계

1. 프로세스는 파일이 아니라 실행 중인 단위다

프로그램 파일은 저장장치에 있는 정적인 결과물이고, 프로세스는 그것이 실제로 실행되며 상태와 자원을 가진 동적인 단위입니다. 그래서 운영체제는 파일 하나가 아니라 실행 중인 프로세스를 관리 대상으로 봅니다.

그림으로 먼저 보기
프로그램 파일
무엇인가: 저장된 코드와 데이터
프로세스
무엇인가: 실행 상태와 자원을 가진 살아 있는 실행 단위

이 구분이 중요해야 시스템 호출, 스케줄링, 메모리 보호 같은 주제가 자연스럽게 연결됩니다.

대상무엇인가
프로그램 파일저장된 코드와 데이터
프로세스실행 상태와 자원을 가진 살아 있는 실행 단위

2. 운영체제는 실행 환경과 보호를 동시에 책임진다

운영체제가 단순히 프로그램을 실행만 시켜 주는 존재였다면, 여러 프로그램이 서로 메모리를 덮어쓰거나 CPU를 독점하는 문제가 생길 수 있습니다. 그래서 운영체제는 자원 배분과 보호를 동시에 맡습니다.

이 보호 감각은 가상 메모리와 프로세스 분리로 이어집니다.

운영체제를 시스템 일부로 봐야 하는 이유
운영체제는 배경 서비스가 아니라, 여러 프로그램이 동시에 돌 수 있게 규칙을 집행하는 관리층입니다.

3. 가상 메모리는 각 프로세스에 자기 공간이 있는 것처럼 보이게 한다

가상 메모리는 프로그램마다 독립된 주소 공간을 가진 것처럼 보이게 해 줍니다. 덕분에 서로 다른 프로세스가 같은 주소 숫자를 써도 실제로는 서로 다른 물리 메모리를 가리킬 수 있습니다.

그림으로 먼저 보기
프로세스 관점
보이는 것: 자기 전용 주소 공간
실제 의미: 운영체제가 매핑해 주는 논리 공간
시스템 관점
보이는 것: 여러 프로세스의 독립성
실제 의미: 보호와 공유를 조절하는 구조

이 구조 덕분에 보호와 단순성이 동시에 좋아집니다. 프로그래머는 연속된 주소 공간처럼 코드를 짤 수 있고, 운영체제는 뒤에서 실제 배치를 관리합니다.

관점보이는 것실제 의미
프로세스 관점자기 전용 주소 공간운영체제가 매핑해 주는 논리 공간
시스템 관점여러 프로세스의 독립성보호와 공유를 조절하는 구조

4. 논리 주소와 실제 메모리는 다를 수 있다

프로그램이 쓰는 주소 값이 곧바로 물리 메모리 위치라고 생각하면 가상 메모리 개념이 잘 안 잡힙니다. 더 정확히는 프로그램은 논리 주소를 쓰고, 운영체제와 하드웨어가 그것을 실제 메모리 배치와 연결합니다.

과정 그림
1
프로세스는 자기 주소 공간 기준으로 메모리를 바라본다.
2
하드웨어/운영체제는 이를 물리 메모리 위치와 연결한다.
3
필요하면 일부는 디스크와 연계해 더 큰 주소 공간처럼 보이게 한다.

5. 직접 해볼 문제: 왜 서로 다른 프로세스가 같은 주소를 써도 괜찮을까

이 질문에 답할 수 있으면 가상 메모리의 핵심이 꽤 잘 잡힌 것입니다.

미니 문제
프로세스 A와 B가 둘 다 0x1000 같은 주소를 사용한다고 할 때, 왜 이것이 곧바로 충돌을 뜻하지 않는지 가상 메모리 관점으로 설명해 보세요.

이번 글에서 기억할 것

프로세스는 파일이 아니라 실행 상태와 자원을 가진 동적인 실행 단위다.
운영체제는 실행만 돕는 것이 아니라 자원 배분과 보호를 함께 책임진다.
가상 메모리는 각 프로세스가 자기 주소 공간을 가진 것처럼 보이게 하며, 보호와 단순성을 동시에 높인다.

스스로 점검

프로세스와 프로그램 파일의 차이를 설명할 수 있는가
운영체제가 왜 보호와 자원 배분을 함께 맡아야 하는지 말할 수 있는가
가상 메모리가 왜 필요한지, 논리 주소와 물리 배치 차이와 함께 설명할 수 있는가

다음 글 예고

다음 글에서는 운영체제와 사용자 프로그램 사이 경계가 시스템 호출과 IPC에서 어떻게 드러나는지 이어서 봅니다.

한 줄 정리
운영체제의 핵심 역할은 프로그램을 돌리는 것 자체보다, 여러 실행 단위를 안전하게 격리하고 필요한 자원을 연결해 주는 데 있습니다.