System Programming
이 프로젝트는 시스템프로그래밍 수업의 개인프로젝트를 정리한 포트폴리오입니다.
담당 교수: 김영재
수강 학기: 2025년도 1학기
학습 목표:
- 컴퓨터 시스템 소프트웨어의 구성 요소 및 동작 원리에 대한 이해
- 링킹, 프로세스, 예외 처리, 시그널, 시스템 수준 I/O 등의 시스템 소프트웨어 핵심 개념 습득
- Concurrent 프로그래밍과 동기화 기법, 동적 메모리 할당, 가상 메모리 등 고급 리눅스 프로그래밍 이론 및 실습 능력 향상
- 프로젝트 중심 학습을 통한 시스템 소프트웨어 설계 및 구현 능력 함양
- 시스템 수준 프로그래밍을 통한 문제 해결 및 디버깅 능력 배양
- 리눅스 기반 개발 환경에 대한 실질적 경험과 실습을 통한 응용 역량 강화
- 복잡한 시스템 문제에 대한 분석적 사고와 설계 능력 향상
과제명 | 기간 | 설명 |
---|---|---|
Project #1 MyLib | 2025.03.17 ~ 2025.03.28 | 일반적인 커널 코드에서 쓰이는 List/Hashtable/Bitmap의 자료구조 분석 및 구현 |
Project #2 MyShell | 2025.03.31 ~ 2025.04.18 | 리눅스 셸의 핵심 기능(프로세스 생성, 입출력 리디렉션, 파이프, 백그라운드 작업, 잡 제어 등)을 직접 구현하며 시스템 프로그래밍 개념 학습 |
Project #3 Stock Server | 2025.05.14 ~ 2025.06.02 | select() 기반 event-driven, BST 서버 구현. 다중 클라이언트 요청을 처리하며 show, buy, sell, exit 명령어를 지원하고, 이후 mutex를 활용하여 동기화 처리 |
Project #4 Mallocator | 2025.06.02 ~ 2025.06.24 | explicit free list, best fit, coalescing 을 포함한 동적 메모리 구현. 메모리 단편화 최소화를 목표로 최적화 기법 적용 |