본문 바로가기

면접 질문

면접 질문 (OS)

❓ 프로세스와 스레드의 차이를 설명해주세요(필수)

✅ 한줄 요약 프로세스는 독립 실행 단위, 스레드는 그 내부 작업 단위입니다.
💬 부가 설명 프로세스는 메모리 공간과 자원을 독립적으로 가지고 실행되고, 스레드는 같은 프로세스 내에서 자원을 공유하며 실행됩니다. 그래서 스레드는 생성 비용이 더 낮고 전환이 빠릅니다.

❓ 스택 영역과 힙 영역의 차이는 무엇인가요?

✅ 한줄 요약 스택은 함수 실행 시 사용하는 고정 메모리, 힙은 동적 할당 메모리입니다.
💬 부가 설명 스택은 함수 호출과 지역 변수에 사용되며, LIFO 구조로 빠르게 할당/해제됩니다. 반면 힙은 동적 메모리로 사용자가 직접 관리해야 하며, 속도는 느리지만 유연합니다.

❓ 멀티 프로세싱을 하는 이유는?

✅ 한줄 요약 CPU 여러 개를 활용해 병렬 처리 성능을 높이기 위해서입니다.
💬 부가 설명 멀티 프로세싱은 여러 작업을 병렬로 수행하여 시스템 자원을 효율적으로 활용하고 전체 처리량을 증가시킵니다. 특히 CPU가 여러 개일 때 유리합니다.

❓ Shared Memory 방식과 Message Passing 방식의 차이는?

✅ 한줄 요약 공유 메모리는 빠르지만 동기화 필요, 메시지 전달은 안전하지만 느립니다.
💬 부가 설명 Shared Memory는 메모리를 공유해 빠르지만 동기화가 필요하고 복잡합니다. Message Passing은 각 프로세스가 독립적으로 데이터를 주고받기에 안정적이지만 성능은 낮을 수 있습니다.

❓ 멀티 스레드 vs 멀티프로세스(필수)

✅ 한줄 요약 멀티스레드는 자원 공유로 가볍고 빠르며, 멀티프로세스는 안정성이 높습니다.
💬 부가 설명 멀티스레드는 자원을 공유하므로 메모리 사용이 적고 빠르지만, 하나의 스레드가 죽으면 전체에 영향을 줄 수 있습니다. 반면 멀티프로세스는 안정적이지만 메모리 비용이 큽니다.

❓ 멀티스레드의 장점과 단점

✅ 한줄 요약 장점은 자원 효율성과 빠른 처리, 단점은 하나가 죽으면 전체에 영향 가능성.
💬 부가 설명 멀티스레드는 컨텍스트 스위칭이 빠르고 자원 공유로 효율적입니다. 하지만 동기화가 어렵고, 한 스레드 문제로 전체가 멈출 수 있는 단점도 있습니다.

❓ 사용자 스레드와 커널 스레드의 차이점은 무엇인가요?

✅ 한줄 요약 사용자 스레드는 커널에 인식되지 않으며, 커널 스레드는 운영체제가 관리합니다.
💬 부가 설명 사용자 스레드는 사용자 수준에서 관리되고 커널이 인식하지 않아 속도는 빠르지만, 하나가 블로킹되면 전체가 멈출 수 있습니다. 커널 스레드는 커널이 직접 관리해 안정적입니다.

❓ 컨텍스트 스위칭이란?(필수)

✅ 한줄 요약 작업 전환 시 이전 상태를 저장하고 다음 작업 상태를 불러오는 과정입니다.
💬 부가 설명 컨텍스트 스위칭은 하나의 작업 상태를 저장하고, 다른 작업의 상태를 복원하는 과정으로 CPU 자원을 효율적으로 분배하기 위해 필요합니다. 다만 오버헤드가 발생할 수 있습니다.

❓ 멀티스레드 프로그래밍과 장점에 대해 설명하시오

✅ 한줄 요약 하나의 프로세스에서 여러 작업을 동시에 처리해 효율성을 높이는 것입니다.
💬 부가 설명 멀티스레드 프로그래밍은 하나의 프로그램이 여러 작업을 동시에 처리하게 만들어 응답성을 높이고 자원을 효율적으로 사용할 수 있게 합니다.

❓ 동기 / 비동기의 차이를 설명하시오(필수)

✅ 한줄 요약 동기는 순차적 처리, 비동기는 대기 없이 다른 작업 가능하게 합니다.
💬 부가 설명 동기는 요청한 작업이 끝나야 다음 작업이 시작되고, 비동기는 작업을 요청만 하고 바로 다음 작업을 수행할 수 있어 응답 속도를 높일 수 있습니다.

❓ 프로세스의 각 Section에는 무엇이 저장되는가?

✅ 한줄 요약 텍스트, 데이터, 힙, 스택 등으로 나뉘며 각기 다른 정보를 담습니다.
💬 부가 설명 텍스트 영역은 코드, 데이터 영역은 전역변수, 힙은 동적 메모리, 스택은 함수 호출 정보가 저장됩니다. 각 영역은 독립적으로 관리됩니다.

❓ 프로세스 통신 방법에는 무엇이 있는가?

✅ 한줄 요약 프로세스 간 통신 방법에는 공유 메모리, 메시지 전달 등이 있습니다.
💬 부가 설명 공유 메모리는 메모리 공간을 공유하고, 메시지 전달은 데이터를 주고받는 방식입니다. 목적에 따라 효율성이나 안정성을 선택합니다.

❓ cpu 스케줄링이 무엇인지 사용하는 이유가 무엇인지 말하시오

✅ 한줄 요약 CPU를 효율적으로 사용하기 위한 작업 스케줄링 기법입니다.
💬 부가 설명 여러 프로세스가 동시에 실행되도록 CPU를 분배하여 시스템 성능과 응답성을 높입니다. 시분할 시스템에서 특히 중요합니다.

❓ cpu 스케줄링 종류와 간단한 설명

✅ 한줄 요약 FCFS, SJF, Priority, RR 등 다양한 방식이 있습니다.
💬 부가 설명 FCFS는 순서대로, SJF는 실행시간이 짧은 순, RR은 시간할당 방식, Priority는 우선순위 기반입니다. 상황에 따라 선택합니다.

❓ 경쟁상태에 대한 설명

✅ 한줄 요약 여러 프로세스가 자원을 동시에 요구하며 충돌이 발생하는 상태입니다.
💬 부가 설명 공유 자원에 대해 여러 프로세스가 동시에 접근하려고 할 때 발생합니다. 데이터 불일치나 충돌이 생길 수 있습니다.

❓ 경쟁상태가 발생하는 경우와 해결법

✅ 한줄 요약 자원을 동시에 요청하거나 점유하며 발생하며, 동기화로 해결합니다.
💬 부가 설명 예를 들어 두 프로세스가 서로 자원을 점유한 채 상대 자원을 기다리는 경우입니다. 락, 세마포어 등을 이용한 동기화로 해결합니다.

❓ 임계영역에 대한 설명과 임계영역에서 발생하는 문제

✅ 한줄 요약 임계영역은 동시에 접근하면 문제가 생기는 코드 구간입니다.
💬 부가 설명 임계영역은 한 번에 하나의 스레드만 접근해야 하는 코드입니다. 적절한 동기화 없이는 경쟁 상태나 데이터 손상이 발생할 수 있습니다.

❓ 뮤텍스 vs 세마포어의 차이점

✅ 한줄 요약 뮤텍스는 1개 자원, 세마포어는 여러 개 자원 관리에 사용됩니다.
💬 부가 설명 뮤텍스는 상호배제를 위한 락으로 하나의 자원을 보호하며, 세마포어는 동시에 여러 개를 제어할 수 있어 범용적입니다.

❓ Swapping에 대해 설명해주세요

✅ 한줄 요약 Swapping은 프로세스를 메모리와 디스크 간에 교체하는 기법입니다.
💬 부가 설명 주 기억장치가 부족할 때 일부 프로세스를 디스크로 내보내고 필요 시 다시 불러오는 방식으로, 메모리 공간 확보에 사용됩니다.

❓ 단편화(Fragmentation)는 어떻게 나눌 수 있나요?

✅ 한줄 요약 내부 단편화와 외부 단편화로 나뉩니다.
💬 부가 설명 내부 단편화는 할당된 공간의 남는 부분, 외부 단편화는 사용 가능한 공간이 나뉘어 실제 할당이 어려운 경우를 말합니다.

❓ 가상 메모리란 무엇이고 도입 시 어떠한 효과를 얻을 수 있나요?

✅ 한줄 요약 가상 메모리는 물리 메모리보다 큰 메모리를 쓰는 기술입니다.
💬 부가 설명 가상 메모리는 보조기억장치를 이용해 물리 메모리보다 큰 주소 공간을 사용하는 기법입니다. 프로그램은 더 큰 메모리를 쓰는 것처럼 동작할 수 있습니다.

❓ 요구 페이징(Demand Paging)에 대해 설명해주세요.

✅ 한줄 요약 요구 페이징은 필요한 시점에만 페이지를 로딩하는 방식입니다.
💬 부가 설명 요구 페이징은 처음부터 모든 페이지를 로딩하지 않고, 실제로 접근할 때 해당 페이지만 메모리에 불러와 효율을 높입니다.

❓ 페이지 교체 알고리즘이란 무엇인가요?

✅ 한줄 요약 페이지 교체 알고리즘은 페이지 부족 시 교체할 대상을 고르는 방식입니다.
💬 부가 설명 페이지가 가득 찬 상황에서 새로운 페이지를 불러오기 위해 어떤 페이지를 제거할지를 결정하는 정책입니다.

❓ 페이지 교체 알고리즘에 대해서 알고계신 것 모두 말씀해주세요.

✅ 한줄 요약 FIFO, LRU, LFU, OPT 등 다양한 알고리즘이 존재합니다.
💬 부가 설명 FIFO는 먼저 들어온 페이지 제거, LRU는 가장 오래 안 쓴 것 제거, OPT는 앞으로 가장 멀리 사용될 페이지 제거 방식입니다.

❓ 논리주소와 물리주소가 무엇인가요?

✅ 한줄 요약 논리주소는 프로그램 관점 주소, 물리주소는 실제 메모리 주소입니다.
💬 부가 설명 논리주소는 CPU나 프로그램이 사용하는 주소이며, MMU를 통해 물리주소로 변환되어 실제 메모리에 접근합니다.

❓ 메모리 할당 알고리즘에 대해 알려주세요.

✅ 한줄 요약 First Fit, Best Fit, Worst Fit 등의 방법이 있습니다.
💬 부가 설명 First Fit은 처음 맞는 공간, Best Fit은 가장 딱 맞는 공간, Worst Fit은 가장 큰 공간을 할당하는 방식입니다.

❓ 운영체제에서 페이징은 무엇인가요?

✅ 한줄 요약 페이징은 메모리를 고정 크기 블록으로 나누는 기법입니다.
💬 부가 설명 페이징은 메모리를 동일한 크기로 나눠 관리하며, 주소 매핑이 간단해지고 단편화를 줄일 수 있습니다.

❓ 페이징의 장단점 설명해주세요.

✅ 한줄 요약 단편화를 줄이고 주소 공간을 효율적으로 활용할 수 있습니다.
💬 부가 설명 페이징은 외부 단편화를 줄이지만 내부 단편화는 발생할 수 있습니다. 주소 계산이 단순한 것이 장점입니다.

❓ 페이징과 세그멘테이션 차이에 대해 설명해주세요

✅ 한줄 요약 페이징은 고정 크기, 세그멘테이션은 논리적 단위로 분할합니다.
💬 부가 설명 페이징은 물리적 단위 기반, 세그멘테이션은 논리적 단위로 메모리를 나눠 각 세그먼트에 다른 크기를 할당할 수 있습니다.

❓ TLB가 무엇인지, TLB miss와 hit가 일어나는 경우에 대해 설명해주세요.

✅ 한줄 요약 TLB는 주소 매핑 속도를 높이는 캐시이며 miss/hit 발생 시 처리 차이가 있습니다.
💬 부가 설명 TLB는 가상주소와 물리주소의 매핑을 캐싱해 속도를 높입니다. miss 발생 시 페이지 테이블을 참조해야 하므로 느려집니다.

'면접 질문' 카테고리의 다른 글

예상 질문  (1) 2025.05.20
면접 준비(DB)  (0) 2025.05.20
면접 질문(java + 자료구조)  (0) 2025.05.20
면접 질문(spring + jpa)  (0) 2025.05.20
면접 질문(네트워크)  (0) 2025.05.20