프로세스
- 메인 메모리로 이동하여 실행중인 프로그램
- 프로세스의 범위 : 메모리 구조 + 레지스터 셋
- 프로세스별로 독립적으로 할당받는 리소스
- 프로세스 생성 시 아래의 메모리 공간이 할당됨
-> 실제 메모리 크기보다 큰 공간을 할당 받는다면 가상메모리 기법을 이용해서 할당이 됨
- 프로그램이 실행되면 레지스터 셋에 프로그램의 정보가 채워지게 됨
- 다른 프로세스가 실행이 되면 이미 저장되어 있던 프로세스의 정보는 다른 공간에 저장 후 새로운 프로세스의 정보들로 채움
-> Context Switching
프로세스 스케쥴러
- 둘 이상의 프로세스가 적절히 실행되도록 컨트롤 할 수 있는 소프트웨어적으로 구현되어 있는 장치
프로세스의 상태
- Running : CPU에서 현재 실행중인 상태
- Ready : 다른 프로세스가 실행중이어서 실행 대기 중인 상태. 스케쥴러에 의해 Running 상태로 바뀜
- 1단계
-> 처음 프로세스가 생성되면 Ready 상태로 들어감
- 2단계
-> 스케쥴러에 의해 Running 상태로 이동
- 3단계
-> 다른 프로세스가 Running 상태로 이동되서 현재 실행중인 프로세스는 Ready 상태로 이동
- 4단계
-> 프로세스가 CPU의 도움을 크게 요구하지 않는 I/O 작업 중일때 Blocked 상태로 이동
- 5단계
-> 프로세스가 I/O 작업이 끝나면 Ready 상태로 이동
컨텍스트 스위칭(Context Switching)
- Running 상태에 있는 프로세스로 채워져있는 정보를 다른 메모리로 저장 후 Ready 상태에서 오는 프로세스의 정보들을 다른 메모리에서 다시 채우는 작업
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 6. 커널 오브젝트와 오브젝트 핸들(1) (0) | 2020.07.16 |
---|---|
윈도우즈 시스템 프로그래밍 - 5. 프로세스의 생성과 소멸(2) (0) | 2020.07.15 |
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(4) (0) | 2020.07.12 |
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(3) (0) | 2020.07.12 |
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(2) (0) | 2020.07.09 |