[컴퓨터공학개론] 소프트웨어 동작 원리 및 운영체제 개념

2024. 1. 31. 14:30·study note/컴퓨터공학개론
목차
  1. 1. 소프트웨어 동작 원리
  2. 2. 운영체제 개념

 

1. 소프트웨어 동작 원리

가. 소프트웨어 정의

 소프트웨어란 하드웨어에 대응하는 개념으로 컴퓨터 프로그램 및 프로그램과 관련된 문서들을 총칭하는 용어이다. 컴퓨터 시스템을 구성하는 핵심 요소 중 하나이며, 소프트웨어는 컴퓨터 프로그램의 일(job) 처리 순서와 동작 방법뿐만 아니라 절차 및 규칙, 문서까지 포함하는 개념이다. 소프트웨어는 작업의 진행 순서를 논리적으로 표현하고, 논리적 표현은 컴퓨터가 실행할 수 있는 명령어들로 이루어져 있다.

 

나. 특징

복잡성(Complexity) 자동화하려는 대상이 복잡할 뿐만 아니라 수많은 내부 요소들로 이루어져 상호작용이 많고 복잡함
순응성(Conformity) 요구나 환경, 데이터의 변화에 따라 적절히 변형될 수 있음
변경성(Changeability) 쉽게 변경할 수 있으며 개발 과정에서 자주 변경될 수 있음
비가시성(Invisibility) 개념적이고 무형적이며 그 구조가 코드 안에 숨어 있어 소프트웨어 구조가 외부에 드러나지 않음
비마모성 외부 환경이나 시간의 흐름에도 마모되지 않거나 변경되지 않음
복제 용이성 소프트웨어의 원본만 있으면 간단하게 복제할 수 있음

 

다. 분류

 시스템 소프트웨어(System Software)는 컴퓨터 시스템을 가동하는데 필수적인 운영체제와 언어번역 프로그램 및 유틸리티로 구분된다. 대표적으로 유닉스(Unix)나 윈도우(Window), 리눅스(Linux)와 같은 운영체제(OS)가 있다. 언어번역 프로그램에는 C언어나 포트란에 사용되는 컴파일러와 어셈블러 등이 있다. 시스템 소프트웨어는 컴퓨터 하드웨어를 제어하고, 복잡한 컴퓨터 자원을 이용자가 쉽게 사용할 수 있도록 한다.

 응용 소프트웨어(Application)는 문서작성이나 게임 등 응용 분야의 업무를 처리하는 소프트웨어이다. 응용 소프트웨어는 시스템 소프트웨어 위에서 구동되는 소프트웨어로, 사용자가 필요로 하는 기능을 제공한다. 응용 소프트웨어에는 다양한 종류가 있으며, 그 중 워드 프로세서나 스프레드시트 및 그래픽 프로그램 등 다양한 응용 소프트웨어가 있다.

 

라. 소프트웨어의 중요성

 초창기에는 컴퓨터 시스템 중 하드웨어만을 중요시했으나, 현재는 소프트웨어가 하드웨어보다 더 중요한 역할을 하는 경우가 많아졌다. 미국과 영국을 비롯한 여러 나라에서 소프트웨어를 차세대 시장을 주도적으로 이끌어갈 핵심 기술로 주목하고 있으며, 소프트웨어가 우리의 일상생활에 큰 영향을 미치고 있어 향후에도 중요성이 더욱 증대될 것으로 예측된다. 소프트웨어는 전 산업의 부가가치 향상과 발전에 매우 중요한 역할을 하고 있다. 소프트웨어는 지식을 창출하고 유통의 도구로 제업·서비스업 등 모든 산업에서 생산성을 높이고 높은 부가가치를 창출하는 분야이기 때문에 기존의 경제와 사회와 혁신을 가능하게 하는 요소로써 소프트웨어의 중요가치에 이목을 끌고 있다.

 

2. 운영체제 개념

가. 운영체제의 개념 및 기능

 운영체제(Operating System)란 컴퓨터의 주기억 장치에서 컴퓨터의 효율적인 운영을 위해 하드웨어를 제어하며 시스템 성능을 최적화해주는 시스템 소프트웨어이다. 또한 응용 프로그램들의 수행을 도와주며 사용자와 하드웨어 사이의 매개체 역할을 하는 소프트웨어이다. 운영체제는 시스템 자원(Resource)인 중앙처리 장치, 주기억 장치, 보조기억장치, 입출력 장치, 네트워크 등을 효율적으로 관리하고 운영하여 사용자와 컴퓨터 간의 인터페이스 역할을 한다.

 운영체제의 자원 관리 기능은 8개로 나누어진다.

1) 프로세스(Process) 관리 : 프로세스의 생성과 삭제, 중지와 계속 등을 관리한다.

2) 작업(Job) 관리 : 작업과 관련된 순서, 우선순위, 프로세스 할당 등을 관리한다.

3) 주기억 장치 관리 : 주기억 장치의 할당과 회수를 관리한다.

4) 보조 기억 장치관리 : 보조 기억 장치의 효율적인 사용을 관리한다.

5) 입출력 장치 관리

6) 파일관리

7) 보안관리

 

나. 목적

 운영체제의 목적에는 여섯 가지가 있다. 첫 번째 목적으로는 하드웨어와 소프트웨어 자원 관리 및 제어이다. 두 번째 목적으로는 사용자에게 편리한 인터페이스(UI)를 제공하는 것이다. 세 번째 목적으로는 수행 중인 프로그램들의 효율적인 운영을 돕는 것이다. 네 번째 목적은 작업 처리 과정 중에 데이터를 공유하는 것이다. 다섯 번째 목적은 입, 출력 과정에서 보조적인 기능을 수행한다. 마지막으로 오류가 발생하게 될 시에 오류를 원활하게 처리하는 것을 목적으로 한다. 운영체제는 응용 프로그램뿐만이 아니라 하드 드라이브, 모니터, 키보드 등 다양한 시스템을 관리한다.

 

다. 구성

 커널(Kernel)이란 자원을 관리하는 모듈의 집합으로 운영체제 기능의 핵심적인 부분을 모아놓은 부분이다. 메모리 관리 및 스케줄링, 인터럽트 처리 등의 기능을 담당한다. 사용자는 커널의 기능을 제어할 수 없으며, 셸(Shell)에 의뢰한다. 운영체제에서 꼭 필요한 부분으로 항상 메모리에 적재되어있다.

 셸(Shell)은 사용자의 명령어를 번역하여 실행을 지시하고 결과를 사용자에게 돌려주는 역할을 하는 부분으로, 커널과 사용자 사이의 인터페이스 역할을 하는 부분이다. 셸은 주기억 장치에 상주하지 않고 사용자가 요구할 때 메모리로 적재되어 실행된다.

 

 또한 운영체제에서 운영되는 시스템 작업의 기본 단위인 프로세스(Process)는 메모리에 적재되어 CPU 처리를 기다리거나 CPU에 선택되어 처리가 수행되는 프로그램이다.

 프로세스 관리자는 CPU를 프로세스에 어떻게 할당할지 결정한다. 프로세스 관리자가 프로세스를 할당하면 필요한 레지스터와 프로세스 제어블록을 생성하며, 작업을 마치거나 허용 시간을 초과하면 프로세스를 반환하는 역할을 한다. 프로세스 제어블록(Process Control Block)은 운영체제가 관리하는 자료구조로, 프로세스 관리에 필요한 모든 정보가 저장된 장소이다.

 기억장치 관리는 운영체제가 기억장치를 효율적으로 사용할 수 있도록 조정하는 역할을 담당하며, 주기억 장치 내 프로세스의 메모리 할당 및 회수를 관리한다. 또한 주기억 장치와 보조 기억장치 사이의 정보 교환을 조정한다.

 장치관리는 모든 장치의 할당, 작동 시작, 반환을 제어한다. 스케줄링에 기반하여 시스템의 모든 장치를 가장 효율적으로 할당하는 역할을 하고 있다.

 파일관리는 시스템에서 작동되는 모든 프로그램을 모니터링하며, 컴파일러, 인터프리터, 어셈블러, 유틸리티 프로그램, 데이터 파일과 응용 프로그램을 관리하고 파일의 접근 제한 관리를 한다. 또한 파일을 열고 닫으며 자원을 할당 및 회수하는 역할을 한다.

 

라. 종류

일괄처리(Batch Processing) 여러 사용자의 작업을 모아서 일괄적으로 순서대로 처리하는 방식이다.
대화처리(Interactive Processing) 중앙의 대형 컴퓨터에 여러 개의 단말기를 연결하여, 여러 사용자의 요구를 대화식으로 처리하는 방식이다.
다중처리(Multi-Processing) 두 개 이상의 프로세서로 구성된 시스템 운영체제로서, 단일 처리 시스템보다 많은 양의 작업을 동시에 처리할 수 있는 방식이다.
다중 프로그래밍(Multi-Programming) 여러 개의 프로그램을 동시에 주기억 장치에 저장하여, 한 프로그램이 입출력 등 작업을 할 때 중앙처리 장치를 쉬게 하지 않고, 다른 프로그램을 처리하여 전체적인 처리 속도를 향상하는 방식이다.
시분할 시스템(Time-Sharing System) 여러 사용자가 동시에 하나의 컴퓨터를 이용하며, CPU 운영 시간을 나눠 여러 사용자에게 골고루 처리시간을 제공하는 방식이다.
실시간 시스템(Real-Time System) 요구하는 작업에 대해 정해진 짧은 시간 내에 응답하는 시스템 방식이며, 대용량 파일의 고속 접근과 프로세서의 고속화 기술이 필요하다.
분산 시스템(Distributed System) 네트워크를 통해 연결된 여러 컴퓨터의 업무를 지리적 또는 기능적으로 분산시켜 처리하는 방식이다.
결함 허용 시스템(Fault-Tolerant System) 부분적으로 일어나는 장애를 순간적으로 복구함으로써 시스템 처리 중단이나 데이터의 유실 또는 훼손을 막을 수 있는 시스템 방식이다.

 

저작자표시 비영리 변경금지 (새창열림)

'study note > 컴퓨터공학개론' 카테고리의 다른 글

[컴퓨터공학개론] 유비쿼터스 / 메타버스 / 인공지능  (2) 2024.02.05
[컴퓨터공학개론] 컴퓨터 시스템 / 컴퓨터의 역사, 개요 및 구조  (1) 2024.01.31
[인공지능 시대의 컴퓨터 개론 개정8판] Chapter 12 : 연습문제 풀이 및 개념 정리  (0) 2024.01.30
[인공지능 시대의 컴퓨터 개론 개정8판] Chapter 11 : 연습문제 풀이 및 개념 정리  (2) 2024.01.30
[인공지능 시대의 컴퓨터 개론 개정8판] Chapter 10 : 연습문제 풀이 및 개념 정리  (1) 2024.01.30
  1. 1. 소프트웨어 동작 원리
  2. 2. 운영체제 개념
'study note/컴퓨터공학개론' 카테고리의 다른 글
  • [컴퓨터공학개론] 유비쿼터스 / 메타버스 / 인공지능
  • [컴퓨터공학개론] 컴퓨터 시스템 / 컴퓨터의 역사, 개요 및 구조
  • [인공지능 시대의 컴퓨터 개론 개정8판] Chapter 12 : 연습문제 풀이 및 개념 정리
  • [인공지능 시대의 컴퓨터 개론 개정8판] Chapter 11 : 연습문제 풀이 및 개념 정리
yenalee
yenalee
  • yenalee
    이예나
    yenalee
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • study note (19)
        • 컴퓨터공학개론 (16)
        • 지능형 정보 기술 (3)
      • 코딩 (0)
        • CodeUp (0)
        • Baekjoon (0)
      • high school (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
yenalee
[컴퓨터공학개론] 소프트웨어 동작 원리 및 운영체제 개념

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.