Mutex 와 세마포어 (Semaphore) * Critical Section (임계 구역)에 대한 접근을 막기 위해 LOCKING 매커니즘이 필요 - Mutex (binary semaphore) : 임계구역에 하나의 스레드만 들어갈 수 있음 - Semaphore : 임계구역에 여러 스레드가 들어갈 수 있음 : counter를 두어서 동시에 리소스에 접근할 수 있는 허용 가능한 스레드 수를 제어 세마포어 (Semaphore) * P : 검사 (임계영역에 들어갈 때) - S값이 1 이상이면 임계 영역 진입 후 S값 1 차감 (S값이 0이면 대기) * V : 증가 (임계영역에서 나올 때) - S값을 1 더하고 임계 영역을 나옴 * S : 세마포어 값 (초기 값만큼 여러 프로세스가 동시 임계 영역 접근 가능)..
동기화(Synchronization) 이슈 동기화 : 작업들 사이에 실행 시기를 맞추는 것 여러 스레드가 동일한 자원(데이터) 접근시 동기화 이슈 발생 동일 자원을 여러 스레드가 동시 수정 시 각 스레드 결과에 영향을 줌 동기화 이슈 해결 방안 Mutual exclusion (상호 배제) 쓰레드는 프로세스 모든 데이터를 접근할 수 있으므로, 여러 스레드가 변경하는 공유 변수에 대해 Exclusive Access 필요 어느 한 스레드가 공유 변수를 갱신하는 동안 다른 스레드가 동시 접근하지 못하도록 막아라 Mutual exclusion (상호 배제) 임계 자원 (critical resource) 임계 영역 (critical section) ※ 정리 * 동기화 : 작업들 사이에 실행 시기를 맞추는 것 출처 ..
Thread (스레드) Light Weight Process 라고도 함 프로세스 : 프로세스 간에는 각 프로세스의 데이터 접근이 불가 스레드 - 하나의 프로세스에 여러개의 스레드 생성 가능 - 스레드들은 동시에 실행 가능 - 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능 Thread는 각기 실행이 가능한 stack이 존재한다 Multi Thread (멀티 스레드) 소프트웨어 병행 작업 처리를 위해 Multi Thread를 사용함 멀티 프로세싱 & 멀티 태스킹 & Thread 최근 CPU는 멀티 코어를 가지므로 Thread를 여러 개 만들어 멀티 코어의 활용도를 높였다 Thread의 장점 1. 사용자에 대한 응답성 향상 2. 자원 공유 효율 IPC 기법과 같이 프로세스간 자원 공유를 위해 번..
프로세스간 커뮤니케이션 IPC 기법이지만 이외에도 많이 사용되는 두 가지 기술 많이 사용하는 두 가지 방법 : 시그널(signal), 소켓(socket) 시그널 (signal) 유직스에서 30년 이상 사용된 전통적인 기법 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려주는 기법 프로세스 관련 코드에 관련 시 시그널 핸들러를 등록해서, 해당 시그널 처리 실행 i. 시그널 무시 ii. 시그널 블록(블록을 푸는 순간, 프로세스에 해당 시그널 전달) iii. 등록된 시그널 핸들러로 특정 동작 수행 iv. 등록된 시그널 핸들러가 없다면 커널에서 기본 동작 수행 주요 시그널: 기본 동작 SIGKILL : 프로세스를 죽여라 (슈퍼관리자가 사용하는 시그널로, 프로세스는 어떤 경우든 죽도록 되어..