[운영체제] 시스템 소프트웨어, 응용 소프트웨어 차이

[운영체제] 시스템 소프트웨어, 응용 소프트웨어 차이


컴퓨터 시스템의 구성

소프트 웨어의 종류

애플리케이션(응용 소프트웨어)

  • 애플리케이션 소프트웨어는 일반적으로 End-User를 위해 사용된다.
  • 특수한 문제 해결을 위해 만들어지며, 컴퓨터가 실제 하는 일에 집중하기보다는, 컴퓨터를 하나의 문제 해결을 위한 도구로써 활용하는 소프트웨어
  • 여러 가지 프로그래밍 언어의 규칙에 맞게 문서 편집기를 이용해 소스 프로그램을 작성한다.
  • 애플리케이션 소프트웨어는 시스템 소프트웨어를 문제 해결과 구동을 위해 사용한다.
  • ex) 복잡한 수학 계산을 처리

시스템소프트웨어

  • 하드웨어와 밀접한 관계를 갖고 응용 소프트웨어와 하드웨어 사이의 매개체 역할을 담당
  • 컴퓨터의 작업을 돕는 여러가지 프로그램들로 구성되어 있다.
    • ex) 텍스트 에디터, 컴파일러, 디버거 등을 포함.
    • ex) 프로그램을 메모리에 적재, 인터럽트를 관리, 기억 장치를 관리
  • 애플리케이션 소프트웨어와 가장 크게 구별되는 특징 중 하는 기계 종속성이다
    • 일반적으로 시스템 소프트웨어는 기계 종속적, 애플리케이션 소프트웨어는 그렇지 않다고 판단한다.

시스템 소프트웨어 종류

  • 링커 
    • 목적 프로그램을 실행 가능한 로드 모듈로 변환하는 프로그램
    • 언어 번역 프로그램이 생성한목적 프로그램들과 라이브러리 또 다른 실행 프로그램들을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이며 연결 편집기라도고 한다.
    • 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹이라고 한다.
  • 로더 
    • 실행 가능한 프로그램을 기억장치로 적재(보조기억장치 -> 주기억장치로)
    • 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주 기억장치에 적재하는 시스템 소프트 웨어
    • 로더의 일반적인 기능 : 할당 -> 연결 -> 재배치 -> 적재
    • 로더 종류
      • Compile and go 로더 : 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식
      • 절대(absolute) 로더 : 로더의 역할이 축소되어 가장 간단한 프로그램으로 구성
        목적 프로그램을 기억 장소에 적재시키는 기능만 수행하는 로더
      • 직접 연결(Direct Linking) 로더 : 일반적인 기능의 로더, 로더의 기능 4가지를 모두 수행하는 로더 = relative loader
      • 동적 연결(Dynamic loading) 로더 : 프로그램을 한꺼번에 적재하는 것이 아닌 실행시 필요한 일부분만을 적재하는 로더(load-on-call이라고도 함)
  • 언어 번역기
    • 고급언어로 작성된 사용자 프로그램을 기계어로 번역
  • 디버거
    • 실행시간 오류가 발생할 경우 기계상태 검사 및 수정


운영체제(OS)와 시스템 소프트웨어, 애클리케이션의 관계


  • 운영체제는 시스템 소프트웨어의 한 부분으로, 하드웨어의 리소스를 제어, 관리하는 역할을 담당한다.
  • 운영체제가 제공하는 하드웨어 제어 및 관리는 범용성을 띠고 있기 때문에, 각 애플리케이션 소프트웨어들의 특성을 반영하지 못한다.
  • 그러다 보니 어떤 애플리케이션 소프트웨어는 어셈블리로 직접 하드웨어를 제어하기도 한다
  • 일반적으로 운영체제가 제공하는 것 위에서 애플리케이션이 동작하다보니 운영체제에 애플리케이션 소프트웨어는 종속된다. 운영체제에는 운영체제의 가장 핵심이 되는 부분인 커널이 존재하며, 응용 소프트웨어와 하드웨어를 연결 시켜주는 역할을 한다.



댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?