1.프로세스(Process)
- 실행 중인 프로그램을 의미
- 프로그램
- 저장공간에 저장되어 있는 코드와 리소스 등이 집합되어 있는 파일을 의미
- 프로그램이 메모리에 올라가서 프로세스로 동작
- 프로그램
- 프로세스는 프로그램이 실행되면 점유시간, 메모리, 파일, 입출력 장치 등의 자원을 할당
2. 프로세스의 메모리 구조
- 스택 영역
- 데이터를 일시적으로 저장하는 영역
- 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었음을 의미
- 지역변수, 매개변수 등이 존재
- 힙 영역
- 코드 영역과 별도로 유지되는 자유 영역
- malloc(), new()와 같은 동적 메모리 할당, 해제와 관련
- 데이터 영역
- 프로그램의 가상 주소 공간
- 전역 변수, 정적 변수를 저장하거나 할당하며 실행 전에 초기화
- 코드 영역
- 프로그램 명령이 위치하는 곳
- 기계어로 제어되는 메모리 영역
3.프로세스의 상태
- 커널은 준비 큐, 대기 큐, 실행 큐 등의 자료구조를 통해 프로세스의 상태를 관리
- Dispatch
- 준비 → 실행
- 준비 큐 맨 앞에 있던 프로세스가 프로세스를 점유하는 것
- Timeout
- 실행 → 준비
- 프로세스가 프로세서를 독점하지 못하도록 특정 시간동안만 프로세스를 점유하게 함
- InterruptClock 사용
- Block
- 실행 → 대기
- 할당된 시간 이전에 실행상태의 프로세스에 입출력 연산이 필요하거나 새로운 자원 요청의 문제로 프로세서를 스스로 양도하는 상태
- Wakeup
- 대기 → 준비
- Block 상태의 프로세스가 입출력 작업이 끝난 상태
★PCB
- 프로세스 제어 블록
- 운영체제가 프로세스를 제어할 때 프로세스의 상태 정보를 저장하는 곳
- 프로세스가 생성되면 PCB를 생성
- 프로세스가 종료되면 PCB를 삭제
'컴퓨터 구조 &운영체제 > 컴퓨터구조 + 운영체제' 카테고리의 다른 글
데이터 (1) | 2024.01.22 |
---|---|
CPU Scheduling (0) | 2023.08.29 |
운영체제 기초 (0) | 2023.08.14 |
메모리 (0) | 2023.08.14 |
CPU의 구조 (0) | 2023.08.12 |