Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- docker network
- CI/CD
- MySQL
- Docker
- Jenkins
- jenkins install
- Linux
- grpc
- JavaScript
- MongoDB
- vue.js
- 리눅스
- IntelliJ
- grafana
- jenkins github 연동
- error
- gradle
- jenkins jdk
- jenkins 설치
- jpa
- jenkins github
- Spring Boot
- 리액트
- subnetmask
- spring
- java
- jenkins maven
- REACT
- Jenkins Pipeline
- nginx
Archives
- Today
- Total
뭐든 즐기면서 ;)
프로세스 상태전이도(State Transition Diagram) 본문
728x90
프로세스에의 5가지 상태
- New : 프로그램이 메모리에 로드되어 프로세스가 생성된 상태
- Ready : 프로세스가 CPU를 사용해 실행될 수 있는 상태. Process Status list 중 우선 순위대로 준비 리스트에 들어가 있음.
- Running : 실행 중 상태
- Waiting : 프로세스 진행 중에 I/O 또는 어떤 event를 진행하기 위해, Running 상태에서 잠시 대기 상태에 있는 것. Wait 상태에서 I/O 입출력 완료 등의 작업이 끝나면 다시 Ready상태로 돌아가고, 이때 Process Status list 중 블록 리스트에 들어가 있음.
- 대기 상태에는 2가지 종류가 더 있음. 이 Suspend 상태는 제대로 CPU 할당을 받지 못한 채로 메모리 자원만 차지하고 있어, 커널에 의해 메모리를 회수 당하고 디스크로 Swap-out되는 상태를 뜻한다.
- Suspended Block(지연 대기)
- Suspended Rready (지연 준비)
- Termiated : 종료
위 상태별로 Flow를 그려보면 아래와 같다. 이것이 프로세스 상태전이도이다.
전이 상태
- dispatch(ready > running) : 준비 큐에 있는 프로세스를 선택 후 CPU할당
- interrupt(running > ready) : TimeRunout. CPU 사용 시간을 경과한 경우. ( CPU 독점 방지)
- block(running > ready) : CPU를 할당 받은 프로세스가 I/O 등 다른 자원을 요구
- wake-up(wait > ready) : 대기 중인 프로세스가 I/O 작업 또는 event 처리가 끝났을 때. 준비 리스트의 맨 뒤에 붙음.
- swap-out(ready || wait > suspended) : 메모리 부족, 또는 준비 상태의 프로세스가 기억장치를 잃은 경우 커널에 의해 메모리를 회수당하고 디스크로 Swap-out됨.
- swap-in(suspended > ready || wait) : 기억장치가 다시 할당되는 경우, 지연 준비 상태로 전이, 디스크에서 다시 활동 상태인 메모리 영역으로 Swap-in됨.
- exit(running > terminated) : 프로세스의 정상/비정상 종료
* Context Switching(문맥 교환)은 dispacth, block, interrupt 시기에 발생. (이것에 대해서는 추후에 부가적으로 적겠음. 문맥 교환은 굉장히 복잡한 것이라.)
728x90
'IT정리 > 정보처리기사' 카테고리의 다른 글
데이터 모델링 - 개체 관계도(ERD - Entity Relationship Diagram) (0) | 2023.10.17 |
---|---|
객체지향 개발 방법론(Object Oriented Programming) (0) | 2023.10.16 |
자료 사전(Data Dictionary) (0) | 2023.10.11 |
소프트웨어 개발 방법론 종류 (0) | 2023.10.11 |
데이터 흐름도(Data Flow Diagram) (0) | 2023.10.11 |
Comments