시스템
Process
다른 이름: 프로세스
정의
실행 중인 프로그램 인스턴스. 독립적 메모리 공간(Code, Data, Heap, Stack). PID(Process ID)로 식별. fork()로 생성, exec()로 프로그램 교체. PCB(Process Control Block)로 상태 관리. Context Switch 비용 높음
상세 설명
기술 스펙
- 메모리 구조: Code(텍스트), Data(전역 변수), Heap(동적 할당), Stack(지역 변수)
- PID: Process ID (고유 식별자)
- PCB: Process Control Block (상태, 레지스터, 우선순위)
- 상태: New, Ready, Running, Waiting, Terminated
- fork(): 자식 프로세스 생성 (COW)
- exec(): 새 프로그램 로드
- Context Switch: PCB 저장/복원 (비용 높음)
실무 활용
- 멀티 프로세스: Chrome 탭별 격리
- fork-exec: 셸 명령 실행
- 데몬: 백그라운드 서비스 (systemd)
- 프로세스 풀: Nginx, Apache (멀티 워커)
장점
- 격리성: 메모리 독립, 안정성 높음
- 보안: 권한 분리 가능
- 멀티코어: CPU 코어별 프로세스 실행
단점 및 제약
- Context Switch 비용: 무거움 (1~10μs)
- 메모리 오버헤드: 프로세스당 수MB
- IPC 복잡: 프로세스 간 통신 (파이프, 소켓)
호환성
Linux, Windows, macOS. POSIX 표준
표준 정보
표준화 기구: POSIX, 운영체제 교과서
출시 연도: 1960년