열정 실천

시스템 프로그래밍이란?? 본문

CS/시스템 프로그래밍

시스템 프로그래밍이란??

구운오니 2022. 9. 19. 00:07

 

시스템 프로그래밍이란?

 

 

컴퓨터는 크게 하드웨어소프트웨어로 나누어지는데,

하드웨어에는 CPU, 메모리, I/O(입출력)장치로

소프트웨어어플리케이션 프로그램시스템 프로그램으로 구성된다.

 

 

어플리케이션 프로그램은 특정한 기능을 수행하고

시스템 프로그램은 이 어플리케이션과 하드웨어를 연결시켜준다.

 

우리가 지금까지 개발할 때는 코드를 치고 컴파일을 하면 그 과정은 생략하고 바로 결과를 볼 수 있었다.

이는 추상화가 잘 이루어져 있기에 가능했던 것이고  

실제로는 시스템 프로그램에 의해 컴파일되고, 메모리와 CPU에 파일을 옮겨지고, 

실제 process로써 돌아가게 된다. 

우리는 이제 추상화로 숨겨져 있는 부분 즉, 시스템 프로그램의 원리에 대해 공부하고자 한다!!

 

 

 

 

컴퓨터 시스템의 구성요소

 

컴퓨터 시스템의 범위는 "하드웨어 + 운영체제" 이다.

 

보통 CPU와 캐시를 묶어서 하드웨어(컴퓨터 구조)라고하고, 메인 메모리와 하드디스크를 묶어 운영체제라 한다. 

 

즉, 시스템 프로그램은 하드웨어와 운영체제를 기반으로 하는 시스템에서 동작하는 프로그램이다. 

 

어플리케이션 프로그램을 개발할 때에는 프로그래밍 언어만 알면 되지만,

시스템 프로그램을 개발할 때는 하드웨어와 운영체제의 구조를 잘 파악하고 있어야 한다. 

 

 

 

 

 

시스템 프로그램의 종류 

 

시스템 프로그램은 

컴파일 시스템, 운영체제 시스템, 런타임 시스템

이렇게 3가지로 나뉜다. 

 

나중에 각각의 내용을 자세하게 다룰 예정이지만 간단하게만 소개하자면

 

컴파일 시스템은 우리가 작성하는 소스코드를 

Editer > Compiler > Assembler > Linker > loader 를 거쳐 

최종적으로 실행 가능한 파일로 만들어준다. 

 

운영체제 시스템은 파일 시스템, 스케쥴링, 하드웨어 자원관리 등등 컴퓨터가 돌아가는 데에 

필요한 전체적인 동작을 제어해주는 시스템이다. 

 

런타임 시스템은 라이브러리 함수, 쉘, 데이터베이스 등 어플리케이션이 도는 데에 

필요한 추가적인 기능을 제공해주는 시스템이다.

'CS > 시스템 프로그래밍' 카테고리의 다른 글

시스템 프로그래밍 1) 컴파일 시스템  (1) 2022.10.03