computer science(23)
-
컴파일 에러와 런타임 에러::에러
에러의 종류로는 크게 컴파일 에러와 런타임 에러가 있습니다. 1. 컴파일 에러(Compile Error) 문법을 잘못 작성해 프로그램을 컴파일할 수 없는 에러입니다. 에러 메시지를 통해 에러가 발생한 부분을 확인해 비교적 쉽게 해결할 수 있습니다. ex) ';'(세미클론)이 누락된 문법 에러 괄호가 맞지 않는 구문 에러 interface 사용 시 함수의 구체적인 내용을 적지 않은 에러 2. 런타임 에러(Runtime Error) 프로그래머의 설계 미숙으로 프로그램 실행 중 발생하는 에러입니다. 에러 발생 시 프로그래머가 역추적해 원인을 확인해야 합니다. ex) NullPointerException(생성되지 않은 객체를 참조할 때 발생) Infinite Loop(무한 루프) ArithmeticExcepti..
2020.07.07 -
페이지 교체 알고리즘(LRU, LFU, MFU)::운영체제
프로세스가 특정 페이지를 요구할 때 해당 페이지를 물리 메모리에 load합니다. 메모리에 필요한 페이지가 있을 경우 바로 사용할 수 있지만, 페이지가 없을 경우(page-fault) 하드디스크에서 페이지를 찾아야 하기 때문에 많은 시간이 소비됩니다. 페이지를 교체하는 가장 단순한 방법으로 FIFO(First In First Out) 알고리즘이 있습니다. 메모리에 load된 페이지 중 가장 오래된 페이지를 교체합니다. 페이지가 올라온 순서를 큐(Queue)에 저장해 순서대로 교체합니다. 하지만, 활발하게 사용하고 있는 페이지를 계속해서 교체될 경우, 페이지 부재율이 높아 성능이 낮습니다. 따라서 한정된 메모리에서 교체할 희생 프레임을 찾고, 적절한 페이지로 교체해 성능을 높일 수 있는 페이지 교체 알고리즘..
2020.07.07 -
가비지 컬렉션(GC) 알고리즘과 여러 방법::자바
가비지 컬렉션(Garbage Collection)이란? Java 애플리케이션에서 사용하지 않는 메모리를 자동으로 해제하는 기능입니다. 전통적인 C언어에서는 malloc(), free() 등을 이용해 메모리를 할당하고, 수동으로 메모리를 해제해야 했습니다. 하지만 Java에서는 GC 기술을 이용해 자동으로 메모리를 해제하여 개발자에게 메모리 관리로부터 자유롭게 해 주었습니다. 우선, 애플리케이션에서 사용하는 영역은 New/Young(Eden, Survivor1, Survivor2)과 Old가 있습니다. Eden 영역은 자바 객체가 생성되자마자 저장되는 장소입니다. New/Young 영역의 GC를 Minor GC라고 하고, Old 영역의 GC는 Full FC라고 합니다. Full GC가 발생하면 순간적으로 ..
2020.07.07 -
캐시(Cache) 메모리와 지역성::하드웨어
1. 캐시의 정의 CPU의 처리속도와 메모리의 속도 차이로 인한 병목현상을 완화하기 위해 사용하는 고속 버퍼 메모리입니다. 주기억장치에 있는 데이터를 액세스 하려면 비교적 오랜 시간이 걸리게 됩니다. 따라서 데이터를 빠르게 액세스 할 수 있도록 중간에 캐시 메모리를 두었습니다. 주기억장치 내에서 자주 읽고 쓰는 데이터의 일부를 캐시 메모리에 불러와 속도 차이를 줄이고, 주기억장치와 CPU 간 신호 교환에 이용되는 Memory Bandwidth를 I/O 사용에 집중할 수 있기 때문에 궁극적으로 성능 향상의 결과를 불러옵니다. 2. 캐시의 종류 L1 Cache - 프로세서와 가장 가까운 캐시 - 속도를 위해 IC와 DC로 나뉩니다. - IC(Instruction Cache) : 메모리에서 text 영역의 데..
2020.07.06 -
오류 검출 방식(패리티 검사, CRC, 체크섬, 해밍코드)::네트워크
OSI 7 계층에서 Data Link Layer에 여러 기능 중 가장 중요한 기능은 오류를 감지하고 수정하는 기능입니다. (OSI 7 계층 모형을 다시 알고싶다면 -> https://junboom.tistory.com/16) 데이터가 전송되는 도중에 노이즈로 인해 1을 0으로 인식하고, 0을 1로 인식하는 문제가 발생할 수 있습니다. Data Link Layer에서는 이러한 에러를 검출하고, 수정하는 역할을 합니다. 오류 발생 원인 1) 감쇠(Attenuation) 전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상 2) 지연 왜곡(Delay Distortion) 주로 유선 전송 매체에서 발생하며 하나의 전송 매체를 통해 여러 신호를 전달했을 경우 주파수에 따라 속도가 달라지면서 ..
2020.07.04 -
TCP 3-way & 4-way handshake::네트워크
1. 3-way handshake 두 호스트 간 데이터를 전송하기 전 신뢰성있는 연결을 맺어주는 방식입니다. TCP/IP 프로토콜을 이용해 통신하는 응용프로그램에서 데이터를 전송하기 전에 정확한 전송을 보장하기 위해 수신 호스트와 사전에 세션을 수립하는 과정을 의미합니다. 아래 그림은 Client와 Server가 서로에게 송/수신 준비를 알려 연결을 초기화하는 3-way handshake입니다. 1) Client는 Server에 접속을 요청하는 SYN 패킷을 보내고, 응답을 기다립니다(SYN_SENT). 2) Server는 SYN 요청을 받고, Client에게 요청을 수락하는 긍정 응답(ACK)과 SYN 패킷을 보내고 응답을 기다립니다(SYN_RECEIVED). 3) Client는 Server에게 긍정 ..
2020.07.04