본문 바로가기

ComputerScience

(2)
프로세스와 스레드: 차이점과 멀티스레딩의 성능 향상 프로세스란? 프로세스는 운영 체제에서 실행 중인 프로그램을 말합니다. 이를 좀 더 구체적으로 말하자면, 프로그램이 메모리에서 실행되는 단위로, 자체적인 주소 공간과 시스템 자원을 할당받고 독립적으로 실행됩니다. 각 프로세스는 자신만의 메모리 공간을 가지고 있어 다른 프로세스와의 충돌을 방지하고, 독립적으로 실행됩니다.특징- 독립적인 메모리 공간: 프로세스는 자체적인 메모리 공간을 가지고 있으며, 다른 프로세스와 메모리를 공유하지 않습니다.- 자원 할당: 각 프로세스는 운영 체제로부터 독립적인 자원(CPU 시간, 메모리, 파일 등)을 할당받습니다.스레드란?스레드는 프로세스 내에서 실행되는 작업의 단위로, 프로세스 내에서 실행되는 여러 흐름 중 하나입니다. 스레드는 프로세스와는 달리, 같은 메모리 공간을 공..
비관적 락과 낙관적 락 비관적 락과 낙관적 락데이터베이스와 분산 시스템에서 동시성 제어는 매우 중요한 주제입니다. 여러 사용자나 프로세스가 동시에 데이터를 읽고 쓰는 환경에서 데이터의 무결성과 일관성을 유지하기 위해, 두 가지 주요 접근 방식인 비관적 락(Pessimistic Lock)과 낙관적 락(Optimistic Lock)이 자주 사용됩니다. 이 글에서는 각각의 정의, 특징, 예제, 그리고 활용 사례를 다루겠습니다.1. 비관적 락(Pessimistic Lock)정의비관적 락은 데이터 충돌이 빈번히 발생할 것으로 가정하고, 데이터에 대한 접근을 미리 제한하여 충돌을 방지하는 방식입니다. 데이터를 읽거나 수정하려는 동안 다른 사용자나 프로세스가 해당 데이터에 접근하지 못하도록 락을 거는 것이 핵심입니다.주요 특징데이터의 동시..