Below Your Program
프로그램이 실행되기 위해 필요한 하드웨어와 소프트웨어의 계층 구조를 의미한다.
컴퓨터 내부의 소통을 위해 위 그림과 같이 구조화가 되어 있음을 알 수 있다.
프로그램은 일련의 기계의 명령어로 구성되어 있으며, 이 명령어 들은 컴퓨터 내부의 기계어로 변환되어 실행된다.
그런데 이 기계 명령어들을 실행하기 위해서는 하드웨어 구성 요소와 소프트웨어 구성 요소가 필요하다.
즉, 프로그램 내에 어떻게 소통을 하는지 Application software, System software, Hardware를 통해 알아보자.
Application software
일상에서 흔하게 접할 수 있는 프로그램(워드 프로세서, 미디어 플레이어 등의 프로그램)의 일종이다.
Application software의 특징은 high-lebel language(고급 언어)로 작성이 된다.
*고급 언어란 사람이 이해하기 쉬운 프로그래밍 언어를 말한다. 예를 들어 C, Java, Python등이 있다.
System software
컴퓨터의 하드웨어를 관리,제어 하며 다른 소프트웨어에 기본적인 서비스를 제공하는 프로그램이다.
System software는 컴퓨터의 성능과 안정성을 높이고, 사용자와 하드웨어 사이의 인터페이스 역할을 한다.
System software(시스템 소프트웨어) 종류에는 OS, 장치 드라이버, Compiler(컴파일러), 유틸리티가 있다.
대표적(MK.5th기준)으로 Compiler(컴파일러)와 OS
- Compiler(컴파일러) : high-lebel language(고급 언어)로 작성된 프로그램을 Hardware가 이해할 수 있는 기계어로 번역한다.
- OS : Application software와 Hardware를 이어주는 역할이다. 보통 input/output(입/출력)을 처리 해주고, 메모리와 저장소 관리, 작업을 예약하고 자원을 공유한다.
Hardware
프로세서(Processor), 메모리(Memory), I/O Controller 등 컴퓨터의 물리적인 부품이다.
*I/O Controller : USB단자, HDMI단자 등