본문 바로가기
Developer/취업 | 취준

면접대비 질문 정리: 운영체제 (OS, Operating System)

by 청량리 물냉면 2025. 3. 23.
반응형

참고: 위키백과-운영체제

 

 

1. 운영체제란?

답변

운영체제(OS, Operating System)하드웨어와 소프트웨어 간의 중개 역할을 하며, 컴퓨터 시스템의 자원을 관리하고 사용자가 프로그램을 실행할 수 있도록 돕는 시스템 소프트웨어입니다. 운영체제는 사용자와 하드웨어 간의 인터페이스를 제공하고, 여러 프로그램이 원활하게 실행되도록 자원을 효율적으로 관리합니다.

 

 

2. 운영체제의 주요 역할

답변

  1. 자원 관리: CPU, 메모리, 입출력 장치 등을 효율적으로 관리합니다.
  2. 프로세스 관리: 프로세스 생성, 실행, 종료 및 스케줄링을 담당합니다.
  3. 파일 시스템 관리: 파일의 생성, 삭제, 읽기/쓰기 등을 관리합니다.
  4. 사용자 인터페이스 제공: 사용자가 시스템과 상호작용할 수 있도록 도와주는 인터페이스를 제공합니다.
  5. 보안 관리: 사용자 인증, 권한 부여 등을 통해 시스템의 보안을 유지합니다.

 

3. 커널(Kernel)의 역할

답변

출처: 위키피디아 커널

커널운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 중개 역할을 하는 소프트웨어입니다.

커널은 프로세스 관리, 메모리 관리, 파일 시스템 관리시스템 자원을 효율적으로 관리하며, 시스템의 안정성과 보안을 유지합니다. 커널은 사용자가 직접 접근할 수 없고, 시스템 호출을 통해 간접적으로 상호작용합니다.

 

참고

 

 

4. 프로세스와 스레드의 차이

답변

  • 프로세스: 실행 중인 프로그램을 의미하며, 각 프로세스는 독립된 메모리 공간을 가집니다. 프로세스는 운영체제에서 자원을 할당받고 실행됩니다.
  • 스레드: 프로세스 내에서 실행되는 작업의 단위로, 같은 프로세스 내에서 메모리 공간을 공유합니다. 스레드는 프로세스보다 가벼운 단위로, 멀티스레딩을 통해 효율적으로 작업을 분배할 수 있습니다.

 

5. 멀티태스킹이란 무엇인가?

답변
멀티태스킹(Multitasking)은 여러 작업을 동시에 처리하는 시스템의 능력을 의미합니다. 운영체제는 CPU 시간을 여러 작업에 분배하여, 사용자가 동시에 여러 작업을 수행하는 것처럼 느끼게 합니다. 멀티태스킹에는 선점형 멀티태스킹비선점형 멀티태스킹이 있습니다.

 

 

6. 프로세스 상태 전이 과정에 대해 설명하시오.

답변
프로세스는 실행 중에 여러 상태를 거칩니다. 대표적인 프로세스 상태는 다음과 같습니다:

  1. 새로 생성됨 (New): 프로세스가 생성되는 초기 상태입니다.
  2. 실행 대기 (Ready): 프로세스가 CPU 할당을 기다리는 상태입니다.
  3. 실행 중 (Running): 프로세스가 실제로 CPU에서 실행 중인 상태입니다.
  4. 대기 (Blocked): I/O 작업 등 외부 작업을 기다리는 상태입니다.
  5. 종료 (Terminated): 프로세스가 실행을 완료하고 종료된 상태입니다.

 

 

7. 프로세스 간 통신(IPC, Inter-process Communication) 방법에는 어떤 것들이 있는가?

답변
프로세스 간 통신(IPC)에는 여러 가지 방법이 있습니다.

  1. 파이프 (Pipe): 한 프로세스의 출력을 다른 프로세스의 입력으로 전달하는 방법입니다.
  2. 메시지 큐 (Message Queue): 메시지 기반으로 데이터를 주고받는 방법입니다.
  3. 공유 메모리 (Shared Memory): 여러 프로세스가 같은 메모리 공간을 공유하여 데이터를 주고받는 방법입니다.
  4. 세마포어 (Semaphore): 공유 자원의 접근을 제어하기 위해 사용되는 동기화 메커니즘입니다.

 

 

8. 프로세스 스케줄링 알고리즘에 대해 설명하시오.

답변
프로세스 스케줄링 알고리즘은 CPU를 여러 프로세스에게 공평하고 효율적으로 배분하기 위해 사용됩니다. 대표적인 스케줄링 알고리즘에는 다음이 있습니다.

  1. FCFS (First-Come, First-Served): 먼저 도착한 프로세스를 먼저 실행합니다.
  2. SJF (Shortest Job First): 실행 시간이 짧은 프로세스를 먼저 실행합니다.
  3. RR (Round Robin): 각 프로세스에 동일한 시간 할당량을 주고 순차적으로 실행합니다.
  4. Priority Scheduling: 우선순위가 높은 프로세스를 먼저 실행합니다.

 

 

9. CPU 스케줄링 알고리즘 중 FCFS, SJF, RR, Priority Scheduling의 특징을 비교하시오.

답변

  • FCFS (First-Come, First-Served): 간단하고 직관적이지만, 긴 프로세스가 먼저 실행되면 짧은 프로세스의 대기 시간이 길어지는 단점이 있습니다.
  • SJF (Shortest Job First): 평균 대기 시간이 짧지만, 프로세스의 실행 시간을 미리 알 수 없어 구현이 어렵습니다.
  • RR (Round Robin): 모든 프로세스에 공정하게 CPU 시간을 분배하지만, 시간 할당량이 너무 작으면 효율성이 떨어질 수 있습니다.
  • Priority Scheduling: 우선순위가 높은 프로세스를 먼저 실행하지만, 낮은 우선순위 프로세스는 무한히 대기할 수 있는 기아(Starvation) 문제가 발생할 수 있습니다.

 

 

10. 교착 상태(Deadlock)란 무엇인가?

답변
교착 상태는 두 개 이상의 프로세스가 서로가 가진 자원을 기다리면서 무한히 대기하는 상황을 의미합니다. 교착 상태가 발생하면 시스템은 더 이상 진행되지 않으며, 이를 해결하기 위한 여러 가지 기법이 필요합니다.

 

 

 

11. 교착 상태를 예방하기 위한 방법은 무엇이 있는가?

답변
교착 상태를 예방하는 방법은 다음과 같습니다:

  1. 자원 할당 그래프: 각 자원과 프로세스 간의 관계를 그래프로 나타내어, 교착 상태를 예방할 수 있습니다.
  2. 안전한 상태 유지: 프로세스가 자원을 요청할 때, 시스템이 안전한 상태가 되도록 자원을 할당합니다.
  3. 자원 선점: 프로세스가 자원을 요청하면, 다른 프로세스가 자원을 선점하여 교착 상태를 방지합니다.

 

 

12. 세마포어(semaphore)란 무엇인가?

답변
세마포어는 여러 프로세스가 공유 자원에 접근할 때 발생할 수 있는 문제를 해결하기 위한 동기화 메커니즘입니다. 세마포어는 두 가지 종류가 있습니다:

  1. 바이너리 세마포어 (Binary Semaphore): 0과 1의 값만을 가지며, 상호배제(Mutex)와 비슷한 역할을 합니다.
  2. 카운팅 세마포어 (Counting Semaphore): 특정 자원의 개수를 추적하고, 그 자원의 사용 가능 여부를 관리합니다.

 

 

13. 교착 상태 해결 방법에는 어떤 것들이 있는가?

답변
교착 상태 해결 방법에는 다음이 있습니다:

  1. 자원 회수 (Resource Preemption): 교착 상태에 빠진 프로세스에서 자원을 회수하고, 다른 프로세스에게 자원을 할당하여 해결합니다.
  2. 프로세스 종료 (Process Termination): 교착 상태에 빠진 프로세스를 종료시켜 교착 상태를 해결합니다.
  3. 회복 (Recovery): 교착 상태를 감지하고, 자원 요청을 차단하거나 자원을 회수하여 시스템을 회복시킵니다.

 

 

14. 메모리 관리란 무엇인가?

답변
메모리 관리란 시스템의 주기억장치인 RAM을 효율적으로 관리하는 작업을 의미합니다. 운영체제는 메모리 할당, 해제, 스와핑(swap), 페이지 교체 등을 관리하여 여러 프로세스가 원활하게 실행될 수 있도록 지원합니다.

 

 

15. 가상 메모리란 무엇인가?

답변
가상 메모리는 실제 물리 메모리보다 더 많은 메모리 공간을 제공하는 기술로, 프로그램이 실제로 사용할 수 있는 것처럼 보이도록 하여 시스템 성능을 향상시킵니다. 이는 하드 디스크의 일부를 메모리처럼 사용하는 방식으로, 페이지 교체 기법을 통해 구현됩니다.

 

 

16. 페이지 교체(page replacement)란 무엇인가?

답변
페이지 교체는 가상 메모리 시스템에서 필요 없는 페이지를 디스크로 내보내고, 새로운 페이지를 메모리에 로드하는 과정을 의미합니다. 이를 통해 메모리가 부족할 때도 프로그램이 실행될 수 있도록 합니다. 대표적인 페이지 교체 알고리즘으로는 FIFO, LRU, OPT 등이 있습니다.

 

 

17. 스와핑(Swapping)이란 무엇인가?

답변
스와핑은 메모리 부족 시, 프로세스를 메모리에서 하드 디스크로 이동시킨 후, 다른 프로세스를 메모리로 가져오는 기법입니다. 이를 통해 여러 프로세스를 동시에 실행할 수 있도록 합니다.

 

 

18. 캐시(Cache)의 역할은 무엇인가?

답변
캐시는 자주 사용되는 데이터를 빠르게 접근할 수 있도록 저장하는 고속 메모리입니다. CPU 캐시는 메모리와 CPU 간의 속도 차이를 해소하고, 디스크 캐시는 디스크 I/O를 최적화하여 시스템 성능을 향상시킵니다.

 

 

19. 메모리 보호란 무엇인가?

답변
메모리 보호는 각 프로세스가 다른 프로세스의 메모리를 침범하지 않도록 하여, 프로그램 간의 충돌을 방지하는 기술입니다. 이는 운영체제가 메모리 주소 공간을 격리하고, 프로세스가 자신에게 할당된 메모리 영역만을 사용하도록 보장합니다.

 

 

20. 페이지 테이블(Page Table)란 무엇인가?

답변
페이지 테이블은 가상 메모리 주소를 실제 물리 메모리 주소로 매핑하는 데이터 구조입니다. 운영체제는 페이지 테이블을 사용하여 프로그램이 사용하는 가상 주소를 실제 물리 주소로 변환합니다.

 

 

21. 프로세스 스케줄링이란 무엇인가?

답변
프로세스 스케줄링은 CPU를 여러 프로세스에 효율적으로 배분하는 작업입니다. 운영체제는 여러 프로세스를 관리하며, 프로세스가 실행될 순서를 정하고, CPU 시간을 공정하고 효율적으로 분배합니다.

 

 

22. 선점형 스케줄링(Preemptive Scheduling)이란 무엇인가?

답변
선점형 스케줄링은 CPU가 실행 중인 프로세스를 강제로 중단하고, 다른 프로세스에 CPU를 할당하는 방식입니다. 이를 통해 더 높은 우선순위를 가진 프로세스가 우선 실행될 수 있습니다.

 

 

23. 비선점형 스케줄링(Non-preemptive Scheduling)이란 무엇인가?

답변
비선점형 스케줄링은 실행 중인 프로세스가 CPU를 자발적으로 반납할 때까지 계속 실행되도록 하는 방식입니다. 다른 프로세스는 현재 실행 중인 프로세스가 끝날 때까지 대기합니다.

 

 

24. 가상화(Virtualization)란 무엇인가?

답변
가상화는 물리적 자원을 추상화하여, 여러 가상 머신을 실행할 수 있도록 하는 기술입니다. 이를 통해 여러 운영체제를 동시에 실행할 수 있으며, 자원 활용도를 높이고, 시스템을 유연하게 운영할 수 있습니다.

 

 

25. 디스크 스케줄링 알고리즘에 대해 설명하시오.

답변
디스크 스케줄링 알고리즘은 디스크에서 데이터를 읽고 쓰는 순서를 결정하는 방법입니다. 대표적인 알고리즘은 다음과 같습니다:

  1. FCFS (First-Come, First-Served): 요청이 들어온 순서대로 처리합니다.
  2. SSTF (Shortest Seek Time First): 디스크 헤드가 가장 가까운 요청을 먼저 처리합니다.
  3. SCAN: 디스크 헤드가 한 방향으로 이동하며 요청을 처리한 후, 반대 방향으로 이동합니다.
  4. C-SCAN: SCAN과 비슷하지만, 끝에 도달하면 반대 방향으로 돌아가는 방식입니다.

 

26. 하드 디스크의 분할(Partition) 방식에는 어떤 것들이 있는가?

답변
하드 디스크의 분할 방식에는 주로 두 가지가 있습니다:

  1. MBR (Master Boot Record): 디스크의 첫 번째 섹터에 파티션 정보를 저장하는 방식입니다. 최대 4개의 기본 파티션을 지원합니다.
  2. GPT (GUID Partition Table): MBR의 한계를 넘어서, 더 많은 파티션을 지원하며, 보안성과 안정성이 높습니다.

 

27. 가상 메모리 관리 기법에는 어떤 것이 있는가?

답변
가상 메모리 관리 기법으로는 다음과 같은 기법들이 있습니다:

  1. 페이징(Paging): 가상 메모리를 고정된 크기의 페이지로 나누어 물리 메모리에 할당하는 방식입니다.
  2. 세그멘테이션(Segmentation): 가상 메모리를 논리적 단위로 나누어 할당하는 방식입니다.

 

28. I/O 버퍼링(Buffering)이란 무엇인가?

답변
I/O 버퍼링은 데이터를 입출력 장치와 주기억장치 간에 효율적으로 전송하기 위해 임시 저장소인 버퍼를 사용하는 기술입니다. 이는 디스크나 네트워크와 같은 I/O 장치의 속도 차이를 해소하고, 데이터 전송 효율성을 높입니다.

 

 

29. 스레드 안전성(Thread Safety)이란 무엇인가?

답변
스레드 안전성은 다중 스레드 환경에서 여러 스레드가 동시에 접근하더라도 데이터가 일관성 있게 유지되도록 보장하는 특성을 말합니다. 스레드 안전한 코드는 여러 스레드가 동시에 실행되어도 오류 없이 동작합니다.

 

 

30. 운영체제에서의 파일 시스템이란 무엇인가?

답변
파일 시스템은 데이터를 효율적으로 저장하고 관리하기 위한 방법입니다. 운영체제는 파일 시스템을 사용하여 파일을 생성, 삭제, 수정하고, 파일의 경로와 메타데이터를 관리합니다. 대표적인 파일 시스템에는 FAT, NTFS, ext4 등이 있습니다.

 


31. 운영체제에서의 스케줄링(Scheduling) 알고리즘을 설명하시오.

✅ 답변
스케줄링 알고리즘은 여러 프로세스를 관리하는 방법입니다. 주요 알고리즘으로는 다음과 같습니다:

  1. FCFS (First-Come, First-Served): 먼저 요청한 프로세스를 먼저 처리합니다.
  2. SJF (Shortest Job First): 실행 시간이 가장 짧은 프로세스를 먼저 처리합니다.
  3. RR (Round Robin): 각 프로세스에 일정 시간만큼 CPU를 할당한 후, 순서대로 처리합니다.

 

32. 멀티태스킹(Multitasking)이란 무엇인가?

답변
멀티태스킹은 하나의 시스템에서 여러 작업을 동시에 수행하는 기능을 말합니다. 운영체제는 프로세스를 효율적으로 관리하여, 여러 프로그램이 동시에 실행될 수 있도록 합니다. 멀티태스킹에는 선점형 멀티태스킹비선점형 멀티태스킹이 있습니다.

 

 

33. 하드웨어 인터럽트와 소프트웨어 인터럽트의 차이점은 무엇인가?

답변
하드웨어 인터럽트는 외부 장치가 발생시키는 인터럽트로, 주로 I/O 장치나 타이머가 발생시킵니다. 소프트웨어 인터럽트는 프로그램 내에서 발생시키는 인터럽트로, 보통 시스템 호출이나 예외 처리를 위해 사용됩니다.

 

 

34. 시스템 콜(System Call)란 무엇인가?

답변
시스템 콜은 사용자 프로그램이 운영체제의 기능을 사용할 수 있도록 해주는 인터페이스입니다. 예를 들어, 파일 열기, 프로세스 생성, 메모리 할당 등 운영체제에서 제공하는 서비스를 호출할 때 사용됩니다.

 

 

35. 운영체제에서의 캐시 메모리(Cache Memory)의 역할은 무엇인가?

답변
캐시 메모리는 CPU와 메인 메모리 간의 속도 차이를 줄이기 위해 사용되는 고속 메모리입니다. 자주 사용되는 데이터를 캐시 메모리에 저장하여 CPU가 더 빠르게 데이터를 접근할 수 있도록 합니다.

 


36. 교착 상태(Deadlock)의 네 가지 조건은 무엇인가?

✅ 답변
교착 상태가 발생하려면 다음 네 가지 조건이 모두 충족되어야 합니다.

  1. 상호 배제 (Mutual Exclusion): 자원은 하나의 프로세스만 사용할 수 있다.
  2. 점유와 대기 (Hold and Wait): 최소한 하나의 자원을 보유하고 있으며, 추가 자원을 대기하고 있다.
  3. 비선점 (No Preemption): 자원을 강제로 회수할 수 없다.
  4. 순환 대기 (Circular Wait): 프로세스들이 순환적으로 자원을 기다린다.

 

37. 파일 시스템에서 디렉터리(Directory)의 역할은 무엇인가?

답변
디렉터리는 파일을 관리하는 폴더로, 파일 시스템 내에서 파일을 그룹화하여 구조적으로 관리합니다. 디렉터리는 파일을 구분하고, 경로를 통해 파일을 찾을 수 있게 합니다.

 

 

38. 컴퓨터의 부팅 과정에서 BIOS의 역할은 무엇인가?

답변
BIOS(Basic Input/Output System)는 컴퓨터가 시작될 때 하드웨어를 초기화하고, 운영체제를 로드하는 역할을 합니다. BIOS는 시스템 검사를 진행하고, 부팅 장치를 찾아 운영체제를 로드합니다.

 

 

39. 가상 메모리의 페이지 폴트(Page Fault)란 무엇인가?

답변
페이지 폴트는 프로세스가 요구한 가상 페이지가 물리 메모리에 존재하지 않을 때 발생하는 이벤트입니다. 이때 운영체제는 해당 페이지를 디스크에서 메모리로 가져오는 작업을 수행합니다.

 

 

40. 인터럽트(Interrupt)란 무엇인가?

답변
인터럽트는 하드웨어나 소프트웨어가 현재 실행 중인 작업을 일시 중단하고, 다른 작업을 우선 처리하도록 요청하는 메커니즘입니다. 이를 통해 시스템은 입출력 장치의 상태나 예외 상황을 즉시 처리할 수 있습니다.

 

 

41. 프로세스 상태(State)에는 어떤 것들이 있는가?

답변
프로세스는 다음과 같은 상태를 가질 수 있습니다:

  1. 새로 생성됨 (New): 프로세스가 생성된 상태
  2. 실행 준비 (Ready): 실행을 기다리는 상태
  3. 실행 중 (Running): CPU에서 실행 중인 상태
  4. 대기 중 (Blocked): 자원을 기다리는 상태
  5. 종료 (Terminated): 실행이 끝난 상태

 

 

42. 스레드 간의 동기화(Synchronization)란 무엇인가?

답변
스레드 간의 동기화는 여러 스레드가 공유 자원에 동시에 접근하는 경우 발생할 수 있는 문제를 해결하는 방법입니다. 이를 통해 데이터의 일관성을 유지하고, 경합 상태(Race Condition)를 방지할 수 있습니다. 대표적인 동기화 기법으로는 뮤텍스(Mutex), 세마포어(Semaphore) 등이 있습니다.

 

 

43. 입출력 시스템에서 버퍼링(Buffering)이란 무엇인가?

답변
버퍼링은 입출력 장치와 CPU 또는 메모리 간의 속도 차이를 해소하기 위해 데이터를 일시적으로 저장하는 기법입니다. 이를 통해 데이터 전송 속도를 향상시키고, 입출력 작업을 효율적으로 처리할 수 있습니다.

 

 

44. 운영체제에서의 시스템 자원(Resource)에는 어떤 것들이 있는가?

답변
시스템 자원은 운영체제에서 관리하는 여러 자원으로, 대표적으로 CPU, 메모리, 디스크, 네트워크 등이 있습니다. 운영체제는 이러한 자원을 효율적으로 관리하고 할당하여 시스템의 안정적인 동작을 보장합니다.

 

 

45. 가상 메모리 시스템에서의 페이지 교체 알고리즘을 설명하시오.

답변
페이지 교체 알고리즘은 물리 메모리가 부족할 때 어떤 페이지를 디스크로 내보낼지 결정하는 방법입니다. 주요 알고리즘은 다음과 같습니다:

  1. FIFO (First-In, First-Out): 가장 먼저 들어온 페이지를 교체합니다.
  2. LRU (Least Recently Used): 가장 오래 전에 사용된 페이지를 교체합니다.
  3. Optimal (OPT): 가장 나중에 참조될 페이지를 교체합니다.

 

46. 사용자 프로그램과 커널 프로그램의 차이점은 무엇인가?

답변
사용자 프로그램은 일반 사용자가 작성하고 실행하는 프로그램으로, 커널에 직접 접근할 수 없습니다. 반면 커널 프로그램은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 중재 역할을 하며 시스템 자원을 관리합니다.

 

 

47. 페이징(Paging)과 세그멘테이션(Segmentation)의 차이점은 무엇인가?

답변
페이징은 메모리를 고정된 크기의 페이지로 나누어 할당하는 방식이고, 세그멘테이션은 메모리를 논리적 단위로 나누어 할당하는 방식입니다. 페이징은 주소 공간을 일정한 크기로 나누어 관리하는 반면, 세그멘테이션은 논리적인 단위로 나누어 자원 관리가 이루어집니다.

 


참고하면 좋을 링크

 

반응형