상세 컨텐츠

본문 제목

[컴퓨터 구조] 1.3 Below Your Program

전공/컴퓨터 구조

by blacksmith16 2020. 10. 25. 12:02

본문

우리가 흔히 접하는 프로그램은 다양한 라이브러리를 사용하여 만들어졌고 사용된 라이브러리의 코드를 제외하더라도 짧게는 수십 줄에서 많게는 수백 만 줄의 코드로 이루어져 있습니다. 그리고 그 코드들은 대부분 printf("Hello, World!\\n");와 같이 사람의 언어에 가깝습니다. 반면, 컴퓨터 하드웨어는 대부분의 사람들이 알고 있듯 0 또는 1의 전기 신호로 작업을 처리합니다.

이 챕터에서는 응용 프로그램과 그 뒤에서 일하는 친구들을 알아보고 C, Java 등의 코드가 기계어와 어떤 관계가 있는지 살펴봅니다.

Below Your Program

Application Software

  • High-Level Language로 작성된 소프트웨어를 말합니다.
  • 흔히 접하는 프로그램이 대부분 여기에 속합니다.
    • 워드 프로세서
    • 지뢰찾기
    • 웹 브라우저
    • 애플리케이션..

System Software

  • HW와 Application SW 중간에 위치해 있다.
  • 대표적으로 OS와 Compiler가 있다.

Compiler

  • High-Level Language를 기계어로 변환하는 프로그램

Operating System(OS)

  • 사용자의 프로그램과 하드웨어를 이어주는 프로그램
  • 대표적으로 Linux, Mac OS, Windows가 있다.
  • 주요 기능
    • 기본적인 Input/Output을 다룸
    • 메모리, 기억 장치 관리
    • 작업 스케줄링(Ex - 명령 처리 순서/방식 결정)
    • 자원 공유 관리(Ex - 같은 데이터에 동시에 접근할 때의 처리)

Hardware

  • Processor, Memory, I/O(Input/Output) Controllers 등의 ㄹㅇ 부품들

Levels of Program Code

HLL ---(Compiler)---> Assembly ---(Assembler)---> Machine Language

High-Level Language(HLL)

  • Problem Domain에 가장 가까운 추상화 단계이다
  • 생산성과 이식성 (다른 환경에서도 잘 동작) 을 제공함
  • C, Java, C++, Python 등

Assembly Language

  • 명령어의 텍스트적 표현

Machine Language

  • 하드웨어적 표현
  • 2진수 : Binary digits => Bits
  • 부호화 된 명령어와 데이터

관련글 더보기

댓글 영역