• 전문가 요청 쿠폰 이벤트
Siru22
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 시험자료공학/기술프로그램소스
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
추천자료
전체자료 10
검색어 입력폼
  • 게임을 통한 TCP 환경과 UDP 환경과 그 특징
    제목 : 게임을 통한 TCP 환경과 UDP 환경과 그 특징 목차 1. 서론 1.1. 들어가기 2. 게임 서버에서의 TCP와 UDP 1.1. TCP 환경 2.2. UDP 환경 3. TCP와 UDP의 특징 1.1. TCP 2.2. UDP 4. 결론 1. 서론 1.1. 들어가기 -. 인터넷의 무궁무진한 발전으로 우리는 여러 가지 수많은 정보를 네트워크를 통해 주고받으며 정보를 제공하고 획득한다. 그러나 이러한 수많은 정보를 주고받을 때 발생하는 여러 가지 충돌 문제에 대한 부분을 완화할 필요성이 생겼고 이에 대한 약속과 규제인 OSI 7계층 모델을 규정하여 계층별 규정 사항을 통해 네트워크를 구축함으로써 데이터 통신 과정을 표준화하였다. -. 독립된 네트워크를 연결하기 위한 인터넷 프로토콜(IP)을 통해 우리는 서로 다른 네트워크에서도 통신을 할 수 있다. 스마트폰을 통해 인터넷 기사를 보고 스트리밍 서비스를 통하여 영상물을 통해 유희를 즐긴다. IP를 통해 하드웨어 기술과 응용프로그램 기술은 독립적으로 발전할 수 있었으며, 개별적인 발전을 통해 기술적으로 더 빠른 진보를 이루어 낼 수 있었으며 현재도 진행 중이다. 이러한 IP의 안정성과 속도를 보장해주는 것이 TCP와 UDP이다. 2. 게임 서버에서의 TCP와 UDP 1.1. TCP 환경 -. 서버를 운영하는 게임이라면 거의 다 TCP를 사용하는 추세다. 서로 다른 네트워크에 속해있는 플레이어 개개인의 정보를 서버로 전송하고 서버에서 플레이어에게 정보를 제공하며 플레이어와 서버 간의 소통으로 게임이 진행되는 것이다. StarCraft의 TCP 환경 -. 아주 대표적인 예가 1998년 출시하여 지금까지도 사랑을 받는 배틀넷 사의 ‘StarCraft’라는 게임의 Battle.net™서버라고 볼 수 있다. 우측 안내문에도 명시되어있는 것처럼 TCP/IP를 필수적으로 사용할 수 있어야 게임 진행이 가능하다. Battle.net™서버는 플레이어 개개인의 배틀넷 계정을 확인하여 인증된 사람만 접속할 수 있다. 이때 플레이어의 정보를 확인하면서 오류가 발생하면 안 되므로 TCP/IP를 사용한다. 배틀그라운드의 TCP 환경 -. ‘배틀그라운드’라는 게임은 게임 도중에 서버 지연이 감지되면 이처럼 ‘네트워크 지연 감지’ 문구가 뜨며 게임이 잠시 멈추게 된다. 서버에 플레이어의 정보가 정확하게 전달되지 않았거나 플레이어에게 서버의 정보를 정확하게 전달하지 못한 경우 네트워크가 일시적으로 멈추어 이를 해결하는 과정을 거치게 된다. 게임플레이의 예를 들어보자면 플레이어 A가 폭탄 아이템을 사용하여 플레이어 B를 처치하려고 할 때, 플레이어 B에게는 플레이어 A가 폭탄 아이템을 습득하여 가지고 있다는 정보가 있어야 한다. 그래야 플레이어 B 입장에서 플레이어 A가 폭탄 아이템을 사용한다는 정보를 받을 수 있기 때문이다. 이러한 정보의 전송오류를 예방하기 위해 TCP를 사용하여 이를 복구하는 과정을 진행한다. 2.2. UDP 환경 -. UDP는 FPS 게임에서 쉽게 찾아볼 수 있다. 또한, 게임 내 플레이어의 이동, 화면의 변화, 게임 소리 등, 게임을 제공하는 요소로 UDP를 설명할 수 있다. 서든어택의 UDP 환경 -. 우선 가장 대표적인 FPS 게임은 2005년 넥슨사에서 출시한 ‘서든어택’이라는 온라인 일인칭 슈팅 게임이다. 이동하여 적을 총으로 제압하는 이 게임은 플레이어의 입력을 받아 서버로 정보를 신속하게 전하는 데에 목적을 둔다. 플레이어가 마우스 클릭 한 번으로 총알 하나를 발사할 때, 마우스 입력신호 전송오류로 총알이 발사하지 않는 오류가 발생한다면 플레이어는 이를 복구하는 것보다 다시 클릭하여 총알을 발사하는 행위를 수행한다. 따라서 게임을 진행할 때 간혹 마우스를 통해 총을 발사했음에도 불구하고 총이 발사하지 않는다든지, 무기를 교환하였지만, 반영이 안 된다든지 하는 자질구레한 오류가 발생하더라도 복구과정을 수행하지 않는다. StarCraft의 UDP 환경 -. 앞서 설명한 ‘StarCraft’ 또한 UDP 환경을 지원한다. 각각의 컴퓨터가 같은 네트워크에 존재하면 UDP 환경에서 스타크래프트를 즐길 수 있다. 같은 네트워크에 존재하는 컴퓨터라면 굳이 플레이어 정보를 서버에 보낼 필요 없이 컴퓨터 간의 정보를 주고받을 수 있으므로 UDP 환경을 통하여 게임 환경을 제공한다. 3. TCP와 UDP의 특징 1.1. TCP(Transmission Control Protocol) -. 게임 환경을 통해 알 수 있듯이 TCP는 오류 복구에 목적을 두고 있다. 다시 말해 IP의 안정성을 추구하기 위해 사용한다는 것이다. TCP는 연결형 서비스로 1:1의 양방향 통신을 지원하며 송신 측에서 정보를 패킷 형태로 전송한다. 수신 측에서 패킷을 받게 되면 잘 받았다는 긍정 응답 메시지를 통해 송신 측에 전달이 완료되었다는 것을 알리게 된다. 만약 받은 정보 중에서 오류가 발생하면 재전송을 요청하는 응답을 보내 다시 정보를 받게 된다. 또한, 패킷의 분실로 인하여 송신 측에서 패킷을 전송했음에도 불구하고 일정한 시간이 지나고 수신 측의 긍정 응답 메시지가 회신 되지 않는다면 송신 측에선 패킷을 재전송하여 전송오류를 해결한다. 2.2. UDP(User Datagram Protocol) -. UDP는 빠른 전송에 목적을 두고 있다. TCP는 패킷 전송의 흐름 제어 및 혼잡제어, 오류 복구를 위한 재전송을 통하여 전송속도가 느리다. 그러므로 빠른 전송을 최우선으로 요구하는 곳에는 UDP를 사용한다. UDP를 아주 간단하게 2단계로 설명하면‘1. 연결한다. 2. 전송한다. ’라고 볼 수 있다. UDP는 비 연결형 서비스로 1:N의 단방향 통신을 지원하며 송신 측에서 정보를 데이터 그램 형태로 전송한다. 그리고 수신 측에선 정보를 받기만 한다. 만일 전송오류가 발생하더라도 송/수신 측은 상대방의 응답을 확인하지 않기 때문에 데이터의 유실이 발생하게 된다. 다시 말해 신뢰성을 보장하지 않는다는 것이다. 가장 대표적인 예로 볼 수 있는 것이 텔레비전과 라디오이다. 영상이나 소리에 대한 전송오류가 발생하여 화면이 일그러지거나 잠시 소리가 안 나오는 현상이 발생하여 정보가 유실되더라도 이를 복구하지 않고 계속 정보가 제공된다. 4. 결론 -. 게임 환경을 통해 TCP와 UDP가 어떤 환경을 제공하고 있는지, 또 각각의 특징은 무엇인지 알아보았다. TCP는 확실한 정보교환을 위하여, UDP는 사용자에게 신속한 정보전달을 위하여 사용한다. 최근에는 UDP의 신뢰도를 보장하기 위해 Reliable UDP라는 기술도 개발되었으나 공식적인 표준은 아니므로 본 과제에 따로 다루지는 않았다. 끝으로, TCP와 UDP 둘 중 무엇이 더 좋다고는 말할 수 없다. 네트워크 연결을 위해 사용하는 서로 요구하는 환경이 다르기 때문이다. 따라서 각각 요구하는 환경에 맞춰서 적절한 프로토콜을 사용할 때, 전송효율과 사용자가 느끼는 편안함은 상승할 것이다. ※ 참고문헌 -. “OSI 7계층 모델”,「IT용어사전」, 한국정보통신기술협회 -. 배현직,「게임 서버 프로그래밍 교과서: 알고리즘부터 아키텍처까지」, ㈜도서출판길벗(2019) -. [기고칼럼] TCP, 그리고 UDP 쉽게 알아보는 두 개념과 차이점 . http://www.inven.co.kr/webzine/news/?news=165870 . 1) 1977년, 국제 표준화 기구(ISO)가 정의한 국제 통신 표준 규약
    공학/기술| 2021.07.06| 5페이지| 2,000원| 조회(270)
    미리보기
  • 컴퓨터 운영체제와 모바일 운영체제로 알아보는 OS별 특징
    제목 : 컴퓨터 운영체제와 모바일 운영체제로 알아보는 OS별 특징 목차 1. 서론 1.1. 들어가기 2.2. OS란 무엇인가? 2. 컴퓨터 운영체제 1.1. Window 2.2. Mac OS 3.3. UNIX 4.4. Linux 3. 모바일 운영체제 1.1. 안드로이드 2.2. iOS 3.3. 바다 OS 4. 결론 1. 서론 1.1. 들어가기 -. 멀티미디어 및 컴퓨터 기술의 발전으로 다양한 제품과 서비스가 사용자에게 제공되고 있다. 이러한 제품과 서비스를 사용자가 쉽게 다루기 위해선 사용하기 쉬운 인터페이스가 제공되어야 할 것이다. 이 과제를 통하여 이러한 인터페이스, 즉, OS의 종류가 무엇이고 그 특징들이 무엇인지 살펴보겠다. 2.2. OS란 무엇인가? -. ‘Operation System’의 약자이며, 하드웨어와 사용자 사이를 이어주는 시스템 소프트웨어로, 사용자가 프로그램을 쉽게 사용할 수 있게 환경을 제공한다. 이러한 환경을 제공하기 위해 CPU, 주기억장치, 보조기억장치 등을 사용자를 대신하여 효율적으로 관리한다. 기존 사용자 OS (CLI) -. 초창기 OS만 하더라도 과 같이 일반 사용자의 편의성보다는 전문성이 있는 사용자들을 대상으로 제공되었기에 컴퓨터는 쉽게 대중화되지 못하였다. 이러한 상황을 해결하기 위해 일반 사용자들에게도 더욱더 쉽고 편리한 컴퓨터 환경을 제공하기 위하여 GUI 기반의 인터페이스가 탄생하였다. GUI 기반의 OS (Windows 8) -. ‘GUI(Graphical user Interface)’는 컴퓨터에서 제공하는 기능을 명령어의 입력이 아닌 아이콘과 같은 그래픽으로 표현하여 사용자가 편리하게 사용할 수 있도록 환경을 제공하고 있다. 이러한 GUI의 개발로 OS는 컴퓨터뿐만 아니라 스마트폰에서도 사용되어 정보통신기기가 사용자에게 더 쉽게 다가설 수 있는 계기가 되었다. 2. 컴퓨터 운영체제 1.1. Windows -. 마이크로소프트에서 만든 가장 대표적이며, 컴퓨터 시장의 88%의 점유율을 차지할 정도로 가장 대중화되실행되는 형태로 과 같이 사용하기 편한 구조는 아니었다. 이후 1985년, GUI 운영체제인 Windows 1.0을 출시하면서, 지금도 사용하고 있는 마우스, 계산기 등과 같은 기능을 제공하여 사용자가 편리하게 사용할 수 있게 하였다. 그다음으로 출시한 windows 2.0은 창 겹치기 기능, 휴지통과 같은 기능을 제공하여 지금과 비슷한 기능을 제공하였다. 여기에는 재미있는 일화가 있는데, 사실 창 겹치기 기능과 휴지통 등과 같은 기능은 애플이 특허로 등록한 GUI 기능이다. 따라서 마이크로소프트는 애플의 이러한 기능을 사용하기 위해 계약을 하였는데, 애플이 계약서에 사용 기간을 명시하지 않은 것이다. 이에 대해 애플은 ‘1회에 한하여 사용을 허가한 것이다’라며 소송을 제기하였지만 결국 재판은 마이크로소프트의 승리로 끝나게 되었으며 애플의 특허 또한 무효가 되었다. -. 이후 마이크로소프트사는 DOS기반을 탈피한 일반인도 쉽게 사용할 수 있는 운영체제인 windows 95를 출시하며 대성공을 거두게 된다. 이 모델부터 시작 버튼을 도입하여 아직도 windows를 대표하는 주요 기능으로 자리 잡게 되었다. 또한 windows 98, windows xp, windows 7을 성공시키며 컴퓨터 운영체제 시장에 큰 점유율을 차지하기 시작하였고 특히 windows xp은 13년이라는 긴 기간 동안 서비스를 제공하여 많은 사랑을 받은 버전이 되었다. 앞서 설명한 시작 버튼에도 재미있는 일화가 있는데, 터치 기반 UI인 windows 8을 출시하며 마이크로소프트사는 시작 버튼을 없앴다. 당시 사람들은 큰 불만을 표출하며 마이크로소프트사에 항의하였고 마이크로소프트사는 windows 8.1을 출시하며 시작 버튼을 부활시켰다. 끝으로, 가장 최신의 windows 버전은 windows 10이다. 이 버전을 기점으로 마이크로소프트사는 더는 새로운 windows를 출시하지 않고 업데이트를 통하여 새로운 기능을 제공하겠다고 하였다. 2.2. macOS -. 애플에서 만든 OS로 매킨토ws를 설명하며 기술하였지만, Mac OS 1.0부터 창 겹치기와 휴지통 등의 기능을 최초로 제공하였으며, 그래픽과 전자 출판 분야 등에서 뛰어난 성능을 보인다. 이후 여러 버전을 거쳐 Mac OS X를 출시하였고 이는 아이폰의 OS로도 활용되었다. 2016년 OS X의 명칭을 macOS로 변경하게 되면서 우리가 흔히 알고 있는 OS의 명칭이 되었다. -. macOS의 가장 큰 특징은 ‘독(Dock)’이다. windows의 작업표시줄과 유사한 이 기능은 사용자가 주로 사용하는 프로그램을 독에 배치하여 편리한 사용을 제공한다. 특히 마우스를 가져다 대면 아이콘이 확대되고 실행을 하면 아이콘이 튀는듯한 애니메이션을 주어 시각적인 효과도 제공한다. 그리고 macOS는 애플 생태계의 일원답게 다른 애플 기기와의 호환성을 제공한다. 아이폰으로 iMessage를 통해 채팅하다가 macOS로 넘어와 iMessage 채팅을 이어나갈 수 있다. 또한, iCloud를 통해 자료를 업로드하고 다운받을 수 있으며 아이폰과 아이패드를 사용한다면 macOS를 이용하여 작업 효율을 극대화할 수도 있다. -. 영상 편집이나 음악 제작 등의 환경은 windows보다 뛰어나지만, 게임 환경은 windows보다 훨씬 떨어진다. macOS의 화면 3.3. UNIX -. 1969년 AT&T의 벨 연구소에서 개발한 운영체제이며, windows를 제외한 대부분의 운영체제는 유닉스를 기반으로 시작되었다. OS 대부분이 C언어로 쓰여 있고 소스코드를 쉽게 구할 수 있다는 이점을 바탕으로 새로운 기종이나 다른 컴퓨터의 하드웨어에 쉽게 이식할 수 있다. 사실 C언어 자체가 UNIX 시스템을 프로그래밍하기 위하여 만들어졌으며 다른 운영체제가 UNIX를 기반으로 개발된 덕분에 C언어 또한 보편화 되어 효율적이고 이식이 편리한 언어로 발전할 수 있었다. -. UNIX는 다중의 사용자가 다중 작업을 처리할 수 있는 환경을 제공하며, 프로그램 개발이 쉬운 OS이다. 이러한 이유로 일반 통신 서비스 프로그램은 대부분 영체제이며, 개발자의 이름인 ‘리누스’에서 이름을 따서 Linux라는 이름을 지었다. 이러한 Linux는 GNU 프로젝트의 유틸리티와 결합하여 Linux/GNU라는 완전한 운영체제로 거듭났다. -. Linux는 UNIX와는 다르게 무료로 배포되며 모든 소스가 공개되어있어 사용자들이 쉽게 접할 수 있다. 또한, 사용자들끼리의 오픈소스를 공유할 수 있어 사용자가 기본 프로그램을 바탕으로 자신만의 다양한 배포판을 제작하고 공유하며, 이러한 점을 기반으로 데스크톱 이외에도 다양한 플랫폼에서 Linux를 적용하여 사용할 수 있다는 장점이 있다. 3. 모바일 운영체제 1.1. 안드로이드 -. 구글에서 제작하였으며, 앞서 설명한 Linux의 커널 위에서 동작하는 모바일용 OS이다. 모바일 운영체제 시장의 80%를 차지하여 세계적으로 최다 사용자를 보유한 운영체제이며 가장 대표적인 오픈소스 플랫폼이다. 리눅스를 기반으로 개발되어 자유도 또한 높은데, 안드로이드에서 제공한 UI가 마음에 들지 않을 경우, 사용자가 직접 꾸밀 수 있는 환경을 제공한다. 또한, 구글에서 기본으로 제공하는 서비스(Gmail, Youtube, Google Play 등)를 편리하게 사용할 수 있으며, 특히 Google Play에 등록되어있는 다양한 애플리케이션을 통하여 안드로이드 OS를 훨씬 효율적으로 사용할 수 있다. 2.2. iOS -. 애플에서 만든 iPhone용 운영체제로, 처음 iPhone에 적용했던 OS인 Mac OS X를 기반으로 개발되었다. 초기 버전에는 애플에서 제공하는 기능과 애플리케이션만 사용 가능하였으며, 2008년 이후로 소프트웨어 개발도구인 SDK가 공개되어 iOS 2.0 버전부터 애플의 앱스토어를 통해 개발자들의 다양한 애플리케이션이 공유되고 판매되게 되었다. 개인적으로 가장 돋보이는 기능은 iOS 13버전부터 제공하고 있는 ‘단축어’ 기능인데, iPhone의 여러 가지 기능들의 동작을 사용자가 직접 설정할 수 있고, 이렇게 설정한 동작을 여러 사용자와 공유할 수 있어 iPh 지금 사용하고 있는 iOS가 나와 잘 맞는다고 생각한다. 인터페이스의 깔끔함과 특유의 부드러움이 나타내는 시각적 효과가 매우 뛰어나다. 또한, iOS와 이를 사용하는 iPhone이 애플이라는 같은 제조사를 공유하므로 기기에 맞춰진 OS를 지원하여 사용자가 더 편한 기능을 효과적으로 사용할 수 있다는 점이 가장 마음에 든다. 3.3. 바다 OS -. 삼성전자에서 리눅스 커널을 기반으로 개발한 운영체제로, 삼성전자의 스마트폰인 ‘웨이브’에 탑재하였으며, 나의 첫 스마트폰 OS이기도 했던 운영체제이다. 사용했던 경험을 빗대어 설명하자면, 우선 안드로이드와 매우 비슷한 UI를 제공한다. 다만 제공하는 응용프로그램이 적으며, 삼성앱스라는 스토어를 지원하였으나 등록된 애플리케이션이 매우 적었다. 이러한 이유로 2013년에 개발이 중단되었으며, 타이젠 OS에 흡수 합병되었다. 바다OS가 적용된 삼성의 웨이브3 4. 결론 -. 운영체제는 사용자가 사용하기 편한 환경을 제공하기 위하여 발전해왔다. 리눅스는 유닉스를 모티브로, 모바일 운영체제는 리눅스를 기반으로 개발되는 것을 확인할 수 있으며, 이러한 운영체제를 통하여 사용자는 하드웨어를 편리하게 제어할 수 있다. 또한, 각각 운영체제의 특징을 통해 하드웨어의 발전과 큰 연관이 있다는 점을 살펴볼 수 있다. 전문가를 위한 컴퓨터에서 개인용 컴퓨터로 시장이 변화하자 운영체제 또한 GUI를 탑재하여 사용자가 쉽게 사용할 수 있게 하였고, 이러한 개인용 컴퓨터가 스마트폰으로 대체되자 모바일 운영체제의 발전이 이루어졌다. 다음 운영체제는 어떻게 나오게 될까? 개인적으로 추측해보자면 웨어러블 기기의 발전으로 개인정보를 활용한 개인 맞춤형 OS가 출시되지 않을까 조심스레 추측해본다. ※ 참고문헌 -. 운영체제(OS) 의 종류와 특징, (2020년 1월 20일). https://wiseworld.tistory.com/40 -. 운영체제 점유율 참고. https://netmarketshare.com/ -. 정철환,「알아두면 쓸모있는 IT 기준.
    공학/기술| 2021.07.06| 7페이지| 2,000원| 조회(313)
    미리보기
  • 컴퓨터 내부에서 사용하는 명령어 사이클의 4가지 단계 평가A+최고예요
    제목 : 명령어를 수행하는 CPU의 작동 주기를 통한 명령어 실행 동작 구조 목차 1. 서론 1.1. 들어가기 2. 명령어 사이클 1.1. 인출 주기(Fetch Cycle) 2.2. 간접 주기(Indirect Cycle) 3.3. 실행 주기(Execute Cycle) 4.4. 인터럽트 주기(Interrupt Cycle) 5.5. 메이저 사이클의 관계 3. 결론 1. 서론 1.1. 들어가기 -. 명령어는 ‘명령어 인출 -> 명령어 해독 -> 오퍼랜드 인출 -> 실행 -> 인터럽트 조사’의 순서를 거치며 수행된다. 여기서 알 수 있는 점으로, 명령어의 수행이 완전히 끝이 나고 나서 인터럽트가 발생하였는지를 조사하여 인터럽트의 발생을 인지한다는 것이다. 이러한 명령어의 수행을 위해 CPU는 4단계의 주기(Cycle)를 가진 명령어 사이클(Instruction Cycle)을 통하여 명령어를 인출하고 수행하게 된다. 이러한 명령어 사이클은 어떻게 구성되어있고 작동하는지 살펴보겠다. 2. 명령어 사이클 1.1. 인출 주기(Fetch Cycle) -. 기억 장치에서 중앙 처리 장치(CPU)로 명령어를 읽어오는 주기이다. 이렇게 CPU로 불러온 명령어는 명령어 레지스터(IR)을 통해 해독된다. 해독단계에서 명령어의 종류를 판단하고 만약 1 Cycle 명령이라면 수행을 한 후 인출 단계로 변화한다. 만약 1 Cycle 명령어가 아니라면 불러온 주소가 간접주소인지 직접 주소인지 판단하여, 간접주소라면 유효주소를 확인하기 위해 간접 주기를 직접 주소라면 실행 주기를 수행하게 된다. -. 인출 주기의 마이크로 오퍼레이션의 순서는 다음과 같다. MAR ← PC PC에 저장된 주소를 MAR로 이동시킴 MAR ← M, PC = PC + 1 메모리에 있는 내용을 MBR로 읽어오고, PC내용 하나 증가 IR ← MBR(0) MBR에 있는 OP-code 부분은 IR로 이동 R ← 1 또는 F ← 1 R = 1이면 간접 주기를, F = 1이면 실행 주기를 진행 2.2. 간접 주기(Indirect Cycle) -. 인출 주기에서 해독한 명령어의 주소가 간접주소라면, 유효주소를 얻기 위해 한 번 더 기억 장치에 접근하게 된다. 명령어는 연산 코드와 오퍼랜드(address)로 구성되는데, 오퍼랜드에 표현된 주소가 간접주소일 때 수행되는 주기이다. 이때, 주소가 간접주소가 아니라면 명령어를 해독하여 인출 주기나 실행 주기로의 이동을 판단하여 이동한다. -. 간접 주기의 마이크로 오퍼레이션의 순서는 다음과 같다. MAR ← MBR MBR에 저장된 명령어의 주소 부분을 MAR로 이동시킴 MBR ← M 메모리에 있는 내용을 MBR로 읽어옴 No Operation 동작 없음 F ← 1, R ← 0 F = 1, R = 0이므로 실행 주기를 진행 -. 3번째 Clock Pulse에서는 아무런 동작이 수행되지 않는다. 3.3. 실행 주기(Execute Cycle) -. 인출 주기와 간접 주기를 통해 해독한 명령어와 그 주소를 통해 실제 데이터를 읽어서 명령어에 따라 연산 동작을 수행하는 주기이다. 실행 주기를 제외한 나머지 3개의 사이클은 예측할 수 있으며 간단하다. 이 주기에서는 다양한 형태의 명령어가 처리된다. -. AND 마이크로 동작의 오퍼레이션 순서는 다음과 같다. MAR ← MBR(AD) MBR에 저장된 명령어의 주소 부분을 MAR로 이동시킴 MBR ← M 메모리에 있는 내용(실제 데이터)을 MBR로 읽어옴 ACC ← ACC ∧ MBR ACC와 MBR의 내용을 AND계산하여 ACC로 이동 F ← 0, R ← 0 F = 0, R = 0이므로 인출 주기를 진행 -. 누산기(ACC)에 있는 내용과 메모리에 있는 내용을 AND 연산하여 그 결과를 ACC에 저장하는 연산이다. 만약 ‘ACC ∧ MBR’대신 ACC + MBR’, ‘ACC ∨ MBR’연산이 수행된다면, 각각 ‘ADD’, ‘OR’ 마이크로 동작을 수행하게 된다. -. 다음으로 LOAD 마이크로 동작의 오퍼레이션 순서는 다음과 같다. MAR ← MBR(AD) MBR에 저장된 명령어의 주소 부분을 MAR로 이동시킴 MBR ← M, ACC ← 0 메모리에 있는 내용을 MBR로 읽어오고, ACC를 0으로 초기화 ACC ← ACC + MBR ACC와 MBR의 내용을 ADD 계산하여 ACC로 이동 F ← 0, R ← 0 F = 0, R = 0이므로 인출 주기를 진행 -. 2번째 Clock Pulse를 제외하곤 ADD 마이크로 동작과 같다. 다만, ACC에 있던 값을 0으로 초기화한 후 MBR과 더하게 되므로 사실상 MBR값을 불러오는, 즉, 메모리에 있던 내용을 LOAD 하는 동작을 수행하게 된다. -. 이렇듯 간단한 명령어도 있지만, 조금 복잡한 명령어도 존재한다. 대표적인 명령어는 ISZ(Increment and Skip if Zero) 마이크로 동작이 있다. 프로그램의 수행순서를 조건에 따라 결정하며, ISZ 마이크로 동작의 오퍼레이션 순서는 다음과 같다. MAR ← MBR(AD) MBR에 저장된 명령어의 주소 부분을 MAR로 이동시킴 MBR ← M 메모리에 있는 내용을 MBR에 전송 MBR ← MBR + 1 MBR의 내용 하나 증가 M ← MBR IF(MBR = 0) Then PC ← PC + 1 MBR의 내용을 메모리에 저장 MBR의 내용이 0과 같다면 PC를 1 증가하여 명령어를 무시 -. ‘ISZ x’에서 x 위치의 내용은 1 증가하며, 결과가 0일 경우, 다음 명령어를 무시한다. 여기서 PC는 MBR이 0일 때 증가하며, MBR이 0인지 아닌지 검사하는 동작과 PC가 1씩 증가하는 동작을 하나의 마이크로 오퍼레이션으로 구현할 수 있다. 4.4. 인터럽트 주기(Interrupt Cycle) -. 실행 주기까지의 단계를 거쳐 CPU는 명령어를 수행한다. 하지만 이러한 과정에서 인터럽트가 발생할 수 있는데, 이렇게 인터럽트가 발생할 때만 수행되는 주기가 바로 인터럽트 주기이다. 인터럽트가 발생하면, CPU가 인터럽트를 먼저 처리한 후 메인 명령어를 계속 수행할 수 있도록 복귀 주소를 지정하며 이를 위해 기억 장치에 접근하게 된다. 이렇듯, 인터럽트 주기는 인터럽트가 발생한 경우에만 실행되므로 하드웨어로 실현되는 서브루틴이라고도 한다. -. 인터럽트 주기의 마이크로 오퍼레이션의 순서는 다음과 같다. MBR ← PC, PC ← N PC의 복귀 주소를 MBR의 주소 부분으로 이동, 복귀 주소를 저장할 위치를 N 번지로 지정 MAR ← PC, PC ← PC + 1 PC의 내용(N 번지 주소)을 MAR로 이동, PC를 1 증가하여 인터럽트 주기로 이동하기 위한 인터럽트 벡터의 위치를 지정 M ← MBR, IEN ← 0 MBR에 저장되어있는 복귀 주소를 메모리에 저장, 인터럽트 판별 중에 또 다른 인터럽트를 방지하기 위해 IEN에 0을 전송 F ← 0, R ← 0 F = 0, R = 0이므로 인출 주기로 이동 -. 이 마이크로 오퍼레이션의 순서는 PC값을 메모리의 N 번지에 저장할 경우를 나타낸 것이다. 인터럽트가 발생했을 때 CPU가 명령어를 수행하던 중이라면, 우선 해당 명령어를 완료한 상태에서 인터럽트를 처리하게 된다. 따라서 4번째 Clock Pulse에서 알 수 있듯이 인터럽트가 완료되면 인출 주기로 반드시 가게 된다. 5.5. 메이저 사이클의 관계 -. 살펴본 4단계의 과정을 거치며 명령어를 해독하고 수행하게 된다. 정리하자면 인출 주기를 통해 명령어를 해독하고 해독한 결과에 따라서 오퍼랜드가 직접 주소면 실행 주기로 진행하고, 간접주소면 간접 주기를 통해 데이터를 확인하여 실행 주기를 진행한다. 실행 주기에서 명령어를 수행하다가 인터럽트가 발생하지 않는다면 다시 인출 주기를 진행하고, 인터럽트가 발생하면 인터럽트 주기를 통해 해결하고 인출 주기를 진행한다. 메이저 사이클의 관계 -. 또한, 각 사이클은 F, R 플래그의 상태로도 파악할 수 있다. F R 상태 0 0 인출 주기 0 1 간접 주기 1 0 실행 주기 1 1 인터럽트 주기 3. 결론 -. 컴퓨터는 다양한 연산을 통해 명령어를 수행하며, 이러한 명령어를 해독하고 수행하는 CPU는 컴퓨터의 두뇌 역할을 한다고 할 만큼 매우 중요한 부품이다. 본론의 내용을 통해 CPU는 3개의 주기, 인터럽트가 발생했을 때는 4개의 주기를 반복하며 명령어를 해독하고 수행한다는 것을 알 수 있었으며 각각의 원리와 특징을 알아보았다. 이렇듯 CPU는 주기적이고 체계적으로 작동하여 사용자의 명령을 훌륭하게 수행한다. ※ 참고문헌 -. 「정보처리산업기사 필기 기본서. 2권 전자계산기 구조, 시스템 분석 설계」, ㈜영진닷컴(2019) -. Computer Organization | Different Instruction Cycles. https://www.geeksforgeeks.org/different-instruction-cycles/ -. [정보처리기사]전자계산기구조-CPU의 메이저 스테이트 4가지 알아보기. https://onboardfly.tistory.com/31
    공학/기술| 2021.07.06| 5페이지| 2,000원| 조회(902)
    미리보기
  • 전송매체에서 동축케이블의 특징 적용분야 평가A+최고예요
    제목 : 동축케이블의 특징과 적용 분야 목차 1. 서론 1.1. 들어가기 2. 동축케이블 1.1. 동축케이블의 특징 2.2. 동축케이블의 종류 3. 동축케이블의 적용 분야 1.1. 케이블 TV 2.2. 해저 케이블 3.3. SDI(Serial Digital Interface) 4.4. USB Type C 케이블 5.5. 기타 4. 결론 1. 서론 1.1. 들어가기 -. 통신기술과 멀티미디어의 발전으로 우리는 많은 데이터를 통신 회선을 통해 전송하고 또 전송받는다. 그렇다 보니 이러한 많은 데이터를 손실 없이, 더 멀리 보내는 기술이 필요했는데, 그렇게 개발된 케이블이 동축케이블(Coaxial Cable)이다. 2. 동축케이블 1.1. 동축케이블의 구조와 특징 동축케이블의 내부 구조 -. 동축케이블은 중앙에 있는 내부도체를 절연체가 감싸고, 그 주위를 구리 망으로 이루어진 외부 도체와 외부 피복(절연체)으로 감싸 외부의 전기적 간섭이나 신호를 적게 받아 적은 손실로 데이터를 전송할 수 있다. 손실이 적기 때문에 기존 UTP 케이블(UTP, Unshieled Twisted-Pair)보다 더 멀리 전송할 수 있으므로 고주파 신호 전송에 이용되며 광대역 선로로 사용한다. -. 동축케이블은 대역폭이 넓어 높은 데이터 전송률을 가지고 있으며, 다수의 단말장치와 연결할 수 있고 처리능력이 뛰어나다. 또한, 고품질의 신호도 전송할 수 있으며, 버스형과 링형에 주로 사용된다. 디지털 신호 전송과 아날로그 신호 전송 모두에 사용할 수 있으며, 데이터 전송 속도는 10Mbps 이상의 속도를 수백 미터 이상의 거리에서 낼 수 있어 고속 통신선로에 많이 이용한다. 다만, 60Hz 이하의 주파수에서는 누화가 발생하므로 이를 주의하여야 한다. 2.2. 동축케이블의 종류 -. 전송방식에 따라 베이스밴드 방식과 브로드밴드 방식으로 나뉜다. -. 베이스밴드 방식은 기저대역 동축케이블로 디지털 신호를 그대로 사용하여 데이터 통신에 적합하다. 임피던스는 50Ω이며 전송 대역폭이 넓어서 양방향 통신이 가능하다. 전송 거리는 수백m ~ 1km이며, 전송속도는 수십~500Mbps로 주로 근거리 통신망 연결에 사용한다. -. 브로드밴드 방식은 광대역 동축케이블로 주파수를 다중화시켜 사용하며, 음성, 영상 등을 동시 수용하므로 CATV에 적합하다. 임피던스는 75Ω이며 아날로그 신호를 전송한다. 전송 거리는 수십km이며, 전송속도는 수십~수백Mbps이다. -. 고발포 3중 차폐 저손실 동축케이블(HFBT)라는 동축케이블도 존재하는데, 이는 알루미늄 마닐라 테이프, 알루미늄 편조, 다면 알루미늄 마닐라 테이프를 통해 차폐 특성을 극대화한 케이블이다. 주파수 특성과 감쇄량이 우수하고 가격이 저렴하여 CATV, CCTV 수신기 접속에 주로 사용한다. HFBT의 내부 구조 3. 동축케이블의 적용 분야 1.1. 케이블 TV -. TV 뒤나 아파트 건물에 있는 TV 단자함을 열면 동축케이블을 쉽게 발견할 수 있다. 이처럼 동축케이블은 가정집으로 방송을 서비스하기 위해 사용한다. TV 뒤에 연결되어있는 동축케이블 2.2. 해저 케이블 -. 현재는 광케이블을 사용하지만, 초기 해저 케이블은 동축케이블을 사용하였다. 다만 동축케이블 한 가닥으로 사용하였다기보단 여러 개의 동축케이블을 하나로 묶어서 하나의 케이블로 사용하였다. 또한, 차폐를 높이기 위해 이중 삼중으로 감싼 형태로 사용하였다. 해저 케이블로 사용한 동축케이블 3.3. SDI(Serial Digital Interface) -. CCTV나 방송 업계에서 사용하는 기술로, 압축되지 않은 디지털 비디오 신호를 직렬 전송할 때 동축케이블을 사용한다. SDI에는 여러 가지 규격이 존재하며, 최근에 나온 규격으로 6G-SDI, 12G-SDI는 4K 영상을 전송을 지원한다. SDI에 사용되는 동축케이블 4.4. USB Type C 케이블 -. 요즘 큰 주목을 받는 USB-C 또한 동축케이블을 사용한다. 다만, 전송 신호 쌍마다 하나씩 사용하므로 하나의 내부도체를 사용하는 것이 아닌, 4~6가닥의 동축케이블을 하나로 묶어서 사용하여 전송 효율을 높인다. USB-C 케이블의 내부 구조 5.5. 기타 -. 그 외에도 케이블 인터넷이나 텔레비전 안테나를 연결할 때 사용한다. 과거에는 CRT 모니터에도 동축케이블을 사용하였으나 이러한 모니터가 시장에서 사라지며 현재는 흔하게 사용되지는 않고 있다. 4. 결론 -. 과거에는 동축케이블이 UTP 케이블보다 신뢰성과 경제성이 뛰어나 많은 곳에서 사용하였다. 무엇보다 좋은 내구성과 차폐력을 가지고 있어 처음으로 대륙을 횡단하는 해저 케이블로 동축케이블이 사용되었다. 하지만 광케이블의 등장으로 대용량, 장거리 전송에는 광케이블이 사용되고 있다. 광케이블은 광섬유를 이용하여 데이터를 전송하므로 동축케이블에 쓰이는 구리 선보다 대역폭이 백억 배나 더 넓다. 또한, 가볍고 얇아서 대용량 디지털 신호를 전송할 때 대부분 광케이블이 사용되고 있다. 다만, 디지털 비디오 신호를 전송할 때는 광케이블보다 동축케이블의 성능이 더 뛰어나므로 이 분야에서는 동축케이블을 계속 사용 중이다. ※ 참고문헌 -. 임석구, 「IT CookBook, 손에 잡히는 데이터 통신, 한빛아카데미(주)(2021) -. coaxial cable. https://www.thefoa.org/tech/ref/premises/coax.html -. [정리] 전송매체 - 동축케이블,광섬유, 케이블, 지상마이크로파, 이동통신, https://dailycoding.tistory.com/m/42 -. 동축 케이블 이야기, https://blog.naver.com/kwshop88/220554396120?viewType=pc
    공학/기술| 2021.07.06| 5페이지| 1,000원| 조회(409)
    미리보기
  • 원형 큐에 존재하는 요소의 개수를 반환하는 연산
    제목 : 원형 큐에서 get-count 함수의 구현과 실험 목차 1. 서론 1.1. 원형 큐란? 2. get-count 코딩 1.1. 원형 큐 구현 2.2. 요소의 개수를 반환하는 연산 구현 3.3. 실험 3. 끝으로 1.1. 자료구조 과목을 마치며 1. 서론 1.1. 원형 큐란? -. 우선 큐가 뭔지 알아야 한다. 큐란 ‘FIFO 구조’의 자료구조이다. FIFO란 ‘First In, First Out’으로, 처음 들어간 데이터가 먼저 나오게 되는 자료구조를 의미한다. 예를 들어, 큐에 ‘3, 5, 8, 6’순으로 넣으면 ‘3, 5, 8, 6’순으로 나오게 된다. 이는 배열로 표현할 수 있는데, |3|5|8|6| 순으로 입력을 하고 만약 여기서 3과 5를 꺼내게 되면 | | |8|6|으로 표현된다. 여기서 발생하는 문제점이 있는데, 바로 배열 공간의 낭비가 된다는 것이다. 배열의 앞부분이 비어있어도 배열 큐가 꽉 찬 상태가 되었으므로 8과 6을 왼쪽으로 이동시켜야 새로운 값을 넣을 수 있다. 이러한 문제점을 해결하기 위해서 등장한 것이 바로 원형 큐이다. -. 원형 큐는 배열을 원형으로 보고 구현한 큐이다. 앞서 설명한 큐는 선형 큐로, 배열의 앞이 비었어도 배열의 끝에 값이 들어있으면 더는 값을 받을 수 없다. 하지만 원형 큐의 경우, 배열의 끝에 값이 들어있어도 앞이 비어있다면 값을 입력할 수 있다. 한마디로 배열의 끝과 배열의 처음을 연결하여 원형처럼 보이게 한다는 것이다. 선형 큐의 구조 원형 큐의 구조 -. 원형 큐는 0번 배열 칸, 즉, 첫 번째 칸은 비워두고 사용한다. 그 이유는 2가지로 나눠볼 수 있다. 첫 번째로, 배열의 칸은 0번부터 시작하니 계산을 쉽게 하려고 1번 칸부터 자료를 입력한다. 두 번째 이유로, 공백 상태와 포화상태를 구별하기 위해서이다. 의 경우 같은 배열 칸에 front와 rear가 있다면 공백 상태를 의미하고, rear+1을 한 값에 배열 크기만큼 나누면, 다시 말해, (q->rear + 1) % MAX_QUEUE_SIZE를 한 값이 front와 같다면 포화상태를 의미한다. 2. get-count 코딩 1.1. 원형 큐 구현 -. 과제의 주목적은 원형 큐에 존재하는 요소의 개수를 반환하는 것이므로, 원형 큐의 구현은 과제를 참고하였다. 다만, 교안에는 MAX_QUEUE_SIZE가 100으로 설정되어있으므로 이를 7로 수정하여 구현하였다. #include #define MAX_QUEUE_SIZE 7 typedef int element; typedef struct { element queue[MAX_QUEUE_SIZE]; int front, rear; } QueueType; // void error(char* message) { fprintf(stderr, "%sn", message); exit(1); } // 초기화 함수 void init(QueueType* q) { q->front = q->rear = 0; } // 공백 상태 검출 함수 int is_empty(QueueType* q) { return (q->front == q->rear); } // 포화 상태 검출 함수 int is_full(QueueType* q) { return ((q->rear + 1) % MAX_QUEUE_SIZE == q->front); } // 삽입 함수 void enqueue(QueueType* q, element item) { if (is_full(q)) error("큐가 포화상태입니다"); q->rear = (q->rear + 1) % MAX_QUEUE_SIZE; q->queue[q->rear] = item; } // 삭제 함수 element dequeue(QueueType* q) { if (is_empty(q)) error("큐가 공백상태입니다"); q->front = (q->front + 1) % MAX_QUEUE_SIZE; return q->queue[q->front]; } // 삭제 함수 element peek(QueueType* q) { if (is_empty(q)) error("큐가 공백상태입니다"); return q->queue[(q->front + 1) % MAX_QUEUE_SIZE]; } // 주 함수 void main() { QueueType q; init(&q); printf("front=%d rear=%dn", q.front, q.rear); enqueue(&q, 1); enqueue(&q, 2); enqueue(&q, 3); printf("dequeue()=%dn", dequeue(&q)); printf("dequeue()=%dn", dequeue(&q)); printf("dequeue()=%dn", dequeue(&q)); printf("front=%d rear=%dn", q.front, q.rear); 2.2. 요소의 개수를 반환하는 연산 구현 -. front에는 값이 저장되어있지 않다는 점을 생각하면 쉽게 구현할 수 있다. rear에서 front를 빼면 되는 것이다. 의 경우를 보면 rear는 2, front는 0이므로 2-0=2, 원형 큐에 2개의 요소가 있다는 것을 알 수 있다. 만약 rear와 front가 1씩 증가하여도 결과는 마찬가지이다. -. 다만, rear가 원형 큐를 1바퀴 돌아서 front보다 작아지는 때도 있다. 의 rear와 front가 6칸 이동한다고 보면 rear는 0, front는 6이 될 것이다. 이러면 0-6=-6이므로 요소 반환 계산의 오류가 생긴다. 따라서 이러한 경우는 front에서 rear를 뺀 후, 지정한 큐 크기에서 이를 빼면 되는 것이다. 따라서, rear는 0, front는 6에서 6-0=6, 전체 큐 크기는 8이므로 8-6=2, 원형 큐에 2개의 요소가 있다는 것을 알 수 있다. -. 이러한 점들을 고려하여 코드를 짠 결과는 다음과 같다. element get_count(QueueType* q) { if (q->front rear) return q->rear - q->front; else return MAX_QUEUE_SIZE - (q->front - q->rear); } 3.3. 실험 Microsoft Visual Studio 버전과 환경 -. 구현이 잘되었는지 확인해보자. 구현환경은 에서 확인할 수 있듯, 2019 버전을 사용하였다. -. 우선 의 결과는 다음과 같다. 원형 큐 구현의 결과 -. 결과에 이상이 없는 것으로 보아, 교안의 코드에는 문제가 없다는 것을 알 수 있으며 원형 큐의 구현 또한 정상적으로 출력되는 것을 알 수 있다. -. 다음은 get_count 함수를 추가한 결과이다. get_count함수를 추가한 모습 main 함수에 추가한 get_count 함수 결과 출력 get_count 함수를 추가하여 구현한 결과 -. 3개의 요소를 입력하고 3개의 요소를 꺼냈으므로 front와 rear는 3으로, 요소의 개수는 0개로 출력되는 것을 알 수 있다. -. 만약 여기서 2개의 요소를 남기면 정상적으로 작동하는지 테스트해보자. 5개의 요소를 입력, 3개를 반환하여 구현 의 결과 -. 1, 2, 3, 4, 5를 입력하여 1, 2, 3을 삭제하여 현재 큐에 남아있는 요소는 4, 5로 2개이므로 정상적으로 동작하는 것을 확인할 수 있다. -. 끝으로 요소의 삽입과 삭제가 여러 번 반복되어도 정상적으로 동작하는지 알아보자. 입력과 출력을 여러 번 적용하여 구현 의 결과 -. 1, 2, 3 입력 -> 1, 2 삭제 -> 4, 5 입력 -> 3, 4 삭제 -> 6, 7, 8, 9 입력 -> 5 삭제의 단계를 통하여 큐에는 6, 7, 8, 9가 남아있어 요소가 4개인 것을 확인할 수 있다. 입력의 개수만 보면 MAX_QUEUE_SIZE인 7을 넘겼음에도 rear가 배열의 끝에서 처음으로 돌아와 요소를 채워놓았고, 실제 큐 내부 요소의 개수는 4를 넘지 않았으므로 정상적으로 동작하였음을 알 수 있다. 또한, rear가 front보다 작아서 ‘MAX_QUEUE_SIZE - (q->front ? q->rear)’연산이 이뤄졌음을 알 수 있다. 3. 끝으로 1.1. 자료구조 과목을 마치며 -. 원형 큐뿐만 아니라, 배열, 포인터, 구조체 등을 통해 구현할 수 있는 스택, 큐, 트리, 정렬, 그래프, 해싱, 탐색 등을 배우며 코딩을 할 때 자료를 표현하는 방법과 코딩 기법 등을 익힐 수 있었다. 또한, 자료구조를 어떻게 표현할 수 있는지, 어떻게 구현하는 것이 효율적인지 고민하고 그 해답을 찾으며 한층 더 성장할 수 있는 계기가 되었다. 본 과제 내용처럼 원형 큐뿐만 아니라 다른 알고리즘도 함께 구현하고 실험하며 기본적인 자료구조 알고리즘을 배울 수 있는 아주 유익한 시간이었다. 1) 교육원 홈페이지의 질문과 답변를 통해 문의한 결과, 추가 코딩만 하면 된다고 한 설명에 따름.
    공학/기술| 2021.07.06| 9페이지| 2,000원| 조회(373)
    미리보기
전체보기
받은후기 6
6개 리뷰 평점
  • A+최고예요
    6
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 03월 31일 화요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
2:22 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감