분류 전체보기 91

컴퓨터 구조론 2장 [CPU의 구조와 기능 - 명령어 실행]

CPU는 기억장치에 저장됭어 있는 명령어들을 인출하여 실행함으로써 실제적인 작업을 수행한다.CPU 가 한 개의 명령어를 실행하는데 필요한 전체 과정 : 명령어 사이클(Instruction Cycle)명령어 사이클은 인출단계와 명령어 실행 단계로 나누어진다.CPU가 기억장치로부터 명령어를 읽어오는 명령어 인출(Instruction fetch)인출된 명령어를 실행하는 명령어 실행(Instruction execution)이 두 단계를 각각 부사이클(subcycle)로 구분하여 명령어 사이클의 흐름도를 보면 그 부사이클은 각각 인출 사이클과 실행 사이클이라 부른다.명령어 사이클은 CPU가 프로그램 실행을 시작한 순간부터 전원을 끄거나 회복 불가능한 오류가 발생하여 중단될 때까지 반복하여 수행된다. 명령어를 실행..

컴퓨터 구조론 2장 [CPU의 구조와 기능 - CPU의 기본 구조]

CPU는 기억장치에 저장되어 있는 프로그램 코드인 명령어들을 실행함으로서 프로그램 수행이라는 컴퓨터의 기본적인 기능을 수행한다.CPU가 수행해야 하는 세부적인 동작들명령어 인출(Instruction fetch) : 기억장치로부터 명령어를 읽어온다.명령어 해독(Instruction decode) : 수행해야 할 동작을 결정하기 위하여 명령어를 해독한다.데이터 인출(Data fetch) : 명령어 실행을 위하여 데이터가 필요한 경우 기억장치 혹은 I/O장치로부터 그 데이터를 읽어온다.데이터 처리(Data process) : 데이터에 대한 산술적 혹은 논리적 연산을 수행한다.데이터 저장(Data store) : 수행한 결과를 저장한다.첫번째 동작과 두번째 동작은 모든 명령어들에 대하여 공통적으로 수행된다.세번..

컴퓨터 구조론 1장 [컴퓨터 구조의 발전 과정]

컴퓨터 구조의 발전 과정현재 수 많은 컴퓨터들이 존재한다. 대부분은 기본적인 구조와 동작 원리에 기본을 두고 있다. 초기의 컴퓨터들도 그러한 원리에 바탕을 두고 있었지만, 릴레이(relay)와 같은 기계식 부품들을 이용하여 만들어졌다.그 후에 주요 부품들이 트랜지스터나 반도체 집적회로(semiconductor integrated circuit : IC)칩으로 대체되면서, 컴퓨터의 처리 속도가 계속 높아지고 있다. 또한 반도체 기억장치 칩의 밀도가 높아짐에 따라 저장 용량도 크게 증가되고 있다.최근에는 시스템의 성능을 높이기 위하여 한 시스템 내에 장착되는 CPU의 수를 증가시키거나, 하나의 칩에 여러 개의 CPU 코어(core)들을 포함시키기도 하며, 구성 요소들 간의 연결 통로를 고속화하기 위한 새로운..

컴퓨터 구조론 1장 [시스템의 구성]

CPU와 기억장치의 접속CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로가 되는 시스템 버스(System Bus)이다.시스템 버스는 세 가지 하부 버스(Sub-Bus)들로 이루어진다.시스템 버스 - CPU와 다른 요소들 간의 정보 교환 통로 주소버스주소버스(Address bus)는 CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합이다.각 주소선은 하나의 주소 비트를 전송하는 데 사용되며, 전체 주소 선들의 개수가 CPU와 접속될 수 있는 최대 기억장치 용량을 결정해준다.CPU가 발생하는 주소 비트들의 수를 주소 버스의 폭(Width)이라고 하는데, 만약 그 폭이 16바트라면, 최대 2^17 = 65,546개(즉, 64K개) 기억장소들의 주소를 지정해 줄 수 있다.주소버스 - 주..

컴퓨터 구조론 1장 [정보의 표현과 저장]

정보의 표현과 저장컴퓨터가 받아들이고 처리하는 정보의 종류로는 프로그램 코드(Program Code)와 데이터(Data)가 있다.디지털 컴퓨터에서 정보들은 모두 2진수(Binary Number)를 나타내는 비트(bit)들의 조합으로 표현된다.컴퓨터 프로그램은 C, C++ 혹은 Python과 같은 고급 언어(High-Level-Language)를 이용하여 작성된다. 이렇게 작성된 프로그램은 영문자들과 숫자들로 이루어져 있어서 사람들이 이해하기는 쉽지만, 디지털 회로들로 이루어진 컴퓨터 하드웨어는 전혀 이해하지 못한다. 따라서 이 프로그램은 컴파일러(Compiler)라고 부르는 소프트웨어에 의해 하드웨어가 이해할 수 있는 언어로 번역된다.컴퓨터를 계산기계(computer machine)라고 부르기도 하므로,..

컴퓨터 구조론 1장 [컴퓨터의 기본 구조]

컴퓨터 시스템 개요컴퓨터 시스템은 기본적으로 하드웨어와 시스템 소프트웨어로 구성되며, 시스템에 각종 응용 소프트웨어(application software)들이 탑재되어 사용자와 상호작용을 하면서 프로그램을 처리한다.컴퓨터가 프로그램 형태로 주어진 작업을 수행하기 위해서는 표현된 정보들을 해석하거나 이동 시키고 처리하여 새로운 정보를 생성해야 한다.컴퓨터에서는 각종 정보들의 전송 통로를 제공하며, 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들을 하드웨어(hardware)라고 부른다.하드웨어의 구성요소메인 보드(Main Board) : 주요 IC 칩들과 메모리 모듈 및 IO장치 인터페이스를 위한 슬롯들이 장착되는 기판으로, 주 기판 혹은 마더 보드(Mother Board)라고 부른다.CPU 및 G..

백준 [단계별로 풀어보기 - 입출력과 사칙연산2]

10926 ??!string을 사용해 간단하게 문자열 뒤에 문자를 추가로 입력하도록 작성한다.#include using namespace std;int main() { string s; cin >> s; cout C++using System;using System.Collections.Generic;using System.IO;class Program{ static void Main(String[] args) { string s; s = Console.ReadLine(); Console.WriteLine(s + "??!"); }}C#18108 1998년생인 내가 태국에서는 2541년생?! 불기연도는 현재년도 + 543년이다 따라서 그 ..

[Chapter 2] 쉽게 배우는 알고리즘[점근적 표기]

알고리즘은 입력 크기가 아주 작으면 알고리즘의 효율성에 상관 없이 금방 끝난다. 알고리즘의 효율성이 문제가 되는 것은 입력의 크기가 충분히 클 때다. 그래서 알고리즘의 수행 시간은 항상 입력의 크기가 충분히 클 때 분석한다.즉, 점근적 분석을 한다.를 이용한 분석이 점근적 분석의 한 예시이다.변수의 크기가 충분히 큰 경우 변수가 커짐에 따라 함수가 증가하는 비율을 표현하는 방법이다. 이를 함수의 점근적 증가율이라고 하고, 그 표기법을 점근적 표기법이라 한다.고등학교에서 배우는 무한의 개념을 사용하면이다. 이것은 함수 >은 n이 충분히 커짐에 따라 2n+3의 비율로 증가한다는 뜻이다.점근적 표기법은 이를 좀 더 간명화한다. 이들 중 O-표기법을 사용하면이다.이것은 함수>은 n이 충분히 커짐에 따라 n에 대..

알고리즘 2025.03.05

백준 [단계별로 풀어보기 - 입출력과 사칙연산]

2557 문자출력 문제단순히 문자를 출력하는 내용으로 C++,C#을 사용해 문제를 풀기에 각 언어마다 출력문을 다르게 작성한다.#include int main(){ std::cout C++using System;class HelloWorld{ static void Main(string[] args) { Console.WriteLine("Hello World!"); }}C#1000 사칙연산 A+B두 수를 입력받아 계산 결과를 출력하는 기초 문제이다.두개의 int형 변수에 사용자가 입력한 값을 받고 결과로 입력받은 값의 합을 출력하는 코드를 작성한다.#include int main(){ int A, B; std::cin >> A; std::cin >> B; std::cout C+..

[Chapter 2] 쉽게 배우는 알고리즘[알고리즘 설계와 분석의 기초]

몇가지 기초 사항들알고리즘 분석의 필요성알고리즘을 설계하고나면 알고리즘이 자원을 얼마나 소모하는지 분석애햐 할 때가 많다. 자원이란 소요 시간이나 메모리, 통신대역 등이 될 수도 있지만 대부분은 소요 시간이 가장 중요한 관심 대상이 된다. 물론 다른 자원도 관심 대상이다. 메모리나 통신대역 등은 대부분 주어진 범위 내에서 문제가 되지 않지만 가끔 가장 중요한 대상이 되기도 한다.시간의 분석은 최악의 경우와 평균적인 경우에 대한 분석이 대표적이다.시간 분석을 하면 알고리즘이 어느 정도의 입력에서 어느 정도의 시간이 필요한지 미리 짐작할 수 있다.ex) 디스크에 있는 3,000만 명의 고객 레코드를 한 시간 내에 생년월일 순으로 정렬하라는 요구를 받았을 떄, 사용하고자 하는 알고리즘의 소요 시간이 입력의 크..

알고리즘 2025.03.04