• 전문가 요청 쿠폰 이벤트
*재*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 4
검색어 입력폼
  • 네트워크 홀펀칭 기술 조사 레포트
    Report제목 : 홀펀칭 기술 조사교과목명네트워크프로그래밍담당교수학 번성 명제 출 일목 차1. NAT 기능 32. 공유기에서 제공되는 NAT 기능 43. 홀펀칭 기술이란 무엇인가? 6홀펀칭 기술 조사4. 공유기에서 제공되는 홀펀칭 기술 유형 71. NAT 기능NAT란? 네트워크 주소 변환(Network Address Translation)의 약자로써, 컴퓨터 네트워킹에서 주로 쓰이는 용어이다. NAT은 내부 네트워크에서 외부로 나가는 패킷들의 주소를 외부 네트워크 주소로 변환하고, 또한 그 패킷에 대한 응답 패킷의 목적지 주소를 다시 패킷이 발송된 내부 네트워크 주소로 변환하여 주는 기능을 가지고 있다.일반적으로 NAT 기능을 사용하게 되면 네트워크 외부로 나가거나 들어오는 각 요구들이 모두 주소 변환과정을 거치기 때문에 보안을 확실하게 하는데 도움이 된다. 또한 요청들을 제한하거나, 인증하는 등의 추가적인 보안을 제공할 수도 있다.① Static NAT그림1. Static NAT 테스트 환경Static NAT(외부 IP Address) : (내부 IP Address)1 : 1(외부 ↔ 내부)내부 IP 주소 하나에 외부 IP 주소를 할당하는 1:1 방식의 주소 변환② Dynamic NAT그림2. Dynamic NAT 테스트Dynamic NAT(외부 IP Address) : (내부 IP Address)m : n (단, m>n 인 경우가 일반적)(내부 → 외부)Dynamic NAT는 주로 외부 IP보다 내부 네트워크의 실제 호스트 수가 적을 경우,또는 모든 내부 IP 주소를 일일이 외부용 IP 주소로 고정적으로 할당할 필요가 없을 경우 사용2. 공유기에서 제공되는 NAT 기능공유기는 쉽게 말해서 라우터에서 NAT기능을 쏙 빼온 장비라고 할 수 있다. 우리가 인터넷을 하기 위해서는 반드시 1개 이상의 공인 IP가 필요한데, 현재는 IPv4의 IP부족 현상으로 모든 장비에서 공인IP를 사용하기가 힘들어졌다. 따라서 사용자들이 임의로 배분하여 사용할 수 있는 사설 IP라는 것이 생겨나게 되었다. 하지만 사설 IP만으로는 인터넷을 사용하는 것이 불가능한데, NAT 기능을 이용하면 사설 IP도 인터넷을 할 수 있도록 만들어준다.IP 공유기는 이런 NAT(Network Address Translation) 기능을 사용해 공인 IP를 사설 IP로 나누어 사용할 수 있도록 하는 기능을 제공한다.192.168.0.10에 있는 개인 사용자가 웹 브라우저를 사용하여 w2.x2.y2.z2에 있는 웹 서버에 연결할 경우 사용자의 컴퓨터는 다음 정보를 사용하여 IP 패킷을 만듭니다.대상 IP 주소: w2.x2.y2.z2원본 IP 주소: 192.168.0.10대상 포트: TCP 포트 80원본 포트: TCP 포트 5000이 IP 패킷은 NAT 프로토콜에 전달되고, NAT 프로토콜은 나가는 패킷의 주소를 다음과 같이 변환합니다.대상 IP 주소: w2.x2.y2.z2원본 IP 주소: w1.x1.y1.z1대상 포트: TCP 포트 80원본 포트: TCP 포트 1025NAT 프로토콜은 {192.168.0.10, TCP 1025}에서 {w1.x1.y1.z1, TCP 5000}으로의 매핑을 테이블에 보관합니다.변환된 IP 패킷은 인터넷을 통해 보내집니다. 응답은 되돌아 오고 NAT 프로토콜이 이것을 받게 됩니다. 받은 패킷에는 다음과 같은 공용 주소 정보가 들어 있습니다.대상 IP 주소: w1.x1.y1.z1원본 IP 주소: w2.x2.y2.z2대상 포트: TCP 포트 1025원본 포트: TCP 포트 80NAT 프로토콜은 변환 테이블을 확인하여 공용 주소를 개인 주소에 매핑한 다음 192.168.0.10에 있는 컴퓨터에 패킷을 전달합니다. 전달된 패킷에는 다음과 같은 주소 정보가 들어 있습니다.대상 IP 주소: 192.168.0.10원본 IP 주소: w2.x2.y2.z2대상 포트: TCP 포트 5000원본 포트: TCP 포트 80NAT 프로토콜에서 나가는 패킷의 경우, 원본 IP 주소(개인 주소)는 ISP 할당 주소(공용 주소)로 매핑되고 TCP/UDP 포트 번호는 다른 TCP/UDP 포트 번호에 매핑됩니다.NAT 프로토콜에 들어오는 패킷의 경우, 대상 IP 주소(공용 주소)는 원본 인트라넷 주소(개인 주소)에 매핑되고 TCP/UDP 포트 번호는 원래 TCP/UDP 포트 번호에 다시 매핑됩니다.3. 홀펀칭 기술이란 무엇인가?3.1 홀펀칭 기술이 생겨난 이유인터넷의 거대한 성장과 방대한 보안 과제들이 결합되어 생긴 압력이 많은 어플리케이션들의 삶을 힘들게 많드는 방향으로 인터넷이 진화하게끔 압박해왔다. 인터넷 본래의 유니폼 주소 체계, 다시 말해 모든 노드들이 고유의 글로벌 IP주소를 가지고 모든 다른 노드들과 직접적으로 통신을 할수 있는 방식은 사실상 지금 현존하는 주소 체계로 바뀌게 되었다. 이 방식은 글로벌 주소들로 이루어진 세계와 private 주소들로 이루어진 세계들이 네트워크 주소 변환 (NAT)를 통하여 연결되는 주소 체계이다. 이 새로운 주소 체계에서는 아래 그림에서 보여지는 바와 같이 오직 "main"에 있는 노드들, 즉 글로벌 주소 세계에 있는 노드들 만이 네트워크 상의 다른 노드들과 쉽게 연결되어 진다. 이것은 오직 이들만이 글로벌하게 전달 가능한(routable) IP 주소들을 가지기 때문이다. Pirvate에 있는 노드들은 같은 네트워크 안에 있는 노드들과 연결을 할 수 있으며, 글로벌 주소 세계에 사는 "잘 알려진" 노드와 TCP 혹은 UDP 연결을 할 수 있다. 이 과정에서 NAT들은 밖으로 향하는 연결에 대하여 임시적으로 public 종점을 할당하고 이 세션을 구성하는 패킷들에 있는 주소와 포트를 변환한다. 이와 달리, 일반적으로 안으로 향하는 모든 트래픽에 대해선 특별한 설정이 되어있지 않는 한 차단한다.이 현존하는 새 주소 구조는 클라이언트가 Private 네트워크에 있고 서버가 글로벌 주소 세계에 존재하는 전형적인 상황에 대한 클라이언트/서버 통신에 적합하다. 반면에, 텔레컨퍼런싱이나 온라인 게임에 사용되는 P2P 통신 프로토콜에 중요한, 즉 서로 다른 Private 네트워크에 존재하는 두 노드가 직접적으로 통신하게 하는 것을 어렵게 한다. 당연히 NAT들이 존재하는 이 상황에서도 이런 프로토콜들을 잘 작동하게 하는 방법이 필요하다.3.2 홀펀칭이란?STUN(Simple Traversal of User Datagram Protocol Through Network Address Translators)의 약자로써, 서로 다른 Private 네트워크에 존재하는 호스트들 간의 P2P 연결을 구성하는 가장 효과적인 방법이다. 공유기의 Routing Table을 작성하기 위해 P2P통신을 목적으로, 사전에 패킷을 주고받고 하여 각자의 공유기에 Routing Table을 작성하는 것을 홀펀칭이라 한다.4. 공유기에서 제공되는 홀펀칭 기술 유형① Full Cone NAT내부에 있는 호스트들의 모든 요청은, 모두 같은 외부 IP, port 로 맵핑된다.어떤 외부 호스트든 공인 IP가 맵핑된 패킷 보내기에 의해 내부 호스트로 패킷을 보낸다.
    공학/기술| 2014.12.04| 7페이지| 1,000원| 조회(111)
    미리보기
  • 오일샌드의 매장량 및 이용방법에 대한 조사 평가A+최고예요
    Report주제 : 오일샌드의 매장량 및 이용방법에 대한 조사교과목명담당교수학 번성 명1. 오일샌드란?석탄은 나무가 지각변동을 통해 퇴적된 뒤 보통 수억~수십억 년 동안 고압과 고열을 받아 생성된다. 원유도 동물의 사체가 지각변동을 통해 퇴적된 수 수억~수십억 년 동안 고압과 고열을 받아 형성된다는 설이 유력하다. 천연가스의 경우 이미 형성된 원유가 더욱 높은 고압과 고열을 받아 원유의 액체가 증발해 기체화된 것이다. 오일샌드도 원유의 형성과정과 매우 유사한 과정을 거쳐 만들어진다. 다만 다른 점은 오일샌드는 동물의 사체가 박테리아에 덜 부식되면서 진행된 결과라고 말할 수 있다. 오일샌드는 모래, 진흙, 물, 유황, 원유 등이 뒤섞여 매장된 것을 의미한다.오일샌드는 1990년대 캐나다에서 시작되어 세계 최대의 오일샌드 매장량을 보유한 베네수엘라가 최근 본격적으로 개발을 추진하기 시작했다. 지금까지 오일샌드 개발의 최대의 문제점은 경제성과 환경문제였다. 경제성의 문제는 기존 에너지 자원의 점진적 고갈과 지속적인 가격 상승이 예상되면서 해결되었고, 기술개발을 통하여 환경문제도 어느 정도 해결될 가능성이 높아지고 있다고 한다.현재 세계 에너지 소비량은 지속적으로 증가하고 있으며 국제에너지기구(IEA)의 보고에 의하면 석유와 천연가스와 같은 1차 에너지 수요가 향후 2030년까지 연평균 1.5%씩 총 30% 증가할 것으로 전망하고 있다. 이는 향후 더 많은 에너지 자원이 필요하다는 것을 의미하며 새로운 에너지원으로 오일샌드가 주목받고 있는 이유이다.2. 오일샌드의 가치?장점현재의 오일샌드 추정 매장량은 인류가 약 300년간 사용할 수 있는 양으로 전통적 원유매장량의 2배가 넘는다. 따라서 기존의 화석에너지원을 대체할 수 있을 것이란 기대를 받고 있다. 일찍부터 캐나다가 오일샌드를 개발하기 시작했고, 베네수엘라도 전통적 원유 생산량이 감소하면서 오일샌드의 개발과 생산에 박차를 가하고 있다.?단점기존에 사용하고 있는 석유개발에 비해 개발비용이 많이 소요된다. 또한 석유개발에 비해 더 많은 물과 더 심각한 환경문제, 즉 인근 지역에서 수질, 토양 대기오염을 일으키는 단점이 있다. 오일샌드 개발에 따른 환경오염을 감소시키기 위해 새로운 기술개발이 지속적으로 이루어지고는 있지만 현재 만족할 만한 수준은 아니다. 오일샌드가 새로운 에너지 자원으로 각광을 받고 있지만 개발에 따른 환경오염 문제 등을 해결해야만 하는 과제를 안고 있다.3. 오일샌드의 매장량? [표1] 점성도(Downhole Viscosity)에 기준한 비전통적 원유의 등급자료: Francois Cupcic(2003), pp. 2-3.등급API Scale매장 상태보유국A급(Medium Heavy Oil)25-18mobile원유생산국B급(Extra Heavy Oil)20-7mobile베네수엘라C급(Tar Sands or Bitumen)12-7non-mobile캐나다D급(Oil Shales)n.a.non-mobile호주?[표2] 전통적 및 비전통적 원유 매장량 및 생산량(2010년)자료: BP(2011), pp. 7-8; US Geological Survey(2010); Pierre-Rene Bauquis(2006); Government of Alberta(2008).전통적 원유비전통적 원유확인 매장량(억 배럴)생산량(만 배럴)확인 매장량(억 배럴)추정 매장량(억 배럴)생산량(만 배럴)사우디아라비아2,6451,000n.a.n.a.n.a.미국309751n.a.n.a.n.a.캐나다3213341,43117,500180(2009)베네수엘라2,1122475,13012,000116(2009)세계 총합13,8328,210n.a.n.a.n.a.※ 오일샌드는 원유에서 추출하는 전통적 원유(conventional crude oil)와 구별하기 위해 비전통적 원유(unconventional crude oil)라고 칭한다.오일샌드는 전 세계에 분포되어 있으나 경제적 가치를 갖고 있는 나라는 막대한 매장량을 자랑하는 캐나다 베네수엘라다. 현재 비전통적 원유의 80%가 B~C등급이고, 이 중에서 80%가 북미(특히 캐나다 앨버타주의 4만 5,000km2)와 남미(특히 베네수엘라 오리노코 강의 5만 4,000km2)에 존재한다. [표2]에서 보듯 확인된 비전통적 원유의 매장량은 전통적 원유의 50%에 불과하지만 추정 매장량은 전통적 원유매장량의 2배가 넘는다.베네수엘라와 캐나다의 오일샌드를 비교하면 베네수엘라 오일샌드가 캐나다 오일샌드보다는 정제하기가 다소 쉬운 유동성을 지녔다. 이 때문에 베네수엘라는 자국의 오일샌드를 엑스트라 헤비 오일(extra-heavy oil)로 부른다. 원래 오일샌드의 매장량은 원유 관련 국제지표에 포함시키지 않았다. 왜냐하면 오일샌드로부터 원유를 생산하기 위해서는 원유의 생산단가보다 더 많은 비용이 들고 첨단기술을 요구하며 환경오염을 유발하기 때문이다. 그러나 9?11 이후 국제 유가가 100달러 넘고 원유 매장량의 수치가 갈수록 하락하는 상황과 오일샌드를 추출하고 정제하는 기술이 개발되어 오일샌드는 새로운 각광을 받았다. 이 때문에 최근 원유 관련 국제지표에 오일샌드의 매장량을 포함시키고 있다. 향후 오일샌드는 석유를 대체하는 새로운 에너지 자원이 등장하기 전까지 점차적으로 고갈되는 전통적 원유의 대안 에너지로 각광받을 것이다.4. 오일샌드의 생산량 및 이용방법?생산량보통 약 2톤의 오일샌드에서 1배럴의 원유가 생산된다. 그러나 오일샌드에서 생산된 원유는 전통적 원유와는 달리 업그레이딩(upgrading)이라는 정제과정을 거치기 때문에 synthetic crude oil(syncrude)로 불린다. 따라서 비전통적 원유를 생산하는 데 기술과 개발비(평균 28달러) 이상의 석유 가격이 매겨지는 것은 필수적이다. 캐나다의 경우 1967년부터 개발하기 시작하여 2009년 오일샌드로부터 하루 180만 배럴의 원유를 생산하여 캐나다 총생산량의 36%를 차지했다. 2009년 캐나다는 미국으로 향하는 최대의 원유수출국(미국 원유 수입량의 20%)이 되었다. 캐나다의 오일샌드에서 생산되는 원유의 약 50%인 90만 배럴이 미국으로 수출된다. 2030년에는 캐나다는 하루 500~600만 배럴의 원유를 생산할 것으로 전망한다.베네수엘라의 경우 원유 생산량이 점차적으로 감소하는 추세다. 반면 2009년 오일샌드의 생산량은 116만 배럴로 향후 점차적으로 증가할 전망이다. 문제는 마라카이보의 유전지대에서 생산되는 베네수엘라의 전통적 원유 매장량이 급격히 감소하고 있다는 사실이다. 이 때문에 베네수엘라는 오일샌드의 개발을 더욱 부추기고 있다. 베네수엘라는 2020년까지 하루 650만 배럴의 오일샌드 원유 생산을 목표로 하고 있다.?이용방법오일샌드는 전통적 원유와는 달리 정제소에 보내기 전에 사진 정제과정(pre-processing=upgrading)이라는 특별한 정제 및 생산 과정(steam injection, solvent)을 요구한다. 소위 추출기술 방식이다. 이 과정에서 소요되는 것들(steam, hydrogen, electricity)을 위한 투입에너지는 천연가스, 석탄, 원자력을 이용하는데 주로 천연가스가 쓰인다. 이 기술은 많은 물과 전통적 원유추출보다 더 많은 에너지를 소비한다. 특히 TAN(Total Acid Number)의 수치가 1이 넘으면 재래식 정제 방법이 아닌 특별한 정제 방법이 필요하다. TAN의 수치는 베네수엘라 오리노코 오일샌드의 경우 3.3 그리고 캐나다 오일샌드의 경우 3.5다.현재 캐나다의 오일샌드 생산방식을 예로 들면 보통 지하 75미터를 기준으로 윗부분은 노천채굴 기법(Opin-pit Mining)으로 이뤄지며 그 이상의 지하 심층부는 파이프를 이용 하여 뜨거운 스팀을 주입해 비투멘(Bitumen)을 분리시키는 SAGD(Steam Assisted Gravity Drainage, 혹은 ‘in-situ’) 방식이 있다. 또한 스팀을 주입하지 않는 일차생산법(Primary Production)도 같이 사용하고 있는데 이 모든 방식이 기본적으로 오일샌드가 지닌 친수성을 살려서 채굴하기 때문에 개발하게 된 기술이다. 특히 현재 개발지역 가운데 가장 많게 채굴이 가능한 매장량을 보유하고 있는 지역은 아사바스카 지역으로 220억 배럴 정도 매장되어 있고 작년까지 약 37억 배럴정도가 노천채굴 방식으로 생산이 되었다.
    공학/기술| 2014.12.04| 5페이지| 무료| 조회(401)
    미리보기
  • Dotmatrix를 활용한 지렁이 게임 프로젝트 평가A+최고예요
    임베디드시스템실험 설계과제임베디드시스템실험 설계과제 결과 보고서, 2012.12.13( Embeded System Project Preliminary Report, 2012. 12. 13)주제 : Dotmatrix를 활용한 지렁이 게임 프로젝트15 조학 번(ID)성 명(Name)Dotmatrix를 활용한 지렁이 게임 프로젝트1목차1. 프로젝트 주제명 22. 프로젝트 설명23. 설계 일정(Schedule)24. 사용자 인터페이스 및 명령어35. 알고리즘(Algorism)65.1. 전체 시스템 구성도65.2. 주요 함수 설명75.3. 순서도86. 소스코드97. 결론201. 프로젝트 주제명Dotmatrix를 활용한 지렁이 게임 프로젝트2. 프로젝트 설명어릴적 누구나 한번씩 해본 경험이 있는 지렁이 게임을 모티브로 한 프로젝트이다. Dotmatrix를 활용한 지렁이 게임은 쉽고, 간단하게 누구나 즐길 수 있는 게임이지만 알고리즘은 꽤 복잡하게 이루어져있다. Dotmatrix를 활용한 지렁이 게임의 사용자 요구사항은 다음과 같다.① 사용자는 DipSwitch를 통해 생명수(LIfe_count)를 조절할 수 있다.② 사용자는 Keypad를 통해 지렁이의 방향을 조절할 수 있다.③ 사용자는 Dotmatrix안에 랜덤하게 생성되는 먹이를 먹을 경우 꼬리가 한 칸 길어진다.④ 사용자는 TextLCD를 통해 획득한 Score를 확인할 수 있다. (먹이당 100점)사용자는 위에서 설명한 요구사항에 따라 게임을 진행할 수 있다.이 프로젝트를 통해 DipSwitch, Keypad, TextLCD, Dotmatrix의 사용법을 제대로 숙지하고, 이를 활용해 원하는 디바이스를 자유자재로 제어해봄으로써 임베디드 시스템의 이해도를 높이고, 숙련도를 올리는데 목적이 있다.3. 설계 일정 (Schedule)세부내용11.30 ~ 12.1411.30~12.3~12.7~12.8~12.11~12.13~1설계주제 파악 및 연구 적정성 검토2설계제안서 작성 및 역할 수행3알고리즘 작성 및 가능성 판단4프다.- 사용자는 Dotmatirx 밖으로 나갈 경우 게임 Out이 되면서, Life_count가 줄어든다. Life_count가 줄어들면, 세그먼트의 값도 같이 줄어든다.- 사용자가 Dotmatrix 밖을 벗어났을 때, Life_count가 줄어든 모습이다. Enter를 입력하게 되면 모든 값들이 초기화되고, 새로운 게임이 시작된다.- 다음 화면은 사용자의 Life_count가 모두 사용되었을 때, (즉, 사용자가 설정한 5번의 기회 모두 죽었을 때) END 라는 메시지가 출력되면서 프로그램이 종료된다. 이때 최종스코어는 사진 위에 있는 TextLCD에 출력되게 된다.5. 알고리즘 (Algorism)5.1. 전체 시스템 상세 구성도 (System Architecture)이 프로그램은 Main Thread를 포함해 Score Thread, Keypad Thread로 구성되어 있다. Main Thread는 Dotmatrix를 통해 게임을 진행하도록 하고, Score Thread는 게임을 진행하면서 얻게 된 점수를 업데이트 하면서 Text LCD에 나타낸다. Keypad Thread는 사용자가 게임을 진행하면서, 방향키에 대한 이벤트가 발생했을 때 현재 진행중인 게임을 조작할 수 있게 한다.5.2. 주요 함수(Function) 설명함수명설 명void keypad_thread()지렁이의 방향을 제어하는 스레드void score_thread()TextLCD에 나타나는 스코어를 출력하는 스레드void update_score(char *score)TextLCD의 스코어를 업데이트 하는 함수. 게임을 진행하면서 지렁이가 먹이를 획득할 때마다 새로 업데이트 된다.int arr_convTo_font_num()지렁이 게임의 배열 값을 Dotmatrix 주소값으로 변환하는 함수기타 함수unsigned short Getsegcode(short x); //Segment 값을 가져오는 함수void make_f(); //지렁이의 먹이를 랜덤으로 배치하는 함수void reset(); //게int set_ddram_address(int pos); //TextLCD 기본 함수(Text LCD 줄 변환)char* itoa(int val, int base); // 숫자를 문자열로 변환하는 함수5.3. 알고리즘 순서도#include #include #include #include #include #include #include #include #include #include "term.h"//#include #define FPGA_BASEADDRESS0x05000000#define DIP_DATA_OFFSET0x62#define SEG_GRID_OFFSET0x30#define SEG_DATA_OFFSET0x32#define KEY_COL_OFFSET0x70#define KEY_ROW_OFFSET0x72#define DOT_ROW_OFFSET0x40#define DOT_COL_OFFSET0x42#define TEXTLCD_OFFSET0x10#define FONT_CNT 10#define FONT_CNT_RES23#define SCREEN_X 10#define SCREEN_Y 7unsigned short rvse(unsigned short in);unsigned short Getsegcode(short x);void make_f();void reset();void key_(char ch);void move();void tmove();void* keypad_thread();void* score_thread();void update_score(char *score);int getch(void);int kbhit(void);int arr_convTo_font_num();void setcommand(unsigned short command);void writebyte(char ch);void initialize_textlcd();int function_set(int rows, int nfonts);int display_control(int display_enabllueunsigned short *addr_fpga;unsigned short *pTextlcd;unsigned short *keypad_row_addr, *keypad_col_addr;unsigned short *seg_addr_grid, *seg_addr_data;unsigned short *addr_dip_data;unsigned short data[6];unsigned short life_count,dead_count=0x00,life_count_tmp;unsigned short value;unsigned short key[2]={0x100,0x100}, old_key[2]={0x100,0x100};unsigned short key0[2]={0x00, 0x00}, temp1, temp2;volatile int i,j,fd;int main(int argc, char **argv){char passwd[10]; //비밀번호 관리unsigned short *dot_row_addr, *dot_col_addr;int quit=1,count=0;int print_name=0, size=10, shift=0,t=1;int two_input=0,max_score=0;int speed_time=5000;short strike=0, bol=0;unsigned short value, pre_value;unsigned short init_row = 0x0001;pthread_t p_thread[3];gameover=0;printf("Enter the Password : ");gets(passwd);//비밀번호 입력if(strcmp(passwd,"ABC0799")){printf("Incorrect Passwd.. Bye!n");return 0;}if ((fd=open("/dev/mem",O_RDWR|O_SYNC)) < 0) {perror("mem open failn");exit(1);}//---------------------------------각 Device 메모리 할eof(unsigned short); //주소 맵핑seg_addr_data =addr_fpga+SEG_DATA_OFFSET/sizeof(unsigned short);if(*seg_addr_grid == (unsigned short)-1 || *seg_addr_data == (unsigned short)-1){close(fd);printf("seg mmap errorn");exit(1);}addr_fpga = (unsigned short *)mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, FPGA_BASEADDRESS);keypad_col_addr = addr_fpga + KEY_COL_OFFSET/sizeof(unsigned short);keypad_row_addr = addr_fpga + KEY_ROW_OFFSET/sizeof(unsigned short);if(*keypad_row_addr ==(unsigned short)-1 || *keypad_col_addr ==(unsigned short)-1 ) {close(fd);printf("keypad mmap errorn");exit(1);}addr_fpga = (unsigned short *)mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, FPGA_BASEADDRESS);dot_row_addr = addr_fpga + DOT_ROW_OFFSET / sizeof(unsigned short);dot_col_addr = addr_fpga + DOT_COL_OFFSET / sizeof(unsigned short);if(*dot_row_addr == (unsigned short)-1 || *dot_col_addr == (unsigned short)-1){close(fd);printf("dot mmap errorn");exit(1);}//--------------------------------------------; i
    공학/기술| 2014.12.04| 21페이지| 1,000원| 조회(728)
    미리보기
  • 페이징, 세그먼트 기법 조사
    Report가상메모리 : 페이징, 세그먼트 기법 조사교과목명시스템프로그래밍담당교수학 번성 명제 출 일2012. 11. 301. 개요페이징과 세그먼트 기법에 대해 조사를 하기 전에 가상 메모리가 왜 필요한지 알아야할 필요가 있다. 가상 메모리를 사용하는 두 가지 중요한 이유는 다수의 프로그램을 동시에 수행할 때 메모리를 효과적으로 공유할 수 있게 하고, 작고 제한된 크기의 메인 메모리에서 프로그래밍해야 하는 제약을 제거하기 위해서이다.메모리를 공유하는 프로그램들은 프로그램이 수행되는 동안 동적으로 변하게 된다. 이러한 상호작용 때문에 우리는 각 프로그램들이 자신만의 주소공간(address space), 즉 이 프로그램에 의해서만 접근 가능한 메모리의 분리된 영역에서 컴파일 되어야 한다. 가상 메모리는 프로그램의 주소 공간을 실제주소(physical address)로 변환해 준다. 이러한 변환 과정이 한 프로그램의 주소공간을 다른 프로그램으로부터 보호(protection)해 준다.2. 용어 설명용 어설 명페이지(page)가상 메모리를 일정한 크기로 나눈 블록프레임(Frame)물리 메모리를 일정한 크기로 나눈 블록페이지 부재(page fault)접근하는 페이지가 메인 메모리 안에 존재하지 않을 때 발생하는 이벤트가상주소(virtual address)가상 메모리에서의 위치를 나타내는 주소, 메모리에 접근할 때 주소 매핑에 의해 실제주소로 변환됨.주소변환(address translation)주소 매핑(mapping)이라고 하며, 가상주소를 메모리 접근에 사용되는 주소로 매핑시키는 과정이다.3. 페이징 기법이란?가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(page)라고 한다. 주소공간을 페이지 단위로 나누고 실제기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.가상 메모리를 갖는 프로세서는 가상주소를 만들어 내고, 가상주소는 하드웨어와 소프트웨어의 조합에 의해 메인 메모리 접근에 사용되는 실제주소로 변환된다. 아래 그림 1 에서 메인 메모리에 매핑된 페이지와 함께 가상주소로 접근되는 메모리를 보여주고 있다. 이런 작업을 주소 매핑 혹은 주소 변환이라고 한다.그림 1 가상 메모리의 매핑그림 1 : 가상 메모리의 매핑프로세서는 가상주소를 만들어 내는 반면에, 메모리는 실제주소를 사용하여 접근된다. 가상 메모리와 메인 메모리는 페이지로 나뉘어져서, 가상 페이지가 실제 페이지에 매핑된다. 물론 가상 페이지가 메인 메모리에 없을 수도 있고, 따라서 실제 주소로 매핑되지 않을 수도 있다. 즉 이 페이지는 디스크에 있다는 것이다. 두 개의 가상주소가 같은 실제주소를 가리키도록 함으로써 실제 페이지는 공유될 수 있다. 이러한 기능은 두 개의 다른 프로그램이 데이터와 코드를 공유할 수 있도록 해준다.가상 메모리는 재배치(relocation) 기능을 제공하여 수행될 프로그램의 적재를 단순화한다. 재배치는 프로그램에 의해서 사용되는 가상주소를 메모리에 접근하는 데 사용되기 이전에 다른 실제주소로 매핑시켜준다. 이 재배치는 메인 메모리 내의 어떤 위치에도 프로그램을 적재할 수 있게 한다.가상 메모리 시스템의 주소는 가상 페이지 번호(virtual page number)와 페이지 변위(page offset)로 나누어진다. 아래 그림2는 가상 페이지 번호가 실제 페이지 번호(physical page number)로 변환되는 것을 보여준다. 실제 페이지 번호는 실제주소의 상위 부분으로 이루어지는 반면에, 변화되지 않은 페이지 변위는 하위 부분으로 구성된다. 페이지 변위 필드의 비트 수는 페이지의 크기를 결정한다. 가상주소로 참조 가능한 페이지 수는 실제주소로 참조 가능한 페이지 수와 같지 않아도 된다. 실제 페이지보다 더 많은 가상 페이지 수를 갖는 것은 무제한의 큰 가상 메모리를 갖는 것과 같은 환상을 갖게 해준다. 가상 메모리에서 전통적으로 페이지 부재(page fault)라고 불려온 실패의 처리에 소요되는 높은 비용을 줄이기 위해 많은 설계 방법들이 제시되었다.그림 2 가상주소로부터 실제주소로의 매핑그림 2 : 가상주소로부터 실제주소로의 매핑페이지의 크기는 212 = 4 KB 이다. 메인 메모리에 채워질 수 있는 실제 페이지의 수는 218이다. 왜냐하면 실제 페이지 번호가 18비트로 구성되어 있기 때문이다. 이는 메인 메모리가 최대 1GB까지 가능하고, 가상주소공간은 4GB라는 것을 말한다.(1) 페이지와 프레임페이지는 가상 메모리를 같은 크기로 나눈 것인데, 실제 물리적 메모리를 모두 같은 크기로 나누었을 때의 블록은 프레임(Frame)이라고 한다. 프레임과 페이지의 크기는 같다. 페이지와 프레임은 둘 다 일정한 크기의 메모리를 동일한 크기로 나눈다는 점에선 같으나 페이지는 가상 메모리를, 프레임은 물리적 메모리를 분할한다는 것이 차이점이다. 페이징 기법에서 페이지의 가상 주소는 V=(p,d)로 표현되며 p는 페이지 번호를, d는 블록내 페이지의 변위를 나타낸다. 실행하고자 하는 프로세스의 페이지는 사용 가능한 메모리의 페이지 프레임(Page Frame: 실제 메인 메모리 블록)에 적재되고 프레임을 할당 받으며, 할당 받은 후에는 물리 메모리에 위치한다. 프레임을 할당받지 못한 페이지들은 외부 저장장치에 저장되며 이때도 프레임과 같은 크기 단위로 관리된다. 페이지의 크기는 메모리 블록 하나가 디스크로부터 얼마만큼의 데이터를 읽어 들여서 저장할지를 결정하는 요소이며 페이지 크기에 따라 디스크로의 접근 횟수가 결정되므로 페이징 기법에 있어서 페이지 크기를 결정하는 것은 곧 페이징 기법의 효율성으로 이어지는 매우 중요한 요소이다.(2) 페이지 테이블(Page Table)페이징 테이블은 프로세스의 페이지 정보를 저장하고 각 프로세스의 메모리가 실제 메모리와 어떻게 맵핑되어 있는지를 나타내는 테이블이며 하나의 프로세스는 하나의 페이지 테이블을 지닌다. 페이지 테이블은 인덱스로는 페이지 번호를, 내용으로는 해당 페이지에 할당된 프레임의 시작주소를 지니며 이 프레임의 시작주소와 페이지 주소를 결합하여 해당 페이지에 할당된 실제 물리적 메모리의 주소를 알 수 있다.(3)?페이징 기법의 단점????위와 같이 페이징 테이블을 통해 실제 메모리와 맵핑되어 주소를 참조하는 페이징 기법은 외부 단편화가 없어 주기억장치를 효율적으로 사용할 수 있는 장점이 있으나 매번메모리에 접근하려 할 때마다 페이지 테이블의 내용을 참조하고 실제 메모리를 계산해야하는 단점이 있으며?Page Fault?오류가 발생할 수 있다.?Page Fault?오류?:?요구하는 페이지가 존재하지 않을 때나 페이지 테이블 엔트리가 유효하지 않은 경우의 메모리 주소에 접근할 때 발생한다.?정상적인 시스템에서는 초당 수천 번 이상 발생하나 대부분의 시스템은 페이지 폴트를 시스템 운영의 일부분으로 생각하여 처리하기도 한다.?페이징 파일에 페이지 내용이 저장되어 있을 때 프로그램이 해당 페이지에 접근할 때도?Page Fault가 발생한다. Page Fault가 발생하면 운영체제는 해당 페이지의 내용을 읽어 메모리에 로딩하고?Page Fault를 발생시킨 프로그램은 다시 실행시킨다.?
    공학/기술| 2014.12.04| 5페이지| 1,000원| 조회(247)
    미리보기
전체보기
받은후기 2
2개 리뷰 평점
  • A+최고예요
    2
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 03월 28일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
9:27 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감