OKL4 uses mutexes to manage access to shared resources which should only be accessed by a single thread at a time. A mutex is a synchronization primitive used to ensure that only a single thread has access to a shared resource at a given point in time. A thread acquires a mutex by performing a lock call on the mutex and once it has finished with the resource, the thread releases the mutex by performing an unlock call. As only a single thread can hold a particular mutex at any one time, if a thread tries to acquire a mutex that is already held by another thread, it will block until the holder releases the mutex.
(OKL4는 뮤텍스를 한 시점에서 오직 하나의 쓰레드에서만 접근을 해야하는 공유 리소스의 접근을 관리하는데 사용한다. 뮤텍스는 하나의 쓰레드만 주어진 시점에서 공유된 리소스에 접근하는 것을 안전하게 하는 것에 사용하는 동기화 프리미티브이다. 쓰레드는 뮤텍스에서 lock호출을 수행함으로써 뮤텍스를 얻고, 리소스와 함께 끝나게 되면, 쓰레드는 unlock 호출을 수행함으로써 뮤텍스를 놓는다. 단지 하나의 쓰레드가 주어진 시점에 특정 뮤텍스를 가질 수 있기때문에 만약 쓰레다가 이미 다른 쓰레드에 의해서 잠겨진 뮤텍스를 가지려고 시도한다면 뮤텍스를 잡은자가 놓을때까지 블럭된다.)
OKL4 provides two types of mutexs, kernel mutexes and hybrid mutexes.
(OKL4는 커널 뮤텍스과 하이브리드 뮤텍스, 2가지 형태의 뮤텍스를 제공한다.)
1. Mutex Types
OKL4 provides two types of mutexes, kernel mutexes and hybrid mutexes.
2. Mutex Creation
A mutex may be created by calling the MutexControl system call. The caller must specify the appropriate capability to create a mutex.
(뮤텍스는 MutexControl 시스템 콜을 호출함으로써 생성되어질 것이다. 호출자는 반드시 뮤텍스를 생성하기 위한 적합한 capability를 명시해야 한다.)
3. Mutex Deletion
An existing mutex may be deleted by calling the MutexControl system call with the appropriate values.
(존재하는 뮤텍스는 적절한 값과 함께 MutexControl 시스템콜을 호출함으로써 삭제될 수 있다.)
4. Using a Mutex
Prior to its use a mutex must be created. A thread possessing the appropriate capability for an existing mutex may attempt to obtain that mutex using the Mutex system call.
(이전에 뮤텍스를 사용하기 위해서는 반드시 생성이 되어져 있어야 한다. 존재하는 뮤텍스를 위한 적합한 capability를 소유하는 쓰레드는 Mutex 시스템 콜을 사용하여 뮤텍스 얻기를 시도할 수 있다.)
- mutex must exist - cannot be held by another thread - need to hold the appropriate capability.
(뮤텍스는 반드시 존재해야 하고, 다른 쓰레드에 의해서 잡혀질 수 없고, 적합한 capability를 가져야 한다.)
댓글 없음:
댓글 쓰기