전체 글
-
[Network] TCP vs UDPCS/Network 2021. 9. 28. 23:30
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. TCP(Transmission Control Protocol) TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로서, 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 이다. TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 바이트 스트림을 안정적으로, 순서대로, 에러없이 전송할 수 있게 한다. 특징 연결형 서비스: 가상 회선 방식 제공 3-way handshake를 통해 연결 성립(Establishment) 4-way ha..
-
[Network] TCP 연결과 해제CS/Network 2021. 9. 28. 20:07
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. 연결 성립 (Connection Establishment) SYN(Synchronize): 클라이언트는 서버에 접속을 요청하는 SYN 플래그 비트가 설정된 세그먼트를 보낸다. 해당 세그먼트는 통신의 시작을 알리며, 세그먼트 내 순서 동기화를 위한 Sequence number인 M(임의명)를 담아 보낸다. 이때 클라이언트는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYS_SENT 상태가 된다. SYN + ACK(Acknowledgement): 서버는 클라이언트의 요청인 SYN(M)을 받고 클라이언트에게 ..
-
[Network] HTTP Methods - GET, POST, PUT, PATCH, DELETECS/Network 2021. 9. 27. 23:13
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. HTTP를 사용하여 데이터가 서버로 전달될 때 method라는 속성을 반드시 가지게 된다. method는 데이터를 보내는 목적을 표시해주는 역할을 하고, method에 따라 서버에서 데이터를 다르게 처리한다. GET 서버로 resource를 요청할 때 사용 서버의 resource는 클라이언트로 전달만 될 뿐 변경되지 않음 GET method로 데이터를 보내려면 URL 뒤에 붙여 보낼 수 있음 ex) www.example.com?id=test&password=1234 key, value 쌍으로 데이터를 넣어야..
-
[OS] Synchronization과 AsynchronizationCS/Operating System 2021. 9. 20. 20:26
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. Synchronization vs Asychronization Synchronization: 메소드를 실행했을 때 값이 반환되기 전까지 blocking되어 메소드 실행과 동시에 반환 값이 기대되는 경우를 말한다. Asynchronization: 메소드를 실행했을 때 blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task를 위임하고 다음 코드를 수행하기 때문에 반환 값을 바로 반환하지 않는다. 프로세스 동기화 Critical Section (임계영역) 동일한 자원을 동시에 접근하는 작업 (e...
-
[OS] CPU SchedulerCS/Operating System 2021. 9. 20. 19:28
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. CPU 스케줄러 스케줄링 대상은 Ready Queue에 있는 프로세스들이다. FCFS(First Come First Served) 특징 먼저 온 순서대로 처리 비선점형(Non-Preemptive) 스케줄링: 일단 CPU를 잡으면 CPU burst가 완료될 때까지 CPU를 반환하지 않는다. 할당되었던 CPU가 반환될 때만 스케줄링이 이루어진다. 문제점 convoy effect: CPU burst가 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다. SJF(Shortest Job First) 특징 CPU bu..
-
[OS] SchedulerCS/Operating System 2021. 9. 20. 19:17
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 스케줄러 (Scheduler) 프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue: Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기 스케줄러(Long-term scheduler or job scheduler)..
-
[OS] MultithreadCS/Operating System 2021. 9. 20. 19:02
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 멀티스레딩 (Multithreading) 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것 멀티스레딩의 장점 자원 공유 (Resource sharing) 멀티프로세스로 구현하는 것에 비해 멀티스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어든다. → 스레드는 프로세스의 코드, 데이터, 힙 영역을 공유하기 때문 프로세스 간의 통신 (IPC)에 비해 스레드 간의 통신이 훨씬 간단하다. → 데이터, 힙 영역을 이용하여 데이터를 통신..
-
[OS] Process와 ThreadCS/Operating System 2021. 9. 20. 18:37
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 프로세스 (Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당 받는다. 프로세스의 메모리 영역은 텍스트(코드), 데이터, 스택, 힙 영역으로 나눌 수 있다. 텍스트 (Text): 실행 파일을 구성하는 명령어들이 적재되는 메모리 영역 데이터 (Data): 전역 변수와 정적 변수가 저장되는 영역 스택 (Stack): 함수 호출과 관계되는 지역변수, 매개변수, 리턴 주소 등이 저장된다. 함수 호출 ..