DevGang

[OS-02] 시스템 소프트웨어 본문

정보처리/OS

[OS-02] 시스템 소프트웨어

별천랑 2021. 2. 7. 16:52

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