1.0 시스템 프로그램이란?

김영우 (AvocadoSmasher)·2022년 10월 17일

System Programming

목록 보기
3/6

목표

  1. System program에 대한 정의를 이해하자.
  2. System program의 종류들에 대해 배우자.
    1. Compilation system : 번역 시스템
    2. Operating System : 운영체제
    3. Runtime System
  3. 하드웨어의 고려사항에 대해 배우자.
  4. 추상화의 개념을 이해하자.

System Program의 정의

컴퓨터의 구성.

컴퓨터 H/W의 구성요소

  1. CPU(Centeral Processing Unit)

    중앙처리장치라고 하며 컴퓨터의 두뇌 역할을 한다.

  2. Main Memory

    메인메모리, DRAM이라고 부르며 데이터, 명령어를 저장하는 기억장치이다. CPU와는 BUS로 연결되어 있다.

  3. Mainboard

    주회로가 내장된 보드로 CPU와 MainMemory가 Mainboard위에서 연결되어 있다.

  4. Secondary storage

    보조저장 장치로 HDD, CD 같은것들이 이에 해당한다.

  5. Input device

    마우스와 키보드 같은 입력을 위한 외부 장치들.

  6. Output device

    모니터와 프린터와 같은 출력을 위한 외부 장치들.

  7. Communication Device

    Ethernet 카드, Bluetooth 장치 와 같은 통신 장치들.

DRAM vs Disk

DRAM도 Disk도 둘 다 기억을 위한 장치라면 어떠한 차이가 있을까? 차이점은 다음과 같다.

  1. Speed

    DDR(Double Data Rate)이라는 데이터 전송 속도에서 차이가 난다. 보통 DRAM이 100ns(10^-9) 정도 소요되는 반면에 Disk는 10ms(10^-3)가 걸린다.

  2. Capacity

    용량의 차이가 난다. DRAM은 GB 단위로 사용되지만 Disk는 근래에는 TB 단위로도 사용된다. 즉, Disk가 용량이 몇배는 더 크다.

  3. Volatility : Volatile vs Non-volatile

    휘발성(전원이 공급되어있어야 저장할 수 있다.)이라 하며 DRAM은 휘발성 Disk는 비휘발성을 가진다. 데이터를 저장하는 방법의 차이에 의해 이러한 차이가 있다. (데이터의 영속성을 유지하고 싶다면 disk에 data를 저장해 놓아야 한다.)

    • DRAM 다수의 cell로 구성되어 있고 각 cell은 filp-flop 방식(전하의 양으로 0과 1로 나타냄)으로 데이터를 저장한다. 이러한 전하는 물리학적인 법칙에 의해 시간이 지남에 따라 줄어든다. 즉, DRAM은 결국 데이터를 저장하기 위해서는 전기가 공급되어야 주기적으로 상태를 refresh 해줄 수 있다.
    • Disk 자기 전자장치로 S극인지 N극인지로 0과 1을 구분하고 이러한 자화 방향은 한번 기록하고 나면 꽤 오랜시간동안 유지가 된다. 즉 전원이 공급되지 않아도 한번 저장(자화)되고 나면 오랜시간동안 데이터가 유지된다.
  4. Interface : Byte-unit Interface vs Sector-unit interface

    DRAM : byte단위로 데이터를 읽고 쓴다.

    Disk : Sector단위(512 Byte)로 데이터를 읽고 쓴다.

    이러한 점이 loading이라는 과정을 요구하게 된다.

    • Why Loading?? CPU가 Disk에 있는 데이터를 읽어와야 한다고 생각해보자. CPU는 4byte(32bit) 혹은 8byte(64bit)로 데이터를 읽는다. 즉, CPU는 byte단위로 데이터를 읽어 올 수 있기에 DRAM으로 부터 데이터를 읽어 올 수 있지만 Disk로 부터 바로 읽어올수는 없다. 그렇기에 Disk에 있는 데이터 접근하기 위해 Sector 단위의 데이터를 DRAM으로 먼저 올려야하고 이러한 과정을 loading이라고 한다.

Hardware Components

  1. PC ? Smart Phone??

    이 둘은 컴퓨터 구조 측면에서 보면 똑같다. 하지만 실제로 사용하고 있는 구성요소들이 조금씩 다르다.

  • 스마트폰의 하드 구성.
    • CPU ARM(Advanced RISC Machine) 기반 멀티코어. PC에서 사용되는 CPU는 CISC 기반
    • Memory : LPDDR(Low Power DDR), SRAM
    • Storage : NANA flash
    • Input : 터치스크린. 센서들, 음성 인식, 바이오 센서.
    • Output : LCD,LED, Sound, Buzzer
    • Communication : WLAN, LTE, USB, GSM 등등…
  1. 왜 이런 차이가 있을까?

    서로 요구사항이 다르기 때문이다.

    모바일 디바이스는 저전력으로 동작해야한다. 그렇기에 RISC기반 CPU를 사용하고 메모리로 DRAM이 아니라 LPDDR을 사용한다.

    • RISC Reduced Instruction Set Computing의 약자로 CPU가 이해할 수 있는 명령어의 수를 줄인 것이다. 그렇기에 CPU를 Compact하게 만들 수 있고 그렇기에 에너지 효율이 좋다.
    • CISC Complex Instruction Set Computing의 약자로 상대적으로 많은 명령어들을 제공한다.
    • LPDDR 입력 전압이 DRAM보다 낮고 Deep power down 모드를 지원하고 Refresh를 선택적으로 한다(필요시 하고 불필요시 약간 늦게 하는식).

    휴대성에서도 차이가 난다. PC와 다르게 스마트폰은 우리와 일상에서 계속 들고다니며 사용해야 하기에 휴대성이 좋아야한다. 그렇기에 보조기억장치로 Disk대신 Flash 메모리를 사용하게 된다.

    • Flash Flash 메모리는 Disk와 달리 모터도 없고 기계적인 파트가 적기에 충격에도 강하고 가볍다.
    • Disk 원판, 헤드, 센서, 모터 등과 같은 구성이 충격에 약하기에 이러한 이슈로 다니기에 부담이 매우 크다. 게다가 무겁다…

    추가적으로 스마트폰은 사용자의 편의를 위해 여러 서비스(터치, 지문, 흔들기, 음성인식 등…)를 제공하는데 그렇기에 여러 input, output, communication 장치들을 요구하게 된다.

Software Components

소프트웨어는 응용 프로그램과 시스템 프로그램으로 나뉜다.

  1. Application program

    특정한 목적을 위한 프로그램.

  2. System program

    응용프로그램들을 위한 computing 환경을 제공하는것을 시스템 프로그램이라고 하고 이러한 시스템 프로그램들은 하드웨어와 밀접하게 관계되어 있다.

    또한 시스템 프로그램은 추상화를 제공하는데 이는 추후에 알아보도록 하자.

    종류는 다음과 같다.

profile
Android Studio 공부 중

0개의 댓글