본문 바로가기

Computer Science116

[컴퓨터 구조] ep6) 메모리와 캐시메모리 주기억장치에는 RAM과 ROM이 있다고 ep0에서 배웠다우리가 지금까지 메모리라 불러왔던 RAM에 대해 더 자세하게 알아보자 ㅇRAM"메모리(RAM)에는 실행할 프로그램의 명령어 + 데이터가 저장된다"(만약 CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행) 휘발성(volatile): 전원을 끄면 저장된 내용이 사라진다 e.g. RAM비휘발성(non- volatile): 전원을 커도 저장된 내용이 유지된다 e.g. 보조기억장치(HDD, SSD, CD-ROM, USB메모리 등), ROM    다다익램이란 말을 들어봤는가? 100%는 아니지만 어느 정도 맞는 말이다램이 클 수록 많은 프로그램을 동시에 실행하는 데 유리하다  그렇다면 램의 종류에 대해 알아보자ㅇD.. 2024. 2. 19.
[컴퓨터 구조] ep5) CPU 성능 향상 기법 세계 곳곳의 과학자들과 엔지니어들은 조금이라도 더 빠른 CPU를 만들기 위해 혈색이다 이번 장에서는 CPU 설계 기법과 명령어 처리 기법들에 대해 알아보겠다 ㅇ클럭 "컴퓨터 부품들은 클럭이라는 박자에 맞춰 작동한다" 클럭속도는 헤르츠(Hz) 단위로 측정되며 클럭속도가 곧 CPU속도이다 클럭속도에는 기본클럭속도(Base)와 최대클럽속도(Max)가 있다 CPU는 계속 일정한 클럭속도를 유지하기보다는 고성능을 요하는 순간에 순간적으로 클럭속도를 높이고 그렇지 않은 순간에는 클럭속도를 낮춘다 여기서 최대 클럭속도를 강제로 더 끌어올릴 수가 있는데 이런 기법을 오버클럭킹이라 한다 (+ 그렇다고 해서 무턱대고 클럭속도를 높이기만 하면 안된다, 발열문제는 늘 우리를 따라다니는 숙적같은 존재이다) ㅇ코어 CPU가 과거.. 2024. 2. 14.
[컴퓨터 구조] ep4) CPU와 인터럽트 컴퓨터의 두뇌 CPU == 프로세서에 대해서 자세히 알아보자ㅁCPU(Central Processing Unit) = ALU + 제어장치 + 레지스터  ㅇALU(Arithmetic Logic Unit) 산술연산장치 ALU는 플래그를 내보낸다 아래의 표를 보자 이 플래그들은 모두 플래그 레지스터에 저장된다   이 밖에도 ALU 내부에는 여러 계산을 위한 회로들이 있다가산기: 덧셈보수기: 뺄셈시프터: 시프트 연산 수행오버플로우 검출기: 오버플로우 대비누산기: AC(accumulator) - 연산결과 등을 일시적으로 저장해 두는 레지스터  ㅇ제어장치(Control Unit)제어장치: 제어신호 발생 + 명령어 해석파란색) 제어장치가 받아들이는 것1. 클럭 신호여기서 클럭(clock)이란 컴퓨터의 시간 단위이다 ".. 2024. 2. 14.
[컴퓨터 구조] ep2) 명령어와 주소 지정 방식 ㅇ고급언어와 저급언어고급언어: 대부분의 사람을 위한 프로그래밍 언어 e.g. C언어, python, java, ...저급언어: 컴퓨터가 직접 이해하고 실행할 수 있는 언어저급 언어는 두 가지로 나누어진다, 바로 기계어와 어셈블리어 기계어: 진짜 말 그대로 01010101000010어셈블리어: 이것을 그대로 번역 e.g. push(0101) pop(0101)  (+ 가독성을 위해 기계어를 이진수가 아닌 십육진수로 표현하기도 한다)    ㅇ컴파일 언어와 인터프리터 언어 컴파일 언어: 컴파일러로 전체 코드를 한 번에 변환 후 실행 e.g. C언어인터프리터 언어: 인터프리터로 한 줄 한 줄씩 변환해주며 차례로 실행 e.g. python but 요즈음에는 컴파일 언어와 인터프리터 언어의 경계가 모호해지는 추세다 .. 2024. 2. 11.
[컴퓨터 구조] ep1) 데이터 "컴퓨터는 0과 1밖에 이해하지 못한다" ㅇ비트(bit): 0과 1을 나타내는 가장 작은 정보 단위 따라서 한 비트는 두 가지 정보만을(0 or 1) 표현한다 한 비트는 두 가지 경우의 수(0 or 1)만을 가지므로 2비트로 표현할 수 있는 정보의 개수는 2^2개 3비트로 표현할 수 있는 정보의 개수는 2^3개 . . . n비트로 표현할 수 있는 정보의 개수는 2^n개 여기서 1byte는 8개의 bit를 뜻한다 (1byte = 8bit) 10^3byte = 1kB [킬로바이트] 10^6byte = 1MB [메가바이트] 10^9byte = 1GB [기가바이트] 10^12byte = 1TB [테라바이트] 10^15byte = 1PB [페타바이트] ㅇ워드(word): CPU가 한 번에 처리할 수 있는 데이터 .. 2024. 2. 10.
[자료구조] ep0) 자료구조란? 자료구조란 단어를 들었을 때 뭔가 막막하고 어려울 것 같은 느낌이 들지만 전혀 그렇지 않다쫄 필요가 전혀 없다 자료구조에서 자료는 영어로 Data 이 Data는 개발에서 변수와 구조체를 뜻한다우리가 변수를 선언할 때 앞에 자료형을 붙이지 않는가? e.g. int n따라서 자료구조라는 학문은 변수와 구조체의 구조화를 연구하는 분야이다 한번 일상속에서의 자료구조를 찾아보자ㅇ스택(stack): 그릇을 쌓아서 보관하는 것ㅇ큐(queue): 마트 계산대의 줄ㅇ리스트(list): 버킷 리스트ㅇ딕셔너리(dictionary): 영어사전ㅇ그래프(graph): 지도ㅇ트리(tree): 컴퓨터의 디렉토리(폴더) 구조 그렇다면 왜 이 자료구조가 중요한 것인가?물론 자료구조가 알고리즘의 선행되는 개념이기도 하고코딩테스트에 있어서.. 2024. 1. 18.
[운영체제] ep0) 운영체제(OS)를 잘 알아야 하는 이유 (주의!!) [운영체제]를 공부하기 이전에 [컴퓨터 구조]를 먼저 공부하는 것을 추천한다https://claremont.tistory.com/category/Computer%20Science/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B5%AC%EC%A1%B0 'Computer Science/컴퓨터 구조' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.com운영체제는 컴퓨터 구조의 지식을 베이스로 갖고 간다물론 운영체제에서 컴퓨터 구조 개념이 쓰일 때마다 내가 링크를 걸어 그 부분을 공부하도록 하게 할 것이지만, 그래도 컴퓨터 구조를 먼저 공부하고 운영체제 공부를 하는 걸 추천한다 (바라보는 시야가 달라진다)ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ.. 2024. 1. 17.
[컴퓨터 구조] ep0) 컴퓨터 구조가 중요한 이유 난 임베디드쪽도 아니고 게임이나 보안쪽도 아닌데 그냥 개발자가 코드만 잘 짜면 되는 거 아니야? 왜 하드웨어적인 측면까지 알아야 하는 건데?? 이유가 크게 4가지가 있다. 1. 개발자에게 매우 중요한 분야인 운영체제가 컴퓨터 구조를 베이스로 갖고 간다 2. 프로그래밍에 대한 근본적인 이해를 얻게 된다 (특히 low한 언어 e.g. 어셈블리어, C언어, 등) 3. 컴퓨터 하드웨어를 미지의 대상이 아닌 분석의 대상으로 바라보는 관점이 달라진다 (바라보는 시야가 더 넓고 깊어진다) 4. 성능, 용량, 비용을 따질 수 있게 된다 (e.g. 서버 컴퓨터 구매 등) - 4번에 따른 추가질문) 아니 요즘 클라우드 서비스 사용하는 시대인데 굳이 성능, 용량, 비용을 따져야 하는가? 위의 사진처럼 따져야 한다 사실 Co.. 2024. 1. 17.