본문 바로가기

전체 글

(256)
[홍정모의 따라하며 배우는 C언어] C언어 특징 C언어의 장점 프로그램의 효율성을 높일 수 있다 강력하면서도 유연하다 프로그래머 중심이다 (프로그래머에게 많은 권한/책임을 준다) 다른 시스템으로 이식하기 좋다 (윈도우에서 C언어로 만들었어도 리눅스에서 실행해도 이식하기 좋다) 작은 하드웨어에서 프로그래밍할 때 유용 C언어의 단점 주의를 기울여야 한다 C언어가 쓰이는 곳 Unix 운영체제 게임 임베디드 시스템 자동화 공장 컴파일러와 링커 [컴파일러] 소스코드를 하나의 오브젝트 코드로 변경해준다 [링커] 여러 오브젝트 코드를 하나로 모아준다 라이브러리를 사용할 경우 해당 라이브러리와 연결을 시켜준다 추천 책
[홍정모의 따라하며 배우는 C언어] 정보의 단위 & 이진수 데이터와 정보의 차이 정보: 값들 정보: 값들에 처리과정을 거쳐 유용한 형태로 변경 디지털 정보의 기본 단위인 비트 이진수
[홍정모의 따라하며 배우는 C언어] CPU가 일하는 방법 프로그램이 실행되면, 보조기억장치에 있던 데이터가 주기억장치로 옮겨진다 주기억장치와 CPU가 통신하여 처리한다 고수준 프로그래밍 언어로 작성하면 CPU를 통해 기계어로 변경한다 CPU 가 일하는 순서 1. 프로그램 카운터가 시작점을 말해준다 2. 메모리 주소 레지스터에 주소값 전달 3. 메모리 데이터 레지스터가 내부 데이터를 읽음 4. 메모리 데이터 레지스터가 읽어온 것이 instruction이기 때문에 명령어 레지스터로 옮겨감 5. 프로그램 카운터가 하나 증가된다. 프로그램 카운터는 항상 다음번에 읽어올 메모리의 주소를 가지고 있어야 하기 때문에 프로그램이 실행되기 전에 하나 증가됨 6. 명령어 레지스터에 있는 명령어가 제어장치로 들어감. 그럼 제어장치가 해독한다 (디코드라고 함) 7. 10번지에 있는..
[홍성모의 따라하며 배우는 C언어] CPU의 기본 구조 생각보다 명령어가 없고 단순한 작업들을 조합해서 어마어마한 일을 해낸다 ALU 실제 연산 작업을 하는 곳 (더하기 빼기 등의 계산) 숫자 두개가 모여서 하나로 나온다는 의미로 저런 모양으로 생김 제어장치 관리하는 역할 레지스터 일을 하기위한 책상 역할 작업 공간 기능에 따라 여러가지가 있음 메모리와 가깝게 일한다 CPU안에 레지스터가 들어있으며 저장을 한다 구조를 공부하는 사람 입장에서는 레지스터와 메모리는 같은 저장을 하지만 완전 다르다 흔히 이야기하는 메모리와는 구분하는게 좋다
[홍정모의 따라하며 배우는 C언어] 메모리 기본구조 입출력 장치는 운영체제가 쉽게 해주기 때문에 CPU와 Memory위주로 공부 하는 것이 일반적 버스를 통해 2진수 데이터를 주고받는다 1차적으로 메모리에 중요한 내용이 저장되어 있다가 CPU가 연산을 하고 다시 메모리에 전달 메모리에서 CPU로 데이터를 보낼 때 자주 보내는 데이터는 캐시메모리에 저장되어서 가져옴 데이터 접근 방법에는 순차접근, 임의 접근이 있다 순차 접근은 모든 집을 순차적으로 방문하여 사람을 찾는 것과 같고 임의 접근은 찾고자 하는 사람의 주소를 알고있어 바로 찾는 것과 같다 현대 컴퓨터는 주로 후자의 방법으로 데이터를 찾는다 CPU와 메모리(RAM)가 통신하는 방법은 위 그림과 같다 가장 중요한 특징은 address(CPU가 주소를 지정해 알려줌), control(데이터를 보낼건지 ..
[홍정모의 따라하며 배우는 C언어] 운영체제가 해주는 일들 OS마다 개성을 가지고 있지만 핵심적인 기능은 비슷 커널은 하드웨어를 다루는 가장 핵심적이고 가까운 부분 운영프로그램과 하드웨어를 중계해준다 하드웨어를 직접 다루는 것이 어렵기 때문에 하드웨어를 어떻게 사용해야할지 정했음 여러개의 프로그램을 띄워놓으면 하드웨어를 서로 쓰려고 경쟁할 것이다 이때 CPU나 메모리같은 하드웨어의 자원들(resource)을 관리해주는 것도 운영체제이다(중재) 프로그래머 입장에서 하드웨어 관련 부분을 매번 직접 개발할 필요 없이 간편히 사용할 수 있는 인터페이스 (도구들을 제공해주는 고마운 존재)
[홍정모의 따라하며 배우는 C언어] 컴퓨터를 켤 때 일어나는 일들 1. 전원 버튼을 누르면, 전원 공급 장치가 메인보드에 전기를 공급하게 된다 2. ROM BIOS가 동작한다 (메인보드 안에 내장되어있음) - BIOS는 Basic Input Output System의 약자이다 - ROM은 Read Only Memory의 약자 - 제조할때 ROM에 들어갈 내용은 이미 결정이 되서 나온다 - 컴퓨터가 처음 시작될 때 어떤일을 할지 담고있다 - 부트 프로그램을 담고있음 부트프로그램이 하는 일 하드웨어가 정상적인가 그래픽카드를 달았는가 하드웨어 검사를 수행 3. 운영체제 로드 - 프로그램으로 데이터 형태로 존재하기 때문에 보조기억장치에 저장됨 - 보통은 제조사에서 탑재해서 보내주는 경우가 많음 4. 운영체제 실행 - CPU가 운영체제를 작동시킴 (구체적으로 어떻게 작동 시키는..
[홍정모의 따라하며 배우는 C언어] 컴퓨터 작동원리 컴퓨터의 구성요소 메인보드(마더보드) - 중요한 부품들을 껴안고 있음 중앙처리장치(CPU) - 실제로 쿨러가 크기가 더 큼 - 모든 연산을 담당 주기억장치(RandomAcsessMemory) - CPU와 위치부터 가까이 있음 -> CPU와 활발하게 통신하며 프로그램을 처리함 - 전원을 끄면 데이터가 사라짐 - 보조기억 장치가 필요 - 영어로는 primary storage - 사용하는 이유는 속도가 빨라서이다 보조기억장치(HDD, SSD) - 회선으로 연결된다 - 전원을 꺼도 데이터가 유지됨 - 주기억장치보다 훨씬 느리다 HDD - 내부에 팽글팽글 돌아가는 디스크가 있다(물리적으로 움직이는 부품이 있다) - 속도에 한계가 있음 (무한하게 빠르게 돌 수 없기 때문) SSD - USB가 발전한 형태 - 물리적..