본문 바로가기
컴퓨터 구조

소프트웨어

by kkong93 2023. 1. 1.
반응형

소프트웨어란?
소프트웨어(Software)는 하드웨어(Hardware)의 반대말로, 하드웨어처럼 눈에 보이는 물리적인 형태가 없기 때문에 소프트웨어라고 불리게 되었다. 오늘날 소프트웨어는 명령어의 집합이고, 컴퓨터와 컴퓨터에 관련된 하드웨어 장치들을 효과적으로 제어(Control) 하기 위한 프로그램들과 그 프로그램들을 사용하기 위한 문서들을 말한다.



소프트웨어의 분류
1) 역할에 따른 분류

(1) 시스템소프트웨어



(2) 응용 소프트웨어



2) 개발 목적에 따른 분류

(1) 상용 소프트웨어

소프트웨어 개발자가 일반적인 목적이나 특정한 목적을 위해 개발하여, 하나의 상품으로 출시하는 소프트웨어이다. 워드프로세서, 엑셀, 메신저 등이 대표적이며, 대부분의 소프트웨어가 상용 소프트웨어에 속한다.



(2) 주문형 소프트웨어

 어떤 조직이나 기관에서 자신들이 필요로 하는 기능을 전문 프로그래머나 소프트웨어 회사를 통해 자체적으로 개발하는 소프트웨어이다. 회사 내에서 회계 관리, 인사관리 등을 위한 특정 목적을 위해 고안되고 개발된 소프트웨어이다.



3) 구매 방법에 따른 분류

소프트웨어를 취득하는 방법도 다양해졌다. 소프트웨어를 판매하는 전문 상점이나, 인터넷 쇼핑몰 등을 동 해 정상적인 방법으로 구매하여 취득할 수도 있고, 공급자가 무료로 배포한 것을 다운로드하여 사용할 수도 있다. 소프트웨어의 구입은 소프트웨어의 소유권을 가지는 것이 아닌 소프트웨어를 사용할 수 있는 권한을 구입하는 것이기 때문에 다른 사람에게 팔거나 빌려 줄 수 없다.



(1) 셰어웨어

셰어웨어(Shareware)는 인터넷을 통해 공급되는 소프트웨어로, 얼마 동안 시험으로 사용하게 한 후, 기간이 지나면 구매하도록 하는 소프트웨어이다. 소프트웨어 사용을 위한 값을 지불하면, 소프트웨어 사용자로 등록되어 지속해서 지원받을 수 있게 된다.



(2) 라이트 웨어

라이트 웨어(Liteware)는 셰어웨어와 비슷한 형태이지만, 일정 기간이 모든 기능을 사용할 수 있는 것이 아닌 일정 기간에 중요한 기능만 사용할 수 있도록 하는 시험 판 소프트웨어이다. 모든 기능을 이용하기 위해서는 값을 지불하고 Full Package 프로그램을 주문해야 한다.



(3) 프리웨어

프리웨어(Freeware)는 라이선스(license) 요금 없이 무료로 배포되는 소프트웨어이다.

사용 대금을 지불할 필요는 없지만, 영리 목적으로 배포할 수 없다. 개인 사용자는 개인적인 목적으로 사용할 때는 무료로 사용할 수 있으나, 기업이나 개인이 상업적인 목적으로 사용할 때는 사용할 수 없다. 대표적인 소프트웨어로는 v3, 알약같이 개인 사용자에게는 무료로 배포하지만, 기업의 경우 가격을 지불하고 사용하는 소프트웨어들이 있다.



(4) 공동 도메인 소프트웨어

소프트웨어 개발자가 소프트웨어에 대한 모든 권리를 명시적으로 포기하여, 누구나 제약 조건 없이 무료로 사용하고 배포할 수 있도록 소스 코드와 함께 공개한 소프트웨어이다. 



(5) 공개 소스 소프트웨어

일반인에게 프로그램 소스가 무료로 공개되어 사용자가 소스를 업데이트하여 기능과 성능을 향상할 수 있다. 전 세계의 모든 프로그래머가 공동으로 개발해 가는 프로그램으로 유닉스(UNIX)와 리눅스(Linux), 파이어폭스(Fire Fox)가 있다.



시스템 소프트웨어

(1) 시스템 소프트웨어의 개념

일반적으로 하드웨어나 시스템의 중심이 되어 컴퓨터 시스템을 운영하는 소프트웨어이다. 하드웨어 요소들을 직접 제어하고 통합 관리 하는 역할을 한다. 

시스템 소프트웨어에는 운영체제, 언어처리기, 라이브러리 프로그램, 장치드라이버, 유틸리티 프로그램 등이 존재한다.



(2) 시스템 소프트웨어의 종류

● 운영체제

컴퓨터의 하드웨어와 소프트웨어의 자원을 관리하고, 효과적으로 운용하기 위한 소프트웨어로서 컴퓨터의 하드웨어와 사용자 사이에 인터페이스 역할을 한다.



● 라이브러리 프로그램

컴퓨터 프로그래밍과 소프트웨어를 효과적으로 활용하기 위해 프로그램 일부를 향후 프로그래밍 등에 활용할 수 있도록 조직적으로 구성해 놓은 것이다.



● 언어 처리기

사람이 사용하는 언어로 작성된 프로그램을 기계어가 알 수 있는 언어로 변경해 주는 역할을 하는 프로그램이다.



● 장치드라이버

컴퓨터에 부착된 장치를 제어하기 위한 소프트웨어로, 운영체제의 명령을 장치들이 이해할 수 있는 명령어로 변경하여 실행시킨다.



● 유틸리티 프로그램

컴퓨터를 보다 효과적으로 사용하기 위해 하드웨어, 운영체제, 응용 소프트웨어 등 다양한 분야에서 활용되는 소프트웨어이다. 예를 들어 디스크 조각모음, 화면 보호기, 압축, 백신 프로그램 등이 있다.



운영체제의 개요 및 기능
컴퓨터 시스템(computing system)의 성능을 최대로 발휘할 수 있도록 하여 데이터 처리의 생산성을 향상하도록 통합된 프로그램의 집단이다.

(1) 사용자 측면에서 본 운영체제의 기능

컴퓨터 사용자는 일을 수행하기 위하여 컴퓨터를 사용하는 사람이나 장치를 의미하며, 하드웨어 컴포넌트는 일을 수행하기 위해 기본적으로 자원을 제공하는 중앙 처리장치, 메모리, 입출력 장치 등을 의미한다.

사용자 측면에서 운영체제는 사용자와 컴퓨터 하드웨어 컴포넌트 사이에 연결을 수행하는 징검다리 역할을 담당한다.



(2) 하드웨어 측면에서 본 운영체제의 기능

● 조정자 역할

운영체제는 시스템을 운영하여 하드웨어, 소프트웨어, 데이터를 적절하게 사용할 수 있도록 제어한다. 물론 운영체제는 다른 프로그램들이 작업을 수행할 수 있도록 환경만 제공할 뿐 조정자처럼 스스로 어떠한 일을 유용하게 해낼 수 있는 능력은 없다. 예를 들어, 워드 프로세서의 역할을 수행하는 것이 아니라 워드프로세서가 제 기능을 발휘하도록 도와주는 역할을 하는 것이다.



● 자원 할당자 또는 관리자로서 해야 할 역할

운영체제는 각각의 애플리케이션이 실행하는데 필요한 자원인 프로세서 시간, 메모리 공간, 파일 저장공간, 입출력 장치 등을 할당해주기 때문에 자원 할당자로서 역할을 한다. 서로 충돌을 일으킬 수 있기 때문에 운영체제는 어느 요구에 대해 어떤 자원을 어떻게 할당해 줄 것인지 스케줄링하기 때문에 관리자로서의 역할을 수행한다.



● 입출력 장치와 사용자 프로그램 제어

운영체제는 컴퓨터의 부적절한 사용 및 오류를 방지하기 위해 사용자 프로그램의 수행을 제어하며 특히 입출력 장지를 동작하고 통제하는 보조 역할을 수행한다. 이러한 역할 때 문에 운영체제를 제어 프로그램으로 분류하게 한다.

반응형

'컴퓨터 구조' 카테고리의 다른 글

소프트웨어 - CPU 스케줄링  (0) 2023.01.01
소프트웨어 - 운영체제의 목적  (0) 2023.01.01
병렬처리 컴퓨터  (0) 2022.12.28
입력 및 출력 - 인터럽트 서비스 루틴  (0) 2022.12.28
입력 및 출력  (0) 2022.12.28

댓글