프로세스의 이해
* 프로세스란?
- 메인 메모리로 이동하여 실행 중인 프로그램? → 일반적인 정의
프로세스 구체적인 이해
* 프로세스의 범위
- 메모리 구조 + 레지스터 Set
- 프로세스 별 독립적인 대상은 프로세스의 범주에 포함시킬 수 있음
Code 영역 | 명령어 (Instruction Code) |
Data 영역 | 전역변수 Static 변수 |
Heap 영역 | 프로그래머 할당 |
Stack 영역 | 지역변수 전달인자 정보 |
cf) Context Switching : A프로세스와 B프로세서가 함께 실행되어 질 때, 레지스터 정보(레지스터 Set)는 프로세스에 따라서 저장&불러오기를 하여 레지스터를 사용함.
이는 1초에 수십번 이뤄져 프로세스가 동시 진행되도록 함.
프로세스마다 레지스터 Set이 할당되어 레지스터를 사용.
프로세스 스케줄러
- 소프트웨어적으로 구현되어 있는, Windows 운영체제에서 제공해주는 장치(Block)
* 프로세스 스케줄러 기능
- 둘 이상의 프로세스가 적절히 실행되도록 컨트롤 프로세스
* 스케줄링 방법
- 스케줄링 알고리즘에 따라 다양함
- Ready 상태 / Running 상태를 결정하여 프로세스를 관리
프로세스의 상태
Blocked 상태는 I/O 연산 중인 프로세스를 잠시 두는 곳.
I/O 연산이 끝나면 다시 Ready상태로 이동함.
다른 프로세스에게 양보하기 위해 Running에서 Ready 상태로 오게 됨.
Context Switching
- CPU의 레지스터는 현재 Running 상태의 프로세스의 정보로 채워져 있음.
이 때 Ready 상태의 프로세스가 Running 상태가 되려고 할 때, 메모리에 현재 Running 상태의 프로세스의 레지스터 Set을 저장하고, 다시 메모리에서 Ready 상태의 프로세스를 가져와 레지스터에 채워놓음으로써 프로세스 변경할 준비가 됨
'시스템 프로그래밍' 카테고리의 다른 글
6-1. 커널 오브젝트에 대한 이해 (0) | 2022.05.13 |
---|---|
5-2. 프로그래밍을 통한 프로세스의 생성 (0) | 2022.05.13 |
4-2. Load & Store 명령어 디자인 (0) | 2022.05.12 |
4-1. 컴퓨터 구조의 접근방법 (0) | 2022.05.11 |
3. WIN32 & WIN64 (0) | 2022.05.11 |