<스레드 / 프로세스 상태 전이>
스레드(Thread)
하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘으로 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위
독립적인 스케줄링의 최소 단위로 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능
스레드는 독립적인 스케줄링 최소 단위로 프로세스의 역할 담당
하나의 프로세스에 하나의 스레드가 존재하는 경우는 단일 스레드,
하나 이상의 스레드가 존재하는 경우 다중 스레드라고 함스레느는 프로세스의 일부 특성을 가지기 때문에 경량(Light Weight) 프로세스라고도 함
스레드의 분류
- 사용자 수준의 스레드 :
- 사용자가 만든 라이브러리를 사용하여 스레드를 운용
- 속도는 빠르지만 구현이 어려움 - 커널 수준의 스레드 :
- 운영체제의 커널에 의해 스레드를 운용
- 구현은 쉽지만 속도가 느림
스레드 사용의 장점
- 하나의 프로세스를 여러개의 스레드로 생성하여 병행성 증진 가능
- 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상 가능
- 응용 프로그램의 응답시간(Response Time)을 단축시킬 수 있음
- 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어듦
- 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신
프로세스 주요 상태
- 준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 실행(Run) :
- 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
- 프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당시간이 종료되면 프로세스는 준비상태로 전이
- 실행중인 프로세스에 입/출력 처리가 필요시 실행중 프로세스는 대기 상태로 전이 - 대기(Wait), 보류, 블록(Block) :
- 입/출력 요구가 발생되 현재 실행중인 프로세스가 중단되며 입/출력 처리가 완료될 떄까지 대기하는 상태
프로세스 상태 전이 관련 용어
- Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
- Wake-Up : 입/출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
'Study' 카테고리의 다른 글
자료흐름도, 데이터사전, HIPO (0) | 2016.04.16 |
---|---|
프로세서 선점 스케줄링, 비선점 스케줄링 (0) | 2016.04.14 |
소프트웨어 품질 표준 (0) | 2016.04.11 |
링커 로더 (0) | 2016.04.10 |
운영체제 운용 기법 (0) | 2016.04.08 |