그래서 커넥션 풀 사이즈는 어떻게 설정하라구요?
·
👶🏻 CS/Operating System
커넥션 풀이란?커넥션 풀은 데이터베이스 연결을 미리 생성하여 저장하고, 클라이언트 요청 시 이를 재사용하는 방식이다. 웹 애플리케이션 서버(WAS)가 실행되면 데이터베이스와의 연결 객체를 생성해 풀(pool)에 저장하고, 클라이언트 요청이 오면 이를 빌려주며 작업이 끝나면 반납받아 다시 저장한다. 커넥션 풀이 왜 필요할까?커넥션 생성에는 높은 비용이 발생한다고 한다. 아래는 한 행을 insert 하는 데 드는 시간을 나타낸다.(괄호 안의 숫자는 비율을 나타낸다)// MySQL 8.0 Documentation // https://dev.mysql.com/doc/refman/8.0/en/insert-optimization.htmlConnecting: (3)Sending query to server: (2) ..
교착상태와 해결법
·
👶🏻 CS/Operating System
운영체제에서 발생할 수 있는 중요한 문제인 교착상태에 대해 알아보자! 교착상태란?교착상태란 두 개 이상의 프로세스가 서로의 자원을 기다리며 무한정 멈춰있는 상태를 말한다.예를 들어, 자동차 교차로에서 네 대의 자동차가 각각 서로의 길을 막으며 무한히 기다리는 상황을 상상해 보자.각 자동차는 다른 자동차가 지나가야만 자신이 움직일 수 있으므로, 모두가 멈춰 있게 되는 현상이 교착상태이다.  교착상태 발생의 필요충분조건교착상태는 다음의 네 가지 조건이 적용되었기 때문에 발생한 것이다.하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 1. 상호 배제(Mutual Exclusion)자원은 한 번에 한 프로세스만 사용할 수 있기 때문이다.ex) 한 칸에 한 명만 들어갈 수 있는 화장실은 상호배제를 잘 지킨 것..
캐시
·
👶🏻 CS/Operating System
캐시란?캐시(Cache)는 우리가 자주 접하는 데이터를 더 빠르게 가져오기 위해 미리 준비해 놓는 비서 같은 존재이다.예를 들어, 당신이 서재에서 책을 읽고 있는데, 같은 책을 몇 번씩 꺼내보고 싶어 한다고 하자.책을 서재 구석에서 매번 꺼내오는 것은 시간이 오래 걸리겠지만, 자주 보는 책을 책상 위에 준비해둔다면 훨씬 빨리 볼 수 있을 것이다. 이 책상 위의 책이 바로 캐시다. 운영체제도 비슷한 고민을 한다. CPU는 매우 빠르게 작동하는 반면, 메인 메모리나 디스크에서 데이터를 가져오는 데는 시간이 걸린다.그래서 운영체제는 자주 쓰이는 데이터를 캐시에 저장해 두어, 필요할 때 신속하게 사용할 수 있도록 한다.이로 인해 시스템 성능이 비약적으로 향상된다. 정리하자면, 캐시란 자주 사용하는 데이터나 값을..
Concurrent(동시성) vs Parallel(병렬성)
·
👶🏻 CS/Operating System
CPU와 코어CPU는 컴퓨터의 중심에서 명령어를 메모리에서 가져와 해석하고 실행하는 반도체 유닛이다.하나의 CPU는 여러 개의 코어를 가질 수 있으며, 이러한 코어들은 CPU가 동시에 여러 작업을 효율적으로 수행할 수 있도록 해준다. 컴퓨터 사양을 보면 "4코어 8스레드"라는 표현을 자주 볼 수 있다.4코어란 CPU에 물리적 코어가 4개 있다는 의미다. 각 코어는 독립적으로 작업을 수행할 수 있는 단위다.8스레드란 논리적 코어가 8개라는 의미다. 이는 하이퍼스레딩(Hyper-Threading) 기술 덕분에 하나의 물리적 코어가 동시에 2개의 스레드를 실행할 수 있다는 뜻이다.  하이퍼스레딩 (Hyper-Threading)하이퍼스레딩은 인텔(Intel)에서 개발한 기술로, 물리적 코어 하나가 두 개의 스레..
가상메모리와 페이지 교체 알고리즘
·
👶🏻 CS/Operating System
가상 메모리란메인 메모리의 크기는 한정되어 있기 때문에, 물리적 메모리보다 큰 프로세스는 그대로 실행할 수 없다.그렇다면 이런 경우 프로세스는 어떻게 실행될까?가상 메모리는 실제 물리적 메모리(RAM)보다 더 많은 메모리를 사용할 수 있도록 하는 메모리 관리 기법이다.즉, 가상 메모리는 물리적 메모리와 독립적인 논리적 주소 공간을 제공하여, 실제 메모리 크기와 관계없이 더 큰 주소 공간을 사용할 수 있게 해준다.가상 메모리는 필요한 부분만 메모리에 올림으로써 메모리에 올라가는 프로세스의 크기를 줄이는 요구 페이징 기법을 사용한다. 요구 페이징(Demand Paging)이란가상 메모리는 메모리를 고정된 크기로 나눠서 관리하며 이를 페이지라고 부른다.요구 페이징이란 프로그램이 실행될 때 모든 페이지를 처음부..
프로세스와 스레드
·
👶🏻 CS/Operating System
프로세스와 스레드란?프로그램프로그램은 윈도우의 .exe 파일이나 Mac의 .dmg 파일과 같은 컴퓨터에서 실행할 수 있는 파일을 통칭한다.,단 아직 실행되지 않은 상태의 코드 덩어리를 의미한다. 프로세스프로세스는 실행 중인 프로그램을 말한다, 모든 프로그램은주소 공간, 파일, 메모리 등 자원이 필요한데 운영체제로부터 이 자원을 할당받은 프로그램을 의미한다. 스레드스레드는 프로세스 내에서 동시에 진행되는 흐름의 단위이다. 과거에는 프로그램을 실행할 때 하나의 프로세스만 사용했다.예를 들어, 파일을 다운로드하면 다운로드가 끝날 때까지 다른 작업을 수행할 수 없었다.기술이 발전하며 프로그램이 점점 더 복잡해지면서 단일 프로세스로는 한계가 있었고, 여러 프로세스를 사용하면 메모리를 낭비하고 CPU 자원을 중복..