-  -

과 목 명

시스템소프트웨어

시스템 소프트웨어 6가지의

개념과 역할 정리

과 제 보 고 서

목      차

Ⅰ. 서론	2

Ⅱ. 시스템 소프트웨어의 개념과 분류	2

Ⅲ. 시스템 소프트웨어 6가지의 역할	3

1. 어셈블러

2. 매크로 프로세서

3. 링커

4. 로더

5. 트랜스레이터

6. 운영체제

Ⅳ. 시스템 소프트웨어 간의 상호관계	5

Ⅴ. 결론	6

Ⅵ. 참고문헌	6

Ⅰ. 서론

컴퓨터 시스템은 하드웨어와 이를 효율적으로 활용할 수 있도록 지원하는 소프트웨어의 유기적 결합으로 동작한다. 이 가운데 시스템 소프트웨어는 사용자가 작성한 응용 프로그램을 하드웨어가 이해할 수 있는 형태로 변환하고, 여러 프로그램 모듈을 결합하여 실행 가능한 형태로 만들며, 나아가 하드웨어 자원을 관리하는 등 컴퓨터 시스템 전반의 기반을 이루는 소프트웨어를 의미한다. 시스템 소프트웨어가 없다면 사용자가 작성한 고급언어 프로그램은 물리적인 컴퓨터 하드웨어에서 실행될 수 없다.

본 과제에서는 대표적인 시스템 소프트웨어로 분류되는 어셈블러, 매크로 프로세서, 링커, 로더, 트랜스레이터, 운영체제의 여섯 가지 구성요소를 살펴보고, 각각이 프로그램의 작성부터 실행에 이르는 과정에서 어떠한 역할을 수행하는지 정리하고자 한다.

Ⅱ. 시스템 소프트웨어의 개념과 분류

시스템 소프트웨어는 크게 언어 번역기(language translator) 계열과 프로그램 실행 지원 도구, 그리고 자원 관리 소프트웨어로 나누어 볼 수 있다. 어셈블러·매크로 프로세서·트랜스레이터는 사람이 작성한 프로그램을 컴퓨터가 실행할 수 있는 형태로 변환하는 역할을 담당하며, 링커와 로더는 변환된 코드를 실제로 메모리에 적재하여 실행 가능한 상태로 만드는 역할을 담당한다. 운영체제는 이렇게 실행되는 프로그램들이 CPU, 메모리, 입출력 장치 등의 하드웨어 자원을 효율적으로 사용할 수 있도록 전반을 관리하는 소프트웨어이다. 이 여섯 가지 시스템 소프트웨어는 각기 독립적인 기능을 수행하면서도, 하나의 프로그램이 작성되어 실행되기까지의 전체 흐름 속에서 유기적으로 연결되어 있다.

Ⅲ. 시스템 소프트웨어 6가지의 역할

1. 어셈블러(Assembler)

어셈블러는 어셈블리어로 작성된 프로그램을 기계어(목적 코드, object code)로 변환하는 시스템 소프트웨어이다. 어셈블리어의 명령어와 기계어 명령어는 대체로 1대1 대응 관계를 가지므로, 어셈블러는 소스 프로그램의 각 명령어를 대응되는 기계어 코드로 치환하고, 심벌(레이블)이 가리키는 실제 메모리 주소를 계산하여 배정하는 작업을 수행한다. 이 과정에서 심벌 테이블(symbol table)을 구축하여 프로그램 내에서 사용된 변수명이나 레이블의 주소를 관리하며, 2회의 스캔(2-pass 방식)을 통해 전방 참조 문제를 해결하는 방식이 널리 사용된다.

2. 매크로 프로세서(Macro Processor)

매크로 프로세서는 프로그램 내에서 반복적으로 사용되는 명령어 집합을 하나의 매크로로 정의해 두고, 프로그램에서 해당 매크로가 호출될 때마다 정의된 명령어들로 치환(확장, expansion)해 주는 시스템 소프트웨어이다. 매크로 프로세서는 일반적으로 어셈블러보다 먼저 동작하는 전처리기(preprocessor) 형태로 구현되며, 매크로 정의를 저장하는 매크로 정의 테이블과 실제 호출을 처리하는 매크로 확장 과정을 통해 반복적인 코드 작성을 줄이고 프로그램의 가독성과 재사용성을 높이는 역할을 한다.

3. 링커(Linker)

링커는 여러 개의 목적 모듈(object module)을 하나의 실행 가능한 프로그램으로 결합하는 시스템 소프트웨어이다. 대규모 프로그램은 여러 개의 소스 파일로 나누어 개별적으로 컴파일 또는 어셈블되는 경우가 많은데, 이렇게 생성된 개별 목적 모듈들은 서로 다른 모듈에서 정의된 변수나 함수를 참조하는 외부 참조(external reference)를 포함하고 있다. 링커는 이러한 외부 참조를 실제 주소로 연결(재배치, relocation)하고, 여러 모듈을 하나의 통합된 실행 파일로 결합하는 역할을 수행하며, 필요한 라이브러리 모듈을 함께 결합하는 기능도 담당한다.

4. 로더(Loader)

로더는 링커에 의해 생성된 실행 파일을 보조기억장치로부터 주기억장치(메모리)로 적재하고, 실행을 시작할 수 있도록 준비하는 시스템 소프트웨어이다. 로더는 프로그램이 실제로 적재될 메모리 주소를 결정하고 프로그램 내의 상대 주소를 절대 주소로 변환하는 재배치 작업을 수행하며, 필요한 경우 실행 도중 동적으로 라이브러리를 적재하는 동적 로딩(dynamic loading) 기능을 지원하기도 한다. 로더의 동작에 따라 프로그램이 실제 메모리 공간에서 어떻게 배치되고 실행되는지가 결정된다.

5. 트랜스레이터(Translator)

트랜스레이터는 하나의 프로그래밍 언어로 작성된 프로그램을 다른 언어(주로 기계어 또는 저급언어)로 변환하는 시스템 소프트웨어를 통칭하는 용어로, 대표적으로 컴파일러(compiler)와 인터프리터(interpreter)가 이에 해당한다. 컴파일러는 고급언어로 작성된 소스 프로그램 전체를 한 번에 목적 코드로 변환한 뒤 실행하는 방식인 반면, 인터프리터는 소스 프로그램의 명령문을 한 줄씩 해석하면서 즉시 실행하는 방식이라는 차이가 있다. 앞서 살펴본 어셈블러 역시 어셈블리어를 기계어로 변환한다는 점에서 넓은 의미의 트랜스레이터에 포함시켜 이해할 수 있다.

6. 운영체제(Operating System)

운영체제는 컴퓨터 하드웨어와 사용자 사이에서 CPU, 메모리, 파일, 입출력 장치 등 컴퓨터의 자원을 효율적으로 관리하고 사용자에게 편리한 실행 환경을 제공하는 시스템 소프트웨어이다. 앞서 설명한 어셈블러·매크로 프로세서·링커·로더·트랜스레이터가 특정 단계의 기능에 특화된 소프트웨어라면, 운영체제는 이러한 프로그램들이 실행되는 전체 환경을 총괄하는 역할을 수행한다. 프로세스 관리, 기억장치 관리, 파일 시스템 관리, 입출력 장치 관리 등이 운영체제의 대표적인 기능이며, 결과적으로 로더에 의해 메모리에 적재된 프로그램이 실제로 CPU를 할당받아 실행되는 과정 역시 운영체제의 관리 하에 이루어진다.

Ⅳ. 시스템 소프트웨어 간의 상호관계

프로그래머가 매크로를 활용하여 어셈블리어 프로그램을 작성하면, 매크로 프로세서가 먼저 매크로 호출 부분을 실제 명령어들로 확장한다. 확장된 프로그램은 어셈블러에 의해 기계어로 이루어진 목적 모듈로 변환되며, 다른 모듈과 함께 작성된 경우 링커가 이들 목적 모듈을 결합하고 외부 참조를 해결하여 하나의 실행 파일을 만든다. 이렇게 만들어진 실행 파일은 로더에 의해 주기억장치에 적재되고 실제 메모리 주소로 재배치된 뒤 실행이 시작되며, 이 모든 실행 과정은 운영체제의 프로세스 관리와 자원 관리 하에서 이루어진다. 한편 고급언어로 작성된 프로그램의 경우에는 어셈블러 대신 컴파일러 또는 인터프리터와 같은 트랜스레이터가 매크로 프로세서와 어셈블러의 역할을 포괄적으로 수행하게 된다. 이처럼 여섯 가지 시스템 소프트웨어는 프로그램의 작성부터 실행에 이르는 하나의 연속된 흐름 속에서 순차적·유기적으로 맞물려 동작한다.

Ⅴ. 결론

어셈블러, 매크로 프로세서, 링커, 로더, 트랜스레이터, 운영체제는 각각 프로그램의 변환·결합·적재·실행 관리라는 서로 다른 단계를 담당하지만, 궁극적으로는 사용자가 작성한 프로그램을 컴퓨터 하드웨어에서 실행 가능하도록 만든다는 공통의 목표를 향해 유기적으로 협력하는 시스템 소프트웨어이다. 이 여섯 가지 요소의 역할과 상호관계를 이해하는 것은 프로그램이 작성된 순간부터 실제로 실행되어 결과를 산출하기까지의 전체 과정을 체계적으로 파악하는 데 필수적이며, 이후 컴파일러 구조나 운영체제 심화 학습을 위한 중요한 기초가 된다.

Ⅵ. 참고문헌

Beck, L. L. (1996). System Software: An Introduction to Systems Programming (3rd ed.). Addison-Wesley.

Silberschatz, A., Galvin, P. B., & Gagne, G. (2018). Operating System Concepts (10th ed.). Wiley.

Stallings, W. (2017). Operating Systems: Internals and Design Principles (9th ed.). Pearson.

⚠ 주의사항

본 자료는 학점은행제 과제 참고용 샘플입니다.

위 학습 자료를 그대로 제출할 경우 모사율(표절률)로 인하여 성적 불이익 또는 해당 과목 0점 처리될 수 있습니다.

반드시 본인의 언어로 수정·재작성하여 제출하시기 바랍니다.

📌 과제 수정이 어려우신가요?

국민원격교육관리센터에서 1:1 과제 수정 도움을 드립니다. 아래 연락처로 문의해 주세요.

📞 전화: 050-7878-7044

💬 카카오톡: @국민원격교육관리센터

🕐 운영시간: 평일 10:00–19:00

🌐 웹사이트: korealms.co.kr