본문 바로가기

전체 글

(64)
[컴퓨터구조] 명령어 실행 (명령어 인출, 실행 사이클) 김종현 컴퓨터구조론 개정5판 생능출판사, 김종상 컴퓨터시스템구조 제3판 프로텍미디어를 정리, 요약하여 올리는 글입니다. 1. 명령어 실행 - CPU는 명령어가 저장된 기억장치에서 명령어를 인출해 실행하여 작업을 수행한다. - CPU가 한 개의 명령어를 실행하는 데 필요한 과정을 명령어 사이클(instruction cycle)이라고 한다. 이 명령어 사이클은 CPU 프로그램이 실행된 순간부터 전원을 끄거나 회복 불가능한 오류가 발생하여 중단되기 전까지 계속 반복된다. - 명령어 실행은 크게 두 부분으로 나뉜다. CPU가 기억장치로부터 명령어를 읽어오는 단계를 명령어 인출(instruction fetch), 명령어를 실행하는 단계를 명령어 실행(instruction excution)로 나뉜다. 2. CPU ..
[컴퓨터구조] CPU의 기본 구조 김종현 컴퓨터구조론 개정5판 생능출판사, 김종상 컴퓨터시스템구조 제3판 프로텍미디어를 정리, 요약하여 올리는 글입니다. 1. CPU 기본 구조 CPU는 산술논리연산장치(Arithmetic and Logical Unit : ALU)와 레지스터 세트(register set)와 제어 유니트(controll unit)으로 이루어져 있다. 1-1) ALU - 산술 및 논리 연산들을 수행하는 회로들로 이루어진 하드웨어 모듈이다. 산술은 덧셈, 뺄셈, 곱셈, 나눗셈을 말하며 논리 연산은 AND, OR, NOT, XOR 등등이 있다. 1-2) 레지스터 - CPU 내부에 있는 메모리이다. 레지스터는 CPU 내에 있는 메모리로 엑세스 속도가 컴퓨터 내부 장치들 중에서 가장 빠르다. 하지만 레지스터는 내부 회로가 복잡하고 ..
[컴퓨터구조] 컴퓨터시스템 개요 (3) 김종현 컴퓨터구조론 개정5판 생능출판사, 김종상 컴퓨터시스템구조 제3판 프로텍미디어를 정리, 요약하여 올리는 글입니다. 1. CPU - 메모리 접속 1-1) 시스템 버스 CPU는 컴퓨터의 뇌와 같다. 뇌(CPU)가 컴퓨터의 다른 주요 구성요소들과 어떻게 접근하고 제어할까. 사실 CPU와 기억장치 즉 메모리는 직접적으로 연결되어 있지 않다. CPU는 데이터를 교환하는 통로, 즉 버스를 통해서 메모리에 있는 데이터를 이동하고 메모리에 저장도 할 수 있다. 이 통로를 시스템 버스(system bus)라 한다. CPU는 아래의 그림과 같이 시스템 내의 다른 요소들과 시스템 버스를 통해 데이터를 주고 받는다. 1-2) 주소 버스(address bus)란? - 주소 버스는 CPU가 발생하는 주소 정보를 전송하는 신..
[컴퓨터구조] 컴퓨터시스템 개요 (2) 김종현 컴퓨터구조론 개정5판 생능출판사, 김종상 컴퓨터시스템구조 제3판 프로텍미디어를 정리, 요약하여 올리는 글입니다. 1. 컴퓨터가 받아들이고 처리하는 정보의 종류는 프로그램 코드(Program Code)와 데이터(datat)가 있다. 디지털 컴퓨터에서는 그러한 모든 정보들은 2진수를 나타낼 수 있는 비트(bit)들의 조합으로 표현된다. 2. 컴퓨터 프로그램은 C, C++, Python과 같은 고급 언어(high-level language)를 이용해 작성된다. 사람이 보고 만들기에는 쉽지만 고급 언어를 기계가 이해할 수는 없다. 따라서 고급 언어로 만든 프로그램을 컴파일러(compiler)라고 부르는 소프트웨어에 의해 기계가 이해할 수 있게 번역한다. 이렇게 번역된 언어를 기계어(machine lang..
[컴퓨터구조] 컴퓨터시스템 개요 (1) 김종현 컴퓨터구조론 개정5판 생능출판사, 김종상 컴퓨터시스템구조 제3판 프로텍미디어를 정리, 요약하여 올리는 글입니다. 1. 컴퓨터 시스템은 하드웨어와 소프트웨어로 구성된다. 1-1) 하드웨어(Hardware) 컴퓨터에서 각종 정보의 전송 통로를 제공하고 정보에 대한 처리가 일어나는 물리적인 실체를 하드웨어라고 한다. 예를 들어 메인보드, CPU, 램(DDR5...), 키보드, 마우스, 모니터 등 1-2) 소프트웨어(Software) 정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고 그러한 동작들이 수행될 시간을 지정해주는 명령어들의 집합이다. 시스템 소프웨어는 Window, Unix, Linux와 같은 운영체제이고 응용 소프트웨어는 워드프로세서, 웹 브라우저 등을 들 수 있다. 2. 컴퓨터는 프로..
[파이썬] 파이썬 list.pop(0)은 O(n)이다! 그러니 데크(deque)를 쓰자 0. 펠린드롬 문제 펠린드롬 문제를 만나면 보통 list의 0번 인덱스와 마지막 인덱스를 서로 비교해서 같은지 확인하는 방식으로 푸는 것 같다. 나 역시 그 문제를 풀다가 간단하면서도 중요한 개념을 만나게 되었다. 1. list의 pop() 연산 리스트의 pop() 함수는 가장 마지막에 있는 요소를 리턴 후 해당 요소를 삭제한다. 마치 queue처럼 쓸 수 있다. i번째 요소라면 list.pop(i)라고 하여 i번째요소를 찾아서 pop할 수도 있다. 그렇다면 list.pop(0)로 리스트의 0번째 요소를 pop할 수도 있겠다! 2. list.pop(0)의 시간복잡도는 O(n)이다! 리스트의 가장 첫번째 요소를 반환하고 삭제하는 pop(0)는 O(n)의 시간 복잡도를 가진다. 즉 데이터가 크기가 커지면 커..
[파이썬] 파이썬 기초 0. 기초 ※ 인터프리터 언어 파이썬은 인터프리터 언어다. 컴파일러는 전체를 다 읽고 번역하여 실행하지만 인터프리터는 코드를 한 줄 읽고 번역하고 실행한다. 컴파일러는 전체를 다 번역하고 나면 다시 번역하지 않기 때문에 실행속도가 빠르다. 인터프리터는 줄 단위로 번역하기 때문에 번역 속도는 빠르지만 프로그램을 실행하면 실행 속도는 느리다. 1. 자료형 ※ 숫자형 : 실수형의 소수점 표현은 e10 또는 E10으로 지수승을 표현할 수 있다. ex) a = 4.24E10 = 4.24 * 1010 ex) a = 4.24e-10 = 4.24 * 10-10 ※ 제곱 연산 표현 : ** 연산자로 제곱을 표현할 수 있다. a = 3 b = 4 print(a ** b) #81 ※ 나눗셈 연산 표현 : - 나눈셈 후 나머..
[깃 Git] 깃 다운로드 방법 깃을 쓰려면 깃 프로그램을 다운받아야 한다. Git 사이트 : https://git-scm.com/ Git git-scm.com 해당 링크에 들어가서 Downloads 클릭하여 운영체제에 맞게 다운로드를 받는다. 프로그램 다운 받을 때 기본으로 설정된 체크박스를 건들지 말고 그냥 next를 계속 누른 후에 install하면 되지만 하나씩 단계를 설명하면 다음과 같다. 라이센스 동의를 구하는 부분이다. next 하기! 설치 경로를 지정하는 부분이다. 특별한 경로가 없다면 그냥 기본 값으로 next~ 깃의 다양한 컴포넌트를 고르는 부분이다. 기본 설정되어 있는 것을 써도 충분하니 next~ 프로그램 메뉴 목록 형태로 관리할 수 있다. Git이 기본 설정되어 있으니 그냥 next~ 터미널에서 사용하는 대표적인..