datalab
DESCRIPTION
DATALAB. SYSTEM PROGRAMING. 과제 설명. 목적 Bit Level 표현과 조작에 숙달 평가 총 17 개의 문제 각각의 문제는 난이도별 점수 총점 50 점 기한 2011 년 9 월 23 일 ( 금 ) 23 시 59 분 까지. 실습환경 - 리눅스. 1. 개인 pc 에 리눅스 환경을 만듭니다 . dual OS virtual box + fedora(ubuntu 등 ) 설치 2. SSLAB 의 리눅스 서버에 접속합니다 . - PowerPoint PPT PresentationTRANSCRIPT
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.c2) 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 sign-magnitude
! ~ & ^ | + << >> 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&A1) 질의응답은 수업게시판을 이용2) 과제 기한 연장은 없음