728x90
1. 프로세스 (Process)
- 컴퓨터에서 연속적으로 실행되고 있는 프로그램이다.
- 프로세스 제어블록(PCB)을 가진 실행 가능한 프로그램이다.
- 운영체제가 관리하는 실행 단위이며, 프로세서가 할당되는 곳이다.
2. 스레드 (Thread)
- 프로세스 내에서 실행되는 흐름의 단위이다.
- 하나의 프로세스는 최소 하나 이상의 스레드를 가지며, 스레드는 경량 프로세스라고 불린다.
- 각 스레드는 독립된 스택 영역을 가지지만, 부모 프로세스의 코드, 데이터, 힙 영역을 공유한다.
3. 메모리상의 프로세스 영역
프로세스 영역 | 설명 |
코드 영역 | - 실행할 프로그램의 코드가 저장되는 공간 - 함수, 제어문, 상수 등이 포함 |
데이터 영역 | - 전역 변수와 정적 변수가 할당되는 공간 - 프로그램 종료 시 메모리에서 소멸 |
스택 영역 | - 지역 변수와 함수 매개 변수가 저장됨. - 함수 실행이 완료되면 정보는 사라짐. |
힙 영역 | 동적 메모리 할당을 위해 프로그래머가 직접 관리하는 공간 |
4. 프로세스 상태 전이
(1) 프로세스 상태 전이 절차
상태 | 설명 |
준비(Ready) | 프로세스가 프로세서 할당을 기다리는 상태 |
실행(Running) | 프로세스가 프로세서를 할당받아 실행 중인 상태 |
대기(Wait) | I/O 처리가 필요하여 실행을 중단하고 대기 중인 상태 |
(2) 프로세스 상태 전이 용어
용어 | 설명 |
Dispatch | 준비 상태에서실행 상태로 전이되는 과정 |
Wake Up | 대기 상태에서 준비 상태로 전이되는 과정 |
Spooling | 입/출력 데이터를 디스크에 모아뒀다가 한꺼번에 처리하는 과정 |
5. PCB (Process Control Block, 프로세스 제어 블록)
- 운영체제가 프로세스 정보를 저장하는 공간이다.
- 각 프로세스가 생성될 때 고유한 PCB가 생성되며, 프로세스 종료 시 PCB가 제거된다.
6. 문맥 교환 (Context Switching)
- 하나의 프로세스가 CPU 사용을 마치고, 다른 프로세스가 CPU를 사용하도록 전환하는 과정이다.
- 현재 실행 중인 프로세스의 상태(문맥)는 PCB에 저장되고, 새로운 프로세스의 상태는 PCB에서 읽어와 CPU 레지스터에 적재된다.
- 문맥 교환은 멀티탱스킹(멀티 프로세싱)을 가능하게 하며, 여러 프로세스가 동시에 실행되는 것처럼 보이게 한다.
728x90
'CS > Operating System' 카테고리의 다른 글
[운영체제] 가상기억장치란? (0) | 2025.03.27 |
---|---|
[운영체제][정보처리기사] 인터페이스 구현 (2) | 2025.03.11 |