보고서 #1(제출기한: 09/16) 문제 #1 교재에 제시된 아이스크림 가게 시뮬레이션 프로그램(프로그램 8.5, pp.328) 코드를 이해하고, 다음과 같이 수정하라. a. 프로그램에서는 3가지 이벤트, arrival, order, leave를 발생시키고, 이벤트 발생.

Slides:



Advertisements
Similar presentations
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
Advertisements

2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
네트워크 스캔하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
KIM HEESANG JDBC Programming 3 KIM HEESANG
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
Sungkyunkwan University OS Project Dongkun Shin
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
KIM HEESANG PL/SQL 2 KIM HEESANG
CHAP 8:우선순위큐 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
어서와 C언어는 처음이지 제14장.
자바응용.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
알고리즘: 우선순위 큐(8장) 순천향대학교 컴퓨터 학부 하 상 호.
인터넷응용프로그래밍 JavaScript(Intro).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
아두이노 매트릭스 코딩 매트릭스 기본 명령어 실습 01차시 ㈜헬로앱스 김영준.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
7주차 실습 FPGA 보드 사용법.
DK-128 직렬통신 기초 아이티즌 기술연구소
CHAP 21. 전화, SMS, 주소록.
( Windows Service Application Debugging )
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
알고리즘: 우선순위 큐(8장) 순천향대학교 컴퓨터 학부 하 상 호.
OpenCV 설정 2.21 만든이 딩딩.
보고서 #2(제출기한: 09/23) 다음 문제를 해결하시오. (7)
05. General Linear List – Homework
[INA240] Data Structures and Practice
7주차: Functions and Arrays
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
함수, 모듈.
9 브라우저 객체 모델.
2D 게임프로그래밍 프로젝트 - Air Clear 심석용.
AdcRead API 함수 분석 마이크로프로세서.
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
Team Project no.1 Airport Simulation 예쁜 훈쌤 김영훈 이준영 황정아.
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
구글 계정 생성가이드.
아날로그 신호를 디지털 신호로 변환하는 A/D 변환기 A/D 변환 시 고려하여 할 샘플링 주파수 D/A 변환기
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
7 생성자 함수.
6 객체.
2. 프로세스 B 안우진 - 운영체제 -.
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

보고서 #1(제출기한: 09/16) 문제 #1 교재에 제시된 아이스크림 가게 시뮬레이션 프로그램(프로그램 8.5, pp.328) 코드를 이해하고, 다음과 같이 수정하라. a. 프로그램에서는 3가지 이벤트, arrival, order, leave를 발생시키고, 이벤트 발생 시점이 빠른 순서대로 이벤트를 처리한다. 이를 위해서 이벤트를 최소 히프 트리로 구성한다. 프로그램에서는 이벤트 발생시에, arrival 이벤트를 먼저 5개 발생하고, 이러한 이벤트 처리과정에서 order, leave 이벤트만이 발생된다. 즉, 새로 들어오는 고객이 없다고 가정한다. 이는 현실적이지 못하다. 프로그램을 다음과 같이 수정하라: order, leave 이벤트가 처리되는 과정에도 arrival 이벤트가 발생되게 하라. b. 프로그램은 이벤트가 존재하지 않을 때까지 시뮬레이션을 수정한다. 그러나 arrival 이벤트가 계속 발생되면 프로그램은 무한정으로 실행될 수 있게 된다. 프로그램을 다음과 같이 수정하라: 시뮬레이션 수행 시간을 설정(가령 10시간)하고, 이러한 시간이 종료될 때까지 시뮬레이션이 진행되게 하라. c. 프로그램은 손님이 도착했을 때, 자리가 가능한 경우에만 주문 이벤트를 발생시키고, 그렇지 않으면 손님이 즉시 가게를 떠나버린다.고 가정한다. 다음과 같이 프로그램을 수정하라: 손님이 도착했을 때, 자리가 없으면 wait 이벤트를 발생시키고, 이를 히프 트리에 추가한다. 이때 중요한 것은 기다리는 사람이 먼저 서빙을 받을 수 있게 새로 도착하는 사람보다 우선 순위를 높게 해야 한다. 여러분은 시뮬레이션이 종료되었을 때, 손님이 대기하는 평균시간을 출력해야 한다.

Solution: 보고서 #1(1) #define SIM_TIME 100 Int current_t = 0; // current time int main() { HeapType heap; element e; while(t <= SIM_TIME) { // until the simulation time is expired // simTime은 설정된 모의실험 시간 // 난수를 발생시켜서 확률적으로 new arrival event 를 발생시키든지 다른 이벤트를 처리 if (new arrival event is chosen) { // new arrival event 처리 // arrival event를 생성하여 힢 트리에 삽입 e.type = ARRIVAL; // 이벤트 생성 current_t += random(6); // 현재 시간 변경 e.key = current_t; // 현재 시간에 기준하여 새로운 이벤트의 도착 시간 설정 e.number = 1+ random(4); insert_min_heap(&heap, event); } else if (!is_empty(heap)) { // 힙 트리에 포함된 이벤트 순서대로 처리 event <- delete_min_heap(heap); process_event(&heap, event); } return 0;

Solution: 보고서 #1 (2) process_event(HeapType *heap, element e) { element new_event; int tmp; switch(e.type) { case ARRIVAL: case WAIT: if (is_seat_available(e.number)) { // 자리가 있으면 new_event.type = ORDER; new_event.key = e.key + 1 + random(4); new_event.number = e.number; insert_min_heap(heap, event); } else { // 자리가 없으면 new_event.type = WAIT; tmp = e.key + α; // 현재 시간 변경: 적절한 α 값 설정이 중요 if (tmp > current_t) // 새로 들어온 사람 current_t = tmp; // 보다 대기자에 우선순위 부여: 현재 시간 변경 new_event.key = tmp; insert_min_heap(heap, new_event); } case ORDER: // 다른 이벤트 처리 ... new_event.type = LEAVE; new_event.key = e.key + 1 + random(10); … 힢 트리상에 이미 존재하는 arrival event를 고려하는가? 이 경우에 그러한 이벤트보다 먼저 처리되게 하려면?