본문 바로가기

6. 컴퓨터 공학 공부

[123] 컴퓨터개론 07차시 운영체제의 이해

1. 운영체제의 개념

가. 운영체제란

컴퓨터의 주기억 장치 내에 상주하면서 컴퓨터 시스템의 자원들인 중앙처리 장치, 주기억 장치, 보조기억 장치, 입출력 장치, 네트워크 등을 효율적으로 관리하고 운영함으로써 사용자에게 편의성을 제공해 주는 인간과 컴퓨터 간의 인터페이스 역학을 담당하는 프로그램

운영체제는 부트스트랩 프로그램에 의해 컴퓨터에 적재된 후 컴퓨터 내의 다른 응용 프로그램들을 관리하는 프로그램으로서 통상 약자로 OS라고 하는데 하드웨어와 소프트웨어 자원들을 관리하고 제어하는 역할을 담당

부트스트랩 프로그램(bootstrap program)
전원을 켜거나 재부팅을 할 때 적재되는 프로그램
일반적으로 펌웨어라고 알려진 ROM 또는 EEPROM에 저장되어 있음.
이 프로그램은 시스템을 모든 측면에서 초기화하며, 운영 체제 커널을 적재하고 실행시킴.

1) 하드웨어

중앙처리 장치, 기억장치, 입출력장치 등 기계적인 장치

2) 운영체제

하드웨어와 사용자 사이에서 중개자 역할을 하는 프로그램(일반적으로 윈도우, 유닉스, 리눅스 등을 많이 사용)

3) 응용프로그램

문서 작성 프로그램, 그래픽 프로그램, 게임 프로그램 등 특수한 목적을 달성하기 위해 사용하는 프로그램

4) 사용자

사람이나 기계가 될 수 있지만 다른 컴퓨터 시스템이 될 수도 있음.

나. 운영체제의 구동

1) 컴퓨터 시스템에 전원 공급

2) 바이오스 프로그램 실행

3) 자체 진단 기능 수행

오류 발생 시 오류 메시지 출력 및 시스템 정지

4) 주기억장치에 부트 로더 적재

5) 부트 로더가 운영체제 적재

6) 운영체제 구동

2. 운영체제의 목표와 기능

가. 운영체제의 목표

컴퓨터 시스템을 편리하게 이용하는 것이고, 부수적인 목적은 컴퓨터 하드웨어를 효율적으로 관리

컴퓨터 내의 하드웨어/소프트웨어 자원을 관리함.
컴퓨터에 사용자가 쉽게 접근할 수 있는 인터페이스를 제공함.
수행 중인 프로그램들의 효율적인 운영을 도움.
작업 처리 과정 중의 데이터를 공유함.
입출력에 보조적인 기능을 수행함.
오류가 발행하면 오류를 처리함.

1) 처리량 향상

컴퓨터 시스템이 단위 시간동안 처리하는 작업량을 늘림.

2) 응답 시간 단축

컴퓨터 시스템에 작업을 맡긴 후 결과가 나올 때까지 소요되는 시간을 단축

3) 신뢰성 향상

컴퓨터 시스템을 구성하는 하드웨어 장치나 프로그램이 주어진 기능을 실패 없이 안정적으로 수행.

4) 유용성 증대

자원을 효율적으로 관리하여 제공할 수 있는 자원의 양을 최대로 늘림.

나. 운영체제의 기능

1) 프로세스 관리

실행중인 프로그램

프로그램은 디스크에 저장된 파일과 같은 수동적인 개체

프로세스는 프로그램 카운터(PC)를 가진 능동적인 개체

프로그램이 주기억장치에 적재되어 처리를 시작할 때 비로소 프로세스라는 활동적인 개체가 됨.

현재 컴퓨터의 기억장치에서 수행 중인 프로그램의 상태
OS는 이런 프로세스의 생성, 삭제, 동기화 등에 관여

2) 기억장치 관리

주기억 장치 관리: 주기억 장치의 할당과 회수를 관리함.

보조기억 장치 관리: 보조기억 장치의 사용을 관리함.

3) 입출력장치

입출력 장치를 관리함.

4) 정보

기억 장소의 할당, 빈 공간의 관리, 디스크의 스케줄링 등을 담당함.

3. 운영체제의 유형

가. 일괄처리

자료가 발생할 때마다 즉시 처리하지 않고 입력되는 자료를 일정 기간 또는 일정량이 될 때까지 모아두었다가 한꺼번에 처리
예) 전기, 수도, 가스 요금의 계산, 수학능력시험 채점, 급여 계산 등

https://ko.wikipedia.org/wiki/일괄_처리

 

일괄 처리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 일괄 처리(batch processing)란 최종 사용자의 개입 없이 또는 (자원이 허가한다면) 실행을 스케줄링할 수 있는 작업(job)의 실행을 의미한다.[1] 컴퓨터 프로그램 흐

ko.wikipedia.org

나. 대화 처리

중대형 컴퓨터에서 여러 개의 단말기를 연결하여 여러 요구를 대화식으로 처리

다. 다중 프로그래밍

다수의 프로그램을 주기억장치에 적재시킨 후 CPU를 번갈아 가며 사용

하나의 프로그램이 CPU를 사용하다가 입출력연산을 수행하기 위해 입출력장치를 사용하면, 그 동안 다른 프로그램이 CPU를 사용하는 방법

https://ko.wikipedia.org/wiki/다중_프로그래밍

 

다중 프로그래밍 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 다중 프로그래밍(Multi-programming)이란 CPU 작업과 입출력 작업을 병행하는 것이다. CPU 이용과 처리량을 향상시킬 수 있다. 스케줄링과 다중 프로그래밍[편집] 작업

ko.wikipedia.org

라. 다중처리

컴퓨터에 두 개 이상의 CPU를 탑재하여 동시에 처리하는 방식
컴퓨터 시스템의 처리 능력 증대와 신뢰성 향상

https://ko.wikipedia.org/wiki/다중_처리

 

다중 처리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

마. 시분할 시스템

각 사용자에게 일정한 CPU 시간을 할당

주어진 시간 동안 컴퓨터와 대화 형식으로 프로그램을 실행하는 방식

각 사용자에게 컴퓨터 시스템을 독점적으로 사용하고 있다는 느낌을 줌.

https://ko.wikipedia.org/wiki/시분할_시스템

 

시분할 시스템 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 시분할 시스템(時分割 system, 영어: time-sharing)은 컴퓨터를 대화식으로 사용하려는 시도에서 탄생하였다. 시분할 운영 체제는 CPU 스케줄링과 다중 프로그래밍을

ko.wikipedia.org

바. 실시간 시스템

입력된 데이터를 즉시 처리한 후 바로 결과를 보냄

작업의 요청에서부터 수행 결과를 얻기까지 시간제약이 존재

제약의 엄격함에 따라 경성 실시간 시스템과 연성 실시간 시스템으로 구분

https://ko.wikipedia.org/wiki/실시간_컴퓨팅

 

실시간 컴퓨팅 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 실시간 컴퓨팅(real-time computing, RTC)이란 사용할 수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간안에 처리해 결과를 내주

ko.wikipedia.org

사. 분산 시스템

네트워크를 통해 연결된 다수의 컴퓨터 시스템에 작업과 자원을 분산시켜 처리

설계 목적은 자원 공유, 연산 속도와 신뢰성 향상, 통신 기능 활용

https://ko.wikipedia.org/wiki/분산_컴퓨팅

 

분산 컴퓨팅 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 분산 컴퓨팅(distributed computing)은 분산 시스템(distributed systems)을 연구하는 컴퓨터 과학의 한 분야로, 인터넷에 연결된 여러 컴퓨터들의 처리 능력을 이용하여 메

ko.wikipedia.org

아. 결함 허용 시스템

하드웨어 동작, 소프트웨어 오류 또는 정보손상이 일어날 지라도 주어진 임무/기능을 올바르게 수행할 수 있는 시스템

자원을 중복, 저장시켜, 장애가 일어나면 시스템이 자동으로 이러한 결함을 복구함.
예) 증권관리 시스템

https://ko.wikipedia.org/wiki/장애_허용_시스템

 

장애 허용 시스템 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 결함 감내 시스템(Fault tolerant system)은 시스템을 구성하는 부품의 일부에서 결함(fault) 또는 고장(failure)이 발생하여도 정상적 혹은 부분적으로 기능을 수행할 수

ko.wikipedia.org