Pintos Project 1 final report - Alarm clock, Priority Scheduling, Advanced Scheduling
- 최초 등록일
- 2024.06.10
- 최종 저작일
- 2023.10
- 32페이지/ 어도비 PDF
- 가격 20,000원
소개글
pintos 프로젝트 1 alarm clock 최종보고서 입니다.
코드와 설명이 하나도 빠짐없이 자세히 기록되어 있어,
그대로 따라하시면 all pass 나옵니다.
한양대 pintos 문서를 참고하였습니당
목차
1. alarm clock
1.1. implementation
1.1.1.data structure
1.1.2. algorithm
1.2. discussion
2. priority scheduling
2.1. implementation
2.1.1. data sturcture
2.1.2. algorithm
2.2. discussion
3. advanced scheduling
3.1. implement
3.1.1. how to compute priority in advanced scheduling
3.1.2. data structure
3.1.3. algorithm
3.2. discussion
4. result
본문내용
1. alarm clock
1.1. implementation
기존의 busy-waiting 방식을 sleep/wake-up 방식으로 변경하는 것은 시스템 자원을 효율적으로 사용하는 데 매우 중요하다. busy-waiting 방식은 프로세서가 일정한 시간동안 아무 작업도 하지 않고 반복적으로 상태를 확인하는 방법으로, 타이머나 조건이 충족될 때까지 CPU가 루프를 반복하며 기다린다. (예를 들어, 알람시계의 경우 지정된 시간이 도달할 때까지 현재 시간을 계속 확인하는 방법이다.) 이로 인해 CPU 사이클을 낭비하게 됨으로써 CPU 자원이 불필요하게 낭비되고, 전력 소비를 증가시킬 수 있다. 반면, sleep/wake-up 방식은 프로세서가 작업을 기다리는 동안 유휴 상태로 전환되어 다른 작업을 수행할 수 있게 한다. 따라서 시스템 효율성을 증가시킬 수 있으며, 특히 임베디드 시스템이나 배터리로 구동되는 장치에서 매우 유용하다. 이를 통해 불필요한 자원 낭비를 줄이고, 시스템의 응답성을 높일 수 있다.
1.1.1.data structure
struct thread에 wakeup 변수 추가
busy-waiting 방식과 sleep/wake-up 방식의 가장 큰 차이점은 thread가 깨어야 할 시간에만 깨는지, 아니면 깨지 않아도 될 시간에도 깨워서 시간을 확인하는 지다. 그러므로 sleep/wakeup 방식을 구현하기 위해 각 thread가 깨어야 할 시간을 저장하는 변수를 thread struct 안에 추가해 주는 것이 좋다. wakeup 변수는 현재 thread가 깨어나야 하는 ticks 값을 저장한다.
참고 자료
한양대 pintos 자료, postech pintos 자료