모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 게시물ID : programmer_21825
    작성자 : 한양공대
    추천 : 0
    조회수 : 500
    IP : 118.221.***.30
    댓글 : 3개
    등록시간 : 2017/12/05 22:39:31
    http://todayhumor.com/?programmer_21825 모바일
    코드 해석좀 부탁드립니다 실행창첨부(실행창보고)
    옵션
    • 본인삭제금지
    • 외부펌금지
    #include<iostream>
    #include<fstream>
    #include<cstdlib>


    using namespace std;

    int lru[500][20];

    //Function to change the tag order in the lru algo
    int bringtotop(int set, int assoc, int x)
    {
        int i,pos;
        for(i=0;i<assoc;i++)
            if(lru[set][i] == x)
                pos = i;
        for(i=pos;i<assoc-1;i++)
            lru[set][i] = lru[set][i+1];
        lru[set][assoc-1] = x;


    }

    void plot(int total, int hit, int miss);

    long int changebase(char hex[], int base);


    int convert(char);

    int main()
    {
     int cache_size, asso, block_size,i,j, no_blocks, base,r,alg, x,pos;
     long int address;
     float hitrate;
     char hex[20], filename[20];
     int no_set;
     int check=0, hit=0, miss=0;



     cout<<"Enter the cache_size : ";
     cin>>cache_size;
     cout<<"Enter the associativity : ";
     cin>>asso;
     cout<<"Enter the block size : ";
     cin>>block_size;
     cout<<"Enter trace filename : ";
     cin>>filename;
     cout<<"Enter the base of number in trace file : ";
     cin>>base;
     cout<<"1. FIFO  2.LRU  3. Random...Enter Your Choice : ";
     cin>>alg;

     no_blocks = cache_size / block_size;
     no_set = cache_size / (asso * block_size);

     int cache[no_set][asso];

     for(i=0;i<no_set;i++)
      for(j=0;j<asso;j++)
       cache[i][j] = -10; // Eliminating all garbage values in in the cache...


     int fifo[no_set];
     for(i=0;i<no_set;i++)
      fifo[i] = 0;

        for(i=0;i<no_set;i++)
            for(j=0;j<asso;j++)
                lru[i][j] = j;

     ifstream infile;
     infile.open(filename,ios::in);
     if(!infile)
     {
         cout<<"Error! File not found...";
         exit(0);

     }
     int set, tag, found;
     while(!infile.eof()) //Reading each address from trace file
     {

            if(base!=10)
            {
                infile>>hex;
                address = changebase(hex, base);
            }
            else
                infile>>address;

      set = (address / block_size) % no_set;
      tag = address / (block_size * no_set);


      check++;
      found = 0;
      for(i=0;i<asso;i++)
       if(cache[set][i] == tag)
        {
            found = 1;
            pos = i;
        }


      if(found)
      {
          hit++;
          if(alg == 2)
          {
                    bringtotop(set,asso,pos);
          }
      }

      else
      {
                if(alg==1)
                {
                 i = fifo[set];

       cache[set][i] = tag;
       fifo[set]++;

       if(fifo[set] == asso)
        fifo[set] = 0;

                }
                else if(alg==2)
                {
                    i = lru[set][0];
                    cache[set][i] = tag;
                    bringtotop(set,asso,i);

                }
                else
                {
                    r = rand() % asso;
                    cache[set][r] = tag;

                }

      }



     }
     infile.close();
     system("clear");
     cout<<"No: of checks : "<<check;
     cout<<" No: of hits : "<<hit;
     cout<<" No of misses : "<<check-hit;
     hitrate = float(hit)/float(check);
     cout<<" Hit Rate : "<<hitrate;
        plot(check,hit, check-hit);
     return 0;

    }







    int convert(char c)
    {
        if(c == '1')
            return 1;

        else if(c == '2')
            return 2;

        else if(c == '3')
            return 3;

        else if(c == '4')
            return 4;

        else if(c =='5')
            return 5;

        else if(c == '6')
            return 6;

        else if(c == '7')
            return 7;

        else if(c == '8')
            return 8;

        else if(c == '9')
            return 9;

        else if(c == '0')
            return 0;

        else if( (c == 'a') || (c == 'A') )
            return 10;

        else if( (c == 'b') || (c == 'B') )
            return 11;

        else if( (c == 'c') || (c == 'C') )
            return 12;

        else if( (c == 'd') || (c == 'D') )
            return 13;

        else if( (c == 'e') || (c == 'E') )
            return 14;

        else if( (c == 'f') || (c == 'F') )
            return 15;

        else
            return 0;

    }

    //Function to change the base of a number system to decimal
    long int changebase(char hex[], int base)
    {
        int pow = 1,len,i,j;
        char temp;
        long int dec;

        for(len=0;hex[len]!='\0';len++);

        for(i=0,j=(len-1);i<j;i++,j--)
        {
            temp = hex[i];
            hex[i]=hex[j];
            hex[j]=temp;
        }


        pow = 1;
        dec = 0;
        for(i=0;i<len;i++)
        {
            if(convert(hex[i]== -1))
            {
                dec =0;
                break;
            }
            dec = dec + (pow * convert(hex[i]));
            pow*=base;

        }
        return dec;

    }


    //Function to plot a graph...
    void plot(int total, int hit, int miss)
    {

        cout<<"\n\n     ************Graph**********\n\n";

        int hit_limit,miss_limit, i;
        hit_limit = (float (hit)/total)*30;
        miss_limit = (float(miss)/total)*30;



        cout<<"\n\t^";
        cout<<"\n\t|\n";
        for(i=30;i>=0;i--)
        {
            cout<<"\t";
            cout<<"|";
            cout<<"\t\t";

            //Total hit bar
            cout<<"|";
            if(i==30)
                cout<<"----";
            else
                cout<<"    ";
            cout<<"|";

            cout<<"\t\t";
            //Hit Bar...
            if(i<=hit_limit)
                cout<<"|";
            else
                cout<<" ";

            if(i==hit_limit)
                cout<<"----";
            else
                cout<<"    ";

            if(i<=hit_limit)
                cout<<"|";
            else
                cout<<" ";



             cout<<"\t\t";
            //Miss Bar...
            if(i<=miss_limit)
                cout<<"|";
            else
                cout<<" ";

            if(i==miss_limit)
                cout<<"----";
            else
                cout<<"    ";

            if(i<=miss_limit)
                cout<<"|";
            else
                cout<<" ";

            cout<<"\n";

        }
        cout<<"\t------------------------------------------------------------------------------>";
        cout<<"\n\t\t\tTotal\t\t Hits\t\tMiss\n";



    }
    KakaoTalk_20171205_223041749.png

    한양공대의 꼬릿말입니다
    enter trace filename 과 
    enter the base of number in trace file 에 입력을 뭐라고 쳐야하는지 모르겠습니다 

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    23438
    아후 서터레스 NeoGenius 24/04/02 17:52 402 1
    23436
    로또 [3] 까망사투리 24/03/11 15:53 861 4
    23434
    copilot 기업유료버전 intelliJ에 붙여서 쓰고있는데 지리네요 안녕월드 24/02/22 00:15 900 0
    23433
    코딩마을 대나무숲 [5] cocoa 24/02/20 14:50 1035 5
    23432
    (질문) 프로그래머분들은 싱글PC게임 레벨제한 풀수 있죠?? [22] 본인삭제금지 할배궁디Lv2 24/02/13 13:36 1103 1
    23431
    Freemium NeoGenius 24/02/13 13:23 723 0
    23429
    부산에서 프로그래머 구인하는데 연봉 6천에서 8천 작은건가 [3] 폴팡 24/02/04 20:50 1280 1
    23427
    chatgpt? bard? [4] 별빛러브 24/01/25 06:24 832 0
    23426
    Next.js로 만들어봤어요~ [3] 창작글 sonnim 24/01/24 12:52 999 3
    23425
    Spring Boot 공부하기 - 한국투자증권 오픈API 호출 옐로우황 24/01/21 17:51 901 1
    23424
    파이썬 코딩 관련해서 질문드립니다. [4] 투투나 24/01/08 09:49 1121 0
    23423
    9년차 개발자의 "나만의 챗봇" 만들기 with ChatGPT [2] 아자뵤옹 23/12/10 22:35 1310 4
    23420
    이 에러가 뭘까요? [2] +.푸른바다.+ 23/11/03 15:25 1479 1
    23419
    [유니티 코리아] MWU 2023 투표하고 푸짐한 경품 받아가세요! engine1 23/10/06 18:52 1086 0
    23418
    Flutter로 만든 채팅 어플리케이션 with ChatGPT 아자뵤옹 23/09/13 22:39 1572 0
    23417
    특정 페이지 직접 접근 어떻게 막으시나요? [9] 달콤아시타 23/09/10 09:36 1608 0
    23416
    버츄얼 유튜버가 완성한 '세계 최초' 애플 실리콘 GPU 드라이버 펌글 우가가 23/09/02 23:52 1725 2
    23415
    뜨끈뜨끈한 30분짜리 삽질 [9] 창작글 상사꽃 23/08/29 16:00 1989 1
    23414
    [유니티 코리아] MWU 코리아 어워드 2023 마감 임박! mwuaward2023 23/08/26 14:01 1198 0
    23413
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/08/13 19:52 1232 0
    23412
    React.js 공부하기 - REST API 호출(CRUD) 옐로우황 23/08/05 13:13 1443 0
    23411
    영어앱을 만들었는데, 사용자들의 의견 받고 싶습니다! [2] 맑은바다13 23/08/03 18:28 1417 2
    23410
    진짜 절박해서 정말 ㅠㅠ 첫끼간절해서 도움주실분ㅠ.. [3] 명금123 23/07/17 22:28 1516 0
    23409
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/07/04 16:49 1331 0
    23407
    라즈베리파이 파이썬코드에 while문 썼는데 동작을 안해요 [3] 싱그러운햇살 23/06/17 17:18 1613 1
    23405
    라즈베리파이, 스위치 하나 누르면 다른 스위치들도 반응해요 [3] 싱그러운햇살 23/06/15 22:39 1647 1
    23403
    혹시.. 중소기업 재취업 목표.. 공부방법 및 툴 버전 질문드려도 될까요 [2] 베스트금지베오베금지외부펌금지 웃대메템 23/06/13 01:46 1692 0
    23402
    재취업 힘들까요???? [5] 베스트금지베오베금지외부펌금지 웃대메템 23/06/11 00:46 2028 2
    23401
    취미로 만든 채팅 with ChatGpt [4] 아자뵤옹 23/05/11 20:10 2045 4
    23400
    Spring Boot 공부하며 예제 CRUD 웹애플리케이션 정리 옐로우황 23/05/06 11:26 1711 2
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈