3주차 강의 정리(이경훈) - aksrud/3kingOfGod GitHub Wiki

컴퓨터 기본구조

CPU

ALU

cpu내에서 실제 2진수 연산을 수행하는 장치

레지스터

cpu내에 있는 기억 장치로 컴퓨터에 있는 메모리 중에 가장 빠른 성능을 자랑한다

캐시

cpu가 주 기억 장치인 램과 데이터를 주고 받을 때 램의 속도가 느리기 때문에 램의 중간 버퍼인 L1, L2, L3 캐시를 만들어 자주 쓰는 데이터를 예측해서 저장하여 병목 현상을 예방한다

램은 임의의 영역에 접근하여 읽고 쓰기가 가능한 주 기억 장치 이고 휘발성 메모리 즉 전원을 끄면 안에 저장하고 있던 데이터가 지워진다.

프로세스

저장장치에 있는 프로그램을 램에 로딩 시키면 그 프로그램은 프로세스라 부르며 그것을 우리는 프로그램을 실행하였다고 한다.

저장장치

램과는 다르게 비 휘발성 메모리로 전원을 꺼도 안에 저장한 데이터는 그대로 남아있다 저장장치로는 hdd, sdd등이 있다.

메모리 구조

메모리는 1BYTE의 단위로 구성되고 있으며 그 안에 값을 저장 할 수 있다.
운영체제가 32bit라면 메모리의 주소는 2^32만큼 있으며 64bit라면 2^64만큼 인식 할 수 있다.(실제로 메모리 크기가 그렇다는 것은 아님)

연산자

단항 연산자

  1. 부호 (+, -)
  2. 증감 (++, --) 뒤에 붙이면 코드 블럭이 끝난후 연산.

이항 연산자

  1. 산술 연산 (+, -, /, *, %)
  2. 관계 연산 (<, >, <=, >=)
  3. 논리 연산 (대충) (!=, ==, &, |, ^,&&, ||, <<, >>)
#include <stdio.h>

int main() {
	int a = 1;
	int b = 0;
	printf("%d\n", a&&b);
	printf("%d\n", a||b);
	printf("%d\n", !a);
	

	return 0;
}


#include <stdio.h>

int main() {
    int a = 10;
    int b = 3;
    b = a++;
    printf("%d %d\n", a, b);
    return 0;
}

#include <stdio.h>

int main() {
    int a = 10;
    int b = 3;
    ++a;
    printf("%d\n", a);
    a = a + 1;
    printf("%d\n", a);
    return 0;
}

#include <stdio.h>

int main() {
    int a = 10;
    int b = 3;

    printf("%d\n", a == b);
    printf("%d\n", a != b);
    printf("%d\n", a > b);
    printf("%d\n", a < b);
    printf("%d\n", a >= b);
    printf("%d\n", a <= b);
    return 0;
}

#include <stdio.h>

int main() {
    int n = 10;
    int a = 1 + 2;
    int b = 10 / 3;
    printf("%d %d\n", n, sizeof(n));
    printf("%p %d\n", &n, sizeof(&n));
    printf("%d\n", a);
    printf("%d\n", b);
    return 0;
  }
⚠️ **GitHub.com Fallback** ⚠️