본문 바로가기

Computer Science/컴퓨터 구조12

[컴퓨터 구조] 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) 컴퓨터 구조가 중요한 이유 난 임베디드쪽도 아니고 게임이나 보안쪽도 아닌데 그냥 개발자가 코드만 잘 짜면 되는 거 아니야? 왜 하드웨어적인 측면까지 알아야 하는 건데?? 이유가 크게 4가지가 있다. 1. 개발자에게 매우 중요한 분야인 운영체제가 컴퓨터 구조를 베이스로 갖고 간다 2. 프로그래밍에 대한 근본적인 이해를 얻게 된다 (특히 low한 언어 e.g. 어셈블리어, C언어, 등) 3. 컴퓨터 하드웨어를 미지의 대상이 아닌 분석의 대상으로 바라보는 관점이 달라진다 (바라보는 시야가 더 넓고 깊어진다) 4. 성능, 용량, 비용을 따질 수 있게 된다 (e.g. 서버 컴퓨터 구매 등) - 4번에 따른 추가질문) 아니 요즘 클라우드 서비스 사용하는 시대인데 굳이 성능, 용량, 비용을 따져야 하는가? 위의 사진처럼 따져야 한다 사실 Co.. 2024. 1. 17.