- Operating System
- 컴퓨터의 시스템 자원을 관리 및 운영함으로써 사용자 지향적인 환경을 제공하는 시스템 소프트웨어
역할
- 사용자 인터페이스 제공
- 사용자 프로그램 제어 및 관리
- 입ㆍ출력에 대한 보조역할 수행
- 사용자들 간 하드웨어 자원의 공동 사용을 위한 자원 분배 및 관리
발달 과정
- 일괄 처리 시스템(1950년대)
- 필요한 정보를 모아 한꺼번에 처리하는 초기 정보처리 시스템
- 현대에서도 배치 프로그램은 사용된다. 은행의 이자 정산, 학교의 성적 처리 등
- 실시간 처리 시스템(1960년대)
- 입출력 장치의 개선으로 대화식으로 실시간 정보 처리 수행
- 사용자가 필요한 연산을 바로바로 입력하고 결과를 받아본다.
- 시분할 시스템(1960년대)
- 다중 프로그래밍 시스템이라고도 한다.
- 짧은 주기로 여러 프로그램을 번갈아가면서 실행하여 여러 사용자가, 여러 프로그램을 동시에 사용할 수 있게 함
- 현대의 멀티 프로세싱, 멀티 스레드도 시분할 처리다.
- 다중처리 시스템(1980년대)
- 하나의 메모리에 복수의 연산장치를 이용하여 작업을 처리하는 방식
- 2코어, 4코어 등의 멀티 프로세서 시스템을 말한다.
- 분산 처리 시스템(1980년대)
- 여러 컴퓨터를 네트워크로 묶어 높은 성능을 구현하는 방식
- 클러스터링이 분산 처리 시스템에 해당된다.
유형
- 싱글 태스킹 시스템: 컴퓨터가 한 번에 하나의 작업만을 처리
- 멀티 스위칭 시스템 : 다수의 작업이 동시 실행되나 포그라운드 프로그램만 동작하는 형태
- 멀티 태스킹 시스템: 여러개의 작업을 동시에 처리가능한 시스템
- 멀티 유저 시스템: 단일 시스템에서 여러 사용자가 동시에 프로그램을 이용가능한 시스템
- 일괄처리 시스템: 여러 개의 작업을 묶어 한꺼번에 처리하는 시스템
- 대화형 처리 시스템: 사용자와 컴퓨터가 명령과 결과 응답을 주고 받으며 구동되는 시스템
기능적 구분
- 제어 프로그램(Control Program)
- 감시 프로그램(Supervisor Program)
- 작업 관리 프로그램(Job Management Program)
- 데이터 관리 프로그램(Data Management Program)
- 처리 프로그램(Process Program)
- 언어 번역 프로그램(Language Translator Program)
- 문제 처리 프로그램(Problem Processing Program)
- 서비스 프로그램(Service Program)
자원 관리 5계층
- 프로세서 관리(1계층): 동기화 및 프로세서 스케줄링
- 메모리 관리(2계층): 메모리 할당 및 회수
- 프로세스 관리(3계층): 프로세스 생성,제거
- 주변장치 관리(4계층): 주변장치 상태파악
- 파일 관리(5계층): 파일의 생성과 소멸, 파일의 열기와 닫기
성능평가 기준
- 처리능력(Throughput)
- 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간(Turn Around Time)
- 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용 가능도(Availability)
- 시스템을 사용할 필요가 있을때 즉시 사용 가능한 정도
- 신뢰도(Reliability)
- 시스템이 주어진 문제를 정확하게 해결하는 정도
대표적 운영체제
- 아래 운영체제에 공통적인 사항
- 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
- 백그라운드에서 작업을 수행할 수 있다.
- 다양한 유틸리티 프로그램이 존재한다.
윈도우(Windows)
- Microsoft사의 운영체제
- GUI기반 운영체제이다.
- 트리 디렉터리 구조를 가진다.
- 선점형 멀티태스킹 방식을 사용한다.
유닉스(UNIX)
- 시분할 시스템을 위해 설계된 대화식 운영체제
- 소스가 공개된 개방형(Open) 시스템
- 대부분 C언어로 작성되어 있어 이식성이 높다.
리눅스(Linux)
- 유닉스로부터 파생된 운영체제
- 소스가 공개된 개방형(Open) 시스템