CS

CS/DataBase

[DataBase] MySQL에서 VARCHAR와 TEXT의 차이

0. Overview MySQL의 문자열데이터 타입 중 자주 사용하는 VARCHAR와 이와 비슷한 TEXT 가 있죠 ? 기존의 VARCHAR는 255byte만 지원하다가 MySQL5.0.3 이후로 VARCHAR와 TEXT 타입 모두 최대 65,535byte 길이를 지원하게 되었습니다. VARCHAR와 TEXT는 모두 문자열을 저장하기 위한 데이터 타입이며, 그렇다면 이 둘의 차이는 무엇일까? 라는 생각이 들었고 이를 알고자 글을 작성하게 되었습니다. 1. 저장 용량 VARCHAR의 저장 구조 VARCHAR는 최대 65,535byte까지 저장이 가능하며, 현재 저장된 byte의 크기 + 길이를 표현하는 byte로 구성됩니다. - 255byte 이하의 데이터 저장 : 길이 접두사로 1byte를 사용하고 실제..

CS/OS

[OS] 가상 메모리와 요구 페이징

가상 메모리(Virtual Memory) 메인 메모리의 크기는 한정되어 있다. 따라서 물리적이 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없게 되는데 예를 들어 메인 메모리 크기가 100MB일 때 300MB 크기의 프로세스는 실행시킬 수 없다. 크기가 큰 프로세스를 실행시키기 위해서는 메인 메모리를 크게 키우는 방법이 있겠지만, 이것은 굉장히 비효율적이다. 따라서 나온 방법이 바로 가상 메모리(Virtual Memory)이다. 가상 메모리는 메모리 관리 기법의 하나로 매우 큰 메모리인 것처럼 보이게 만드는 것을 말한다. 즉 , 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식이다. 가상적으로 주어진 주소를 가상 주소(Virtual Address) 혹은 논리 주소(Logical A..

CS/OS

[OS] 메모리 단편화 (Memory Fragmentation)

메모리 단편화 주기억장치는 CPU가 직접 접근하여 처리할 수 있는 고속의 기억장치 (Memory)로, 현재 수행되는 프로그램과 데이터를 저장하고 있는데 종류로는 ROM과 RAM이 있다. 이 주기억장치에서 메모리 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화가 발생했다고 한다. 그리고, 이 메모리 단편화는 내부 단편화와 외부 단편화로 구분할 수 있다. 내부 단편화 (Internal Fragmentation) 메모리를 할당할 때, 프로세스가 필요로 하는 크기보다 더 큰 메모리가 할당되어 프로세스에서 사용하는 메모리 공간이 낭비되는 상황 예를 들어, 메모장을 실행시키는데 OS가 4kb를 할당해줬다고 하자. 그런데 실제로는 1kb만큼만 사용하면 3kb만..

CS/OS

[OS] Race Condition (세마포어, 뮤텍스)

Race Condition ? Race Condition이란 두 개 이상의 프로세스가 공통 자원을 병행적으로(Concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Race의 뜻 그대로 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 이야기한다. 경쟁 프로세스의 경우, 세 가지 제어 문제에 직면한다. Mutual exclusion , Deadlock , Starvation 이다. 📌 Mutual Exclusion Race condition을 막기 위해서는 두 개 이상의 프로세스가 공용 데이터에 동시에 접근을 하는 것을 막아야 한다. 즉,..

엥재
'CS' 카테고리의 글 목록 (2 Page)