시스템 소프트웨어란?(응용 소프트웨어와 시스템 소프트웨어의 차이)

조영규의 블로그

2014. 3. 3. 11:58 from Engineering


< 컴퓨터 시스템의 구성 >




소프트웨어의 종류

애플리케이션(응용 소프트웨어/프로그램)

애플리케이션 소프트웨어는 일반적으로 End-User를 위해 사용된다. 특수한 문제 해결을 위해 만들어지며, 컴퓨터가 실제 하는 일에 집중하기보다는, 컴퓨터를 하나의 문제 해결을 위한 도구로써 활용하는 소프트웨어이다. 시스템 소프트웨어를 문제 해결과 구동을 위해 사용한다.


시스템 소프트웨어

시스템 소프트웨어는 컴퓨터의 작업을 돕는 여러가지 프로그램들로 구성되어있다. 예를들면 텍스트에디터, 컴파일러, 디버거등을 포함한다. 애플리케이션 소프트웨어와 가장 크게 구별되는 큰 특징 중 하나는 기계 종속적(Machine Dependency)이라는 것이다. 물론 모든 시스템 소프트웨어가 기계 종속적인것은 아니며, 애플리케이션 소프트웨어 중에서도 기계 종속적인 것은 존재하나, 일반적으로 시스템 소프트웨어는 기계 종속적, 애플리케이션 소프트웨어는 그렇지 않다고 판단한다. (애플리케이션은 OS에는 종속적일 수 있으나, 이는 기계 종속성과는 무관한 이야기다.) 따라서 시스템 소프트웨어는 해당 기기의 특성에 대해 정확히 인지하고 개발해야 한다.



< 시스템 소프트웨어와 운영체제의 관계 >




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

운영체제는 시스템 소프트웨어의 한 부분으로, 하드웨어의 리소스를 제어,관리하는 역할을 담당한다. 운영체제가 제공하는 하드웨어 제어 및 관리는 범용성을 띠고 있기 때문에, 각 애플리케이션 소프트웨어들의 특성을 반영하지 못한다. 그러다 보니 어떤 애플리케이션 소프트웨어는 어셈블리로 직접 하드웨어를 제어하기도 한다.

일반적으로는 운영체제가 제공하는 것 위에서 애플리케이션이 동작하다보니 운영체제에 애플리케이션 소프트웨어는 종속된다. 운영체제에는 운영체제의 가장 핵심이 되는 부분인 커널이 존재하며, 응용 소프트웨어와 하드웨어를 연결 시켜주는 역할을 한다.


추가 정보 : 위키백과 커널


시스템 소프트웨어의 기본적 특징과 시스템 소프트웨어 디자이너에 필요한 디자인 원칙

가장 기본이 되는 기능들과 특징은 어떠한 Machine이 사용되는지와 무관하게 동일해야 한다는 것이 시스템 소프트웨어의 기본적 특징이다. 시스템 소프트웨어를 개발함에 있어 '단 하나의 솔루션'은 없다. 모든 소프트웨어 디자이너들은 이용가능한 다양한 옵션들에 대해 염두에 두고 상황에 따라 가장 최적의 방법을 찾아야 한다.


시스템 소프트웨어와 기계 구조(Machine architecture)

기계 종속적 소프트웨어

해당 기계가 제공하는 특징적인 기능들을 제공하며, 타깃 하드웨어를 직접 사용한다.

각 기계별로 다른 차이점들의 예) 기계 코드(Machine code), 명령 형식(Instruction format), 주소 지정 방식(Addressing mode), 레지스터(register)


추가 정보 : 위키피디아 Machine code , 위키피디아 Addressing mode


기계 독립적 소프트웨어

기본이 되는 설계와 로직은 모두 유사하다.

예) 어셈블러의 기본적인 로직과 설계, Code optimization을 제공하는 소프트웨어


추가 정보 : 위키피디아 Program optimization


시스템 소프트웨어의 종류

어셈블러, 링커(Linker),로더(Loader),매크로 프로세서(Macro processor),텍스트 에디터,컴파일러,OS,디버깅 시스템,소스 코드 컨트롤 시스템, ( optional;추가 될 수도 있음, 안드로이드에서 SQLite 탑재 )DBMS


추가 정보 : 위키 백과 링커, 위키 백과 로더Terry Jones Macro processor


정리


1. 컴퓨터시스템의 구성요소를 설명하시오. 

컴퓨터 시스템은 크게 하드웨어와 소프트웨어로 구분되며, 소프트웨어는 세부적으로 시스템 소프트웨어와 응용(애플리케이션) 소프트웨어로 구분된다. 또한 시스템 소프트웨어는 운영체제와 각종 유틸리티를 포함한다.


2. 시스템 소프트웨어의 예와 주요 기능을 설명하시오. 

시스템 소프트웨어는 하드웨어 리소스를 관리하고, 애플리케이션 소프트웨어가 이 리소스를 제어, 이용할 수 있도록 해준다. 뿐만 아니라 컴퓨터의 작업을 돕는 역할을 한다. 시스템 소프트웨어의 예로는 어셈블러, 링커와 로더, 텍스트 에디터, OS등이 있다. 최근 안드로이드를 비롯한 OS에는 DBMS도 포함되고 있다.


3. 시스템 소프트웨어에서 기계종속적인 요소와 비종속적인 요소를 예를 들어 설명하시오. 

기계 종속적 요소로는 Machine Code, Instruction format, register, Addressing mode 등이 있으며, 타깃 하드웨어를 직접 사용하는 프로그램이다.

기계 독립적 요소(비종속적 요소)로는 어셈블러 중 기본이 되는 설계와 로직, Code optimization을 제공하는 소프트웨어등이 있다. 이들은 기계와 상관없이 기본이 되는 로직과 설계는 어디서나 동일하다.


4. 시스템 소프트웨어에서 설계의 선택기준은 무엇인지 설명하시오.

한 가지의 완벽한 솔루션은 없으며, 항상 가능한 모든 상황과 경우를 염두에 두고 가장 합리적인 방안을 택해 설계해야 한다.

comments powered by Disqus
태그, 트랙백, 검색 상자 토글
    1   2     >>