CS/OS2 뮤텍스, 세마포어, 모니터 뮤텍스(Mutex) 뮤텍스는 상호배제를 위한 동기화 기법이다. 한 순간에 오직 하나의 스레드만 공유자원에 접근할 수 있도록 보호한다. 뮤텍스는 임계영역에 진입할 때 락을 걸고, 임계영역에서 나올 때 락을 해제한다. 세마포어(Semaphore) 세마포어는 공유자원의 접근을 제한하는 동기화 기법이다. 여러개의 스레드가 동시에 공유자원에 접근할 수 있지만, 제한된 개수의 스레드만이 동시에 접근할 수 있도록한다. 세마포어는 정수형 변수로 선언하며, 이 변수를 통해 스레드의 접근을 제어한다. 세마포어는 두 가지 연산을 제공한다. P(wait) 연산은 세마포어 값을 감소시키고, 0 이하가 되면 스레드를 블록한다. V(signal) 연산은 세마포어 값을 증가시키고, 블록된 스레드 중 하나를 깨운다. 모니터(Monit.. 2023. 3. 1. 프로세스와 스레드 프로세스와 스레드 프로세스 PCB(Process Controll Block)를 사용하여 OS가 프로세스를 관리한다. 특징 메모리에 적재되어 실행되는 프로그램의 인스턴스 운영체제로부터 시스템 자원을 할당받는 작업의 단위 프로세스는 각각 독립된 메모리 영역을 할당받는다. 각 프로세스는 최소 하나의 스레드를 가진다. 각 프로세스는 별도의 주소공간을 가지며, 프로세스는 다른 프로세스의 공간에 접근할 수 없다. 구조 Stack 임시 데이터 저장 (함수 호출, 지역변수 등) 함수를 호출할 수록 커지며 힙 메모리와 인접한 방향으로 커진다. 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었다는 의미다. Heap 코드에서 동적으로 만들어지는 데이터 저장 Data 전역 변수, static 변수 등 Code 프로그램을 실.. 2022. 12. 30. 이전 1 다음