컴퓨터 과학 기초

현재·2023년 12월 23일

sys

목록 보기
3/9

왜 배워야 하는가

컴퓨터 과학을 깊게 이해하고 도전을 즐기는 엔지니어와 툴에 의존하는 얕은 이해의 엔지니어로 나눌 수 있습니다. 전자는 성취와 리더십을 추구하며 고퀄리티의 결과물을 만들지만, 후자는 툴에만 의존하며 깊은 이해가 부족할 수 있습니다. 컴퓨터 과학을 깊이 공부하면 안정된 고용 기회와 전문성 향상이 기대됩니다.

비트(bit, binary digit)와 바이트(byte)

데이터의 최소 단위를 1 비트라고 합니다.
8개의 비트로 구성된 더 큰 단위는 1 바이트라고 하고, 이는 메모리에 저장되는 최소 단위입니다.

1 바이트는 28=256가지의 수를 표현할 수 있습니다. 10진수로 0~255, 2진수로 00000000~11111111, 16진수로 00~FF까지 나타냅니다.

최상위 비트(MSB), 최하위 비트(LSB)

가장 왼쪽에 있는 비트를 MSB라고 하고,
가장 오른쪽에 있는 비트를 LSB라고 부릅니다

부호 비트

부호가 있는 데이터의 경우, MSB는 부호의 의미를 가지게 됩니다.
0이면 양수
1이면 음수

  • 프로그래밍 언어에서 부호(+, -)를 가지는 데이터는 Signed 데이터 또는 부호가 있는 데이터라 부르고, 부호없이 양수(+)만 나타내는 데이터는 unsigned 데이터 또는 부호가 없는 데이터라 부릅니다.

0b10010100가 부호가 있는 데이터라면, MSB가 1이기 때문에 10진수로 표현하면 음수인 -108이고,
부호가 없는 데이터라면, MSB인 1은 부호를 의미하지 않고, 값을 의미하므로 양수인 148이 됩니다.

바이트 오더링(Byte Ordering)

2 바이트 이상의 데이터는 메모리에 연속적으로 될 때 각 바이트가 메모리에 정렬되는 방식을 바이트 오더링이라고 부릅니다.


바이트 오더링의 두 가지 방식으로 빅 엔디안(Big Endian)리틀 엔디안(Little Endian)이 있습니다

  • 바이트 오더링비트의 순서가 아니라 바이트의 순서를 고려하는 것으로, 바이트비트의 순서는 동일하고 바이트의 순서만 달라집니다.

빅 엔디안 (Big Endian)


가장 왼쪽에 있는(큰) 바이트부터 메모리의 낮은 주소에 저장됩니다.
  • 네트워크 상에서 데이터를 전송할 때는 빅 엔디안 방식을 따릅니다.
  • 대표적으로 SPARC CPU에서 빅 엔디안을 사용합니다.

리틀 엔디안(Little Endian)


가장 오른쪽에 있는(작은) 바이트부터 메모리의 낮은 주소에 저장됩니다.
  • 대표적으로 Intel의 x86, x86-64 CPU에서 리틀 엔디안을 사용합니다.

운영체제 (OS)

응용 프로그램의 동작을 수행하고, 응용 프로그램에게 시스템 자원을 할당하는 등의 복잡한 관리 작업을 수행한다


하드웨어와 사용자/응용 프로그램 사이에서 중재자 역할을 합니다.

운영체제가 하는 일

  • 실행중인 프로그램, 즉 프로세스에 CPU를 번갈아 할당해야 하는데, 이때 어떤 프로세스에 CPU를 할당할지 결정합니다. (CPU 스케줄링)
  • 메모리 공간을 각 프로세스에 분배하고 사용하는 과정을 관리합니다.
  • 컴퓨터가 입출력 장치와 정보를 주고 받는 과정을 관리합니다.

커널(Kernel)

운영체제의 핵심 기능으로 소프트웨어와 하드웨어 간의 커뮤니케이션을 관리합니다.

셸(Shell)

사용자가 운영체제에 명령을 내릴 수 있게 해주는 중간 역할을 합니다.

사용자가 명령어를 입력하면 셸이 이를 해석하여 커널에 전달합니다. 커널은 명령을 수행하고 결과를 셸에 반환하며, 셸은 이를 해석하여 사용자에게 출력합니다.

profile
개발자

0개의 댓글