<Resident Set>- memory에 들어있는 page들의 집합
Resident set size: memory에 있는 process들의 page의 개수
<Resident set size를 정해주는 방법>
Fixed-allocation: main memory의 정해진 개수의 frame을 process에게 주는 방법
[Local Scope]: page fault발생으로 replacement시 제거page를 갖고있는 page 중 선택
Variable-allocation: main memory의 frame을 상황에 따라 가변적으로 조절
[Local Scope]: 할당 후 page fault빈도에 따라 중간중간에 고정된 할당량을 변경(재조정)하는 것
[Global Scope]: page replacement시 모든 page를 대상으로 선택
<Page-Fault Frequency Scheme>: process에게 주는 frame수 조절
<Scheduling 종류>
process scheduling: process 즉, cpu 하드웨어자원을 어느 process에게 할당할 것인지 결정하는 것
§ CPU 하드웨어 대상 Scheduling_scheduler 실행 시간 간격이 기준
Long-term scheduling: 시간간격이 김
Medium-term scheduling: 시간간격이 중간
Short-term scheduling: 시간간격이 짧음 (우리가 말하는 process scheduling)
§ I/O 대상 Scheduling: I/O Scheduling: 입출력 요청시 어떤 I/O를 먼저 해줄 것인가
<Scheduler가 하는 일>- ready queue로 집어넣는데 processor의 것과 새로 queue로 들어온 것 비교.
if (processor의 process 우선순위 < 새로운 process 우선순위) => context switch
i) context saver: 실행상태 process context를 PCB에 저장
ii) scheduling algorithm: 다음 실행할 process 선택
iii) Dispatcher: process context된 새로운 process에 CPU를 배정
<Scheduler 호출시점은 언제인가?> => context 발생시점과 동일
§ preemptive: 원하지 않게 CPU를 뺏긴것
- ready 상태가 될 때 (block에서나 new상태에서 ready상태로 갈 때)
running => ready 상태 (time slice같은 때)
§ non-preemptive: 자발적으로 CPU를 놓음
running => blocked 상태 (I/O나 자원 요청)
terminated
<Scheduling 알고리즘>
사용자 관점: response time(사용자의 명령시작~system 반응전까지의 시간)이 짧을수록 좋음
System관점: throughput, cpu utilization이 높을수록 좋음
Priority: PCB의 priority로 비교 // 단점: starvation(우선순위가 너무 낮아 cpu 배정이 안되는 현상 발생가능)
<Scheduling Criteria: 성능 기준치>
[UNIX와 Linux 운영체제의 Scheduling: 529~531p]
Base Priority: 고정 우선순위, 불변값
Dynamic Priority: 동적 우선순위
둘 다 모두 PCB의 Priority에 저장됨
[Text Editor(우선순위가 높음) vs Compiler(우선순위가 낮음)]
input이 없다면 editor는 block상태가 되어버림. (text editor는 interactive, compiler는 batch)
input이 있다면 editor는 wake 즉, ready상태가 되어 preempted process인 compiler는 ready상태가 됨(compiler는 절대! block상태가 되지 않음)
editor의 동작이 끝나면 block 상태로 바뀌며 compiler는 다시 계속 실행된다.
<Text editor process(interactive program)과 compiler process 스케줄링 시나리오>
The editor process is in block(=wait, sleep) state until input arrives
When user makes input, an interrupt is raised to inform this event
The compiler process enters the kernel to handle the interrupt and wakes text editor process
The scheduler actives after the kernel finishes interrupt handling
The kernel determines dynamic priority of edit process is higher than the priority of compiler
The scheduler selects the editor and perform context switch, compiler go to ready state
When character processed by editor, the editor process enters to block state and compiler can resume execution
'Computer System > 운영체제' 카테고리의 다른 글
this->OS.code(13) (0) | 2022.12.21 |
---|---|
this->OS.code(12) (0) | 2022.12.21 |
this->OS.code(11) (2) | 2022.12.21 |
this->OS.code(10) (0) | 2022.12.21 |
this->OS.code(9) (0) | 2022.12.21 |