Process
프로세스의 상태 전이 표
프로세스는 Ready 상태일때 CPU를 할당받고 Running 상태로 상태전이가 일어난다.
이제 해당 프로세스는 CPU를 이용해 작업을 수행한다.
작업을 마치면 CPU를 반납하고 종료합니다.
만약 작업이 끝나지 않는경우 프로세스는 CPU를 반납하고 ready 상태로 다시 돌아간다.
만약 I/O 작업이 발생한다면 현재 CPU를 사용중인 프로세스는 Block 상태로 전이가 일어난다.
I/O작업이 완료되면 해당 프로세스를 ready상태로 전이 시킨다.
작업이 종료되지 않았는데 CPU를 어떻게 반납을 할까?
OS는 프로세스의 CPU독점을 방지하기 위해서 하드웨어로 구현된 timer interrupt를 발생시켜 프로세스가 특정 시간 간격동안만 실행할 수 있도록 한다. time interrupt가 발생하면 현재 CPU를 사용중인 프로세스는 CPU를 빼앗기게 된다.
이처럼 실행중인 프로세스가 변경되는 일을 context switching이라고 한다.
context switcing에는 아래와 같은 비용이 발생하게 된다.
- 메모리 캐시 초기화
- 레지스터 및 메모리 mapping 상태 저장
- page table등의 상태 저장 및 업데이트
위와 같은 비용 때문에 context switching에도 최적화 정책이 필요함을 느낄 수 있다.
프로세스의 상태전이와 context switching의 개념을 알아보았다.
'CS > OS' 카테고리의 다른 글
[OS] Thread #1 (0) | 2021.07.08 |
---|---|
[OS] Process #3 (Context Switching) (0) | 2021.07.07 |
[OS] Process #1 (0) | 2021.07.05 |
[운영체제] Semaphore (0) | 2021.06.13 |
[운영체제] Locks #3 (0) | 2021.06.11 |