본문 바로가기
IT/Interview

20.09.28 면접 스터디

by YEON-DU 2020. 9. 28.
반응형

1. 프로세스와 스레드

프로세스와 스레드의 정의 및 차이점

멀티프로세스의 장점과 단점

멀티스레드의 장점과 단점

 

프로세스는 실행중인 프로그램을 의미한다.

프로세스는 코드, 데이터, 힙, 스택 별로 각각의 주소공간에 독립적으로 할당받는다.

반면 스레드는 스택만 따로 할당 받고 나머지는 서로 공유한다.

프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는 데에 비해 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용한다.

 

스레드는 프로세스의 실행단위를 의미한다.

프로세스마다 메인 스레드를 포함하여 최소 1개의 스레드를 소유한다.

 

멀티프로세스의 장점은 안전성이지만, 각각의 메모리 공간을 갖고 있어 작업량이 많을 수록 오버헤드가 발생한다.

반면 멀티 스레드는 독립적인 프로세스에 비해 공유 메모리를 사용하여 시간, 자원 손실이 적다는 장점이 있지만 안전성 문제가 있다. 하나의 스레드가 데이터 공간을 망가뜨리면 모든 스레드가 작동이 불가하기 때문이다.

안전성 문제를 해결하기 위해 동기화 작업(Critical Section - 임계 영역, 세마포어)이 필요하지만, 이를 과도하게 하게 되면 병목현상이 발생할 수도 있다. (해결하기 위한 조건 상호배제, 진행, 한정된 대기)

 

멀티프로세스 예시 : 크롬.각각의 탭이 하나 하나 별도의 프로세스로서 실행됨.

 

2. 페이징과 세그멘테이션

출처 : Difference Between Paging and Segmentation

 

페이징과 세그먼테이션의 개념

페이징 알고리즘의 종류

페이지 폴트, 스래싱의 의미

 

다중프로그래밍 시스템에서 여러 프로세스를 수용하기 위해 주기억장치를 동적 분할하는 메모리 관리 작업을 위해 두 기법을 사용한다.

 

메모리 관리 기법은 연속과 비연속 메모리 관리 기법이 있다.

연속 메모리 관리 기법은 고정적으로 분할할 경우 내부 단편화가, 동적으로 분할할 경우 외부 단편화가 일어난다.

불연속 메모리 기법으로는 페이징과 세그먼테이션이 있다.

페이징은 고정적으로 분할하는 기법이고, 세그먼테이션은 가변적으로 분할하는 기법이다.

 

페이징 기법

외부 단편화를 없애기 위해 생긴 메모리 관리 방법론으로 물리 메모리는 프레임으로, 논리 메모리는 페이지로 분리된다. 논리 메모리가 물리 메모리에 저장될 때 연속으로 저장될 필요 없이 물리 메모리의 남는 프레임에 적절히 배치됨으로 외부 단편화를 해결할 수 있다. (그러나 내부 단편화 비중이 늘어날 수 있다)

 

세그먼테이션

내부단편화를 없애기 위해 생긴 메모리 관리 방법론으로 논리메모리와 물리메모리를 서로 다른 크기의 논리적 단위인 세그먼트로 분할하여 저장한다. 서로 다른 크기의 세그먼트들이 적재, 제거가 반복되다보면 외부 단편화가 일어날 수 있다.

 

3. 데드락

데드락의 의미

데드락이 발생하기 위한 조건

데드락을 방지하기 위한 방법

은행원 알고리즘 설명

 

프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태. 교착상태라고도 한다.

시스템적으로 한정된 자원을 여러 곳에서 사용하려 할 때 발생.

멀티 프로그래밍 환경에서 레이스 컨디션이 발생하는 경우에 자주 발생함.

 

데드락이 발생 조건은 상호 배제, 점유 대기, 비선점, 순환 대기이다.

상호 배제는 자원은 한 번에 한 프로세스만 사용가능한 것이고,

점유 대기는 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당된 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재하는 것이다.

또한 비선점은 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없는 것이고, 순환 대기는 프로세스 집합에서 순환 형태로 자원을 대기하고 있는 것이다.

 

교착 상태를 처리하는 방식은 예방과 회피, 탐지와 회복이 있다.

예방은 교착 상태 발생 조건 중 하나를 제거하여 해결하는 것이고 회피는 말 그대로 교착 상태 발생 시 회피해 나가는방법으로 은행원 알고리즘과 같은 기법이 있다.

 

레이스컨디션 : 한정된 공유 자원을 여러 프로세스가 동시에 이용하기 위해 경쟁을 벌이는 현상

 

+

컨테이너와 VM의 차이 : 쿠버네티스.

프로세스 간 데이터 교환 방법 : IPC 파이프, 메시지, 소켓, Shared memory

멀티스레드 : 소켓 통신, 웹 서버

멀티프로세스 : OS

반응형

'IT > Interview' 카테고리의 다른 글

20.10.06 면접 스터디  (0) 2020.10.09
20.10.02 면접 스터디  (0) 2020.10.04
암호화 기법  (0) 2020.09.15
정렬 알고리즘  (0) 2020.08.31
개발 직군 기술 면접 질문 리스트  (0) 2020.08.22

댓글