JVM JAVA Write Once Run Anywhere: 한 번 쓰면 어디서든 실행 가능하도록 CPU마다 받아들이는 기계어가 다른 문제를 JVM으로 해결 JVM (Java Virtual Machine) Java 언어도 분류로는 컴파일 언어라 실행 전에 기계어로 해석해 주는 언어 자바를 컴파일하면 순수한 기계어가 아닌 Java Bytecode 생성 J...
Java & Spring 2
Spring & Network
Chapter 4 Network
라우팅 라우팅 출발지에서 목적지까지의 경로를 결정하는 것 라우팅 테이블: 라우팅 알고리즘을 통해 생성되는 테이블 라우팅 알고리즘: 많은 경로 중 하나를 선택하는 것 포워딩 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것 포워딩 테이블: 해당 테이블을 참조하여 포워딩 진행 라우팅을 통해 경로를 저장해 둔 것 어떤 포트로 패킷을 ...
Index 미리 보는 인덱스 튜닝 데이터를 찾는 두 가지 방법 테이블 전체 스캔 인덱스 이용 테이블 전체 스캔에 관련해서는 튜닝 요소가 많지 않지만 인덱스는 튜닝이 필요하고 기법도 다양함 인덱스 튜닝의 두 가지 핵심 요소 인덱스는 큰 테이블에서 소량의 데이터를 검색할 때 사용하기에 인덱스 튜닝 중요 인덱스 스캔 효율화 튜닝: 인덱스 스캔 과정에서 ...
Cookie vs Session 쿠키와 세션 웹 통신간 유지하려는 정보를 저장하기 위해 사용하는 것 쿠키는 개인 PC에 저장 세션은 접속 중인 웹서버에 저장 규모가 커져 세션 관리가 어려울 때 세션을 외부의 DBMS로 뺴기도 한다 (ex Redis) HTTP HyperText Transfer Protocol의 약자로 주로 HTML과 같은 Hyper...
Process Address Space Process Address Space 운영체제가 자원을 할당하는 단위 공간을 분할하여 데이터를 최대한 공유해 메모리 중복을 피하기 위한 목적 https://velog.velcdn.com/images/klm03025/post/cd3ef853-de73-4a07-b062-263ff9d1acdc/image.png S...
시스템 콜이 무엇인지 설명해 주세요 시스템 콜이란 무엇인가요? System Call은 소프트웨어가 운영체제를 호출하는 것이다. OS는 다양한 서비스들을 수행하기 위해 하드웨어를 직접적으로 관리하는 반면, 응용 프로그램들은 OS가 제공한 인터페이스를 통해서만 자원을
인터럽트가 무엇인지 설명해 주세요 인터럽트란 무엇인가요? 인터럽트란 CPU에게 커널 모드로 변경됨을 알리는 신호이다. 일반 소프트웨어는 권한이 있는 명령을 수행하지 못하기에, 인터럽트를 발생시켜서 커널 모드로 전환한 뒤 운영체제에게 대신 일을 맡긴다. 예를 들어 어떤 소프트웨어는 키보드 입력을 받기 위해 CPU에게 Interrupt를 발생시킬 수 있다...
프로세스가 무엇인가요? 프로그램과 프로세스 스레드의 차이에 대해 설명해 주세요 https://velog.velcdn.com/images/gparkkii/post/70fbe411-2d2e-4c7a-8a19-70ca0fa811b8/IwE9m.png 프로그램 어떤 작업을 하기 위해 해야 할 일들을 순서대로 나열한 것으로, 컴퓨터에서 어떤 작업을 위해 실행...
프로세스 주소 공간에 대해 설명해 주세요. 프로세스 주소 공간이란 무엇인가요? 프로세스가 메모리를 할당받으면, 자신만의 방법으로 메모리를 관리하기 위해 이 공간들을 어떤 구조로 관리하는데, 이를 프로세스 주소 공간이라고 한다. 메모리는 한정되어 있기 때문에 프로세스는 다양한 방법으로 메모리를 절약하려고 시도한다. https://velog.velcdn....
Scheduler 단기, 중기, 장기 스케쥴러에 대해 설명해 주세요. 스케줄링이란? Multi-Programming은 프로세스의 CPU 이용을 최대화하여 사용되지 않는 CPU를 최소화한다. 이때 프로세스를 적절하게 배치하는 것을 스케줄링이라고 한다. Scheduling Queue 프로세스를 스케줄링하기 위해서는 3가지 Queue를 사용한다. Jo...
Context Switching 컨텍스트 스위칭 시에는 어떤 일들이 일어나나요? >컨텍스트 스위칭 CPU / 코어에서 실행 중이던 프로세스나 스레드가 다른 프로세스나 스레드로 교체되는 현상이다. 컨텍스트 ⇒ 프로세스나 스레드의 상태라고 이해하면 된다. 컨텍스트 스위칭이 필요한 이유는 다음과 같다. 여러 프로세스와 스레드들을 동시에 실행시키는 것처럼 ...
Scheduling Algorithm 프로세스 스케줄링 알고리즘에는 어떤 것들이 있나요? preemptive scheduling 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식이다. 비교적 응답이 빠르다는 장점이 있지만, 처리 시간을 예측하기 힘들고 높은 우선순위...
Mutex & Semaphore 뮤텍스와 세마포어의 차이점은 무엇인가요? 동시성 프로그래밍의 가장 큰 숙제는 ‘공유자원 관리’이다. 공유 자원을 안전하게 관리하기 위해서는 상호 배제를 달성하는 기법이 필요하다. 뮤텍스와 세마포어는 이를 위해 고안된 기법으로 서로 다른 방식으로 상호배제를 달성한다. Mutex 정의: 뮤텍스는 하나의 스레드만이 특정 ...
Deadlock Deadlock에 대해 설명해 주세요. 데드락은 여러 프로세스가 서로 자원을 기다리며 무한히 대기 상태에 빠지는 상황을 의미하며, 데드락이 발생하기 위해서는 네 가지 필수 조건이 필요하다. Deadlock이 동작하기 위한 4가지 조건에 대해 설명해 주세요. 상호 배제 (Mutual Exclusion) 자원은 동시에 하나의 프로세스만...
Program 프로그램이 컴파일되어, 실행되는 과정을 간략하게 설명해 주세요. >Build Build는 무엇을 짓다라는 뜻이다. 프로그래밍에서 컴퓨터는 기본적으로 0과 1밖에 모르기 때문에 우리가 작성한 고급 언어인 소스 코드를 바로 이해하기란 불가능하다. 따라서 우리가 작성한 소스 코드를 CPU가 이해할 수 있는 기계어로 바꾸어 줘야 하는데, 이 과정...
IPC IPC가 무엇이고 어떤 종류가 있는지 설명해 주세요 > IPC (Inter Process Communication) 프로세스 간 소통 방법이다. 프로세스는 독립적이거나 다른 프로세스와 협력한다. 독립적인 프로세스는 동시에 실행 중인 다른 프로세스에 영향을 주지 않지만, 협력이 필요한 경우 영향을 주고받을 수 있다. IPC가 필요한 이유 정보 공...
Thread Safe Thread Safe하다는 것은 어떤 의미인가요? Thread Safe란 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없는 것을 말한다. 하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 ...
Cache 캐시 메모리 및 메모리 계층성에 대해 설명해 주세요. 캐시 메모리 캐시 메모리는 CPU의 처리 속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용한다. 데이터 지역성을 활용하여 메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, 프로세서가 필요한 데이터를 캐시 메모리에서 먼저 찾도록 하여 시스템 성능을 향상시킨다. https://...
Segmentation & Pagenatio 세그멘테이션과 페이징의 차이점은 무엇인가요? 두 개 모두 메모리 관리 기법 중에서도 불연속 메모리 할당 기법에 해당하는방식이다. 프로세스가 메모리 상 여러 영역에 분산되어 적재된다. 실제 가상 메모리는 두 가지 방식 중 하나를 채택해 구현된다. 공통적인 장점은 메모리 공간을 효율적으로 사용할 수 있다는 것이...
TLB TLB는 무엇인가요? CPU는 프로세스를 사용하기 위해 메모리에 두 번 접근해야 한다. 먼저 메모리에 저장된 page table에 접근하고, 가상 주소를 물리 주소로 변환한 뒤 실제 메모리에 접근하기 위해 page 테이블에서 얻은 물리 주소를 통해 실제 물리 메모리에 접근한다. 여기서 TLB (Translation Lookaside Buffer...
Synchronization 동기화를 구현하기 위한 하드웨어적인 해결 방법에 대해 설명해 주세요. 원자적 명령어 하드웨어가 제공하는 원자적 연산을 사용해 여러 프로세스나 스레드가 동시에 동일한 메모리 위치에 접근할 때 발생할 수 있는 충돌을 방지한다. 메모리 장
Page Replacement 페이지 교체 알고리즘에 대해 설명해 주세요. 페이지 교체 알고리즘 페이지 교체 알고리즘은 물리적 메모리에서 페이지를 적절하게 교체하는 방법을 정의한 알고리즘이다. 컴퓨터가 가상 메모리를 사용하는 동안, 프로세스는 메모리 상의 가용 페이지 수보다 더 많은 페이지를 요구할 수 있다. 이때 페이지 폴트가 발생하고 운영체제는 물...