# CSE4100: Systems Programming - Project Repository
이 레포지토리는 서강대학교 `CSE4100 시스템 프로그래밍` 수업의 프로젝트 과제들을 정리한 공간입니다.
## 📁 폴더 구조
cse4100/
├── phase1/ # Phase 1: fork & signal
├── phase2/ # Phase 2: pipe (|) 구현
├── phase3/ # Phase 3: background (&) 처리
├── document_20221197.pdf # 보고서 문서
└── README.md # 프로젝트 개요 설명 파일
fork()
를 사용해 자식 프로세스를 생성합니다.- 자식 프로세스가 종료될 때 부모가
SIGCHLD
시그널을 처리하도록 합니다. - 간단한
signal handler
를 통해 시그널을 안전하게 다루도록 구현했습니다.
- 커맨드에 포함된
|
연산자를 파싱하여 여러 프로세스를 파이프라인으로 연결합니다. - 최대 파이프 개수를 고려해 동적으로 구현하였고, 각 프로세스의 입출력을 pipe로 연결했습니다.
- 커맨드 끝에
&
가 있을 경우, 백그라운드에서 프로세스를 실행합니다. waitpid
를 비동기적으로 호출하거나, job table을 통해 관리할 수 있도록 설계되었습니다.
Makefile
을 사용하여 쉽게 빌드가 가능합니다.- 모든 코드에는 주석이 충분히 포함되어 있으며, 보고서에는 각 Phase별 디자인 및 구현 설명이 포함되어 있습니다.
- 학번: 20221197
- 이름: 백서연
- 과목: 시스템 프로그래밍 (CSE4100)