
1. 프로세스
- 메인 메모리에 할당되어 실행중인 상태인 프로그램
- 하드디스크에 저장되어 있으며 실행하면서 끊임 없이 stack pointer, data, text, register 으로 변화한다.
1.2 프로세스 상태
- New : 프로그램이 메인 메모리에 할당
- Ready : 할당된 프로그램이 초기화와 같은 작업을 통해서 실행 준비
- Running : CPU가 프로세스를 실행.
- Waiting : 프로세스가 끝나지 않은 시점에서 CPU를 사요하지 않고 다른작업을 진행.
- Terminated : 완전히 종료
1.3 PCB(Process Control Block)
- 운영체제가 프로세스를 제어하기 위해 정보를 저장해놓은 곳, 프로세스의 상태 정보를 저장하는 구조체
- 프로세스 상태관리와 문맥교환을 위해 필요
- 프로세스 생성 시 만들어지며 주기억장치에 유지
- 저장항목 :
1.Process Id : 프로세스의 고유 번호
2.Process State : ready, wait, running 등의 실행 상태
3.Program Counter(PC) : 프로그램 카운터, 다음 실행될 명령의 포인터
4.CPU registers : CPU 레지스터
5.CPU scheduling information : CPU 스케줄링 정보
6.Memory-management information : 할당된 자원 정보
7.Accounting information : CPU 사용시간 등
8.I/O status information : 입출력 상태 정보
1.4 프로세스 큐(queue)
- 프로세스를 수행시 상태가 여러번 변화하기 때문에 서비스를 받는 곳이 여러곳
- 일반적으로 여러개가 한 번에 수행되기에 순서가 필요한데, 순서를 대기하는 곳을 큐(Queue) 라고 한다.
종류)
1. Job Queue : 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다림.
2. Ready Queue : CPU 점유 순서를 기다림.
3. Device Queue : Input/Output 를 위한 장치가 있는데, 각 장치가 기다리는 큐가 존재.
1.5 스케쥴링
- 순서를 기다리는 공간이 있는 것처럼, 순서를 정해주는 알고리즘이 있다.
- 종류)
1. Job Scheduler
- Ready Scheduler
- Device Scheduler
2. 멀티프로그래밍
- 단일 프로세서 상에서 프로그래밍이 동시에 실행되는 것.
- BUT! Q : 프로세스는 동시에 작업을 수행못하지 않나요?
→ A : 맞습니다. 프로세스는 한번에 하나의 작업만 수행할 수 있기때문에 엄밀히 말해서 '동시'라는 표현은 틀림!
하지만, OS 통제하에 하나의 프로그램이 실행되고 곧이어 바로 또 다른 프로그램이 실행되기에
속도가 빠르고 시간 텀이 작아서 사용자는 동시에 실행되는 것 처럼 보임.