호빗의 인간세상 탐험기
운영체제 본문
정의
- 시스템의 하드웨어를 관리하며 응용 프로그램을 실행하기 위한 하드웨어 추상화(H/W Abstraction) 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어
- 컴퓨터 자원을 효율적으로 관리하며 사용자와 컴퓨터 사이의 인터페이스를 제공
- 최근에는 가상화(Virtualization) 기술의 발전으로 실제 하드웨어가 아닌 Hypervisor와 같은 가상 장치 위에서 실행되기도 함
특징
- 입출력과 메모리 할당과 같은 H/W 기능의 경우 운영 체제는 응용 프로그램과 H/W사이의 중재 역할
- 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 H/W 자원들을 사용할 수 있도록 지원하며 H/W 자원들을 추상화하여 파일 시스템 형태의 서비스를 제공
- 다중 처리(Multi-tasking)를 지원하는 경우 여러 개의 응용 프로그램의 프로세스들을 scheduling 하는 역할 수행
- 운영 체제는 슈퍼 컴퓨터나 웹 서버에서부터 스마트 폰이나 게임기와 같은 이동 기기에까지 컴퓨팅 기능을 수행하는 거의 모든 기기 또는 장치에 사용
- MS Windows, Mac OS X, Linux, BSD, Unix, IOS, Android 등등
하드웨어 발전에 따른 변화
Firmware 또는 단순한 로직 기반 처리
운영 체제를 사용하지 않은 장치 또는 기기
현재에도 고속 처리가 필요한 네트워크 장비 일부에 활용됨
FPGA, BGA 등등
Batch 처리 시스템
계산기와 같이 사용자가 지정한 순서대로(프로그램) 순차적으로 자료를 처리하는 방식
작업 준비 시간이 길고, 사용자와 상호작용 불가능
초기 메인 프레임 컴퓨터에 주로 사용되던 방식 : 천공 카드(입력), 라인프린터(출력)
다중(Multi) 프로그래밍 시스템
CPU에 비해 주변 장치들이 상대적으로 느린 점에 착안하여 여러 개의 프로그램을 실행하고, 주변장치의 응
답 대기 상태가 되면 다른 프로그램이 실행권을 얻어 실행되는 구조
Batch 처리를 다중화한 개념의 시스템
Time Sharing 시스템
컴퓨터와 상호작용하여 대화식으로 사용하려는 시도에서 출발
CPU Scheduling과 다중 프로그래밍을 이용하여 여러 사용자에게 컴퓨터 자원을 시간적으로 분할하여 사
용하도록 한 구조
유닉스(UNIX) 운영 체제
다중 사용자(Multi User) 또는 다중 처리(Multi Tasking 또는 Processing) 시스템 이라고도 함
하드웨어 발전에 따른 변화
실시간 시스템
사용할 수 있는 자원이 한정되어 있는 상황에서 이를 제한된 시간 안에 처리하도록 하는 구조
hard real-time system : 발전소 제어나 철도제어 등과 같이 실시간 제약 조건이 시스템 운영에 치명적인
영향을 주는 시스템
soft real-time system : 음성이나 동영상 전송과 같이 실시간 전송을 필요로 하나 실시간 조건을 만족하
지 않더라도 시스템에 큰 영향을 미치지 않는 시스템
분산 컴퓨팅
인터넷에 연결된 여러 컴퓨터들의 처리 능력을 활용하려는 분산 처리 모델
병렬(Parallel) 처리 시스템
다중 CPU, 다중 Core 프로세서를 활용한 병렬 처리 시스템
순차 처리 프로그램에 비해 복잡한 구조의 병렬 프로그래밍 기법
명령어 병렬 처리(Multiple Input)와 자료 병렬 처리(Mutlple Data) 혼합 : SISD, SIMD, MISD, MIMD
운영 체제 유형
다중 처리 지원
Single Tasking OS
- CPU가 한번에 오직 하나만의 프로그램을 실행할 수 있는 시스템
Multiple Tasking OS
- 동시에 하나 이상의 프로그램을 실행할 수 있는 시스템
- 시분할(Time Sharing)을 통해 다중 처리
다중 사용자 지원
Single User OS
- 사용자와 상호 작용없이 하나의 프로그램이 단일 처리되거나 여러 프로그램이 다중 처리되는 시스템
Multiple User OS
- 디스크나 메모리와 같은 시스템 자원과 프로세스를 식별할 수 있는 다중 처리 시스템을 기반으로 여러
사용자가 서로 다른 프로그램을 실행하며 시스템과 상호 작용할 수 있는 운영 체제
분산 운영 체제
물리적으로 분리된 여러 개의 컴퓨터 그룹을 하나의 컴퓨터인 것처럼 운영
임베디드(Embedded) 운영 체제
임베디드 시스템에서 사용할 수 있도록 최적화된 운영 체제
실시간 운영 체제
특정한 짧은 시간 내에 데이터 처리를 보장하는 운영 체제
'IT이야기' 카테고리의 다른 글
JAVA MultiThread (0) | 2017.02.08 |
---|---|
네트워크 보안 (0) | 2017.02.06 |
패킷 검사와 DPI (0) | 2017.01.24 |
사물인터넷(IoT) 발전과 보안의 패러다임변화 (0) | 2017.01.22 |
JAVA 쓰레드 (0) | 2017.01.19 |