EnjoyCSStudy / CS-Knowledge-Source

0 stars 0 forks source link

240124 OS Interview Question #13

Open skydreamer21 opened 7 months ago

skydreamer21 commented 7 months ago

OS 면접 질문 달아주세요!

skydreamer21 commented 7 months ago

interrupt와 trap 에 대해 설명해주세요.

BaeYoungSuk commented 7 months ago

페이지 교체 알고리즘의 종류를 나열하고 각각에 대해 설명해주세요.

soun997 commented 7 months ago

컴퓨터가 부팅되는 과정을 설명해주세요.

rt3310 commented 7 months ago

RAID 종류 및 구성 방법에 대해 설명해주세요

rt3310 commented 7 months ago

interrupt와 trap 에 대해 설명해주세요.

인터럽트에는 비동기와 동기가 있다. 비동기식 인터럽트는 우리가 흔히 interrupt라고 부르는 것으로 하드웨어 인터럽트라고도 한다. 이는 정해진 기준없이 예측 불가하게 이벤트가 발생하는 것이다. 예를 들어 I/O interrupt, network packet arrived, timer ticks 등이 있다. 동기식 인터럽트는 흔히 exception이라고 부른다. 이벤트가 언제든 예측 불가하게 발생하는 것이 아니라 기준/시간에 맞추어 수행시키는 것을 의미한다. 예시로 devide by zero, page fault 등이 있다. 트랩은 실행 중인 프로그램 내에 테스트를 위해 특별한 조건을 걸어 놓은 것을 말한다. interrupt든, system call이든 exception이든 발생이 되면 trap에 의해 catch가 되고, trap handler가 각 상황에 맞게 처리하도록 매핑해주어서 각 서비스 루틴 또는 핸들러에서 처리를 시킨다.

페이지 교체 알고리즘의 종류를 나열하고 각각에 대해 설명해주세요.

페이지 교체 알고리즘은 다양하지만 대략적으로 OPT(Optimal), FIFO(First In First Out), LRU(Least Recently Used), LFU(Least Frequently Used), MFU(Most Frequently Used), NUR(Not Used Recently) 등이 있다. OPT의 경우 가장 오랫동안 사용되지 않을 페이지를 교체하는 알고리즘, FIFO의 경우 가장 먼저 진입한 페이지를 교체하는 알고리즘, LRU의 경우 가장 오랫동안 사용되지 않은 페이지를 교체하는 알고리즘, LFU의 경우 참조 횟수가 가장 작은 페이지를 교체하는 알고리즘 MFU는 참조 횟수가 가장 많은 페이지를 교체하는 알고리즘 NUR은 최근에 사용하지 않은 페이지를 교체하는 알고리즘이다.

컴퓨터가 부팅되는 과정을 설명해주세요.

먼저 컴퓨터의 전원을 켜면 메인보드에 전력이 들어온다. 그 다음 메인보드에 장착된 장치들에도 전력이 공급된다. 장치들이 작동하면서 이제 메인보드에 장착된 CPU가 ROM에 저장된 BIOS를 실행한다. BIOS는 컴퓨터의 하드웨어 장치들의 I/O를 관리하는 펌웨어이다. 컴퓨터의 하드웨어 장치들과 운영체제 사이에 위치하여 운영체제가 하드웨어의 I/O를 제어할 때 BIOS를 통해 제어하게 된다. 최근 PC들은 기존의 Legacy BIOS를 대체하는 UEFI가 탑재됐다. CPU에 의해 실행된 BIOS는 컴퓨터의 하드웨어 장치들을 검사하는 POST 과정을 진행한다. 이 과정에서 오류가 발생하면 비프음이 발생한다. BIOS는 POST 과정이 진행된 후 부팅할 수 있는 보조기억장치를 선택한다. 선택 시 부팅 우선 순위에 따라 선택한다. 이후 부팅할 하드디스크의 MBR에 저장되어 있는 부트로더를 실행한다. 부트로더는 하드디스크의 첫 섹터인 MBR 내 OS를 RAM에 로드한다. 부트로더는 운영체제를 시작하기 위해 OS를 RAM에 올려주는 부팅 전용 프로그램이다.

RAID 종류 및 구성 방법에 대해 설명해주세요

RAID 구성 방법은 보통 RAID 레벨로 표현하는데 RAID 레벨에는 대표적으로 다음과 같이 있다. RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 10, RAID 50 여기서 RAID 2, 3은 현재 잘 활용되지 않는다. RAID 0은 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식이다. RAID 1은 복사본을 만드는 방식으로 완전한 복사본을 만드는 구성이기에 미러링이라고도 부른다. RAID 1에 어떠한 데이터를 쓸 때는 원본과 복사본 두 군데에 쓰기 때문에 쓰기 속도는 RAID 0보다 느리다. RAID 4는 RAID 1처럼 완전한 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식이다. 이때 오류를 검출하고 복구하기 위한 정보를 패리티 비트(parity bit) 라고 한다. RAID 4에서는 패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고, 오류가 있다면 복구한다. RAID 5는 패리티 정보를 분산하여 저장하는 방식으로 RAID 4의 문제인 병목 현상을 해소한다. RAID 6의 구성은 기본적으로 RAID 5와 같으나, 서로 다른 두개의 패리티를 두는 방식이다. 이는 오류를 검출하고 복구할 수 있는 수단이 두 개가 생긴 셈이다. 따라서 RAID 6은 RAID 4나 RAID 5보다 안전한 구성이라 볼 수 있다. 다만, 새로운 정보를 저장할 때마다 함께 저장할 패리티가 두 개이므로, 쓰기 속도는 RAID 5보다 느리다. 따라서 RAID 6은 데이터 저장 속도를 조금 희생하더라도 데이터를 더욱 안전하게 보관하고 싶을 때 사용하는 방식이다.

soun997 commented 7 months ago

interrupt와 trap 에 대해 설명해주세요.

interrupt는 비동기적인 이벤트를 처리하기 위한 기법입니다. 비동기적인 이벤트는 CPU 외부에서 일어나는 이벤트로, CPU는 이를 감지하지 못하기 때문에 하드웨어적으로 interrupt를 발생시켜 알려주어야 합니다.

trap은 동기적인 이벤트를 처리하기 위한 기법입니다. 동기적인 이벤트는 실행하고 있는 명령어의 결과에 의해서 발생되는 이벤트로, 일어날 것이라고 예정된 이벤트입니다.

페이지 교체 알고리즘의 종류를 나열하고 각각에 대해 설명해주세요.

FIFO

OPT

LRU(많은 운영체제가 채택)

LFU

MFU

컴퓨터가 부팅되는 과정을 설명해주세요.

  1. 제일 먼저 CPU가 동작하고, CPU는 ROM에 있는 BIOS(Basic Input Output System) 데이터를 일겅온다.
  2. BIOS는 POST(Power On Self Test)를 진행하여 하드웨어의 정상적인 작동을 검사한다.
  3. BIOS는 부트스트랩을 실행하여 부트 로더를 메모리로 읽어온다.
    • 부트스트랩은 디스크의 MBR(가장 첫번째 섹터)에 저장된 부트로더를 메모리로 읽어온다.
  4. 부트 로더는 디스크에 있는 OS 코드를 메모리로 읽어온다.
  5. CPU는 운영체제를 실행한다.

RAID 종류 및 구성 방법에 대해 설명해주세요

BaeYoungSuk commented 7 months ago

interrupt와 trap 에 대해 설명해주세요.

Interrupt와 Trap 모두 주변 장치와 커널이 통신하는 방식 중의 하나로, 주변 장치나 CPU가 자신에게 발생한 사건을 커널에게 알리는 매커니즘입니다.

Interrupt는 현재 수행 중인 태스크와 관련없는 주변장치에서 발생된 비동기적인 하드웨어적인 사건을 의미합니다.

반면 Trap은 현재 수행중인 태스크와 관련있는 즉 동기적으로 발생하는 사건을 의미합니다.

페이지 교체 알고리즘의 종류를 나열하고 각각에 대해 설명해주세요.

  1. OPT - Optimal : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
  2. FIFO - First In First Out
  3. LRU - Least Recently Used : 가장 오랫동안 사용되지 않은 페이지 교체
  4. LFU - Least Frequently Used : 참조 횟수가 가장 작은 페이지 교체
  5. MFU - Most Frequently used : 참조 횟수가 가장 많은 페이지 교체
  6. NUR - Not Used Recently : 최근에 사용하지 않은 페이지 교체

컴퓨터가 부팅되는 과정을 설명해주세요.

  1. CPU가 켜지고, CPU는 ROM에 있는 BIOS 데이터를 읽어온다.
  2. BIOS는 POST를 진행하여 하드웨어의 정상적인 작동을 검사한다.
  3. POST에 이상이 없으면 BIOS는 부트스트랩을 실행하여 부팅 정보(부트로더)를 메모리로 읽어온다.
  4. 부트로더는 디스크에 있는 OS 코드를 메모리로 읽어온다.
  5. 읽어온 운영체제 명령에 의해 CPU는 첫 프로세스를 즉시 실행한다.

RAID 종류 및 구성 방법에 대해 설명해주세요.

RAID는 여러 물리적 디스크를 묶어 하나의 논리적인 디스크처럼 사용하는 기술을 말합니다.

RAID 0 : 스트라이핑 / 동일한 디스크 여러 대를 병렬 방식으로 구성

RAID 1 : 미러링 / 모든 디스크에 데이터를 N개로 복제하여 각 디스크에 저장

RAID 2 : 비트 수준 해밍 ECC 패리티

RAID 3 : 비트 수준 XOR ECC 패리티

RAID 4 : 하나의 패리티 드라이브를 사용 / 데이터를 블록 단위로 나누어서 디스크에 분산 저장을 수행

RAID 5 : 블록 단위로 스트라이핑 / 모든 드라이브에 패리티 정보를 분산 저장

RAID 6 : 패리티 정보를 2개의 드라이브에 둠

RAID 1 + 0 : RAID 0 + RAID 1