반응형
프로세스와 스레드의 차이
- 프로세스는 실행중인 프로그램을 말한다. 메모리 영역을 다른 프로세스와 공유하지 않습니다.
- 스레드는 프로세스 내에서 Stack만 따로 할당 받아 사용한다. 그 외의 메모리 영역을 다른 스레드와 공유합니다.
- 스레드는 프로세스 내에 존재하며, 프로세스가 할당받은 자원을 이용합니다.
멀티 프로세스와 멀티 스레드의 특징
- 멀티 프로세스는 두 개 이상의 프로세스가 실행되는 환경을 말합니다.
- 각 프로세스는 독립적인 메모리를 할당 받으므로, 서로 영향을 미치지 않습니다.
- 멀티 스레드는 두 개 이상의 스레드가 실행되는 환경을 말합니다.
- 멀티 스레드는 서로 자원을 공유할 수 있기 때문에 동기화에 주의를 기울여야 합니다.
- 한 스레드에 문제가 생기면 다른 프로세스에도 영향을 미칠 수 있습니다.
멀티 스레드의 동시성과 병렬성
- 동시성이란 싱글코어에서 여러 스레드가 번갈아 실행하며 동시에 실행하는 것처럼 보이는 것을 말합니다.
- 병렬성이란 멸티코어에서 한 개 이상의 스레드를 포함하는 각 코어들이 동시에 실행하는 것을 말합니다.
데드락이란?
- 둘 이상의 프로세스가 자원을 점유한 상태에서, 서로의 자원을 요구하며 무한정 기다리는 상황을 말합니다.
- 데드락의 4가지 조건은 비선점, 순환대기, 점유대기, 상호배제 입니다.
콘보이(Convoy Effect) 현상이란?
- 작업시간이 긴 프로세스가 먼저 큐에 진입하여 다른 프로세스들의 실행시간이 전부 늦어지는 현상을 말합니다.
- FCFS(First Come First Served) 스케줄링 알고리즘 사용 시 콘보이 현상이 발생할 수 있습니다.
선점형 스케줄링과 비선점형 스케줄링
- 선점형은 하나의 프로세스가 CPU를 사용하고 있을 때 다른 프로세스 강제로 CPU를 빼앗아 사용할 수 있는 것을 말합니다.
- 비선점형은 하나의 프로세스가 CPU를 사용하고 있을 때 작업이 끝날 때 까지 다른 프로세스가 CPU를 사용할 수 없는 것을 말합니다.
동기와 비동기의 차이
- 동기는 순차적으로 테스크를 수행하고, 비동기는 병렬적으로 테스크를 수행합니다.
- 동기 방식은 설계가 매우 간단하고 직관적이지만, 결과가 주어질 때 까지 대기만 해야한다는 단점이 있습니다.
- 비동기 방식은 동기 방식에 비해 복잡하지만, 결과가 주어지기 전에 다른 작업을 수행할 수 있으므로 자원을 효율적으로 사용할 수 있습니다.
임계영역에 대한 설명
- 임계영역이란 프로세스가 공유자원을 접근할 때 문제가 발생하지 않도록 하나의 프로세스만 이용할 수 있도록 보장해야하는 영역을 말합니다.
- 임계영역 문제 해결을 위해서는 상호배제, 진행, 한정대기 조건을 충족해야 합니다.
- 상호배제 : 하나의 프로세스가 임계영역에 들어가 있다면 다른 프로세스는 들어갈 수 없어야 합니다.
- 진행 : 임계영역에 비어있고 들어가고자 하는 프로세스가 여러개라면, 반드시 임계영역에 들어갈 프로세스를 결정해야한다.
- 한정대기: 기아상태 방지를 위해, 한번 임계구역에 들어간 프로세스는 다시 임계영역에 들어갈 때 제한을 두어야 한다.
뮤텍스와 세마포어
- 뮤텍스와 세마포어는 공유자원에 대한 접근을 제어하기 위한 기법입니다.
- 뮤텍스는 Lock을 사용해, 하나의 프로세스나 스레드를 단독으로 실행시킵니다.
- 세마포어는 동시에 접근 가능한 스레드 개수를 지정할 수 있습니다.
페이지 교체 알고리즘
- FIFO(First In First Out) : 메모리에 올라온 지 가장 오래된 페이지를 교체합니다. 구현이 가장 쉽습니다.
- LRU(Least Recently Used) : 가장 오래 사용되지 않은 페이지를 교체합니다.
- LFU(Least Frequently Used) : 참조횟수가 가장 작은 페이지를 교체합니다.
- MFU(Most Frequentlry Used) : 참조횟수가 가장 많은 페이지를 교체합니다.
- Optimal : 앞으로 사용될 페이지를 예측하여, 오랫동안 사용되지 않을 페이지를 교체합니다. 실제로 구현이 불가능한 알고리즘으로, 다른 페이지 교체 알고리즘 평가 지표나 연구 목적으로 사용됩니다.
Context Switching이란?
- 멀티프로세스 환경에서 '동시성'을 위해 하나의 프로세스가 CPU를 사용하고 있을 때 다른 프로세스로 전환하기 위한 작업을 말합니다.
시스템 콜 설명
- 운영체제는 유저 모드와 커널 모드로 나뉘어 동작합니다.
- 유저 모드는 하드웨어에 직접적으로 접근할 수 없고, 커널모드는 모든 시스템 메모리와 하드웨어 등에 직접 접근이 가능합니다.
- 사용자가 커널모드로 접근하기 위한 인터페이스가 시스템 콜입니다.
가상메모리 셜명
- 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화 하여 사용자들에게 더 큰 메모리로 보이게 만드는 것을 의미합니다.
- 가상메모리의 공간은 거의 무한하기 때문에 프로세스들끼리 메모리 침범이 일어날 여지를 줄이게 됩니다.
- 페이지 테이블은 가상메모리 시스템에서 가상 주소를 실제 주소로 변환해주는 테이블을 말합니다. 이를 이용하여 실제 주소로 접근할 수 있게 합니다.
페이지 폴트 설명
- 가상메모리에서 참조하려는 메모리 영역이 RAM에 존재하지 않을 때 접근을 시도하면 페이지 폴트 예외가 발생하고 스와핑이 일어나게 됩니다.
- 스와핑은 메모리 확보를 위해 RAM의 일부를 디스크로 내보내고(스왑 아웃), 디스크에서 RAM에 필요한 페이지를 불러오는(스왑 인) 작업을 말합니다.
- 페이지 폴트가 빈번하게 일어나 스와핑을 자주 하게되는 현상을 '스레싱'이라고 한다.
메모리 단편화란?
- 메모리 단편화란 메모리 공간에 사용되지 못하는 공간이 발생하는 현상을 말합니다.
- 내부 단편화란, 메모리를 연속적으로 할당할 때 고정 크기로 분할하면서, 메모리 블록 내에 사용되지 않는 공간이 발생하는 것을 말합니다.
- 외부 단편화란, 불연속으로 할당하면서, 메모리 블록 밖의 공간이 여러 작은 조각으로 나뉘어서 사용되지 못하는 것을 말합니다.
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
메모리 할당 - 연속할당(고정분할, 가변분할)과 불연속할당(페이징, 세그멘테이션, 페이지드세그멘테이션), 단편화 (0) | 2024.11.04 |
---|---|
캐시 종류와 캐시 매핑( 직접매핑, 연관매핑, 집합-연관 매핑) (0) | 2024.11.03 |
교착 상태(deadlock)와 은행원 알고리즘 (0) | 2024.11.02 |
경쟁상태 해결하기 - 뮤텍스, 세마포어, 모니터 (0) | 2024.11.01 |
공유자원과 경쟁 상태, 임계영역 (1) | 2024.10.31 |