본문 바로가기

process3

임베디드 시스템의 핵심 기술, RTOS란? - Part.2 (CPU 동작 단계, CPU Scheduling, Process, Task vs Thread) [CPU 동작 단계] 📌 Fetch(인출) CPU가 메모리에서 다음 실행할 명령어를 인출하는 단계이다. 인출 단계에서는 다음 실행할 명령어의 메모리 주소가 프로그램 카운터(PC) 레지스터에 저장되어 있다. CPU는 PC에 저장된 주소를 사용하여 메모리에서 해당 명령어를 검색하고 인출한다. 이때, 메모리의 데이터는 명령어로 해석되어 CPU 내부로 가져온다. 📌 Decode(해석) 안출한 명령어를 해석하는 단계이다. CPU는 명령어를 해석하여 해당 명령어의 유형과 실행에 필요한 추가 정보를 추출한다. 명령어 해석은 명령어 집합 아키텍쳐(ISA)에 정의된 명령어 형식을 기반으로 수행된다. 이 단계에서 CPU는 명령어가 어떤 연산을 수행해야 하는지 결정하고 필요한 레지스터나 데이터를 결정한다. 📌 Execute.. 2023. 9. 4.
공유 자원을 관리하는 두 가지 방법 : 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.