DevGang
[OS-02] 시스템 소프트웨어 본문
1. 시스템 소프트웨어 개념
- 시스템 소프트웨어는 시스템 전체를 작동시키는 프로그램으로, 프로그램을 주기억장치에 적재시키거나 인터럽트 관리, 장치 관리, 언어 번역 등의 기능을 담당
- 시스템 소프트웨어의 대표적인 프로그램으로 운영체제가 있으며, 그 외에는 언어 번역 프로그램, 매크로 프로세서, 링커, 라이브러리, 로더 등이 있음
2. 시스템 소프트웨어의 구성
1) 제어 프로그램
- 감시 프로그램(Supervisor Program) : 시스템의 모든 동작 및 상태를 관리하고 감독하는 프로그램으로, 운영체제의 가장 중요한 역할을 담당
- 작업 제어 프로그램(Job Control Program) : 어떤 업무를 처리하고 다른 작업으로의 이행을 자동적으로 처리하기 위한 준비 및 작업의 연속 처리를 위한 스케줄링, 시스템의 자원 할당을 담당
- 데이터 관리 프로그램(Data Management Program) : 주기억장치와 보조기억장치 간의 자료 이동, 파일의 조작 및 처리, 입출력 자료들과 프로그램 간의 연결 등 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리하는 프로그램
2) 처리 프로그램
- 언어 번역 프로그램(Language Translate Program) : 어셈블러, 컴파일러, 인터프리터
- 서비스 프로그램(Service Program) : 연결 편집기, 라이브러리
- 문제 프로그램(Problem Program) : 사용자가 작성한 프로그램
3. 언어 번역 프로그램
1) 어셈블리어(Assembly Language)의 개요 : 어셈블리어는 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 기계어와 1:1로 대응시켜 코드 화한 기호 언어
- 프로그램에 기호화된 명령 및 주소를 사용
- 어셈블리어의 기본 동작은 동일하지만 CPU마다 사용되는 어셈블리어가 다를 수 있음
- 기계어와 비교하여 읽기 쉽고 프로그램에 데이터를 사용하기 쉬움
- 기계어로 번역하는 과정이 필요
2) 어셈블러(Assembler) : 어셈블러는 어셈블리어로 작성된 원시 프로그램을 기계어로 된 목적 프로그램으로 번역하는 언어 번역 프로그램
- 단일 패스 어셈블러와 이중 패스 어셈블러가 있음
- 두 개의 Pass로 구성하면 기호를 정의하기 전에 사용할 수 있어 프로그램 작성이 용이함
3) 컴파일러(Complier)
- 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후 링킹 작업을 통해 실행 가능한 프로그램을 생성
- 번역 시간이 오래 걸리지만 실행 속도가 빠름
- 사용언어에는 FORTRAN, COBOL, C, C++ 등이 있음
4) 인터프리터(Interpreter)
- 프로그램이 직접 실행되므로 목적 프로그램이 생성되지 않음
- 번역 속도는 빠르지만 실행 속도가 느림
- 사용언어에는 BASIC, LISP, APL 등이 있음
- 한 줄 단위로 번역과 실행을 함
- 원시 프로그램의 변화에 대한 반응이 빠름
4. 링커(Linker)와 로더(Loader)
1) 링커(Linker)
- 링커는 언어 번역 프로그램이 생성한 목적 프로그램과 라이브러리, 또 다른 실행 프로그램 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템, 소프트웨어이며 연결 편집기라고도 함
2) 로더(Loader)
- 로더는 프로그램을 실행시키기 위해 보조기억장치로부터 컴퓨터 주기억장치에 프로그램을 적재하는 시스템 소프트웨어
3) 로더의 기능
- 할당(Allocation) : 프로그램을 실행하기 위해 기억장치 내에 옮겨 놓을 공간을 확보하는 기능
- 연결(Linking) : 프로그램을 할당된 주소에 연결하는 기능
- 재배치(Relocation) : 보조기억장치에 저장된 프로그램이 사용하는 주소들을 할당된 기억 장소의 실제 주소로 배치시키는 기능
- 적재(Loading) : 프로그램을 할당된 기억 공간에 실제로 옮기는 기능
4) 로더의 종류
- Complie And Go Loader
- 언어 번역 프로그램이 로더의 기능까지 수행하는 방식
- 연결 기능은 수행하지 않고 할당, 재배치, 적재 작업을 모두 언어 번역 프로그램이 담당
- 절대 로더(Absolute Loader)
- 목적 프로그램을 기억 장소에 적재시키는 기능만 수행하는 로더
- 할당 및 연결 작업은 프로그래머가 수행하며, 재배치는 언어 번역 프로그램이 담당
- 직접 연결 로더(Direct Linking Loader)
- 로더의 기본 기능 4가지를 모두 수행하는 일반적인 로더(재배치 로더, 상대 로더)
5) 로더의 실행 순서
- 할당(Allocation) - 연결(Linking) - 재배치(Relocation) - 적재(Load)
5. 매크로(Macro)와 매크로 프로세서(Macro Processor)
- 매크로 개념
- 프로그램 작성 시 한 프로그램 내에서 동일한 코드가 반복될 경우 반복되는 코드를 한 번만 작성하여 특정 이름으로 정의한 후 정의된 이름이 사용될 때마다 작성된 코드를 삽입해서 실행
- 개방 서브루틴이라고 함
- 매크로 정의 내에 또 다른 매크로를 정의할 수 있음
- 매크로 프로세서 기능
- 매크로 정의 인식
- 매크로 정의 저장
- 매크로 호출 인식
- 매크로 호출 확장
* 버퍼링(buffering)과 스풀링(spooling)
- 버퍼란 입/출력이 일어나는 동안 그 데이터를 저장하는 주기억장치의 일부분임
- 버퍼 사용으로 계산(computation)과 입/출력의 병렬 처리가 가능
- 스폴링은 CPU의 처리 속도에 비해 입/출력 장치의 처리 속도가 훨씬 느리기 때문에 전체적인 처리 속도의 차이를 줄여주기 위하여 고안되었음
'정보처리 > OS' 카테고리의 다른 글
[OS-06] 병행 프로세스&임계구역 (0) | 2021.02.07 |
---|---|
[OS-05] 스레드&문맥 교환 (0) | 2021.02.07 |
[OS-04] 인터럽트(Interrupt) (0) | 2021.02.07 |
[OS-03] 프로세스 (0) | 2021.02.07 |
[OS-01] 운영체제 개념 및 종류 (0) | 2021.02.07 |
Comments