1. 프로그램과 프로세스
보조 기억장치 : 프로그램이 저장되어 있는 곳
주 기억장치 : 프로그램이 로딩되는 곳
프로세스 : 프로그램이 실행해주는 주체
쓰레드 : 작업을 처리해주는 주체
OS(Operation System)
2. 프로세스 상태
신규 : 프로세스가 이제 막 메인메모리에 올라온 상태.수용(admit)을 거쳐야 준비 단계로 넘어감
준비 : 수 초기화 등 기초 준비작업을 모두 끝나고 실행을 할 수 있는 상태. 아래의 케이스를 통해 준비상태가 됨.
- 신규 프로세스가 수용됨
- 대기 프로세스의 이벤트가 완료됨
- 수행 프로세스가 중단됨
수행 : CPU가 실제로 프로세스를 수행하고 있는 상태. 아래의 케이스를 통해 수행상태가 해제됨.
- CPU의 과부하가 판단되는 경우 (준비상태로 돌아감)
- I/O 나 event wait가 있을 경우 (대기 상태)
- 이 후 I/O나 evet가 끝나면 ready 상태로 복구 (대기 상태)
대기 : CPU는 I/O를 기다리며, 다른 프로세스를 수행
종료 : 최종적으로 프로세스가 종료된 상태
- 수행 상태에서 수행이 완료되면 종료 상태가 됨.
3. 프로세스 메모리
4. 대기 큐
- Job Queue : HDD에 있던 프로그램들이 메모리에 올라올 때, 만약 메인 메모리가 가득 찼거나 CPU가 다른 작업을 수행 중이라서 잠시 대기하는 현상
- Ready Queue : 메인메모리에 프로그램이 올라오고 해당 프로그램이 I/O를 시작하거나, 시공유시스템의 경우 기존 프로세스가 시간초과되면 실행합니다. 이렇게 프로세스들이 실행하기 위해 대기하는 곳을 Ready Queue라고 합니다.
- Device Queue : 각각 I/O 장치들은 각자의 대기 큐를 가지고 있고 이러한 큐들을 지칭하는 말입니다.
5. Scheduler
- Job Scheduler : Job Queue의 프로그램들을 어떤 순서로 메모리에 올릴 것인지 결정함
- CPU Scheduler : Ready Queue의 프로세스들을 어떤 순서로 서비스 할 것인지에 대한 스케줄러.
- Device Scheduler : Device Queue의 프로세스들을 어떤 순서로 I/O 장치를 이용하게 할 것인지에 대한 스케줄러
6. Swapping
서버와 같이 여러 사용자가 하나의 메모리를 공유하는 경우에 오랫동안 동작이 없는 프로세스는 잠시 HDD로 내려놓고
다른 프로세스를 실행하거나 기존 프로세스에 메모리를 더 할당하는 등 메모리를 더 효율적으로 활용합니다.
그러다가 동작없던 프로세스 사용자가 돌아와서 작업을 수행하면 다시 HDD에서 메모리로 프로세스를 올립니다.
- Swap Out
- 메모리에서 HDD로 내리는 작업
- Swap In
- HDD에서 다시 메모리로 올리는 작업
7. Context Switching
- Context Switching : CPU 시간공유 시스템인 경우 시간이 지나면 기존 프로세스를 준비 상태로 만들고 다른 프로세스를 수행 상태로 만들어서 실행함. 실행중인 프로세스를 Switch 하는 것을 Context Switching라고 합니다.
- Scheduler : Context Switching을 전문적으로 담당하는 스케줄러는 위에서 배운 CPU 스케줄러 입니다.
- Dispatcher : 프로세스를 진행중에 다른 프로세스로 넘어가면 그 정보를 저장하고 중단했었던 프로세스로 돌아와 정보를 끊이지 않고 수행할 수 있도록 해주는 프로그램.
'computer_science' 카테고리의 다른 글
복습2 (0) | 2024.03.30 |
---|---|
복습 (0) | 2024.03.28 |
네트워크 (OSI7계층, TCP/IP) (1) | 2024.03.26 |
computer science 1일차 (CPU,메모리) (0) | 2024.03.19 |