운영체제
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어
- 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리
운영체제의 목적
- 처리 능력 (Throughput) : 일정 시간 내 시스템이 처리하는 일의 양
- 반환 시간 (Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용 가능도 (Availablity) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도 (Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
UNIX
- AT&T 벨(Bell) 연구소, MIT General Electric이 공동 개발한 운영체제
- 시분할 시스템을 위해 설계된 대화식 운영체제
- C언어로 작성, 이식성이 높으며 장치, 프로세스 간 호환성이 높음
- 트리 구조의 파일 시스템을 갖는다.
UNIX 시스템의 구성
- 커널(Kernel) : 하드웨어를 보호하고, 프로그램과 하드웨어 간 인터페이스 역할을 담당하고 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신 등 여러 기능을 수행
- 쉘(Shell) : 명령어 해석기 , 시스템과 사용자 간 인터페이스를 담당
LINUX
- 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
- 소스 코드가 무료로 공개되어 있어 프로그래머가 원하는 기능 추가 가능
Android
- 구글사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
- 모든 코드가 공개된 개방형 소프트웨어
기억장치 관리 - 반입 전략
- 반입 전략은 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
- 요구 반입(Demand Fetch) : 프로그램이 특정 데이터 등의 참조를 요구할 때 적재하는 방법
- 예상 반입(Anticipatory Fetch) : 프로그램에 의해 참조될 데이터등을 미리 예상하여 적재하는 방법
기억장치 관리 - 배치 전략
- 배치 전략은 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
- 최초 적합(First Fit) : 빈 영역 중 첫 번째 분할 영역에 배치
- 최적 적합(Best Fit) : 빈 영역 중 단편화를 가장 작게 남기는 분할 영역에 배치
- 최악 적합(Worst Fit) : 빈 영역 중 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
주기억장치 할당 기법
- 프로그램이나 데이터를 실행 시키기 위해 주기억장치에 어떻게 할당할 것인지를 결정하는 기법
- 연속 할당 기법 : 주기억장치에 연속으로 할당 ( ex. 단일 분할 할당 기법, 다중 분할 할당 기법 )
- 분산 할당 기법 : 특정 단위 조각으로 나누어 주기억장치 내에 분산하여 할당하는 방법 ( ex. 페이징 기법, 세그먼테이션 기법)
단일 분할 할당 기법
- 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 오버레이(Overlay) 기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 스와핑(Swapping) 기법 : 하나의 프로그램 전체를 주기억장치에 할당하고 필요에 따라 교체하는 기법
다중 분할 할당 기법
- 고정 분할 할당 기법 = 정적 할당 기법
- 주기억장치의 영역을 여러 개의 고정된 크기로 분할하고 프로그램을 각 영역에 할당하여 수행하는 기법
- 가변 분할 할당 기법 = 동적 할당 기법
- 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법
가상기억장치
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
- 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상 기억장치에 보관 해놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
- 가상기억장치의 구현 방법 : 페이징 기법, 세그먼테이션 기법
가상기억장치 구현 방법
- 페이징 기법 : 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 주기억장치의 영역에 적재시켜 실행하는 기법
- 프로그램을 일정 크기로 나눈 단위 : 페이지 (Page)
- 페이지 크기로 일정하게 나누어진 주기억장치의 단위 : 페이지 프레임(Page Frame)
- 세그먼테이션 기법 : 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행하는 기법
- 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위 : 세그먼트(Segment)
- 각 세그먼트는 고유한 이름과 크기를 갖는다.
페이지 교체 알고리즘
- 페이지 부재(Page Fault)가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법
- 종류 : OPT, FIFO, LRU , LFU, NUR , SCR 등
OPT (Optimal replacement, 최적 교체)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
- 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
FIFO ( First In First Out)
- 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
LRU (Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
LFU (Least Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체하는 기법
NUR (Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체하는 기법
- 최근 사용 여부 확인을 위해 참조 비트와 변형 비트가 사용된다.
SCR (Second Chance Replacement, 2차 기회 교체)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 스래싱 방지를 위한 워킹 셋 이론의 기반이 되었다.
- 시간 구역성(Temporal Locality) : 일정 시간 동안 집중적으로 하나의 페이지를 액세스 하는 현상
- 공간 구역성(Spatial Locality) : 일정 위치의 페이지를 집중적으로 액세스 하는 현상
워킹 셋
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정된다.
스래싱
- 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상 (페이지 처리 시간 < 페이지 교체 시간)
- 자주 페이지 부재가 발생하여 전체 시스템의 성능이 저하된다.
프로세스
- 실행중인 프로그램을 의미
- 프로세스의 정의
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체, 디스패치가 가능한 단위
- 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체
- 운영체제가 관리하는 실행 단위
PCB (Process Control Block , 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
- PCB에 저장되어 있는 정보
- 프로세스의 현재 상태
- 포인터
- 프로세스 고유 식별자
- CPU 레지스터 정보
- 주기억장치 관리 정보
- 입출력 상태 정보
- 계정 정보
--> 주입계 프포프C
프로세스 상태 전이
- 프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미
프로세스 상태 전이 관련 용어
- Dispatch(디스패치) : 대기중인 프로세스가 프로세서를 할당받아 실행 상태로 전이되는 과정
- Wake Up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
- Spooling (스풀링) : 입출력할 데이터를 직접 입출력 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
스레드
- 시스템의 여러 자원을 할당받아 실행하는 프로그램위 단위
- 경량(Light Weight) 프로세스라고도 한다.
스케줄링
- 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미
비선점 스케줄링 (Non-Preemptive)
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 일괄 처리 방식에 적합
- 종류 : FCFS, SJF , 우선순위, HRN , 기한부 등
선점 스케줄링 (Preemptive)
- 우선순위가 높은 다른 프로세스가 CPU를 강제로 뺴앗아 사용할 수 있는 스케줄링 기법
- 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 주로 사용
- 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백
FCFS (First Come First Service , 선입 선출)
- 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
ex)
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
평균 실행 시간 : (20 + 4 + 6) / 3 = 10
평균 대기 시간 : (0 + 20 + 24) / 3 = 14.6
평균 반환 시간 : (20 + 24 + 30) / 3 = 24.6
SJF (Shortest Job First , 단기 작업 우선)
- 준비상태 큐에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
ex)
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
평균 실행 시간 : (20 + 4 + 6) / 3 = 10
평균 대기 시간 : (0 + 4 + 10) / 3 = 4.6
평균 반환 시간 : (4 + 10 + 30) / 3 = 14.6
HRN (Highest Response-ratio Next)
- 대기 시간과 서비스(실행) 시간을 이용하는 기법
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다.
- 우선순위 계산식 = (대기시간 + 서비스 시간) / 서비스 시간
ex)
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
대기 시간 | 10 | 20 | 10 |
우선순위 계산 | (20 + 10) / 20 = 1.5 | (4 + 20) / 4 = 6 | (6 + 10) / 6 = 2.6 |
우선순위 | P2 --> P3 --> P1 |
환경 변수
- 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
- 변수명과 값으로 구성
- Windows에서 set을 입력하면 모든 환경 변수와 값을 출력
- UNIX나 LINUX에서는 set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수 값을 출력
Windows 기본 명령어
dir | 현재 디렉터리 파일 목록 표시 |
copy | 파일 복사 |
del | 파일 삭제 |
type | 파일의 내용을 표시 |
ren | 파일의 이름을 변경 |
md | 디렉터리 생성 |
cd | 동일한 드라이브에서 디렉터리 위치 변경 |
cls | 화면 내용 지움 |
attrib | 파일의 속성 변경 |
find | 파일에서 문자열을 찾음 |
chkdsk | 디스크 상태 점검 |
format | 디스크 표면을 트랙과 섹터로 나누어 초기화 |
move | 파일을 이동 |
UNIX/LINUX 기본 명령어
cat | 파일 내용을 화면에 표시함 |
cd | 디렉터리의 위치를 변경함 |
chown | 파일 소유자와 그룹을 변경함 |
cp | 파일을 복사함 |
rm | 파일을 삭제함 |
find | 파일을 찾음 |
kill | PID(프로세스 고유 번호)를 이용해 프로세스 종료 |
fork | 새로운 프로세스를 생성 |
ls | 현재 디렉터리의 파일 목록 표시 |
mkdir | 디렉터리 생성 |
rmdir | 디렉터리 삭제 |
mv | 파일 이동 |
ps | 현재 실행중인 프로세스 표시 |
pwd | 현재 작업중인 디렉터리 경로를 화면에 표시 |
who | 현재 시스템에 접속해 있는 사용자를 표시 |
Chmod
- 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정하는 UNIX 명령어
- 8진버 숫자를 이용한 방법으로 파일의 보호 모드를 설정할 수 있다.
ex) "batch.sh"파일에 대해 소유자와 그룹에게는 전체 권한을 주고, 기타 사용자에게는 읽기와 실행 권한만 부여하는 명령문을 8진법 숫자를 이용하여 작성해라
--> rwx rwx r-x
--> 111 111 101
--> 7 7 5
--> 답: chmod 775 batch.sh
IP 주소
- 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유 주소
- IPv4 : 8비트씩 4부분, 총 32비트로 구성 (A~E 클래스 5단계로 구성)
- IPv6 : 16비트씩 8부분, 총 128비트로 구성 (16진수로 표현하고, 콜론(:)으로 구분 , 보안 문제 해결)
IPv6의 주소 체계
- 유니캐스트(Unicast) : 단일 송신자와 단일 수신자 간의 통신 (1 : 1 통신)
- 멀티캐스트(Multicast) : 단일 송신자와 다중 수신자 간 통신 (1 : 다 통신)
- 애니캐스트(Anycast) : 단일 송신자와 가장 가까이 있는 단일 수산자 간 통신 (1 : 1 통신)
서브네팅
- 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것
- IP주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고 함
도메인 네임
- 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것
- 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 역할을 하는 시스템을 DNS라고 함
OSI 참조 모델
- ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)
- 물리 계층 : 두 장치 간 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
- 데이터 링크 계층 : 시스템 간 연결 설정과 유지 및 종료를 담당
- 네트워크 계층 : 시스템들 간 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
- 전송 계층 : 논리적 안정과 균일한 데이터 전송 서비스를 제공하여 종단 시스템 간 투명한 데이터 전송을 가능하게 함
- 세션 계층 : 송수신 측 간의 관련성을 유지하고 대화 제어를 담당
- 표현 계층 : 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 등의 기능을 수행
- 응용 계층 : 사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공
--> 물데네전세표응
네트워크 관련 장비
종류 | 기능 |
라우터(Router) | - 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송 최적 경로를 선택하는 기능이 추가된 장치 - 서로 다른 LAN 또는 LAN과 WAN을 연결하는 기능도 한다. |
리피터(Repeater) | - 거리 증가로 인해 감소된 디지털 신호를 위해 수신 신호를 재생시키거나 출력전앞을 높여 전송하는 장치 (증폭기) |
허브(Hub) | - 가까운 거리의 컴퓨터들을 연결하는 장치로, 각각의 회선을 통합하여 관리 - 신호 증폭 기능을 하는 리피터의 역할을 포함 |
브리지(Bridge) | - LAN과 LAN을 연결하거나 LAN안에서 컴퓨터 그룹을 연결하는 장치 - 브리지를 이용한 서브넷 구성 시 전송 가능한 회선수는 브리지가 n개일 때 n(n-1)/2개 이다. |
게이트웨이(Gateway) | - OSI 전 계층의 프로토콜 구조가 다른 네트워크를 연결하는 장치 - LAN에서 다른 네트워크에 데이터 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할 |
프로토콜
- 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약
- 톰 마릴이 정의하였고, 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 프로토콜로 정의함
프로토콜의 기본 요소
- 구문(Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정
- 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 오류 제어 정보를 규정
- 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정
패킷 교환 방식
- 메시지를 일정한 길이의 패킷으로 잘라서 전송하는 방식
- 가상 회선 방식 :
- 가상 통신 회선을 미리 설정하여 연결을 확립해놓고 설정된 경로를 따라 패킷들을 순서적으로 운반하는 방식
- 정보 전송 전에 제어 패킷에 의해 경로가 설정된다.
- 패킷의 송수신 순서가 같다.
- 데이터그램 방식 :
- 연결 경로 설정하지 않고 인접한 노드들의 트래픽을 감안하여 패킷을 순서에 상관없이 독립적으로 운반하는 방식
- 패킷마다 전송 경로가 다르기 때문에, 패킷의 목적지의 완전한 주소를 가져야 한다.
- 순서 상관없이 여러 경로를 통해 도착한 패킷들은 수신 측에서 순서를 재정리한다.
TCP/IP
- 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
- TCP :
- OSI 7계층의 전송계층
- 가상 회선 방식 기반 양방향 연결 서비스
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공
- IP :
- OSI 7계층의 네트워크 계층
- 데이터그램 방식을 기반으로 비연결형 서비스
- 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공
TCP/IP 구조
OSI | TCP/IP | 기능 |
응용 계층 표현 계층 세션 계층 |
응용 계층 | - 응용 프로그램 간 데이터 송수신 제공 - TELNET, FTP, SMTP, SNMP, DNS, HTTP 등 |
전송 계층 | 전송 계층 | - 호스트들 간 신뢰성 있는 통신 제공 - TCP, UDP, RTCP |
네트워크 계층 | 인터넷 계층 | - 데이터 전송을 위한 주소 지정, 경로 설정 제공 기능 - IP, ICMP, IGMP, ARP, RARP |
데이터 링크 계층 물리 계층 |
네트워크 액세스 계층 | - 실제 데이터(프레임)를 송수신 하는 역할 - Ethernet, IEEE802, HDLC, X.25, RS-232C, ARQ 등 |
UDP
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공하는 프로토콜
- TCP에 비해 오버헤드가 적고, 전송 속도가 빠름
- 실시간 전송에 유리, 신뢰성 보다는 속도가 중요
RTCP
- RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션에 참여한 각 참여자들에게 주기적으로 제어정보를 전송
- 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화(Multiplexing)을 제공
ICMP
- IP와 조합하여 통신중에 발생하는 제어 메시지를 관리하는 역할
- 헤더는 8Byte로 구성된다.
ARP/RARP
- ARP(Address Resolution Protocol, 주소 분석 프로토콜)
- 호스트의 IP주소를 연결된 네트워크 접속 장치의 물리적(MAC) 주소로 변환하는 기능을 수행
- RARP(Reverse Address Resolution Protocol)
- 반대로 물리적(MAC)주소를 , IP주소로 변환하는 기능을 수행하는 프로토콜 (= 역순 주소 프로토콜)
네트워크 관련 신기술
- 메시 네트워크(Mesh Network) :
- 차세대 이동통신, 홈네트워킹, 공공 안전 등 특수목적을 위한 새로운 방식의 네트워크 기술
- 대규모 디바이스의 네트워크 생성에 최적화
- 피코넷(PICONET)
- 통신장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
- 애드 혹 네트워크 (Ad-hoc Network)
- 모바일 호스트만을 이용하여 구성한 네트워크
- 단기간 사용되는 경우나, 유선망을 구성하기 어려운 경우에 적합하다.
- 파장 분할 다중화(WDM; Wavelength Division Multiplexing)
- 광섬유를 이용한 통신기술의 하나로 여러 대의 단말기가 동시에 통신 회선을 사용할 수 있도록 하는 기술
- 소프트웨어 정의 데이터센터(SDDC; Software Defined Data Center)
- 데이터 센터의 모든 자원을 가상화하여 인력 개입 없이 소프트웨어 조작만으로 관리 및 제어되는 데이터 센터를 의미
- 컴퓨팅, 네트워킹, 스토리지, 관리 등을 모두 소프트웨어로 정의
- 개방형 링크드 데이터(LOD, Linked Open Data)
- Linked Data와 Open Data의 합성어로 누구나 사용할 수 있도록 웹상에 공개된 연계 데이터를 의미
- 데이터를 개별 URI로 식별하고 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 모형
- IOT(Internet Of Things , 사물 인터넷)
- 실세계와 가상세계의 다양한 사물들을 인터넷으로 연결하여 진보된 서비스를 제공하기 위한 기술
- 클라우드 컴퓨팅(Cloud Computing)
- 중앙 컴퓨터에 컴퓨팅 자원을 두고 인터넷 기능을 갖는 단말기로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행할 수 있는 가상화된 환경을 의미
- USN(Ubiquitous Sensor Network)
- 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크
- RFID 태그를 부착하고 이를 통해 주변을 탐지해 네트워크에 연결하여 정보를 관리
네트워크 구축
- 두 대 이상의 컴퓨터를 연결하여 자원을 공유하는 것
- 성형 (Star , 중앙 집중형) : 중앙에 중앙 컴퓨터가 있고 이를 중심으로 연결되는 중앙 집중식의 네트워크 구성 형태
- 링형 (Ring, 루프형) : 컴퓨터, 단말장치를 서로 이웃하는 것끼리 연결시킨 포인트 투 포인트 방식의 구성 형태
- 버스형(Bus) : 한 개 통신 회선에 여러 대의 단말장치가 연결되어 있는 형태
- 계층형(Tree, 분산형) : 중앙 컴퓨터와 일정 지역 단말장치까지는 하나의 통신회선으로 연결하고 이웃하는 단말장치는 일정 지역에 설치된 중간 단말장치로부터 다시 연결시키는 형태
- 망형 (Mash) : 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태로 노드의 연결성이 높다. 모든 노드를 망형으로 연결하려면 노드의 수가 n개일 때, n(n-1)/2개의 회선이 필요하고 노드당 n-1개의 포트가 필요
네트워크의 분류
- 근거리 통신망(LAN) :
- 가까운 거리의 자원을 연결하여 구성
- 전송 속도가 빠르고 에러 발생율이 낮다
- 주로 버스형, 링형 구조를 사용
- 광대역 통신망(WAN) :
- 멀리 떨어진 사이트들을 연결하여 구성
- 통신 속도가 느리고, 에러 발생율이 높다
IEEE 802의 표준 규격
표준 | 내용 |
802.1 | 전체 구성, OSI 참조 모델과의 관계, 통신망 관리등에 관한 규약 |
802.2 | 논리 링크 제어(LLC) 계층에 관한 규약 |
802.3 | CSMA/CD 방식의 매체 접근 제어 계층에 관한 규약 |
802.4 | 토큰 버스 방식의 매체 접근 제어 계층에 관한 규약 |
802.5 | 토큰 링 방식의 매체 접근 제어 계층에 관한 규약 |
802.6 | 도시형 통신망(MAN)에 관한 규약 |
802.9 | 종합 음성/데이터 네트워크에 관한 규약 |
802.11 | 무선 LAN에 관한 규약 |
IEEE 802.11의 버전
버전 | 내용 |
802.11 | 2.4GHz 대역 전파, CSMA/CD 기술, 2Mbps 전송 속도 지원 |
802.11a | 5GHz 대역 전파, OFDM 기술, 54Mbps 전송 속도 지원 |
802.11b | 802.11의 초기 개선안으로 11Mbps로 5배 이상 빠르게 개선 |
802.11e | Qos 기능이 지원되도록 매체 접근 제어(MAC) 계층에 해당하는 부분을 수정 |
802.11g | 2.4GHz 대역 전파 , 54Mbps 전송 속도 지원 |
802.11n | 2.4GHz 대역과 5GHz 대역 , 최고 600Mbps 전송 속도 지원 |
NAT ( Network Address Translation , 네트워크 주소 변환)
- 한 개의 정식 IP 주소에 대량의 가상 사설 IP 주소를 할당 및 연결하는 기능
- 한 개의 IP 주소를 사용하여 제한의 문제가 있지만 IP 마스커레이드를 이용해 해결할 수 있다.
스위치
- 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
스위치 | 기능 |
L2 스위치 | - 일반적으로 부르는 스위치 - MAC 주소를 기반으로 프레임 전송 - OSI 2계층 |
L3 스위치 | - L2 스위치에 라우터 기능이 추가된 것, IP 주소 기반으로 패킷을 전송 - OSI 3계층 |
L4 스위치 | - 로드밸런서가 달린 L3스위치, IP 주소 및 TCP/UDP 기반 사용자들의 요구를 서버의 부하가 적은 곳에 배분하는 로드밸런싱 기능을 제공 - OSI 4계층 |
L7 스위치 | - IP 주소, TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드밸런싱 - OSI 7계층에 속하는 장비 |
경로 제어 (Routing)
- 전송 경로 중에서 최적 패킷 경로를 결정하는 기능
- 경로 제어표(Routing Table)을 이용하여 경로제어가 이루어짐
- 대표적인 경로 제어 프로토콜 : IGP(RIP, OSFP) , EGP , BGP
IGP
- 하나의 자율 시스템(AS) 내의 라우팅에 사용되는 프로토콜
- RIP : 거리 벡터 라우팅 프로토콜 , 최단 경로 검색에 벨만 포드 알고리즘 사용
- OSFP : 대규모 네트워크 사용 , 최단 경로 검색에 다익스트라 알고리즘 사용
EGP/BGP
- EGP (Exterior Gateway/Protocol) : 자율 시스템(AS)간 라우팅, 즉 게이트웨이 간의 라우팅에 사용
- BGP (Border Gateway Protocol) :
- EGP의 단점을 보완하기 위해 만들어진 프로토콜
- 초기 BGP 라우터들이 연결될 때에는 전체 경로 제어표(라우팅 테이블)를 교환하고, 이후에는 변화된 정보만 교환
흐름 제어(Flow Control)
- 송수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능
- 정지-대기 (Stop-and-Wait)
- 수신 측의 확인 신호(ACK)를 받은 후 다음 패킷을 전송하는 방식
- 한 번에 하나의 패킷만 전송 가능
- 슬라이딩 윈도우(Sliding Window)
- 확인 신호, 즉 수신 통지를 이용해 송신 데이터의 양을 조절하는 방식
- 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷 수만큼 연속으로 전송하는 방식으로 한번에 패킷 전송이 가능하여 효율이 좋다.
- 확인 신호 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기를 의미한다.
SW 관련 신기술
- 블록체인(Blockchain)
- P2P 네트워크를 이용해 온라인 금융 거래 정보를 온라인 네트워크 참여자의 디지털 장비에 분산 저장하는 기술
- 매시업(Mashup)
- 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술로 다수 콘텐츠를 종합하여 하나의 서비스로 제공하는 웹 사이트 또는 애플리케이션을 말함
- 서비스 지향 아키텍처(SOA; Service Oriented Architecture)
- 기업 정보 시스템을 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처
- SOA 기반 애플리케이션 구성 계층 : 표현, 업무 프로세스, 서비스 중간, 애플리케이션, 데이터 저장 계층
- 디지털 트윈(Digital Twin)
- 현실속의 사물을 소프트웨어로 가상화한 모델
- 실제 물리적 자산을 소프트웨어로 가상화
- 그레이웨어(Grayware)
- 소프트웨어 제공 입장에서는 악의적이지 않은 유용한 소프트웨어라 주장할 수 있지만, 사용자 입장에서는 유용할 수도 있고 악의적일 수도 있는 애드웨어, 트랜웨어, 기타 악성 코드나 악성 공유웨어를 말함
- 양자 암호키 분배(QKD; Quantum Key Distribution)
- 양자 통신을 위해 비밀키를 분배하여 관리하는 기술
- 두 시스템이 비밀키를 안전하게 공유하기 위해 양자 암호키 분배 시스템을 설치하여 운용하는 방식으로 활용됨
- 서비스형 소프트웨어(SaaS; Software as a Service)
- 소프트웨어 여러 기능 중 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 소프트웨어
- 시맨틱 웹(Semantic Web)
- 컴퓨터가 사람 대신 정보 읽고 가공하여 새로운 정보 만드는 차세대 지능형 웹
- 리치 인터넷 애플리케이션 (RIA; Rich Internet Application)
- 플래시 애니메이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기존 HTML보다 역동적이고 인터랙티브한 웹 페이지를 제공하는 신개념 플래시 웹 페이지 제작 기술
HW 관련 신기술
- 앤 스크린(N-Screen) : N개 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용할 수 있는 서비스
- 신 클라이언트 PC (Thin Client PC)
- 하드 디스크나 주변장치 없이 기본 메모리만으로 서버와 네트워크로 운용되는 개인용 컴퓨터
- 서버 기반 컴퓨팅과 관계가 깊음
- 엠디스크(M-DISC, Millennial DISC)
- 한 번의 기록만으로 자료를 영구 보관할 수 있는 광 저장장치
- 디스크 표면의 무기물층에 레이저를 이용해 자료를 조각해서 기록
- 멤스(MEMS; Micro-Electro Mechanical Systems)
- 센서, 액추에이터 등 미세 가공하여 전기기계적 동작을 할 수 있도록 한 초미세 장치
- 멤리스터(Memristor)
- 메모리와 레지스터의 합성어로, 전류의 방향과 양 등 기존의 경험을 모두 기억하는 특별한 소작
- 트러스트존 기술(TrustZone Technology)
- 프로세스 내에 일반 구역과 보안 구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술
RAID
- 2개 이상의 하드디스크로 디스크 배열을 구성하고, 파일을 구성하는 데이터 블록들을 서로 다른 디스크에 분산 저장하거나 다중화하는 저장 기술로, 구현된 기술에 따라 레벨로 구분
레벨 | 내용 |
RAID 0 | - 스트라이핑이라고 불림 - 디스크를 병렬로 연결하여 디스크 개수만큼 용량과 속도가 배로 증가 - 하나의 디스크만 손상되어도 전체 데이터가 파손 |
RAID 1 | - 미러링이라고 불림 - 같은 데이터를 다른 디스크에 동일하게 복사하는 방식 |
RAID 2~4 | - 하나의 디스크에 오류 정정 부호를 비트/바이트/워드 단위로 저장하고 나머지는 RAID0과 같이 활용해 안전성을 높인 모드 - 하나의 디스크가 손상되어도 정상 가동이 가능하며 최소 3개의 디스크가 필요 |
RAID 5 | - 오류 정정 부호를 블록 단위로 여러 디스크에 분산 저장한 방식 - 하나의 디스크가 손상되어도 정상 가동이 가능하고 최소 3개의 디스크가 필요 |
RAID 6 | - RAID 5와 원리는 같으나 오류 정정 부호 2개를 지정하는 방식 - 두 개의 디스크가 손상되어도 정상 가동이 가능하고 최소 4개의 디스크가 필요 |
Secure OS
- 보안 기능을 갖춘 커널을 이식하여 외부 침입으로부터 시스템 자원을 보호하는 운영체제
- 보안 커널은 TCB 기반으로 참조 모니터의 개념을 구현하고 집행
- Secure OS의 기능 : 식별 및 인증, 임의적/강제적 접근통제, 객체 재사용 보호, 완전한 조정, 신뢰 경로 감사 및 감사기록 축소 등
DB 관련 신기술
- 하둡(Hadoop)
- 오픈 소스 기반 분산 컴퓨팅 플랫폼
- 구글의 맵 리듀스 엔진을 사용
- 가상화된 대형 스토리지를 형성하고, 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크
- 맵리듀스(MapReduce)
- 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
- 흩어져 있는 데이터를 묶는 Map 작업을 수행한 후 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce 작업을 수행
- 데이터 마이닝(Data Mining)
- 대량의 데이터를 분석하여 데이터에 내재된 변수 사이의 상호 관계를 규명하여 일정한 패턴을 찾아내는 기법
- 타조(Tajo)
- 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트
- OLAP (Online Analytical Processing)
- 다차원 데이터의 통계적인 요약 정보를 분석해 의사결정에 활용하는 방식
- OLAP 연산 : Roll-up , Drill-down, Drill-through, Drillacross, Pivoting, Slicing, Dicing
- 브로드 데이터(Broad Data)
- 다양한 채널에서 생성된 것으로 기업 마케팅에 있어 효율적이고 다양한 데이터
회복
- 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
- 종류 : 연기 갱신 기법, 즉각 갱신 기법, 그림자 페이지 대체 기법, 검사점 기법
REDO / UNDO
- REDO : 데이터베이스가 비정상 종료되었을 때 디스크에 저장된 로그를 분석해 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉, 로그를 이용해 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산
- UNDO : 데이터베이스가 비정상 종료되었을 때 디스크에 저장된 로그를 분석해 트랜잭션의 시작에 대한 기록은 있지만 완료에 대한 기록은 없는 트랜잭션들이 작업핸 변경 내용들을 모두 취소한다 즉, 로그를 이용해 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경하는 연산
연기 갱신 기법
- 트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법
- Redo(재시도) 작업만 가능
즉각 갱신 기법
- 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법
- Redo(재시도)와 Undo(취소) 모두 사용 가능하다.
병행 제어
- 동시에 실행되는 트랜잭션 간의 상호 작용을 제어하는 것
- 병행제어 기법의 종류 : 로킹(Locking), 타임 스탬프 순서, 최적 병행수행, 다중 버전 기법
로킹
- 액세스 하기 전 Lock(잠금)을 요청해서 Lock이 허락되야만 그 로킹 단위를 액세스할 수 있도록 하는 기법
- 주요 데이터의 액세스를 상호 배타적으로 한다.
타임 스탬프 순서
- 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
로킹 단위
- 한꺼번에 로킹할 수 있는 객체의 크기를 의미
- 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있다.
- 로킹 단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아진다.
- 로킹 단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지면 병행성 수준이 높아진다.
교착상태
- 서로 다른 프로세스가 점유하고 있는 자원을 요구하여 무한정 기다리는 현상
- 교착상태 발생의 필요 충분 조건
조건 | 내용 |
상호 배제(Mutual Exclusion) | 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함 |
점유와 대기(Hold and Wait) | 최소 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 |
비선점(Non-Preemption) | 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함 |
환형 대기(Circular Wait) | 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함 |
교착상태의 해결 방법
기법 | 내용 |
예방 기법(Prevention) | - 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법 - 교착상태 발생의 네 가지 조건 중 어느 하나를 제거함으로써 수행됨 |
회피 기법(Avoidance) | - 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법 - 주로 은행원 알고리즘이 사용됨 |
발견 기법(Detection) | 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것 |
회복 기법(Recovery) | 교착 상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것 |
참고
https://code-lab1.tistory.com/60
https://recipes4dev.tistory.com/175