본문 바로가기

CS

(4)
[Database] Data Page Structure, SQL 서버가 갖는 페이지의 구조 본 글은 공부하면서 수정중이기 때문에 오타나 틀린 부분이 존재할 수 있습니다! 회사에서 Table을 생성하던 중 다음과 같은 에러가 발생하였다. 사양은 다음과 같았다. MariaDB 10.10.3 , InnoDB Engine ERROR 1118: Row size too large(> 8126). The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs 이유는 간단하다. 한 row에 넣을 수 있는 최대 사이즈를 초과했기 때문이다. 검색을 하다보면 해결하는..
[OS] Thread Safe(스레드 안전) 먼저 Thread(스레드)란 프로세스내에서 실행되는 여러 흐름의 단위이다. 하나의 프로세스내에서는 기본적으로 한 개 이상의 스레드를 가질 수 있는데, 두 개 이상의 스레드를 수행하는 것을 멀티 스레딩이라고 한다. 프로세스 내부의 스레드들은 각각 자신의 스택 영역을 독립적으로 가진 상태로 Code, Data, Heap 영역을 서로 공유하여 사용하기 때문에 두 개 이상의 쓰레드가 자신이 포함된 프로세스의 영역에 있는 함수를 호출할 수 있다. 그렇기 때문에 두 개 이상의 스레드들이 동시에 공유중인 프로세스의 영역(Code/Data/Heap)에 접근하게 되면 쓰레드가 충돌하는 동기화 문제가 발생할 수 있다. 공유 변수의 값이 50이라고 가정할 때 A 쓰레드가 접근하였을 때 해당 공유 변수의 값이 50 이상일 경..
OS - 멀티 프로세스 vs 멀티 스레드 멀티 프로세스와 멀티 스레드는 시스템의 컴퓨팅 성능을 높이는 데 사용되는 처리방식 멀티 프로세스 두 개 이상의 여러개의 프로세서(CPU)가 협력적으로 하나의 작업(Task)을 동시에 처리하는 것입니다. (병렬 처리) 각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 경우 사용합니다. 장점 독립된 구조로 안전성 높음. 여러 자식 프로세스 중 하나에 문제가 생겨도 다른 프로세스에 영향을 주지 않아, 작업속도가 느려지는 손해 정도는 생기고 정지되는 문제는 발생하지 않아서 안정적인 운영이 가능. 여러 개의 프로세스가 처리되어야 할 때 동일한 데이터를 사용하고, 이러한 데이터를 하나의 디스크에 두고 모든 프로세서가 이를 공유하면 비용적으로 저렴함. 문제점 독립된 메모리 영역이기 때문에 작업량..
OS - 프로세스와 스레드의 차이(Process vs Thread) 개발자 단골 면접 질문으로 신입때 거의 나오는 수준이라고 하는 프로세스(Process와 스레드(Thread)의 차이를 간단하게 알아보겠습니다. 먼저, 프로세스와 스레드를 알기전 프로그램을 짚고 넘어가겠습니다. 프로그램(Program)이란 저장 장치(보조기억장치)에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태의 파일을 말합니다. 보조기억장치(ex:SSD, HDD)라는 대용량의 파일들을 저장할 수 있는 공간에서 실행되지 않고 가만히 있음. 프로세스(Process)란 운영체제로부터 자원을 할당받아 메모리 공간에 올라간 실행중인 프로그램 프로그램들은 CPU가 실행할 수 없기 때문에 프로그램을 실행하기 위한 메모리 공간을 할당 받는데 이것을 프로세스라고 합니다. 실행 과정 저장장치에 정적인 상태의 파..