Linux 환경에서 프로세스 스케줄링의 메커니즘을 분석하고 핵심 알고리즘을 직접 구현한 프로젝트입니다.
Core Implementation
- 본 프로젝트는 제공된 시뮬레이터 프레임워크를 기반으로 핵심 스케줄링 로직을 개발했습니다.
- 주요 작업물:
CPU-Scheduler/Priority-Based/sched.cc,CPU-Scheduler/Proportional-Share/sched.cc파일 내 모든 스케줄링 알고리즘 로직 구현
시스템의 우선순위와 응답성을 결정하는 기본 로직입니다.
- 주요 파일:
CPU-Scheduler/Priority-Based/sched.cc(직접 구현) - 지원 알고리즘: FCFS, SPN, RR, MLFQ
자원의 공정한 배분을 위한 정밀 스케줄링 기법입니다.
- 주요 파일:
CPU-Scheduler/Proportional-Share/sched.cc내 관련 소스 (직접 구현) - 지원 알고리즘: Lottery, Stride Scheduling
- CPU-Scheduler/Priority-Based/: FCFS, SPN, RR, MLFQ 로직이 포함된
sched.cc수록 - CPU-Scheduler/Proportional-Share/: Lottery, Stride 로직이 포함된
sched.cc수록 - Makefile: 빌드 및 컴파일 자동화
Google Test 등 빌드에 필요한 의존성 라이브러리를 설치합니다.
chmod +x install_package.sh
./install_package.sh각 스케줄러 폴더로 이동하여 아래 명령어를 실행합니다.
# 기존 빌드 기록 삭제 후 재빌드
make clean
make
# 알고리즘 테스트 실행
./test멀티스레드 환경에서 데이터 무결성을 보장하기 위해 락(Lock) 메커니즘을 구현하고 성능을 비교 분석한 프로젝트입니다.
Core Implementation
- 본 프로젝트는 공유 자원에 대한 동시성 제어(Concurrency Control)를 위한 다양한 락 기법을 개발했습니다.
- 주요 작업물:
Synchronization/hashtable_impl.cpp파일 내 모든 동기화 알고리즘 로직 구현
동기화 기법을 적용하지 않은 베이스라인(Baseline) 구현체입니다.
- 주요 파일:
Synchronization/hashtable_impl.cpp(직접 구현) - 지원 알고리즘: HashTable (Without Lock)
해시 테이블 전체에 하나의 락(Lock)을 적용하여 동기화하는 기법입니다.
- 주요 파일:
Synchronization/hashtable_impl.cpp내 관련 소스 (직접 구현) - 지원 알고리즘: CoarseHashTable (Coarse-grained Lock)
해시 테이블의 각 버킷 또는 세그먼트 단위로 락을 세분화한 기법입니다.
- 주요 파일:
Synchronization/hashtable_impl.cpp내 관련 소스 (직접 구현) - 지원 알고리즘: FineHashTable (Fine-grained Lock)
- Synchronization:
hashtable_impl.cpp내 동기화 로직 수록 - Makefile: 빌드 및 컴파일 자동화
Google Test 등 빌드에 필요한 의존성 라이브러리를 설치합니다.
chmod +x install_package.sh
./install_package.sh각 스케줄러 폴더로 이동하여 아래 명령어를 실행합니다.
# 기존 빌드 기록 삭제 후 재빌드
make clean
make
# 알고리즘 테스트 실행
./test