새로운 게시물이 작성되었습니다 => https://server-technology.tistory.com/479현재 글과 새로운 게시물 둘 다 읽어보시면 도움이 될 것이라 생각합니다. 뮤텍스락: 공유 자원 1개에 대하여 오직 하나의 스레드만이 접근할 수 있도록 하는 상호 배제(Mutual Exclusion) 기법이다. 세마포어: 공유 자원 n개에 대하여 여러 스레드가 동시에 접근할 수 있도록 n개의 자원을 제어한다. 뮤렉스락(Mutex Lock)1개의 공유 자원에 1개의 스레드 또는 프로세스만 접근할 수 있도록 제어한다. 이를 상호 배제(Mutual Exclusion)라고 한다. 공유 자원을 사용하고 있는 스레드(또는 프로세스)는 Key를 가지고 있다. Key를 가지고 있는 스레드는 공유 자원을 사용하고 ..
멀티 스레딩 환경에서 데이터의 일관성과 정확성을 보장하기 위한 개념이다. 여러 스레드가 동시에 같은 데이터에 접근할 때 발생할 수 있는 문제를 방지하기 위한 다양한 기법이 존재한다.Thread Safe멀티 스레드 프로그래밍 환경에서 함수나 변수, 객체에 여러 스레드가 동시에 접근이 발생해도 프로그램에 문제가 발생하지 않는 것을 의미한다.즉, 하나의 스레드로부터 실행 중인 함수가 있을 때, 다른 스레드가 해당 함수를 사용하더라도 각 스레드에서 호출한 함수의 결과가 올바르게 출력되는 것을 의미한다. Thread Safe를 위한 4가지 방법Mutual Exclustion (상호 배제)Atomic Operation (원자 연산)Thread-Local Stroage (스레드 지역 저장소)Re-Entrancy (재..
멀티 프로세스여러 개의 독립적인 프로세스가 동시에 실행되는 것을 말한다.프로세스는 독립적인 메모리 공간을 할당받기 때문에 각 프로세스는 서로 다른 메모리 영역에서 작업을 한다.이는 하나의 프로세스에서 발생하는 문제가 다른 프로세스에 영향을 미치지 않음을 의미한다.장점안정성: 하나의 프로세스에서 발생한 오류가 다른 프로세스에 영향을 미치지 않는다.단점Context-Swtiching 비용: 프로세스 간에 컨텍스트 스위칭은 많은 비용을 발생시킨다. 프로세스는 독립된 메모리 영역이기 때문에 주소 공간의 공유가 잦을 경우 오버헤드 발생에 따른 성능 저하가 발생한다.멀티 스레드하나의 프로세스가 여러 작업을 동시에 수행할 수 있도록 한다.하나의 프로세스에는 여러 개의 스레드가 존재하며, 프로세스가 할당된 메모리 영역..
프로세스: 운영체제로부터 자원을 할당받은 작업의 단위 스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위프로그램이란?프로그램이란 파일장치에 저장되어 있지만 메모리에는 저장되어 있지 않은 상태이다.즉, 프로그램이 실행되고 있지 않은 상태를 의미한다. 모든 프로그램은 실행되기 위해서는 메모리에 할당되어야 한다. 프로그램을 실행하게 되면 메모리에 공간을 할당받는다. 이 상태의 프로그램을 프로세스라고 한다.프로그램은 단순히 코드로 구성된 파일이며, 메모리에 공간을 할당받은 프로그램을 프로세스라고 한다.스레드 개념이 생긴 이유프로그램의 실행부터 끝까지 하나의 프로세스가 처리한다.그러나 점차 프로그램이 복잡해짐에 따라 프로세스 1개로 처리하는 것이란 실질적으로 불가능하게 되었다. 그렇다고 해서 다른 프로..
교창 상태를 알고 있다는 가정하에 설명합니다. 여기를 먼저 읽고 와주세요! 교착 상태를 해결하기 위해서 예방, 회피, 검출 후 회복 방법이 존재합니다. 예방 : 애초에 교착 상태가 발생하지 않도록 자원 분배회피 : 교착 상태가 발생하지 않도록 조절하다가, 발생 시에 자원 할당 중지검출 후 회복 : 교착 상태가 발생하면 회복 교착 상태 예방교착 상태가 발생하기 위해서는 아래 4가지 조건을 모두 만족해야 합니다.즉, 1가지라도 만족하지 않으면 교착상태가 발생하지 않습니다.상호 배제점유와 대기비선점원형 대기상호 배제상호 배제란 하나의 자원에 임계구역을 설정하여 하나의 프로세스만 접근할 수 있도록 하는 방법입니다. 상호 배제를 없앤다는 것은 하나의 자원에 대하여 여러 프로세스가 접근할 수 있음을 의미합니다. ..