컴퓨터로 1+2를 계산해보자! 0편 무작정 질문 리스트 만들기

송명규·2023년 8월 24일
0

오늘도 심심하게 강화학습 코드를 짜던 도중, 갑자기 궁금한게 생겼다.
? 근데 컴퓨터는 도대체 어떻게 1+2를 계산하는걸까?
그래서 알아보기로 했다.

먼저 과정을 서술한 후 각 질문점마다 하나씩 글을 쓰려고 한다.
렛츠 꼬우

(1) 프로그램 로딩:

운영 체제(운영 체제?)는 파이썬 인터프리터를 메모리에 로드(메모리에 로드? 어떻게?)는하고 실행합니다.
파이썬 프로세스는 운영 체제로부터 별도의 주소 공간(주소공간?)는을 할당(어떻게 할당?)는받습니다.

(2) 코드 해석과 컴파일:

파이썬 인터프리터(파이썬 인터프리터? 왜?)는는 코드를 읽고 바이트 코드로 컴파일(컴파일? 어떤 형식으로? 왜?)는합니다.
바이트 코드는 파이썬의 가상 머신인 PVM(파이썬 가상 머신)(PVM? 다른 VM들은 종류가 뭐가있지?)는에서 실행됩니다.

(3) 스레드 스케줄링:

코드 실행은 일반적으로 메인 스레드(스레드?)는에서 발생합니다.
운영 체제의 스케줄러(운영체제의 스케줄러?)는는 CPU 시간(cpu 시간?)는을 프로세스와 스레드에 할당합니다.

(4) CPU에서 연산 실행:

1와 2의 덧셈 연산은 CPU의 ALU(Arithmetic Logic Unit)(ALU?)는에서 발생합니다.
32비트 또는 64비트 연산(32비트와 64비트는 뭐가 다르지?)는, 종속적인 시스템 아키텍처(종속적인? 안 종속적인것은 뭐지? 시스템 아키텍처란?)는에 따라 연산이 수행됩니다.

(5) 메모리 액세스:

상수 5와 8은 CPU 레지스터(CPU 레지스터?)는 또는 캐시(캐시?)는에 로드됩니다.
연산 결과는 레지스터에 저장되고 필요에 따라 메모리에 쓰일 수 있습니다.

(6) 함수 호출 메커니즘:

print 함수가 호출될 때, CPU는 함수의 주소로 점프(점프?)는하고, 인자를 스택(스택? 어떻게 푸시?)는에 푸시합니다.

(7) 시스템 호출 및 입출력:

print 함수는 최종적으로 표준 출력에 값을 쓰는 시스템 호출(시스템 호출?)는을 만듭니다.
운영 체제는 시스템 호출을 처리하고, 적절한 드라이버(적절한 드라이버?)는를 통해 출력을 화면에 표시합니다.

(8) 프로세스 종료 및 리소스 회수:

프로세스는 종료(프로세스 종료?)는되고, 운영 체제는 할당된 리소스를 회수(리소스 회수?)는합니다.

정리하면

  • 운영 체제
  • 스케줄러(운영체제의 스케줄러?)
  • 메모리(메모리에 로드? 어떻게?)
  • 주소공간(주소공간?), (어떻게 할당?)
  • 파이썬 인터프리터(파이썬 인터프리터? 왜?)
  • 컴파일(컴파일? 어떤 형식으로? 왜?)
  • PVM(PVM? 다른 VM들은 종류가 뭐가있지?)
  • 스레드(스레드?)
  • ALU(ALU?)
  • 32비트와 64비트(32비트와 64비트는 뭐가 다르지?)
  • 종속적인 시스템 아키텍쳐(종속적인? 안 종속적인것은 뭐지? 시스템 아키텍처란?)
  • CPU 레지스터(CPU 레지스터?)
  • 캐시(캐시?)
  • CPU는 함수의 주소로 점프(점프?)
  • 인자를 스택(스택? 어떻게 푸시?)
  • 시스템 호출(시스템 호출?)
  • 적절한 드라이버(적절한 드라이버?)
  • 프로세스는 종료(프로세스 종료?)
  • (리소스 회수?)

로 총 19개의 질문에 답하는 서사를 쓰려고 한다.

물론 이 질문들에 답하는 것이 나의 개발 인생에 큰 도움이 되거나, 취업에 유리해지는가? 라는 질문에는 당연히 "아니요"일 것이라고 생각한다.

하지만 재밋잖아 ㅋㅋ 그래서 하나씩 하나씩 정리해보면서 공부하려고 한다.

profile
안녕하세요

0개의 댓글