핀토스 프로젝트를 하면서 크게 두 가지 스케줄러를 구현해보았다. 물론 기본적으로 구현되어있는 busy waiting 또한 스케줄링 방식 중 하나이지만 내가 구현한 것이 아니니까.. 이번 포스팅에서는 CPU 스케줄러에 대해서 조금 더 자세히 알아보고자 한다. CPU Scheduling Criteria 먼저 스케줄러의 성능 척도에 대해서 알아보고 가자. 크게 다섯 가지가 있는데 다음과 같다. 1. CPU Utilization(프로세서 이용률) CPU를 사용한 시간의 비율을 나타낸다. CPU가 오랜 시간동안 바쁜 상태로 있을 때 높아진다. 대기 시간이 긴 I/O 작업이 많을수록 나빠지며, 단순 연산 작업만 많은 경우 높아진다. 2. Throughput(처리율) 시간당 처리한 작업의 비율을 의미한다. mallo..
드디어 대망의 핀토스다..! 프로젝트 1은 스레드에 관한 내용이다. 좀 더 정확히 짚어서 말하자면 스케줄링 알고리즘 구현이라고 볼 수 있겠다. CPU Scheduling 우리가 사용하는 컴퓨터에서는 여러 개의 프로그램들이 동시에 돌아가고 있다. 좀 더 엄밀히 말하면 동시에 돌아가는 것처럼 보이는 것이다. 사실은 한개의 프로그램만이 하나의 CPU 코어를 사용할 수 있고, 사용 주기가 굉장히 빠르게 교체되기 때문에 우리 눈에는 프로그램들이 동시에 돌아가는 것처럼 보이는 것이다. 여기까지는 우리가 컴퓨터를 보는 입장에서의 설명이었고, 프로그램의 입장에서는 CPU를 마치 자기 자신만이 소유한 것처럼 사용할 수 있게 하는 것이 CPU Scheduling의 목표이다. 현재 프로그램이 디스크에 접근하거나, 키보드의 ..