Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- integretion test
- error
- Python
- 백준
- 논리 메모리
- 다익스트라
- 스택
- unionfind
- 캡슐화
- SW Expert Academy
- 유니크 키
- springboot
- 프로세스
- BFS
- 데드락
- 객체지향 프로그래밍
- 파이썬
- stack
- OOP
- 운영체제
- queue
- 코딩 테스트
- 백준 #
- java
- 큐
- DP
- DFS
- 디바이스 입출력
- OS
Archives
- Today
- Total
middlefitting
[Process] 프로세스란 무엇인가 본문
프로세스의 개념
프로세스는 실행중인 프로그램을 말합니다.
프로세스가 어떤 의미로 사용되었는지 알기 위해서는 문맥을 알아야 하는데,
문맥을 기준으로 프로세스가 어떻게 진행했는지, 시점이 어떤지 알 수 있기 때문입니다.
프로세스의 문맥은 다음과 같이 존재합니다.
- CPU 수행 상태를 나타내는 하드웨어 문맥
- Program Counte, Register
- 프로세스의 주소 공간
- Code, data, stack
- 프로세스 관련 커널 자료 구조
- PCB, Kernel stack
프로세스의 상태
프로세스는 상태가 변경되며 수행됩니다.
상태가 변경되는 가장 큰 요인은 한 프로세스가 CPU를 계속 점유하지 않고 서로 돌아가면서 쓰기 때문이며,
상태의 종류는 다음과 같습니다.
- New
- 프로세스가 생성중인 상태를 말합니다.
- Ready
- CPU를 점유하기 위한 조건을 만족하고, CPU를 기다리고 있는 상태를 말합니다.
- Running
- CPU를 점유하고 있는 상태를 말합니다.
- Blocked
- CPU를 점유하여도 당장 Instruction을 실행할 수 없는 상태를 말합니다.
- 예시로는 I/O를 만족하지 않거나, 프로세스가 자신이 요청한 이벤트를 만족하지 못해 이벤트를 기다리거나, 프로그램을 메인 메모리 공간에 올려놓지 못한 상태가 존재합니다.
- Suspended
- 프로세스가 외부에서 강제로 정지된 상태를 말합니다.
- 디스크에 Swap out 된 상태이며, 외부에서 Resume을 해 주어야 다시 Active 상태로 돌아갈 수 있습니다.
- Terminated
- 프로세스가 종료중인 상태를 말합니다.
- Instruction이 끝나서 할일을 마쳤지만, 아직 정리할게 남아있는 상태를 말합니다.
Process Control Block(PCB)
PBC란 운영체제가 각 프로세스를 관리하기 위해 프로세스별로 유지하는 정보를 말합니다.
해당 정보들은 다음과 같습니다.
- OS가 관리상 사용하는 정보
- CPU 수행 관련 하드웨어 정보
- 메모리 관련 정보
- 파일 관련 정보
참고문헌
KOWS 운영체제 - 반효경 교수님 - Process 1
'OS' 카테고리의 다른 글
CPU 스케줄링이란 무엇일까 (0) | 2023.01.28 |
---|---|
프로세스 관리에 관하여 (0) | 2023.01.27 |
[OS] Context Switch란 무엇인가 (0) | 2023.01.25 |
[I/O] 동기식 입출력과 비동기식 입출력 (0) | 2023.01.24 |
I/O 디바이스 입출력에 관하여 (0) | 2023.01.23 |