- 운영체제의 프로세스 관리 기본 개념 이해
- 시스템 호출 함수를 이용하여 간단한 프로그램 작성 기법 이해
- Linux의 간단한 내장 명령어(echo, cat, sleep, ls, ps, top, grep 등) 기능 이해
- Linux의 간단한 내장 명령어와 유사한 명령어(pps, ttop) 구현
- ssu_shell.c skeleton 코드를 완성
- 입력 (대화식 또는 배치식 모드로)을 읽고 입력을 토큰화
- ./ssu_shell : 대화식 모드
- ./ssu_shell commands.txt : 배치식 모드
- SSUShell은 사용자 입력 -> fork(2)를 사용하여 하나 이상의 자식 프로세스를 생성 -> 자식 프로세스들로부터 exec()를 호출하여 사용자 명령을 실행 -> wait(2)를 사용하여 죽은 자식을 거둠
- SSUShell은 ls, cat, echo 및 sleep과 같은 모든 간단한 Linux 내장 명령어 실행 가능해야 함
- SSUShell의 모든 명령어는 리디렉션 또는 기타 특수한 경우가 없는 Linux 제공 명령어와 직접 구현 명령어 pps, ttop
- Linux가 제공하는 기본 명령어는 실행되어야 하나, pps와 ttop은 별도로 구현하고 구현한 명령어가 실행되어야 함.
- 입력 (대화식 또는 배치식 모드로)을 읽고 입력을 토큰화
- SSUShell의 모든 명령어는 리디렉션 또는 기타 특수한 경우가 없는 Linux 제공 명령어와 직접 구현 명령어 pps, ttop로 구성
- Linux가 제공하는 기본 명령어는 실행되어야 하나, pps, ttop은 별도로 구현하고 구현한 명령어가실행되어야 함
- ttop와 pps는 사용자 홈 디렉토리(pwd) 내 존재해야 함
- ttop 명령어 입력 시 기본 출력은 기본 내장 명령어 top와 유사한 기능을 갖고 있음
- interval 간격 (3초) 마다 화면을 갱신하여 정보가 출력됨
- top 명령어와 동일하게 키보드의 상하 화살표 키를 사용하여 목록에 대한 스크롤 제어가 가능
- 상하 화살표키 입력 시 interval 시간에 상관없이 화면 정보가 갱신됨
- 명령어 결과 출력 시, 현재 터미널 크기에 맞게 글자 수가 한 행을 넘어가지 않도록 구현(libcurses5-dev 패키지 사용 필요)
- 문자 ‘q’ 입력 시 해당 명령어가 종료되며 쉘로 복귀하여 $ 프롬프트를 다시 표시
- pps 명령어 입력 시 기본 출력은 기본 내장 명령어 ps와 유사한 기능을 갖고 있음
- 명령어 결과 출력 시, 현재 터미널 크기에 맞게 글자 수가 한 행을 넘어가지 않도록 구현(libcurses5-dev 패키지 사용 필요)
- 옵션 a, u, x 구현
- 각각의 옵션에 대한 출력은 내장 명령어 ps의 a, u, x 옵션과 동일하며 기능은 man 페이지로 확인 (–a, -u, -x 옵션이 아님을 주의)
- 위 세 가지 옵션은 함께 사용 가능해야 함 (예. pps ux, pps aux 등)