[C++] 컴퓨터 프로그램의 작동과정

chxxrin·2024년 7월 24일
0

C++

목록 보기
1/22

컴퓨터 프로그램의 작동과정

우리가 코드에 hello world를 입력해놨죠?
그러면 이 문자열은 코드가 빌드할 때 실행파일 어딘가에 함께 저장이 된다
실행파일은 하드디스크에 저장이 된다.
그래서 hello world라는 문구는 실행파일에 포함된 상태로 하드디스크에 일단 저장이 된다.
프로그래머나 사용자가 이 실행파일을 실행을 시키겠다라고 운영체제에게 요청을 하게 되면 운영체제는 하드디스크로부터 실행파일을 다시 읽어들여서 메모리에 집어넣는다.
그리고 운영체제는 다시CPU에게 명령을 내린다. 메모리의 어떤 위치에 hello world 라는 프로그램이 있으니까 그거를 읽어서 시키는대로 한줄한줄 실행시켜라 라고 명령한다. 그러면 CPU는 운영체제가 시키는대로 메모리에 있는 프로그램을 한줄 한줄 명령어를 하나하나 실행시키게 되고, 그 명령어중에 hello world를 화면에 출력해라 라는 명령이 있으면 화면에 출력을 하게 된다.

메모리 레이아웃

레이아웃 : 집의 도면, 메모리 안에 어떤 데이터가 어떤 방식으로 저장되는지를 설명

  • Text 영역 : 우리가 작성한 프로그램 자체(CPU에게 명령을 내리는 명령어)
  • Data 영역 : 명령어가 아니라 데이터에 해당
  • Heap 영역 : 미리 그 크기를 알 수 없는 메모리는 heap자료구조 사용, 100명이면 100명의 메모리만, 1000명이면 1000명의 메모리만 사용하는 동적 메모리 사용, 컴퓨터 사양에 따라 무제한, 운영체제가 가상으로 아주 커다란 메모리가 있는것처럼 관리하기 때문에
  • Stack 영역 : 프로그램이 실행될 때 메모리가 이정도 필요하겠네~하고 미리 잡아놓는 부분
    , 이 때 stack 자료구조를 사용함, 사용할 수 있는 최대 용량이 제한되어 있으므로 재귀호출을 잘못사용해서 너무 많이 사용하면 stack overflow 발생, 정적메모리
    -> 메모리를 Heap과 Stack의 두 부분으로 나누어 저장한다
    -> 전화번호부 프로그램 중 최대 회원수가 100명이라면 stack메모리를 사용
    -> 하지만 프로그램이 100명일지 1000명일지 모른다면 heap을 사용

0개의 댓글

관련 채용 정보