OS & DB Question and Answer

OS and DB 질문과 답

  1. 데드락(deadlock)의 개념 및 데드락 해결 방법

    데드락은 멀티프로세스 환경에서 상호 작용하는 프로세스들이 서로의 자원을 무한히 기다리면서 발생하는 상황입니다. 데드락 발생 조건에는 상호 배제, 점유 대기, 비선점, 순환 대기가 있습니다. 데드락을 해결하는 방법으로는 예방, 감지 및 회복, 회피, 자원 할당 그래프 알고리즘 등이 있습니다.

  2. 뮤텍스와 세마포어의 차이점

    • 뮤텍스(Mutex)는 주로 임계 영역에 대한 접근을 동기화하는 데 사용되며, 한 스레드만 뮤텍스를 소유할 수 있습니다.
    • 세마포어(Semaphore)는 리소스의 개수를 나타내는 카운터로 사용되어 여러 스레드 간의 상호 배타적인 접근 외에도 병렬 작업을 허용할 수 있습니다.
    • 뮤텍스는 ‘lock’과 ‘unlock’ 연산으로 구성되어 간단하게 상호 배제를 달성하는 반면, 세마포어는 ‘wait’과 ‘signal’ 또는 ‘P’와 ‘V’ 연산으로 표현되어 값을 감소시켜 여러 스레드에 대한 접근을 제한하거나 값을 증가시켜 병렬 작업을 허용합니다.
  3. 가상 메모리

    가상 메모리는 컴퓨터 시스템에서 주 메모리와 보조 저장장치 간의 데이터 전송을 관리하는 기술입니다. 이를 통해 프로세스 간 메모리를 분리하고, 페이지 파일을 활용하여 주 메모리 부족 시 하드 디스크 등의 저장장치를 활용할 수 있습니다. 가상 메모리는 운영체제에 의해 투명하게 처리되어 시스템의 성능을 향상시킵니다.

  4. 컨텍스트 스위칭

    컨텍스트 스위칭은 프로세스나 스레드 간에 작업을 전환하는 과정을 말합니다. 주로 프로세스 간이나 스레드 간, 그리고 인터럽트 발생 시에 필요하며, 현재 실행 중인 작업의 상태를 저장하고 새로운 작업의 상태를 불러오는 과정을 포함합니다. 효율적으로 처리되어야 하며 성능에 영향을 미칩니다.

  5. 트랜잭션(Transaction)의 개념

    트랜잭션은 데이터베이스에서 일련의 작업을 논리적으로 묶어 안전하게 처리하는 개념입니다. ACID 속성을 따르며, 원자성, 일관성, 고립성, 지속성을 갖습니다. 데이터베이스에서 데이터 무결성과 안정성을 보장하는 핵심적인 개념으로 사용됩니다.

  6. 관계형 데이터베이스 시스템과 NoSQL의 차이점

    • 데이터 모델:
      • RDBMS: 테이블 기반의 관계형 모델.
      • NoSQL: 다양한 모델, 주로 문서, 키-값, 열 지향, 그래프 등.
    • 스키마:
      • RDBMS: 엄격하고 미리 정의된 스키마.
      • NoSQL: 유연하고 동적인 스키마.
    • 트랜잭션과 일관성:
      • RDBMS: ACID 속성을 준수하여 트랜잭션 보장.
      • NoSQL: 일관성 모델 다양, ACID를 완전히 지키지 않는 경우도.
    • 용도 및 확장성:
      • RDBMS: 정형 데이터, 복잡한 질의에 효과적.
      • NoSQL: 대량의 비정형 데이터, 수평 확장성이 필요한 환경에 적합.
    • 적합한 사용 사례:
      • RDBMS: 전통적인 업무 애플리케이션.
      • NoSQL: 대규모 데이터, 빠른 쓰기 처리, 유연한 데이터 모델이 필요한 경우.