이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다!
Below Your Program
우리는 프로그램을 사용할 줄은 알지만, 내부에서 어떤 일을 하는 지는 모른다.
Application Software를 구성하는 코드를 Hardware는 그대로 이해할 수 없다. 따라서 High-Level operations를 Simple Computer Instructions로 번역하는 과정이 필요하다. 프로그램 내에 어떻게 소통이 이뤄지는지 확인해보자.
Application Software
우리가 흔히 접하고 사용하는 프로그램( 워드 프로세서, 데이터베이스, 웹 브라우저 등 대부분의 프로그램 )을 말한다.
응용 프로그램(Applications software)은 High Level Language로 작성된다. 모두 다양한 라이브러리를 사용해 만들어졌고, 라이브러리 내부로 들어가면 더 코드가 길어지겠지만, 제외하고 보더라도 수십~수백만 줄의 코드로 이뤄져 있다.
System Software
위의 그림에서도 알 수 있듯이, Hardware와 Application Software의 중간에 위치한다.
=> 중간에서 Application Software가 Hardware에서 작동하도록 도와준다. (인터페이스 역할을 한다.)
System Software에는 대표적으로 OS와 Compiler가 있다. (교재 기준)
OS, Compiler
나눠서 보면
1. OS는 Application Software와 Hardware를 이어준다. 기본적으로 Input/Output을 다루고, 작업 스케줄링, 메모리 관리, 기억 장치 관리, 자원 공유 관리 등의 기능을 한다.
2. Compiler는 High-Level Language를 Hardware가 이해할 수 있는 기계어로 번역해준다.
Hardware
하드웨어는 우리가 아는 Processor, Memory, I/O Controllers, GPU와 같은 컴퓨터의 물리적 부품을 의미한다.
'컴퓨터 공학 Computer Engineering > 컴퓨터 구조 Computer Architecture' 카테고리의 다른 글
[컴퓨터 구조] 컴퓨터의 주요 구성요소 5가지 (0) | 2021.10.03 |
---|---|
[컴퓨터 구조] High Level Language to the Language of Hardware (0) | 2021.10.03 |
[컴퓨터 구조] 무어의 법칙이란? (Moore's Law) (0) | 2021.09.30 |