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/일괄_처리
나. 대화 처리
중대형 컴퓨터에서 여러 개의 단말기를 연결하여 여러 요구를 대화식으로 처리
다. 다중 프로그래밍
다수의 프로그램을 주기억장치에 적재시킨 후 CPU를 번갈아 가며 사용
하나의 프로그램이 CPU를 사용하다가 입출력연산을 수행하기 위해 입출력장치를 사용하면, 그 동안 다른 프로그램이 CPU를 사용하는 방법
https://ko.wikipedia.org/wiki/다중_프로그래밍
라. 다중처리
컴퓨터에 두 개 이상의 CPU를 탑재하여 동시에 처리하는 방식
컴퓨터 시스템의 처리 능력 증대와 신뢰성 향상
https://ko.wikipedia.org/wiki/다중_처리
마. 시분할 시스템
각 사용자에게 일정한 CPU 시간을 할당
주어진 시간 동안 컴퓨터와 대화 형식으로 프로그램을 실행하는 방식
각 사용자에게 컴퓨터 시스템을 독점적으로 사용하고 있다는 느낌을 줌.
https://ko.wikipedia.org/wiki/시분할_시스템
바. 실시간 시스템
입력된 데이터를 즉시 처리한 후 바로 결과를 보냄
작업의 요청에서부터 수행 결과를 얻기까지 시간제약이 존재
제약의 엄격함에 따라 경성 실시간 시스템과 연성 실시간 시스템으로 구분
https://ko.wikipedia.org/wiki/실시간_컴퓨팅
사. 분산 시스템
네트워크를 통해 연결된 다수의 컴퓨터 시스템에 작업과 자원을 분산시켜 처리
설계 목적은 자원 공유, 연산 속도와 신뢰성 향상, 통신 기능 활용
https://ko.wikipedia.org/wiki/분산_컴퓨팅
아. 결함 허용 시스템
하드웨어 동작, 소프트웨어 오류 또는 정보손상이 일어날 지라도 주어진 임무/기능을 올바르게 수행할 수 있는 시스템
자원을 중복, 저장시켜, 장애가 일어나면 시스템이 자동으로 이러한 결함을 복구함.
예) 증권관리 시스템