QnA. Memory Paging과 Sementation 차이메모리 공간을 분리하는 방법으로 페이징과 세그먼트가 있습니다. 가장 큰 차이점은 페이징은 고정된 크기로 메모리 공간을 나누며, 세그멘테이션은 서로 다른 크기로 메모리 공간을 다룹니다.두 방식에서 생기는 내부 단편화, 외부 단편화 문제가 있으며, 세그멘테이션 방식에서 세그먼트 테이블에 세그먼트 번호, 시작 주소, 세그먼트 크기 정보를 가지고 있어 페이징 테이블보다 메모리 비용과 관리 비용이 높습니다. 가상 메모리란실제 물리적 메모리의 크기를 넘어서는 메모리 공간을 제공하기 위해 사용되는 메커니즘이다.(메모리에 로드된) 실행 중인 프로세스가 가상의 공간을 참조하여 더 큰 물리 메모리를 갖고 있는 것처럼 사용할 수 있도록 해줍니다. 내가 실행하고자 ..
MySQL 기본적인 Locking & 격리 수준MySQL의 기본적인 Lock기본적으로 REPEATABLE READ 격리 수준을 사용한다.MVCC (Multi-Version Concurrency Control)을 활용하여 데이터 일관성을 유지합니다.트랜잭션이 진행되는 동안 동일한 데이터를 읽으면 변경된 데이터는 보이지 않습니다. (커밋된 새로운 트랜잭션의 데이터가 반영되지 않음)SELECT 시 Read Lock 걸지 않음select 쿼리는 잠금을 걸지 않음MVCC를 사용해 트랜잭션이 시작된 시점의 데이터 스냅샷 반환UPDATE / DELETE 시 Record Lock (행 단위)행에 대해 Record Rock을 획득합니다.해당 행이 다른 트랜잭션에서 수정되지 않도록 방지GAP Lock (Phantom Re..
Segment와 Packet 정보 차이결론Segment는 전송 계층에서 다루는 데이터 단위Packet은 네트워크 계층에서 다루는 데이터 단위1. 애플리케이션이 데이터를 보냅니다. (웹 요청)2. 전송 계층에서 TCP/UDP가 데이터를 세그먼트로 나눕니다.2-1. TCP의 경우 데이터 흐름 제어, 오류 검출 등을 위한 헤더를 추가합니다.3. 네트워크 계층에서 IP가 Segment를 감싸고 목적지 주소를 추가합니다.3-1. IP 헤더를 추가하여 Packet을 생성합니다.4. 패킷이 네트워크를 통해 전송된다. Internet Layer3계층은 (네트워크 계층, Internet Layer, Packet) 데이터가 서로 다른 네트워크 간에 전달될 수 있도록 경로를 결정하고 (IP 주소 기반) 패킷을 라우팅 하는 ..
Both compilers and assemblers are the language processors used to convert software codes written in high-levl language and assembly language into machine language codes.컴파일러와 어셈블러는 기계가 읽을 수 있도록 처리해주는 언어 처리기이다. 컴파일러는 고급 언어를 기계어로, 어셈블러는 어셈블리 언어를 기계어로 변환해준다.CompilerCompiler is used to translate a high level programming language code to machine level code and to create an executable program.컴파일러는 고급..