생활 속 운영체제
운영체제(Operating System; OS)
: 일반 컴퓨터, 노트북, 스마트폰의 전원을 켜면 가장 먼저 만나는 소프트웨어
PC: Window, Mac OS, Unix, Linux...
모바일: iOS, Android...
임베디드 운영체제
: CPU의 성능이 낮고, 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제
운영체제란?
: 컴퓨터 전체를 관리/운영하는 소프트웨어 위에 존재하는 최고 소프트웨어
- 컴퓨터를 관리하기 위한 기본 규칙/절차를 규정하여 컴퓨터 내의 모든 하드웨어와 응용 프로그램을 관리한다.
- 컴퓨터 자원 보호를 위해 응용 프로그램과 사용자에게서 모든 컴퓨터 자원을 숨길 수 있다. → 직접 접근이 불가능해진다. (+ 대신 다양한 인터페이스(interface) 제공)
- 하드웨어의 도움 없이 작동하기가 어려워, 소프트웨어&하드웨어를 모두 갖춘 형태로 운영한다. (펌웨어(firmware))
운영체제의 정의
- 인터페이스를 이용해 커널에 명령을 내리면 인터페이스가 결과를 전달한다.
- 컴퓨터 인터페이스 중 일부는 사용자 인터페이스이다. (UI; User Interface)
ex) 디렉토리 만들기, 파일 복사 등등... 운영체제가 제공하는 UI이다.
운영체제의 역할
자원 관리
: 컴퓨터 시스템 자원을 응용 프로그램에 나눠주어 사용자가 원활히 작업하게 한다.
자원 보호
: 비정상적 작업으로부터 컴퓨터 자원을 보호한다.
하드웨어 인터페이스 제공
: 사용자가 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 하드웨어 인터페이스를 제공한다.
사용자 인터페이스 제공
: 사용자가 운영 체제를 편리하게 사용하도록 지원한다.
ex) 윈도우의 GUI(Graphin User Interface)
운영체제의 목표
역할 | 목표 |
---|
자원 관리 | 효율성 |
자원 보호 | 안정성 |
하드웨어 인터페이스 제공 | 확장성 |
사용자 인터페이스 제공 | 편리성 |
운영체제의 발전
에니악
: 최초의 컴퓨터
- 진공관 소자가 켜지면 1, 꺼지면 0으로 판단한다.
→ 이는 컴퓨터가 2진법을 사용하는 계기가 된다.
초기의 컴퓨터
- 키보드, 마우스, 모니터 같은 주변 장치가 없다.
- 전선을 이용해 논리회로를 구성하는 하드 와이어링(hard wiring) 방식이다.
- 운영체제가 존재하지 않는다.
일괄 작업 시스템
: 모든 작업을 한꺼번에 처리하는 시스템
- 필요한 프로그램과 데이터를 동시에 입력해야 가능하다.
- 일괄 작업/처리 시스템(batch job/processing system)
대화형 시스템
: 컴퓨터와 사용자의 대화를 통해 작업이 이루어지는 시스템
- 키보드와 모니터가 등장, 작업 중간에 입력이 가능해졌다.
- 중간 결과값을 확인할 수 있다.
시분할 시스템(Time Sharing System)
: 여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는 것
- 잘게 나뉜 시간 한 조각을 타임 슬라이스(time slice) 혹은 타임 퀀텀(time quantum)이라고 한다.
- 오늘날 컴퓨터는 대부분 시분할 시스템이다.
시분할 시스템의 단점
- 여러 작업을 동시에 처리하기 위해 추가 작업이 필요하다.
- 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못한다.
멀티 프로그래밍
: 하나의 CPU로 여러 작업을 동시에 실행하는 기술
실시간 시스템
: 특정 시스템에서 일정 시간 안에 작업이 처리되도록 보장하는 것
분산 시스템(Distributed System)
: 개인용 컴퓨터와 인터넷이 보급되어 값이 싸고, 크기가 작은 컴퓨터를 하나로 묶어 대형 컴퓨터의 능력에 버금가게 만든 것
- 네트워크 상에 분산되어 있는 여러 컴퓨터로 작업을 처리, 그 결과를 상호 교환하도록 구성되어 있다.
클라이언트/서버 시스템(Client/Server)
: 작업을 요청하는 클라이언트와 요청 받은 작업을 처리하는 서버의 이중 구조
- 웹 시스템이 보급된 이후에 알려졌다.
- 모든 요청이 서버로 집중 돼, 서버 과부화가 생긴다는 문제점이 존재한다.
→ 해결 방법으로는 많은 서버, 큰 용량의 네트워크가 있다.
P2P 시스템
: 클라이언트/서버 구조의 단점인 서버 과부화를 극복하기 위해 만든 시스템
- 서버를 거치지 않고 사용자들을 직접 연결한다.(사용자-사용자)
- 냅스터(mp3 공유 시스템)에서 시작되어, 현재는 메신저/토렌트 시스템에서 사용되고 있다.
ex) 카카오톡
: 사용자가 서버에서 인증을 마치면 상대방과 P2P로 직접 연결한다.
서버가 없는 완전한 P2P 시스템, 블록체인
: P2P 서버 전체에 거래 장부를 분산해, 전체 시스템의 50% 이상이 동의시 거래 장부 변경이 가능하다.
클라우드 컴퓨팅
: 하드웨어와 소프트웨어를 클라우드라고 불리는 중앙 시스템에 숨기고 사용자는 필요한 서비스만 그때그때 이용하는 방식의 컴퓨팅 환경
- 기존 컴퓨터에서만 이루어지던 여러 서비스를 확장된 형태로 발전시킨 것이다.
- 클라우드 환경으로 옮겨오면서 더 이상 저장장치에 데이터를 저장해서 들고 다닐 필요가 없어졌다.
사물 인터넷(IoT; Internet of Things)
: 사물이 인터넷에 연결된 시스템
- 다양한 사물이 센서와 통신 기능을 내장, 스스로 통신하여 지능적 서비스를 제공하는 기술이다.
운영체제 주요 기능