프로세스와 스레드
프로세스와 스레드
메모리에 올라가 있는 프로세스를 어케 관리 할것인지에 대한 내용
프로세스 스케줄링
cpu가 가장 중요한 자원이여서 효율적으로 사용해야함
어떤 프로세스를 중앙처리장치에 할당할것인가 결정하는 정책
1.처리량 최대화와 반환시간의 2.최소화를 목표로함
처리량 : cpu가 단위시간당 처리하는 프로세스의 개수
반환시간 : 각 프로세스가 시작해서 끝날때까지 걸리는 시간
1. 프로세스의 다양한 정의
실행중인 프로그램->주기억장치에 로드된 프로그램
PCB를 지닌 프로그램
프로그램 카운터를 지닌 프로그램
2. 운영체제의 프로세스 관리기능
프로세스 생성과 삭제
일시중지와 재실행
스케줄링
동기화
통신
교착상태 처리
+메모리 구조
준비상태(Ready State)
메인 메모리에 올라와있고 cpu를 기다리는 상태
실행상태(Running State)
프로세스가 cpu를 할당 받아서 사용하는 상태
대기상태(Block State)
cpu반납하고 입출력을 처리하는 상태
3. 상태전환(중요)
준비상태>실행상태(Dispatch)
실행상태>준비상태(Timer Runout)
실행상태>대기상태(Block cpu반납하고 입출력 수행)
대기상태>준비상태(Wakeup 입출력 완료하고 준비 상태로)
PCB Process Control Block
운영체제가 프로세스에 관한 정보를 유지관리 하기 위한 자료구조
프로세스 관련된 정보를 가진 데이터 구조->중간에 왔다갔다 해야해서 알아야함
생성시 만들어짐
수행 완료 시 삭제됨
내용수정될 수 있음
스케줄링 목적
- 공정성(무한대기방지
- 처리능력 최대화
- 응답시간 최소화
- 낭비되는 자원 최소화
등등
이런 모든 것을 만족하는 스케줄링은 없어서 목적에 따라 스케줄링을 조정해야함