SMALL

물리적 토폴로지

- 네트워크가 물리적으로 배치되는 방식

 

1) 메쉬 토폴로지

- 모든 장치는 서로 전용지점간 링크를 가지고 있다.

장점

  • 링크를 공유하지 않으므로 트래픽 문제 해소
  • 하나의 링크가 고장나더라도 전체 시스템이 무력화 되지 않음
  • 전용 선을 따라 이동하기 때문에, 의도된 수신자만 보기에 보안의 이점을 가지고 있음
  • 지점간 링크는 고장식별과 고장분리를 용이하게 함

단점

  • 비용이 많이 듬
  • 모든 장치 서로 연결해야하기 때문에 구성하기 어려움

2) 스타 토폴로지

- 허브라고 불리는 중앙 컨트롤에 전용지점간 연결되어 있다.

장점

  • 메쉬보다 비용이 적게든다
  • 하나의 링크가 고장나도 그 링크만 영향을 받는다

단점

  • 허브가 고장나면 전체 시스템이 중지된다

3) 버스 토폴로지

- 하나의 긴 케이블에 장치를 연결하는 것

- 설치의 용이성을 가짐

- 새로운 기기의 추가가 어려움

 

4) 링 토폴로지

- 하나의 원을 이루도록 연결하는 것

- 단방향 통신으로 신호 증폭이 가능하여 거리제약 적음

- 노드의 숫자가 증가해도 성능저하 적음

- 버스 방식보다 많은 케이블을 사용하기에 비쌈

- 하나의 컴퓨터 문제시 전체 네트워크에 문제 생김

- 노드 추가 삭제가 용이하지 않음

 

LIST

'전공 > 네트워크' 카테고리의 다른 글

Zero Window  (0) 2021.07.08
TCP, UDP  (0) 2021.06.10
HDLC  (0) 2021.06.10
네트워크 설정  (0) 2020.06.30
Well Known Port  (0) 2018.07.12
SMALL

페이지 교체

페이지 부재 발생 시 어떤 페이지를 교체할 것인지 여러 개의 알고리즘이 있음

 

FIFO 알고리즘

  • First in First out인 알고리즘이며 말그대로 선입선출로 페이지 교체를 한다.
  • 페이지 프레임이 증가하면 오히려 더 많은 부재가 발생(벨레이디의 모순)

LRU 알고리즘

  • 가장 오랫동안 사용되지 않은 페이지를 교체한다.
  • 일반 lru는 하드웨어 오버헤드가 매우 큰 문제를 가지고 있어, 참조비트를 사용한 lru 근사를 사용한다.
  • 가장 많이 사용되는 알고리즘

OPT 알고리즘

  • 가장 오랫동안 사용되지 않을 페이지를 교체한다.
  • 실질적으로 구현 불가능.. 미래를 모르니

LFU 알고리즘

  • 가장 빈도가 적은 페이지를 교체한다.
  • 구현 비용이 비싸며, 구현하기가 어려워 잘 사용하지 않음
LIST

'전공 > 운영체제' 카테고리의 다른 글

내부단편화, 외부단편화  (0) 2021.07.11
TLB(Translaction-lookaside buffer)  (0) 2021.07.08
가상메모리  (0) 2021.07.08
Mutex(뮤텍스), Semaphore(세마포어)  (0) 2020.09.17
Starvation(기아현상), Aging(노화)  (0) 2020.09.17
SMALL

일반 큐의 문제점

일반적인 큐는 배열로 일직선으로 구현되어짐. 그리고 선입 선출이라 맨앞에 데이터가 빠져나가면 한칸씩 앞으로 당겨야되기때문에 성능적으로 좋지 않음

 

원형 큐

말그대로 큐를 선형이 아닌 원형으로 생각하여 구현 하는 것이다.

  • enqueue() : 원소 뒤에서 삽입
  • dequeue() : 원소 앞에서 삭제
  • isEmpty() : 공간 확인
  • getSize() : 사이즈 반환

lastOp 변수를 사용하여 큐의 공간 전부를 사용할 수 있게 한다. (즉 원형 큐 문제점 해결방안)

쉽게 이야기하면 마지막 연산을 기록해두는 변수이다.

삽입이 마지막이면 push, 삭제가 마지막이면 pop로 설정하여 front == rear 일때 lastOp가 push이면 포화, lastOp가 pop이면 공백

하지만 큐의 삽입 삭제 연산이 느려짐...

LIST

'전공 > 자료구조' 카테고리의 다른 글

Stable Sort, Unstable Sort  (0) 2021.07.13
삽입정렬  (0) 2021.06.07
B-tree, B+tree  (0) 2021.06.05
AVL 트리 vs Red Black 트리  (0) 2021.06.05
정렬 시간복잡도  (0) 2021.06.05
SMALL

모듈화

소프트웨어를 하나의 기능들로 분할하는 것

모듈

모듈화에서 분할된 하나의 기능을 의미

 

모듈화 장점

  • 프로그램 효율적인 관리 및 성능향상
  • 소프트웨어 이해 용이성 향상 및 복잡성 감소
  • 오류 파급 효과 최소화
  • 기능 분리 가능 및 인터페이스 단순
  • 모듈 재사용 및 유지보수 용이
LIST
SMALL

스테이블 정렬(안정정렬)은 정렬되지 않은 데이터들중 같은 데이터가 있을 때 정렬하면서 그 순서가 변하지 않는 것을 의미

언스테이블 정렬은 반대로 순서가 변하는 것을 의미

 

Stable Sort

  • 삽입정렬
  • 합병정렬
  • 거품정렬
  • 계수정렬

Unstable Sort

  • 선택정렬
  • 힙정렬
  • 퀵정렬
  • 쉘정렬
LIST

'전공 > 자료구조' 카테고리의 다른 글

원형 큐(Circular queue)  (0) 2021.07.14
삽입정렬  (0) 2021.06.07
B-tree, B+tree  (0) 2021.06.05
AVL 트리 vs Red Black 트리  (0) 2021.06.05
정렬 시간복잡도  (0) 2021.06.05
SMALL

분산 DB

말그대로 데이터 베이스를 분산해서 관리하는 방식을 의미한다. <-> 중항 집중형 데이터베이스

 

분산 DB 목표

  • 위치 투명성 : 접근하려는 DB 위치를 알필요 없으며, 논리적 명칭만으로 접근 가능
  • 중복 투명성 : 중복된 데이터가 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용
  • 병행 투명성 : 분산 DB와 관련된 다수 트랜잭션이 실현되더라도 트랜잭션 결과는 영향 받지 않음
  • 장애 투명성 : 장애가 발생해도 트랜잭션을 정확하게 처리

장점

  • 시스템 성능 향상
  • 데이터 공유성 향상
  • 신뢰성 높음
  • 분산 제어 가능
  • 점진적 시스템 용량 확장 용이

단점

  • DBMS 수행할 기능 복잡
  • 설계 어려움
  • 소프트웨어 개발 비용 향상
  • 처리 비용 증가
  • 잠재적 오류 증가
LIST

'전공 > 데이터베이스' 카테고리의 다른 글

시스템 카탈로그  (0) 2021.05.09
커서(Cursor)  (0) 2021.05.09
내장 SQL  (0) 2021.05.09
관계대수 연산자  (0) 2021.05.09
무결성 종류  (0) 2021.05.09
SMALL

내부단편화

프로세스가 필요한 크기보다 메모리가 더 커서 메모리가 남아서 메모리 공간이 낭비되는 현상

 

외부단편화

메모리 할당 및 해제가 반복적으로 일어나서 중간 중간에 메모리가 남아서 실제로 사용하지 못해서 메모리 공간이 낭비되는 현상

 

예시

영역 메모리 크기 프로세스 크기
A 30 20
B 45 50
C 90 60
D 100 120
E 150 200
F 200 150

 

A : 내부단편화 10 발생

B : 외부단편화 45 발생

C : 내부단편화 30 발생

D : 외부단편화 100 발생

E : 외부단편화 150 발생

F : 내부단편화 50 발생

LIST

'전공 > 운영체제' 카테고리의 다른 글

페이지 교체 알고리즘  (0) 2021.07.14
TLB(Translaction-lookaside buffer)  (0) 2021.07.08
가상메모리  (0) 2021.07.08
Mutex(뮤텍스), Semaphore(세마포어)  (0) 2020.09.17
Starvation(기아현상), Aging(노화)  (0) 2020.09.17
SMALL

실행과정

  1. 명령어 인출 : 명령어 레지스터에 저장된 다음 명령어를 인출
  2. 명령어 해석, PC 변경 : 인출한 명령어를 해석하고 다음 명령어를 지정하기 위해 프로그램 카운터(PC)를 변경한다.
  3. 피연산자 인출 : 명령어가 메모리에 있는 워드를 사용하려면 사용 장소를 결정하여 피연산자를 인출하고, 필요하면 프로세서 레지스터로 보냄
  4. 명령어 실행
  5. 결과 저장

명령어 레지스터 종류

  • PC(Program Counter) : 다음 인출된 명령어의 주소를 가지고 있는 레지스터
  • AC(Accumulator) : 연산 결과 데이터를 일시적으로 저장하는 레지스터
  • IR(Instruction Register) : 가장 최근에 인출된 명령어를 저장하고 있는 레지스터
  • MAR(Memory Address Register) : PC에 저장된 명령어 주소가 사용되기전 일시적으로 저장하는 레지스터
  • MBR(Memory Buffer Register) : 기억장치에 저장될 데이터를 일시적으로 저장하는 레지스터
LIST

'전공 > 컴퓨터구조' 카테고리의 다른 글

RISC와 CISC  (0) 2021.05.09
DMA(Direct Memory Access)  (0) 2021.05.09
주소 지정 방식  (0) 2021.05.09
가중치 코드, 비가중치 코드  (0) 2021.05.09
그레이코드  (0) 2021.05.09
SMALL

가상화

하나의 물리적인 장치에서 여러 개의 논리적으로 분할하여 자원을 사용하는 것을 의미

 

장점

  • 동일한 하드웨어에서 여러 운영체제를 동시에 사용 가능(유연성, 확장성)
  • 다른 OS끼리 데이터 이동 가능(민첩성)

단점

  • 자원의 분할로 인한 가상화 고유의 보안 문제
  • 자원 낭비와 인프라 성능저하

종류

1) 호스트 O/S 형

호스트 OS 위에 게스트 OS를 설치하여 사용하는 방법이며, 대표적으로 vmware, virtualBox를 생각하면 된다. -> 호스트 OS의 리소스를 공유하는 방식이라 느림.

2) 하이퍼바이저형

호스트 OS를 필요하지 않으며 독립한 호스트 OS 같은 느낌이라 보면되고, 대표적으로 Hyper V를 생각하면 된다.(vmware나 virtualbox 사용하면 버벅되는 느낌인데, Hyper V는 깔끔함. 즉 성능이 더 좋음) -> 호스트 OS의 리소스를 경유하지 않아서 처리오버헤드가 발생 X

3) 컨테이너형

위의 두개와 다르게 OS를 가상화 하는게 아니라 소트프웨어를 가상화하는 것을 의미한다. 대표적으로 도커를 생각하면 된다.

LIST

'전공 > 기타' 카테고리의 다른 글

미들웨어  (0) 2020.10.03
디지털금융협의회 정리(2020.09.10)  (0) 2020.09.10
데이터 경제(Data Economy)  (0) 2020.09.10
대안 신용평가  (0) 2020.09.07
공인인증서 폐지  (0) 2020.07.23
SMALL

ZeroWindow

송신측에서 수신측에 ack + window size를 보낼 때 window size가 0이 계속 발생하여 실패가 뜬다.

이유는 수신측에 소켓 버퍼가 가득차서 TCP 패킷을 제대로 처리하지 못해서 발생한다.

LIST

'전공 > 네트워크' 카테고리의 다른 글

물리적 토폴로지  (0) 2021.08.10
TCP, UDP  (0) 2021.06.10
HDLC  (0) 2021.06.10
네트워크 설정  (0) 2020.06.30
Well Known Port  (0) 2018.07.12

+ Recent posts