1. 운영체제
1) 운영체제(OS)의 개념
하드웨어와 사용자 사이에서 인터페이스를 제공하고, 한정된 시스템 자원을 더욱 효율적으로 관리하여 컴퓨터의 성능을 향상하는 시스템 소프트웨어
-컴퓨터 시스템의 구성 : 하드웨어, 운영체제, 응용 프로그램, 사용자
2) 운영체제의 목적
① 처리량 향상
② 응답 시간 단축
③ 신뢰성 향상
④ 유용성 증대
3) 운영체제의 역할
∘시스템 자원을 관리하는 역할 *시스템 자원 : 입출력장치, 프로세스, 정보, 기억장치
① 프로세스 관리
-프로세스 : 주기억장치에서 현재 실행 중인 프로그램
② 기억장치 관리
③ 입출력장치 관리
④ 정보 관리
4) 운영체제의 분류
운영체제는 중앙처리장치(CPU)의 작업 처리 방식에 따라 나눌 수 있음
① 일괄 처리 시스템 : 자료를 즉시 처리하지 않고 일정 기간(or 일정량)이 될 때까지 모아 두었다가 한꺼번에 처리 하는 방식 (전기 요금, 수도세, 가스 요금, 급여 처리 등)
② 다중 프로그래밍 시스템 : 다수의 프로그램을 주기억장치에 적재시킨 후 CPU를 번갈아 가며 사용하는 방식
③ 다중 처리 시스템 : 하나의 컴퓨터에 두 개 이상의 CPU를 탑재하여 동시에 여러 프로그램을 처리하는 방식
④ 시분할 시스템 : 각 작업에 일정한 CPU 시간을 할당하고 주어진 시간 동안 작업하는 방식
⑤ 실시간 시스템 : 입력된 데이터를 즉시 처리한 후 바로 결과를 보냄 (환자 심박수 등)
-경성 실시간 시스템, 연성 실시간 시스템으로 나누어짐
⑥ 분산 처리 시스템 : 네트워크를 통해 연결된 다수의 컴퓨터 시스템에 작업과 자원을 분산시켜 처리하는 방식
(클라우드 등)
-목적 : 자원을 공유, 연산 속도와 신뢰성 향상, 통신 기능을 활용하기 위해서
3. 프로세스
1) 프로세스의 개념
일반적으로 ‘실행 중인 프로그램’이라는 개념이 널리 사용됨
*프로그램과의 비교
-프로그램 : 디스크에 저장된 파일과 같은 수동적인 개체
-프로세스 : 다음에 실행할 명령어를 지정하는 프로그램 카운터를 가진 능동적인 개체
-즉, 프로그램이 주기억장치에 적재되어 처리를 시작할 때 비로소 프로세스라는 활동적인 개체가 됨
* 프로세스 상태
초기 상태, 준비 상태, 실행 상태, 대기 상태, 종료 상태
2) 프로세스 제어 블록
: 프로세스에 대한 정보를 운영체제에 제공하는 자료 구조
-프로세스가 생성될 때 만들어졌다가 프로세스가 실행을 마치면 삭제됨
3) 병행 프로세스
: 두 개 이상의 연관된 프로세스가 동시에 실행되는 것
*두 개 이상의 프로세스들이 병행 처리 상태에 있으면 예측 불가능한 결과가 발생
이러한 오류를 막기 위해 다음과 같은 기법 사용
∘동기화 : 프로세스의 실행 시간에 따른 처리 순서를 결정하는 것
∘임계 구역 : 공유 자원(데이터)을 읽고 수정하는 등의 작업이 이루어지는 부분
∘상호 배제 : 프로세스 동기화의 특수한 형태, 하나의 프로세스가 공유 자원을 사용하는 동안에는 다른 프 로세스가 공유 자원을 사용하지 못하게 하는 것
4) 교착 상태
: 다중 프로그래밍 시스템에서 하나 이상의 프로세스가 절대 일어나지 않을 특정 사건을 기다리고 있는 상태
발생하는 이유?
: 다수의 프로세스에 의해 공유되는 자원이 특정 프로세스에 할당되어 독점적으로 사용될 때 다른 프로세스가 그 자원을 요구하면 발생
*교착 상태의 발생 조건
∘상호 배제 : 오직 하나의 프로세스만 자원을 사용할 수 있다는 조건
∘보유와 대기 : 어떤 프로세스가 자신에게 할당된 자원을 보유하면서 다른 프로세스의 보유 자원을 추가적으로 요구하는 상태
∘비선점 : 어떤 프로세스에 할당된 자원을 다른 프로세스가 강제로 선점할 수 없다는 조건
∘환형 대기 : 각 프로세스가 자신에게 할당된 자원을 보유하면서 상대방의 자원을 요청하는 상태
*교착 상태의 해결 방안
∘교착 상태 예방
∘교착 상태 회피
∘교착 상태 탐지
∘교착 상태 회복
5. 주기억장치 관리 기법
1) 단일 프로그래밍 기법 (초기 컴퓨터 시스템에서 사용하던 가장 단순한 방식)
-운영체제와 하나의 사용자 프로그램만 주기억장치에 적재
-주기억장치의 빈 공간이 있어도 다른 사용자 프로그램을 실행할 수 없음
-자원 낭비가 심함
-주기억장치의 용량보다 작은 프로그램만 실행
2) 다중 프로그래밍 기법
① 고정 분할 다중 프로그래밍 기법
-주기억장치를 다수의 고정된 크기로 나눠서 실행 중인 여러 프로세스에 할당
-분할은 하나의 작업이 적재될 수 있는 일정한 크기의 기억 공간
*단편화 현상 : 작업과 분할의 크기가 일치하지 않아 사용하지 못하는 빈 공간이 생기는 현상
-내부 단편화 : 분할에 작업을 적재한 후 빈 공간이 남는 현상
-외부 단편화 : 적재할 작업보다 분할의 크기가 작아서 분할이 빈 공간으로 남는 현상
② 가변 분할 다중 프로그래밍 기법
-고정 분할 다중 프로그래밍 기법의 단점을 보완한 기법
-고정된 분할의 경계를 없애고 각 작업에게 필요한 만큼의 기억 공간을 할당
-작업이 완료되면 사용되지 않는 기억 공간을 회수하여 관리
-새로운 작업의 적재와 완료된 작업의 기억 공간 회수가 반복됨에 따라 단편화 현상이 발생
통합 : 인접한 빈 공간을 합병하여 하나의 큰 공백을 형성하는 기법
집약 : 주기억장치의 한쪽 끝에 하나의 큰 공백을 형성하는 기법
6. 가상기억장치
: 현재 실행중인 프로그램의 일부를 주기억장치에 적재하고 나머지는 보조기억장치에 유지하여 프로그램 전체가 주기억장치에 존재하지 않아도 실행을 가능하게 함
7. 가상기억장치 구현 기법
1) 페이징 기법
-가상기억장치를 일정한 크기의 페이지로 나누어 관리하는 기법
-주기억장치는 페이지와 크기가 동일한 페이지 프레임으로 분할하여 사용
-가상 주소 V=(p, d) p=페이지 번호, d=변위, s=세그먼트 번호
2) 세그먼테이션 기법
-프로그램이나 데이터를 용도에 따라 가변 크기(세그먼트)로 분할하여 관리
-가상 주소 V=(s, d)
3) 페이징/세그멘테이션 혼합 기법
-모든 세그먼트를 페이지 단위로 다시 분할해 외부 단편화 현상을 해결
-세그먼트의 크기는 페이지의 정수 배
-가상 주소 V=(s, p, d)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 멀티미디어
: 미디어(그래픽, 이미지, 사운드, 비디오 등)를 두 개 이상 사용하여 어떤 목적을 가진 콘텐츠로 제작하고 통신 매체로 제 3자에게 제공하는 기술
2. 멀티미디어의 특징
: 디지털화, 쌍방향성, 통합성, 비선형성
디지털 저작권 관리(DRM)
1) 정의 : 콘텐츠의 생성에서 유통 및 관리까지의 전 과정에 대해 콘텐츠 제공자의 권리와 이익을 보호하기 위한 기 술
2) 근본적인 목적 : 콘텐츠 복제 자체를 불가능하게 만드는 게 아니라 복제는 자유롭게 허용하되 복제된 콘텐츠의 사용료는 반드시 지불할 수 있도록 하는 것
3) 구성 : 디지털 콘텐츠, 사용자, 라이센스
멀티미디어 콘텐츠의 저작권 보호 기법
1) 암호 기법
: 평문을 제 3자가 알 수 없도록 암호문으로 변환하여 전송하는 기법
2) 디지털 워터마킹 기법
: 사진이나 동영상 등의 디지털 콘텐츠에 저작권 정보와 같은 비밀 정보를 삽입하는 기술
*마크를 인지할 수 있는 ‘가시성 워터마킹’, 마크를 인지할 수 없는 ‘비가시성 워터마킹’으로 나뉨
3) 디지털 핑거프린팅 기법
: 정당하게 구입한 콘텐츠를 부정한 방법으로 재배포하는 것을 방지하는 것
저작권자 또는 판매자의 정보가 아닌 콘텐츠를 구입한 사용자의 정보를 콘텐츠에 삽입
모바일 플랫폼
1) 정의 : 모바일 운영체제를 기반으로 단말기 하드웨어에 상관없이 다양한 애플리케이션들이 실행될 수 있도록 지원하는 환경
2) 구현 방식
∘공개형 : API를 개발자에게 제공
특징
-라이선스 및 로열티 비용 부담
-업체별 차별화가 어려움
-신뢰성과 안정성 우수
종류 : 윈도우 폰, iOS
∘오픈 소스형 : 소스 코드를 공개
특징
-다양한 모바일 기기에 최적화된 사용자 인터페이스와 애플리케이션 제공 가능
-독자적인 플랫폼이 없더라도 저렴하게 애플리케이션 개발 가능
-모바일 콘텐츠의 다양화 유도 및 시장 활성화에 기여
종류 : 리모, 안드로이드, 심비안
3) 종류
리모 재단의 리모와 타이젠, 캐노니컬의 우분투 터치, 구글의 안드로이드, 애플의 iOS, 마이크로소프트의 윈도우 폰, 노키아의 심비안, RIM의 블랙베리 등
소셜 네트워크 서비스
1) 정의 : 인터넷에서 개인 정보를 바탕으로 타인과 상호 교제하는 서비스
2) 종류 : 페이스북, 트위터, 구글 플러스, 포스퀘어 등
소셜 네트워크 서비스의 특징
∘서버 중심으로 서비스가 실행되고 포털이 정하는 정책에 따라 사용 방식이 결정된다.
∘사용자의 콘텐츠 소유권이 제한적으로 인정된다.
∘온라인 커뮤니티의 확장으로 볼 수 있으며, 웹 기반의 정적 소셜 관계를 기반으로 하기 때문에, 미리 정해진 개별 취미와 친밀도 위주의 서비스를 제공한다.
∘웹에서 모바일 기기로 영역이 변경 및 확장되고 있다.
모바일 기기의 사회적 영향
1) 디지털 치매 : 모바일 기기의 과도한 사용으로 뇌 기능이 손상되어 어느 순간부터 인지 기능을 상실하는 질병
2) 스마트폰 중독
1. 유비쿼터스 컴퓨팅
1) 정의 : 일상생활에 사용되는 모든 사물에 칩을 넣어 컴퓨터를 언제 어디서나 존재하게 하여 사람들이 의식하지 않고 자연스럽게 이용하도록 만든 것
2) 핵심 개념 : 보이지 않는 컴퓨터, 조용한 컴퓨터
3) 특징
∘네트워크는 항상 연결되어 있어야 함
∘사용자에게 친화력 있는 인터페이스로 사용자에게 보이지 않아야 함
∘현실 세계에서 언제 어디서나 사용할 수 있어야 함
∘사용자의 상황에 따라 서비스 내용이 변해야 함
4) 종류
∘웨어러블 컴퓨팅
-정의 : 착용형, 의복 형태의 개인용 컴퓨터
-요구사항 : 하드웨어 플랫폼 기술, 사용자 인터페이스 기술, 상황 인지 기술, 저전력기술, 근거리 무선 통신 기술
∘노매딕 컴퓨팅
-정의 : 휴대기기와 결합해 언제 어디서나 외부와 접속할 수 있는 기술
-네트워크의 이동성을 극대화
∘퍼베이시브 컴퓨팅
-정의 : 모든 사물에 컴퓨터를 심어서 도처에 컴퓨터가 퍼져 있는 기술
-인터넷 냉장고와 같은 가전제품들
∘감지 컴퓨팅
-정의 : 인간의 감각기관 같은 센서 장치를 이용해 정보를 획득하고 처리하는 기술
-사용자의 행위 감지(사물을 만지거나 보거나 말하거나 움직임 등)
-주변 환경 감지(움직임, 거리 정보, 냄새, 소리, 빛, 진동, 온도, 압력 등)
-예 : MIT 미디어랩의 해피타트 프로젝트
사물인터넷
1) 등장 배경 : 유비쿼터스 컴퓨팅, 사물지능통신 등의 기술이 더욱 발전된 형태
2) 정의 : 각종 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
3) 구조
4) 핵심 기술
∘센싱 기술 : 가속도, 중력, 온도, 습도 등 다양한 현상을 센서로 감지하여 사물과 주위 환경으로부터 정보를 수집
∘네트워킹 기술 : 인간과 사물, 서브스 등의 분산된 컴퓨팅 자원을 서로 연결
∘인터페이스 기술 : 센서에 의해 감지된 센싱 정보를 이용하여 특정 기능을 수행하는 응용 서비스와 상호 연동
∘디바이스 기술 : 사물인터넷에 사용되는 장치와 관련된 기술
5) 상용화 사례 : 구글 글라스, 오큘러스 리프트, 스마트 워치, 구글카, 스마트 팜 서비스, 스마트 홈 서비스, 실시간 차량 관제 서비스 등
빅데이터 컴퓨팅
1) 등장 배경 : 스마트 폰과 같은 디지털 기기의 보급과 SNS의 부상으로 엄청난 양의 데이터가 생산
→ 이러한 방대한 양의 데이터를 다루는 기술 = 빅데이터
2) 일반적인 정의 : 일반적인 데이터베이스 규모를 넘어선 매우 큰 규모의 데이터로부터 가치를 추출하고 결과를 분 석하는 기술
3) 기존 데이터와의 차이점
4) 특성
∘데이터의 규모 : 데이터의 크기가 일정 수준 이상이어야 의미 있는 데이터를 얻을 수 있음
∘데이터의 변화 속도 : 잘 가공된 데이터가 아닌 가공되지 않고 계속해서 변하는 원시 데이터에서 가치를 찾음
∘데이터의 다양성 : 빅데이터가 다루는 데이터는 데이터가 만들어내는 정보의 가치가 사실에 가깝고 사람들이 체감하고 공감하는 내용에 가까움
5) 빅데이터 처리 프로세스와 분석 기술
빅데이터는 기존의 데이터 관리 및 분석 기술로는 감당하기 어려운 방대한 양의 데이터를 다룸.