datalab 과제설명

Download Report

Transcript datalab 과제설명

DATALAB
SYSTEM PROGRAMING
과제 설명
• 목적
– Bit Level 표현과 조작에 숙달
• 평가
– 총 17개의 문제
– 각각의 문제는 난이도별 점수
– 총점 50점
• 기한
– 2011년 9월 23일(금) 23시 59분 까지
실습환경 - 리눅스
• 1. 개인 pc에 리눅스 환경을 만듭니다.
– dual OS
– virtual box + fedora(ubuntu 등) 설치
• 2. SSLAB의 리눅스 서버에 접속합니다.
–
–
–
–
–
–
putty ( xterm, xshell 등 ) 등의 ssh 접속프로그램으로
로그인 하여 사용합니다.
ID , 패스워드는 모두 학번
자신의 PC에서 파일을 올리거나 내려받을 때는
sftp 프로그램을 이용합니다.
수업 게시판 참고.
DATALAB
• 파일 구성
1) bits.c : 과제 수정 파일
2) dlc : bits.c 파일의 문맥 에러 검사
3) btest : bits.c 수정 내용 검사
• 과제 수행 내용
– bits.c 파일에 있는 함수들을 각각의 조건(주석)에 맞추어 작성
과제 수행 방법1
• 게시판에서 datalab-handout.tar 파일 다운
• 압축을 해제한다
“tar –xvf datalab-handout.tar” 명령으로 가능
과제 수행 방법2
• bits.c 파일만 수정
– team_struct 구조체의 “” 부분에 학번과 이름을 삽입
과제 수행 방법3
• 컴파일
1) ./dlc bits.c
2) make btest
• 실행
– ./btest
• TIP : ./btest | grep score 로 입력하면
현재 점수만 확인 가능하다.
과제 항목
함수이름
과제내용
Use Ops
Max ops Rating
bitNor
~(X|Y) 구현
~&
8
1
bitAnd
X&Y 구현
~|
8
1
minusOne
-1 한 값을 리턴
! ~ & ^ | + << >>
2
1
isEqual
X와 Y가 같으면 1 리턴
!~&^|+<<>>
5
2
bitMask
High low 사이가 1인 값
! ~ & ^ | + << >>
16
3
conditional
same as x ? y : z
! ~ & ^ | + << >>
16
3
isLessOrEqual
if x <= y then return 1, else return
0
! ~ & ^ | + << >>
24
3
isNegative
X < 0 이면 1 리턴
! ~ & ^ | + << >>
6
3
isPositive
X > 0 이면 1 리턴
!~&^|+<<>>
8
3
multFiveEights
입력값에 5/8을 곱합(반올림 0)
!~&^|+<<>>
12
3
과제 항목
함수이름
과제내용
Use Ops
Max ops Rating
reverseBytes
X 의 바이트를 거꾸로 바꿈
! ~ & ^ | + << >>
25
3
isPower2
X가 2의 제곱승이면 1 리턴
! ~ & ^ | + << >>
60
4
isNonZero
X가 0이 아니면 1 리턴
! ~ & ^ | + << >>
20
4
bitParity
X가 홀수개의 0을 가지고 있으면 1리턴
! ~ & ^ | + << >>
20
4
satAdd
2개의 수를 더함
양수 오버플로 발생 – 양수 최대값
음수 오버플로 발생 – 음수 최대값
! ~ & ^ | + << >>
30
4
sm2tc
Convert from sign-magnitude to two's
complement
! ~ & ^ | + << >>
15
4
tc2sm
Convert from two's complement to signmagnitude
! ~ & ^ | + << >>
15
4
주의점
• stdio.h 를 포함시키면 에러가 남
– printf문 등의 standard 함수 사용을 금지
• 설명된 파일 이외의 파일은 수정 금지
• 제출 파일
– “make handin TEAM=학번” 명령을 수행
– 학번은 bits.c 에 입력한 학번과 같아야 함
– 명령 수행 후 생성 된 “학번-버전-bits.c” 파일을 제출
주의점
• 수정된 파일을 제출 하려 한다면
– “make handin TEAM=학번 VERSION=2” 명령 수행
– 매회 제출시마다 VERSION의 숫자를 증가시켜 제출
– 평가는 마지막 버전만 이루어짐
• 제출 방법
– E-Mail 제출 : [email protected], [email protected]
– 제목은 반드시 [2011_시스템프로그래밍#1] 으로 시작
– 제목에 학번과 이름을 표기
• [2011_시스템프로그래밍#1]XXXXXXXXX_홍길동
– 위에 주어진 제출 방법을 따르지 않는 과제는 채점되지 않으며,
미 제출 처리된다.
Q&A
1) 질의응답은 수업게시판을 이용
2) 과제 기한 연장은 없음