본문 바로가기
Books/한 권 컴퓨터 구조와 프로그래밍 ✔️

[한 권 컴퓨터 구조와 프로그래밍] 5장 - 컴퓨터 아키텍처와 운영체제

by Aaron-Kim 2022. 8. 11.

컴퓨터는 어떻게 프로그램과 메모리를 조직적으로 관리할까

기본적인 구조 요소들

  - 프로세스 코어

    - CPU(코어)

  - 마이크로프로세서와 마이크로컴퓨터

    - 마이크로프로세서: 메모리와 I/O가 프로세서 코어와 같은 패키지에 들어 있지 않는 프로세서

    - 마이크로컴퓨터: 모든 요소를 한 칩안에 패키징

프로시저, 서브루틴, 함수

  - 함수/프로시저/서브루틴: 코드를 재사용하는 주요 수단

  - 함수로 들어간 위치가 바로 프로그램 카운터의 값

스택

  - 재귀 함수가 제대로 작동하기 위해서는 반환 주소를 여럿 지정할 수 있어야 함

  - DFS

  - BFS

인터럽트

  - 순서도는 작업이 이뤄지는 순서를 표현하는 다이어그램

  - 실행 중인 프로그램을 잠깐 중단 (interrupt)

    - 적절한 신호가 들어오면 CPU 실행을 잠깐 중단

    - 현재 실행 중인 프로그램을 잠시 중단시키고 interrupt handler 실행 시작

  - 고려사항

    - 응답 시간을 고려해서 인터럽트를 정해진 시간 안에 끝내야 함

    - 인터럽트를 서비스하고 나중에 다시 돌아오기 위해 현재 상태를 저장할 방법 필요

      - 인터럽트 벡터는 메모리 위치를 가리키는 포인터 (인터럽트 핸들러 주소 저장하는 메모리 주소)

상대 주소 지정

  - 상대 주소 지정을 이용하면 프로그램을 메모리의 원하는 위치로 자유롭게 재배치 가능

메모리 관리 장치

  - MMU (Memory Management Unit)

  - 프로그램은 가상 주소를 사용해 작성되고, MMU는 가상 주소를 물리 주소로 변환

  - 여러 프로그램의 가상 메모리 중 일부가 같은 물리 메모리를 함께 사용하는

     공유 메모리 기능 제공 가능

가상 메모리

  - OS는 MMU를 사용해 사용자 프로그램에게 가상 메모리 제공

  - 요청 받은 메모리가 사용 가능한 메모리의 크기보다 크면 OS가 디스크로 옮김 (Swap Out)

    - 반대 과정은 Swap In

시스템 공간과 사용자 공간

  - 트랩이나 시스템 콜이라고 부르는 특별한 명령어를 통해

    사용자 모드에서 실행 중인 프로그램이 시스템 모드 프로그램(운영체제)에게 요청을 보낼 수 있음

메모리 계층과 성능

  - 캐시 메모리

코프로세서

  - 직접 메모리 접근 (DMA): 데이터 복사만 담당

메모리상의 데이터 배치

  - 스택은 아래로, 힙은 위쪽으로 쌓이고 충돌을 방지하도록 메모리 배치 중요

프로그램 실행

  - MMU가 여러 프로그램이 같은 라이브러리를 공유할 수 있도록 해줌

  - 실제로는 런타임 라이브러리에 있는 명령어가 먼저 실행되고

     나중에 엔트리 포인트의 명령어가 실행됨

메모리 전력 소비

  - 데이터를 메모리에서 이리저리 옮기면 전력 소비 발생

  - 모바일 장치에서 전력 소비 이슈가 중요

정리

반응형

댓글