보조기억장치란? 보조기억장치는 주기억장치의 단점을 보완하기 위한 기억장치입니다. 보조기억장치는 주 기억장치에 비해 속도는 느리지만 전원이 차단되어도 내용이 그대로 유지되고 저장용량이 크다는 장점이 있습니다. 보조기억장치의 특징 중앙처리장치와 직접 자료 교환이 불가능합니다. 접근시간이 오래걸립니다. 일반적으로 주기억장치에 데이터를 저장할 때는 DMA방식을 사용합니다. CPU가 직접 접근할 수 없습니다. 여러가지 보조기억장치의 종류 자기테이프 자기테이프에는 주소의 개념이 없고, 처음부터 차례대로 처리하는 순차처리만 할 수 있는 대용량 저장 매체입니다. 평균처리시간이 가장 깁니다. 가격이 저렴하고 용량이 커서 자료의 백업용으로 많이 사용합니다. 자성물질이 코팅된 얇은 플라스틱 테이프를 동그란 릴에 감아 놓은 ..
주기억장치란? 주기억장치는 CPU가 직접 접근하여 처리할 수 있는 고속의 기억장치(Memory)로 현재 수행되는 프로그램과 데이터를 저장하고 있습니다. 종류에는 롬(ROM)과 램(RAM)이 있습니다. ROM(Read Only Memory) ROM은 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기는 불가능 합니다. 전원이 실제로 꺼져도 기억된 내용이 지웢지ㅣ 않는 비휘발성 메모리입니다. 실제로 ROM은 주기억장치로 사용되기보다는 주로 기본 입,출력 시스템(BIOS), 자가 진단 프로그램(POST)같은 변경 가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용합니다. ROM의 종류와 특징 종류 특징 MASK ROM 제조공장에서 프로그램화하여 생산한 ROM으로, 사용자가 내용을 변경시킬 수 없습니다..
기억장치는 컴퓨터에서 사용하는 Data나 Program을 저장하는 장치로 크게 주 기억장치와 보조기억장치로 구분됩니다. 기억장치의 계층구조 기억장치의 계층구조란 여러가지 기억장치를 속도, 용량, 성능에 따라 계층적으로 분류하는 것으로, 전체 메모리 시스템의 가격을 최소화하면서 가능한 최소의 평균접근속도를 달성하는 것이 기억장치 계층화의 목적입니다. 기억장치의 구분 구분방식 내용 내용의 보존 여부 파괴성 메모리 : 판독 후 저장된 내용이 파괴되는 메모리로 파괴된 내용을 재생시키기 위한 재 저장 시간이 필요합니다.(자기코어) 비 파괴성 메모리 : 판독 후에도 저장된 내용이 그대로 유지됩니다..(자기코어를 제외한 기억장치) 전원 단절 시 내용 소멸 여부 휘발성 메모리 : 전원이 단절되면 모든 정보가 지워지는 ..
인터럽트란 무엇인가? 인터럽트는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할경우 현재 실행중인 작업을 즉시 중단하고 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는것을 말합니다. 일명 끼어들기라고도 합니다. 인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생합니다. 여러가지 인터럽트의 종류와 발생원인 외부 인터럽트 외부 인터럽트는 다음과 같이 입,출력장치, 타이밍 장치, 전원 등 외부적인 요인에 의해 발생합니다. 전원 이상 인터럽트 : 정전이되거나 전원 이상이 있는경우 발생합니다. 기계 착오 인터럽트 : CPU의 기능적인 오류 동작..
레지스터란? 레지스터는 CPU내부에서 처리할 명령어나 연산의 중간 값 등을 일시적으로 기억하는 임시 기억장소입니다. 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억장소라고 생각하면 되며 일반적으로 현재 계산을 수행중인 값을 저장하는데 사용됩니다. 레지스터는 메모리 계층의 최상위에 위치하면서 가장 빠른 속도로 접근이 가능하게끔 설계되어있는 메모리입니다. 여러가지 레지스터의 종류 프로그램 카운터, 프로그램 계수기 다음번에 실행할 명령어의 번지를 기억하는 레지스터로 분기 명령이 실행되는 경우 그 목적지 주소로 갱신됩니다. 명령 레지스터 현재 실행중인 명령의 내용을 기억하는 레지스터 입니다. 누산기 연산된 결과를 일시적으로 저장하는 레지스터로 연산의 중심이 되는 레지스터입니다. 상태 레지스터(Statu..
중앙처리장치란? 중앙처리장치(CPU: Central Processing Unit)는 사람의 두뇌와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치입니다. 중앙 처리장치는 제어장치, 연산장치, 레지스터 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있습니다. 중앙처리장치의 대표적인 구성장치 제어장치 제어장치(Control Unit)는 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치입니다. 제어장치는 명령 레지스터에서 읽어들인 명령어를 해독하여 해당하는 장치에게 제어 신호를 보내 정확하게 수행하도록 지시합니다. 제어장치의 구성요소 명령 레지스터 : 현재 실행중인 명령어의 내용을 기억하고 있습니다. 명령 해독기(Decoder) : 명령 레지스터에 있는 명령어..
매크로 프로그래밍의 개념 및 특징 매크로(Macro)는 프로그램 작성 시 한 프로그램 내에서 동일한 코드가 반복 될 경우 반복되는 코드를 한번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 기법입니다. 1. 일종의 부 프로그램(Sub-Program)으로 개방 서브루틴(Poened Sub-routine)이라고도 합니다. 2. 매크로는 문자열 바꾸기와 같이 매크로 이름이 호출되면 호출된 횟수만큼 정의된 매크로 코드가 해당 위치에 삽입되어 실행됩니다. 3. 매크로 정의 내에 또 다른 매크로를 정의할 수 있습니다. 4. 사용자의 반복적인 코드 입력을 줄여줍니다. 5. 매크로 정의형태는 주로 어셈블리어 형태입니다. 매크로 용어 매크로 정의 : 프로그래머가 일정한 형식..
얼마전 포스팅에서 GitBash를 사용하여 원격 레파지토리에 소스를 등록하는 작업을 해보았습니다. 이렇게 명령어 입력으로도 깃허브를 사용할 수 있습니다. 하지만 많이 불편하죠... 명령어를 다 외우는것도 만만치않은일입니다. 명령어를 사용하여 깃허브를 사용하는것이 불편한 분들을 위한 유틸리티가 있습니다. 바로 소스트리(Source Tree)라는 프로그램인데요. 소스트리란 Git을 그래픽화 시켜준다고 생각하시면 됩니다. 명령어 입력을 할 필요 없이 클릭만으로 Git의 모든 작업을 할 수 있습니다. 소스트리 (SourceTree) 설치하기 1. 소스트리 SetUp파일을 다운받습니다. 소스트리 설치URL 바로가기 위 경로로 가셔서 Download for Windows버튼을 눌러주세요. 2. 다운받은 SetUp파..
이클립스에서 프로젝트를 깃 원격 저장소로 Commit하는 방법에 대해 알아봅시다. 1. 깃 원격저장소에 올리고싶은 프로젝트 -> 우클릭 -> Share Project를 클릭합니다. 2. 화면에 보이는 Use or create repository inparent folder of project 체크박스를 클릭합니다. 3. Create Repository 버튼을 클릭하여 로컬 저장소를 만듭니다. 4. Git Repositories를 엽니다. 5. Git Repositories에 로컬저장소가 잘 만들어졌는지 확인합니다. 위와같이 자신이 원격저장소에 올리고싶은 프로젝트가 있으면 로컬저장소가 잘 만들어진것입니다. 이제 원격저장소에 프로젝트를 올릴 차례군요. 6. 올리고싶은 원격저장소의 주소를 복사합니다. 7. G..
이클립스와 깃을 연동하면 작업이 매우 편리해집니다. 이클립스에서 몇번의 클릭만으로 깃 레파지토리에 Push를 할수도 있고 Pull을 할 수도 있습니다. 이번 포스팅에서는 이클립스와 깃을 연동하는 방법에 대해 알아보도록 하겠습니다. 1. 일단 연동할 원격 레파지토리 주소를 복사하도록 하겠습니다. 제가 연동할 레파지토리 주소는 위와같습니다. 2. GIt Repositories창을 엽니다. 3. Clone a Git repository를 클릭합니다. 4. 첫번째 빨간박스의 주소는 Git원격 레파지토리의 주소를 복사하고있다면 자동으로 들어갑니다. 그 밑의 빨간박스에는 깃허브 아이디와 패스워드를 각각 입력하고 Next를 누릅니다. 5. 기본 Branch master를 체크해주고 Next를 눌러줍니다. 6. 원격 ..
Git Repositories를 만든 뒤 삭제하는 법을 몰라서 헤매시는 분들을 위해 이번 포스팅에서는 Git 원격 저장소 레파지토리 삭제 방법에 대해 알아보도록 하겠습니다. 1. 먼저 깃허브 사이트에가서 로그인을 한 뒤 삭제하고 싶은 레파지토리로 들어갑니다. 깃허브 바로가기 2. 자신의 레파지토리 리스트 중에서 자신이 삭제하고자 하는 레파지토리에 들어갑니다. 3. 삭제할 레파지토리에서 우측 상단의 Setting버튼을 클릭합니다. 4. Setting에서 스크롤을 밑으로 끝까지 내리게 되면 위와 같은 Danger Zone 나오는데요 여기서 가장 밑에 있는 Delete this repository버튼을 클릭합니다. 5. 그런 뒤 확인작업을 두 번 거쳐야 하는데요. 제거할 레파지토리명과 계정 패스워드를 차례로 ..
소스 형상관리의 정의 소프트웨어 형상관리는 Software Configuration Management, 줄여서 SCM라는 단어를 쓰기도 하는데, SW개발 및 유지보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 각종 결과물에 대해 형상을 만들고, 이들 형상에 대한 변경을 체계적으로 관리, 제어하기 위한 활동입니다. 단순히 말하자면 프로젝트를 진행하면서 생성하는 소스코드를 CVS나 SVN, 또는 GIT와 같은 버전 관리 시스템을 이용하는 것을 말합니다. 다수의 개발자가 프로젝트에서 동일한 기능을 동시에 개발한다고 할 때, 작성된 소스 코드와 변경사항을 확인하고, 수정하는 협업을 도와주는 시스템이라고 할 수 있습니다. 형상관리는 일반적으로 버전 관리 (version control, revision c..
인덱스의 개념 인덱스는 데이터 레코드를 빠르게 접근하기 위해서 구성하는 것으로 다음과 같은 특징이 있다. 1. 인덱스는 데이터가 저장된 물리적 구조와 밀접한 관계가 있다. 2. 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다. 3. 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행할 수 있다. 4. 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는것이 효율적이다. 트라이(Trie)색인 트라이 색인은 탐색을 위한 키 값을 직접 표현하지 않고 키를 구성하는 문자나 숫자 자체의 순서로 키 값을 구성하는 구조이다. 키 값이 문자열 또는 숫자일 경우 일련의 키 값들에 대해 일부분이 같은 문자나 숫자로 구성되었을 떄 적합하다. 1. 가변 길이의 키 값을 효율적으로..