본문 바로가기

개발공부(C, C++)

따배씨(따라 배우는 C언어_홍정모) Chapter0

CHAPTER 0 컴퓨터의 작동원리

주 기억장치(Primary Storage – Computer memory)

  • Random-Access Memory(RAM) : 전원을 끄면 데이터가 사라짐. Volatile type of memory.
  • 비교) Read-Only Memory(ROM)
  • 왜 Random-Access 이냐면, Ram 이 순차적으로 접근하기 보다 주소를 알면 곧바로 그곳으로 접근하는 것이 가능하기 때문이다.

그래픽스 카드. GPU(Graphics Processing Unit)

자체적인 cpu 와 메모리를 가지도록 발전함.

보조기억장치(Secondary Storage)

  • HDD(Hard Disk drive)
  • SSD(Solid-state Drive)
  • FDD(Floppy Disk Drive): 우리가 아는 플로피 디스크. 얘보다 딱딱해서 HDD 가 Hard 가 이름으로 붙었고, 얘가 A 드라이브, B 드라이브를 썼었기 때문에 오늘날 컴퓨터가 C 드라이브부터 시작하는, 역사적인 저장장치. 이것보다도 전엔 자기 테이프를 썼었다.

부팅 절차:

  1. 전원 공급
  2. 부트 프로그램 실행
  3. 하드웨어 검사
  4. 운영 체제 로드
  5. 운영 체제 실행

cpu 는 주기억장치(Ram) 과만 소통한다. 운영체제도 보조기억장치에 저장되어 있기 때문에, 운영체제를 실행 시키려면 Ram 으로 운영체제를 복사해와서 cpu 와 소통하면서 실행시킨다.

운영체제가 해주는 일들:

하드웨어를 어떻게 이용할 것인지 운영체제와 소통하는 것을 중간에서 도와주는 것이 커널(Kernel) 이다. 커널은 ‘핵심’ 이란 뜻이 있는데, 커널이 있기에 운영체제가 컴퓨터 자원을 어떻게 배분할지 하드웨어와 소통할 수 있으며, 개발자들도 일일이 하드웨어 관리할 필요 없이 운영체제에 의존할 수 있다.

컴퓨터가 2진수 사용하는 이유:

에디슨 필라멘트 전구 효과  진공관  트랜지스터 순으로 발달함. -극의 전자를 + 극 쪽으로 이동시키느냐 안 시키느냐 의 두가지 경우의 수에 따라 계산이 되기 때문에 이진법으로 발달.

컴퓨터 메모리의 기본 구조:

CPU 와 RAM 은 3가지 버스를 통해 소통한다. 3가지 버스를 System bus 라고 통칭하며, address bus, control bus, data bus 가 있다. address bus 는 메모리 주소가 오가는 통로고, data bus 는 데이터가 오가는 통로다. cpu 와 RAM은 control bus 를 통해 데이터를 저장할지, 받아올지 정하고, 각기 상황에 따라 주소와 데이터를 교환한다. 이렇게 메모리 주소가 오가는 통로를 통해 cpu 가 데이터를 저장하거나 불러오기 때문에 메모리 주소를 컨트롤하는 것은 아주 중요하고, 그래서 나중에 배울 ‘포인터’ 라는 개념도 중요한거다.

CPU의 기본구조:

구성요소: 산술 논리 장치(ALU, Arithmetic Logic Unit) + 제어 장치(Control Unit) + 여러가지 레지스터들(Registers) 로 이루어짐.

* 레지스터 종류:

  1. 주소 레지스터 : 읽거나 쓸 메모리 주소 저장.
  2. 프로그램 카운터 : 다음 명령어의 메모리 주소 저장
  3. 데이터 레지스터 : 메모리에서 읽어온 데이터 저장
  4. 명령어 레지스터 : 메모리에서 읽어온 명령어 저장
  5. 어큐뮬레이터 : 연산에 사용되는 데이터 저장.

CPU 가 일하는 방법

소프트웨어 개발의 7가지 단계:

  1. 목적 정의
  2. 프로그램 설계
  3. 코드를 작성
  4. 컴파일 한다.
  5. 실행시켜본다.
  6. 시험해보고 오류가 있다면 수정
  7. 프로그램을 유지하고 개선해 나간다.