Back-End 면접질문8

Lee·2020년 10월 4일
2

컨텍스트 스위칭에 대해 설명해주세요

멀티프로세스 환경에서 CPU가 어떤 프로세스를 실행하다 인터럽트에 의해 다른 프로세스를 실행해야 할 때 현재 프로세스 정보를 레지스터 등에 저장하고 실행해야할 새로운 프로세스 정보로 변경하게 되는데 이를 컨텍스트 스위칭이라고 합니다

Transaction의 개념에 대해 설명해주세요

데이터베이스 상태를 변경하기 위해서 수행하는 작업의 단위

deadlock의 개념 및 deadlock 해결 방법에 대해 설명해주세요

공유자원 환경에서 한 프로세스가 자원을 무한정 차지하고 있어 다른 프로세스가 무한정 대기상태에 들어갈 수 있는데 이를 deadlock이라고 합니다
해결책은 예비, 회피, 회복, 무시
예비는 데드락이 일어나는 4가지 조건(상호배제, 점유와 대기, 비선점, 환영대기)가 있는데 이 중 하나만 회피하면 됩니다.

Mutex와 세마포어의 차이점에 대해 설명해 주세요

뮤텍스는 화장실이 하나인데 키를 가지고 있는 사람만 들어갈 수 있는 것으로 여기서 사람은 프로세스나 스레드를 의미합니다.
세마포어는 화장실은 여러개인데 화장실에 들어갈 수 있는 사람 수가 표시 되고 여기서 역시 사람은 프로세스나 스레드입니다

가상 메모리에 대해 설명해 주세요

당장 사용하지 않는 프로세스 메모리 영역을 하드디스크 등에 저장해놓았다가 필요해서 로드해서 쓰는 것
장점
1. 주기억 장치의 효율적 관리 : 주기억장치를 하드디스크에 대한 캐시로 설정하여, 당장 사용하는 영역만 유지하고 쓰지 않는 데이터는 하드디스크로 옮긴 뒤, 필요할 때만 램에 데이터를 불러와 올리고 다시 사용하지 않으면 하드디스크로 내림으로써 램을 효과적으로 관리한다.

  1. 메모리 관리의 단순화 : 각 프로세스마다 가상메모리의 통일된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해진다.

  2. 메모리 용량 및 안정성 보장 : 한정된 공간의 램이 아닌 거의 무한한 가상메모리 공간을 배정함으로써 프로세스들끼리 메모리 침범이 일어날 여지를 크게 줄인다.

RDBMS와 NoSQL의 차이점에 대해 설명해주세요

스키마 vs no 스키마
relalation(테이블간의) vs no relation
수직적 스케일링 vs 수평적 스케일링
ACID(트랜잭션의 안전한 수행) vs cap이론
참조 : https://velog.io/@thms200/SQL-vs-NoSQL

MariaDB와 PostgresSQL의 차이점에 대해 설명해주세요

스토리지 엔진 사용가능 여부 : mariaDB는 메모리 스토리지 엔진을 선택가능
postgressql같은 경우 unlogged table이라는 저널 미생성 테이블을 만들 수 있음. 안정성은 떨어지지만 속도는 빠름
스토어드 프로시저 사용 : mariaDB는 저장 프로시저 입력시 테이블을 처리할 수 없습니다. 그래서 임시테이블을 거치게 되므로 사용방법이 어렵습니다. postgressql의 경우 perl이나 python으로 만드는것이 가능
병렬 쿼리 : postgressql에는 병렬 쿼리 기능이 구현되어 있음. 하나의 쿼리를 여러 스레드에서 처리가능. MariaDB는 이런 기능이 없음

profile
두비두비둡

0개의 댓글