본문 바로가기

OS6

공유 자원을 관리하는 두 가지 방법 : Mutex / Semaphore [개요] Mutex와 Semaphore는 동시에 여러 프로세스나 스레드가 공유 리소스에 접근할 때 발생할 수 있는 문제를 관리하기 위한 동기화 기법이다. 이들은 프로그램에서 여러 스레드 또는 프로세스가 공유 자원을 안전하게 사용하도록 조절하는데 사용된다. [Mutex] 📌 Mutex란? 뮤텍스는 "상호 배제"를 의미하는 Mutual Exclusion의 약자로, ✅ 오직 하나의 스레드만이 특정 코드 블록을 실행하도록 보장하는 동기화 기법이다. (공유 자원 1개에 하나의 User만 사용 가능, 동기화 대상이 1개) 이는 특정 리소스에 대한 접근을 한 번에 하나의 스테드만 가능하도록 하여, 데이터의 일관성과 안정성을 보장하고 하나의 스레드가 뮤텍스를 잠그면(획득하면), 다른 스레드들은 해당 뮤텍스를 얻을 때까.. 2023. 9. 1.
OS(운영체제)의 핵심 엔진 - Kernel(커널)의 기능과 구조, Scheduling Algorithm, Context Switching [Kernel] 📌 Kernel 운영체제는 규모가 매우 큰 프로그램이므로 운영체제의 모든 부분을 메모리에 올려놓는 것은 메모리 측면에서 봤을 때 굉장히 비효율적이다. 따라서 운영체제는 필요한 부분만을 메모리에 올려서 사용하게 되는데, 이때 메모리에 상주하는 운영체제의 핵심 부분을 이라 한다. 커널은 메모리에 상주하는 부분이므로 운영체제의 핵심 부분이라고 볼 수 있기 때문에, 주로 "운영체제 = 커널" 이라고도 한다. [Kernel의 구조 및 기능] 📌 Process 실행 파일을 클릭했을 때, 메모리(RAM)할당이 이루어지고, 이 메모리 공간으로 코드가 올라간다. 이 순간부터 이 프로그램은 process라 불리게 되고 실행 중인 프로그램을 process라 한다. (Process : 실행 중인 프로그램의 인.. 2023. 8. 31.