프로세스와 스레드
-
프로세스: 운영체제에서 실행 중인 프로그램의 인스턴스로 독립된 메모리 공간을 가짐
-
스레드: 프로세스 내에서 실행되는 흐름의 단위로 프로세스의 메모리 공간을 공유함 (=경량화된 실행단위)
-
차이점
-
프로세스는 독립적이며, 스레드는 프로세스 내에서 공유 자원을 사용함
-
프로세스의 생성/소멸 비용은 높고, 스레드는 상대적으로 낮음.
-
멀티 프로세스 / 멀티 스레드
-
멀티프로세스: 여러 프로세스를 동시에 실행하는 것으로, 독립된 메모리 공간으로 안정적이지만 자원 소모가 크다는 단점이 있음
-
멀티스레드: 하나의 프로세스 내에서 여러 스레드를 동시에 실행하는 것으로, 자원 공유는 효율적이지만 동기화 문제가 발생할 수 있음
Deadlock
- Deadlock: 두 개 이상의 프로세스나 스레드가 서로의 자원을 기다리며 무한 대기 상태에 빠지는 현상 (주로 자원 할당 순서와 관련됨)
크리티컬 섹션
- 크리티컬 섹션(Critical Section): 여러 스레드가 동시에 접근하면 문제가 발생할 수 있는 코드 영역,
동기화 메커니즘(예: 뮤텍스, 세마포어)을 사용해 한 번에 하나의 스레드만 접근하도록 제어하는 방법으로 방지할 수 있다!
주 / 보조 기억 장치
-
주기억 장치(RAM): 빠른 접근 속도, 휘발성(전원이 꺼지면 데이터 사라짐), CPU가 직접 접근 가능한 장치
-
보조 기억 장치(HDD, SSD): 상대적으로 느린 접근 속도, 비휘발성, 대용량 데이터 저장용 장치
-
캐시: CPU와 주기억 장치 간의 속도 차이를 줄이기 위한 고속 메모리로
자주 사용되는 데이터를 캐시에 저장해 CPU의 데이터 접근 시간을 단축하여 시스템 성능 향상에 도움이 됨