동기(Synchronous)와 비동기(Asynchronous) 동기/비동기는 주로 어플리케이션에서 자주 다뤄지는 개념이며, 다음 작업이 요청되는 시간과 관련되어 있다. 동기(Synchronous) 현재 작업의 응답이 끝남과 동시에 다음 작업이 요청된다. 함수를 호출하는 곳에서 호출되는 함수가 결과를 반환할 때까지 기다린다. 작업 완료 여부를 계속해서 확인한다. 비동기(Asynchronous) 현재 작업의 응답이 끝나지 않은 상태에서 다음 작업이 요청된다. 함수를 호출하는 곳에서 결과를 기다리지 않고, 다른 함수(callback)에서 결과를 처리한다. 작업 완료 여부를 확인하지 않는다. 동기 예시 function run(a, b) { return a + b } const result = run(1, 2);..
3-Way Handshake와 4-Way Handshake 3-Way Handshake 는 TCP의 접속,4-Way Handshake는 TCP의 접속 해제 과정이다. 포트(PORT) 상태 정보 CLOSED: 포트가 닫힌 상태 LISTEN: 포트가 열린 상태로 연결 요청 대기 중 SYN_RCV: SYNC 요청을 받고 상대방의 응답을 기다리는 중 ESTABLISHED: 포트 연결 상태 플래그 정보 TCP Header에는 CONTROL BIT(플래그 비트, 6bit)가 존재하며, 각각의 bit는 "URG-ACK-PSH-RST-SYN-FIN"의 의미를 가진다. 즉, 해당 위치의 bit가 1이면 해당 패킷이 어떠한 내용을 담고 있는 패킷인지를 나타낸다. SYN(Synchronize Sequence Number) ..
잘 알려진 포트(well-known port)는 특정한 쓰임새를 위해서 IANA에서 할당한 TCP 및 UDP 포트 번호의 일부이다. 일반적으로 포트 번호는 다음과 같이 세 가지로 나눌 수 있다. 0번 ~ 1023번: 잘 알려진 포트 (well-known port) 1024번 ~ 49151번: 등록된 포트 (registered port) 49152번 ~ 65535번: 동적 포트 (dynamic port) 잘 알려진 포트 대부분의 유닉스 계열 운영 체제의 경우, 잘 알려진 포트를 열려면 루트 권한이 있어야 한다. 이 번호는 강제적으로 지정된 것은 아니며, IANA의 권고안일 뿐이다. 가끔 각 포트 번호를 그대로 사용하지 않고 다른 용도로 사용하기도 한다. 이 경우, 트로이 목마와 같은 프로그램들이 악의적인 ..
OSI 5계층(세션 계층) 프로토콜 정리 ADSP AppleTalk Data Stream Protocol 의 약자로 애플에서 애플컴퓨터들을 위해 만들어낸 일련의 근거리통신망 프로토콜들로써, 하나의 완전한 프로토콜 세트를 이루고 있습니다. ASP AppleTalk Session Protocol 의 약자로 ATP(AppleTalk Transaction Protocol)를 사용해 세션 설정, 유지, 해제, 요청 시퀀스 처리 등의 기능을 제공하는 프로토콜. 각 세션별로 단일 세션 식별자를 지정하여 ASP 세션을 설정하며, 클라이언트는 세션을 개시하고 명령을 내리며, 서버는 명령에 대응하는 비대칭 프로토콜 입니다. H.245 H.324는 일반 전화망을 이용한 영상 전화 및 회의용 터미널 시스템 규약이며, H.24..
OSI 7계층중 4계층인 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다. 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 데이터의 전달을 담당합니다. 그리고 데이터를 보내기 위해 사용하는 프로토콜이 있는데, 그 프로토콜이 TCP와 UDP입니다. 아래는 OSI 7layer와 TCP/IP 4layer에 대한 이미지입니다. 1. TCP(Transmission Control Protocol) TCP는 전송을 제어하는 프로토콜이라는 뜻입니다. 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 됩니다. TCP는 연결형 서비스를 지원하는 프로..
💡 스케줄링에 대해 설명해주세요. 더보기 여러 프로세스가 있고, 이 프로세스들이 자원(CPU 등)을 동시에 요구하는데 자원은 제한되어 있습니다. 그럴 때 제한된 자원들을 어떻게(순서를 할당하는 등) 나눠줄 것인지에 대한 정책을 말합니다. 💡 CPU 스케줄링은 언제 발생합니까? 더보기 실행상태에서 대기상태로 전환될 때 (예, 입출력 요청) - Non preemptive(비선점) 실행상태에서 준비상태로 전환될 때 (예, 인터럽트 발생) - preemptive(선점) 대기상태에서 준비상태로 전환될 때(예, 입출력이 종료될 때) 종료될 때(Terminated) 💡 CPU 스케줄링의 목적은 무엇입니까? 더보기 1. 공평성 모든 프로세스가 자원을 공평하게 배정받아야 한다. 자원 배정 과정에서 배제되어서는 안 된다...
0. CPU 스케줄링 CPU 스케줄러는 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 최신 운영체제에서는 실질적으로 프로세스가 아니라 커널 수준 스레드를 스케줄 한다. 1. 기본 개념 (Basic Concepts) 다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는데 있다. 어떤 프로세스가 대기해야 할 경우, 운영체제는 CPU를 그 프로세스로부터 회수해 다른 프로세스에 할당한다. 즉, CPU 이용률을 최대화 하는 것은 다중 프로세서 운영체제 설계의 핵심이 된다. 1.1 CPU - I/O 버스트 사이클 (CPU - I/O Burst Cycle) 프로세스 실행은 CPU 실행과 I/O 대기의 사..
💡 프로그램과 프로세스의 차이에 대해 설명해주세요. 더보기 프로그램의 의미는 어떤 작업을 하기 위해 해야할 일들을 순서대로 나열한 것으로 컴퓨터에서 어떤 작업을 위해 실행할 수 있는 '정적인 상태'의 파일이라고 볼 수 있다. 프로세스는 프로그램이 실행되서 돌아가고 있는 상태, 컴퓨터에서 연속적으로 실행되고 있는 '동적인 상태'의 컴퓨터 프로그램이다. 프로그램이 운영체제로부터 실행에 필요한 자원을 할당받아 프로세스가 되는 것 입니다. 💡 프로세스와 쓰레드의 정의에 대해 설명해주세요. 더보기 ▪ 프로세스: 운영체제로부터 자원을 할당받은 작업의 단위. ▪ 스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위. 💡 프로세스와 쓰레드의 차이에 대해 설명해주세요. 더보기 프로세스는 실행 중인 프로그램을 말..
프로세스(Process) 프로세스라는 명칭은 낯설수 있는데, 프로그램은 친숙하리라 생각된다. 우리가 흔히 말하는 프로그램이 실행되면 프로세스 인스턴스가 생성된다. 인스턴스가 생성된다는 의미는 프로그램 실행에 필요한 내용이 컴퓨터 메모리(Ram)에 적재된다는 뜻이다. 일반적으로 프로세스와 프로그램을 같은 개념으로 이야기할 때가 많다. 하지만 엄밀히 따지면 이 둘은 다른 개념이다. 프로그램: 어떤 작업을 하기 위해 실행할 수 있는 파일 또는 프로그램.exe 프로세스: 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태 이미지와 같이 운영체제(OS)를 통해 여러 프로세스(프로그램)를 실행하고 관리할 수 있다. 이를 멀티태스킹이라고 한다. 멀티 태스킹 멀티태스킹이란 OS를 통해 CPU가 작업..
JDBC란? Java DataBase Connectivity의 약자 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API로서 ANSI SQL를 지원한다 SQL문을 실행할 수 있는 함수 호출 인터페이스이다 특징 DBMS 종류에 독립적인 자바 프로그래밍 가능 데이터베이스의 종류가 달라지더라도 동일한 API를 사용하게 해준다 자바가 가지는 플랫폼에 독립적이라는 특성과 DBMS에 독립적인 특성을 가진다 기능 데이터베이스에 연결 설정 한다 SQL 문장을 DBMS에 전송한다 SQL 문장 전송 후 결과를 처리할 수 있게 해준다 인터페이스 데이터베이스를 만드는 업체에게 제공되는 인터페이스 업체에게 제공되는 인터페이스를 각각의 DBMS업체들이 구현해 놓은 것으로서 이것이 바로 드라이버다 프로그래머에게 제..