728x90
※출처 : TOPCIT 에센스
프로세스(Process)의 이해
- 초기 컴퓨터 시스템 : 한 번에 하나의 응용 프로그램만 수행 가능 → 하나의 프로그램이 모든 시스템 점유, 자원 점유 및 사용
- 오늘날 컴퓨터 시스템 : 다수의 프로그램 병행 수행 → 자원 공유, 자원 관리
- 프로세스 : 수행 중인 프로그램, 시분할 시스템의 작업 단위
프로세스 상태(State) 변화
1. 생성 (New)
: 프로세스가 생성 되었으나 아직 운영체제에 의해 실행 못하는 상태
2. 준비 (Ready)
: 프로세스가 실행을 위해 CPU를 할당 받기를 기다리는 상태
3. 실행 (Run)
: 프로세스가 CPU를 차지하고 있는 상태
4. 종료 (Exit)
: 프로세스의 실행이 끝나고 CPU 할당이 해제된 상태
5. 대기 (Wait)
: 프로세스가 CPU를 할당 받아 실행되다가 입/출력 완료 등과 같은 어떤 사건이 발생해 주기를 기다리고 있는 상태
프로세스 제어블록 (PCB, Process Control Block)
- 운영체제가 프로세스 관리를 위해 필요한 정보를 저장하는 것
- 프로세스가 생성될 때마다 고유의 PCB 생성
- 프로세스 완료되면 PCB 제거
- 한 PCB는 한 프로세스의 정보를 가짐
- PCB : 프로세스 식별번호(PID), 프로세스 상태, 프로그램 카운터, 스케줄링 우선 순위, 레지스터 정보, 주기억 장치 관리 정보 등 포함
- 프로그램 카운터 : 다음에 실행할 명령어를 가리키는 값
프로세스 관리를 위한 기법
1. 프로세스 생성 (Process Creation)
- 프로세스는 병행 수행 가능해야하고 동적으로 생성 제거 가능
- fork() : 프로세스 실행 도중에 프로세스 생성을 위한 시스템 호출(System call)
- 부모 프로세스 : 실행 중 프로세스, 자식 프로세스 : 새로운 프로세스
2. 프로세스 종료 (Process Termination)
- 프로세스는 프로그램의 마지막 코드 실행을 끝내고 exit() 시스템 호출로 운영체제에게 프로세스 삭제 요청
- 자식 프로세스는 wait() 시스템 호출을 통해 부모 프로세스에게 자료 반환
- 운영체제는 삭제되는 프로세스에 할당된 모든 자원 회수
728x90
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스 동기화 (0) | 2020.09.14 |
---|---|
[운영체제] Pthread 개요 (0) | 2020.09.14 |
[운영체제] 인터럽트 (Interrupt) (0) | 2020.09.14 |
[운영체제] 스레드(Thread) (0) | 2020.09.14 |
[운영체제] 운영체제 개요 (0) | 2020.09.14 |
댓글