SSE2033: System Software Experiment 2 (Spring 2016)

[Assignments]

  • 모든 점수가 공지되었습니다. 성적이의가 있으신 분은 메일 주시기 바랍니다.
  • Final presentation grade
    • 보너스는 소개한 아이디어 중 참신한 것을 개당 1점, 양질의 질문에 대해서 각 1점, 그리고 가장 투표 많이 받은 학생에게 보너스 점수를 20점 부여하였습니다.
    • 다시 재집계하여 공지합니다. (6/27 06:30)
  • PA #6 grade
    • 대부분의 학생이 멀티 쓰레드 테스트를 통과하지 못합니다. 간단한 멀티 테스트 스크립트를 통과하는 분은 무조건 20점을 드렸고, non-error로 일단 돌아가는 분들은 5점씩 드렸습니다.
    • 주황색 칸은 delay로 인해 10% 감점 되신 분들입니다.
  • PA #5 grade
  • PA #4 grade
  • PA #3 grade
    • ETC는 Seg Fault라던지, 형식상의 오류일 경우 일정 부분 감점하였습니다.
  • PA #2 grade
  • PA #1 grade
  • PA #0 grade

Programming Assignment #6 (Deadline: 6/20 11:59PM)

  • Submission Status (revised at 23:10 on June 20th)
    • No Delay : 김대현, 김동성, 박종원, 권진혁, 박경린, 윤현수, 부승화, 여상구, 김태형, 최규영, 공정훈
    • 1-day Delay : 김도영, 최인수, 장효주, 배영빈
  • 다른 client의 검색 내역도 출력해야 합니다.

Programming Assignment #5 (Deadline: 6/6 11:59PM)

  • Server의 실행 양식이 살짝 바뀌었습니다. PA5.pdf를 잘 읽어보시기 바랍니다.
  • Submission Status (revised at 23:20 on June 6th)
    • No Delay : 권진혁, 김동성, 박종원, 박경린, 윤현수, 최규영, 김태형, 부승화, 여상구, 장효주, 김대현, 공정훈, 최인수, 김도영
    • 1-day Delay : 배영빈

Programming Assignment #4 (Deadline: 5/23 11:59PM)

  • skeleton code for PA #4
  • Submission Status (revised at 23:59 on May 23th)
    • No Delay : 최규영, 박종원, 김동성, 박경린, 권진혁, 윤현수, 공정훈, 김태형, 여상구, 장효주, 부승화, 최인수, 김도영, 김대현
    • Max Delay : 배영빈
  • 질문도 5월 23일 23:59 기준으로 받은 것은 모두 답변해 드렸습니다.
  • Restriction에 변경이 있습니다. pdf를 참고하시기 바랍니다.
  • 보너스를 구현하지 않는다고 해도, 처음 실행 될 때 여러 개의 성서를 입력한 경우에는 여러 성서를 지원해야 합니다.
  • 즉, run-time add나 delete를 지원하는 것은 보너스여도, 맨 처음에 static하게 index set을 설정하는 것은 구현하셔야 하는 사항입니다.
  • (5/17) input file name은 무조건 .txt가 붙습니다.
  • (5/17) 일반 검색은, 검색하는 모든 키워드에 대해 대괄호를 붙이고, "" 검색은 처음 나타나는 패턴에 대해서 대괄호
  • (5/18) 이번 과제에서 압축 파일 안의 내용물은, restriction에서 제한한 것 외에는 전부 허용됩니다. indexPrinter.c는 skeleton에 있는 것이지, 제출할 때는 지우셔도 됩니다.

5/10 Socket : socket.zip


Programming Assignment #3 (Deadline: 5/11 11:59AM)

  • skeleton code for PA #3
  • Submission Status
    • 기존 제출 : 김동성, 최인수, 박종원, 김대현
    • 수정 제출 : 장효주, 여상구, 공정훈, 윤현수, 부승화, 김도영, 박경린, 최규영, 김태형, 권진혁
    • Delay : 배영빈
  • cmd_type2 ::== { head, tail, rm, cp }
  • cmd_type3 ::== { mv, cat, cd} 입니다.
  • build-in command의 구현에 관해서는, 2.2.2절을 참고하시기 바랍니다.
  • background job의 pgid는, 쉘에서 fork한 첫 프로세스의 pid로, foreground job의 pgid는 쉘의 pid로 하시기 바랍니다.
    • background job으로 실행해도, stdout으로 나오는 것을 확인하였습니다. stdout은 끊으셔도 되고, 안끊으셔도 됩니다. 이에 관한 감점은 하지 않겠습니다.
    • 즉, foreground는 stdin 및 stdout으로 입출력을 하고, background job은 stdin 및 stdout으로 입출력을 하지 않게 만들란 말입니다.
    • 아래는 setpgid의 linux man page의 일부입니다. 참고하시기 바랍니다.
       Each process group is a member of a session and each process is a
       member of the session of which its process group is a member.
       A session can have a controlling terminal.  At any time, one (and
       only one) of the process groups in the session can be the foreground
       process group for the terminal; the remaining process groups are in
       the background.  If a signal is generated from the terminal (e.g.,
       typing the interrupt key to generate SIGINT), that signal is sent to
       the foreground process group.  (See termios(3) for a description of
       the characters that generate signals.)  Only the foreground process
       group may read(2) from the terminal; if a background process group
       tries to read(2) from the terminal, then the group is sent a SIGTTIN
       signal, which suspends it.  The tcgetpgrp(3) and tcsetpgrp(3)
       functions are used to get/set the foreground process group of the
       controlling terminal.

       The setpgid() and getpgrp() calls are used by programs such as
       bash(1) to create process groups in order to implement shell job
       control.

       If a session has a controlling terminal, and the CLOCAL flag for that
       terminal is not set, and a terminal hangup occurs, then the session
       leader is sent a SIGHUP.  If the session leader exits, then a SIGHUP
       signal will also be sent to each process in the foreground process
       group of the controlling terminal.

       If the exit of the process causes a process group to become orphaned,
       and if any member of the newly orphaned process group is stopped,
       then a SIGHUP signal followed by a SIGCONT signal will be sent to
       each process in the newly orphaned process group.  An orphaned
       process group is one in which the parent of every member of process
       group is either itself also a member of the process group or is a
       member of a process group in a different session 
  • background job을 실행시킬 때는, 명령어의 마지막에 &를 붙입니다......
    • ex) cat tt.txt | head -n10 &
  • 압축하라면서 압축하지 말라는 이상한 말을 하였는데, 압축하여 주시면 감사하겠습니다.

Programming Assignment #2 (Deadline: 5/2 11:59PM)

  • skeleton code for PA #2
    • (4/22, 20:51) skeleton file is modified
    • As I noticed, valid vector for set_name, del_name is added
    • You can use set_name, del_name, and valid_name for name space
    • valid_name(int index) returns 1 if valid, returns 0 if not valid
  • 여러개의 성서를 지원하기 위해, 전체적인 Framework를 바꾸었으니 유념하시기 바랍니다.
    • indexBuilder는 기존과 같이 1개의 input 파일에 대해 1개의 index 파일을 생성하시면 됩니다.
    • indexPrinter는 기존과 달리 여러 개의 output 파일을 생성해야 합니다.
      • 따라서, skeleton 파일에 보시면, argument가 기존과 달리 이중 포인터로 받으며, 이를 통해 여러 개의 output 파일을 생성합니다.
      • 보너스를 안하시는 분도 새로운 Framework에서 동작할 수 있도록 PA1을 수정하시기 바랍니다.
    • 여러분들의 편의를 위해서, input, index, output 파일의 이름을 자동으로 만들어주는 함수를 구현하였습니다.
    • 다시 말씀드리지만, 디버깅을 위해서 main.c를 수정하실 수는 있어도, 제출하실 때는 반드시 skeleton 파일에 있는 main.c에서도 정상작동 하는지 확인하고 제출하시기 바랍니다. 정상작동 하지 않을 경우 0점 처리 됩니다.
  • Submission Status
    • No Delay : 박경린, 권진혁, 김태형, 박종원, 최규영, 여상구, 윤현수, 김동성, 공정훈, 장효주, 김대현, 최인수, 부승화, 김도영
    • 4-day Delay : 배영빈

Programming Assignment #1 (Deadline: 4/11 11:59PM)

  • skeleton code for PA #1
  • Shell scripts
    • 사용법 : ./auto_score.sh [학번] (예시 : $ ./auto_score.sh 2014123456)
    • 실행 안되시는 분은 $ sudo chmod 755 auto_score.sh 로 권한 변경하신 다음에 재시도 하시기 바랍니다.
    • 본 스크립트는 과제의 점수를 테스트하는 것이 아닙니다. 제출하실 때 양식을 맞게 했는지 용도로 살펴보시기 바랍니다.
    • 스크립트의 genesis를 genesis.txt로 바꾸셔도 무방합니다.
  • genesis_answer.txt
  • daniel_answer.txt
    • 참고용입니다. 순서는 관계없습니다.
  • Submission Status
    • No Delay : 김대현, 박경린, 여상구, 윤현수, 김태형, 최규영, 권진혁, 공정훈, 박종원, 김동성, 부승화, 장효주, 배영빈, 김도영
    • 1-day Delay : 최인수
  • skeleton code 압축을 풀고, PA0에서 사용한 my_string.c와 my_string.h를 디렉토리로 옮긴 후 시작하시기 바랍니다.
  • Makefile 수정은 자유로이 하시기 바랍니다.
  • /r/n 으로 되시는 분은, 저번 Lab #3에서 만드신 유닉스-윈도우 변환기로 변환하시면 됩니다.
  • 단어 대,소문자 구분 없이 같은 단어로 인식하시기 바랍니다.(ex. and&And는 같은 단어입니다.)

Programming Assignment #0 (Deadline: 3/21 11:59PM)

  • skeleton code for PA #0
  • test code for PA #0
  • strcat 테스트에 오류가 있어 수정하였습니다. str[30]으로 되어 있으신 분은 재다운로드 바랍니다.
  • 테스트 방법은, ktest.c를 gcc로 컴파일 하시고, $ ./a.out > my_ouput.txt 로 my_output.txt를 생성합니다. 그 후, diff output.txt my_output.txt로 확인하시면 됩니다.
  • Submission Status
    • No Delay : 김대현, 권진혁, 김태형, 윤현수, 박경린, 최규영, 김도영, 박종원, 여상구, 공정훈, 김동성, 부승화, 최인수, 하헌주
    • 1-day Delay : 배영빈, 장효주
  • DO NOT REMOVE 'const' in my_string.c and my_string.h

3/16 : Notice 2

  • 과목에 대한 모든 질문 역시 제 메일 주소로 보내주시면 됩니다.
  • 다만, 제목에 반드시 [SSE2033]은 붙혀 주셔야 합니다.

3/16 : Notice 1

  • 모든 과제 및 제출물은 제 이메일 주소인 dylee@csl.skku.edu 로 과제를 정해진 포맷으로 첨부하시기 바랍니다.
  • 메일 제목은 반드시 아래 양식을 준수하시기 바랍니다.
  • 메일 내용은 자유이며, 첨부파일은 반드시 각 과제에서 요구하는 형식대로 압축하여 첨부하시기 바랍니다.
  • 과제 제목이 PA0이고, 자기 학번이 2014123456 이름이 홍길동인 경우
         [SSE2033] 2014123456 홍길동 PA0