운영체제
- 운영체제(OS; Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램 모임이다.
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종이다.
- 프로세서, 기억장치, 입/출력장치, 파일 및 정보 등의 자원을 관리한다.
UNIX
- UNIX는 1960년대 AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제이다.
- 시분할 시스템을 위해 설계된 대화식 운영체제이다.
- 대부분 C 언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
- 트리 구조의 파일 시스템을 갖는다.
UNIX 시스템의 구성
커널
- UNIX의 가장 핵심적인 부분으로 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다
- 프로세스 관리, 기억장치 관리, 파일 관리, 입/출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행한다.
쉘
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다.
- 시스템과 사용자 간의 인터페이스를 담당한다.
Android
- Android는 구글 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제이다.
- 모든 코드가 공개된 개방형 소프트웨어이다.
- 자바와 코틀린으로 애플리케이션을 작성한다.
기억장치 - 배치 전략
- 배치 전력은 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략이다.
- 최초 적합(First Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번쨰 분할 영역에 배치시키는 방법
- 최적 적합(Best Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 주에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
- 최악 적합(Worst Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
가상기억장치 구현 기법
페이징(Paging) 기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법이다.
- 프로그램을 일정한 크기로 나눈 단위를 페이지라고 하고, 페이지 크기로 일정하게 나누어진 주기억장치의 단위를 페이지 프레임이라고 한다.
세그먼테이션(Segmentation)기법
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법이다.
- 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖는다.
페이지 교체 알고리즘
- 페이지 부재(Page Fault)가 발생하면 가상기억장치에서 필요한 페이즈를 찾아 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법이 페이지 교체 알고리즘이다.
- 종류: OPT, FIFO, LRU, LFU, NUR, SCR 등
FIFO
FIFO(First In First Out)는 각 페이지가 주기억장치에 적재될 때마다 그떄의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법이다.
LRU
LRU(Least Recently Used)는 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법이다.
LFU
- LFU(Least Frequently Used)는 사용 빈도가 가장 적은 페이지를 교제하는 기법이다.
- 활발하게 사용되는 페이지는 사용 횟수가 많아 교체되지 않고 사용된다.
Locality
- Locality(국부성, 지역성, 구역성, 국소성)는 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론이다.
- 스래싱을 방지하기 위한 워킹 셋 이론의 기반이 되었다.
- 시간 구역성(Temporal Locality): 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
- 공간 구역성(Spatial Locality): 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상
워킹 셋
- 워킹 셋(Working Set)은 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합이다.
- 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정된다.
스래싱
- 스래싱(Thrashing)은 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상이다.
- 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정 중에 자주 페이지 부재가 발생함으로써 나타나며, 전테 시스템의 성능이 저하된다.
프로세스 상태 전이
프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다.

프로세스 상태 전이 관련 용어
Dispatch(디스패치)
준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정이다.
Wake Up
입/출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이 되는 과정이다.
Spooling(스풀링)
입/출력장치의 공유 및 상대적으로 느린 입/출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입/출력할 데이터를 직접 입/출력장치에 보내지 않고 나중에 한꺼번에 입/출력하기 위해 디스크에 저장하는 과정이다.
스레드
- 스레드(Thread)는 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내에서의 작업 단위로 사용된다.
- 프로세스의 일부 특성을 갖고 있기 때문에 경량(Light Weight) 프로세스라고도 한다.
SJF
- SJF(Shortest Job First, 단기 작업 우선)는 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다.
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이다.
HRN
- HRN(Highest Response-ratio Next)은 대기 시간과 서비스(실행) 시간을 이용하는 기법이다.
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다.
- 우선순위 계산식
우선순위 계산식 = (대기 시간 + 서비스 시간)/서비스 시간
RR
- RR(Round Robin)은 각 프로세스를 시간 할당량(Time Slice, Quantum) 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주는 기법이다.
- 시분할 시스템을 위해 고안된 방식으로, 할당되는 시간의 크기가 작으면 작은 프로세스들에게 유리하다.
- 할당되는 시간이 클 경우 FCFS 기법과 같아지고, 할당되는 시간이 작을 경우 문맥 교환 및 오버헤드가 자주 발생되어 요청된 작업을 신속히 처리할 수 없다.
SRT
- SRT(Shortest Remaining Time)는 현재 실행주인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법이다.
- 시분할 시스템에 유용하며, 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야하므로 오버헤드가 증가한다.
환경변수
- 환경변수란 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임을 의미한다.
- 환경 변수는 변수명과 값으로 구성된다.
- Windows에서 set을 입력하면 모든 환경 변수와 값을 출력한다.
- UNIX나 LINUX에서는 setm envm printenv, setenv 중 하나를 입력하면 모든 환경 변수와 값을 표시한다.
UNIX/LINUX 기본 명령어
| 구분 | 설명 |
|---|
| cat | 파일 내용을 화면에 표시함 |
| cd | 디렉터리의 위치를 변경함 |
| chown | 파일 소유자와 그룹을 변경함 |
| cp | 파일을 복사함 |
| rm | 파일을 삭제함 |
| find | 파일을 찾음 |
| kill | PID(프로세스 고유 번호)를 이용하여 프로세스를 종료함 |
| fork | 새로운 프로세스를 생성함 |
| ls | 현재 디렉터리의 파일 목록을 표시함 |
| uname | 시스템의 이름과 버전, 네트워크 호스트명 등의 시스템 정보를 표시함 |
| mv | 파일을 이동함 |
| ps | 현재 실행중인 프로세스를 표시함 |
| pwd | 현재 작업중인 디렉터리 경로를 화면에 표시함 |
| who | 현재 시스템에 접속해 있는 사용자를 표시함 |
chmod
- chmod는 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정하는 UNIX 명렁어이다.
- 8진법 숫자를 이용한 방법으로도 파일의 보호 모드를 설정할 수 있다.
IP 주소
IP 주소(Internet Protocol Address)는 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소이다.
IPv4(Internet Protocol version 4)
- 8비트씩 4부분, 총 32비트로 구성되어 있다.
- 네트워크 부분의 길이에 따라 A 클래스에서 E 클래스까지 총 5단계로 구성되어 있다.
IPv6(Internet Protocol version 6)
- IPv6은 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.
- 16비트씩 8부분, 총 128비트로 구성되어 있다.
- 각 부분을 16진수로 표현하고, 콜론(:)으로 구분한다.
- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있다.
IPv6의 주소 체계
- 유니캐스트(Unicast): 단일 송신자와 단일 수신자 간의 통신(1 대 1)
- 멀티캐스트(Multicast): 단일 송신자와 다중 수신자 간의 통신(1 대 다)
- 애니캐스트(Anycast): 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신(1 대 1)
서브네팅(Subnetting)의 예
192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 Subnet으로 나누시오. (단 IP Subnet-Zero를 적용했다.)
192.168.1.0/24 네트워크의 서브넷 마스크는 1의 개수가 24개 즉 C 클래스에 속하는 네트워크이다.
| 11111111 | 11111111 | 11111111 | 00000000 |
|---|
| 255 | 255 | 255 | 0 |
서브넷 마스크를 Subnet으로 나눌 때는 서브넷 마스크가 0인 부분, 즉 마지막 8비트를 이용하면 된다.
Subnet으로 나눌 때 "3개의 Subnet으로 나눈다"는 것처럼 네트워크가 기준일 떄는 왼쪽을 기준으로 나눌 네트워크 수에 필요한 비트를 할당하고 나머지 비트로 호스트를 구성하면 된다.
3개의 Subnet으로 구성하라 했으니 8비트 중 3을 표현하는데 필요한 2비트를 제외하고 나머지 6비트를 호스트로 구성하면 된다.
| 11111111 | 11111111 | 11111111 | 00/000000 |
|---|
| 255 | 255 | 255 | 0 |
호스트 ID가 6Bit로 설정되었고, 문제에서 FLSM(Fixed Length Subnet Mask), 즉 고정된 크기로 주소를 할당하라고 했으므로 3개의 네트워크에 64개(2의 6승 = 64)씩 고정된 크기로 할당하면 다음과 같다.
| 네트워크(ID) | 호스트 수 | IP 주소 범위 |
|---|
| 1(00) | 64 | 192.168.1.0(00000000) ~ 63(00111111) |
| 2(01) | 64 | 192.168.1.64(01000000) ~ 127(01111111) |
| 3(10) | 64 | 192.168.1.128(10000000) ~ 191(10111111) |
OSI 참조 모델
OSI 참조 모델은 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)이다.
물리 계층(Physical Layer)
전공에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기정, 기능적, 절차적 특성에 대한 규칙을 정의한다.
데이터 링크 계층(Data Link Layer)
두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당한다.
네트워크 계층(Network Layer, 망계층)
개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.
전송 계층(Transport Layer)
논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 한다.
세션 계층(Session Layer)
송/수신 측 간의 관련성을 유지하고 대화 제어를 담당한다.
표현 계층(Presentation Layer)
서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층으로, 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 등의 기능을 수행한다.
응용 계층(Application Layer)
사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.
네트워크 관련 장비
라우터(Router)
- 브리지와 같이 LAN과 LAV의 연결 기능에 데이터 전송의 최적 경로를 선택하는 기능이 추가된 장치이다.
- 서로 다른 LAN 또는 LAN과 WAN을 연결하는 기능도 한다.
리피티(Repeater)
거리가 증가할수록 감쇠하는 디지털 신호의 장거리 전송을 위해 수신한 신호를 재생시키거나 출력 전압을 높여 전송하는 장치이다.
허브(Hub)
- 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치로, 각각의 회선을 통합하여 관리한다.
- 신호 증폭 기능을 하는 리피터의 역할을 포함한다.
브리지(Bridge)
- LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결하는 장치이다.
- 브리지를 이용한 서브넷(Subnet) 구성 시 전송 가능한 회선 수는 브리지가 n개일 때, n(n-1)/2개이ek.
게이트웨이(Gateway)
- OSI 전 계층의 프로토콜 구조가 다른 네트워크를 연결하는 장치이다.
- LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할을 한다.
프로토콜
- 프로토콜은 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약이다.
- 1965년 톰 마릴이 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'란 뜻의 프로토콜로 정의한 바 있다.
프로토콜의 기본 요소
- 구문(Syntax): 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정함
- 의미(Semantics): 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정함
- 시간(Timing): 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정함
패킷 교환 방식
패킷 교환 방식은 메시지를 일정한 길이의 패킷으로 잘라서 전송하는 방식으로, 가상 회선 방식과 데이터그램 방식이 있다.
가상 회선 방식
- 단말기 상호 간에 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이의 연결을 확립한 후에 설정된 경로를 따라 패킷들을 순서적으로 운반하는 방식이다.
- 정보 전송 전에 제어 패킷에 의해 경로가 설정된다.
- 모든 패킷은 같은 경로로 발생 순서대로 전송된다.
즉, 패킷의 송/수신 순서가 같다.
데이터그램 방식
- 연결 경로를 설정하지 않고 인접한 노드들의 트래픽(전송량) 상황을 감안하여 각각의 패킷들을 순서에 상관없이 독립적으로 운반하는 방식이다.
- 패킷마다 전송 경로가 다르므로, 패킷은 목적지의 완전한 주소를 가져야 한다.
- 순서에 상관없이 여러 경로를 통해 도착한 패킷들은 수신 측에서 순서를 재정리한다.
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol)는 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜이다.
TCP(Transmission Control Protocol)
- OSI 7계층의 전송 계층에 해당한다.
- 가상 회선 방식을 기반으로 하는 양방향 연결 서비스를 제공한다.
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공한다.
IP(Internet Protocol)
- OSI 7계층의 네트워크 계층에 해당한다.
- 데이터그램 방식을 기반으로 하는 비연결형 서비스를 제공한다.
- 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공한다.
UDP
- UDP(User Datagram Protocol)는 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공하는 프로토콜이다.
- TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로, 오버헤드가 적고, 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다.
- 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요시되는 네트워크에서 사용된다.
L2TP
- L2TP(Layer 2 Tunneling Protocol)는 PPTP와 L2F의 기술적 장점들을 결합하여 만들어진 터널링 프로토콜이다.
- 데이터 링크 계층에서 구현되는 터널링 프로토콜이다.
- 자체적으로 암호화 및 인증 기능을 제공하지 않아 다른 보안 프로토콜과 함께 사용되는 경우가 많다.
- PPTP(Point to Point Tunneling Protocol): PPP패킷을 IP 패킷에 캡슐화하여 통과시키기 위한 터널링 프로토콜
- L2F(Layer 2 Forwarding): 인터넷을 통한 VPN(가상 사설망) 연결을 위해 개발된 터널링 프로토콜
ICMP
- ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는 IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할을 한다.
- 헤더는 8Byte로 구성된다.
ARP / RARP
ARP(Address Resolution Protocol, 주소 분석 프로토콜)
호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 변환하는 기능을 수행하는 프로토콜이다.
RARP(Reverse Address Resolution Protocol)
ARP와 반대로 물리적 주소를 IP 주소로 변환하는 기능을 수행하는 프로토콜로, 역순 주소 결정 프로토콜이라 불린다.
네트워크 구축
네트워크는 두 대 이상의 컴퓨터를 전화선이나 케이블 등으로 연결하여 자원을 공유하는 것을 말한다.
성형(Star, 중앙 집중형)
중앙에 중앙 컴퓨터가 있고, 이를 중심으로 단말장치들이 연결되는 중앙 짖ㅂ중식의 네트워크 구성 형태이다.
링형(Ring, 루프형)
컴퓨터와 단말장치들을 서로 이웃하는 것끼리 연결시킨 포인트 투 포인트9Point-to-Point) 방식의 구성 형태이다.
버스형(Bus)
한 개의 통신 회선에 여러 대의 단말장치가 연결되어 있는 형태이다.
계층형(Tree, 분산형)
중앙 컴퓨터와 일정 지역의 단말장치까지는 하나의 통신 회선으로 연결시키고, 이웃하는 단말장치는 일정 지역 내에 설치된 중간 단말장치로부터 다시 연결시키는 형태이다.
망형(Mesh)
- 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태로, 노드의 연결성이 높다.
- 모든 노드를 망형으로 연결하려면 노드의 수가 n개일 때, n(n-1)/2개의 회선이 필요하고 노드당 n-1개의 포트가 필요하다.
IEEE 802의 주요 표준 규격
IEEE 802는 KAN의 표준안이다.
| 구분 | 설명 |
|---|
| 802.1 | 전체의 구성, OSI 참조 모델과의 관계, 통신망 관리 등에 관한 규약 |
| 802.2 | 논리 링크 제어(LLC) 계층에 관한 규약 |
| 802.3 | CSMA/CD 방식의 매체 접근 제어 계층에 관한 규약 |
| 802.4 | 토큰 버스 방식의 매체 접근 제어 계층에 관한 규약 |
| 802.5 | 토큰 링 방식의 매체 접근 제어 계층에 관한 규약 |
| 802.6 | 도시형 통신망(MAN)에 관한 규약 |
| 802.9 | 종합 음성/데이터 네트워크에 관한 규약 |
| 802.11 | 무선 LAN에 관한 규약 |
IEEE 802의 주요 표준 규격
| 구분 | 설명 |
|---|
| 802.11 | 2.4GHz 대역 전파와 CSMA/CA 기술을 사용해 최고 2Mbps까지의 전송 속도를 지원함 |
| 802.11a | 5GHz 대역의 전파를 사용하며, OFDM 기술을 사용해 최고 54Mbps까지의 전송 속도를 지원함 |
| 802.11b | 802.11 초기 버전의 개선안으로 등장하였으며, 초기 버전의 대역 전파와 기술을 사용해 최고 11Mbps의 전송 속도로 기존에 비해 5배 이상 빠르게 개선되었음 |
| 802.11e | 802.11의 부가 기능 표준으로, Qos 기능이 지원되도록 하기 위해 매체 접근 제어(MAC) 계층에 해당하는 부분을 수정하였음 |
| 802.11g | 2.4GHz 대역의 전파를 사용하지만 5GHz 대역의 전파를 사용하는 802.11a와 동일한 최고 54Mbps까지의 전송 속도를 지원함 |
| 802.11n | 2.4GHz 대역과 5GHz 대역을 사용하는 규격으로, 최고 600Mbps까지의 전송 속도를 지원함 |
NAT
- NAT(Network Address Translation, 네트워크 주소 변환)은 한 개의 정식 IP 주소에 대량의 가상 사설 IP 주소를 할당 및 연결하는 기능이다.
- 한 개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 한 개로 제한되는 문제가 있지만 IP 마스커레이드를 이용하여 해결할 수 있다.
IGP
IGP(Interior Gateway Protocol, 내부 게이트웨이 프로토콜)는 하나의 자율 시스템(AS) 내의 라우팅에 사용되는 프로토콜이다.
RIP(Routing Information Protocol)
- 현재 가장 널리 사용되는 라우팅 프로토콜로 거리 벡터 라우팅 프로토콜이라고도 불린다.
- 최단 경로 탐색에 Bellman-Ford 알고리즘을 사용한다.
- 소규모 동종의 네트워크(자율 시스템, AS) 내에서 효율적인 방법이다.
OSFP(Open Shortest Path First protocol)
- RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜로, 대규모 네트워크에서 많이 사용된다.
- 최단 경로 탐색에 다익스트라 알고리즘을 사용한다.
EGP / BGP
EGP(Exterior Gateway Protocol)
자율 시스템(AS) 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용되는 프로토콜이다.
BGP(Border Gateway Protocol)
- 자율 시스템(AS) 간의 라우팅 프로토콜로, EGP의 단점을 보완하기 위해 맘ㄴ들어진 프로토콜이다.
- 초기에 BGP 라우터들이 연결될 때에는 전체 경로 제어표(라우팅 테이블)를 교환하고, 이후에는 변화된 정보만을 교환한다.
흐름 제어
흐름 제어(Flow Control)란 네트워크 내의 원활한 흐름을 의해 송/수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능이다.
정지-대기
- 수신 측의 확인 신호(ACK)를 받은 후에 다음 패킷을 전송하는 방식이다.
- 한 번에 하나의 패킷만을 전송할 수 있다.
슬라이딩 윈도우(Sliding Window)
- 확인 신호, 즉 수신 통지를 이용하여 송신 데이터의 양을 조절하는 방식이다.
- 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷의 수만큼 연속적으로 전송하는 방식으로, 한 번에 여러개의 패킷을 전송할 수 있어 전송 효율이 좋다.
- 송신 측은 수신 측으로부터 확인 신호(ACK) 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기(Window Size)를 의미한다.
RAID
RADI(Redudeant Array of Independent Disk)는 2개 이상의 하드디스크로 디스크 배열을 구성하고, 파일을 구성하는 데이터 블록들을 서로 다른 디스크에 분산 저장하거나 다중화하는 저장 기술로, 구현된 기술에 따라 다음과 같이 레벨로 구분한다.
RAID 0
- 스트라이핑이라고 불린다.
- 디스크를 병렬로 연결하여 디스크의 개수만큼 용량과 속도가 배로 증가한다.
- 하나의 디스크만 손상되어도 전체 데이터가 파손 된다.
RAID 1
- 미러링이라고 불린다.
- 같은 데이터를 다른 디스크에 동일하게 복사하는 방식이다.
RAID 2 ~ 4
- 하나의 디스크에 오류 정정 부호를 비트, 바이트, 워드 단위로 저장하고, 나머지 디스크는 RAID 0과 같이 활용하여 안정성을 높인 모드이다.
- 하나의 디스크가 손상되어도 정상 가동이 가능하며 최소 3개의 디스크가 필요하다.
RAID 5
- 오류 정정 부호를 블록 단위로 여러 디스크에 분산 저장한 방식이다.
- 하나의 디스크가 손상되어도 정상 가동이 가능하며 최소 3개의 디스크가 필요하다.
RAID 6
- RAID 5와 원리는 같으나 오류 정정 부호 2개를 저장하는 방식이다.
- 두 개의 디스크가 손상되어도 정상 가동이 가능하며 최소 4개의 디스크가 필요하다.
Secure OS
- Secure OS는 기존의 운영체제에 내제된 보안 취약점을 해소하기 위해 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제를 의미한다.
- 보안 커널은 보안 기능을 갖춘 커널을 의미하며, TCB를 기반으로 참조 모니터의 개념을 구현하고 집행한다.
- Secure OS의 보안 기능: 식별 및 인증, 임의적/강제적 접근통제, 객체 재사용 보호, 완전한 조정, 신뢰 경로, 감사 및 감사기록 축소 등
회복
- 회복(Recovery)은 트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업이다.
- 회복 기법의 종류: 연기 갱신 기법, 즉각 갱신 기법, 그림자 페이지 대체 기법, 검사점 기법
REDO / UNDO
REDO
데이터베이스가 비정상적으로 종료되었을 떄, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉, 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산이다.
UNDO
데이터베이스가 비정상적으로 종료되었을 떄, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작에 대한 기록은 있지만 완료 기록은 없는 트랜잭션들이 작업한 변경 내용들을 모두 취소한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경하는 연산이다.
즉각 갱신 기법
- 즉각 갱신 기법은 트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법이다.
- 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들을 Log에 보관시킨다.
- Redo(재시도) Undo(취소) 모두 사용 가능하다.
로킹
- 로킹은 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다.
- 주요 데이터의 액세스를 상호 배타적으로 한다.
타임 스탬프 순서
- 타임 스탬프 순서는 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법이다.
- 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다.
로킹 단위
- 로킹 단위는 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미한다.
- 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있다.
- 로킹 단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아진다.
- 로킹 단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아진다.
교착상태
- 교착상태(DeadLock)는 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미한다.
- 교착상태 발생의 필요 충분 조건
| 구분 | 설명 |
|---|
| 상호배제(Mutual Exclusion) | 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함 |
| 점유와 대기(Hold and Wait) | 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 |
| 비선점(Non-preemption) | 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함 |
| 환형 대기(Circular Wait) | 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함 |
교착상태의 해결 방법
예방 기법(Prevention)
- 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법
- 교착상테 발생의 네 가지 조건 중엣 어느 하나르 제거함으로써 수행됨
회피 기법(Avoidance)
- 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해 나가는 방법
- 주로 은행원 알고리즘이 사용됨
발견 기법(Detection)
시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것
회복 기법(Recovery)
교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것