본문 바로가기
자격증 및 시험/정보처리

[운영체제] 개념

by 진현개발일기 2023. 4. 21.

■ 운영체제 역할, 특징, 기능 (암기x 이해o)

(1) 사용자와 컴퓨터간의 인터페이스를 제공하는 소프트웨어 (응용 프로그램x)

(2) 자원의 효율적인 스케줄링 (프로세서, 기억장치, 주변장치, 파일 관리)
(3) 데이터 공유 및 주변 장치 관리
(4) 입/출력 장치와 사용자프로그램[응용프로그램]을 제어
(5) 오류 검사 및 복구 기능

 

* 컴퓨터 시스템의 성능을 최적화 하기 위해 사용되는 운영체제의 기능
  (1) 초기 설정기능
       : 컴퓨터를 초기화시켜 작업(JOB)을 수행할 수 있는 상태로 유지시키는 역할

  (2) 인터페이스 기능

  (3) 이식성 기능
        : 소프트웨어를 서로 다른 구성을 가진 컴퓨터나 오퍼레이팅 시스템에서 이용하기 위해 필요한 수정/변경의 편리성

  (4) 시스템 보호 기능
        : 시스템 사용 도중 발생하는 내부, 외부적인 오류로부터 시스템을 보호

 

■ 운영체제 목적, 평가 기준 

  1. 처리 능력(Throughput) 향상[증대] : 일정 시간 내에 시스템이 처리하는 일의 양 -> 단위 작업량 향상


  2. 신뢰도(Reliability) 향상 : 시스템이 주어진 문제를 정확하게 해결하는 정도


  3. 사용 가능도(Availability) 향상 : 시스템을 얼마나 빨리 사용할 수 있는가의 정도 


  4. 응답시간, 반환시간(Turn Around Time, 왕복소요시간) 감소[단축] : 컴퓨터에 작업을 지시하고 나서부터 결과를 받을 때까지의 경과 시간

■ 운영체제 종류

종류 특징
개인용 OS
(Single-User)
MS-DOS Windwos 이전에 Microsoft사가 개발한 운영체제 (CUI 환경)
Windows Mircrosoft사 대표적인 운영체제 (GUI환경)
MacOS Apple사가 UNIX 기반으로 개발한 운영체제
서버용 OS
(Multi-User)
Windows
NT
(Server)
Microsoft사가 공개한 서버 운영체제
UNIX AT & T 벨(Bell) 연구소, MIT, General Electirc이 공동 개발한 운영체제 (CLI, GUI환경)
Linux UNIX와 호환 가능한 Kernel(운영체제 핵심 부분)임, 리누스 토발즈가 개발 
(오픈 소스, CLI, GUI)
* MS-DOS는 단일 작업 처리 시스템이고, 나머지는 다중 작업 처리 시스템이다.

* 단일 작업 처리 시스템 (Single Tasking System)
  : 한 개의 작업이 컴퓨터 시스템을 독점하여 사용하는 방식
    (ex) 인터넷 검색 중에 문서 작성을 하려면 인터넷 검색을 종료해야 한다.


* 다중 작업 처리 시스템 (Multi Tasking System)
  : 여러 개의 작업을 컴퓨터 시스템이 동시에 진행하는 방식
     (ex) 인터넷 검색과 문서 작성을 동시에 처리할 수 있다.

■ 운영체제 기능적 분류

종류 특징
제어 프로그램 감시 프로그램
(Supervisor)
각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시/감독 하는 프로그램
작업 제어 프로그램
(Job Control)
어떤 업무를 처리하고 다른 업무로의 이행을 자동적으로 수행하기 위한
준비 및 그 처리 완료를 담당하는 기능을 수행한다.

즉, 작업의 연속 처리를 위한 스케쥴링 및 시스템 자원 할당을 담당한다.
데이터 관리 프로그램
(Data Management)
주기억장치와 보조기억장치 사이의 자료 전송, 파일의 조작 및 처리, 
입/출력 자료와 프로그램간의 논리적 연결 등

시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록
관리하는 프로그램.
처리 프로그램 서비스 프로그램
(Service)
효율성을 위해 사용 빈도가 높은 프로그램
문제 프로그램
(Problem)
특정 업무 해결을 위해 사용자가 작성한 프로그램
언어 번역 프로그램
(Language Translator)
사용자가 작성한 코드를 기계가 이해할 수 있도록 번역해주는 프로그램
(ex) 어셈블러, 컴파일러, 인터프리터

■ 운영체제 세대별 발달 과정 (★)

* 여기서만 이상하게 표를 만들고나면 계속 고장이나서 글로만 정리함

 

(1세대) - 일괄처리

일괄 처리 시스템 (Batch Processing System) 

: 가장 먼저 생겨난 방식으로, 유사한 성격의 작업을 모아서 한꺼번에 처리한다. 

 


(2세대) - 다중처리

1. 다중 프로그래밍(Multi Programming) 

  : 한 대 컴퓨터로 여러 프로그램들을 실행할 수 있게되었고. 이로 인해 '처리량이 극대화' 되었다. 


2. 시분할 시스템 (Time Sharing System) 

: 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리해 줌으로써 각 사용자가 각자 독립된  컴퓨터를 사용하는 느낌을 주는 시스템. '응답시간이 최소화'되었다.

(시간 슬롯 할당, 시스템 공유 후 동시 작업)

3. 다중 처리 (Multi Processing) : 한 대의 컴퓨터에 중앙처리장치(CPU)가 2개 이상 설치, 여러 프로그램들 실행

 * 다중 프로그램은 프로그램을 여러 개를 실행하는 거(Programming)에 중점, 다중 처리는 중앙처리장치가 2개 이상 설치된다는 것(Processing)에 중점

4. 실시간 시스템 (Real-Time System) : 데이터가 발생하는 즉시 처리하는 방식
  (ex) 좌석 예약, 비행기 제어 시스템, 교통 제어

 


(3세대) - 다중모드(=범용)

다중 모드(Mode) 시스템 
=> 1, 2세대 혼합 시스템

 

(4세대) - 분산처리 

분산 처리 시스템 (Distributed Processing System)
: 지역적으로 분산된 컴퓨터들을 연결하여 사용하는 방식 (분산 처리)

■  소프트웨어 분류

종류 특징
시스템 소프트웨어
(System Software)
사용자가 손쉽게 컴퓨터를 쓸 수 있게 도와주는 동시에 컴퓨터 시스템을 효율적으로
운영해주는 기능을 갖춘 프로그램 집단.

(운영체제보다 좀 더 큰 개념 혹은 운영체제와 같은 의미로 사용)
응용 소프트웨어
(Application Software)
사용자가 컴퓨터를 사용하여 어떠한 일을 하려고 할 때 사용되는 모든 프로그램

(ex) OA용, 통신용, 그래픽, 멀티미디어 등 프로그램 
유틸리티 소프트웨어
(Utility Software)
컴퓨터를 분석, 구성, 최적화 또는 유지 관리하도록 설계된 시스템 소프트웨어
- 유틸리티 소프트웨어는 대부분 운영체제에 오랫동안 통합되어왔다.

(ex) 디스크 조각모음, 화면 보호기, 바이러스 검사 소프트웨어, 압축/압축 해제 프로그램

■ 언어 번역 

[과정]
 1. 원시(Source) 프로그램 (사람이 코딩으로 만든 프로그램)을 번역(Compile)하여

     목적(Object) 프로그램 생성

 2. Link(연결) 하여 실행(Execute) 프로그램 생성 

 3. 주기억 장치에 Load(적재) 

 4. 실행(Execute)

 

즉,  
컴파일 -> 링킹 ->  로딩 -> 실행이 된다.

* 원시 프로그램 : 사람이 코딩으로 만든 프로그램


* 목적 프로그램 : 원시 프로그램을 컴파일러를 이용해 기계어로 번역한 이진수로 이루어진 프로그램


* 링커(Linker), 연결 편집기(Linkage Editor) : 목적 프로그램 등을 연결하여 실행 가능한 로드 모듈(=실행 프로그램)을 만드는 프로그램. (여러 파일을 합쳐서 하나의 프로그램으로 만드는 것)

 

* 로더 (Loader)
목적 프로그램을 '주기억장치에 적재'하여 실행 가능하게 해주는 시스템 프로그램
▼ 로더의 기능 (★)
할당 (Allocation) 프로그램을 적재할 기억장치 내의 공간을 할당 (기억공간 확보)
연결 (Link) 필요할 경우 여러 목적 프로그램들과의 연결
재배치 (Relocation) 할당된 기억장치에 맞게 실제 주소를 배치
적재 (Load) 기억장치로 읽어 들임

 

■ 컴파일러, 인터프리터

[공통점]

 고급언어(C, JAVA 등등)를 기계어로 번역해준다

[차이점]
1. 번역단위 : 컴파일러는 전체를 번역, 인터프리터는 줄 단위로 번역
2. 목적프로그램 생성 여부 : 컴파일러 (O), 인터프리터 (X)
3. 실행 : 컴파일러는 실행 프로그램을 실행, 인터프리터는 번역과 동시에 실행
4. 실행속도 : 컴파일러는 빠르다, 인터프리터는 느리다.

■ 용어 정리

용어
컴파일러
(Compiler, 번역기)
특정 프로그래밍 언어로 쓰여진 문서를 컴퓨터가 이해할 수 있는 언어로 번역하는 프로그램
인터프리터
(Interpreter)
고급언어나 중간언어(IL)를 목적 프로그램을 만들지 않고 직접 한 문장씩 번역하여 실행하는 프로그램
어셈블러
(Assembler)
어셈블리어(저급 언어)로 작성된 프로그램을 기계어로 번역해주는 프로그램
 크로스 컴파일러 
(Cross Compiler) 
원시 프로그램을 컴파일러가, 수행되고 있는 컴퓨터의 기계어로 번역하는 것이 아니라,
다른 기종에 맞는 기계어로 번역하는 것
프리프로세서
(Preprocessor, 전처리기)
메인 프로그램 실행 전에 먼저 처리하는 프로그램
모뎀
(Modem)
컴퓨터 통신을 위해 디지털 신호 ↔ 아날로그 신호로 변/복조하는 장치

 

 

728x90