운영체제를 이해하기 위해 반드시 짚고 넘어가야 할 핵심 개념이 있다.
바로 프로세스(Process) 와 이를 운영체제가 어떻게 관리하는가에 대한 이야기다.
컴퓨터는 부팅과 동시에 수많은 프로세스를 실행한다.
운영체제는 프로세스의 실행 순서를 제어하고, 자원을 분배한다.
이를 위해 사용하는 구조가 바로 PCB (Process Control Block) 이다.
PCB(Process Control Block) 는 프로세스에 대한 정보를 저장하는 커널의 자료 구조이다.
프로세스 ID (PID)
고유 식별 번호 (같은 프로그램을 2번 실행하면 서로 다른 PID 부여)
레지스터 값
프로세스의 실행 상태 복원을 위한 저장 값 (문맥 저장용)
CPU 스케줄링 정보
어떤 프로세스가 언제 CPU를 할당받을지 결정하는 데 필요
메모리 관리 정보
메모리 주소, 베이스/한계 레지스터, 페이지 테이블 정보 등
파일/입출력 장치 목록
프로세스가 열어둔 파일, 사용하는 장치 목록 등
프로세스 실행이 전환될 때, 운영체제는 다음을 수행한다:
⏱️ 문맥 교환은 매우 빠르게 일어나기 때문에 사용자 입장에서는 여러 프로세스가 동시에 실행되는 것처럼 보임
⚠️ 하지만 너무 잦은 문맥 교환은 오버헤드를 유발할 수 있으므로 빈도 조절이 중요하다.
💡메모리 구조를 이해하면, 메모리 누수나 오버플로우 같은 오류를 사전에 방지할 수 있다.
운영체제는 사용자 영역에서 다음과 같이 프로세스 메모리를 구분한다:
✅ 이 두 영역은 프로그램이 실행되기 전부터 크기와 구조가 정해져 있으므로 정적 할당 영역이라 한다.
malloc, new 등)PUSH / POP 방식으로 작동📌 정리
✅ 이 두 영역은 프로그램 실행 중 동적으로 크기가 변하므로 동적 할당 영역이라 부른다.
운영체제는 단순히 프로세스를 실행하는 것이 아니라,
PCB를 통해 정보를 저장하고, 문맥을 교환하며, 메모리 구조를 세밀하게 관리한다.
이러한 구조를 이해하는 것은 시스템 성능과 안정성의 핵심을 파악하는 데 반드시 필요하다.
운영체제 정리가 잘 되어있네요! 덕분에 잘 정리할 수 있었어요 감사합니다!